PhilipLiang

2020-06-17   阅读量: 1030

Python数据分析 Python编程 机器学习

机器学习第一天作业知识点整理

扫码加入数据分析学习群

欠拟合是指模型拟合程度不高,数据距离拟合曲线较远,或指模型没有很好地捕捉到数据特征,不能够很好地拟合数据。对于训练好的模型,若在训练集表现差,在测试集表现同样会很差。

一个假设在训练数据上能够获得比其他假设更好的拟合, 但是在训练数据外的数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。过拟合是指为了得到一致假设而使假设变得过度严格。

过拟合解决方法:增大数据集合,使用更多数据,使噪声点比减少,减少数据扰动所造成的影响,减少数据特征、数据维度,使用正则化方法或者交叉验证法。

如何选择KNN模型中的K?

如果选择较小的K值,就相当于用较小的领域中的训练实例进行预测,“学习”训练误差会减小,只有与输入实例较近或相似的训练实例才会对预测结果起作用,与此同时带来的问题是“学习”的测试误差会增大,换句话说,K值的减小就意味着整体模型变得复杂,容易发生过拟合;

如果选择较大的K值,就相当于用较大领域中的训练实例进行预测,其优点是可以减少学习的测试误差,但缺点是学习的训练误差会增大。这时候,与输入实例较远(不相似的)训练实例也会对预测器作用,使预测发生错误,且K值的增大就意味着整体的模型变得简单,可能发生欠拟合。

在实际应用中,K值一般取一个比较小的数值,例如采用交叉验证法(简单来说,就是一部分样本做训练集,一部分做测试集)来选择最优的K值。

KNN的优缺点

KNN的主要优点:

1.理论成熟,思想简单,既可以用来做分类又可以做回归

2.可以用于非线性分类

3.训练时间复杂度比支持向量机之类的算法低

3.和朴素贝叶斯之类的算法比,对数据没有假设,准确度高,对异常点不敏感

4.由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属的类别,因此对于类域的交叉或重叠较多的待分类样本集来说,KNN方法较其他方法更为适合

5.该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量比较小的类域采用这种算法比较容易产生误分类情况

KNN的主要缺点:

1.计算量大,尤其是特征数非常多的时候

2.样本不平衡的时候,对稀有类别的预测准确率低

3.KD树,球树之类的模型建立需要大量的内存

4.是慵懒散学习方法,基本上不学习,导致预测时速度比起逻辑回归之类的算法慢

5.相比决策树模型,KNN模型的可解释性不强

25.1336 4 3 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子