Unterstützt Python3 (25.01.2016) </ font> Unterstützung für Änderungen der MALSS-Spezifikation hinzugefügt (2020.02.08) </ font>
Ich habe ein Tool namens MALSS (Machine Learning Support System) zur Unterstützung des maschinellen Lernens in Python (PyPI/[GitHub](https: /) erstellt. /github.com/canard0328/malss)). Ich habe Einführung und Basic geschrieben, und diesmal handelt es sich um eine erweiterte Version.
Verwenden Sie dieselben Daten wie beim letzten Mal. Wenn Sie die Anpassungsmethode normal aufrufen, dauert die Verarbeitung einige Zeit, da die Modellierung durchgeführt wird. Setzen Sie daher die Option algorithm_selection_only auf True, damit nur die Algorithmusauswahl durchgeführt wird.
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)
Wenn Sie sich daran gewöhnt haben, möchten Sie möglicherweise den Algorithmus ändern, den Sie in Betracht ziehen.
Mit MALSS können Sie problemlos [in scikit-learn verfügbare Algorithmen] verwenden (http://scikit-learn.org/stable/supervised_learning.html).
Holen Sie sich zunächst eine Liste der Algorithmen, die Sie derzeit in Betracht ziehen.
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
Ich werde Random Forest löschen. Geben Sie den Index des Algorithmus an, den Sie löschen möchten. Wenn nicht angegeben, wird der letzte Algorithmus gelöscht.
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
Fügen wir extrem zufällig ausgewählte Bäume hinzu. Das erste Argument von * add_algorithm * ist die Instanz des Schätzers und das dritte ist der Name des Algorithmus (optional). Das zweite ist etwas schwer zu verstehen, aber es sind die Parameter und ihr Bereich für die Rastersuche. In Form eines Wörterbuchs (Liste) ist Key der Parametername und Value der Bereich. Informationen zu den Parametern finden Sie in der scikit-learn-Dokumentation. Es muss auch nicht der Scicit-Learn-Algorithmus sein, aber es kann Ihr eigener Schätzer mit * fit * - und * Predict * -Methoden sein.
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)
Der Rest ist der gleiche wie beim letzten Mal.
python
cls.fit(X, y, 'classification_result')
cls.make_sample_code('classification_sample_code.py')
Wenn der Parameter bei der maximalen Bewertungspunktzahl der Wert am Ende des Bereichs ist und die Ergebnisse der Rastersuche des Berichts betrachtet werden müssen, muss der Bereich erweitert (verschoben) werden. MALSS verfügt derzeit jedoch nicht über eine Methode zum Ändern der Rastersuchparameter. Ändern Sie den Parameteränderungsbereich auf die gleiche Weise wie den obigen Algorithmus.
Ich habe mein Tool zur Unterstützung des maschinellen Lernens MALSS dreimal vorgestellt: Einführung, Grundlagen und Anwendung. Ich denke, es gibt noch viele Punkte, die noch erreicht werden müssen. Ich wäre Ihnen dankbar, wenn Sie uns Ihre Meinung mitteilen könnten.
Recommended Posts