gpt4 book ai didi

python - 一类 SVM,全部为 -1

转载 作者:行者123 更新时间:2023-12-02 17:59:16 25 4
gpt4 key购买 nike

我正在进行二元分类,仅对图像返回"is"或“否”。由于我只获得了一个类别的图像,因此我想在“目标”和“异常值”之间进行分类。

例如,我正在对消防员进行分类。 enter image description here

我正在使用 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)
<小时/>

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

print clf.predict (X_train)

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

最佳答案

您可以通过计算分数样本来设置阈值级别。例如

clf = OneClassSVM()        
y_scores = clf.score_samples(test)

您需要自行检查哪个阈值更好。您可以通过在异常类的一些数据上运行模型来检查这一点,并检查您得到的答案低于哪个阈值。分数样本越少,异常值就越多。

关于python - 一类 SVM,全部为 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37406510/

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