【发布时间】:2020-06-13 00:00:20
【问题描述】:
由于某种原因,train_test_split 尽管长度相同且索引看起来相同,但仍会触发此错误。
from sklearn.model_selection import KFold
data = {'col1':[30.5,45,1,99,6,5,4,2,5,7,7,3], 'col2':[99.5, 98, 95, 90,1,5,6,7,4,4,3,3],'col3':[23, 23.6, 3, 90,1,9,60,9,7,2,2,1]}
df = pd.DataFrame(data)
train, test = train_test_split(df, test_size=0.10)
X = train[['col1', 'col2']]
y2 = train['col3']
X = np.array(X)
kf = KFold(n_splits=3, shuffle=True)
for train_index, test_index in kf.split(X):
X_train, y_train = X[train_index], y[train_index]
y 是熊猫系列(与 x 长度相同)。 x 是一个数据框,大约有 20 个数字列转换为 numpy 数组。
由于某种原因,train_test_split 会触发错误,尽管长度相同。
如果我不调用 train_test_split 它可以正常工作。
由于尝试以这种方式索引 numpy 数组而触发错误的最后一行: y[train_ind]
【问题讨论】:
-
您的问题包括缺少参数,例如什么是 r?是吗?折叠?请参阅最小可重现示例stackoverflow.com/help/minimal-reproducible-example
-
你可以试试
xtrain,ytrain = x[train_ind],y[train_ind] -
产生同样的错误和 x[train_ind:],y[train_ind] 给出:只有整数标量数组可以转换为标量索引
-
告诉我们
x- 形状,dtype?还有train_ind
标签: python pandas numpy scikit-learn