gpt4 book ai didi

python - 如何在同一张图上绘制不同模型的多个学习曲线?

转载 作者:行者123 更新时间:2023-11-30 09:04:47 25 4
gpt4 key购买 nike

我训练过的模型很少,并且想在单个图表上绘制每个模型的学习曲线

我尝试过这个,并且成功了。但感觉多余。

train_sizes, train_scores, test_scores = learning_curve(model, 
train_dummies,
y,
cv=5,
scoring='neg_mean_squared_error')

因为我需要为每个模型重复train_scorestest_scores

我尝试使用for循环。

首先,我将模型保存在数组中。

arr = [m1,m2,m3]

但是当我启动 for 循环时,它只在图表上生成了一条线。

for i in arr:
train_sizes, train_scores, test_scores = learning_curve(i,
train_dummies,
y,
cv=5,
scoring='neg_mean_squared_error')
train_mean = np.mean(train_scores, axis=1)
train_std = np.std(train_scores, axis=1)

test_mean = np.mean(test_scores, axis=1)
test_std = np.std(test_scores, axis=1)


plt.plot(train_sizes, test_mean, label="Cross-validation score")

这是所需的输出

Desired output

有人会告诉我我缺少什么吗?非常感谢您的宝贵时间。

最佳答案

我看不出你正在做的事情有什么问题。这对我有用(部分摘自 here ):

import numpy as np
import matplotlib.pyplot as plt
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
from sklearn.datasets import load_digits
from sklearn.model_selection import learning_curve

digits = load_digits()
X, y = digits.data, digits.target
for i in [GaussianNB(), SVC(gamma=0.001)]:
(train_sizes,
train_scores,
test_scores) = learning_curve(i, X, y, cv=5)
test_mean = np.mean(test_scores, axis=1)
plt.plot(train_sizes, test_mean, label="Cross-validation score")

plt.legend()
plt.show()

关于python - 如何在同一张图上绘制不同模型的多个学习曲线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55391460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com