[PYTHON] Apprentissage automatique à tour de rôle (analyse de régression) -Cela réduit considérablement le temps de réglage des paramètres-

RegressionAutomaticSearch

J'ai créé un programme qui effectue une analyse de régression avec un modèle dont les paramètres ont été modifiés par apprentissage automatique arbitraire. Voyons maintenant le meilleur modèle et les meilleurs paramètres. Cette fois, je vais essayer de prédire le prix de l'immobilier à Boston. Le modèle utilise LinearRegression, DecisionTree, RandomForest et AdaBoost.

Créer un environnement virtuel

Créer venv

C:\RegressionAutomaticSearch>py -m venv venv

Appliquer venv

C:\RegressionAutomaticSearch>.\venv\Scripts\activate.bat
(venv) C:\RegressionAutomaticSearch>

Installation du package

Mise à jour du package

(venv)C:\RegressionAutomaticSearch>python -m pip install --upgrade pip

Installation en masse des packages requis

(venv) C:\RegressionAutomaticSearch>pip install -r requirements.txt

Remplacement du jeu de données

Changez pour le chemin de l'ensemble de données que vous souhaitez retracer.


###########################
# read datasets
#
#S'il y a un index à l'extrême gauche
df = pd.read_csv('./datasets/boston_datasets.csv', index_col=0)

Le contenu est comme ça. Lire un fichier avec la même variable explicative et la même variable objective.

      CRIM    ZN  INDUS  CHAS    NOX     RM   AGE     DIS  RAD    TAX  PTRATIO       B  LSTAT  MONEY
0  0.00632  18.0   2.31   0.0  0.538  6.575  65.2  4.0900  1.0  296.0     15.3  396.90   4.98   24.0
1  0.02731   0.0   7.07   0.0  0.469  6.421  78.9  4.9671  2.0  242.0     17.8  396.90   9.14   21.6
2  0.02729   0.0   7.07   0.0  0.469  7.185  61.1  4.9671  2.0  242.0     17.8  392.83   4.03   34.7
3  0.03237   0.0   2.18   0.0  0.458  6.998  45.8  6.0622  3.0  222.0     18.7  394.63   2.94   33.4
4  0.06905   0.0   2.18   0.0  0.458  7.147  54.2  6.0622  3.0  222.0     18.7  396.90   5.33   36.2

Changer la variable d'objectif

Supprimez la variable explicative du bloc de données.

#Vers la variable explicative"Tout sauf ARGENT"utilisation
boston_X = df.drop("MONEY", axis=1)
X = boston_X.values

Réglage des paramètres

Ajustez les paramètres de la liste transmise au modèle.

    def model_import(self):
        models_names = [ self.LinearRegression(), 
                         self.DecisionTreeRegressor(list(range(2, 30, 2))),
                         self.RandomForestRegressor(list(range(2, 30, 2)), list(range(20, 200, 20))),
                         self.AdaBoostRegressor(list(range(20, 200, 20)))]
        models = []
        names  = []
        for model_, name_ in models_names:
            if isinstance(model_, list):
                models.extend(model_)
                names.extend(name_)
            else:
                models.append(model_)
                names.append(name_)
        return models, names 

Effectuer une régression

Exécutez main.py.

(venv) C:\RegressionAutomaticSearch>python main.py  

Résultat de retour

L'image de résultat, l'erreur et le csv du coefficient de décision sont sortis dans le dossier de résultats. fig_demo.PNG result_MSE_R2.PNG

Code source

Placez le code source sur github au lien ci-dessous. Il y a encore plus de domaines à ajuster, je vais donc le mettre à jour de temps en temps.

https://github.com/upamasaki/RegressionAutomaticSearch

Recommended Posts

Apprentissage automatique à tour de rôle (analyse de régression) -Cela réduit considérablement le temps de réglage des paramètres-
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitre 7 Analyse de régression
Si vous apprenez Linux pour la première fois, faites-le!
Algorithme d'apprentissage automatique (analyse de régression multiple)
Algorithme d'apprentissage automatique (analyse de régression unique)
[Python] [Apprentissage automatique] Les débutants sans aucune connaissance essaient l'apprentissage automatique pour le moment
Prédiction des données en un clic pour le champ réalisée par apprentissage automatique entièrement automatique
Apprentissage automatique avec python (2) Analyse de régression simple
[Apprentissage automatique] Analyse de régression à l'aide de scicit learn
Retour sur le concours d'apprentissage automatique sur lequel j'ai travaillé pour la première fois
GTUG Girls + PyLadiesTokyo Meetup Je suis allé au premier machine learning
virtualenv Pour le moment, c'est tout!
Écrivez ceci dans le fichier ttl pour le moment pour la connexion SSH automatique avec Teraterm