Vergleich der acht großen Algorithmen für maschinelles Lernen

Schriftsteller:Kleine Träume, Erstellt: 2016-12-05 10:42:02, aktualisiert:

Vergleich der acht großen Algorithmen für maschinelles Lernen


In diesem Artikel werden die Anpassungsszenarien und ihre Vor- und Nachteile für die folgenden gängigen Algorithmen behandelt!

Es gibt so viele Machine-Learning-Algorithmen, in den Bereichen Classification, Regression, Clustering, Recommendation, Image Recognition und so weiter, dass es nicht einfach ist, einen geeigneten Algorithmus zu finden.

Normalerweise wählen wir zunächst allgemein anerkannte Algorithmen, wie SVM, GBDT, Adaboost, und jetzt ist Deep Learning sehr beliebt, und Neural Networks sind eine gute Wahl.

Wenn Sie sich um Präzision kümmern, ist es am besten, die einzelnen Algorithmen durch Cross-Validierung zu testen, zu vergleichen und dann die Parameter anzupassen, um sicherzustellen, dass jeder Algorithmus optimal ist, und schließlich den besten zu wählen.

Aber wenn Sie einfach nur auf der Suche nach einem Algorithmus sind, der gut genug ist, um Ihr Problem zu lösen, oder hier sind einige Tipps, die Sie sich ansehen können.

  • Abweichungen und Unterschiede

    In der Statistik wird ein gutes Modell durch Abweichungen und Differenzen gemessen, also wollen wir zuerst Abweichungen und Differenzen verbreiten:

    Abweichung: Die Abweichung zwischen dem erwarteten E und dem tatsächlichen Y des prognostizierten Wertes wird beschrieben. Je größer die Abweichung ist, desto weiter entfernt ist sie vom tatsächlichen Wert.

img

Abweichung: Beschreibt den Schwankungsbereich des Prognosewerts P, die Diskrepanz, die Abweichung des Prognosewerts, d. h. die Entfernung von seinem erwarteten Wert E. Je größer die Abweichung, desto mehr verteilt ist die Datenverteilung.

img

Der tatsächliche Fehler des Modells ist die Summe der beiden, wie in der folgenden Abbildung dargestellt:

img

Wenn es sich um kleine Trainingssätze handelt, hat ein Klassifikator mit hoher Abweichung/niedriger Abweichung (z. B. ein einfacher Bayes NB) einen größeren Vorteil als ein Klassifikator mit niedriger Abweichung/hoher Abweichung (z. B. KNN), da der letztere übermäßig passt.

Aber mit zunehmendem Trainingsaufwand wird das Modell besser in Bezug auf die ursprünglichen Daten prognostizieren und die Abweichungen sinken, wobei die niedrig-/hochdifferenzierten Klassifikatoren allmählich ihre Vorteile zeigen (weil sie einen niedrigeren Annäherungsfehler aufweisen), wobei die hochdifferenzierten Klassifikatoren zu diesem Zeitpunkt nicht mehr ausreichen, um ein genaues Modell zu liefern.

Natürlich kann man auch denken, dass dies ein Unterschied zwischen dem Erzeugungsmodell (NB) und dem Bestimmungsmodell (KNN) ist.

  • Warum ist ein einfacher Bayes-Band mit hoher und niedriger Abweichung?

    Die folgenden Inhalte sind selbstverständlich:

    Zunächst einmal: Nehmen wir an, Sie kennen die Beziehung zwischen Trainings- und Testsätzen.

    Aber oftmals können wir nur annehmen, dass die Testsätze und die Trainingsätze derselben Datenverteilung entsprechen, aber keine echten Testdaten erhalten.

    Da die Trainingsproben sehr wenige sind (oder zumindest nicht genug), sind die Modelle, die durch die Trainingssätze gewonnen werden, nicht immer wirklich korrekt. Auch wenn die Trainingssätze zu 100% korrekt sind, kann man nicht behaupten, dass sie eine echte Datenverteilung darstellen.

    In der Praxis gibt es auch häufig einen gewissen Geräuschfehler in den Trainingsproben, so dass ein zu komplexes Modell, das zu sehr nach Perfektion auf dem Trainingssatz strebt, dazu führt, dass das Modell alle Fehler im Trainingssatz als wahre Datenverteilungsmerkmale betrachtet und so eine falsche Datenverteilungsschätzung erhält.

    Das bedeutet, dass es auf den echten Testsätzen fehlerhaft ist. Man kann aber auch nicht mit einem zu einfachen Modell arbeiten, da das Modell bei komplexeren Datenverteilungen nicht ausreicht, um die Datenverteilung darzustellen.

    Eine Über-Anpassung zeigt, dass das Modell komplexer ist als die tatsächliche Datenverteilung, und eine Unter-Anpassung zeigt, dass das Modell einfacher ist als die tatsächliche Datenverteilung.

    Im Rahmen des statistischen Lerns wird bei der Erstellung von Modellkomplexität die Ansicht vertreten, dass Error = Bias + Variance. Hier kann der Fehler als die Prognosefehlerquote des Modells verstanden werden und besteht aus zwei Teilen, einem Teil, der durch die zu einfache Modellstruktur verursachte Schätzungsfehler ("Bias"), und einem anderen Teil, der durch die zu komplexe Modellstruktur verursachte größere Schwankungsräume und Unsicherheiten ("Variance").

    So ist es leicht, eine einfache Bayes-Analyse durchzuführen. Sie geht einfach davon aus, dass die Daten unabhängig sind, und ist ein stark vereinfachtes Modell. Für ein solches einfaches Modell ist also der Bias-Teil in den meisten Fällen größer als der Variance-Teil, also hohe und niedrige Abweichungen.

    In der Praxis, um den Fehler so klein wie möglich zu halten, müssen wir bei der Modellwahl das Verhältnis zwischen Bias und Variance ausgleichen, also zwischen Über- und Unter-Fitting.

    Die Beziehung zwischen Abweichungen und Differenzen und Modellkomplexität wird durch folgende Abbildung deutlich:

img

Wenn die Modellkomplexität steigt, wird die Abweichung immer kleiner, während die Abweichung immer größer wird.

  • Vor- und Nachteile von Algorithmen

    • 1.朴素贝叶斯

      Einfache Bayes-Modelle gehören zu den generativen Modellen (über die generativen Modelle und die determinativen Modelle, hauptsächlich darüber, ob sie eine gemeinsame Verteilung erfordern), die sehr einfach sind, und Sie machen nur eine Reihe von Zählungen.

      Wenn man die bedingte Unabhängigkeitsannahme annimmt (eine strengere Bedingung), ist die Konvergenzgeschwindigkeit eines einfachen Bayes-Klassifikators schneller als bei einem Modell, das sich als logische Regression bezeichnet, so dass man nur weniger Trainingsdaten benötigt. Selbst wenn die bedingungsunabhängige Annahme nicht zutrifft, ist der NB-Klassifikator in der Praxis immer noch hervorragend.

      Sein Hauptnachteil ist, dass er nicht die Interaktion zwischen den Features lernen kann, was in mRMR als Feature Redundancy bezeichnet wird. Um ein klassisches Beispiel zu zitieren: Zum Beispiel, obwohl du die Filme von Brad Pitt und Tom Cruise magst, kann es nicht lernen, welche Filme du nicht magst, in denen sie zusammen sind.

      Vorteile:

      Das einfache Bayes-Modell stammt aus der klassischen mathematischen Theorie und verfügt über eine solide mathematische Grundlage sowie eine stabile Klassifizierungseffizienz. Sie sind gut für kleine Datenmengen und können Multiklassenaufgaben einzeln erledigen und eignen sich für eine Inkrementelle Ausbildung. Die Algorithmen sind weniger empfindlich gegenüber fehlenden Daten und sind relativ einfach und werden häufig für die Textsortierung verwendet. Die Schwächen:

      Es ist notwendig, die vorherige Wahrscheinlichkeit zu berechnen. Es gibt Fehler bei der Klassifizierung von Entscheidungen. Sie sind sehr empfindlich gegenüber der Ausdrucksform der eingegebenen Daten.

    • 2.逻辑回归

      Es gibt viele Methoden, um das Modell zu normalisieren (L0, L1, L2, etc.), und Sie müssen sich nicht sorgen, ob Ihre Eigenschaften verwandt sind, wie bei einfachen Bayes-Modellen.

      Sie erhalten auch eine gute Wahrscheinlichkeitserklärung im Vergleich zu Entscheidungsträumen und SVMs, und Sie können sogar die Modelle mit neuen Daten einfach aktualisieren (mit Online-Gradient-Descendenz-Algorithmen).

      Wenn Sie eine Wahrscheinlichkeitsstruktur benötigen (z. B. einfach die Klassifizierungsschwelle anpassen, Unsicherheiten angeben oder Vertrauensabstände erhalten), oder Sie später mehr Trainingsdaten schnell in das Modell integrieren möchten, dann verwenden Sie sie.

      Die Sigmoid-Funktion

      img

      Vorteile: Ein einfaches und breit angelegtes Modell für industrielle Probleme. Das System ist sehr klein, schnell und mit geringen Speicherressourcen. Ein einfaches Beobachtungsproben-Wahrscheinlichkeits-Score; Für die logische Regression ist die Mehrfach-Collinearität kein Problem, die mit L2-Regulierung gelöst werden kann. Die Schwächen: Wenn der Feature-Raum groß ist, ist die Leistung der Logic Regression nicht gut. Leicht zu missbilden und mit geringerem Grad an Genauigkeit Sie können nicht gut mit einer Vielzahl von Merkmalen oder Variablen umgehen. Es kann nur zwei Klassifizierungsprobleme (auf dieser Grundlage abgeleitetes Softmax kann für mehrere Klassen verwendet werden) bearbeiten und muss linear trennbar sein; Für nicht-lineare Merkmale ist eine Umwandlung erforderlich.

    • 3.线性回归

      Lineare Regression ist für die Regression verwendet, im Gegensatz zu Logistic Regression, die für die Klassifizierung verwendet wird. Die Grundidee ist die Optimierung von Fehlerfunktionen in der Form von minimalem Zweifaches mit einer gradientverfallenden Methode. Natürlich kann man auch die Parameter direkt mit der Normalgleichung lösen, was dazu führt:

      img

      In der LWLR (Local weighted linear regression) ist die Berechnungsformel für die Parameter:

      img

      Daher ist LWLR anders als LR, denn LWLR ist ein nicht-parametrisches Modell, da jedes Mal, wenn eine Regressionsberechnung durchgeführt wird, die Trainingsprobe mindestens einmal durchlaufen wird.

      Vorteile: Einfache Implementierung, einfache Berechnung;

      Nachteile: Nicht passend für nicht-lineare Daten.

    • 4.最近邻算法——KNN

      KNN ist ein Algorithmus für den nächsten Nachbarn, dessen Hauptprozesse sind:

      1. Berechnung der Entfernung von jedem Probenpunkt in der Trainingsprobe und der Testprobe (allgemeine Entfernungsmessungen haben die europäische Entfernung, die Martian-Distanz usw.);

      2. Sie werden von der Seite der Benutzer angezeigt.

      3. Die Probe mit der kleinsten Entfernung k vor der Auswahl;

      4. Nach der Abstimmung der Etiketten dieser k-Proben wird die letzte Kategorie ermittelt.

      Wie man einen optimalen K-Wert auswählt, hängt von den Daten ab. Im Allgemeinen kann ein höherer K-Wert bei der Klassifizierung die Auswirkungen von Lärm reduzieren.

      Ein besserer K-Wert kann durch verschiedene Inspirationstechniken ermittelt werden, z. B. durch Cross-Verification. Zusätzliche Geräusche und die Anwesenheit von unvereinbaren Merkmalvektoren verringern die Genauigkeit der nahegelegenen K-Algorithmen.

      Die nahegelegene Algorithmen haben ein starkes Konsistenzresultat. Als die Daten unendlich werden, garantiert die Algorithmen, dass die Fehlerrate nicht mehr als doppelt so hoch ist wie bei Bayes-Algorithmen. Für einige gute Werte von K garantiert die nahegelegene Algorithmen, dass die Fehlerrate nicht mehr als die theoretische Bayes-Fehlerrate beträgt.

      Vorteile des KNN-Algorithmus

      Die Theorie ist ausgereift, der Gedanke ist einfach und kann sowohl zur Klassifizierung als auch zur Regression verwendet werden. Sie können für nicht-lineare Klassifizierungen verwendet werden. Die Trainingszeit ist mit O (n) kompliziert. Es gibt keine Annahmen zu den Daten, die hohe Genauigkeit und nicht empfindlich gegenüber den Outliers; Die Schwächen

      Das ist ein großer Rechenvolumen. Probenungleichgewichtsprobleme (d.h. einige Kategorien haben eine hohe Anzahl von Proben und andere nur eine geringe); Es ist eine große Menge an Speicher.

    • 5.决策树

      Einfach zu erklären. Es kann Stressfreie Beziehungen zwischen Eigenschaften behandeln und ist nicht parametrisch, so dass Sie sich keine Sorgen machen müssen, ob die Anomalien oder die Daten linear trennbar sind. Zum Beispiel kann ein Entscheidungsbaum einfach Kategorien A am Ende einer Eigenschaftsdimension x behandeln, Kategorien B in der Mitte und dann wieder auf der Vorderseite der Eigenschaftsdimension x erscheinen).

      Einer der Nachteile ist, dass es keine Unterstützung für Online-Lern bietet, so dass der Entscheidungsbaum komplett neu aufgebaut werden muss, wenn die neuen Proben erscheinen.

      Ein weiterer Nachteil ist, dass es leicht zu Fassungen kommt, aber dies ist auch der Einstiegspunkt für Integrationsmethoden wie Random Forest RF (oder Tree Boosted Tree).

      Zudem ist der Zufallswald oft ein Gewinner bei vielen Klassifizierungsproblemen (in der Regel ein Stück besser als ein unterstützender Vector), er trainiert schnell und kann angepasst werden, und man muss sich nicht darum kümmern, eine Menge Parameter wie bei einem unterstützenden Vector anzupassen, was in der Vergangenheit sehr beliebt war.

      Ein wichtiger Punkt im Entscheidungsbaum ist die Auswahl eines Verzweigungsattributes, daher sollten Sie die Rechenformeln für die Informationsherstellung beachten und sie verstehen.

      Die Berechnungsformel für die Informations-Panel lautet:

      img

      Dabei gibt es n Repräsentanten von n Klassifikationskategorien (z. B. n = 2), wobei die Wahrscheinlichkeit p1 und p2 für diese beiden Proben in der Gesamtprobe berechnet wird, um die Informationsklammern vor den nicht ausgewählten Eigenschaftsverzweigungen zu berechnen.

      Jetzt wird eine Eigenschaft xixi ausgewählt, die zum Verzweigen verwendet wird, wobei die Verzweigungsregel lautet: Wenn xi = vxi = v, wird die Probe auf einen Zweig des Baumes verteilt; wenn nicht gleich, geht es zu einem anderen Zweig.

      Es ist offensichtlich, dass die Stichprobe in der Verzweigung wahrscheinlich zwei Kategorien umfasst, wobei die Verzweigung H1 und H2 der beiden Verzweigungen berechnet wird. Wenn die gesamte Nachverzweigungs-Informationsverzweigung H1 = p1 H1 + p2 H2 berechnet wird, dann ist die Informationsgewinnung ΔH = H - H.

      Die Vorteile des Entscheidungsbaums selbst

      Die Berechnung ist einfach, leicht verständlich und gut erklärbar. Vergleichen von Proben mit fehlenden Eigenschaften, die für die Behandlung geeignet sind Sie können unrelevante Merkmale verarbeiten. Es ist möglich, in relativ kurzer Zeit praktikable und effiziente Ergebnisse für große Datenquellen zu erzielen. Die Schwächen

      Einfallswälder können erheblich reduziert werden. Sie vernachlässigen die Zusammenhänge zwischen den Daten. Für Daten mit unterschiedlichen Stichprobenzahlen in den verschiedenen Kategorien ist das Ergebnis des Informationsgewinns in einem Entscheidungsbaum eher für die Merkmale mit mehr Zahlenwerten (wenn der Informationsgewinn verwendet wird, gibt es diesen Nachteil, z. B. RF) bestimmt.

    • 5.1 Anpassung

      Adaboost ist ein Additionsmodell, bei dem jedes Modell auf der Grundlage der Fehlerquote des vorherigen Modells aufgebaut wird, wobei übermäßig viel Aufmerksamkeit auf fehlerhafte Proben und weniger auf die richtig klassifizierten Proben gelegt wird, um nach einer Reihe von Iterationen ein relativ besseres Modell zu erhalten.

      Vorteile

      Adaboost ist ein hochgenauer Classifier. Es gibt verschiedene Methoden, um ein Unterkatalog zu erstellen. Adaboost-Algorithmen bieten ein Framework. Die Ergebnisse der Berechnung sind verständlich, wenn ein einfacher Classifier verwendet wird, und die Konstruktion eines schwachen Classifiers ist extrem einfach. Einfach, keine Feature-Filterung. Es ist nicht leicht, dass es zu viel Fittungen gibt. Für Kombinationsalgorithmen wie Random Forest und GBDT siehe: Maschinelles Lernen - Zusammenfassung von Kombinationsalgorithmen

      Nachteile: Sensibilität für Outliers

    • 6.SVM支持向量机

      Die hohe Genauigkeit bietet eine gute theoretische Garantie für die Vermeidung von Überpassungen, und auch wenn die Daten im ursprünglichen Feature-Space linear nicht trennbar sind, funktioniert sie gut, solange sie der richtigen Kernfunktion zugewiesen werden.

      Besonders beliebt ist es bei schwierigen, hochdimensionalen Text-Klassifizierungsproblemen. Leider ist die Speicherleistung sehr stark und schwierig zu erklären.

      Vorteile Es gibt viele Möglichkeiten, wie man ein großes Problem lösen kann, nämlich einen großen Feature-Raum. Die Interaktion mit nichtlinearen Merkmalen kann behandelt werden. Sie müssen sich nicht auf die gesamten Daten verlassen. Sie können die Fähigkeit zur Verallgemeinerung verbessern.

      Die Schwächen Wenn viele Proben beobachtet werden, ist die Effizienz nicht sehr hoch. Es gibt keine universelle Lösung für nonlineare Probleme, und es ist manchmal schwierig, eine passende Kernfunktion zu finden. Sie sind empfindlich gegenüber fehlenden Daten. Die Kernwahl ist auch geschickt (libsvm hat vier Kernfunktionen: lineare Kern, polymetrische Kern, RBF und sigmoide Kern):

      Erstens, wenn die Anzahl der Proben kleiner als die Anzahl der Merkmale ist, ist es nicht notwendig, einen nichtlinearen Kern zu wählen.

      Zweitens, wenn die Anzahl der Proben größer ist als die Anzahl der Merkmale, kann man dann die Probe mit einem nichtlinearen Kern in höhere Dimensionen abbilden, was im Allgemeinen bessere Ergebnisse bringt.

      Drittens, wenn die Anzahl der Proben und die Anzahl der Merkmale gleich sind, kann ein nichtlinearer Kern verwendet werden, der Prinzip ist derselbe wie bei der zweiten Art.

      Für den ersten Fall ist es auch möglich, die Daten zuerst zu reduzieren und dann einen nichtlinearen Kern zu verwenden, was ebenfalls eine Methode ist.

    • 7. Die Vor- und Nachteile von künstlichen Neuronen

      Die Vorteile eines künstlichen Neuronalnetzes: Die Klassifizierung ist sehr genau. Sie sind stark in der Parallelverarbeitung, in der verteilten Speicherung und im Lernen. Sie haben eine starke Robustheit und Fehlervermögen gegenüber Geräuschnerven, um komplexe, nichtlineare Beziehungen vollständig nahe zu kommen. Sie ist eine Art Schriftstellerin, die sich mit dem Thema "Synthese" beschäftigt.

      Die Schwächen des Künstlichen Neuronalen Netzwerks: Neuronale Netzwerke benötigen eine Vielzahl von Parametern, wie z.B. die Netzwerk-Topographie-Struktur, die Anfangswerte für die Gewichte und die Thresholdwerte. Unbeobachtbare Lernprozesse, unerklärliche Ergebnisse, was die Glaubwürdigkeit und Akzeptanz der Ergebnisse beeinträchtigt. Die Zeit für das Lernen ist zu lang und kann sogar das Ziel des Lernens nicht erreichen.

    • 8. K-Means-Cluster

      Ein früherer Artikel über die K-Means-Klassifizierung, Link: Maschinelle Lernalgorithmen - K-Means-Klassifizierung.

      Vorteile Die Algorithmen sind einfach und einfach umzusetzen. Für die Verarbeitung von großen Datensätzen ist der Algorithmus relativ skalierbar und effizient, da er eine Komplexität von etwa O (nkt) aufweist, wobei n die Anzahl aller Objekte, k die Anzahl der Antennen und t die Anzahl der Iterationen ist. Die Algorithmen versuchen, die K-Teilungen zu finden, bei denen die Quadratfehlerwerte am kleinsten sind. Die Clustering-Effekte sind besser, wenn die Säulen dicht, kugelförmig oder bundförmig sind und die Unterscheidung zwischen Säulen und Säulen deutlich ist.

      Die Schwächen hohe Anforderungen an die Datentypen und geeignete Zahlen; Möglicherweise konvergieren sie zu lokalen Minimalwerten, aber langsamer in großen Datenmengen Die K-Werte sind schwieriger zu wählen. Sie sind empfindlich gegenüber den Zentralwerten der Anfangswerte und können verschiedene Clusteringergebnisse für verschiedene Anfangswerte ergeben. Nicht geeignet für die Entdeckung von unkonformen Fliesen oder Fliesen mit großen Größenunterschieden. Die Daten sind empfindlich für die Geräuschdichte und Isolationspunkte, wobei eine geringe Anzahl solcher Daten einen großen Einfluss auf die Durchschnittswerte hat.

      Algorithmen wählen Referenzen aus

      In einem Artikel, in dem ich bereits einige Artikel aus dem Ausland übersetzt habe, gab ich einen einfachen Algorithmus-Auswahl-Tipp:

      Die erste Option ist die logische Regression, und wenn sie nicht funktioniert, kann man ihre Ergebnisse als Benchmark verwenden, um sie mit anderen Algorithmen zu vergleichen.

      Versuchen Sie dann mit einem Entscheidungsbaum (Random Forest) und sehen Sie, ob Sie die Leistung Ihres Modells erheblich verbessern können.

      Wenn die Anzahl der Merkmale und die beobachteten Proben besonders groß ist, ist die Verwendung von SVMs eine Option, wenn die Ressourcen und die Zeit ausreichend sind (dies ist wichtig).

      Normalerweise: GBDT>=SVM>=RF>=Adaboost>=Other... , Deep Learning ist sehr beliebt, es wird in vielen Bereichen verwendet, es basiert auf Neuronalen Netzwerken, und ich lerne es gerade selbst, aber die theoretischen Kenntnisse sind nicht sehr dick, das Verständnis ist nicht tief genug, also werde ich hier nicht vorstellen.

      Algorithmen sind wichtig, aber gute Daten sind besser als gute Algorithmen, und es ist sehr hilfreich, gute Features zu entwerfen. Wenn Sie ein sehr großes Datensatz haben, kann es keinen großen Einfluss auf die Klassifizierungsleistung haben, egal welches Algorithmus Sie verwenden.

  • Referenzen


Mehr