【发布时间】:2022-01-10 13:42:17
【问题描述】:
我正在使用一些 NLTK 类型的教程来尝试 sklearn 学习分类。有人可以帮我理解为什么sklearn MLP neural network 可以处理不同的输入形状而其他分类器不能吗?
我的输入training 数据是numpy.ndarray,形状为(62, 2)
这是我唯一知道如何进行训练测试拆分的事情(如果有更好的建议,欢迎提供任何提示)
train_x = list(training[:,0])
train_y = list(training[:,1])
如果我print(train_y),数据看起来像这样:
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
MLP 分类器似乎工作得很好。
model = MLPClassifier(learning_rate_init=0.0001,max_iter=9000,shuffle=True).fit(train_x, train_y)
但如果我尝试使用其他 sklearn 分类器,例如:
model = GaussianNB().fit(train_x, train_y)
我得到错误:
ValueError: y should be a 1d array, got an array of shape (62, 15) instead.
我想我需要在我的代码中的某处合并.reshape(-1,1),但不确定在哪里。任何提示在这里都不是很多智慧。
【问题讨论】:
标签: python machine-learning scikit-learn classification training-data