如何用数组训练分类器?
Posted
技术标签:
【中文标题】如何用数组训练分类器?【英文标题】:How to train a classifier with an array of arrays? 【发布时间】:2016-08-07 15:05:51 【问题描述】:我想使用decision tree classifier
来预测某事。
如您所见:
from sklearn import tree
sample1 = [120,1]
sample2 = [123,3]
features = [sample1,sample2]
labels = [0,1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(features, labels)
我有两个样本:
示例一:[120,1]
,我将其标记为0
示例二:[123,3]
,我将其标记为1
到目前为止一切顺利。
但是现在,我想使用数组来训练,而不是这个样本,比如:
features = [[120,120.2][1, 1.2]]
此示例的相应标签是:
label = [1]
所以我的代码应该是:
from sklearn import tree
features = [[120,120.2][1, 1.2]]
labels = [1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(features, labels)
我收到以下error
:
TypeError:列表索引必须是整数,而不是元组
我知道分类器需要一个整数列表,而不是元组。 一个解决方案可能是:
features = [[120, 120.2, 1, 1.2]]
labels = [1]
但我不想混淆数据,因为我将它单独放入数组中。
有什么方法可以用数据数组训练我的分类器?
谢谢
【问题讨论】:
我个人会选择features = [[120, 120.2, 1, 1.2]]
。以前从未将元组视为一项功能,我认为您提出的解决方案没有任何问题。
【参考方案1】:
不,您不能对数据使用这种格式,您需要将它们聚合到一个数组中。
expected shape 是 (n_samples, n_features)。
这更合乎逻辑,因为一个例子是由一些特征描述的,并且通过使用预期的格式,它可以更好地描述你的数据。
【讨论】:
以上是关于如何用数组训练分类器?的主要内容,如果未能解决你的问题,请参考以下文章