gpt4 book ai didi

python - 使用一类 svm 测试集的错误率为 100%

转载 作者:行者123 更新时间:2023-11-30 09:15:08 25 4
gpt4 key购买 nike

我正在尝试检测异常图像。但我从模型中得到了奇怪的结果。

我已经用 cv2 读取了图像,将它们展平为一维数组,并将它们转换为 pandas 数据帧,然后将其输入到 SVM 中。

import numpy as np
import cv2
import glob
import pandas as pd
import sys, os
import matplotlib.pyplot as plt
from sklearn import svm
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn import *
import seaborn as sns`

加载标签和文件

labels_wt = np.loadtxt("labels_wt.txt", delimiter="\t", dtype="str")
files_wt = np.loadtxt("files_wt.txt", delimiter="\t", dtype="str")`

加载并拼合图像

wt_images_tmp = [cv2.imread(file) for file in files_wt]
wt_images = [image.flatten() for image in wt_images_tmp]
tmp3 = np.array(wt_images)
mutant_images_tmp = [cv2.imread(file) for file in files_mut]
mutant_images = [image.flatten() for image in mutant_images_tmp]
tmp4 = np.array(mutant_images)


X = pd.DataFrame(tmp3) #load the wild-type images
y = pd.Series(labels_wt)
X_train, X_test, y_train, y_test= train_test_split(X, y, test_size=0.2, random_state=42)
X_outliers = pd.DataFrame(tmp4)
clf = svm.OneClassSVM(nu=0.15, kernel="rbf", gamma=0.0001)
clf.fit(X_train)

然后我根据 sklearn 教程对 oneclass SVM 评估结果。

y_pred_train = clf.predict(X_train)
y_pred_test = clf.predict(X_test)
y_pred_outliers = clf.predict(X_outliers)
n_error_train = y_pred_train[y_pred_train == -1].size
n_error_test = y_pred_test[y_pred_test == -1].size
n_error_outliers = y_pred_outliers[y_pred_outliers == 1].size

print(n_error_train / len(y_pred_train))
print(float(n_error_test) / float(len(y_pred_test)))
print(n_error_outliers / len(y_pred_outliers))`

我在训练集上的错误率是可变的(10-30%),但在测试集上,它们从未低于 100%。我这样做错了吗?

最佳答案

我的猜测是,您正在设置 random_state = 42,这会导致您的 train_test_split 始终具有相同的分割模式。您可以在this中阅读更多相关信息。回答。不要指定任何状态并再次运行代码,因此:

X_train, X_test, y_train, y_test= train_test_split(X, y, test_size=0.2)

这将显示不同的结果。一旦您确定这有效,请确保执行 cross-validation ,可能使用 k 倍验证。让我们知道这是否有帮助。

关于python - 使用一类 svm 测试集的错误率为 100%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57747446/

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