Я использую код 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
с pipeline
на месте,
ИЛИ реализовать шаги (включая sample_weight
) без использования pipeline
?