○この記事の要点
ロジスティック回帰を学習したのでメモ
ロジスティック回帰:
・分類問題の予測を行うアルゴリズム
(回帰という名前だが、分類で利用される)
・データが各クラスに所属する確率を計算することで分類を行う
(クラス1:0.3,クラス2:0.5,クラス3:0.2のようなアウトプットを出力する)
・教師あり学習
#○ソースコード(Python)
# ロジスティック回帰
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_score
# アヤメのデータをロード
data = load_iris()
X = pd.DataFrame(data.data, columns=data.feature_names)
y = pd.DataFrame(data.target, columns=["Species"])
df # アヤメのデータを表示
Sepal.Length(がく片の長さ),Sepal.Width(がく片の幅), Petal.Length(花弁の長さ),Petal.Width(花弁の幅)の4つの量的変数
Species(種,setosa,versicolor,virginica の3種類)
#○ソースコード(Python)
# ロジスティック回帰モデルの作成と学習、予測
model = LogisticRegression()
model.fit(X, y)
y_pred = model.predict(X)
print(y_pred) # 150件のアヤメのデータに対し、予測した結果
# モデルの評価
print(mean_squared_error(y, y_pred)) # 平均二乗誤差。小さいほど良い
print(r2_score(y, y_pred)) # 決定係数。0~1の間で大きいほど良い
実行結果
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1
1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2]
0.02666666666666667
0.96
・分類問題で一番簡単に理解できるモデルかと思う
・結果について1が並んでいるところにたまに表れている1と2が並んでいるところにたまに表れている1が正解と予測が合っていないところ。