ロジスティック回帰モデル
scikit-learn は、Pythonで機械学習モデル を作成するための人気のあるライブラリです。
以下に、scikit-learn を使用してロジスティック回帰モデル を作成し、結果をグラフ化する基本的な手順を示します。
まず、必要なライブラリをインポートします:
1 2 3 4 5 6 from sklearn.datasets import load_breast_cancerfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import accuracy_score, confusion_matriximport matplotlib.pyplot as pltimport seaborn as sns
次に、データセットをロードし、トレーニングセットとテストセットに分割します:
1 2 dataset = load_breast_cancer() X_train, X_test, y_train, y_test = train_test_split(dataset.data, dataset.target, test_size=0.2 , random_state=42 )
次に、ロジスティック回帰モデルを作成し、トレーニングデータに対してフィット します:
1 2 model = LogisticRegression() model.fit(X_train, y_train)
モデルを使用して予測 を行い、予測の精度 を計算します:
1 2 3 y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print ("Accuracy: " , accuracy)
最後に、混同行列 を作成し、ヒートマップ を使用して視覚化します:
1 2 3 4 5 6 cm = confusion_matrix(y_test, y_pred) plt.figure(figsize=(10 ,7 )) sns.heatmap(cm, annot=True , fmt='d' ) plt.xlabel('Predicted' ) plt.ylabel('Truth' ) plt.show()
このコードは、scikit-learn の基本的な使用方法を示しています。
まず、データセットをロード し、トレーニングセットとテストセットに分割 します。
次に、ロジスティック回帰モデル を作成し、トレーニングデータに対してフィットします。
モデルを使用して予測 を行い、予測の精度 を計算します。
最後に、混同行列 を作成し、ヒートマップ を使用して視覚化します。
[実行結果]
ソースコード解説
このソースコードは、乳がんデータセット を用いてロジスティック回帰モデル を構築し、その性能を評価するプログラムです。
以下に、詳細な説明を示します。
1. ライブラリのインポート 1 2 3 4 5 6 from sklearn.datasets import load_breast_cancerfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import accuracy_score, confusion_matriximport matplotlib.pyplot as pltimport seaborn as sns
必要なライブラリをインポートしています。
load_breast_cancer: scikit-learnに含まれる乳がんデータセットをロードするための関数。
train_test_split: データをトレーニングセットとテストセットに分割する関数。
LogisticRegression: ロジスティック回帰モデルを構築するためのクラス。
accuracy_score: 分類モデルの精度を計算するための関数。
confusion_matrix: 混同行列を計算するための関数。
matplotlib.pyplot: プロットのためのMatplotlibのモジュール。
seaborn: データ可視化のためのSeabornライブラリ。
2. データセットの読み込みと分割 1 2 dataset = load_breast_cancer() X_train, X_test, y_train, y_test = train_test_split(dataset.data, dataset.target, test_size=0.2 , random_state=42 )
乳がんデータセットを読み込み、説明変数 X と目的変数 y に分割します。 トレーニングセットとテストセットは train_test_split 関数を使用して分割されます。
3. ロジスティック回帰モデルの構築と訓練 1 2 model = LogisticRegression() model.fit(X_train, y_train)
LogisticRegression クラスを用いてロジスティック回帰モデル を構築し、トレーニングデータを使用してモデルを訓練します。
4. テストデータでの予測と精度の計算 1 2 3 y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print ("Accuracy: " , accuracy)
構築したモデルを用いてテストデータで予測を行い、その予測精度を accuracy_score 関数で計算し、表示しています。
5. 混同行列の可視化 1 2 3 4 5 6 cm = confusion_matrix(y_test, y_pred) plt.figure(figsize=(10 ,7 )) sns.heatmap(cm, annot=True , fmt='d' ) plt.xlabel('Predicted' ) plt.ylabel('Truth' ) plt.show()
confusion_matrix 関数を使用して混同行列を計算し、Seaborn とMatplotlib を使用して混同行列をヒートマップ として可視化しています。
混同行列はモデルの性能を評価するために用いられます。
結果解説
[実行結果]
混同行列(Confusion Matrix) は、分類モデルのパフォーマンスを評価 するための重要なツールです。
混同行列は、モデルの予測結果と実際のラベルを比較し、正確な予測(True Positive, True Negative) と誤った予測(False Positive, False Negative) の数を表示します。
以下に、混同行列の各要素の意味を示します:
True Positive (TP) :モデルが正しく正のクラスを予測したインスタンスの数。
True Negative (TN) :モデルが正しく負のクラスを予測したインスタンスの数。
False Positive (FP) :モデルが正しく負のクラスを予測したが、実際には正のクラスであったインスタンスの数。
False Negative (FN) :モデルが正しく正のクラスを予測したが、実際には負のクラスであったインスタンスの数。
これらの要素を使用して、モデルの精度(Accuracy) や精度(Precision) 、再現率(Recall) 、F1スコア などのメトリクスを計算することができます。
また、混同行列 はヒートマップ として視覚化することも可能です。
ヒートマップは、各要素の値が色で表現され、高い値を赤色 で、低い値を青色 で表示します。
これにより、モデルのパフォーマンスを直感的に理解することができます。