1.仮説を立てる
どの変数が目的変数に影響しているのか仮説を立てる
データの背景知識やドメイン知識を活かす
1.データ確認、前処理
実際どんなデータで格納されているのか確認、
ロジスティック回帰できるように、NULL補完や文字列の数値化、外れ値やスケーリングなど
2.使う特徴量を選ぶ
特徴量を選定。基本的には選んでモデルの指標見て、足したり引いたりする。
相関とかの統計的指標みて判断したりもできるらしい
多重共線性(特徴量同士が強く関連していること)も注意が必要。
変数選択の方法としては、統計的検定(p値)、モデルの係数の大きさ、逐次選択法(前進選択法、後退除去法)
3.データを学習用、検証用に分ける(7:3)
学習用データで学習させてから、検証用データでモデルを評価という流れで、データを2つに分割する
モデルは見たことあるデータについてはほぼ完璧に予測できてしまうため、分割しないと正答率1.0みたいなありえない値になる(過学習) 7:3がちょうどいいらしい
4.ロジスティック回帰でモデル作成
繰り返し回数に関してはよくわからん
scikit-learnのLogisticRegressionはデフォルトで適切に設定されていることが多いらしい
5.性能チェック
モデルによって、「この人の生存確率は0.7だ」のように予測される。それを、0か1に分割する。
当たったか外れたか正解を分析する。
AccuracyとACUで値が違うのは、Accuracyはしきいち0.5の場合、AUCはしきい値を変化させたときの正解率、、、らしい
AUCはしきい値を変化させたときの全体的な性能を表すため、よりモデルの実力を総合的に評価できる
6.ROC曲線を描く
しきい値を0から1まで変化させることで、モデルがどのくらい陽性/陰性をうまく判別できるかを「偽陽性率」と「真陽性率」のペアで表現した曲線
係数が大きいほどその特徴量が予測に強く影響していることを表す
特徴量のスケールにも影響されるので注意が必要(標準化してから見ることが多い)