2016-03-30 37 views
5

Uczę się sprawdzania sieci sprawdzania poprawności i natknąłem się na to youtube playlist, a samouczek został również przesłany do github jako notatnik do ipythona. Próbuję odtworzyć kody w sekcji Przeszukując wiele parametrów jednocześnie,, ale zamiast używać knn używam Regresji SVM. To jest mój kodScikit-uczenie siatka z regresem SVM

from sklearn.datasets import load_iris 
from sklearn import svm 
from sklearn.grid_search import GridSearchCV 
import matplotlib.pyplot as plt 
import numpy as np 
iris = load_iris() 
X = iris.data 
y = iris.target 

k=['rbf', 'linear','poly','sigmoid','precomputed'] 
c= range(1,100) 
g=np.arange(1e-4,1e-2,0.0001) 
g=g.tolist() 
param_grid=dict(kernel=k, C=c, gamma=g) 
print param_grid 
svr=svm.SVC() 
grid = GridSearchCV(svr, param_grid, cv=5,scoring='accuracy') 
grid.fit(X, y) 
print() 
print("Grid scores on development set:") 
print() 
print grid.grid_scores_ 
print("Best parameters set found on development set:") 
print() 
print(grid.best_params_) 
print("Grid best score:") 
print() 
print (grid.best_score_) 
# create a list of the mean scores only 
grid_mean_scores = [result.mean_validation_score for result in grid.grid_scores_] 
print grid_mean_scores 

Ale jej daje ten błąd

raise ValueError("X should be a square kernel matrix") ValueError: X should be a square kernel matrix

+0

Przy zgłaszaniu błędu Python należy zawsze podawać pełny Pythona traceback co daje informacje o tym, gdzie został zgłoszony wyjątek. – ogrisel

Odpowiedz

10

Usuń 'precomputed' z przestrzeni parametrów.

kernel='precomputed' mogą być stosowane tylko przy przejściu matrycę (n_samples, n_samples) danych reprezentujący parami podobieństwa dla próbek zamiast tradycyjnego (n_samples, n_features) prostokątnego macierzy danych.

Zobacz dokumentację po więcej szczegółów na temat znaczenia parametru jądra:

+0

Hej, dziękuję za odpowiedź, ale czy możesz mi powiedzieć, jak możemy wyeksportować ten model, to jest poprawna metoda '>>> od sklearn.externals import joblib >>> joblib.dump (grid, 'my_model.pkl', compress = 9) ' – Eka