我正在尝试在MNIST数据集上实现SVM分类器。由于我的参数是3维的,它抛出了以下错误:
ValueError: Found array with dim 3. Expected <= 2以下是我的代码片段:
import mnist
from sklearn import svm
training_images, training_labels = mnist.load_mnist("training", digits = [1,2,3,4])
classifier = svm.SVC()
classifier.fit(training_images, training_labels)sklearn是否支持多维分类器?
发布于 2015-10-16 13:07:33
问题出在输入数据上。
您还可以使用sklearn加载数字数据集:
from sklearn.datasets import load_digits
from sklearn import svm
digits = load_digits()
X = digits.data
y = digits.target
classifier = svm.SVC()
classifier.fit(X[:1000], y[:1000])
predictions = classifier.predict(X[1000:])发布于 2016-01-26 09:36:31
解决这个问题的一种选择是将输入数据重塑为一个二维数组。
让我们假设您的训练数据由10个图像组成,每个图像都表示为3x3矩阵,因此您的输入数据是3维的。
[ [[1,2,3], [[1,2,3], [
[4,5,6], [4,5,6], image 10
[7,8,9]] , [7,8,9]] , ... , ] ]我们可以将每个图像转换为9个元素的数组,以便将数据集转换为2维数据集。
dataset_size = len(training_images)
TwoDim_dataset = dataset.reshape(dataset_size,-1)这会将数据转换为以下形状:
[ [1,2,3,4,5,6,7,8,9] , [1,2,3,4,5,6,7,8,9] , ... , [image 10] ]https://stackoverflow.com/questions/33162871
复制相似问题