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 venv
C:\RegressionAutomaticSearch>py -m venv venv
Appliquer venv
C:\RegressionAutomaticSearch>.\venv\Scripts\activate.bat
(venv) C:\RegressionAutomaticSearch>
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
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
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
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
Exécutez main.py.
(venv) C:\RegressionAutomaticSearch>python main.py
L'image de résultat, l'erreur et le csv du coefficient de décision sont sortis dans le dossier de résultats.
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