ロジスティック回帰とは?理論とPython実装をチェック!

この記事では、ビジネスの現場でも使われるデータ解析手法「ロジスティック回帰」を紹介します!

この記事ではsciki-learnを使って最短経路でロジスティック回帰を試す方法をハンズオンで学んでいきたいと思います。

この記事でわかること

  • ロジスティック回帰とは?
  • ロジスティック回帰のscikit-learn実装の試し方
  • 更に詳しく学ぶ方法

名前は聞いたことがあるけど試したことはない、そんな方はこの記事で一緒にロジスティック回帰について学んでいきましょう。

この記事のコードは、MacにてPython 3.7, scikit-learn 0.19で動作確認しました。

ロジスティック回帰とは

ロジスティック回帰とは、例えば「その人の購入履歴」から、「この人が次にこの商品を買うかどうか」のような2値の予測を行うアルゴリズムです。

ちなみに、このような予測したい変数のことを「目的変数」と呼びます。

目的変数と説明変数(目的変数を説明する変数)についてはこの記事を参考にしてください

そのような「未来のデータを予測するアルゴリズム」のことを「回帰」と言ったりします。

そのあたりの基礎から解説を丁寧にしてくださっているスライドを拝見しましたので、おすすめします。

ロジスティック回帰では予測モデルをシグモイド関数(ここではロジスティック関数と呼びます)で作成します。

シグモイド関数(ロジスティック関数)は以下のような形になっています。

このシグモイドの値が出力になるわけですが、実際にはこのlogisitic_functionの引数xに、説明変数と係数、バイアスなどを使った1次関数を渡します。

ここでは簡単に試すのが目的なので、そのあたりついては解説をしませんが、また別の記事で書きたいと思います。

scikit-learnで試す

ではロジスティック回帰をscikit-learnで試してみましょう。

二つのクラスを持つデータセットを使って、教師データで学習してテストデータの(クラス)ラベルを予測する問題を行います。

ライブラリのimport

上でimportしたライブラリに追加して、以下のものをimportします。

importの内訳は以下の通り。

  1. Numpy
    1. 行列計算
  2. matplotlib
    1. プロット
  3. pandas
    1. データの読み込みや整形、それと可視化
  4. sklearn.datasets
    1. 今回使うデータのダウンロード
  5. sklearn.model_selection.train_test_split
    1. 教師データとテストデータの分割
  6. sklearn.linear_model.LogisticRegression
    1. ロジスティック回帰の入っているモジュール
    2. LogisticRegressionは長いので、LRとあだ名をつけました。

データの読み込み

ロジスティック回帰を試すための学習・テストに使うデータを読み込みましょう。

sklearnのデータセットの中にbreast-cancerという乳がんデータセットがあるので、これを使って試します。

まずはデータを読み込んでみましょう。

このスクリーンショットは変数が多すぎて読めないかもしれません。

ご自分のpcでコードを実装して試してみてください!

また、labelの中身を確認します。

このデータのラベルが2つしかないことがわかりますね。

データの分割

では読み込んだデータを教師・テストに分割しましょう。

テストデータを2割、残りを教師データとして分割しました。

この関数はデフォルトでデータをシャッフルしてくれるので、これ以上の操作は不要です。

モデルの学習と評価

以下の流れで学習させます。

  1. モデルの作成
    1. LRクラスからLRインスタンスを作る
  2. モデルの学習
    1. fitメソッドで学習
[出力結果] これで学習ができました。

このclfインスタンスのpredictメソッドにテストデータを渡すと、そのテストデータに対する予測ラベルが出てきます

また、学習の結果の評価を確認するにはscoreメソッドを使います。

教師データが高い性能になるのはある程度必然なので、テストデータの方を見てみましょう。

悪くない値ですね。

これでロジスティック回帰の試し方の解説は終わりです!

もっと深く学ぶには

ロジスティック回帰やその他のデータ解析手法について学びたいならば、書籍やオンライスクールがおすすめです。

とりあえず使ってみたい!というだけならWeb上の記事でも十分勉強できますが(ロジスティック回帰は非常に知名度が高いので、様々な入門記事があります)、前提知識が無いと独学は難しいと思います。

この記事でも、Pythonが書けてscikit-learnがインストールできることを暗黙のうちに前提にしていました。

もっと基礎から、例えば「Pythonってどうやってインストールすればいいの?」という方が「ビジネスの現場で役立つデータ解析方法を最短で学びたい」と思ったならば、侍エンジニア塾のマンツーマンレッスンがおすすめです。

仕事に役立つようなデータ解析手法の習得を3ヶ月や6ヶ月の期間、インストラクターとマンツーマンで勉強できます。

是非考えてみて下さい!

まとめ

この記事ではロジスティック回帰について紹介しました

ロジスティック回帰はアルゴリズムのシンプルさ、経営者層まで広く知られているほどの認知度から、ビジネスの現場で大活躍です。

自分で1から実装するのは難しいですが、scikit-learnなら手軽に使うことができるので、是非実際のデータで使ってプレゼンなどに役立ててください!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

フクロウ

フクロウ

第一言語はPythonです。
皆さんRustやりましょう。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説