在sklearn中计算管道逻辑回归predict_proba

时间:2017-03-01 22:02:58

标签: scikit-learn pipeline pca logistic-regression predict

我有一个包含3个功能和3个类的数据框,我将其拆分为X_train,Y_train,X_test和Y_test,然后使用PCA,StandardScaler和最后的Logistic回归运行Sklearn的Pipeline。我希望能够直接从LR权重和原始数据计算概率,而不使用predict_proba但不知道如何,因为我不确定管道如何通过PCA和StandardScaler将X_test管道化为逻辑回归。这是不现实的,而不能使用PCA和StandardScaler的合适方法?任何帮助将不胜感激!

到目前为止,我有:

pca = PCA(whiten=True)
scaler = StandardScaler()
logistic = LogisticRegression(fit_intercept = True, class_weight = 'balanced', solver = sag, n_jobs = -1, C = 1.0, max_iter = 200)

pipe = Pipeline(steps = [ ('pca', pca), ('scaler', scaler), ('logistic', logistic) ]

pipe.fit(X_train, Y_train)

predict_probs = pipe.predict_proba(X_test)

coefficents = pipe.steps[2][1].coef_ (3 by 30)
intercepts = pipe.steps[2][1].intercept_ (1 by 3)

1 个答案:

答案 0 :(得分:0)

这也是我无法弄清楚的问题,感谢Kumar的回答。 我认为管道将导致 x_test 的新变换,但当我尝试运行由 StandardScalar LogisticRegression 管道时>,并使用 StandardScalar LogisticRegression 运行我自己定义的函数,我发现管道实际上使用转换 x_train 拟合。所以不要担心使用管道,它真的是一个方便实用的机器学习工具!