学习曲线learning curve和AUC值

本文探讨了过拟合的原因,包括样本问题、模型复杂度等,并介绍了学习曲线作为评估模型泛化能力的工具。学习曲线通过绘制训练集和交叉验证的准确率,展示模型在新数据上的表现,帮助判断模型是否存在过拟合。以naive Bayes和SVM为例,展示了如何绘制学习曲线,并提供了使用ShuffleSplit和SVC进行交叉验证的代码示例。
摘要由CSDN通过智能技术生成

引入

1. 什么是过拟合?

相当于泛化性差的概念,见知乎https://www.zhihu.com/question/32246256
2.可能是什么导致了过拟合?
1)建模样本选取有误,如样本数量太少,选样方法错误,样本标签错误等,导致选取的样本数据不足以代表预定的分类规则;
2)样本噪音干扰过大,使得机器将部分噪音认为是特征从而扰乱了预设的分类规则;
3)假设的模型无法合理存在,或者说是假设成立的条件实际并不成立;
4)参数太多,模型复杂度过高;
5)对于决策树模型,如果我们对于其生长没有合理的限制,其自由生长有可能使节点只包含单纯的事件数据(event)或非事件数据(no event),使其虽然可以完美匹配(拟合)训练数据,但是无法适应其他数据集。
6)对于神经网络模型:a)对样本数据可能存在分类决策面不唯一,随着学习的进行,BP算法使权值可能收敛过于复杂的决策面;b)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在sklearn中,可以使用`learning_curve`函数来绘制迭代次数与AUC的关系图。 首先,需要导入相关的库和模型,以及准备好数据集。这里以使用Logistic回归模型为例: ```python from sklearn.linear_model import LogisticRegression from sklearn.datasets import make_classification from sklearn.model_selection import learning_curve import matplotlib.pyplot as plt # 准备数据集 X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=0, random_state=42) ``` 接下来,使用`learning_curve`函数来获取不同迭代次数下的训练集和测试集的AUC: ```python # 计算不同迭代次数下的训练集和测试集的AUC train_sizes, train_scores, test_scores = learning_curve( estimator=LogisticRegression(), X=X, y=y, train_sizes=[0.1, 0.3, 0.5, 0.7, 0.9], scoring='roc_auc', cv=5, n_jobs=-1, ) ``` 其中,`estimator`参数指定使用的模型,`X`和`y`参数是数据集,`train_sizes`参数指定不同的训练集大小,`scoring`参数指定评估指标(这里选择AUC),`cv`参数指定交叉验证的折数,`n_jobs`参数指定并行计算的进程数。 最后,将得到的训练集和测试集的AUC绘制成图表: ```python # 绘制学习曲线图 plt.plot(train_sizes, train_scores.mean(axis=1), label='Training score') plt.plot(train_sizes, test_scores.mean(axis=1), label='Cross-validation score') plt.legend() plt.xlabel('Number of iterations') plt.ylabel('AUC score') plt.show() ``` 这里通过`mean`函数来计算每个迭代次数下多次交叉验证的平均AUC。绘制出的图表可以帮助我们了解不同迭代次数下模型的AUC表现,以及是否存在过拟合或欠拟合等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值