[PYTHON] Versuchen Sie, eine logistische Funktion zu zeichnen

Overview

Ich habe vor langer Zeit versucht, Taylor-Erweiterung mit Sympy zu zeichnen, https://qiita.com/arc279/items/dda101b39b96c4aa94d0

Das Bild ist also leicht zu verstehen, wenn es visualisiert wird Dieses Mal werde ich eine logistische Funktion zeichnen, die in der logistischen Regression angezeigt wird.

Die ausführliche Erläuterung der logistischen Regression finden Sie in diesem Bereich. Sehen Sie sich daher die Grafik zusammen mit der Erläuterung auf der folgenden Website an. http://darden.hatenablog.com/entry/2016/08/22/212522

Ich werde die Formel hier nicht richtig erklären, ich kann nicht w sagen

Vorbereitung

$ pip install matplotlib sympy     

Stellen Sie es sich unten als eine Jupiter-Zelle vor


from sympy import Symbol
from sympy.plotting import plot

p = Symbol('p')
x = Symbol('x')

Die angezeigte Formel

\begin{align*}
& {\rm Odds Ratio}: \frac{p}{1-p} \\
& {\rm logit function}: f(p) = \log \frac{p}{1-p} \\
& {\rm logistische Funktion}: g(x) = \frac{1}{1+e^{-x}}
\end{align*}

"Quotenverhältnis (p) = p / (1-p)"

jupyter


plot(p/(1-p), (p, -2, 2), ylim=(-100, 100), legend=True)

fig1.png

Es ist süß, dass * -inf * und * + inf * mit * p = 1 * verbunden sind, Wenn Sie * 0 <= p <= 1 * davon ausschneiden,

jupyter


plot(p/(1-p), (p, 0, 1), ylim=(-100, 100), legend=True)

fig2.png

Der Wertebereich wird für den Definitionsbereich * 0 <= p <= 1 * auf * 0 <= Odds Ratio (p) <+ inf * erweitert.

Logit-Funktion f (p) = log (p / (1-p))

Indem wir den Logarithmus des Odds Ratio nehmen

jupyter


from sympy import log

plot(log(p/(1-p)), legend=True)

fig3.png

Der Wertebereich wird für denselben Definitionsbereich wie das Odds Ratio auf * -inf <f (p) <+ inf * erweitert.

Logistische Funktion "g (x) = 1 / (1 + exp (-x))"

Weil es die Umkehrfunktion der Logit-Funktion ist

jupyter


from sympy import exp

plot(1/(1+exp(-x)), legend=True)

fig4.png

Der Wertebereich und der Definitionsbereich der Logit-Funktion werden vertauscht.

Mit anderen Worten kann es als eine Funktion betrachtet werden, die einen Wert ausgibt, der als Wahrscheinlichkeit * 0 <= g (z) <= 1 * betrachtet werden kann.

Ist es mit einer solchen Interpretation richtig?

Recommended Posts

Versuchen Sie, eine logistische Funktion zu zeichnen
Ich ließ Schildkröte eine Dreiecksfunktion zeichnen
[Piyopiyokai # 1] Spielen wir mit Lambda: Erstellen einer Lambda-Funktion
Unterscheiden Sie eine Funktion mit zwei Variablen
Machen Sie einen Funktionsdekorateur
Machen wir einen Discord Bot.
Erstellen wir eine Funktion für den parametrisierten Test mithilfe eines Rahmenobjekts
Erstellen Sie eine Funktion in Python
Zeichnen Sie mit NetworkX ein Diagramm
Schreiben Sie eine Kerneldichtefunktion
Lassen Sie uns die Berichtsfunktion von Chainer zusammenfassen
So rufen Sie eine Funktion auf
Versuchen wir es mit einem Shell-Skript
Zeichne die Yin-Funktion in Python
Erstellen wir eine Funktion, um die Schaltfläche in Tkinter gedrückt zu halten
Zeichne ein Herz in Python
Zeichnen Sie mit networkx ein Diagramm
Was ist eine Rückruffunktion?
Machen wir eine Remote-Rumba [Hardware]
[Python] Was ist eine Zip-Funktion?
Zeichne ein Diagramm mit Julia + PyQtGraph (2)
Lassen Sie uns eine Remote-Rumba erstellen [Software]
Versuchen Sie, eine Bezier-Kurve zu zeichnen
Lassen Sie uns eine GUI mit Python erstellen.
Machen wir einen Spot Sale Service 2
Zeichnen Sie eine Streudiagrammmatrix mit Python
Eine Funktion, die einen zufälligen Namen zurückgibt
Zeichnen Sie mit matplotlib ein loses Diagramm
Machen wir einen Blockbruch mit wxPython
Machen wir einen Spot Sale Service 1
Zeichne einen schönen Kreis mit Numpy
Zeichne ein Diagramm mit Julia + PyQtGraph (1)
Zeichne ein Diagramm mit Julia + PyQtGraph (3)
[Python] Machen Sie die Funktion zu einer Lambda-Funktion
Python - Dynamische Aufruffunktion von String
Zeichnen Sie ein Diagramm mit Pandas + XlsxWriter
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Machen wir mit xCAT einen Spacon
Zeichnen Sie ein CNN-Diagramm in Python
Zeichnen Sie ein Diagramm mit der PySimple-Benutzeroberfläche
Machen wir einen Spot Sale Service 3
Zeichnen Sie einfach eine Karte mit matplotlib.basemap
Große Pandas Lass uns viel lernen
Erstellen wir eine Chat-Funktion mit Vue.js + AWS Lambda + Dynamo DB [AWS-Einstellungen]