Verstehen Sie den Algorithmus für zufällige Gesamtstrukturen und probieren Sie ihn mit scicit-learn aus.
Random Forest ist eine Art Ensemble-Lernen, das als Bagging bezeichnet wird und mehrere Entscheidungsbäume kombiniert.
Das No-Free-Lunch-Theorem bedeutete ursprünglich, dass bei der Kombinationsoptimierung die durchschnittliche Leistung für alle Algorithmen gleich wäre, wenn der Suchalgorithmus auf alle möglichen Probleme angewendet würde.
Dies liegt daran, dass jeder Algorithmus seine eigenen Voraussetzungen hat, die erfüllt sein müssen, und nicht alle möglichen Probleme diese Voraussetzungen erfüllen, sodass ein Problem möglicherweise gut funktioniert, ein anderes. Es zeigt, dass kein Algorithmus bei allen Problemen besser ist als die anderen, da er schlechter abschneidet als die anderen Algorithmen.
Es wird argumentiert, dass es keinen einheitlichen Lernenden gibt, der sich daraus entwickelt und die besten Ergebnisse für jedes Problem des maschinellen Lernens liefert.
Das oben erwähnte No-Free-Lunch-Theorem zeigt, dass kein universeller Lernender für ein Problem ideal ist. Daher ist es eine natürliche Idee, eine Methode zum Kombinieren mehrerer Lerngeräte zu entwickeln.
Die Lernmethode, bei der der Großteil der Ergebnisse von mehreren Lernenden übernommen und zum endgültigen Ergebnis gemacht wird, wird als Ensemble-Lernen bezeichnet. Die einzelnen Klassifikatoren, die für das Lernen von Ensembles verwendet werden, werden als schwache Klassifikatoren bezeichnet, da sie nur eine etwas bessere Leistung als zufällig erbringen müssen.
Das Absacken (Boostrap AGGregatING) ist eine typische Methode des Ensemble-Lernens. Wie in der folgenden Abbildung gezeigt, trainiert das Absacken mehrere Klassifizierer unter Verwendung des Bootstrap-Beispiels der Trainingsdaten und gibt die Kategorie für neue Daten durch Mehrheitsentscheidung in der Klassifizierung und den geschätzten Wert durch den Durchschnitt in der Regression aus.
Durch das Absacken können einzelne Klassifizierer unabhängig und parallel trainiert werden. Die Bootstrap-Abtastung ermöglicht jedoch die Duplizierung. Die Verwendung eines Entscheidungsbaums als schwacher Klassifizierer erhöht die Korrelation zwischen den Entscheidungsbäumen und sie sind alle ähnlich. Es besteht die Möglichkeit, dass es zu einem Chaos wird.
Zufällige Gesamtstruktur hat dieses Problem verbessert.
Beim zufälligen Waldlernen wird beim Lernen eines Entscheidungsbaums mit einem Bootstrap-Beispiel anstelle aller Merkmalsgrößen eine bestimmte Anzahl von Merkmalsgrößen zufällig ausgewählt und der Bestimmungsbaum verwendet. Bauen.
Beim Absacken wurde der Entscheidungsbaum aus dem Bootstrap-Beispiel erstellt. In der zufälligen Gesamtstruktur wird jedoch die im Bootstrap-Beispiel verwendete Merkmalsmenge zufällig ausgewählt und der Entscheidungsbaum wie in der folgenden Abbildung dargestellt erstellt.
Indem die in jedem Bootstrap-Beispiel verwendeten Merkmale auf diese Weise randomisiert werden, wird jeder Entscheidungsbaum unterschiedlich, und es kann erwartet werden, dass die Korrelation zwischen Entscheidungsbäumen verringert wird, was beim Absacken ein Problem war.
In scikit-learn kann das Argument n_estimators die Anzahl der schwachen Klassifizierer und das Argument max_features die Anzahl der zu verwendenden Features angeben. Standardmäßig ist die Anzahl der verwendeten Features die Anzahl der Quadratwurzeln der Features.
・ CPU Intel (R) Core (TM) i7-6700K 4,00 GHz
・ Windows 10 Pro 1909 ・ Python 3.6.6 ・ Matplotlib 3.3.1 ・ Numpy 1.19.2 ・ Scikit-Learn 0.23.2
Das implementierte Programm wird auf [GitHub] veröffentlicht (https://github.com/sho-watari/MachineLearning/blob/master/Supervised).
random_forest.py
Die Ergebnisse der Anwendung eines zufälligen Waldes auf den bisher verwendeten Brustkrebs-Datensatz sind nachstehend aufgeführt.
Accuracy 92.98%
Precision, Positive predictive value(PPV) 94.03%
Recall, Sensitivity, True positive rate(TPR) 94.03%
Specificity, True negative rate(TNR) 91.49%
Negative predictive value(NPV) 91.49%
F-Score 94.03%
Die folgende Abbildung zeigt die Diskriminanzgrenzen bei der Durchführung einer Mehrfachklassifizierung für einen Iris-Datensatz.
Für die Daten des Regressionsproblems wurde der Sinuswelle eine Zufallszahl hinzugefügt. Bei der Regression ist der Durchschnittswert der endgültige Ausgabewert.
1.11.2. Forests of randomized trees
Recommended Posts