I'd like to specify which prediction method to use via function argument. Something like:
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
Passing the model function via arugment model
(e.g., LinearRegression, LogisticRegression) works well, but I'm having trouble passing the predict method (e.g., predict, predict_proba) via argument predict_method
.
When I specify predict_method=predict
, I get an error of 'name 'predict' is not defined'; if I specify predict_method=LinearRegression.predict
, I get an error saying ''LinearRegression' object has no attribute 'predict_function''.
Per this discussion, I also tried
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
But here I get an error: No module named LinearRegression.
Thank you for your help!