欠拟合和过拟合
欠拟合:训练集拟合不充分,测试集偏差较大。
过拟合:训练集过度拟合,测试集偏差较大。
解决欠拟合和过拟合问题
欠拟合问题,根本的原因是特征维度过少,导致拟合的函数无法满足训练集,误差较大。
欠拟合问题可以通过增加特征维度来解决。
过拟合问题,根本的原因则是特征维度过多,导致拟合的函数完美的经过训练集,但是对新数据的预测结果则较差。
解决过拟合问题,则有2个途径:
- 减少特征维度:可以人工选择保留的特征,或者模型选择算法
- 正则化:保留所有的特征,通过降低参数θ的值,来影响模型。减少参数的候选空间,使得模型更加“简洁”。
正则化方法:损失函数后面添加的额外项,用来惩罚模型的复杂度,通常是L1正则化和L2正则化,或者也叫L1范式,L2范式
L0正则化向量中非零元素的个数
L1 正则化模型参数绝对值之和对应的默认误差服从正太分布,参数服从拉普拉斯分布
L2 正则化模型参数的平方和对应的默认误差服从正太分布,参数服从高斯分布
线性回归中,使用L1正则化的模型叫Lasso回归,使用L2正则化的叫岭回归
L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,稀疏模型指很多元素为0,表示特征对模型的贡献度,因此可以用于特征选择
L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合;拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是『抗扰动能力强』
监督与非监督区别:
监督学习训练数据是有标记的,例如回归,分类问题
半监督学习:监督学习与无监督学习相结合的一种学习方法。它主要考虑如何利用少量的标注样本和大量的未标注样本进行训练和分类的问题
无监督学习训练数据无标记,用于发现训练样本集中的结构性知识,例如聚类问题
生成模型:由数据学习联合概率分布,然后求出条件概率分布作为预测模型,例如:朴素贝叶斯,lda,隐马尔可夫模型
判别模型:由数据直接学习决策函数或者条件概率分布作为预测的模型,例如:k邻近法,决策树,罗辑思特回归SVM
偏差bias和方差variance的概念:
偏差:描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据
方差:方差针对的是科学采样的多个数据集训练的多个模型,多个模型的预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散
训练次数过多,训练数据的特异性被学习器拟合,方差逐渐主导泛化误差,偏差小,方差大,泛化误差大,过拟合
方差-偏差trade-off:减小泛化误差,泛化误差可以分解为方差+偏差+实际误差分布
解决机器学习中数据样本不平衡问题:
1. 改进采样方法是通过对训练集进行处理使其从不平衡的数据集变成平衡的数据集,在大部分情况下会对最终的结果带来提升。
采样分为上采样(Oversampling)和下采样(Undersampling);上采样后的数据集中会反复出现一些样本,训练出来的模型会有一定的过拟合;而下采样的缺点显而易见,那就是最终的训练集丢失了数据,模型只学到了总体模式的一部分
2. 数据合成
3. 加权
SVM的核函数如何选择:
n为特征数,m为训练样本数。
(1)如果相较于m而言,n要大许多,即训练集数据量不够支持我们训练一个复杂的非线性模型,我们选用逻辑回归模型或者不带核函数的支持向量机。
(2)如果n较小,而且m大小中等,例如n在 1-1000 之间,而m在10-10000 之间,使用高斯核函数的支持向量机。
(3)如果n较小,而m较大,例如n在1-1000之间,而m大于50000,则使用支持向量机会非常慢,解决方案是创造、增加更多的特征,然后使用逻辑回归或不带核函数的支持向量机。
前剪枝算法和后剪枝算法区别
剪枝一般是为了避免树的过于复杂,过于拟合而进行的一个动作,剪枝操作是一个全局的操作。 前剪枝:前剪枝就是在树的构建过程(只用到训练集),设置一个阈值,使得当在当前分裂节点中分裂前和分裂后的误差超过这个阈值则分列,否则不进行分裂操作。
后剪枝:
(1)后剪枝是在用训练集构建好一颗决策树后,利用测试集进行的操作。
(2)算法: 基于已有的树切分测试数据:
1.如果存在任一子集是一棵树,则在该子集递归剪枝过程
2.计算不合并的误差
3.如果合并会降低误差的话,就将叶节点合并
(3)在回归树一般用总方差计算误差(即用叶子节点的值减去所有叶子节点的均值)。
比较:
(1)前阈值的设定很敏感,一点点的变动,会引起整颗树非常大的变动,不好设定。
(2)前剪枝生成比后剪枝简洁的树
(3)一般用后剪得到的结果比较好
DNN的基本结构
DNN可以理解为有很多隐藏层的神经网络。这个很多其实也没有什么度量标准, 多层神经网络和深度神经网络DNN其实也是指的一个东西,当然,DNN有时也叫做多层感知机(Multi-Layer perceptron,MLP), 名字实在是多。后面我们讲到的神经网络都默认为DNN。从DNN按不同层的位置划分,DNN内部的神经网络层可以分为三类,输入层,隐藏层和输出层,如下图示例,一般来说第一层是输入层,最后一层是输出层,而中间的层数都是隐藏层。
层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复杂,但是从小的局部模型来说,还是和感知机一样,即一个线性关系z=∑wi*xi+b加上一个**函数σ(z)。
决策树分析:
将一组数据通过一个个判断一层层向下展开,形成决策树。
决策树节点停止分裂的一般性条件:
(1)最小节点数
当节点的数据量小于一个指定的数量时,不继续分裂。两个原因:一是数据量较少时,再做分裂容易强化噪声数据的作用;二是降低树生长的复杂性。提前结束分裂一定程度上有利于降低过拟合的影响。
(2)熵或者基尼值小于阀值。由上述可知,熵和基尼值的大小表示数据的复杂程度,当熵或者基尼值过小时,表示数据的纯度比较大,如果熵或者基尼值小于一定程度数,节点停止分裂。
(3)决策树的深度达到指定的条件节点的深度可以理解为节点与决策树跟节点的距离,如根节点的子节点的深度为1,因为这些节点与跟节点的距离为1,子节点的深度要比父节点的深度大1。决策树的深度是所有叶子节点的最大深度,当深度到达指定的上限大小时,停止分裂。
(4)所有特征已经使用完毕,不能继续进行分裂。被动式停止分裂的条件,当已经没有可分的属性时,直接将当前节点设置为叶子节点。
决策树的构建方法:
根据决策树的输出结果,决策树可以分为分类树和回归树,分类树输出的结果为具体的类别,而回归树输出的结果为一个确定的数值。
决策树的构建算法主要有ID3、C4.5、CART三种,其中ID3和C4.5是分类树,CART是分类回归树