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.
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)
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.
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
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
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 *.
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)
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')
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.
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