我想用Logistic回归模型预测交叉验证的概率.我知道您可以获得交叉验证分数,但是可以从predict_proba而不是分数返回值吗?
# imports
from sklearn.linear_model import LogisticRegression
from sklearn.cross_validation import (StratifiedKFold, cross_val_score,
train_test_split)
from sklearn import datasets
# setup data
iris = datasets.load_iris()
X = iris.data
y = iris.target
# setup model
cv = StratifiedKFold(y, 10)
logreg = LogisticRegression()
# cross-validation scores
scores = cross_val_score(logreg, X, y, cv=cv)
# predict probabilities
Xtrain, Xtest, ytrain, ytest = train_test_split(X, y)
logreg.fit(Xtrain, ytrain)
proba = logreg.predict_proba(Xtest)
解决方法:
现在,这是作为scikit-learn版本0.18的一部分实现的.您可以将’method’字符串参数传递给cross_val_predict方法.文档是here.
例:
proba = cross_val_predict(logreg, X, y, cv=cv, method='predict_proba')
另请注意,这是新sklearn.model_selection包的一部分,因此您需要进行以下导入:
from sklearn.model_selection import cross_val_predict
标签:cross-validation,logistic-regression,python,scikit-learn
来源: https://codeday.me/bug/20190928/1828505.html