from sklearn
.metrics
import mean_square_error
from sklearn
.model_selection
import train_test_split
import numpy
as np
import matplotlib
.pyplot
as plt
def plot_learning_curves(model
, X
, y
):
"""
画学习曲线
parameters
----------
model: 模型
X:特征值
y:目标量
"""
X_train
, X_val
, y_train
, y_val
= train_test_split
(X
, y
, test_size
=0.2)
train_errors
, val_errors
= [], []
for m
in range(1, len(X_train
)):
model
.fit
(X_train
[:m
], y_train
[:m
])
y_train_predict
= model
.predict
(X_train
[:m
])
y_val_predict
= model
.predict
(X_val
)
train_errors
.append
(mean_square_error
(y_train_predict
, y_train
[:m
]))
val_errors
.append
(mean_square_error
(y_val_predict
, y_val
))
plt
.plot
(nq
.sqrt
(train_errors
), "r-+", linewidth
=2, label
="train")
plt
.plot
(np
.sqrt
(val_errors
), "b-", linewidth
=3, label
="val")
plt
.legend
(loc
="upper right", fontsize
=14)
plt
.xlabe
("Training set size", fontsize
=14)
plt
.ylabel
("RMSE", fontsize
=14)
转载请注明原文地址:https://ipadbbs.8miu.com/read-19318.html