【发布时间】:2019-01-01 19:58:31
【问题描述】:
我正在尝试制作一个 sklearn 图像分类器,但我无法将数据放入分类器中。
x_train = np.array(im_matrix)
y_train = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1]
clf = GaussianNB()
clf.fit(x_train, y_train)
clf.fit(x_train, y_train) 我收到以下错误:
ValueError: 使用序列设置数组元素。
im_matrix 是一个包含图像矩阵的数组:
for file in files:
path = os.path.join(root, file)
im_matrix.append(mpimg.imread(path))
x_train 的形状是 (10, 1) y_train 的形状是 (10,)
我猜问题在于 x_train 的形状很奇怪:
array([array([[[227, 255, 233],
[227, 255, 233],
[227, 255, 233],
...,
[175, 140, 160],
[175, 140, 160],
[175, 140, 160]],
[[227, 255, 233],
[227, 255, 233],
[227, 255, 233],
...,
[174, 139, 159],
[174, 139, 159],
[174, 139, 159]],
[[227, 255, 233],
[227, 255, 233],
[227, 255, 233],
...,
[173, 138, 158],
[173, 138, 158],
[173, 138, 158]],
...,
[[199, 222, 253],
[121, 142, 169],
[ 13, 34, 55],
...,
[ 31, 40, 49],
[ 31, 40, 49],
[ 32, 41, 50]],
[[187, 206, 246],
[ 80, 98, 134],
[ 0, 13, 41],
...,
[ 36, 44, 63],
[ 35, 43, 62],
[ 35, 43, 62]],
[[187, 206, 246],
[ 80, 98, 134],
[ 0, 13, 41],
...,
[ 36, 44, 63],
[ 35, 43, 62],
[ 35, 43, 62]]], dtype=uint8),
这已经在这里问了好几次了,但我找不到解决办法。任何帮助将不胜感激
【问题讨论】:
-
您有一组 3-d 图像(RGB 颜色)。所以你的数据目前是 4-d。这不适用于 scikit。所有 scikit 估计器仅适用于二维数据。所以需要将图像数据reshape为单个向量,然后追加到
im_matrix。
标签: python-3.x image machine-learning scikit-learn classification