Tool MALSS (Anwendung), das maschinelles Lernen in Python unterstützt

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.

Vorbereitung

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)

Algorithmusänderung

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

Liste der Algorithmen abrufen

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

Algorithmus löschen

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

Hinzufügung eines Algorithmus

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.

  • Vergessen Sie nicht, den Algorithmus zu importieren

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)

Analyse Ausführung

Der Rest ist der gleiche wie beim letzten Mal.

python


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

Ändern Sie die Rastersuchparameter

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.

abschließend

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