Нет положительных выборок в y_true, истинное положительное значение должно быть бессмысленным UndefinedMetricWarning) - PullRequest
0 голосов
/ 31 октября 2019

Я использую SVM для классификации изображений, однако я получаю эту ошибку -Нет положительных выборок в y_true, истинное положительное значение должно быть бессмысленным (UndefinedMetricWarning), поэтому AUC - это nan. Я попробовал все решения здесь, но ни одно из них не помогло. Заранее спасибо

Мой проект похож на этот на github- https://github.com/whimian/SVM-Image-Classification

def load_image_files(container_path, dimension=(64, 64)):

image_dir = Path(container_path)
folders = [directory for directory in image_dir.iterdir() if directory.is_dir()]
categories = [fo.name for fo in folders]

descr = "A image classification dataset"
images = []
flat_data = []
target = []
for i, direc in enumerate(folders):
    for file in direc.iterdir():
        img = skimage.io.imread(file)
        img_resized = resize(img, dimension, anti_aliasing=True, mode='reflect')
        flat_data.append(img_resized.flatten()) 
        images.append(img_resized)
        target.append(i)
flat_data = np.array(flat_data)
target = np.array(target)
images = np.array(images)
images = images.reshape(len(images),-1)

return Bunch(data=flat_data,
             target=target,
             target_names=categories,
             images=images,
             DESCR=descr)
image_dataset = load_image_files("/content/drive/My Drive/train/")
X = image_dataset.data 
y= image_dataset.target

y = label_binarize(y, classes=[0, 1,2])

n_classes = y.shape[1]

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3,random_state=0)
clf= OneVsRestClassifier(svm.SVC(kernel='linear',probability=True,random_state=0))

y_score = clf.fit(X_train, y_train).decision_function(X_test)
...