Erste einfache Regressionsanalyse in Python

Die Bedeutung einer einfachen Regressionsanalyse kann so oft herausgefunden werden, wie Sie möchten, aber ich hoffe, dass Sie Ihr Verständnis vertiefen können, indem Sie das Programm selbst schreiben, und ich würde es gerne mit Python ausprobieren.

Derzeit gibt es die folgenden Beispiele als Erklärungen für eine einfache Regressionsanalyse.

  1. Eine Zielvariable (y), die durch eine erklärende Variable (x) vorhergesagt wird.
  2. Drücken Sie ihre Beziehung in Form einer linearen Gleichung y = ax + b aus.

Die Testumgebung verwendet ein Jupyter-Notebook (ich erinnere mich nicht einmal, wann ich es installiert habe). Die verwendete Version ist wie folgt.

The version of the notebook server is: 6.0.0
Python 3.7.3 (default, Mar 27 2019, 22:11:17) 
[GCC 7.3.0]

pandas pandas (pandas, pandas oder pandas) ist eine Bibliothek zum Konvertieren und Analysieren von Daten. Wir werden dies verwenden, um die Daten zu lesen. Die verwendete Version ist wie folgt.

import pandas as pd
print(pd.__version__)
# 0.24.2

Daten gelesen

Dieses Mal werde ich die Daten zu Größe (x) und Gewicht (y) (sample.csv) für 48 Personen verwenden.

sample.csv


x,y
152,57
173,78
172,83
178,58
166,63
175,66
158,66
163,74
157,64
165,68
176,68
165,60
147,63
153,63
146,47
156,49
145,59
181,66
160,74
140,55
152,55
165,56
170,65
159,51
151,52
167,51
177,82
155,63
159,45
170,66
154,56
163,60
161,70
165,70
150,57
158,53
163,67
186,69
168,68
170,74
155,60
159,49
170,87
163,50
166,58
161,69
159,60
171,71

Lesen Sie die Datei sample.csv und versuchen Sie, die ersten drei Zeilen auszugeben. Es scheint, dass es wie folgt gelesen werden kann.

df = pd.read_csv('sample.csv')
df.head(3)
 	x 	y
0 	152 	57
1 	173 	78
2 	172 	83

Beim Lesen von Daten mit pandas.read_csv werden die Daten anscheinend mit einem Typ namens DataFrame erstellt. pandas.read_csv DataFrame

Speichern Sie alle Spaltendaten in den Variablen x und y.

x = df.x
y = df.y

matplotlib matplotlib ist eine Grafikzeichnungsbibliothek. Die verwendete Version ist wie folgt.

import matplotlib
matplotlib.__version__
# '3.1.0'

Diagrammzeichnung

import matplotlib.pyplot as plt
plt.plot(x, y)
plt.show()

matplotlib1.PNG

Ein Diagramm mit allen durch eine Linie verbundenen Punkten wurde angezeigt. Was ich erwartet hatte, war ein Diagramm, das nur Punkte zeigt, daher werde ich es wie folgt ändern.

import matplotlib.pyplot as plt
plt.plot(x, y, 'o')
plt.show()

matplotlib2.PNG

scikit-learn scikit-learn ist eine Bibliothek für maschinelles Lernen, die auf den Python-Paketen NumPy (Nampai oder Nampai) und SciPy (Saipy) zur Durchführung wissenschaftlicher und technologischer Berechnungen basiert. Die verwendete Version ist wie folgt.

import sklearn
print(sklearn.__version__)
# 0.21.2

Es scheint, dass eine einfache Regressionsanalyse mit scikit-learn leicht durchgeführt werden kann. LinearRegression

Daten lernen

Erzeugt eine Instanz des LinearRegression-Modells und trainiert (passt) die Daten an.

from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(x, y)
# ValueError: Expected 2D array, got 1D array instead:

Ich dachte, ich habe einen Fehler bekommen. Wenn ein zweidimensionales Array benötigt wird, scheint es ein eindimensionales Array zu ergeben. Lassen Sie uns die Art und Weise ändern, wie x und y gespeichert werden, und erneut lernen.

x = df[['x']]
y = df[['y']]
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(x, y)
# LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)

Es scheint, dass er es in dieser Zeit genommen hat. Dieser Teil sollte funktionieren, wenn Sie das ursprüngliche x und y wie folgt definieren.

#Anzahl in Werten.Konvertieren Sie in ndarray Typ und np.reshape(-1, 1)Konvertieren Sie in n Zeilen und 1 Spalte mit
model.fit(x.values.reshape(-1,1), y.values.reshape(-1,1))

Datenvorhersage

Sagen wir es voraus.

plt.plot(x, y, 'o')
plt.plot(x, model.predict(x), linestyle="solid")
plt.show()

matplotlib3.PNG Als Ergebnis der Vorhersage der Zielvariablen (y) aus der erklärenden Variablen (x) wurde eine Linie gezogen, die nach rechts zunahm (je größer die Person, desto schwerer das Gewicht).

Es scheint, dass die Attribute coef_ und intercept_ die "Neigung" und den "Abschnitt" dieser geraden Linie enthalten. Wenn Sie sie also ausgeben, können Sie die Geradengleichung erhalten.

print('y = %.2fx + %.2f' % (model.coef_ , model.intercept_))
# y = 0.52x + -20.94

Aus dem Obigen ist es durch Kenntnis von a (Neigung) und b (Abschnitt) möglich, y (Gewicht) aus x (Höhe) vorherzusagen, dh eine "einzelne Regressionsanalyse" wurde realisiert. ..

Recommended Posts

Erste einfache Regressionsanalyse in Python
Einfache Regressionsanalyse mit Python
Regressionsanalyse mit Python
2. Multivariate Analyse in Python 1-1. Einfache Regressionsanalyse (Scikit-Learn)
2. Multivariate Analyse in Python 1-2. Einfache Regressionsanalyse (Algorithmus)
Einfache Implementierung einer Regressionsanalyse mit Keras
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
Einfacher gRPC in Python
Assoziationsanalyse in Python
Mehrfacher Regressionsausdruck in Python
Axialsymmetrische Spannungsanalyse mit Python
Online lineare Regression in Python
Einfacher IRC-Client mit Python
2. Multivariate Analyse in Python 7-3. Entscheidungsbaum [Rückgabebaum]
Python Scikit-learn Lineare Regressionsanalyse Nichtlineare einfache Regressionsanalyse Maschinelles Lernen
Berechnen Sie den Regressionskoeffizienten der einfachen Regressionsanalyse mit Python
2. Multivariate Analyse in Python 2-1. Multiple Regressionsanalyse (Scikit-Learn)
Gehirnwellenanalyse mit Python: Python MNE-Tutorial
Einfaches OAuth 2 mit Python (urllib + oauthlib)
Algorithmus für maschinelles Lernen (Einzelregressionsanalyse)
Vorhersagestatistik (einfache Regression üben) Python
Einfache Regressionsanalyse, verstanden durch mathematische Überprüfung des Moore'schen Gesetzes an der High School
Implementierung eines einfachen Algorithmus in Python 2
Planare Skelettanalyse in Python (2) Hotfix
2. Multivariate Analyse in Python 5-3. Logistische Regressionsanalyse (Statistikmodelle)
Führen Sie einen einfachen Algorithmus in Python aus
Logistische Regressionsanalyse Selbst erstellt mit Python
Einfache Gacha-Logik in Python geschrieben
Der erste Schritt von Python Matplotlib
Eine einfache Datenanalyse von Bitcoin, die von CoinMetrics in Python bereitgestellt wird
[Statistischer Test 2. Klasse / quasi 1. Klasse] Regressives Analysetraining mit Python (2)
2. Multivariate Analyse in Python 6-2. Ridge-Regression / Lasso-Regression (Scikit-Learn) [Ridge-Regression vs. Lasso-Regression]
[Statistischer Test 2. Klasse / quasi 1. Klasse] Regressives Analysetraining mit Python (1)
2. Multivariate Analyse in Python 2-3. Multiple Regressionsanalyse [COVID-19-Infektionsrate]
Generieren Sie eine erstklassige Sammlung in Python
Lineare Regression in Python (Statmodelle, Scikit-Learn, PyMC3)
Ein einfacher HTTP-Client, der in Python implementiert ist
Versuchen Sie, eine einfache Animation in Python zu zeichnen
Online lineare Regression in Python (Robuste Schätzung)
Erstellen Sie eine einfache GUI-App in Python
Ich habe versucht, Couseras logistische Regression in Python zu implementieren
[Python] Erste Datenanalyse / maschinelles Lernen (Kaggle)
MongoDB mit Python zum ersten Mal
Schreiben Sie eine einfache Giermethode in Python
Schreiben Sie ein einfaches Vim-Plugin in Python 3
Restanalyse in Python (Ergänzung: Cochrane-Regeln)
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Erster Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
Datenanalyse Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python