在 Scikit-learn 中将训练标签拟合到 2D 列表中
Posted
技术标签:
【中文标题】在 Scikit-learn 中将训练标签拟合到 2D 列表中【英文标题】:Fitting Training Labels on a 2D List in Scikit-learn 【发布时间】: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 所说的a
、b
和c
是什么?
a, b, c, a 仅代表我试图应用于二维列表中每一行的示例标签。例如,我想给 [1, 2, 3] 表示的数据一个标签 'a',给 [1, 2, 4, 5, 6] 中的数据一个标签 'b' 等等。
a, b, c, d 需要用双引号括起来.. 因为它们是标签
【参考方案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
应该定义变量
【讨论】:
以上是关于在 Scikit-learn 中将训练标签拟合到 2D 列表中的主要内容,如果未能解决你的问题,请参考以下文章
Scikit-Learn 逻辑回归严重过拟合数字分类训练数据