【问题标题】:Fitting Training Labels on a 2D List in Scikit-learn在 Scikit-learn 中将训练标签拟合到 2D 列表中
【发布时间】:2020-03-16 13:57:18
【问题描述】:

我正在尝试使用 Scikit-learn 将 2d 中的行映射到标签列表中的元素。

例如:

from sklearn import tree
clf = DecisionTreeClassifier()

#2D list of training data:
training_data = [[1, 2, 3], [1, 2, 4, 5, 6], [5, 7], [1, 2, 3]]

#1D list of training labels:
training_labels = ['a', 'b', 'c', 'a']

clf = clf.fit(training_data, training_labels)

当我运行代码时,我得到“ValueError: setting an array element with a sequence。”

我想知道如何正确转换数据,以便我可以用训练标签拟合测试数据。

【问题讨论】:

  • a,b,c,a 是什么?
  • testing_data 也应该具有相同的维度
  • 您适合training_data,但您分享的代码并未显示training_data 是什么,以及@makis 所说的abc 是什么?
  • a, b, c, a 仅代表我试图应用于二维列表中每一行的示例标签。例如,我想给 [1, 2, 3] 表示的数据一个标签 'a',给 [1, 2, 4, 5, 6] 中的数据一个标签 'b' 等等。
  • a, b, c, d 需要用双引号括起来.. 因为它们是标签

标签: python scikit-learn classification training-data


【解决方案1】:
testing_data = [[1, 2, 3], [1, 2, 4, 5, 6], [5, 7], [1, 2, 3]]

如果每个子列表都被视为一个样本,那么每个样本的维度不同。 在这种情况下,无法拟合模型。

你的意思也可能是:

 training_labels = ["a", "b", "c", "a"]

否则,a,b,c 应该定义变量

【讨论】: