我使用sklearn运行了KNN回归模型,并使用joblib成功保存了该模型。我需要在不同的过程中加载它以预测新数据。我希望加载的模型也具有训练集中的所有数据(df_x),因为我需要用它来预测新数据。 当我在同一过程中加载模型时,它可以正常工作:
import pandas as pd
from sklearn.neighbors import KNeighborsRegressor
import joblib
df_x = pd.read_csv(r'.../df_x.csv',index_col=0)
df_y = pd.read_csv(r'.../df_y.csv',index_col=0)
def mydist(x):
return 1/(x+1)
model = KNeighborsRegressor(n_neighbors = 15,weights = mydist)
model.fit(df_x,df_y)
filename = 'knn.joblib'
joblib.dump(model, filename)
model = joblib.load(filename)
但是,当我在另一个进程中加载它时,会引发错误
import joblib
filename = 'knn.joblib'
model = joblib.load(filename)
AttributeError:模块' main '没有属性'mydist'
当我用泡菜做同样的事情时,我也得到了完全一样的错误消息。我正在使用Windows 10