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