为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 sklearn 管道存储在字典中?

如何将 sklearn 管道存储在字典中?

繁星淼淼 2022-06-14 17:28:46
我试图适应各种管道并将它们存储在字典中,但是每当我从字典中调用特定模型时,它总是返回最后一个管道。如何正确地将管道存储在字典中?for var in vars:    X = X_train[X_train.columns[X_train.columns.str.contains(var)]]    y = Y_train[var]     pipe = Pipeline([('scaler', scaler), ('clf', classifier)])    models[var] = [X.columns,pipe.fit(X,y)]
查看完整描述

1 回答

?
米脂

TA贡献1836条经验 获得超3个赞

将模型存储在字典中的一般方法:


from sklearn.linear_model import LinearRegression

from sklearn import svm


X = [some features]

y = [some labels]


models_dictionary = {}

clf_1 = LinearRegression()

clf_2 = svm.SVR()


models_dictionary["Linear_Regression"] = clf_1

models_dictionary["Support_Vector _Machine"] = clf_2 


# training all models:

for model in models_dictionary:

    models_dictionay[model].fit(X, y)


你的代码:


pipe.fit(X,y)是一个就地功能,这就是您的问题所在。


而不是这一行:


models[var] = [X.columns,pipe.fit(X,y)]

用这个:


pipe.fit(X,y)

models[var] = [X.columns,pipe]

因为pipe.fit(X,y)不返回模型,它只适合存储在pipe.


那么您将能够使用任何管道直接从 预测值models,执行以下操作:


y_predictions = models[some_var][1].predict(X_test)


查看完整回答
反对 回复 2022-06-14
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号