[PYTHON] Lineare Regressionsmethode mit Numpy

Einführung

Dieser Artikel wurde vom Autor https://www.udemy.com/share/1013lqB0AedFdUR34=0 verfasst Der Zweck ist zu überprüfen, was ich gelernt habe

schreiben

Ableitung der Methode der kleinsten Quadrate

Angenommen, Sie erhalten einen Datensatz [x, y]. x ist die erklärende Variable und y ist die Zielvariable. Wenn beispielsweise die Größe zunimmt, nimmt auch das Gewicht zu, in diesem Fall also x = Größe und y = Gewicht.

Und ich möchte y aus den gegebenen Daten x vorhersagen. Der vorhergesagte Wert zu diesem Zeitpunkt sei $ \ hat {y} $ und nehme den folgenden relationalen Ausdruck an.

\hat{y} = ax + b

Hier ist das Ziel, $ \ hat {y} $ so nah wie möglich an den richtigen Antwortwert $ y $ zu bringen. Deshalb

Error = y - \hat{y} = y - ax + b =0

Es ist wichtig, a und b zu finden. Die folgenden Erklärungen finden Sie unter den folgenden Links. http://arduinopid.web.fc2.com/P7.html

Lineare Regression mit Numpy

Importieren Sie zuerst das Modul

python


import pandas as pd
from pandas import Series, DataFrame
import numpy as np

import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('whitegrid')
%matplotlib inline

Laden Sie auch den diesmal verwendeten Datensatz herunter

python


from sklearn.datasets import load_boston

boston = load_boston()

Dieses Mal verwenden wir RM (durchschnittliche Anzahl der Zimmer pro Wohnung) und Ziel (Preis) in diesem Datenrahmen. Ursprünglich werden sns.pairplot und sns.jointplot verwendet, um nach Variablen zu suchen, die wahrscheinlich eine lineare (proportionale) Regressionsbeziehung haben. Diesmal wird jedoch davon ausgegangen, dass diese beiden Variablen im Voraus eine proportionale Beziehung haben.

python


boston_df = DataFrame(boston.data)
#Geben Sie einen Spaltennamen an
boston_df.columns = boston.feature_names
#Kopieren Sie eine neue Spalte, da sie mit dem Ziel schwer zu verstehen ist
boston_df['Price'] = boston.target
#Anzeige von Streudiagramm und Regressionslinie
sns.lmplot('RM', 'Price', data=boston_df)

b.png

Berechnen wir diese Regressionslinie. Verwenden Sie np.linalg.lstsq (X, Y). Da dieses X jedoch ein Array mit einer bestimmten Form erfordert, wird es zu diesem Zweck geformt.

python


X = boston_df.RM
Y = boston_df.Price
#[x,1]In Form von
X = np.array([ [value[0], 1] for value in X])
#In Gleitkommatyp konvertieren
X = X.astype(np.float64)
#a,Jeder vorhergesagte Wert wird in b gespeichert
a, b = np.linalg.lstsq(X, Y)[0]

Dies ist das Ende der Berechnung. Mal sehen, das Ergebnis

python


plt.plot(boston_df.RM, boston_df.Price, 'o')
x = boston_df.RM
plt.plot(x, a*x+b, 'r')

a.png

Beilage zu np.linalg.lstsq

Klicken Sie hier für die offizielle Dokumentation https://numpy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html#numpy.linalg.lstsq

numpy.linalg.lstsq(a, b, rcond='warn')

np.linalg.lstsq (X, Y) [1] kann verwendet werden, um die gesamten Residuen zu extrahieren.

Recommended Posts

Lineare Regressionsmethode mit Numpy
Lineare Regression
Methode der Regressionsanalyse
Rückkehr nach dem Gaußschen Verfahren
Regression mit einem linearen Modell
Führen Sie eine Regressionsanalyse mit NumPy durch
Numpy Praktische Methodenliste
Methodenaufruf mit __getattr__
Kernel-Regression nur mit Numpy
Gaußsche Prozessregression mit GPy
Maschinelles Lernen: Überwacht - Lineare Regression
[Python] Berechnungsmethode mit numpy
[Python] LASSO-Regression mit Gleichungsbeschränkung unter Verwendung der Multiplikatormethode
Datenvisualisierungsmethode mit Matplotlib (1)
FFT & Trendentfernung mit Numpy
Datenvisualisierungsmethode mit Matplotlib (2)
[Python] Lineare Regression mit Scicit-Learn
Online lineare Regression in Python
SQL-Verbindungsmethode mit pyodbc
Versuchen Sie, eine lineare Regression mit Pytorch mit Google Colaboratory zu implementieren
Implementierung der logistischen Regression mit NumPy
Robuste lineare Regression mit Scikit-Learn
[Statistik] [R] Versuchen Sie, die Teilungspunktregression zu verwenden.
Anfänger des maschinellen Lernens versuchen eine lineare Regression
Lineare Regression mit Student's t-Verteilung
Rauschentfernungsverfahren unter Verwendung der Wavelet-Umwandlung
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (3)
Binarisierung von Bildern mittels linearer Diskriminanzanalyse
Lineare Regression (für Anfänger) -Code Edition-
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (4)
Versuchen Sie mit einem linearen Regressionsmodell auf Android [PyTorch Mobile] zu schließen