相信大家都有过等人的经历,这并不是一件多么愉快的事情。
最近洞察君就开始不守时了,上次约他下午五点吃烤鱼,结果等到六点才来。
今天他约我晚上七点去唱K,我脑海中立马蹦出一个问题:他又会迟到吗?
于是我迅速调动我记忆,看看我们相约的次数中,他迟到占了多大的比例,而我利用这个比例来预测他这次迟到的可能性。
在我正在准备在纸上计算时,我突然想起来,这种依据数据来做出判断的办法,不就是大家都知其然不知其所以然的“机器学习”么!
于是,我果断拒绝了洞察君的邀请,发誓要给大家讲清楚,到底什么是机器学习!
Mchine——Machine Learning——Better
首先请允许我甩出一个定义:
从广义上来说,机器学习是一种能够赋予机器学习的能力,以此让它完成直接编程无法完成的功能的方法。
但从实践的意义上来说,机器学习是一种通过利用数据,训练出模型,然后使用模型来进行预测的一种方法。
看不懂没关系,我给你讲个小故事,保准你懂得很彻底!
就拿国民话题“房子”来说吧。假如我现在看上了城郊的一栋大别墅,想卖掉我村里的一套100平的房子,我应该给它标上怎样的价格呢?
相信大家心中已经有了答案。由于在不同地段的房价差距判若云泥,同地段不同户型之间的差距也十分显著,所以我只能通过调查跟我同地段、同户型的房价,来作为我定价的参考。
如果我能从获得的数据中找出面积与价格的规律,那么我就可以较准确地得到房子的价格。于是,我把收集到的数据在坐标图中拟合出一条直线,让它尽量“穿过”更多的点,并且与其他各点的距离尽可能的小。
通过这条直线,我获得了一个能够最佳反映房价与面积的规律,同样可以获得一个可以用于计算准确房价的函数。
房价=面积*a+b
假设a = 0.8,b = 60,则我的房价=100 * 0.8 + 60 = 140万,从统计学意义上来说,这是一个最合理的预测值。
在求解过程中透露出了两个信息:
第一:房价模型是根据拟合的函数类型决定的。如果是直线,那么拟合出的就是直线方程;如果是其他类型的线,例如抛物线,那么拟合出的就是抛物线方程。机器学习有众多算法,一些强力算法可以拟合出复杂的非线性模型,用来反映一些不是直线所能表达的情况。
第二:如果数据量越多,得到的模型就能考虑到越多的因素,由此对于新情况的预测效果可能就越好。这是机器学习界“数据为王”思想的一个体现。一般来说,数据越多,最后机器学习生成的模型预测的效果越好。
通过拟合直线的过程,我们可以对机器学习过程做一个完整的回顾:
首先,我们需要在计算机中存储一定的相关数据(等同于线下收集数据);接着,我们将这些数据通过机器学习算法进行处理(等同于拟合直线),这个过程在机器学习中叫做“训练”,处理的结果一般称之为“模型”(等同于得到方程),可以被我们用来对新的数据进行预测。
“训练”与“预测”是机器学习的两个过程,“模型”则是过程的中间输出结果,“训练”产生“模型”,“模型”指导 “预测”。
好吧,说了这么多,其实洞察君并没有约我
还有,我在村里也根本没有房。
但你们如果明白了什么是机器学习,也不枉我一片苦心了。