導入
名前に「回帰」と付きますが、ロジスティック回帰は分類の手法です。「あるカテゴリに属する確率」を計算して、いちばんそれらしいラベルを選びます。
説明
まず iris データを読み込み、その形を確かめます。次に LogisticRegression で学習し、予測させます。
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
iris = load_iris()
X = iris.data # 花の寸法4項目 × 150サンプル
y = iris.target # 品種 0/1/2
print("データの形:", X.shape)
print("品種の名前:", list(iris.target_names))
model = LogisticRegression(max_iter=1000)
model.fit(X, y)
# 1つ目のサンプルを予測してみる
sample = [X[0]]
print("予測:", model.predict(sample)[0], "/ 正解:", y[0])
print("各品種の確率:", model.predict_proba(sample).round(3))
predict はラベル(0/1/2)を、predict_proba は各品種である確率を返します。確率がいちばん高い品種が予測結果に選ばれます。「たぶんこれ」を数値で出せるのが、分類モデルの便利なところです。
max_iter=1000 は計算の反復回数を増やす指定で、学習を安定させるためのおまじないです。
やってみよう
X[0] を X[100] に変えて、別のサンプルの予測と正解を見比べましょう。predict_proba の3つの確率を足すと、ほぼ 1.0 になることも確かめてください。
演習
上のモデルで、100番目のサンプル X[100] の予測ラベルを print で表示してください。
ヒント1を見る
model.predict([X[100]])[0]。