基本的概念有:
训练集,测试集,特征值,标签,监督学习,非监督学习,半监督学习,分类,回归
(1)训练集(trainning set)
用来进行训练,产生模型或者算法的数据集合(data)
(2)测试集(testing set)
用来专门测试已经训练好的模型或者算法的数据集合
(3)特征向量(特征值 features)
属性的集合,通常用一个向量来表示,附属于每一个实例之上。举个例子,我们如何判断一个西瓜的好坏?当然是通过西瓜的一些特征去判断:瓜的拍打声音,瓜的颜色,瓜的根蒂形状等。而这些西瓜的特征的具体的值就组合成一个个的特征向量,这一点我个人感觉和面向对象的编程思想可以对应上,用java语言来描述,瓜是一个类,瓜的拍打声音、颜色、根蒂形状都可以作为一个这个类的属性,在代码中就是一个个的字段,而具体的某一个瓜则可以类似的看成一个特征向量。
(4)标签(lables)
实例类别的一个标记,还是上面的选瓜的例子,挑选的瓜的好与坏,这两种结果,就可以当做两个标签来看。而从特征到标签的映射过程,就是机器的
训练过程。这里还涉及到另外两个定义,一个是正例,一个是反例,很好理解,也就是一件事情的两面性,对的错的,好的坏的等。
(5)监督学习
在监督学习的过程中,训练集都是有标记的
(6)非监督学习
在非监督学习中,训练集是没有标记的,比如给的训练集中,没有对应的实例的结果
(7)半监督学习
在半监督学习中,训练集中,有的实例是有标记的,有的实例是没有标记的
(8)分类
即训练集中,实例对应的标记,不是数值型的,而是别的类型的数据,比如说布尔类型的等等。
(9)回归
在训练集当中,实例对应的标记是数字型的,连续的数字型标记。
一张图理解机器学习的过程: