【发布时间】:2019-01-02 23:34:17
【问题描述】:
我想通过函数参数指定使用哪种预测方法。比如:
from sklearn.linear_model import LinearRegression
def Process(data_y_train, data_x_train, data_x_test,
model=LinearRegression, predict_method=predict):
model_fit = model().fit(data_x_train, data_y_train)
predicted_values = model_fit.predict_method(data_x_test)
return predicted_values
通过参数model(例如,LinearRegression、LogisticRegression)传递模型函数效果很好,但我无法通过参数predict_method 传递预测方法(例如,predict、predict_proba)。
当我指定predict_method=predict 时,我得到一个错误'name 'predict' is not defined';如果我指定predict_method=LinearRegression.predict,我会收到一条错误消息,提示“LinearRegression”对象没有属性“predict_function”。
this discussion,我也试过了
import sklearn.linear_model.LinearRegression
def Process(data_y_train, data_x_train, data_x_test,
model_module='sklearn.linear_model.LinearRegression',
model=LinearRegression, predict_method='predict'):
model_fit = model().fit(data_x_train, data_y_train)
predict_call = getattr(__import__(model_module), predict_method)
predicted_values = model_fit.predict_call(data_x_test)
return predicted_values
但在这里我得到一个错误:没有名为 LinearRegression 的模块。
感谢您的帮助!
【问题讨论】:
-
您能否在预期的输出中进行编辑并尝试使其更小一些? (查看如何制作minimal reproducible example)
标签: python scikit-learn arguments predict