机器学习主要通过计算的手段从数据中提取出相应的模型,也就是说,机器学习的输入是数据,经由学习算法,输出相应的模型,以后我们就可以基于这个模型解决实际问题了。
在机器学习中,输入数据被称为数据集,数据集被分为训练集和测试集。训练集用来通过学习算法训练模型,而测试集则用来评估我们的模型性能。数据集中包含一条条样本,样本则是由属性或特征构成的。例如描述人的数据,其中包含特征身高(cm),体重(kg),脸型(1-圆脸,2-方脸,3-瓜子脸)
[
[180, 80, 1],
[160, 60, 2],
[170, 70, 3],
......
]
按照数据集是否有标记(上面的是没有标记的数据集),可以将机器学习分为两类,有标记的一类称之为监督学习,另一类称之为非监督学习。下面是上面数据集的有标记版本,让用户按照个人喜好作出评价(0-有好感,1-一般,2-讨厌),可以看到,标记就是对某一条样本的说明:
[
[180, 80, 1,0],
[160, 60, 2,1],
[170, 70, 3,2],
......
]
机器学习的目的,就是希望基于训练集,通过一定的学习算法,使得训练出的模型能够适用于非训练集的场合,也就是说,模型应该具有一定的泛化能力,测试集就是用来评估模型泛化能力的,因此,一般测试集应该是与训练集不同的样本数据。
那么,是否训练样本越多,就能获得更好的泛化能力呢?答案是否定的,训练样本过多,会引入过拟合的问题,说的直白点,就是机器将训练样本学习的太好了,导致其泛化能力变弱,就好比学生死记硬背数学题目,但是出现其他的题目就无法解答了。但是训练样本过少,又会出现欠拟合的问题,就好比是学生做题量不够,没有覆盖所有的知识点。所以,训练集的数据量是需要仔细考虑的。
现实中,最常使用机器学习处理的问题主要有分类和回归问题。我们给定一个样本,分类能够对这个样本的数据进行分析,然后给出我们该样本可能属于的类别。回归主要用来预测趋势。分类和回归属于监督学习。聚类是无监督学习的方法,聚类主要按照无标记的训练集,生成数据统计值的密度估计。
有一些知识,我们无法总结出规律,但是隐含在数据中的信息却无法欺骗我们。我们需要做的就是利用各种算法,提取出这些隐含知识。总的看来,机器学习是我们利用数据发掘和归纳知识的一种手段之后,我们可以利用这些知识解决实际的问题。
苹果用户也可赞赏
领取专属 10元无门槛券
私享最新 技术干货