gpt4 book ai didi

python - 如何将感知器 scikit-learn 与裁剪后的 svhn 数据集相匹配?

转载 作者:行者123 更新时间:2023-12-04 04:11:12 33 4
gpt4 key购买 nike

我必须在 python 中的 scikit-learn libray 上使用 Perceptron 对 svhn 数据集进行分类,但我不明白为什么准确率分数很低(21%);
数据集是 svhn 数据集裁剪图像格式,我必须以灰度传递图像问题是我的准确率为 21%,这太低了。
这是我使用的代码:

train = sio.loadmat("train_32x32.mat")
test = sio.loadmat("test_32x32.mat")
data = train["X"]
data = np.transpose(data, [3, 0, 1, 2])
data = np.mean(data, axis=3)
X_train = np.zeros(shape=(73257, 1024))
label = train['y'].ravel()
for i in range(73257):
X_train[i] = data[i].flatten()
clf = Perceptron()
clf.fit(X_train, label)
print(clf.score(X_train, label))
predict = clf.predict(X_train)
print(accuracy_score(label, predict))

最佳答案

数据集中的图像是一些 (32,32,3) 矩阵,而感知器将接受一堆数组。

如果数据形状是(n_images,32,32,3),使用:

import numpy as np

data = np.mean(data, axis=3)

获取形状为(n_images,32,32)的灰度图像数组,则:

for i in range(n_images):
X_train[i] = data[i].flatten()

所以你最终得到一个大小为 (n_images,1024) 的矩阵。

您还希望将标签放在n_images-sizes 向量中。

然后设置感知器:

clf = Perceptron()
clf.fit(X_train, y)

关于python - 如何将感知器 scikit-learn 与裁剪后的 svhn 数据集相匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61694751/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com