learning_curve(学习曲线)

学习曲线是评估模型过拟合和欠拟合的重要工具。本文详细介绍了学习曲线的作用,具体操作步骤,以及如何通过实例分析模型的预测准确率。通过模拟数据集和线性回归模型,展示了随着数据量增加,模型训练和测试误差的变化趋势。同时,还封装了绘制学习曲线的函数,便于对比不同模型的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


数据和模型 https://blog.youkuaiyun.com/u010986753/article/details/98526886

模型评价ROC\AUC\查准率\查全率\F-score\混淆矩阵\KS曲线\PR曲线等https://blog.youkuaiyun.com/u010986753/article/details/98114068

一、学习曲线

1.1 学习曲线作用

  • 查看模型的学习效果;
  • 通过学习曲线可以清晰的看出模型对数据的过拟合和欠拟合;

1.2 学习曲线

  随着训练样本的逐渐增多,算法训练出的模型的表现能力;

1.3 表现能力

  也就是模型的预测准确率,使用均方误差表示;学习率上体现了模型相对于训练集和测试集两类数据的均方误差。

1.4 学习曲线的具体操作

  • len(X_train) 个训练样本,训练出 len(X_train) 个模型,第一次使用一个样本训练出第一个模型,第二次使用两个样本训练出第二个模型,… ,第 len(X_train) 次使用 len(X_train) 个样本训练出最后一个模型;
  • 每个模型对于训练这个模型所使用的部分训练数据集的预测值:y_train_predict = 模型.predict(X_train[ : i ]);
  • 每个模型对于训练这个模型所使用的部分训练数据集的均方误差:mean_squared_error(y_train[ : i ], y_train_predict);
  • 每个模型对于整个测试数据集的预测值:y_test_predict = 模型.predict(X_test)
  • 每个模型对于整个测试数据集的预测的均方误差:mean_squared_error(y_test, y_test_predict);
  • 绘制每次训练模型所用的样本数量与该模型对应的部分训练数据集的均方误差的平方根的关系曲线:plt.plot([i for i in range(1, len(X_train)+1)],np.sqrt(train_score), label=“train”)
  • 绘制每次训练模型所用的样本数量与该模型对应的测试数据集的预测的均方误差的关系曲线:plt.plot([i for i in range(1, len(X_train)+1)],np.sqrt(test_score), label=“test”)

二、实例

2.1 模拟数据集

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(666)
x = np.random.uniform(-3, 3, size=100)
X = x.reshape(-1, 1)
y = 0.5 * x**2 + x + 2. + np.random.normal(0, 1, size=100)

2.2 绘制数据集

plt.scatter(x, y)
plt.show()

2.3 分割数据集

from sklearn.model_selection import train_test_split

# random_state=10:随机种子;
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=10)

2.4 使用线性回归拟合数据集并绘制学习曲线

from sklearn.linear_model import Line
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值