2017-01-03 9 views
1

Я пытаюсь классифицировать изображения, используя sklearn классификатор svm.SVC, но он не учится, после обучения я получил точность 0,1 (10 классов, поэтому точность 0,1 такая же, как случайная догадка)sklearn support vector machine не учится

Я использую datatset CIFAR-10. 10000 изображений, которые представлены как 3072 uint8 s. Первые 1024 - это красные пиксели, а второй 1024 - зеленые пиксели, а жажда 1024 - это синие пиксели.

Каждое изображение имеет метку, которая является номером 0-9

Вот мой код:

import numpy as np 
from sklearn import preprocessing, svm 
import pandas as pd 
import pickle 
from sklearn.externals import joblib 

train_data = pickle.load(open('data_batch_1','rb'), encoding='latin1') 
test_data = pickle.load(open('test_batch','rb'), encoding='latin1') 

X_train = np.array(train_data['data']) 
y_train = np.array(train_data['labels']) 
X_test = np.array(test_data['data']) 
y_test = np.array(test_data['labels']) 

clf = svm.SVC(verbose=True) 
clf.fit(X_train, y_train) 

accuracy = clf.score(X_test, y_test) 

joblib.dump(clf, 'Cifar-10-clf.pickle') 

print(accuracy) 

Кто-нибудь знает, что может быть моя проблема или может указывать мне на ресурсы для решения это?

ответ

3

Я не уверен, но я думаю, что вам нужно настроить параметры SVC.

Я проверил некоторые параметры для обучения, тогда я получил точность 0.318.

здесь код:

# coding: utf-8 

import numpy as np 
from sklearn import preprocessing, svm 
import cPickle 

train_data = cPickle.load(open('data/data_batch_1', 'rb')) 
test_data = cPickle.load(open('data/test_batch', 'rb')) 

X_train = np.array(train_data['data']) 
y_train = np.array(train_data['labels']) 
X_test = np.array(test_data['data'][:1000]) 
y_test = np.array(test_data['labels'][:1000]) 

clf = svm.SVC(kernel='linear', C=10, gamma=0.01) 
clf.fit(X_train, y_train) 

accuracy = clf.score(X_test, y_test) 

print "Accuracy: ", accuracy 

И я рекомендую grid search function для автоматической настройки гипер-параметров.

This является общедоступным документом об tuning the hyper-parameters в scikit-learn

 Смежные вопросы

  • Нет связанных вопросов^_^