#author("2023-01-31T16:09:18+09:00;2023-01-31T15:49:34+09:00","default:inoue.ko","inoue.ko") #author("2023-01-31T16:14:08+09:00","default:inoue.ko","inoue.ko") *ロジスティック回帰 Logistic Regression ~ ***概要(教師あり|分類) ロジスティック回帰とは、線形回帰分析を分類問題に応用したアルゴリズムで、例えば、商品を購入するか否か、衝突するか否か、採用すべきか否かなどの2値分類を、0から1の範囲の確率を示す[[ロジスティック関数>GoogleImage:ロジスティック関数]]を用いて推測します。 2値分類(0:陰性 or 1:陽性)の場合、予測確率 0.5 をしきい値としてクラス分けを行います。確率0.2 であれば予測値は「 0」、確率が 0.85 であれば予測値は「1」と分類するわけです。ちなみに、確率がちょうど 0.5 となる境目の部分を「決定境界」といいます。 //学習では「ロジスティック損失」というものを誤差関数として、これが最小になるように学習させます。 ~ ***用語解説 (書きかけです) ~ ***プログラム例 (準備中) //以下に、3値分類の線形回帰のサンプルを掲載しています。 //ipynb(JupyterNotebook)形式で、GitHubに置いていますが、レンダリングがタイムアウトする場合は、下の nbviewer 経由でご覧下さい。 //-GitHub:[[LogisticRegression.ipynb>https://github.com/koichi-inoue/JupyterNotebook/blob/master/LogisticRegression.ipynb]] //-nbviewer:[[LogisticRegression.ipynb>https://nbviewer.jupyter.org/github/koichi-inoue/JupyterNotebook/blob/master/LogisticRegression.ipynb]] //-このプログラム例では、ガクの長さ(sepal length)、花弁の長さ(petal length) のみ使用して、3品種の分類を行なっています。 -使用したライブラリ --pandas:データ解析 --matplotlib:グラフ描画 --sklearn:ロジスティック回帰 -使用したモデル scikit-learn、linear_model の [[LogisticRegressionモデル>https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html]]を使用 --fitメソッド:ロジスティック回帰モデルの重みを学習 --predictメソッド:説明変数の値からクラスを予測 -使用したデータ:iris(sklearn) ~ ~ **APPENDIX -ロジスティック方程式 #mathjax(\frac{dN}{dt} = rN(1-\frac{N}{K}) ) -ロジスティック関数(ロジスティック方程式の解) //σSUB{a};(t) = 1 / ( 1 + eSUP{-rt}; ) #mathjax(N = \frac{K}{1 + e^{-rK(t-t_0)}}) -標準ロジスティック関数 #mathjax(g(x) = \frac{1}{1 + e^{-x}}) -シグモイド関数(ロジスティック関数の一形態) #mathjax(σ(x) = \frac{1}{1 + e^{-ax}} (a>0)) -シグモイド関数(ロジスティック関数の) #mathjax(f(x) = \frac{1}{1 + e^{-ax}} (a>0)) -標準シグモイド関数(シグモイド関数におけるゲイン(a)が1のもの) #mathjax(σ(x) = \frac{1}{1 + e^{-x}}) -参考:__[[LogisticCurve]]__ ~ ~