派遣で働くエンジニアのスキルアップを応援するサイト

PRODUCED BY RECRUIT

【第7話】ロジスティック回帰ってなあに?紹介編【漫画】未経験なのに、機械学習の仕事始めました

f:id:itstaffing:20210810141902j:plain
f:id:itstaffing:20210810141905j:plain
f:id:itstaffing:20210810141909j:plain
f:id:itstaffing:20210810141912j:plain
f:id:itstaffing:20210113102532j:plain
第5話第6話では、データの集計と可視化を実践しましたね!今回から、 いよいよ機械学習に入っていきましょう!

  未知の事象を予測する! ロジスティック回帰ってなあに?    

いよいよ機械学習について学んでいきましょう。機械学習には多種多様な手法がありますが、代表的な予測モデルの1つであるロジスティック回帰を紹介します。

ロジスティック回帰は、パターンAやパターンBのように2パターンに分けることができる事象に対して、AかBのどちらに属するかを予測できる手法です。

・雨が降るか否か
・試験に合格するか否か
・商品を購入するか否か
・犬か猫か

といったように、2パターンのどちらかに該当するかを予測します。

たとえば、過去に受験した模擬試験の結果を使うことで「本番の試験に合格するか否か」を予測できるかもしれません。

予測をするために利用するデータのことを、説明変数と言います。

複数の説明変数を使うことができ、国語の点数、数学の点数、社会の点数のように具体的な数字が入ります。また、「公立校に在籍している」「私立校に在籍している」という定性的なカテゴリーデータも説明変数に加えられます。

一方で、予測対象のデータもロジスティック回帰には必要で、これを目的変数と呼びます。

具体的には、

・試験に合格した場合は1
・不合格の場合は0

のように表現します。

予測に使う説明変数、予測対象の目的変数の2つを用いて、ロジスティック回帰という手法でデータの傾向を捉えます。このように傾向を捉えるのに利用するデータを訓練データ(または学習データ)と呼びます。

訓練データで傾向を捉えることができたら、試験をまだ受けていない生徒に対しても、模擬試験の結果から合否を予測できます。このとき、試験を受けてない生徒の予測に使うデータは、訓練データにおける説明変数と同じ項目です。

f:id:itstaffing:20210113102524j:plain
説明変数、目的変数、訓練データ……?次々に新しい単語が出てきて、混乱してきました。
f:id:itstaffing:20210113102532j:plain
ではここで一度、整理しておきましょう。

説明変数・・・予測をするために利用するデータのこと
例:国語の点数、数学の点数、社会の点数、公立校/私立高校在籍など、複数を活用することができる

目的変数・・・予測対象のデータのこと
例:試験に合格した場合は1、不合格の場合は0

訓練データ・・・傾向を捉えるのに利用するデータのこと
(ここでは、説明変数、目的変数のこと)

  ロジスティック回帰は、確率で予測できる!    

ロジスティック回帰では、予測結果を確率として考えることができます。「合格率70%です」「合格率20%です」というように、具体的な数値を得ることができるということです。

予測結果に対して、

・閾値を超えたら合格
・閾値未満であれば不合格

というように予測します。 (*区切りの基準になる値のこと)

単純に50%を超えたら合格と判定することもできますが、予測間違いに対する許容度で閾値を設定することもできます。

「予測で合格判定したにも関わらず、実際には不合格になってしまう生徒」を減らしたい場合は、閾値を70%のように高めに設定することで防げます。

f:id:itstaffing:20210113102532j:plain
ちなみに、機械学習ライブラリでは、パーセント表示ではなく0.7や0.2 のように小数点で結果を得るのが一般的です。

  ロジスティック回帰をもっと詳しく知りたい!    

では、ロジスティック回帰の詳細に踏み込んでいきます。

f:id:itstaffing:20210810141915j:plain

という式で表せます。

f(x)は出力結果で、0.7や0.2のように予測した合格率です。プログラムと同じでfという関数(ここではロジスティック回帰)に、変数x(国語の点数や数学の点数のような説明変数)を引数にとり、合格率の予測結果を返します。

ここでxは配列のように複数の値を持つことができ、具体的には国語の点数や数学の点数などになります。式を見ると分かるように、βとxは掛け算されています。βは回帰係数と呼ばれ、国語の点数や数学の点数が合否に与える影響を調整します。

たとえば、国語の点数に対するβは2で数学の点数に対するβは0.5である時、国語の点数が 30点で数学の点数が50点の生徒においてβ⧵*xは、2⧵*30+0.5⧵*50=85となります。

また、αは切片に相当し変数xの影響を受けません。x、α、βによる計算結果を0から1の連続値になるように変換する式がロジスティック回帰になります。

f(x)を計算するには予測対象となるデータxの他に、αやβが必要です。これらの値は、訓練データの傾向を捉えることで得られます。このことを「学習する」と呼びます。

ロジスティック回帰で学習したモデルを使うことで、未知の事象に対して予測できるようになるのです。

f:id:itstaffing:20210113102524j:plain
ロジスティック回帰がどのようなものかがわかりました!
f:id:itstaffing:20210113102532j:plain
次回はECサイトのデータに対して、ロジスティック回帰を適用し、ユーザーが翌月に購買するか否かを予測してみましょう。
f:id:itstaffing:20210113102524j:plain
次は、いよいよ実践編ですね!がんばるぞ~!

第1話 機械学習の仕事内容って?実はコードを書くだけじゃない!
第2話 人工知能、機械学習、ディープラーニングの違いとは?
第3話 機械学習の活用事例!建設機械や回転寿司屋でも活用されている!?
第4話 機械学習したいのにデータがない!?
第5話 集計と可視化:pandasでデータの加工をしてみよう
第6話 続!集計と可視化:Plotlyでデータをグラフ化して傾向をとらえよう

 

【筆者】
早川 敦士さん
株式会社FORCASの分析チームにてリーダーを務める傍らで、株式会社ホクソエムで執行役員として従事。新卒でリクルートコミュニケーションズに入社しWeb広告やマーケティングオートメーションなどのB2Cマーケティングを経験し、FORCASではB2Bマーケティングプラットフォームのデータ分析および開発を担当している。大学在学中に『データサイエンティスト養成読本』(技術評論社刊)を共著にて執筆。その後も『機械学習のための特徴量エンジニアリング』(オライリー・ジャパン刊)や『Pythonによるはじめての機械学習プログラミング』(技術評論社刊)などで執筆活動を続けている。国内最大級のR言語コミュニティであるJapan.Rを主催。Youtubeチャンネル『データサイエンティストgepuro』で動画を投稿。
・Twitterアカウント

湊川 あいさん
フリーランスのWebデザイナー・漫画家・イラストレーター。マンガと図解で、技術をわかりやすく伝えることが好き。 著書『わかばちゃんと学ぶ Git使い方入門』『わかばちゃんと学ぶ Googleアナリティクス』『わかばちゃんと学ぶ Webサイト制作の基本』『運用ちゃんと学ぶ システム運用の基本』『わかばちゃんと学ぶ サーバー監視』が発売中のほか、マンガでわかるGit・マンガでわかるDocker・マンガでわかるRuby・マンガでわかるScrapbox・マンガでわかるLINE Clova開発・マンガでわかる衛星データ活用といった分野横断的なコンテンツを展開している。
・Amazon著者ページ
・Twitterアカウント

  わかばちゃんが登場する書籍いろいろ   

f:id:itstaffing:20210113102514j:plain  f:id:itstaffing:20210113102516j:plain
 
f:id:itstaffing:20210113102519j:plain  f:id:itstaffing:20210113102521j:plain


わかばちゃんと学ぶシリーズ(Amazonページ)