Outil MALSS (application) qui prend en charge l'apprentissage automatique en Python

Prend en charge Python3 (2016.01.25) </ font> Ajout de la prise en charge des modifications de spécification MALSS (08/02/2020) </ font>

J'ai créé un outil appelé MALSS (Machine Learning Support System) pour prendre en charge l'apprentissage automatique en Python (PyPI/[GitHub](https: /) /github.com/canard0328/malss)). J'ai écrit Introduction et Basic, et cette fois c'est une version avancée.

Préparation

Utilisez les mêmes données que la dernière fois. Si vous appelez la méthode d'ajustement normalement, le traitement prendra du temps car la modélisation est effectuée. Par conséquent, définissez l'option algorithm_selection_only sur True afin que seule la sélection d'algorithme soit effectuée.

python


from malss import MALSS
import pandas as pd
data = pd.read_csv('http://www-bcf.usc.edu/~gareth/ISL/Heart.csv',
                   index_col=0, na_values=[''])
y = data['AHD']
del data['AHD']
cls = MALSS('classification', random_state=0,
            lang='jp')
cls.fit(data, y, algorithm_selection_only=True)

Changement d'algorithme

Au fur et à mesure que vous vous y habituerez, vous voudrez peut-être changer l'algorithme que vous envisagez.

Avec MALSS, vous pouvez facilement utiliser Algorithmes disponibles dans scikit-learn.

Obtenir la liste des algorithmes

Tout d'abord, obtenez une liste d'algorithmes que vous envisagez actuellement.

python


for name, param in cls.get_algorithms():
    print(name)

python


Support Vector Machine (RBF Kernel)
Random Forest
Support Vector Machine (Linear Kernel)
Logistic Regression
Decision Tree
k-Nearest Neighbors

Supprimer l'algorithme

Je vais supprimer Random Forest. Spécifiez l'index de l'algorithme que vous souhaitez supprimer. S'il n'est pas spécifié, le dernier algorithme sera supprimé.

python


cls.remove_algorithm(1)
for name, param in cls.get_algorithms():
    print(name)

python


Support Vector Machine (RBF Kernel)
Support Vector Machine (Linear Kernel)
Logistic Regression
Decision Tree
k-Nearest Neighbors

Ajout d'algorithme

Ajoutons des arbres extrêmement aléatoires. Le premier argument de * add_algorithm * est l'instance de l'estimateur, et le troisième est le nom de l'algorithme (facultatif). Le second est un peu difficile à comprendre, mais ce sont les paramètres de recherche de grille et leur portée. Sous la forme d'un dictionnaire (liste), Key est le nom du paramètre et Value est la plage. Pour les paramètres, reportez-vous à la documentation scikit-learn. De plus, il n'est pas nécessaire que ce soit l'algorithme scicit-learn, mais il peut s'agir de votre propre estimateur avec les méthodes * fit * et * predict *.

  • N'oubliez pas d'importer l'algorithme

python


from sklearn.ensemble import ExtraTreesClassifier
cls.add_algorithm(ExtraTreesClassifier(n_jobs=3, random_state=0),
                  [{'n_estimators': [10, 30, 50],
                    'max_depth': [3, 5, None],
                    'max_features': [0.3, 0.6, 'auto']}],
                  'Extremely Randomized Trees')
for name, param in cls.get_algorithms():
    print(name)

Exécution de l'analyse

Le reste est le même que la dernière fois.

python


cls.fit(X, y, 'classification_result')
cls.make_sample_code('classification_sample_code.py')

Modifier les paramètres de recherche de grille

En regardant les résultats de la recherche de grille du rapport, si le paramètre au score d'évaluation maximum est la valeur à la fin de la plage, il est nécessaire d'élargir (faire glisser) la plage. Cependant, MALSS n'a actuellement pas de méthode pour modifier les paramètres de recherche de grille. Modifiez la plage de changement de paramètre de la même manière que l'algorithme ci-dessus.

en conclusion

J'ai présenté mon outil d'aide à l'apprentissage automatique MALSS trois fois: introduction, principes de base et application. Je pense qu'il reste encore de nombreux points à atteindre, je vous serais donc reconnaissant de bien vouloir nous donner votre avis.

Recommended Posts