[PYTHON] Automatisches Round-Robin-Lernen (Regressionsanalyse) - Dies verkürzt die Zeit für die Parametereinstellung erheblich.

RegressionAutomaticSearch

Ich habe ein Programm erstellt, das eine Regressionsanalyse mit einem Modell durchführt, dessen Parameter durch willkürliches maschinelles Lernen geändert wurden. Lassen Sie uns nun das beste Modell und die besten Parameter finden. Dieses Mal werde ich versuchen, den Hauspreis in Boston vorherzusagen. Das Modell verwendet LinearRegression, DecisionTree, RandomForest und AdaBoost.

Erstellen einer virtuellen Umgebung

Erstellen Sie venv

C:\RegressionAutomaticSearch>py -m venv venv

Venv auftragen

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

Paketinstallation

Paketaktualisierung

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

Masseninstallation der erforderlichen Pakete

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

Ersetzen des Datensatzes

Wechseln Sie in den Pfad des Datasets, das Sie zurückverfolgen möchten.


###########################
# read datasets
#
#Wenn es ganz links einen Index gibt
df = pd.read_csv('./datasets/boston_datasets.csv', index_col=0)

Der Inhalt ist so. Lesen Sie eine Datei mit derselben erklärenden Variablen und derselben Zielvariablen.

      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

Zielvariable ändern

Löschen Sie die erklärende Variable aus dem Datenrahmen.

#Zur erklärenden Variablen"Alles außer Geld"verwenden
boston_X = df.drop("MONEY", axis=1)
X = boston_X.values

Parametereinstellung

Passen Sie die Parameter in der an das Modell übergebenen Liste an.

    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 

Regression durchführen

Führen Sie main.py aus.

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

Ergebnis zurückgeben

Das Ergebnisbild, der Fehler und die CSV des Entscheidungskoeffizienten werden in den Ergebnisordner ausgegeben. fig_demo.PNG result_MSE_R2.PNG

Quellcode

Platzieren Sie den Quellcode auf Github unter dem folgenden Link. Es sind noch weitere Bereiche anzupassen, daher werde ich sie von Zeit zu Zeit aktualisieren.

https://github.com/upamasaki/RegressionAutomaticSearch

Recommended Posts

Automatisches Round-Robin-Lernen (Regressionsanalyse) - Dies verkürzt die Zeit für die Parametereinstellung erheblich.
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 7 Regressionsanalyse
Wenn Sie zum ersten Mal Linux lernen, tun Sie dies!
Algorithmus für maschinelles Lernen (multiple Regressionsanalyse)
Algorithmus für maschinelles Lernen (Einzelregressionsanalyse)
[Python] [Maschinelles Lernen] Anfänger ohne Wissen versuchen vorerst maschinelles Lernen
Ein-Klick-Datenvorhersage für das Feld, realisiert durch vollautomatisches maschinelles Lernen
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
[Maschinelles Lernen] Regressionsanalyse mit Scicit Learn
Rückblick auf den Wettbewerb für maschinelles Lernen, an dem ich zum ersten Mal gearbeitet habe
GTUG Girls + PyLadiesTokyo Meetup Ich ging zum ersten maschinellen Lernen
virtualenv Das ist vorerst alles!
Schreiben Sie dies vorerst in die ttl-Datei für die automatische SSH-Anmeldung mit Teraterm