过拟合和欠拟合:
1、欠拟合
欠拟合是指模型不能在训练集上获得足够低的误差。换句换说,就是模型复杂度低,模型在训练集上就表现很差,没法学习到数据背后的规律。
欠拟合基本上都会发生在训练刚开始的时候。可以通过增加网络复杂度、增加特征、增加数据,这些都是很好解决欠拟合的方法。
2、过拟合
过拟合是指训练误差和测试误差之间的差距太大。换句换说,就是模型复杂度高于实际问题,模型在训练集上表现很好,但在测试集上却表现很差。或者称为泛化能力差。
造成原因主要有以下几种:
1、训练数据集样本单一,样本不足。 如果训练样本只有负样本,然后那生成的模型去预测正样本,这肯定预测不准。所以训练样本要尽可能的全面,覆盖所有的数据类型。
2、训练数据中噪声干扰过大。 噪声指训练数据中的干扰数据。过多的干扰会导致记录了很多噪声特征,忽略了真实输入和输出之间的关系。
3、模型过于复杂。 模型太复杂,已经能够“死记硬背”记下了训练数据的信息,但是遇到没有见过的数据的时候不能够变通,泛化能力太差。我们希望模型对不同的模型都有稳定的输出。模型太复杂是过拟合的重要因素。
采用正则化预防过拟合。 正则化是指修改学习算法,使其降低泛化误差而非训练误差。常用的正则化方法根据具体的使用策略不同可分为:
(1)直接提供正则化约束的参数正则化方法,如 L1/L2正则化(L1正则化:全部权重 w的绝对值的和;L1正则项会产生稀疏解。L2正则化:全部权重w的平方和; L2正则项会产生比较小的解);
(2)通过工程上的技巧来实现更低泛化误差的方法,如提前终止(Early stopping)和 Dropout。
Dropout 指的是在训练过程中每次按一定的概率(比如50%)随机地“删除”一部分隐藏单元(神经元)。
Dropout平衡训练和测试时的差异:在训练时,失活概率为p,那么输出数据 将除以(1-p)作为神经元失活的补偿。如果训练时没有进行缩放,那么测试阶段每个神经元参数权重 需要乘以概率p)
为什么Dropout可以防止过拟合:(主要原因)dropout掉不同的隐藏神经元就类似在训练不同的网络,随机删掉一半隐藏神经元导致网络结构已经不同,整个dropout过程就相当于对很多个不同的神经网络取平均。而不同的网络产生不同的过拟合,一些互为“反向”的拟合相互抵消就可以达到整体上减少过拟合。
(3)不直接提供约束的隐式正则化方法,如 数据增强等。
决策树属性选择方法区别:
ID3:根据“最大信息增益”原则选择划分当前数据集最好的特征,按照特征的所有取值进行划分。一旦按照某种特征进行切分后,该特征在之后的计算中就不再起作用。
C4.5:ID3的划分原则有个缺点,它一般会选择属性值较多的特征,C4.5使用“信息增益率”来作为特征切分的准则,同时C4.5还弥补了ID3不能处理特征属性值连续的问题。在信息增益大于平均水平的基础上,选择增益率最大的属性。
CART:它是一棵树,采用二元切分法将数据切成两份分别进入左子树和右子树,采用Gini系数作为切分标准,主要反映切分后数据的不纯度。回归树采用方差缩减作为切分标准。
分类和回归的区别:
回归问题通常是用来预测一个值,如预测房价、未来的天气情况等等,例如一个产品的实际价格为500元,通过回归分析预测值为499元,我们认为这是一个比较好的回归分析。一个比较常见的回归算法是线性回归算法(LR)。另外,回归分析用在神经网络上,其最上层是不需要加上softmax函数的,而是直接对前一层累加即可。回归是对真实值的一种逼近预测。
分类问题是用于将事物打上一个标签,通常结果为离散值。例如判断一幅图片上的动物是一只猫还是一只狗,分类通常是建立在回归之上,分类的最后一层通常要使用softmax函数进行判断其所属类别。分类并没有逼近的概念,最终正确结果只有一个,错误的就是错误的,不会有相近的概念。最常见的分类方法是逻辑回归(使用的函数是sigmoid),或者叫逻辑分类。
回归的方法可以做分类,反之不行!
分类和回归的区别在于输出变量的类型。
定量输出称为 回归,或者说是 连续变量预测;
定性输出称为 分类,或者说是 离散变量预测。
生成方法与判别方法区别:
生成方法:由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型即生成模型。典型的生成模型有朴素贝叶斯和隐马尔可夫模型。
判别方法:由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测模型即判别模型。判别方法关心的事对给定的输入X应该预测什么样的输出Y。典型的判别模型包括:kNN,感知机,决策树,LR,最大熵模型,支持向量机,提升方法和条件随机场等。
在监督学习中,生成方法和判别方法各有优缺点:生成方法可以还原联合概率分布,判别方法不能;生成方法收敛速度快;生成方法可以学习存在隐变量的模型,判别方法就不能用;判别方法学习的准确率更高且可以简化学习问题。
正负样本不平衡时:
1.过采样
(1)过采样方法通过增加少数类样本来提高少数类的分类性能,最简单的办法是简单复制少数类样本,缺点是可能导致过拟合, 没有给少数类增加任何新的信息。
(2)SMOTE算法:设置向上采样的倍率为N,即对每个少数类样本都需要产生对应的N个少数类新样本;对少数类中的每一个样本x,搜索得到其k(通常取5)个少数类最近邻样本,并从中随机选择N个样本,记为y1,y2,…,yN(可能有重复值);构造新的少数类样本rj=x+rand(0,1)∗(yj−x),其中rand(0,1)表示区间(0,1)内的随机数。
2.欠采样
欠采样方法通过减少多数类样本来提高少数类的分类性能,最简单的方法是通过随机地去掉一些多数类样本 来减小多数类的规模,缺点是会丢失多数类的一些重要信息,不能够充分利用已有的信息。
3.代价敏感方法
(1)重构训练集的方法。不改变已有算法,而是根据样本的不同错分代价给训练集中的每一个样本赋一个权值,接着按权重对原始样本集进行重构。
(2)引入代价敏感因子,设计出代价敏感的分类算法。通常对小样本赋予较高的代价,大样本赋予较小的代价,期望以此来平衡样本之间的数目差异。
主成分分析PCA:
PCA降维的目标就是:找到一种投影方式,将原来的M维样本y 变成 D维样本x,并且使得投影之后的D维样本x,能够尽可能多地保存原来的样本y中的信息。
https://www.cnblogs.com/hapjin/p/6728697.html
支持向量机:
须记:原公式、利用拉格朗日乘字、对偶公式、KTT条件
线性回归公式推导:
需要的矩阵求导公式