[PYTHON] Robuste lineare Regression mit Scikit-Learn

Überblick

Einführung in das Zeichnen einer robusten linearen Regression mithilfe der maschinellen Lernbibliothek von Python sckit-learn. In diesem Artikel habe ich ein Diagrammobjekt mit der Python-Zeichnungsbibliothek altair erstellt und mit Streamlit ein Diagrammobjekt erstellt ota / items / a18f158389f1585a9aa0) wird zur Anzeige im Browser verwendet.

Merkmale einer robusten linearen Regression

Es ist weniger anfällig für Abweichungen als die lineare Regression nach der Methode der kleinsten Quadrate.

Erstellen einer robusten linearen Regression

Verwenden Sie HuberRegressor, um eine robuste Regressionslinie zu erstellen. Beachten Sie, dass streamlit mit streamlit run file name.py ausgeführt wird

streamlit_robust_linear.py


import streamlit as st
import numpy as np
import pandas as pd
import altair as alt
from sklearn.linear_model import HuberRegressor
from sklearn.datasets import make_regression

#Demo-Datengenerierung

rng = np.random.RandomState(0)
x, y, coef = make_regression( n_samples=200, n_features=1, noise=4.0, coef=True, random_state=0)
x[:4] = rng.uniform(10, 20, (4, 1))
y[:4] = rng.uniform(10, 20, 4)
df = pd.DataFrame({
    'x_axis': x.reshape(-1,),
    'y_axis': y
     }) 

#Stellen Sie Parameter für eine robuste Regression ein

epsilon = st.slider('Select epsilon', 
          min_value=1.00, max_value=10.00, step=0.01, value=1.35)

#Robuste Regressionsausführung

huber = HuberRegressor(epsilon=epsilon
    ).fit(
    df['x_axis'].values.reshape(-1,1), 
    df['y_axis'].values.reshape(-1,1)
    )

#Erzeugung von Streudiagrammen

plot = alt.Chart(df).mark_circle(size=40).encode(
    x='x_axis',
    y='y_axis',
    tooltip=['x_axis', 'y_axis']
).properties(
    width=500,
    height=500
).interactive()

#Ermitteln Sie den Koeffizienten der robusten linearen Regression

a1 = huber.coef_[0]
b1 = huber.intercept_

#Geben Sie den Definitionsbereich der Regressionslinie an

x_min = df['x_axis'].min()
x_max = df['x_axis'].max()

#Erstellen einer Regressionslinie

points = pd.DataFrame({
    'x_axis': [x_min, x_max],
    'y_axis': [a1*x_min+b1, a1*x_max+b1],
})

line = alt.Chart(points).mark_line(color='steelblue').encode(
    x='x_axis',
    y='y_axis'
    ).properties(
    width=500,
    height=500
    ).interactive()

#Grafik anzeigen

st.write(plot+line)

Über Parameter

Epsilon ist eine reelle Zahl größer oder gleich 1 und repräsentiert den Grad des Einflusses von Ausreißern. Die Standardeinstellung ist 1.35. スクリーンショット 2020-10-17 12.14.39.png

Je größer das Epsilon ist, desto größer ist die Wirkung von Ausreißern. (Das Bild ist epsilon = 10) スクリーンショット 2020-10-17 12.16.33.png

Erstellen einer linearen Regressionslinie nach der Methode der kleinsten Quadrate

Durch Ersetzen von HuberRegressor durch LinearRegression können Sie eine lineare Regressionslinie mit der Methode der kleinsten Quadrate erstellen.

Recommended Posts

Robuste lineare Regression mit Scikit-Learn
[Python] Lineare Regression mit Scicit-Learn
Lineare Regression mit Statistikmodellen
Regression mit einem linearen Modell
Lineare Regression
Lineare Regression mit Student's t-Verteilung
Isomap mit Scikit-lernen
Lineare Regression in Python (Statmodelle, Scikit-Learn, PyMC3)
Online lineare Regression in Python (Robuste Schätzung)
Clustering mit Scikit-Learn (1)
Clustering mit Scikit-Learn (2)
PCA mit Scikit-Learn
kmeans ++ mit scikit-learn
Vorhersage des heißen Sommers mit linearem Regressionsmodell
Multivariables Regressionsmodell mit Scikit-Learn - Ich habe versucht, SVR zu vergleichen und zu verifizieren
PCA mit Scikit-Learn
Trennung von Hintergrund und sich bewegenden Objekten mithilfe der dynamischen Moduszerlegung
Gleitender Durchschnitt mit Numpy
Robuste lineare Regression mit Scikit-Learn
Mehrklassen-SVM mit Scikit-Learn
Clustering mit scikit-learn + DBSCAN
Lineare Regression des maschinellen Lernens
Lineare Programmierung mit PuLP
DBSCAN (Clustering) mit Scikit-Learn
Führen Sie eine Regressionsanalyse mit NumPy durch
Versuchen Sie eine Regression mit TensorFlow
Installieren Sie scikit.learn mit pip
Berechnen Sie tf-idf mit scikit-learn
Python Scikit-learn Lineare Regressionsanalyse Nichtlineare einfache Regressionsanalyse Maschinelles Lernen
Einführung in die Tensorflow-About-Hypothese und die Kosten der linearen Regression
Lösen des Irisproblems mit scikit-learn ver1.0 (logistische Regression)
Kernel-Regression nur mit Numpy
Maschinelles Lernen: Überwacht - Lineare Regression
Multiple Regressionsanalyse mit Keras
Neuronales Netzwerk mit Python (Scikit-Learn)
Ridge kehrt mit Mllib im Pyspark zurück
Parallele Verarbeitung mit Parallel von Scikit-Learn
Lineare Regressionsmethode mit Numpy
Online lineare Regression in Python
Klassifikation / Regression durch Stapeln (Scikit-Learn)
Versuchen Sie, eine lineare Regression mit Pytorch mit Google Colaboratory zu implementieren
Implementierung der logistischen Regression mit NumPy
[Maschinelles Lernen] Verstehen der linearen einfachen Regression sowohl aus Scikit-Lernen als auch aus Mathematik
Einführung in die Bayes'sche statistische Modellierung mit Python ~ Versuch einer linearen Regression mit MCMC ~
[Maschinelles Lernen] Verstehen der linearen multiplen Regression sowohl aus Scikit-Lernen als auch aus Mathematik
Rastersuche von Hyperparametern mit Scikit-learn
Erstellen eines bestimmten Baums mit Scikit-Learn
Bildsegmentierung mit Scikit-Image und Scikit-Learn
Anfänger des maschinellen Lernens versuchen eine lineare Regression
Identifizieren Sie Ausreißer mit dem Random Forest Classifier von scikit-learn
[Übersetzung] scikit-learn 0.18 Benutzerhandbuch 1.15. Isotonische Regression
Standardisieren Sie die nicht normale Verteilung mit einem robusten Z-Score
Nicht negative Matrixfaktorisierung (NMF) mit Scikit-Learn
Scikit-learn DecisionTreeClassifier mit Datetime-Typwerten
Logistische Regressionsanalyse Selbst erstellt mit Python
Lineare Regression (für Anfänger) -Code Edition-
Sinuswellenvorhersage (Rückkehr) mit Pytorch
(Maschinelles Lernen) Ich habe versucht, die Bayes'sche lineare Regression bei der Implementierung sorgfältig zu verstehen