机器学习
机器学习概念
以数据集(dataset)为例
每一行的数据叫做样本数据;
除最后一列标签列外,每一列的数据叫特征或属性;
最后一列叫标签列,样本所属类别;
属性(特征)空间是由多个特征张成的属性空间;
标记:c(x),实例类别的标记
特征向量:属性的集合,通常用一个向量来表示,附属于一个实例,构成特征空间的每一行的特征数据;
训练集/训练样例:用来进行训练,即产生模型或算法的数据集
训练数据:由输入X(特征)和输出Y(标签)构成;
训练过程:从数据中学的模型的过程叫做学习或训练;
训练过程中使用的数据叫做训练数据;
测试集/测试样例:通常只知道特征,用来进行预测,专门进行测试已经学习好的模型或者算法的数据集
测试样本:被预测的样本数据,由测试数据和类标签构成;
测试数据:仅有输入的X构成,根据模型得到预测Label信息;
预测:学习完模型之后,由测试数据代入模型进行预测,得到预测值
-
预测值和真实值的差距的评判标准:
错误率:错误样本数占总体样本的比例;
准确率:1-错误率;
误差:模型的实际输出和真实值的差距;
训练误差:学习器在训练样本上的误差;
泛化误差:学习器在新的样本上的误差 -
机器学习步骤框架:
1.把数据拆分为训练集和测试集
2.用训练集和训练集的特征向量来训练算法
3.用学习来的算法运用在测试集上来评估算法 (可能要设计到调 整参数(parameter tuning)–(验证集(validation set))
分类
分类(classification):目标标记为类别型数据(category)
回归(regression):目标标记为连续性数值(continuous numeric value)
初识机器学习分类
- 有监督学习(supervised learning): 训练集有类别标记(class label)
- 无监督学习(unsupervised learning): 无类别标记(class label)
- 半监督学习(semi-supervised learning):有类别标记的训练集 + 无 标记的训练集
-
监督学习
监督(supervised)是指训练数据集中的每个样本均有一个已知的输出项(类标签label)。输出变量为连续变量的预测问题称为回归(regression)问题(例如房价预测),常见的回归算法有简单线性回归、多元线性回归、Lasso回归、Ridge回归、ElasticNet;输出变量为有限个离散变量的预测问题称为分类(classification)问题(例如垃圾邮件划分),常见的分类算法有决策树、KNN、SVM。 -
非监督学习
人们给机器一大堆没有分类标记的数据,让机器可以对数据分类、检测异常等。 -
半监督学习
半监督学习就是提供了一条利用“廉价”的未标记样本的途径,将未标记数据和已标记数据混合起来,进行聚类,同一类的标记为相同的标记,这样就将未标记数据打上了标记。场景:电商网站根据评价给用户推荐感兴趣商品,有的用户对商品进行了评价,有的用户并没有评价。 -
强化学习
是机器学习的一个重要分支,主要用来解决连续决策的问题。围棋可以归纳为一个强化学习问题,需要学习在各种局势下如何走出最好的招法。 -
迁移学习
常用来解决两类问题:小数据的问题,个性化的问题。
三要素
机器学习=模型+策略+算法
模型
机器学习中,首先要考虑学习什么样的模型,在监督学习中,如模型(y=ax+b)就是要学习的内容。模型通常分为决策函数或条件概率分布。由决策函数表示的模型为非概率模型,由条件概率分布表示的模型是概率模型。
决策函数
条件概率
策略
评价模型的好坏用损失函数(目标函数),模型给出的值与实际真实值的差别,损失函数值越小,模型越好。常用的损失函数有如下几种:0-1损失函数、平方损失函数、绝对损失函数、对数损失函数。
策略补充
- 经济风险
- 结构风险
算法
机器学习的算法就是求解最优化问题的算法。可以利用已有的最优化算法,也可以开发独自的最优化算法。
构建机器学习系统
模型选择
泛化
模型具有好的泛化能力指的是:模型不但在训练数据集上表现的效果很好,对于新数据的适应能力也有很好的效果。泛化能力的表现:过拟合和欠拟合。
过拟合overfitting:模型在训练数据上表现良好,在未知数据或者测试集上表现差。
欠拟合underfitting:在训练数据和未知数据上表现都很差。
过拟合
过拟合产生原因:可能是模型太过于复杂、数据不纯、训练数据太少等造成。
出现的场景:当模型优化到一定程度,就会出现过拟合的情况。
解决办法:(1)重新清洗数据(2)增大训练的数据量(3)采用正则化方法对参数施加惩罚:常用的有L1正则和L2正则(4)采用dropout方法,即采用随机采样的方法训练模型,常用于神经网络算法中。
欠拟合
欠拟合产生原因:模型过于简单。
出现的场景:欠拟合一般出现在机器学习模型刚刚训练的时候,也就是说一开始我们的模型往往是欠拟合也正是因为如此才有了优化的空间,我们通过不断优化调整算法来使得模型的表达能力更强。
解决办法:(1)添加其他特征项:因为特征项不够而导致欠拟合,可以添加其他特征项来很好的解决。(2)添加多项式特征:可以在线性模型中通过添加二次或三次项使得模型的泛化能力更强。(3)减少正则化参数,正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,需要减少正则化参数。
奥卡姆剃刀原则
给定两个具有相同泛化误差的模型,较简单的模型比较复杂的模型更可取(奥卡姆剃刀原则)。
评估
正则化
交叉验证
简单交叉验证
随机从最初的样本中选择部分,形成验证数据,而剩下的当作训练数据。一般来说,少于三分之一的数据被选作验证数据。
10折交叉验证
把样本数据分成10份,轮流将其中9份做训练数据,将剩下的1份当测试数据,10次结果的均值作为对算法精度的估计,通常情况下为了提高精度,还需要做多次10折交叉验证。更进一步,还有K折交叉验证,10折交叉验证是它的特殊情况。K折交叉验证就是把样本分为K份,其中K-1份用来做训练建立模型,留剩下的一份来验证,交叉验证重复K次,每个子样本验证一次。
留一验证
只使用样本数据中的一项当作验证数据,而剩下的全作为训练数据,一直重复,直到所有的样本都作验证数据一次。可以看出留一验证实际上就是K折交叉验证,只不过这里的K有点特殊,K为样本数据个数。