一类 SVM,全部为 -1

VIC*_*TOR 5 python image svm scikit-learn

我正在做一个二元分类,只返回图像的“是”或“否由于我只获得了一个类别的图像,所以我想在“目标”和“异常值”之间进行分类。

例如,我正在对消防员进行分类。 在此输入图像描述

我正在使用 Scikit Learn svm.OneClassSVM()。然而,在训练模型之后,即使是预测训练数据,我每次都得到“-1”。

这是我的代码:

X_train = []
for subdir, dirs, files in os.walk("training"):
    for imagePath in files:
        print ("path = ", imagePath)
        img = Image.open(os.path.join(subdir, imagePath))
        img = img.resize(sample_size, PIL.Image.ANTIALIAS)
        img = np.array(img)
        img = img[:,:,0]
        img = img.reshape(1, img.shape[0]* img.shape[1])
        X_train.append(img[0])

clf = svm.OneClassSVM(nu=0.1, kernel="rbf", gamma=0.1)
clf.fit(X_train)
Run Code Online (Sandbox Code Playgroud)

然后我预测“训练数据”的结果

print clf.predict (X_train)
Run Code Online (Sandbox Code Playgroud)

然而,我仍然得到所有“-1”。谁能告诉我出了什么问题吗?

Kap*_*csi 0

最有可能的是超参数调整。伽玛可能应该低很多。

你的训练示例“img[0]”的最终形状是什么?