2016-03-24 14 views
0

Neden bu hatayı aldığımı anlayamıyorum, çünkü açıkça cv = 2 ayarlıyorum, böylece n_fold 3'e eşit olabilir ? kodu çalıştırdıktan sonraValueError: Kat sayısı sayısı n_folds = 3 örnek sayısına göre daha büyük olamaz: 2

import numpy as np 
from sklearn.cross_validation import cross_val_score 
from sklearn.linear_model import LogisticRegressionCV 

classifier = LogisticRegressionCV(scoring='roc_auc') 
x = np.array([[1, 2, 3], [3, 4, 9], [4, 9, 1], [8, 0, 4], [1, 1, 4], [1.1, 2, 4]]) 
y = np.array([True, False, True, False, True, False]) 
cross_val_score(classifier, x, y, cv=2) 

(Ben Kobrayla piton 2 kullanıyorum) alıyorum: ValueError: Numunelerin sayısından daha = 3 büyük kıvrımlar n_folds sayısını değerleri olamaz 2

+0

Hangi hata? Ben hiç bir hata göremiyorum. – MTT

+0

Eh, başlıkta yer aldı. Şimdi soru gövdesine eklendi. – Yurii

cevap

0

Ah benim kullanımını LogisticRegressionCV tamamen yanlıştı. İşte geçerli olan:

import numpy as np 
from sklearn.linear_model import LogisticRegressionCV 

classifier = LogisticRegressionCV(scoring='roc_auc', cv=2) 
classifier.store_cv_values = True 
x = np.array([[1, 2, 3], [3, 4, 9], [4, 9, 1], [8, 0, 4], [1, 1, 4], [1.1, 2, 4]]) 
y = np.array([True, False, True, False, True, False]) 
classifier.fit(x, y) 
+0

ve mükemmel çalışıyor? – MTT

+0

kusursuzca söyleyebilirim – Yurii