[ミキシングマー]ロジスティック回帰
ろんりかいふく
これは線形方程式を用いた分類アルゴリズムである.クラス確率は、信号関数またはソフトMax関数を使用して出力できます.
マルチカテゴリ
ターゲットクラス2つ以上の分類問題.Logistic回帰はソフトMax関数を用いてクラスを多分類予測する.
しんごうかんすう
バイナリ分類に使用し、線形方程式の出力を0~1の値に圧縮します.
ソフトMax関数
多重分類に用い,複数の線形方程式の出力結果を正規化し,和を1とする.
LogisticRegression
これは線形分類アルゴリズムrogestics回帰のためのクラスである.
predict_proba()
予測確率を返します.
decision_function()
モデル学習の線形方程式の出力を返します.
バイナリ分類であれば、陽性カテゴリの確率を返します.
多重分類の場合,各クラスは線形方程式を計算し,最大値のクラスが予測クラスとなる.
import pandas as pd
fish = pd.read_csv('https://bit.ly/fish_csv')
fish.head()
print(pd.unique(fish['Species']))
fish_input = fish[['Weight','Length','Diagonal','Height','Width']].to_numpy()
fish_target = fish['Species'].to_numpy()
from sklearn.model_selection import train_test_split
train_input, test_input, train_target, test_target = train_test_split(
fish_input, fish_target, random_state=42)
from sklearn.preprocessing import StandardScaler
ss = StandardScaler()
ss.fit(train_input)
train_scaled = ss.transform(train_input)
test_scaled = ss.transform(test_input)
1.k最近接分類器の確率予測
from sklearn.neighbors import KNeighborsClassifier
kn = KNeighborsClassifier(n_neighbors=3)
kn.fit(train_scaled, train_target)
print(kn.score(train_scaled, train_target))
print(kn.score(test_scaled, test_target))
print(kn.classes_)
from sklearn.neighbors import KNeighborsClassifier
kn = KNeighborsClassifier(n_neighbors=3)
kn.fit(train_scaled, train_target)
print(kn.score(train_scaled, train_target))
print(kn.score(test_scaled, test_target))
print(kn.classes_)
print(kn.predict(test_scaled[:5]))
import numpy as np
proba = kn.predict_proba(test_scaled[:5])
print(np.round(proba, decimals=4))
distances, indexes = kn.kneighbors(test_scaled[3:4])
print(train_target[indexes])
待って!2.Logistic回帰(バイナリ分類)
bream_smelt_indexes = (train_target == 'Bream') | (train_target == 'Smelt')
train_bream_smelt = train_scaled[bream_smelt_indexes]
target_bream_smelt = train_target[bream_smelt_indexes]
from sklearn.linear_model import LogisticRegression
lr=LogisticRegression()
lr.fit(train_bream_smelt,target_bream_smelt)
print(lr.predict(train_bream_smelt[:5]))
print(lr.predict_proba(train_bream_smelt[:5]))
print(lr.coef_,lr.intercept_)
decisions = lr.decision_function(train_bream_smelt[:5])
print(decisions)
from scipy.special import expit
print(expit(decisions))
3.論理回帰(多分類)
lr=LogisticRegression(C=20,max_iter=1000)
lr.fit(train_scaled,train_target)
print(lr.score(train_scaled,train_target))
print(lr.score(test_scaled,test_target))
lr=LogisticRegression(C=20,max_iter=1000)
lr.fit(train_scaled,train_target)
print(lr.score(train_scaled,train_target))
print(lr.score(test_scaled,test_target))
print(lr.classes_)
print(lr.predict(test_scaled[:5]))
proba=lr.predict_proba(test_scaled[:5])
print(np.round(proba,decimals=3))
5つの例の予測(行)
7匹の魚の確率(熱)
K近傍の確率は0,1/3,2/3,1離散)
論理回帰二重分類では鯛と氷魚に対する確率のみが出力される)
print(lr.coef_,lr.intercept_)
print(lr.coef_.shape,lr.intercept_.shape)
decisions=lr.decision_function(test_scaled[:5])
print(np.round(decisions,decimals=2))
from scipy.special import softmax
proba=softmax(decisions,axis=1)
print(np.round(proba,decimals=3))
参考文献:混球機Reference
この問題について([ミキシングマー]ロジスティック回帰), 我々は、より多くの情報をここで見つけました https://velog.io/@oooops/로지스틱-회귀テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol