見出し画像

ロジスティック回帰モデル演習で感じたこと|Kaggle Masterによるデータ分析技術者養成講座【R言語版】Day3メモ

◆前回までのメモ

Day1
Day2

◆Day3のテーマ

・ロジスティック回帰モデルの概要理解
・変数の線形加工, 外れ値の丸め
・変数の選定(相関係数の確認)
・Submit(投稿)

◆ロジスティック回帰モデルについて

・一般化線形モデルの一種で、2群分類に対して確率を返すモデル。多くの業種でよく用いられる。
・任意のZの値に対して、pは0~1の値を取る単調増加。
・p/(1-p)の値をオッズといい、2群のある事象の起こる確率に対するオッズの比をオッズ比という。

●参考:オッズ比とリスク比について

◆決定木とのちがい

・カテゴリ変数を用いる場合はダミー変数化が必要。(Rではcaretパッケージを使うと便利)
・連続性:ロジスティック回帰では連続値になる。
・単調性:説明変数の増減と出力値の増減が一定になる。
・逆に交互作用は表現しにくい。
→結果的に直感的に理解しやすい結果となりやすい

◆モデル構築時の注意点

・相関の高い変数がある場合は、一方を説明変数から外すなどの工夫が必要
・説明変数と事象の起こりやすさの関係が非線形の場合は、変数加工により線形化する工夫が必要
・外れ値も引きずられて悪影響を及ぼすので、丸める必要あり。(例ではパーセンタイル点分析を利用)

◆その他

・ロジはテストデータ全体に対して効果のあるモデルを作れるので、データが比較的少ない場合にも効果的。

◆所感

Rを使った場合(おそらくPythonであっても)、数学的理解が乏しくても、モデルの構築自体は既定の関数を利用することですぐに実践できることはよくわかった。ただ、効果的な結果を出そうとすると、データの準備に相応の手間が必要になることも痛感した。一般的にAIやデータ解析は前処理が命だと言われていたが、それがどういうことか少し理解できた気がする。その前処理の内容は、例えば線形化対応などは恣意的な加工にすら思えるほど、かなり踏み込んだ修正に思えたが、モデルの原理を理解し、学習しやすい形へデータに意味を与えていく過程は、経験と深い原理理解が求められる世界であると感じた。こうした作業がDeep Learningの世界になった場合にもどこまで人間の支配下に置かれるのかは非常に興味がある。継続して学んでいきたい。

◆おまけ(クロス集計を手軽にするパッケージ)

Rの基本文法やdplyr・ggplot2などはまだ勉強中という場合、とにかくデータの中身を確認するのも実は一苦労でしたが、こちらを使うと手っ取り早く確認できてとても便利でした。楽してはいけないんだろうけど、今はとにかく目的(効果的なモデルを作る)を優先するということでしばらくは使っていきたい。

この記事が気に入ったらサポートをしてみませんか?