1.2 机器学习研究的主要任务
研究机器学习,就是通过学习研究最终输出结果。蘑菇分类算法模型的最终输出结果被分成有毒的、没毒的两类,这便是分类算法。在对算法进行研究的过程中,输入了大量的蘑菇数据,也输入了大量数据对应的标签,这种大量有标签对应的数据称为训练集。如果输入了一个新的蘑菇,通过模型算法得到最终结果,这个新的蘑菇就是测试集。机器学习其实就是通过大量训练集的训练,最终得到测试集的结果预测。
机器学习一般分为监督学习和非监督学习。
· 1.2.1 监督学习
根据已有的训练集,可知道输入和输出结果之间的关系。根据这种已知的关系,训练得到一个最优的模型。也就是说,在监督学习中训练集中的数据既有特征(feature)又有标签(label)。通过训练,机器可以自己找到特征和标签之间的联系,对只有特征没有标签的数据进行预测时,可以判断出标签。
通俗一点儿讲,就是可利用标签和特征告知机器如何做事情。打个比方,交通规则中红灯对车的管控是停,绿灯对车的管控是行,绿灯和红灯可以被理解成灯的特征,停和行被理解成标签。如果一辆车遇到了绿灯,则得出的结论是行车。这种算法理解起来是比较容易的,因为绿灯已经在训练集中出现了。如果在阴天里,绿灯的可视程度有所减弱,就需要一些近似于绿色的算法来完成对绿灯的辨识。这就算是监督学习。
监督学习一般用来解决分类和回归的问题。
用蘑菇分类算法预测新采的蘑菇是否有毒是一种分类问题。分类问题机器学习的一般思路如图1.4所示。
图1.4 分类问题机器学习的一般思路
对于回归问题,往往预测的结果都是数值,如预测公司未来一年的利润大概是多少,预测商品未来一个月的销量,等等。可以这样理解,分类问题的标签是不连续的,而回归问题的标签是连续的,训练集的数据多以连续型的数值为主,预测的结果也会以数值的方式进行展示。回归问题机器学习的一般思路如图1.5所示。
图1.5 回归问题机器学习的一般思路
总体来说,监督学习就是通过人为地输入带有标签的训练集数据,使计算机训练得到一个较为合适的模型,再对未知标签的数据进行预测。标签来自人为设定,输出的结果也属于训练集中标签的范围。
· 1.2.2 非监督学习
谈到非监督学习,它和监督学习的区别在于训练集中是否有人为设定的标签。人为设定标签一定是建立在人对事物有了解的基础之上的,但在许多实际应用中,对事物的了解都是从无知到认知的,对于很多事情开始并不知道数据的类别,也没有训练样本进行类别的划分。要从这些没有被标记的数据集中通过机器学习算法进行分类器设计,需要通过数据之间的内在联系和相似性将它们分成若干类。比如对动物如何划分科目纲,在最初的时候,一定是考虑动物相关数据之间的内在联系和相似性,这就用到了非监督学习。非监督学习会用两种方法去考虑。
一种是基于概率密度函数估计的方法,通过分解各个类别的概率密度函数,再将每个类别划分到特征空间,用相关的机器学习算法设计分类器。
另一种是基于样本间相似度间接聚类的方法,把每一个样本都看成一个类别,给定两个样本相似度的计算方法,进而计算两个样本的相似度,把相似度最大的类进行合并,再计算新的类与类之间的相似度,直到把相似的所有样本合为一个类。
无论是基于概率密度函数估计的方法,还是基于样本间相似度间接聚类的方法,它们的逻辑分析方法都是一致的,如图1.6所示。
图1.6 非监督学习的一般思路
监督学习和非监督学习都需要相应的机器学习算法去解决问题,在后面的章节中会重点介绍机器学习的相关算法,这也是解决监督学习和非监督学习问题的关键。