我想用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)
Run Code Online (Sandbox Code Playgroud) 我试图理解使用sklearn python模块中的kfolds交叉验证.
我理解基本流程:
model = LogisticRegression()model.fit(xtrain, ytrain)model.predict(ytest)我很困惑的地方是使用具有交叉val分数的sklearn kfolds.据我了解,cross_val_score函数将适合模型并在kfolds上进行预测,为每个折叠提供准确度分数.
例如使用这样的代码:
kf = KFold(n=data.shape[0], n_folds=5, shuffle=True, random_state=8)
lr = linear_model.LogisticRegression()
accuracies = cross_val_score(lr, X_train,y_train, scoring='accuracy', cv = kf)
Run Code Online (Sandbox Code Playgroud)
因此,如果我有一个包含训练和测试数据的数据集,并且我使用cross_val_scorekfolds函数来确定算法对每个折叠的训练数据的准确性,那么model现在是否适合并准备好对测试数据进行预测?所以在上面的情况下使用lr.predict
谢谢你的帮助.