python交叉验证分类_交叉验证分类

这段代码展示了如何使用K折交叉验证(K-Fold Cross Validation)来评估一个逻辑回归模型。模型在两个类别(No=406,Yes=139)的数据上进行训练,计算每个折叠的准确率和AUC值,并最终给出平均测试准确率和AUC。代码运行结果显示,模型在不平衡数据集上表现良好。
摘要由CSDN通过智能技术生成

我使用以下分类代码得到结果:folds = 5 #number of folds for the cv

#Logistic Regression--

clf = linear_model.LogisticRegression(penalty='l1')

kf = KFold

(len(clas), n_folds=folds)

fold = 1

cms = np.array([[0,0],[0,0]])

accs = []

aucs=[]

for train_index, test_index in kf:

X_train, X_test = docs[train_index], docs[test_index]

y_train, y_test = clas2[train_index], clas2[test_index]

clf.fit(X_train, y_train)

prediction = clf.predict(X_test)

acc = accuracy_score(prediction, y_test)

cm = confusion_matrix(y_test,prediction)

pred_probas = clf.predict_proba(X_test)[:,1]

fpr, tpr, thresholds = metrics.roc_curve(y_test, pred_probas)

print('Test Accuracy for fold {}: {}\n{}'.format(fold,round((acc*100),2),cm))

roc_auc = auc(fpr,tpr)

print('AUC for fold {} : {}'.format(fold,round((roc_auc*100),2)))

fold +=1

cms += cm

accs.append(acc)

aucs.append(roc_auc)

print('CV test accuracy: {}\n{}'.format(round((np.mean(accs)*100),2),cms))

print('\nCV AUC: {}'.format(round(np.mean(aucs)*100),2))

print('\nCV accuracy: %.3f +/- %.3f' % (round((np.mean(accs)*100),2),round((np.std(accs)*100),2)))

print('\nCV ROC AUC: %.3f +/- %.3f' % (round((np.mean(aucs)*100),2),round((np.std(aucs)*100),2)))

print('\nPeak accuracy: '+str(round((np.amax(accs)*100),2)))

print('\nPeak ROC AUC: '+str(round((np.amax(aucs)*100),2)))

我不确定我是不是在做一些扭扭扭的事情,但我有两个班是=406

No=139,代码给出了以下结果

^{pr2}$

一开始我只有17个没有医生,但工作很顺利。。有人能指出错误或解释发生了什么吗?在

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值