2016-08-28 6 views
0

MultinomialNB를 구현했지만이 메시지가 표시됩니다. 그것을 해결하도록 도와주세요. 여기에 내 코드 :IndexError : 인덱스 범위를 벗어남

kf = KFold(len(X), n_folds=2, shuffle=True, random_state=9999) 
 
model_train_index = [] 
 
model_test_index = [] 
 
model = 0 
 

 
for k, (index_train, index_test) in enumerate(kf): 
 
    X_train, X_test, y_train, y_test = X.ix[index_train,:], X.ix[index_test,:],y[index_train], y[index_test] 
 
    clf = MultinomialNB(alpha=0.1).fit(X_train, y_train) 
 
    score = clf.score(X_test, y_test) 
 
    f1score = f1_score(y_test, clf.predict(X_test)) 
 
    precision = precision_score(y_test, clf.predict(X_test)) 
 
    recall = recall_score(y_test, clf.predict(X_test)) 
 
    print('Model %d has accuracy %f with | f1score: %f | precision: %f | recall : %f'%(k,score, f1score, precision, recall)) 
 
    model_train_index.append(index_train) 
 
    model_test_index.append(index_test) 
 
    model+=1

하고이 같은 결과를 얻을 :

IndexError        Traceback (most recent call last) 
 
<ipython-input-3-df0b24edb687> in <module>() 
 
     5 
 
     6 for k, (index_train, index_test) in enumerate(kf): 
 
----> 7  X_train, X_test, y_train, y_test = X.ix[index_train,:], X.ix[index_test,:],y[index_train], y[index_test] 
 
     8  clf = MultinomialNB(alpha=0.1).fit(X_train, y_train) 
 
     9  score = clf.score(X_test, y_test) 
 

 
IndexError: index 100 is out of bounds for axis 0 with size 100

답변

0

파이썬은 제로 기반 색인을 사용하는 경우 너무 X.ix[index_train,:]의 제로 번째 차원 또는 y[index_train]이 100이면 최대 값은 0입니다. f index_train은 유효합니다. index_test에 대해서도 마찬가지입니다.

kf = KFold(len(X), n_folds=2, shuffle=True, random_state=9999) 

에서

뭔가 그 지표 중 하나는 당신이 열거 시간 (KF)에서 그 배열 중 하나 너무 크게 일으키는 원인이된다.

+0

좋아, 설명 및 제안에 대한 감사 표시 – dorayaki

관련 문제