[PYTHON] Führen Sie eine Regressionsanalyse mit NumPy durch

Die Regressionsanalyse wurde bereits in Das Thema der linearen Regression erwähnt.

Regressionsanalyse mit NumPy

Lassen Sie uns nun den Code schreiben und eine Regressionsanalyse durchführen. np.polyfit und np.polyval /reference/generated/numpy.polyval.html#numpy.polyval) kann verwendet werden, um eine Regressionsanalyse von zwei Variablen mit einer Gleichung n-ter Ordnung durchzuführen.

Für Details ist es besser, auf das Dokument über den obigen Link zu verweisen, aber es ist wie folgt.

import numpy as np
import matplotlib.pyplot as plt

x = np.array([0.0, 1.0, 2.0, 3.0,  4.0,  5.0])
y = np.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0])
z = np.polyfit(x, y, 3)

p = np.poly1d(z)
p30 = np.poly1d(np.polyfit(x, y, 30))
xp = np.linspace(-2, 6, 100)

plt.plot(x, y, '.', xp, p(xp), '-', xp, p30(xp), '*')
plt.ylim(-2,2)
plt.show()
plt.savefig('image.png')

image.png

In diesem Moment Für lineare Gleichungen gilt p [0]: Tilt und p [1]: Section. Für die Gleichung N-ter Ordnung gilt p [0] * t ** (N-1) + p [1] * t ** (N-2) + ... + p [N-2] * t + p [N-1] ] ist.

In Bezug auf die Methode der kleinsten Quadrate die ich zuvor erwähnt habe, die Datenzeichenfolgen {(x_1, y_1), (x_2, y_2), ... (x_n ,, Bestimmen Sie das Modell, das die Summe der quadratischen Residuen für y_n)} minimiert. Zu diesem Zeitpunkt wird angenommen, dass die Streuung der Fehlerverteilung der beobachteten Werte konstant ist.

Multiple Regressionsanalyse

Die Regressionsanalyse mit m Modellen mit unabhängigen Variablen lautet Multiple Regressionsanalyse 88% 86% E6% 9E% 90).

z = ax + by + c

Ich möchte die Formel finden.

x = [9.83, -9.97, -3.91, -3.94, -13.67, -14.04, 4.81, 7.65, 5.50, -3.34]
y = [-5.50, -13.53, -1.23, 6.07, 1.94, 2.79, -5.43, 15.57, 7.26, 1.34]
z = [635.99, 163.78, 86.94, 245.35, 1132.88, 1239.55, 214.01, 67.94, -1.48, 104.18]

import numpy as np
from scipy import linalg as LA

N = len(x)
G = np.array([x, y, np.ones(N)]).T
result = LA.solve(G.T.dot(G), G.T.dot(z))

print(result)

Dies [ -30.02043308 3.55275314 322.33397214] Kann erhalten werden

z = -30.0x + 3.55y + 322

Wird erhalten, und dies ist die Lösung.

Referenz

2013 Mathematics Study Group Materialien für Programmierer http://nineties.github.io/math-seminar/

Recommended Posts

Führen Sie eine Regressionsanalyse mit NumPy durch
Kernel-Regression nur mit Numpy
Multiple Regressionsanalyse mit Keras
Implementierung der logistischen Regression mit NumPy
Logistische Regressionsanalyse Selbst erstellt mit Python
Poisson-Regressionsanalyse
Methode der Regressionsanalyse
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
Datenanalyse mit Python 2
Korbanalyse mit Spark (1)
Lineare Regression mit Statistikmodellen
Gleitender Durchschnitt mit Numpy
Abhängigkeitsanalyse mit CaboCha
Sprachanalyse mit Python
Regression mit einem linearen Modell
Erste Schritte mit Numpy
Grundlagen der Regressionsanalyse
Lernen Sie mit Chemo Informatics NumPy
Summencode mit Numpy
Sprachanalyse mit Python
Dynamische Analyse von Valgrind
Versuchen Sie eine Regression mit TensorFlow
Datenanalyse mit Python
Einfache LASSO-Regressionsanalyse mit Python (keine Theorie)
Erweitern Sie NumPy mit Rust
Regressionsanalyse mit Python
Berechnen Sie den Regressionskoeffizienten der einfachen Regressionsanalyse mit Python
Ich habe GP mit Numpy geschrieben
[Python] Morphologische Analyse mit MeCab
CNN-Implementierung mit nur Numpy
Künstliche Datengenerierung mit Numpy
[Python] Berechnungsmethode mit numpy
Versuchen Sie die Matrixoperation mit NumPy
Ridge kehrt mit Mllib im Pyspark zurück
Animation der Diffusionsgleichung mit NumPy
Emotionsanalyse von Python (word2vec)
Schuldenrückzahlungssimulation mit Numpy
SMO mit Python + NumPy implementiert
Kleben Sie die Saiten mit Numpy zusammen
Mit Pyradiomics erlernte Texturanalyse
Planare Skelettanalyse mit Python
Japanische morphologische Analyse mit Python
Lineare Regressionsmethode mit Numpy
Behandle numpy Arrays mit f2py
Einfache Regressionsanalyse mit Python
[Python] Lineare Regression mit Scicit-Learn
Verwenden Sie OpenBLAS mit numpy, scipy
Muskel-Ruck-Analyse mit Python
[PowerShell] Morphologische Analyse mit SudachiPy
Text Emotionsanalyse mit ML-Ask
Robuste lineare Regression mit Scikit-Learn
Führen Sie eine minimale quadratische Anpassung mit numpy durch.
Erste einfache Regressionsanalyse in Python
Dreidimensionale Skelettstrukturanalyse mit Python
Impedanzanalyse (EIS) mit Python [impedance.py]
Algorithmus für maschinelles Lernen (multiple Regressionsanalyse)
Zeichne einen schönen Kreis mit Numpy
Text Mining mit Python ① Morphologische Analyse
Algorithmus für maschinelles Lernen (Einzelregressionsanalyse)
Lineare Regression mit Student's t-Verteilung