■Titanicで作成したnotebook一覧
notebook:
- 新規特徴量作成実験_notebook
- 飽きてきたので、グラフを眺めて思いつくままに変数を組み合わせて新しい特徴量を作成し、効果を検証
- モデルに利用する特徴量は、Wrapper Methodで一番訓練スコアが高い特徴量の組み合わせを自動抽出
- 結果
- 特徴量自動抽出で3変数抽出された。その3変数でRandom Forestを組んだのが一番スコアが高かった。3変数のみで作ったモデルが、Ver1~Ver7での最高スコアと同じスコアとなった。
- 少ない変数で、それなりのスコアがでることがわかったので、できるだけ少ない変数でモデルを作ることで、機械学習の計算時間短縮につなげることができそうだ。
- notebook Ver.7
- 特徴量の削除
- スコア:Ver6と変わらず
- notebook Ver.6
- Fare, Age以外は、one-hotエンコーディング
- スコア:0.78947
- notebook Ver.5
- 2変数を合体して新しい変数を6つ作成(Pclass&Sex, Pclass&Embarkedなど)
- Random Forestで特徴量の重要度確認
- Fare, Ageは、ビン分けせず数値のまま利用
- 標準化
- スコア:0.78468
- notebook Ver.4
- カテゴリ変数は、生存率の高い順にLabel encoding
- Fare, Ageもビン分けして生存率の高い順にLabel encoding
- Random Forest追加
- スコア:Ver1と変わらず
- notebook Ver.3
- Ver1とVer2を合体。
- スコアはVer2と変わらず
- notebook Ver.2
- カテゴリ変数はoen-hotでエンコーディング
- FareとAgeを正規化(最小0、最大1)
- FareとAgeから交互作用特徴量を作成
- スコア:0.77990(交互作用特徴量無し)
- スコア:0.775551
- 交互作用特徴量を追加したら返ってスコアが下がったので、交互作用特徴量は使わないことにする。
- notebook Ver.1
- カテゴリ変数の変換方法:生存率を特徴量として利用
- Age, Fareはビンわけしてビンごとの生存率を特徴量として利用
- Logistic regressin, SVM, Gradient Boostingで比較
- スコア:0.77033
■考察
- 特徴量増加実験で、思いつく限り新たに変数を作成してみたが、過学習になってスコアは上がらなかった。
- 高スコアの方々のnotebookを見ると、ほとんど同じ特徴量を作成していたので、それ以外のは作ってもスコアに貢献しないのだと思われる。
- ただし、新規作成した変数3つだけでそれなりのスコアがでたので、より効率的なモデル作成に、新規特徴量作成と特徴量選択は効果がありそうだ。
0コメント