Scikit learn 计算管道logistic回归预测sklearn中的概率

Scikit learn 计算管道logistic回归预测sklearn中的概率,scikit-learn,pipeline,pca,logistic-regression,predict,Scikit Learn,Pipeline,Pca,Logistic Regression,Predict,我有一个包含3个特性和3个类的数据框架,我将其分为X_-train、Y_-train、X_-test和Y_-test,然后使用PCA、StandardScaler和Logistic回归运行Sklearn的管道。我希望能够直接从LR权重和原始数据计算概率,而不使用预测概率,但不知道如何计算,因为我不确定管道X_测试是如何通过PCA和StandardScaler进入逻辑回归的。在不使用PCA和StandardScaler拟合方法的情况下,这是否现实?任何帮助都将不胜感激 到目前为止,我已经: pca

我有一个包含3个特性和3个类的数据框架,我将其分为X_-train、Y_-train、X_-test和Y_-test,然后使用PCA、StandardScaler和Logistic回归运行Sklearn的管道。我希望能够直接从LR权重和原始数据计算概率,而不使用预测概率,但不知道如何计算,因为我不确定管道X_测试是如何通过PCA和StandardScaler进入逻辑回归的。在不使用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)

这也是我不明白的问题,谢谢库马尔的回答。
我认为管道将导致x_测试的新转换,但当我尝试运行由StandardScalarLogisticRegression组成的管道,并使用StandardScalarLogisticRegression运行我自己定义的函数时,我发现管道实际上使用了x_train拟合的变换。所以不用担心使用管道,它真的是一个方便和有用的机器学习工具

X_序列和X_测试必须经过完全相同的转换才能使预测结果正确。使用
管道有什么问题。预测概率(X_测试)
?如果您担心在
管道中,如果您发送
X_测试
pca
定标器
将再次适合,那么不要担心。只有
transform
会在它们中被调用,并且
logistic
上会调用
predict\u probas
。pipe.predict\u proba(X\u test)的问题是新的测试数据将被手动实时输入,所以我想我只需要一种方法来进行转换。当PCA和scaler变换X_测试时,它只是使用X_序列中的拟合参数,对吗?是的。管道的行为与任何其他估计器一样。对训练数据进行
fit
,对测试数据只调用
predict
transform
。在管道上调用
predict\u proba
时,除最后一个之外的所有估计器将只调用
transform
,然后进一步传递数据。最后一个将调用
predict\u proba