回答編集履歴

1

d

2019/10/24 07:22

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -15,3 +15,69 @@
15
15
 
16
16
 
17
17
  [scikit-learnのGridSearchCVでハイパーパラメータ探索 - Qiita](https://qiita.com/saiaron/items/bb96c0f898cd0cbcd788)
18
+
19
+
20
+
21
+ ## 追記
22
+
23
+
24
+
25
+ > GridSearchCVは、使えるレベルに至っておりませんので、とりあえず、手動でいろいろ値を変化させてみようと思います。
26
+
27
+
28
+
29
+ 試行するパラメータを設定して、GridSearchCV オブジェクトを作成し、あとは通常と同じように fit() を呼び出すだけなので、簡単に使えますよ。
30
+
31
+ 以下にサンプルコードを載せておきます。
32
+
33
+
34
+
35
+ ```python
36
+
37
+ import pandas as pd
38
+
39
+ from sklearn.datasets import load_iris
40
+
41
+ from sklearn.model_selection import GridSearchCV, train_test_split
42
+
43
+ from sklearn.svm import SVC
44
+
45
+
46
+
47
+ # データセットを準備する。
48
+
49
+ X, y = load_iris(return_X_y=True)
50
+
51
+ X_train, X_test, y_train, y_test = train_test_split(
52
+
53
+ X, y, test_size=0.15, stratify=y, random_state=0
54
+
55
+ )
56
+
57
+
58
+
59
+ # 試行するパラメータとその値
60
+
61
+ params = {"kernel": ["linear", "rbf"], "C": [0.01, 0.1, 1, 10, 100, 1000]}
62
+
63
+
64
+
65
+ # グリッドサーチする。
66
+
67
+ base_model = SVC(gamma="scale")
68
+
69
+ clf = GridSearchCV(base_model, params, cv=5, return_train_score=False, iid=False)
70
+
71
+ clf.fit(X_train, y_train)
72
+
73
+
74
+
75
+ # 最も精度がいいモデルを取得する。
76
+
77
+ best_clf = clf.best_estimator_
78
+
79
+ print("score: {:.2%}".format(best_clf.score(X_test, y_test))) # score: 100.00%
80
+
81
+ print(clf.best_params_) # {'C': 1, 'kernel': 'linear'}
82
+
83
+ ```