我训练了几种模型,想将每个模型的学习曲线绘制在一张图上
我尝试了这种方法,并且它有效。但感觉有些重复。
train_sizes, train_scores, test_scores = learning_curve(model, train_dummies, y, cv=5, scoring='neg_mean_squared_error')
因为我需要为每个模型重复train_scores和test_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")
这是期望的输出
有人能告诉我我缺少什么吗?非常感谢你的时间。
回答:
我看不出你做的有什么问题.. 这个对我来说是有效的(部分参考自这里):