【发布时间】:2013-03-29 19:28:27
【问题描述】:
我有这些数据:
print training_data
print labels
# prints
[[1, 0, 1, 1], [1, 1, 1, 1], [1, 0, 1, 1], [1, 1, 1, 0], [1, 1, 0, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 0,0], [1, 1, 1, 1], [1, 0, 1, 1]]
['a', 'b', 'a', 'b', 'a', 'b', 'b', 'a', 'a', 'a', 'b']
我正在尝试将它提供给 sklearn python 库中的 RandomForestClassifier。
classifier = RandomForestClassifier(n_estimators=10)
classifier.fit(training_data, labels)
但收到此错误:
Traceback (most recent call last):
File "learn.py", line 52, in <module>
main()
File "learn.py", line 48, in main
classifier = train_classifier()
File "learn.py", line 33, in train_classifier
classifier.fit(training_data, labels)
File "/Library/Python/2.7/site-packages/scikit_learn-0.14_git-py2.7-macosx-10.8-intel.egg/sklearn/ensemble/forest.py", line 348, in fit
y = np.ascontiguousarray(y, dtype=DOUBLE)
File "/Library/Python/2.7/site-packages/numpy-1.8.0.dev_bbcfcf6_20130307-py2.7-macosx-10.8-intel.egg/numpy/core/numeric.py", line 419, in ascontiguousarray
return array(a, dtype, copy=False, order='C', ndmin=1)
ValueError: could not convert string to float: a
我的猜测是我没有正确格式化这些数据以进行拟合。但我不明白为什么来自the documentation
这似乎是一个非常基本、简单的问题。有人知道答案吗?
【问题讨论】:
-
大胆猜测,尝试使用数值:例如而不是
'a'/'b'和0/1。 -
好的,我会的,但这将是一个很大的失望,因为对于决策树,标签不需要是数字的。我无法想象 sklearn 的作者会这样做。
标签: python scikit-learn random-forest