はじめに
Kaggleで学んだ処理方法をメモしていきます.
みなさんからも是非色々教えて欲しいです.
私が読んだ本をあげておきます.
- Pythonではじめる Kaggleスタートブック
- 前処理大全[データ分析のためのSQL/R/Python実践テクニック]
1 共通事項
1.1 バギング(bootstrap aggregating)
DeepLearningの研究では,手元にあるデータは全て正解もセットであることが多いと思います.
ですが,Kaggleはtestデータの正解ラベルは公開されていませんし,testデータに対する結果で競います.手元にあるデータをTrain・Validation・testに分けるのがセオリーですが,KaggleではTrain・Validationだけに分けて,できる限り多くのデータを学習させるようにします.その中からTrain・Validationの組み合わせを変更して複数のモデルを作成します.それらのモデル全てでテストデータに対して出力を取り,多数決を取って最終的なモデルの出力とします.
1.2 パラメータチューニング
実行する際の良いハイパーパラメータを探します.あんまやったことはないので,手法だけメモしておきます.
- Grid Search
- Hyperopt
- Optuna
2 テーブルデータ
2.1 クラスの数値
テーブルデータはラベルが数値として入っていることがあります.[🐶,🐭,🐱] = [0,1,2]といった具合です.
これをそのまま数値に入れると🐭と🐱より,🐶と🐱のほうが離れているいう入力になります.これはよくないですよね.
ということで,これをClass1・Class2・Class3という3つのパラメータに分けて考えます.例えば,ラベルが🐶の時は"Class =0"と入っていたところを,"Class1 =1"・"Class2 =0"・"Class3 =0"とします.これでクラスをちゃんとクラスとして扱えます.
ですが,これって1000クラスとかになるとまずいんじゃね??とも思います…
解決策求ム
2.2 正規化
テーブルデータには,特徴毎に様々な範囲をとることがあります.例えば一つだけ異常に大きい数値を取る特徴があったとき,そのまま入れると意図しない部分が大きく効いてしまいます.
なので,全ての要素を(0,1)の範囲で正規化することで,全ての特徴量を均等にみてくれるようになります.
3 画像データ
随時追記予定
4 テキストデータ
- Bug of words
- TF-IDF
- Word2vec
随時追記
さいごに
随時追記予定です