2016-03-30 9 views
5

私はクロスバリデーショングリッド検索を学んでいて、このyoutube playlistに出くわしました。このチュートリアルもipythonノートブックとしてgithubにアップロードされています。 複数のパラメータを同時に検索するセクションではなく、knnを使用する代わりにSVM回帰を使用しています。これは私のコードSVM回帰を使ったScikit-learnグリッド検索

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 

しかし、そのあなたのパラメータ空間から'precomputed'を削除し、このエラーに

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

+0

あなたはそれで完全なPythonのトレースバックを与え、常に引用する必要があります例外が発生した場所に関する情報 – ogrisel

答えて

10

を与えることです。

kernel='precomputed'は、従来の(n_samples, n_features)の矩形データマトリックスではなく、サンプルのペアワイズ類似性を表すデータマトリックス(n_samples, n_samples)を渡すときにのみ使用できます。

カーネルパラメータの意味の詳細については、マニュアルを参照してください:Pythonのエラーを報告する場合

+0

返信ありがとうございますが、このモデルをエクスポートする方法を教えてください。>>>> sklearn.externals import joblib >>> joblib.dump(grid、 'my_model.pkl'、compress = 9) ' – Eka

関連する問題