我正在使用其他人的 Scikit-Learn 代码来构建预测工具。原始代码工作得很好,但我需要添加sample_weight
到预测工具中。
在不同的文档中搜索了解决方案后,我发现主要问题是 Scikit-Learn 中的管道不能sample_weight
很好地支持。
# creating pipeline
pipeline = make_pipeline(preprocessing.StandardScaler(), RandomForestRegressor(n_estimators=100))
hyperparameters = {'randomforestregressor__max_features': ['auto'],
'randomforestregressor__max_depth': [None] }
clf = GridSearchCV(pipeline, hyperparameters, cv=10, verbose=10)
clf.fit(X_train, Y_train
# , fit_params={'sample_weight': W_train}
# , fit_params={'sample_weight':W_train}
# , **{'randomforestregressor__sample_weight': W_train}
)
# testing model
pred = clf.predict(X_test)
r2_score(Y_test, pred)
mean_squared_error(Y_test, pred)
print(r2_score(Y_test, pred))
print(mean_squared_error(Y_test, pred))
# 保存模型以便将来使用
joblib.dump(clf, 'rf_regressor.pkl')
我试图插入sample_weight
不同的位置,但都显示失败。谁能帮我告诉我在哪里插入sample_weight
with pipeline
,或者在不使用的情况下实现这些步骤(包括sample_weight
)pipeline
?