get_dummies train test 差分 https://qiita.com/yutowac/items/0052114affbee6fd9cb4 https://shikaolog.com/pandas-dummy-variable-categorical/ |
アルゴリズム |
参考 データ分析初心者向け!主要な予測方法を徹底解説!(前編)
・k近傍法 新しいデータが既存のデータのどのクラスに属するかを、近くのデータポイントを基に決定する
・サポートベクターマシン データを分けるための最適な境界を見つける。非線形問題に対してもカーネルを使って適応できる
・ランダムフォレスト 複数の決定木を使って多数決を行うことで予測を行う手法。過学習を防ぐために有効
・勾配ブースティング決定木 予測の精度を上げるために、弱い予測モデルを繰り返し学習させ、最終的に強いモデルを構築する手法 |
1)初期処理 》 ファイル読み込み、データ確認 |
|
2)欠損値のない数値のみのモデルを作成してベースラインをとる |
Result 0.6751497005988024 0.6502242152466368
|
3)特徴量設計の手法 |
||||||||||||||||||||||||||||||||||||||||||||||||||||
① カテゴリ変数をダミー変数化する 》 get_dummies() ダミー変数化前
ダミー変数化後
Result 0.811377245508982 0.7982062780269058
② 標準化(異なるスケールの特徴量(例えば、年齢と収入)を一貫した形で扱うことができる) 》 StandardScaler() 標準化を行うことによって、特徴量の比率を揃えることが出来る。例えば100点満点のテストと50点満点のテスト があったとして点数の比率、単位が違う場合でも標準化を利用することでそれらの影響を受けずに点数を評価でる。
X_train_scaler array([[-0.46037161, -0.47720996, -0.48380773, ..., 0.90562878, -0.72705166, 0.72705166], [ 2.98532288, 1.95619654, -0.48323058, ..., 0.90562878, 1.37541808, -1.37541808], [ 0.40105202, -0.47720996, -0.32165051, ..., 0.90562878, -0.72705166, 0.72705166], ...,
Result 0.8458083832335329 0.8161434977578476
③ NULLに平均値をセット 》 fillna()
|
4)他のモデルを試して精度を確認 |
・モデル作成までの一連作業
》サポートベクターマシン
Result 0.8458083832335329 0.8161434977578476
》ランダムフォレスト
Result 0.9221556886227545 0.8251121076233184
》勾配ブースティング決定木 - Scikit-Learn
Result 0.8712574850299402 0.8026905829596412 》勾配ブースティング決定木 - XGBoost
Result 0.9041916167664671 0.820627802690583
》一番精度の高かったランダムフォレストのモデルで提出する作業
|
5)説明変数の重要度を確認 |
|
feature_names | coefficiet | |
---|---|---|
2 | Fare | 0.424016 |
6 | Sex_female | 0.180267 |
7 | Sex_male | 0.172370 |
0 | SibSp | 0.063386 |
1 | Parch | 0.062222 |
5 | Pclass_3 | 0.044798 |
3 | Pclass_1 | 0.031634 |
4 | Pclass_2 | 0.021308 |