Analyse de régression LASSO facile avec Python (pas de théorie)

Pour ceux qui veulent faire une analyse de régression LASSO avec python pour le moment. Ne jouez pas avec les paramètres. Cliquez ici pour les données à utiliser https://gist.github.com/tijptjik/9408623

Module d'importation pour la régression LASSO

Importez uniquement Lasso depuis sklearn.linear_model.

from sklearn.linear_model import Lasso

Importer un module qui divise les données

Importez uniquement train_test_split depuis sklearn.model_selection.

from sklearn.model_selection import train_test_split

Importez des modules qui gèrent les matrices

Importez numpy avec le nom np disponible.

import numpy as np

Importer des modules qui gèrent csv

Importez des pandas avec le nom pd disponible.

import pandas as pd

Importer un module pour dessiner un graphique

import matplotlib.pyplot as plt

Importez le module pour trouver l'erreur quadratique moyenne

from sklearn.metrics import mean_squared_error

Charger csv

Chargez iris.csv dans df (trame de données).

df=pd.read_csv('wine_type.csv')
df=pd.read_csv('Desktop/Documents/wine.csv')

Etc. (Linux)

Divisez les données pour la formation et les tests

Formation: apprentissage = 6: 4.

df_train, df_test = train_test_split(df, test_size=0.4)

Lorsque les données sont affichées, cela ressemble à ceci.

df_train=
     wine_type  alcohol  malic_acid   ash  alcalinity_of_ash  magnesium  total_phenols  flavanoids  nonflavanoid_phenols  proanthocyanins  color_intensity   hue  OD280/OD315_of_diluted_wines  proline
106          2    12.25        1.73  2.12               19.0         80           1.65        2.03                  0.37             1.63             3.40  1.00                          3.17      510
157          3    12.45        3.03  2.64               27.0         97           1.90        0.58                  0.63             1.14             7.50  0.67                          1.73      880
75           2    11.66        1.88  1.92               16.0         97           1.61        1.57                  0.34             1.15             3.80  1.23                          2.14      428
142          3    13.52        3.17  2.72               23.5         97           1.55        0.52                  0.50             0.55             4.35  0.89                          2.06      520
83           2    13.05        3.86  2.32               22.5         85           1.65        1.59                  0.61             1.62             4.80  0.84                          2.01      515
..         ...      ...         ...   ...                ...        ...            ...         ...                   ...              ...              ...   ...                           ...      ...
117          2    12.42        1.61  2.19               22.5        108           2.00        2.09                  0.34             1.61             2.06  1.06                          2.96      345
129          2    12.04        4.30  2.38               22.0         80           2.10        1.75                  0.42             1.35             2.60  0.79                          2.57      580
60           2    12.33        1.10  2.28               16.0        101           2.05        1.09                  0.63             0.41             3.27  1.25                          1.67      680
25           1    13.05        2.05  3.22               25.0        124           2.63        2.68                  0.47             1.92             3.58  1.13                          3.20      830
41           1    13.41        3.84  2.12               18.8         90           2.45        2.68                  0.27             1.48             4.28  0.91                          3.00     1035

[106 rows x 14 columns]

Séparer la variable explicative et la variable objective

Insérez la colonne que vous souhaitez utiliser pour l'analyse dans x. (Variable explicative) Insérez une colonne de résultats d'analyse dans y. (Variable d'objectif) Cette fois, nous prédisons la «proline» à partir de «l'intensité de la couleur».

x_train = df_train[['color_intensity']]
x_test  = df_test[['color_intensity']]

y_train = df_train['proline']
y_test  = df_test['proline']

Faire un modèle vide

lss = Lasso()

Apprendre la régression

fit (variable explicative, variable objective)

Le résultat de la formation est stocké dans le modèle lss créé ci-dessus.

lss.fit(x_train, y_train)

Faire une régression

prédire (données pour l'analyse de régression)

Effectuez une régression avec et affectez-la à y_pred.

y_pred = lss.predict(x_test)

Essayez d'afficher sur le graphique

Vous pouvez créer un diagramme de dispersion avec plt.scatter (axe x, axe y). Affichez la bonne réponse. (Point bleu)

plt.scatter(x_test, y_test)

Créez un tableau par incréments de 0,1 de la valeur minimale de x_test ["color_intensity"] à la valeur maximale et créez une matrice. Exécutez ensuite lss.predict pour afficher la valeur prédite. (Point rouge)

x_for_plot = np.arange(np.min(x_test["color_intensity"])
                      ,np.max(x_test["color_intensity"]),0.1).reshape(-1,1)
plt.scatter(x_for_plot,lss.predict(x_for_plot),color="red")

Paramètres d'étiquette

plt.xlabel("color_intensity")
plt.ylabel("proline")

afficher

plt.show()

Le bleu est la valeur réelle et le rouge est la valeur prévue. スクリーンショット 2019-12-01 22.08.18.png

Enfin, trouvez l'erreur quadratique moyenne.

print(mean_squared_error(y_test,y_pred)) #90027.41397601982 C'est lol

Je pense que la précision sera améliorée en jouant avec les paramètres.

Ci-dessous le code pour la copie

from sklearn.linear_model import Lasso
from sklearn.model_selection import train_test_split
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error
df=pd.read_csv('wine.csv')
df_train, df_test = train_test_split(df, test_size=0.4)
x_train = df_train[['color_intensity']]
x_test  = df_test[['color_intensity']]

y_train = df_train['proline']
y_test  = df_test ['proline']
print(y_train)
lss = Lasso()
lss.fit(x_train, y_train)
y_pred = lss.predict(x_test)

plt.scatter(x_test, y_test)
x_for_plot = np.arange(np.min(x_test["color_intensity"]),np.max(x_test["color_intensity"]),0.1).reshape(-1,1)
plt.scatter(x_for_plot,lss.predict(x_for_plot),color="red")
plt.xlabel("color_intensity")
plt.ylabel("proline")
plt.show()

print(mean_squared_error(y_test,y_pred))

Recommended Posts

Analyse de régression LASSO facile avec Python (pas de théorie)
[Analyse de co-occurrence] Analyse de co-occurrence facile avec Python! [Python]
Analyse de régression logistique Self-made avec python
Apprentissage automatique avec python (2) Analyse de régression simple
Analyse de données avec python 2
Analyse vocale par python
Effectuer une analyse de régression avec NumPy
Analyse de données avec Python
Analyse de régression avec Python
Calculer le coefficient de régression d'une analyse de régression simple avec python
[Python] Analyse morphologique avec MeCab
Analyse de régression multiple avec Keras
Analyse des émotions par Python (word2vec)
Synchronisation facile des dossiers avec Python
Analyse de squelette planaire avec Python
Compilation facile de Python avec NUITKA-Utilities
Analyse de régression simple avec Python
Analyse des secousses musculaires avec Python
[Python] Régression LASSO avec contrainte d'équation utilisant la méthode du multiplicateur
[Python] Traitement parallèle facile avec Joblib
Première analyse de régression simple en Python
Analyse de la structure du squelette en trois dimensions avec Python
Analyse d'impédance (EIS) avec python [impedance.py]
Text mining avec Python ① Analyse morphologique
Transmission de courrier facile avec Hâte Python3
Optimisation bayésienne très simple avec Python
Analyse de données à partir de python (visualisation de données 1)
Exécution parallèle facile avec le sous-processus python
Analyse de données à partir de python (visualisation de données 2)
2. Analyse multivariée définie dans Python 6-2. Régression Ridge / Régression Lasso (scikit-learn) [Régression Ridge vs régression Lasso]
Extraction de mots-clés facile avec TermExtract pour Python
J'ai essayé l'analyse de régression multiple avec régression polypoly
[Python] Test super facile avec instruction assert
[Python] Vérification simple du type d'argument avec la classe de données
[Didacticiel d'analyse Python en base de données avec SQL Server 2017]
Soudainement avec Python PyInstaller Aucun module nommé pyinstaller
Analyse bidimensionnelle du flux de perméation saturée-insaturée avec Python
Programme d'analyse des contraintes FEM 2D par Python
Introduction facile de la reconnaissance vocale avec Python
[Easy Python] Lecture de fichiers Excel avec openpyxl
2. Analyse multivariée décrite dans Python 6-1. Régression de crête / Régression de lasso (scikit-learn) [régression multiple vs régression de crête]
Analyse des tweets avec Python, Mecab et CaboCha
Application Web facile avec Python + Flask + Heroku
Traitez facilement des images en Python avec Pillow
Analyse de données à partir de python (pré-traitement des données-apprentissage automatique)
[Easy Python] Lecture de fichiers Excel avec des pandas
Analyse de conduction thermique bidimensionnelle non stationnaire avec Python
Scraping Web facile avec Python et Ruby
Python: analyse morphologique simplifiée avec des expressions régulières
Solve Lake Counting (POJ n ° 2386) avec Python3
[Python] Essayez facilement l'apprentissage amélioré (DQN) avec Keras-RL
Construction d'un environnement d'analyse de données Python facile avec Windows10 Pro x VS Code x Docker
[Python] Introduction facile à l'apprentissage automatique avec python (SVM)
Sortie CSV de la recherche Google avec [Python]! 【Facile】
[Diverses analyses d'images avec plotly] Visualisation dynamique avec plotly [python, image]
Analyse d'images médicales avec Python 1 (Lire une image IRM avec SimpleITK)
Analyse statique du code Python avec GitLab CI
Analyse non linéaire géométrique du squelette élastique bidimensionnel avec Python