SKlearn的KFold生成NaN值

时间:2017-04-09 13:20:06

标签: python scikit-learn

我有一个只有1列的功能框,名为X,其中包含浮点值和带有二进制类(1或0)的标签向量y

当我X.isnull().sum()时,它输出0,标签矢量也是如此。但是当我尝试在KFold循环中索引X时,就像这样:

acc = []
for train_ind, test_ind in kf.split(X):
    X_train, X_test = X[train_ind], X[test_ind]
    y_train, y_test = y[train_ind], y[test_ind]

    dtree.fit(X_train, y_train)
    acc.append(accuracy_score(y_test, dtree.predict(X_test)))
    print(acc)
print(np.array(acc).mean())

输出错误Input contains NaN, infinity or a value too large for dtype('float32'). 当我做X_train.insull().sum()时,它输出2.这意味着它在索引时生成2个纳米值。我的索引是否适用于要素和标签向量?

2 个答案:

答案 0 :(得分:1)

不确定是否是这种情况,但我认为y数据框中缺少某些索引。在运行循环之前尝试重置它:

y.reset_index(drop=True)

答案 1 :(得分:0)

根据@Utkarsh Sah所说,问题是y数据帧中缺少一些索引。在使用y数据框之前,请重置索引:

y=y.reset_index(drop=True)
相关问题