이 오류는 특정 3 열에서만 발생하며 다른 열과 잘 작동합니다.오류 : 기계 학습 알고리즘에 제공하기 위해 데이터 집합을 분할하는 중
오류 : 내 코드
Traceback (most recent call last):
File "/version1/analyze.py", line 447, in <module>
cv_results = model_selection.cross_val_score(model, X_train, Y_train,cv=kfold, scoring=scoring)
File "/usr/lib64/python2.7/site-packages/sklearn/model_selection/_validation.py", line 140, in cross_val_score
for train, test in cv_iter)
fac = 1./(n_samples - n_classes)
ZeroDivisionError: float division by zero
: 난 내 데이터 세트에서 몇 가지 특정 열을 선택한 경우에만
validation_size = 0.20
seed = 10
X_train, X_validation, Y_train, Y_validation = model_selection.train_test_split(X, Y, test_size=validation_size, random_state=seed)
seed = 10
scoring = 'accuracy'
kfold = model_selection.KFold(n_splits=10, random_state=seed)
cv_results = model_selection.cross_val_score(model, X_train, Y_train,cv=kfold, scoring=scoring) #error occurs here
위의 오류가 발생, 그것은 다른 열이 잘 작동!
모든 열은 동일한 데이터 수 및 유사한 종류의 값을 갖습니다.
#code for Split-out validation dataset
array = dataset.values
if field == "rh":
X = array[:,0:8]
elif field == "rm":
X = array[:,0:8]
elif field == "wh":
X = array[:,0:8]
elif field == "wm":
X = array[:,0:8]
else :
print"wrong field"
if field == "rh":
Y = array[:,0] #works fine , even for 4,5,6,7 it works
elif field == "rm": #gives the above error only for 1,2,3
Y = array[:,1] #gives the above error
elif field == "wh": #gives the above error
Y = array[:,2]
elif field == "wm": #gives the above error
Y = array[:,3]
else :
print"wrong field"
이
내 데이터 세트입니다 : index,1column,2 column,3column,….,8column
0,238,240,1103,409,1038,4,67,0
1,41,359,995,467,1317,8,71,0
2,102,616,1168,480,1206,7,59,0
3,0,34,994,181,1115,4,68,0
4,88,1419,1175,413,1060,8,71,0
5,826,10886,1316,6885,2086,263,119,0
6,88,472,1200,652,1047,7,64,0
7,0,322,957,533,1062,11,73,0
8,0,200,1170,421,1038,5,63,0
9,103,1439,1085,1638,1151,29,66,0
10,0,1422,1074,4832,1084,27,74,0
11,1828,754,11030,263845,1209,10,79,0
12,340,1644,11181,175099,4127,13,136,0
13,71,1018,1029,2480,1276,18,66,1
14,0,3077,1116,1696,1129,6,62,0
“”””””
‘”””””
총 105 데이터 레코드
그러나 위의 오류가 1 열 발생하지 않습니다, 그 때 Y = 1 열, 그러나 위 다른 열 2, 3 또는 4를 선택하면 같은 오류가 발생합니다.
'n_samples - n_classes'는 0 일 수 없습니다. – VMRuiz
예,하지만 이것을 처리하는 방법은 무엇입니까? – programmer
'validation_size'를 변경하거나 더 많은 샘플을 추가하십시오. 코드를 실행하거나 데이터 집합을 알지 않고도 추측하기가 어렵습니다. – VMRuiz