3 回答

TA贡献1843条经验 获得超7个赞
您的方法的一个明显问题是您以一种相当奇特的方式应用 PCA。您通常应该只估计一个变换——在训练数据上——然后用它来变换任何评估集。
通过这种方式,您有点……使用白化批处理规范实现 SVM,这听起来很酷,但至少相当不寻常。所以它需要非常小心。例如,通过这种方式,您无法对单个样本进行分类。尽管如此,它仍然可以作为一种无监督的适应技术。
除此之外,如果不访问您的数据就很难判断。你确定测试集和训练集是不相交的吗?

TA贡献1779条经验 获得超6个赞
在这种情况下,当务之急是模型过度拟合。任何专业评审员都会立即将其返还给调查员。在这种情况下,我怀疑这是使用的统计方法的结果。
我不处理图像,但我会质疑为什么 PCA 被堆叠到 SVM 上。通俗地说,您正在使用两种连续的方法来减少/折叠超维空间。这很可能会导致确定的结果。如果您一次折叠高级维度,为什么要重复它?
PCA 是图像的标准,但后面应该有一些非常简单的东西,比如 K-means。
当然,另一种代替 PCA 的方法是 NMF,如果您觉得 PCA 没有提供所寻求的解决方案,我会推荐它。
否则计算看起来不错。
accuracy = np.sum(np.equal(test_labels, y_pred)) / test_labels.shape[0]
再想一想,准确度指数可能与过拟合无关,IF(这是一种语法强调类型“IF”),test_labels 包含对图像的预测(其中约 50% 是不正确的)。
然而,我只是猜测这就是“test_labels”数据,我们不知道该预测是如何得出的。所以我不确定有足够的信息来回答这个问题。顺便说一句,"shape[0]"
请解释一下好吗?需要吗?
添加回答
举报