Python MLPClassizer无法适应给定的训练标签

Python MLPClassizer无法适应给定的训练标签,python,scikit-learn,Python,Scikit Learn,所以我有一个20000条记录的csv。第一列是标签列,每行由一个字母组成。其他列是属性,如宽度、高度等。我导入它并将每条记录复制到一个数组中 with open('Letter.csv') as f: reader = csv.reader(f) annotated_data = [r for r in reader] 现在我想将数据拆分为80-10-10拆分,而不使用train\u test\u split。因此,我: train_test_divide = int(0.8 * len(an

所以我有一个20000条记录的csv。第一列是标签列,每行由一个字母组成。其他列是属性,如宽度、高度等。我导入它并将每条记录复制到一个数组中

with open('Letter.csv') as f:
reader = csv.reader(f)
annotated_data = [r for r in reader]
现在我想将数据拆分为80-10-10拆分,而不使用
train\u test\u split
。因此,我:

train_test_divide = int(0.8 * len(annotated_data))
X_train, X_test = annotated_data[:train_divide], annotated_data[train_divide:]
同样,对于其他10-10分割。所以现在我想把标签列复制到它自己的数组中,这样我就可以把它放入一个MLPClassizer
mlp.fit(X\u-train,y\u-train)

我试过:

for row in X_train:
y_train = row[0] 
我得到的
len
1
,而
np.shape
()
,所以我知道这已经错了

于是我试着:

y_test = [row[0] for row in X_train]

当我打印这个
len
时,我得到16000,这是我想要的。如果我打印这个
np.shape
,我会再次得到我想要的
(16000,)
。但是现在,如果我尝试
mlp.fit(X\u-train,y\u-train)
这个,我会得到一个错误,说
不能将数组数据从dtype('float64')转换为dtype('我可以建议您使用的方法,它通过pandas和sklearn-train\u-test\u-split工作

import pandas as pd
df = pd.read_csv('Letter.csv')
labels = df[df.columns[0]] # Column 0 because you say it is the first one, but check this index. 
# Better if you name the columns and call them by name
features = df[df.columns[1:]] # Again, check the content of features

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(features, labels, test_size=0.2)
如果

每行由一个字母组成

您的意思是,每一行都包含字符串,但在将字符串提供给您的ML模型之前,您可能需要对字符串进行矢量化


您可以发布csv文件的前几行吗?

很抱歉,我不想使用
train\u test\u split
。我使用种子进行洗牌。我还发布了前两行的示例