【发布时间】:2020-05-27 05:16:12
【问题描述】:
这是我的代码。在这里,我试图使用梯度提升回归器来预测故障数量。
from sklearn.ensemble import GradientBoostingRegressor
# GradientBoostingRegressor
regr3 = GradientBoostingRegressor(random_state=0)
regr3.fit(X_train, y_train.values.ravel())
pkl_filename = "GradientBoostingRegressor.pkl"
with open(pkl_filename, 'wb') as file:
pickle.dump(regr3, file)
# Load from file
with open(pkl_filename, 'rb') as file:
pickle_model = pickle.load(file)
score = pickle_model.score(X_test, y_test)
print("Test score: {0:.2f} %".format(100 * score))
Ypredict = pickle_model.predict(X_test)
print(Ypredict)
a= Ypredict.reshape(-1,1)
accuracy_score= pickle_model.score(a, y_test)
print(accuracy_score)
在执行时,分数很容易计算 (99.69%)。但准确度没有计算。我还有另一个疑问——我们能否选择一个 test_score 最高的模型作为最佳模型。还是我应该找到准确度并找到准确度最高的那个来获得模型? 遇到的错误是----“模型的特征数必须与输入匹配。模型n_features为52,输入n_features为1”
【问题讨论】:
-
您的代码不是minimal reproducible example - 我们无法执行它并自己查看错误。请edit 并提供完整的minimal reproducible example 以供使用。
a和y_test的形状打印给你什么?看来y_test不正确。 -
谢谢您的回复先生。我会尽快编辑它
标签: python scikit-learn pickle