什么是机器学习
人工智能领域先锋Arthur Samuel曾给出过一个很好的关于机器学习的定义,是这样说的:
这一领域的研究主要是在不明确的编写程序的情况下赋予计算机学习的能力。
另一个定义也同样简洁但直指其本质,Drew Conway这样说过机器学习:
it's just statistics made by computers.
个人更喜欢后一种说法。
一般来说,机器学习基于给定的数据进行预测,在没有机器学习之前程序员可能要自己设计特定算法并编写程序实现出来,假设给定的是一堆数据集A,那么这种“硬编码”的程序只能在数据集A上进行预测,换一个数据集B那么这个程序就毫无用处了。
机器学习的方法与上述“硬编码”的实现方式完全不同,我们不过通过算法告诉计算机该如何如何,相反,我们让程序自己基于给定的数据集“推测”出最佳答案。因此这种方法也被称为“数据驱动的预测”,听上去很神奇有没有,举几个例子你就明白了。
如果从机器学习算法的“输出”来考虑的话,通常有两类机器学习算法,一类是Regression,回归;另一类是classification,即分类。
我们首先来看回归。
Regression:回归
假设你想收集一堆数据做关于房子价格的预测,那么收集了一堆你所在城市的房子价格信息后,最终你得到了一张这样的图: