Pythonでロジスティック回帰を実行する方法は?



sklearnを使用してPythonでロジスティック回帰を行い、従属変数と1つ以上の独立変数の間の関係を決定して結果を予測します。

Pythonのロジスティック回帰は、予測分析手法です。また、二項分類問題の機械学習でも使用されます。このブログでは、Pythonでのロジスティック回帰を理解するために、次のトピックについて説明します。

  1. 回帰とは何ですか?
  2. Pythonでのロジスティック回帰
  3. ロジスティック回帰と線形回帰
  4. ユースケース
  5. デモンストレーション

また、Pythonでのロジスティック回帰に関するこの詳細なチュートリアルを参照して、理解を深めたり、 ロジスティック回帰をマスターする。





回帰とは何ですか?

分析は強力な統計分析手法です。 A 依存 関心のある変数は、他の値を予測するために使用されます 独立変数 データセット内。

私たちは常に直感的な方法で回帰に遭遇します。過去の気象条件のデータセットを使用して天気を予測するようなものです。



結果を分析および予測するために多くの手法を使用しますが、重点は主に 従属変数と1つ以上の独立変数の間の関係。

分析は、2つの可能な結果しかないバイナリ変数で結果を予測します。



Pythonでのロジスティック回帰

これは、従属変数と1つ以上の独立変数を持つデータセットを分析して、バイナリ変数の結果を予測する手法です。つまり、結果は2つだけになります。

従属変数は カテゴリカル 本来は。従属変数は、 ターゲット変数 独立変数はと呼ばれます 予測因子

ロジスティック回帰は線形回帰の特殊なケースであり、カテゴリ変数でのみ結果を予測します。 log関数を使用してイベントの確率を予測します。

私たちは使用します シグモイド関数/曲線 カテゴリ値を予測します。しきい値は結果(勝ち/負け)を決定します。

線形回帰方程式: y =β0+β1X1+β2X2…。 +βnXn

  • Yは、予測する必要のある従属変数を表します。
  • β0はY切片であり、基本的にはy軸に接する線上の点です。
  • β1は直線の傾きです(従属変数と独立変数の関係に応じて、傾きは負または正になります)。
  • ここでのXは、結果の従属値を予測するために使用される独立変数を表します。

シグモイド関数: p = 1/1 + e-Y

線形回帰方程式にシグモイド関数を適用します。

python-edurekaのロジスティック回帰

ロジスティック回帰方程式: p = 1/1 + e-(β0+β1X1+β2X2…。+βnXn)

さまざまなタイプのロジスティック回帰を見てみましょう。

ロジスティック回帰の種類

ビッグデータ分析の応用
    • バイナリロジスティック回帰–考えられる結果は2つだけです。例-はいまたはいいえ
    • 多項ロジスティック回帰– 3つ以上の名目カテゴリがあります。例-猫、犬、象。
    • 順序ロジスティック回帰-3つ以上の順序カテゴリがあります。順序とは、カテゴリが順番に並んでいることを意味します。例-ユーザー評価(1-5)。

線形対ロジスティック回帰

線形回帰は 無限の可能な値、 ロジスティック回帰には 明確な結果

線形回帰は、応答変数が本質的に連続である場合に使用されますが、ロジスティック回帰は、応答変数が本質的にカテゴリである場合に使用されます。

過去の取引の詳細を使用して銀行の債務不履行者を予測することはロジスティック回帰の例であり、株式市場スコアのような連続出力は線形回帰の例です。

ユースケース

以下は、ロジスティック回帰を使用できるユースケースです。

天気予報

天気予報は論理回帰の結果です。ここでは、以前の天気予報のデータを分析し、特定の日の可能な結果を​​予測します。しかし、ロジスティック回帰は、雨が降るかどうかなど、カテゴリデータのみを予測します。

病気の特定

我々はできる使用する患者の病歴を利用したロジスティック回帰により、どのような場合でも病気が陽性か陰性かを予測します。

ロジスティック回帰を使用して予測モデルを構築するために、サンプルデータセットを取得してみましょう。

デモ

予測モデルを構築しますを使用して助けを借りてPythonで論理回帰データセット、これでロジスティック回帰を実現するために、次の手順について説明します。

データの収集

ロジスティック回帰を実装するための最初のステップは、データを収集することです。パンダを使用して、データセットを含むcsvファイルをプログラムにロードします。 NBAデータを使用して、関連データ間の関係を分析することにより、ホームゲームまたはアウェイゲームの可能性を予測する予測モデルを構築しています。

import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt df = pd.read_csv(r'C:UsersMohammadWaseemDocumentsdata.csv ')print(df.head(5))

分析を容易にするために、すべてのデータを読み取り可能な形式に変換します。次に、モデルの従属変数と独立変数を決定できます。

データの分析

データセットは、変数間の関係を決定するために分析されます。変数間の関係を確認するためにさまざまなプロットを作成する。

sns.countplot( 'Home'、hue = 'WINorLOSS'、data = df)plt.show()

上記は、ホーム/アウェイゲームに関する勝ち/負けの割合の関係です。 S同様にデータ内の他の関連エントリ間の関係のグラフをプロットできます。

データラングリング

データセットは、ターゲット変数に従って変更されます。 DataFrameからすべてのnull値と文字列値も削除します。

print(df.isnull()。sum())

null値や、予測モデルの構築中に必要とされない値など、すべての無関係なデータをチェックします。使用しているNBAデータセットにnull値がない場合は、データの分割に進みます。

データのテストとトレーニング

モデルのパフォーマンスのために、データはテストデータとトレーニングデータに分割されます。データは、 train_test_split 。ここのデータは70:30の比率で分割されています。

さて、 モデル予測 ロジスティック回帰関数は、sklearnモジュールにロジスティック回帰モデルをインポートすることで実装されます。

次に、フィット関数を使用してモデルをトレインセットにフィットさせます。この後、予測機能を使用して予測が実行されます。

from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import Classification_report from sklearn.metrics import confusion_matrix、accuracy_score x = df.drop( 'Home'、axis = 1)y = df ['Home'] x_train、 x_test、y_train、y_test = train_test_split(x、y、test_size = 0.33、random_state = 1)logmodel = LogisticRegression()logmodel.fit(x_train、y_train)予測= logmodel.predict(x_test)print(classification_report(y_test、predictions)) print(confusion_matrix(y_test、predictions))print(accuracy_score(y_test、predictions))

分類レポート:

分類レポートには、 精度 、リコール、F1およびサポート モデルのスコア。

精度 スコアとは、モデルによって行われた予測が正確であるレベルを意味します。ホームゲームの精度は 0.62 そしてアウェイゲームは 0.58

想起 モデルが結果を予測できるまでの量です。ホームゲームのリコールは 0.57 アウェイゲームの場合は 0.64 。 F1スコアとサポートスコアは、予測のためにテストされたデータの量です。 NBAデータセットでは、ホームゲーム用にテストされたデータは次のとおりです。 1662 そしてアウェイゲームは 1586

混同行列:

データサイエンスとは何ですか?

混同行列は、予測モデルのパフォーマンスを説明する表です。混同行列には、実際の値と予測値が含まれています。これらの値を使用して、モデルの精度スコアを計算できます。

混同行列ヒートマップ:

seabornとを使用して混同行列のヒートマップをプロットしてみましょう 構築した予測モデルを視覚化します。ヒートマップをプロットするには、次の構文が必要です。

sns.heatmap(pd.DataFrame(confusion_matrix(y_test、predictions)))plt.show()

ヒートマップを見ると、次のように結論付けることができます。

  • すべての予測のうち、分類子は合計1730回「はい」と予測し、そのうち1012回が実際に「はい」でした。
  • すべての予測のうち、分類子は合計1518回の間、いいえを予測しました。そのうち944回は実際のいいえでした。

混同行列のこの分析により、予測モデルの精度スコアを結論付けることができます。

精度スコア:

精度スコアは、モデルによって行われた予測の精度のパーセンテージです。私たちのモデルの精度スコアは0.60で、かなり正確です。ただし、精度スコアが高いほど、予測モデルは効率的です。より良い予測モデルを得るには、常により高い精度スコアを目指す必要があります。

上記の手順に従うことで、NBAデータセットを使用したホーム/アウェイゲームの可能性を予測しました。分類レポートを分析した後、ホーム/アウェイゲームの可能性を推測できます。

このブログでは、Pythonの概念におけるロジスティック回帰について、線形アプローチとの違いについて説明しました。また、NBAデータセットを使用したデモンストレーションについても説明しました。より多くの洞察と実践のために、選択したデータセットを使用し、Pythonでロジスティック回帰を実装するために説明されている手順に従うことができます。

また、edurekaプラットフォームのさまざまなデータサイエンスブログをチェックして、データサイエンティストをマスターしてください。

Pythonを学び、データサイエンスでのキャリアを築きたい場合は、インタラクティブなライブオンラインをご覧ください。 ここでは、学習期間全体をガイドする24 * 7のサポートが付属しています。
質問がありますか?コメント欄にご記入ください。折り返しご連絡いたします。