0
나는 분류 결과를 얻기 위해 다음 코드를 사용하고
: 뭔가의 결선을하고있는 중이 야하지만 난 2 개 클래스 예있는 경우교차 검증 분류 오류
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 없음 = 139, 및 처음에 난 그냥 17 개 없음 문서 없었다 코드는
Test Accuracy for fold 1: 87.16
[[94 9]
[ 5 1]]
AUC for fold 1 : 66.1
Test Accuracy for fold 2: 92.66
[[100 6]
[ 2 1]]
AUC for fold 2 : 62.42
Test Accuracy for fold 3: 90.83
[[99 7]
[ 3 0]]
AUC for fold 3 : 43.08
Test Accuracy for fold 4: 88.07
[[83 8]
[ 5 13]]
AUC for fold 4 : 85.5
Test Accuracy for fold 5: 53.21
[[ 0 0]
[51 58]]
AUC for fold 5 : nan
CV test accuracy: 82.39
[[376 30]
[ 66 73]]
CV AUC: nan
CV accuracy: 82.390 +/- 14.720
CV ROC AUC: nan +/- nan
Peak accuracy: 92.66
Peak ROC AUC: nan
C:\Users\kkothari\AppData\Local\Continuum\Anaconda3\lib\site-packages\sklearn\metrics\ranking.py:530: UndefinedMetricWarning: No negative samples in y_true, false positive value should be meaningless
UndefinedMetricWarning)
C:\Users\kkothari\AppData\Local\Continuum\Anaconda3\lib\site-packages\sklearn\metrics\ranking.py:95: RuntimeWarning: invalid value encountered in less
if np.any(dx < 0):
결과
다음 날주고 있지만 잘 작동했다 ... 누군가가 어떤 실수를 지적하거나 무슨 일이 일어나고 있는지 설명 할 수 있습니까?
무엇이 질문입니까? –
나는 경고를 얻고있다 .. 나는 그것에 대해 더 알고 싶다. ..이 문제를 해결할 수있는 방법이있다. 데이터가 더 비뚤어 졌을 때 나는 그것을 얻지 못했다. 예 = 406 및 NO = 17. 문서 없음이 오류/경고가 표시되고 AUC 결과가 좋지 않음 –