【问题标题】:Cross Validation for Logistic RegressionLogistic 回归的交叉验证
【发布时间】:2016-06-27 05:07:33
【问题描述】:

我想知道如何在 python 中使用交叉验证来提高我的逻辑回归模型的准确性。正在使用的数据集称为“iris”。我已经成功地对 SVM 模型使用了交叉验证,但我正在努力调整我的代码以对逻辑回归模型做同样的事情。到目前为止,这是我的代码:

from sklearn import cross_validation
from sklearn import datasets, linear_model
iris = datasets.load_iris()
x_iris = iris.data
y_iris = iris.target
svc = svm.SVC(C=1, kernel='linear')
k_fold = cross_validation.StratifiedKFold(y_iris, n_folds=10)  
# labels, the     number of folders
#for train, test in k_fold:
#    print train, test
scores = cross_validation.cross_val_score(svc, x_iris, y_iris, cv=k_fold,     scoring='accuracy') 
# clf.fit() is repeatedly called inside the cross_validation.cross_val_score()
print scores
print 'average score = ', np.mean(scores)
print 'std of scores = ', np.std(scores)

我必须对代码进行哪些调整才能成功实现逻辑回归模型的交叉验证?

感谢您的帮助。

【问题讨论】:

  • 如果我的回答符合您的需要,请告诉我,否则我会尝试看看您到底想要什么,干杯!

标签: python-2.7


【解决方案1】:
lg = LogisticRegression()
scores = cross_validation.cross_val_score(lg, x_iris, y_iris, cv=k_fold,scoring='accuracy') 
print scores
print 'average score = ', np.mean(scores)
print 'std of scores = ', np.std(scores)

使用默认值分类器创建LogisticRegression 对我来说很好。输出略低于SVM 机器方法,0.9533333333330.973333333333

但对于参数调整,您始终可以使用GridSearchCV,它会自动执行cv 折叠的交叉验证(在下一个示例中,我将像以前一样使用10)尝试所有可能的参数组合。示例:

from sklearn import grid_search
parameters = {
            'penalty':['l2'],
            'C':[1,10,100],
            'solver': ['newton-cg', 'lbfgs', 'liblinear', 'sag'],
        }
GS = grid_search.GridSearchCV(lg, parameters,cv=10,verbose=10)
GS.fit(x_iris,y_iris)
print GS.best_params_ # output: {'penalty': 'l2', 'C': 100, 'solver': 'liblinear'}
print GS.best_score_ # output: 0.98

通过这样做,使用最佳参数创建分类器 LogisticRegression(penalty='l2',C=100,solver='liblinear') 将为您提供 0.98 准确度。

警告:在执行交叉验证时,您最好保存一部分数据以用于测试目的,而这些数据尚未包含在学习过程中。否则,您的学习算法会以一种或另一种方式查看所有数据,您很容易陷入过度拟合。

【讨论】:

    猜你喜欢
    • 2020-05-13
    • 1970-01-01
    • 2016-09-30
    • 2017-11-12
    • 1970-01-01
    • 2017-07-07
    • 2018-09-06
    • 2021-03-28
    • 1970-01-01
    相关资源
    最近更新 更多