我们都知道,关于机器学习,科技界的定义是,可以利用机器学习模拟人的思维方式去处理问题/数据;但是光看这个定义,还是觉得只是看起来高大上,到底是怎么模拟的,机器到底在学习什么,还是不明白;
最近看了一些这方面的东西,总结一下自己的一些理解,关于机器学习到底是怎么学习的,到底是在学习什么;
----------------------------------------------------------------------------------------------------
我们先从一个例子说起;
一辆车,我们知道它一箱油(100L)可以跑100公里,半箱油(50L)即可以跑50公里;
那么问题来了,当它只有80L油的时候可以跑多远?很多人都会说是80公里;
为什么会说是80公里呢?那是因为前面我们知道100L是100公里、50L是50公里,我们已经有了一个规律,有了一个参考值,所以很快就可以得出80L跑80公里;
在我理解下来,机器学习应该也是这样的套路;利用已有的数据总结出一套规律,然后再用这个规律去预测另一个结果;
----------------------------------------------------------------------------------------------------
说到这里,就要引入几个新的概念,样本数据和训练模型;
我们在学习概率论的时候就有过这个说法,用来做数据统计的数据叫做样本,后面通过样本总结出来的运算公式就叫训练模型;
在上面的例子中,前面的100L对应100公里,50L对应50公里,这两组数据就是样本数据;通过两者总结出来的1L对应1公里就是这个例子的训练模型;
我们以往的计算方法是,给定一个规律,然后通过这个规律来做一些数据的计算;但是机器学习不是,机器学习是我们给它一堆数据,让它自己去通过数据总结训练出一套模型,然后用这套模型去解决数据预测问题;
----------------------------------------------------------------------------------------------------
说了这么多,也没有机器学习什么事情啊,到底机器学习是什么?上文说的模型到底是个什么玩意儿?我们来看下一个例子;
依然用前面的例子,一辆车行驶,2小时后离出发点80公里,3小时后离出发点100公里,请问4小时后离出发点多远?
如果我们把这个问题,用机器学习来解决的话,就相当于是给机器一组样本数据1:(2,80)、(3、100),然后求(4,?);
这个业务场景,学习过树立统计的都很清楚地知道,这个数据是呈线性的;这个时候我们可以考虑引入一个简单的二次函数y=kx+b作为这个问题的训练模型来解决这个问题;
我们把样本数据(2,80)、(3、100)代入这个二次函数的训练模型,很快就可以得出这个训练模型的表达式为y=40x+40;得出这个训练模型之后,把之前的样本数据代入做检查,以保证准确性;
这个时候,我们把要求的数据x=4代入这个模型中,很快就可以得出y=200,也就是说4小时后汽车离出发点200公里;
----------------------------------------------------------------------------------------------------
如果我们现在有样本数据2:(2,80)、(2.1,85)、(2.6、88.6)、(2.8,88.1)、(2.9,89.4),那么根据这组样本数据机器又会重新计算出一个训练模型公式,然后将样本中某些数据作为样本数据来检验这个训练模型,这个模型公式将能够更加准确地描述汽车行驶过程中时间x与距离出发点y的线性关系;
我们前面已经得出了样本数据1业务场景的训练模型是y=40x+40,这个模型是通过2组数据得出来的,这组数据样本量太少;如果有更多的样本数据,例如样本数据2,这个模型可以计算的更加准确;这就是机器的学习能力,机器学习会根据样本数据量不断调整训练模型,从而能够更加精准地去解决数据问题;
----------------------------------------------------------------------------------------------------
到这里,我们要对机器学习做一个更加细致的定义:机器学习就是利用现有的样本数据去创建一套完善的训练模型,然后用现有数据不断检验训练这个模型,改良这个模型,通过这个训练模型来解决后续的数据预测问题;
----------------------------------------------------------------------------------------------------
当然了,我们知道现实中的大数据预测肯定不会这么简单的,一个y=kx+b就能解决,但是机器学习基本上都是这样一个套路;
1)、首先机器会通过大量样本数据之间的关联关系去总结一套模型;2)、机器利用样本数据来训练这个模型;训练时机器会把样本数据分为训练数据集和测试数据集;3)、利用经过大量样本数据训练和测试的训练好的模型,来解决预测数据问题;
----------------------------------------------------------------------------------------------------
这是个性化推荐系统系列的第2篇,该系列一共有5篇:1、《个性化推荐系列之初步认识推荐系统》;2、《个性化推荐系列之初步认识机器学习》;3、《个性化推荐系列之推荐系统的演化及常见推荐算法》;4、《个性化推荐系列之协同过滤推荐算法总结》;5、《个性化推荐系列之推荐算法实践》;
详见知乎专栏--产品打杂https://zhuanlan.zhihu.com/zhoulink