我们先来说个老生常谈的情景:某天你去买芒果,小贩摊了满满一车芒果,你一个个选好,拿给小贩称重,然后论斤付钱。
自然,你的目标是那些最甜最成熟的芒果,那怎么选呢?你想起来,啊外婆说过,明黄色的比淡黄色的甜。你就设了条标准:只选明黄色的芒果。于是按颜色挑好、付钱、回家。啊哈,人生完整了?
呵呵呵。
告诉你吧人生就是各种麻烦
等你回到家,尝了下芒果。有些确实挺甜,有些就不行了。额~显然,外婆教的金科玉律还不够用,光看颜色不靠谱哪。
闭关研究大半天以后,你得出结论:大个的明黄色芒果必然甜,小个的,就只有一半几率会是甜的了。
于是下次,你满意地带着这个结论再去买芒果,却发现你经常光顾的那个小贩关门度假去了。好吧,换家店,结果人家的进货渠道还不一样,那芒果是另一个地方种的。你这套法则不管用了,又得从头再来。好吧,这家店里每种芒果你都尝了下,总结出来小个淡黄色的最甜。
还没结束。你远房表妹又来找你玩了。要招待些好的吧?但她说了,她无所谓芒果甜不甜,汁水多就行。好呗,你还得再做一次实验,找到芒果越软汁水越多的规律。
接着你又移民了。一尝这边的芒果,咦,新世界的大门打开了。绿色的芒果居然比黄色的好吃……
最后,你结婚了,领导表示不爱吃芒果,要吃苹果。于是你所有关于芒果的知识都没用了。只能按老方法再重新研究遍苹果的物理特征跟它味道好不好之间的关系。苹果吃到吐?没办法,你爱老婆嘛。
有请码农
好了,现在想象下,这一路辛酸曲折的,你写了组程序帮忙减轻负担。那程序逻辑基本应该类似这样:
预设变量 颜色、大小、店家、硬度
如 颜色=明黄
大小=大
店家=经常光顾的小贩
则 芒果=甜
如 硬度=软
则 芒果=多汁
用着很爽吧,你甚至可以把这套玩意儿发给你小弟,他挑来的芒果也包你满意。
但每做一次新实验,你就得人肉改一次程序逻辑。而且你得首先保证自己已经理解了选芒果那套错综复杂的艺术,才能把它写进程序里。如果要求太复杂、芒果种类太多,那光把所有挑选规则翻译成程序逻辑就够你出一身大汗,相当于读个“芒果学”博士了。
不是所有人都有“读博”的功夫的。
有请“机器学习”算法
机器学习算法其实就是普通算法的进化版。通过自动学习数据规律,让你的程序变得更聪明些。