sklearnのgrid_searchを使い最適なSVMパラメータを求める方法
前回のソースではgrid_searchの使い方が誤っていたので修正。
cross_validationはしてくれそう
fitを呼び出すときに、学習用データ、テスト用データに分割とか考えなくてデータ全部ぶち込めばよさそう。
SVMのアルゴリズムごとにパラメータが違う場合
カーネル関数rbfとlinearで同時に検証する方法が分からなかった。
とりあえず、カーネル関数毎によびだせばいいか・・
clf = svm.SVC() tuned_parameters = {'kernel': ['rbf'], 'gamma': [4, 2, 1, 1e-1, 1e-2, 1e-3, 1e-4], 'C': [1, 2, 4, 8, 16, 32, 64, 128 ,256, 512]} grid = grid_search.GridSearchCV(estimator=clf, param_grid=tuned_parameters) grid.fit(features, labels) print (grid.grid_scores_) tuned_parameters = {'kernel': ['linear'], 'C': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 50, 100, 500, 1000]} grid = grid_search.GridSearchCV(estimator=clf, param_grid=tuned_parameters) grid.fit(features, labels) print (grid.grid_scores_)
ベストスコアは62.689(rbf,C=64,gamma=0.01)に後退してしまったけど、これが正しい値でしょう。
解析部分はこれでいい感じになったと思うのでデータの次元をもうすこし
増やしてみよう。欧州の株価を入れてみるかな。