【发布时间】:2015-06-12 20:46:39
【问题描述】:
我正在尝试使用scikit-learn 与三维训练数据和二维目标数据来做一个决策树。作为一个简单的例子,想象一个 rgb 图像。假设我的目标数据是 1 和 0,其中 1 表示存在人脸,而 0 表示不存在。举个例子:
red green blue face presence
1000 0001 0011 0000
0110 0110 0001 0110
0110 0110 0000 0110
一个 rgb 数据数组代表训练数据,二维数组代表我的目标类(人脸、无人脸)。
在 Python 中,这些数组可能如下所示:
rgb = np.array([[[1,0,0,0],[0,1,1,0],[0,1,1,0]],
[[0,0,0,1],[0,1,1,0],[0,1,1,0]],
[[0,0,1,1],[0,0,0,1],[0,0,0,0]]])
face = np.array([[0,0,0,0],[0,1,1,0],[0,1,1,0]])
不幸的是,这不起作用
import numpy as np
from sklearn import tree
dt_clf = tree.DecisionTreeClassifier()
dt_clf = dt_clf.fit(rgb, face)
这会引发此错误:
找到暗淡为 3 的数组。预期
我尝试了几种方法对数据进行整形和展平,但又遇到了另一个错误:
标签数=xxx 与样本数不匹配
有谁知道我可以如何使用tree.DecisionTreeClassifier 来完成此任务?谢谢。
【问题讨论】:
标签: python machine-learning scipy computer-vision scikit-learn