Gibt es einen Konsens über die Wahl eines geeigneten ML-Ansatzes?

8

Ich studiere zurzeit Datenwissenschaft und wir lernen eine schwindelerregende Vielfalt grundlegender Regressions- / Klassifizierungstechniken (linear, logistisch, Bäume, Splines, ANN, SVM, MARS usw.) sowie eine Vielzahl von zusätzliche Werkzeuge (Bootstrapping, Boosten, Absacken, Ensemble, Ridge / Lasso, CV usw. usw.). Manchmal erhalten die Techniken einen Kontext (z. B. geeignet für kleine / große Datensätze, geeignet für eine kleine / große Anzahl von Prädiktoren usw.), aber zum größten Teil scheint es für jedes Regressions- oder Klassifizierungsproblem eine schwindelerregende Reihe von Optionen zu geben wählen von.

Wenn ich jetzt einen Job in der Datenwissenschaft angefangen hätte und ein Modellierungsproblem bekommen hätte, könnte ich es wahrscheinlich nicht besser machen, als alle mir bekannten Techniken mit Grundkonfigurationen auszuprobieren, sie mithilfe einer Kreuzvalidierung zu bewerten und die besten auszuwählen. Aber es muss noch mehr geben.

Ich stelle mir vor, ein erfahrener Datenwissenschaftler kennt den Katalog der Techniken gut und folgt einem mentalen Flussdiagramm, um zu entscheiden, welche Techniken er ausprobieren möchte, anstatt sie alle sinnlos auszuprobieren. Ich stelle mir vor, dass dieses Flussdiagramm eine Funktion von a) einer Anzahl von Prädiktoren ist; b) Variablentypen; c) Domänenwissen über mögliche Beziehungen (linear / nichtlinear); d) Größe des Datensatzes; e) Einschränkungen bezüglich der Rechenzeit und so weiter.

Gibt es ein solches vereinbartes konventionelles Flussdiagramm, um die Techniken auszuwählen? Oder läuft es wirklich darauf hinaus, "viele Dinge auszuprobieren und zu sehen, was mit der gewünschten Maßnahme am besten funktioniert, z. B. Kreuzvalidierung"?

Brendan Hill
quelle

Antworten:

4

Mein datenwissenschaftliches Studium begann als Master in Angewandter Statistik. Einer der Kurse befasste sich mit maschinellem Lernen und hatte einen ähnlichen Ansatz wie das, was Sie beschreiben. So kann ich mich ein wenig in Ihre aktuelle Sichtweise einfühlen. Aber genau wie andere Dinge, die Sie vielleicht im Leben gelernt haben, ist die Art und Weise, wie Sie Dinge in einem akademischen Umfeld tun und wie Sie Dinge in einem Geschäftsumfeld tun (dh für einen Kunden), völlig anders. Folgendes habe ich seit meinem ersten Studium gelernt:

1 - Lerne Python

Sicher, es gibt noch andere Tools, die in Ordnung sind (ich habe früher R-Code mit den besten geschrieben), aber in Python liegt die Zukunft. Außerdem skalieren nur sehr wenige Tools so gut wie Python, und das ist wichtig, wenn Sie an wirklich coolen Dingen arbeiten möchten.

2 - Auf die Umsetzung kommt es an

Erraten Sie, was? All diese Dinge, die Sie gerade lernen (Verwirrungsmatrizen, Faktorreduzierung usw.), bedeuten Ihren Kunden nichts. Sie werden Sie nur ansehen und sagen: "Was ist das Produkt? Wann werden Sie etwas auf meinem Telefon bereitstellen? Wo kann ich auf meine Webanwendung klicken?". Ein großer Teil Ihrer Aufgabe wird es sein, all Ihre Arbeit in ein Produkt zu verwandeln, und Sie werden einen Quasi-Software-Entwickler-Hut tragen. Dies ist auch ein weiterer guter Grund, Python zu lernen.

3 - Datenpipelines brauchen Zeit

Ein Großteil Ihrer Arbeit wird sich mit Datenmanipulation befassen und nur sicherstellen, dass die von Ihnen benötigten Datenpipelines vorhanden sind. Sicher, Sie haben eine Datenbank - aber wie werden Sie sie aktualisieren? Welche Vorverarbeitung benötigen Sie? Wo werden Ihre Ergebnisse gespeichert? Sie werden viel Zeit damit verbringen , dieses Zeug herauszufinden. Sie werden Ihre Schulzeit verpassen, als Ihnen Datensätze auf schöne und saubere Weise gegeben wurden :)

4 - Neuronale Netze treten in den Arsch

Sobald Sie einen Bissen von diesem Apfel nehmen, ist es schwer, zurück zu gehen :). Lerne Keras und genieße die Fahrt. Nach einer Weile müssen Sie sich daran erinnern, welche Entscheidungen Bäume sind :)

5 - Die Modellsuche ist jetzt viel einfacher

Um 100% klar zu sein, ist der Ansatz der "Modellsuche", den Sie jetzt durchführen, SEHR wertvolle Erfahrung. Sie sollten auf jeden Fall hart in diesen Klassen arbeiten. Wenn Sie jedoch Zeit haben, schauen Sie sich entweder (1) Data Robot oder (2) Watson Analytics an. Beide Pakete machen im Wesentlichen dasselbe. Sie nehmen Ihren Datensatz und finden das beste Modell dafür. Alle oben beschriebenen Aufgaben sind in Sekundenschnelle für Sie erledigt. Es ist beinahe beängstigend, wie schnell sie sind, und sie helfen Ihnen sehr effektiv dabei, Ihre Arbeit zu reduzieren. Beachten Sie jedoch, dass diese Pakete nur überwachte Daten unterstützen. Sie müssen es immer noch auf die altmodische Weise für unbeaufsichtigte Daten tun (oder einige beschriften und ein neuronales Netzwerk verwenden).

6 - Ich verwende immer noch die Theorie hinter anderen Modellen

Auch wenn ich häufig neuronale Netze benutze, sind die anderen Modelle immer noch nützlich. Sie werden weiterhin lineare Regressions- oder Entscheidungsbäume für grundlegende Probleme verwenden. Es ist auch hilfreich, wenn ich mich entscheide, einige Forschungsarbeiten zu archivx oder was auch immer zu lesen. Also werde ich sie immer noch für mein eigenes Studium und Verständnis verwenden, aber das war es auch schon.

Habe Spaß!

I_Play_With_Data
quelle
1
Vielen Dank! Data Robot sieht ziemlich gut aus, aber die Preise sind online nicht verfügbar. Ist es wahnsinnig teuer? Gibt es Open Source-Alternativen für die automatisierte Datenwissenschaft?
Brendan Hill
@BrendanHill Nein, es gibt keine Open-Source-Alternativen, die ich kenne. Der Markt ist dafür einfach nicht "ausgereift" genug. Aber auch hier warne ich Sie davor, diese Werkzeuge nicht als Krücke zu verwenden. Sie müssen die Theorie noch kennen. In vielen Fällen verwenden Sie Data Robot nur, um das Feld einzugrenzen. Sie müssen jedoch noch wissen, wie Sie das Modell außerhalb dieses Tools erstellen. Viel Glück für Sie!
I_Play_With_Data
4

Sagen wir so. Obwohl es zahlreiche Lernansätze gibt, ist jeder für eine bestimmte Situation nützlich. Es ist möglich, dass Sie für ein Problem mehrere Möglichkeiten haben. Jeder Lernansatz hat eine spezielle Anwendungsdomäne. Aus diesem Grund wissen die Benutzer normalerweise, wo sie Entscheidungsbäume verwenden und wo sie neuronale Netze auswählen müssen, z. B. in Situationen, in denen alle Ihre Eingaben reelle Zahlen sind. Der Versuch, Entscheidungsbäume zu verwenden, ist kein Problem weise Entscheidung. Ich versuche die wichtigsten Dinge zu erklären, die ein ML-Praktizierender normalerweise in Betracht zieht.

Anzahl der verfügbaren Funktionen

Die Anzahl der Funktionen ist wichtig, da sie bei so vielen Funktionen nicht einfach visualisiert werden können. Dies kann dazu führen, dass nicht erkannt werden kann, ob die Daten linear trennbar sind oder nicht. So viele Funktionen bedeuten nicht, dass der Datensatz nicht linear trennbar ist. Angenommen, Sie möchten neuronale Netze zur Modellierung des Problems verwenden. Sie sollten nicht mit einem komplizierten Netzwerk mit so vielen Schichten und Neuronen beginnen. Sie müssen mit einem einzelnen Neuron beginnen, das der logistischen Regression für Klassifizierungsaufgaben entspricht, um herauszufinden, ob Ihre Daten linear trennbar sind oder nicht. Wenn Sie feststellen, dass Sie keine gute Leistung erzielen, können Sie zusätzliche Neuronen und Schichten hinzufügen. Wie? Schauen Sie sich an, wie Sie die Anzahl der Neuronen und Schichten in neuronalen Netzen einstellen .

Funktionsbereich

Bei der Auswahl von ML-Ansätzen ist es einfach, die Einschränkungen jedes Algorithmus in Bezug auf den Merkmalsraum zu berücksichtigen. ZB sind Entscheidungsbäume nicht sehr gut für Probleme mit vielen Merkmalen, von denen einige numerische Merkmale sind. Sie können sehr groß werden. SVMssind nicht sehr gut für nichtlineare Probleme mit so vielen Funktionen, da Sie die Kernelgröße angeben müssen. Für verschiedene Regionen im Feature-Space ist eine einzelne Kernelgröße möglicherweise nicht wertvoll. Um es zu verallgemeinern, werden Probleme mit sehr großem Eingaberaum normalerweise mithilfe neuronaler Netze behandelt. Wenn das Problem so viele Merkmale aufweist, es sich jedoch beispielsweise um binäre Merkmale oder kategoriale Merkmale mit einer kleinen Anzahl von Auswahlmöglichkeiten handelt, kann das Problem einen kleineren Merkmalsraum, Eingaberaum und andere ML-Ansätze aufweisen.

Größe des Datensatzes

Abhängig von Ihrem Problem, den Feature-Typen und den Feature-Bereichen kann der Eingabebereich sehr klein oder sehr groß sein. Folglich kann die Anzahl möglicher Daten abhängig vom Eingaberaum unterschiedlich sein. Wie bereits erwähnt, sind neuronale Netze für große Eingaberäume für Zuordnungen sehr leistungsfähig.

Verteilungen und Bayes-Fehler

Für verschiedene Aufgaben, z. B. Klassifizierung, müssen Sie statistische Analysen durchführen, um Ihren verfügbaren Datensatz besser zu kennen. Sie müssen untersuchen, ob es Eingabemuster gibt, die gleich sind, deren Beschriftungen sich jedoch unterscheiden. Wenn ja warum? Ist das für Expertenfehler oder nicht. Der aktuelle Funktionsbereich ist für das Verständnis des Problems nicht gültig. Nachdem Sie diese Fragen beantwortet haben, können Sie Bayes-Fehler verwenden, um zu untersuchen, welcher Ansatz die beste Genauigkeit Ihrer Daten aufweist.

Medien
quelle