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 Sie venv
C:\RegressionAutomaticSearch>py -m venv venv
Venv auftragen
C:\RegressionAutomaticSearch>.\venv\Scripts\activate.bat
(venv) C:\RegressionAutomaticSearch>
Paketaktualisierung
(venv)C:\RegressionAutomaticSearch>python -m pip install --upgrade pip
Masseninstallation der erforderlichen Pakete
(venv) C:\RegressionAutomaticSearch>pip install -r requirements.txt
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
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
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
Führen Sie main.py aus.
(venv) C:\RegressionAutomaticSearch>python main.py
Das Ergebnisbild, der Fehler und die CSV des Entscheidungskoeffizienten werden in den Ergebnisordner ausgegeben.
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