Wenn ich maschinelles Lernen entdecke, sehe ich verschiedene interessante Techniken wie:
- automatisch tune Algorithmen mit Techniken wie
grid search
, - Erhalten Sie genauere Ergebnisse durch die Kombination verschiedener Algorithmen desselben "Typs"
boosting
. - Erhalten Sie genauere Ergebnisse durch die Kombination verschiedener Algorithmen (aber nicht derselben Art von Algorithmen)
stacking
. - und wahrscheinlich noch viel mehr muss ich entdecken ...
Meine Frage lautet wie folgt: Es gibt all diese Teile. Aber ist es möglich, sie zu einem Algorithmus zusammenzufassen, der als Eingabe gereinigte Daten verwendet und gute Ergebnisse liefert, indem das Beste aus allen Techniken herausgeholt wird? (Natürlich ist es wahrscheinlich weniger effizient als ein professioneller Datenwissenschaftler, aber er ist besser als ich!) Wenn ja, haben Sie Beispielcodes oder kennen Frameworks, die das können?
BEARBEITEN: Nach einigen Antworten scheint es, dass eine Verengung vorgenommen werden muss. Nehmen wir ein Beispiel, wir haben eine Spalte mit kategorialen Daten, nennen y
wir sie und möchten sie anhand numerischer Daten vorhersagen X
, die entweder Dummies oder reale numerische Daten (Höhe, Temperatur) sind. Wir gehen davon aus, dass die Reinigung zuvor durchgeführt wurde. Gibt es einen Algorithmus, der solche Daten aufnehmen und eine Vorhersage ausgeben kann? (durch Testen mehrerer Algorithmen, Optimieren, Boosten usw.) Wenn ja, ist es recheneffizient (werden die Berechnungen in einer angemessenen Zeit ausgeführt, wenn wir sie mit normalen Algorithmen vergleichen), und haben Sie ein Codebeispiel?
quelle
auto.arima
(aus derforecast
Bibliothek) können besser sein als Menschen - das hat Rob Hyndman mehrfach in seinen Präsentationen erwähnt. Es gibt also Bereiche, in denen einige Arten von "automatischem Lernen" mit Erfolg angewendet werden.Antworten:
Wenn Sie im Voraus wissen, welche Art von Daten Sie einspeisen werden ("Dies sind monatliche Verkäufe von CPGs mit Preisen und Promotion-Markern, und ich möchte eine Punktprognose"), können Sie Ihr Setup wahrscheinlich im Voraus optimieren möglich und bereits erledigt, siehe verschiedene "Expertensysteme" für bestimmte Aufgabenstellungen.
Wenn Sie nach etwas suchen, das irgendeine Art von Daten aufnehmen und "etwas Nützliches" damit machen kann ("ah, hier soll ich Handschrift erkennen und Postleitzahlen ausgeben, und dort sollte ich Betrugserkennung betreiben und diese Eingabedatei natürlich ist eine Kreditbewertungsaufgabe "), nein, ich glaube nicht, dass das in einer langen Zeit passieren wird.
Entschuldigung für eine meinungsbasierte Antwort auf eine Frage, die möglicherweise als meinungsbasiert eingestuft wird.
BEARBEITEN, um die bearbeitete Frage zu beantworten:
quelle
Was Sie beschreiben, gibt es zum Teil schon, zum Beispiel in AutoWEKA , und es wird aktiv nachgeforscht (z. B. Herausforderungen wie Chalearns AutoML ).
Dies wird normalerweise im Unterfeld der Hyperparameteroptimierung berücksichtigt. Mit Softwarepaketen wie Optunity , Hyperopt und ParamILS können Hyperparameter für einen bestimmten Ansatz automatisch optimiert werden und auszuwählen, welcher Ansatz der beste ist. Das heißt, solche Optimierungsprobleme sind nicht trivial und normalerweise dauert es lange, automatisch das beste Modell (oder in der Nähe davon) zu erhalten.
Ein Beispiel für die Verwendung von Optunity zur automatischen Ermittlung des besten Lernalgorithmus und zur Optimierung seiner Hyperparameter finden Sie unter http://optunity.readthedocs.org/de/latest/notebooks/notebooks/sklearn-automated-classification.html
quelle
Die Fortschritte bei der Optimierung von Hyperparametern und bei Ensemble-Modellen machen den Modellbau zum „Kunstwerk“. Es gibt jedoch zwei wichtige Aspekte der Modellbildung, mit denen sich die Optimierung von Hyperparametern und Ensembles nicht befassen und die Sie davon abhalten, das bestmögliche Modell zu finden.
Erstens können bestimmte Arten von Algorithmen bestimmte Arten von Daten besser modellieren. Wenn es zum Beispiel Wechselwirkungen zwischen Ihren Variablen gibt, werden sie von einem additiven Modell nicht gefunden, sondern von einem Entscheidungsbaum. Um zu wissen, wie sich Modelle auf verschiedenen Datasets verhalten, und um das richtige auszuwählen, ist möglicherweise Wissen über die Domäne erforderlich, um den besten Modellierungsalgorithmus zu finden.
Zweitens ist das Feature-Engineering und die Feature-Extraktion die wahre Kunst des Modellbaus. Bei Ihrer Frage wird davon ausgegangen, dass der Datensatz bereits vorbereitet ist. Sie sollten jedoch nicht davon ausgehen, dass das Dataset die bestmögliche Darstellung dessen ist, was Sie modellieren möchten. Dies ist immer und offene Frage. In vielen Fällen, in denen der Datensatz komplex ist, können Sie den ganzen Tag über Features entwickeln, aber Sie riskieren, immer mehr Rauschen in den Algorithmus zu werfen. Um zu wissen, welche Features hinzugefügt werden müssen, müssen Sie wissen, welche Features aus statistischer Sicht sinnvoll und welche aus Sicht des Domain-Experten sinnvoll sind.
Aus diesen beiden Gründen komme ich zu dem Schluss, dass Sie keinen Algorithmus finden können, der automatisch das bestmögliche Modell findet. Aus diesem Grund bin ich auch skeptisch gegenüber Softwareanbietern, die Tools entwickeln, die den Bedarf an Datenwissenschaftlern ersetzen.
Wenn Sie jedoch Ihren Ehrgeiz einschränken, das beste Modell aus einer festgelegten Reihe von Modellen mit optimalen Hyperparametern zu finden, wobei "best" als die höchste Vorhersagegenauigkeit für ein Trainingsset definiert ist, ist dies möglich.
Schauen Sie sich das
caret
Paket an, um zu sehen,R
wie Modelle automatisch optimiert werden.caret
Verwendet die Gittersuche, die Fehler aufweist, und erstellt jeweils nur ein Modell. Es gibt jedoch Funktionen zum Vergleichen von Modellen und praktischen Wrappern für eine lange Liste von Modellen aus vielen verschiedenenR
Paketen.quelle
Kommt darauf an, wen du fragst.
Ich habe kürzlich einen Vortrag von Scott Golder bei Context Relevant gehört . Ihr Produkt ist im Wesentlichen ein Funktions- und Modellauswahlroboter. Das grundlegende zugrunde liegende Modell ist die logistische Regression. Das System verwendet jedoch im Wesentlichen maschinelles Lernen, um die richtige Kombination aus Merkmalsauswahl, Dimensionsreduzierung, Regularisierung usw. für die Erstellung genauer Vorhersagen zu ermitteln. Es war ein sehr beeindruckendes Gespräch, und die Details sind alle sehr geheim. Zu ihren Kunden zählen anscheinend große Finanzunternehmen, und das System kann mit beliebig großen Datenmengen umgehen.
Wenigstens ein paar Leute scheinen zu glauben, dass die automatisierte Datenwissenschaft zumindest für bestimmte Anwendungen bereits vorhanden ist. Und einige dieser Leute (Kunden von Context Relevant) zahlen anscheinend durch die Nase, um Zugang dazu zu erhalten.
quelle
Nein, es ist kein Traum. Wir haben dies (die Kombination aller von Ihnen erwähnten Techniken, einschließlich gestapelter Ensembles) in der H2O- Bibliothek für maschinelles Lernen implementiert . Sie können mehr darüber lesen und hier Codebeispiele in R und Python finden .
quelle