Grundlagen des maschinellen Lernens | Max S | Skillshare
Drawer
Suchen

Playback-Geschwindigkeit


  • 0.5x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 2x

Grundlagen des maschinellen Lernens

teacher avatar Max S, Power through programming

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Grundlagen des Maschinelles Lernen

      5:11

    • 2.

      Wesentliche Begriffe für das Maschinelles Lernen

      16:17

    • 3.

      ML Begriffe

      8:06

    • 4.

      Wesentliche Begriffe auffüllen

      15:10

    • 5.

      Datenvorbereitung

      11:21

    • 6.

      Datenvorbereitung fortzusetzen

      12:07

    • 7.

      Classification

      10:38

    • 8.

      Laufzeit der Classification

      10:35

    • 9.

      Regression

      13:55

    • 10.

      Optimierungstechniken

      14:55

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

253

Teilnehmer:innen

--

Projekt

Über diesen Kurs



Maschinelles Lernen

Mein Ziel ist es, dir ein klareres und intuitives Verständnis für das maschinelle Lernen zu geben.

Dieser Kurs konzentriert sich darauf, dir ein vollständiger Verständnis zu bekommen, insbesondere über die verschiedenen Techniken, die es verwendet, um Algorithmen genauer zu machen und schneller, sowie die verschiedenen Arten von Erziehungen werden

Dieser Kurs ist nicht bereit, dich zu unterrichten, wie du viele verschiedene machine in Code implementieren kannst, sondern dich ein gutes Verständnis für das Thema des gesamten Betrachtungsweisen, die sich gesamtes Thema und die verschiedenen Teile in den Raum gehen lassen lassen lassen

  • Daten erhalten und vorbereiten
  • Voranbringen
  • So bewerten sie die Ergebnisse eines maschinellen Lernalgorithmus, um die Ergebnisse von Algorithmen
  • Wie du deinen Algorithmus schneller lernen kannst.

Triff deine:n Kursleiter:in

Teacher Profile Image

Max S

Power through programming

Kursleiter:in
Level: Beginner

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Grundlagen des Maschinelles Lernen: Hey, alle, hier ist Max. Und willkommen zu meinem Kurs über das Wesentliche des maschinellen Lernens. Und diese Vorlesung werden wir gehen und sich in Machine Learning einmischen. Also werde ich Ihnen sagen, worum es bei diesem Kurs geht, was Sie lernen werden und auch die Dinge, die wir in diesem Kurs nicht behandeln werden, nur um sicherzustellen, dass Sie wissen, was Sie erwarten, und dass Sie auch entscheiden können, ob das richtig ist Kurs für Sie, die Sie zu diesem Zeitpunkt in dieser Vorlesung nehmen möchten. Ich werde Ihnen auch eine kurze Einführung geben, wer ich bin, und dann werden wir darüber sprechen, was maschinelles Lernen ist und wie maschinelles Lernen im Allgemeinen aussieht, wenn Sie es in der Praxis tun. Okay, was sollen wir in diesem ganzen Kurs abdecken? Zuerst lernen wir etwas über eine Menge wesentlicher Begriffe und diese Luftbegriffe, die sich über das gesamte Feld des maschinellen Lernens erstrecken , und deshalb ist es wichtig, diese Begriffe zu kennen. Wenn Sie über alles reden, was mit maschinellem Lernen zu tun hat, dann werden wir uns die Techniken der Datenaufbereitung ansehen. Dann schauen wir uns die Performance-Mütter an. Wie können Sie also bewerten, wie gut Ihre Machine Learning Implementierung funktioniert? Dann werden wir uns genauer mit verschiedenen Regressions- und Klassifizierungsalgorithmen befassen . Und schließlich werden wir auch über verschiedene Optimierungen lernen, die Sie verwenden können und wie Sie sich entscheiden können, zu verwenden oder welchen Optimierer Sie für verschiedene maschinelle Lernalgorithmen verwenden sollten. Alles klar, was wirst du von diesem Kurs bekommen? Während Sie ein gutes Verständnis davon bekommen, was Sie beachten müssen, wenn Sie sich mit Machine Learning-Problemen befassen, werden Sie also etwas über maschinelles Lernen Algorithmen lernen und was Sie beachten müssen, wenn Sie eines als gut ist, was Sie vorher beachten müssen, und während Sie eine trainieren, werden Sie in der Lage sein, über verschiedene Machine Learning Implementierungen mit Menschen zu sprechen. Also wirst du haben, dass du mit Leuten Gespräche führen kannst, wo sie dir von ihrer Implementierung erzählen . Sie werden in der Lage sein zu verstehen, wovon sie sprechen, und Sie können sogar Feedback oder Vorschläge für Dinge geben, die Sie berücksichtigen müssen. Und Sie werden ein ganzes Bild davon bekommen, wie der gesamte Prozess des maschinellen Lernens aussieht. Was ist also nicht mit diesem Kurs? Dieser Kurs enthält keine codierten Beispiele für Machine Learning Implementierungen. Also, wie ich schon sagte, das ist, um Ihnen ein Verständnis für die Themen des maschinellen Lernens zu geben, damit Sie alles wissen , was vor sich geht und dass Sie darüber reden können, dass Sie verstehen können, wenn Leute darüber reden, und dann können Sie Gespräche darüber führen und Feedback geben. Aber es enthält keine codierten Beispiele für die tatsächliche Implementierung eines der Algorithmen. Und wir werden auch nicht über den mathematischen Hintergrund und die Entbehrung der Algorithmen und der verschiedenen Techniken gehen . Nun, an dieser Stelle, möchte ich auch darauf hinweisen, dass maschinelles Lernen ein extrem weites Feld ist, und es gibt eine Menge aktiver Forschung im Gange. Es ist ein sehr schnelles und sich entwickelndes Feld, und in diesem Kurs werden wir nicht in die Bereiche wie tiefe neuronale Netze gehen, und wir werden auch nicht wieder auf die neuesten Forschungen eingehen. Der Sinn dieses Kurses ist, dass Sie sich wohl fühlen, über maschinelles Lernen als Ganzes zu sprechen , über das Sie Gespräche führen könnten. Dass Sie die Umsetzung verstehen können, ist, dass die Menschen getan haben. Sie können Feedback dazu geben, und vieles davon wird Ihnen geben. Es wurde auf dem Verständnis der grundlegenden maschinellen Lerntechniken basieren , die es seit einiger Zeit gibt und dass all diese neue Forschung gebaut auf. Okay, also wer bin ich? Hallo, mein Name ist Max, und ich werde dein Lehrer für diesen Kurs sein. Ich arbeite seit über drei Jahren als Data Scientist und hatte auch das Glück, über 13.000 Studenten über die Welt der Data Science zu unterrichten . Also, was ist maschinelles Lernen? Nun, der allgemeine Zweck des maschinellen Lernens ist, dass Sie eine Maschine trainieren, um eine Aufgabe auszuführen, und diese Maschine wird die Regeln hinter dem System lernen. Das ist also wirklich cool, weil Sie nicht alle individuellen Regeln aufschreiben müssen und Sie sie nicht weiter ändern müssen. Ihr System wird also die Regeln lernen, und es kann sich tatsächlich mit der Zeit weiterentwickeln und neue Regeln lernen, wenn sich die Dinge ändern. Und letztendlich lassen Sie Maschine ihr Wissen verallgemeinern, also wird es eine bestimmte Sache lernen, und dann wird es in der Lage sein, dieses Wissen auf ein größeres Feld und auch auf neue Probleme anzuwenden , die es vorher nicht gesehen hat. Was würde ein Machine Learning Engineer tun? Nun, es ist ein ziemlich einziger Prozess. Also zuerst müssen Sie Daten haben. Sie müssen also in Prozessdaten abrufen. Ich muss es von einem Rohformat in ein sauberes Format konvertieren. Außerdem müssen Sie in der Lage sein, Ihre Daten zu analysieren und zu verstehen und Funktionen und Indikatoren zu erstellen . Also dieser erste Teil ist sehr ähnlich ist eigentlich auf allen Daten Zeichen Fähigkeiten basiert. Wenn Sie also nicht genau sicher sind, was Data Science angeht, habe ich auch eine Menge Sachen über Data Science. Also, wenn Sie sich über diese ersten 2 Dinge unsicher sind, würde ich Ihnen empfehlen, diese Dinge zu überprüfen. Aber natürlich baut maschinelles Lernen auf all den Fähigkeiten der Datensignale auf. Nun, wo du dann weitermachen wirst, ist, wenn du all das getan hast, wirst du die verschiedenen Algorithmen für maschinelles Lernen abwägen. Du wirst verschiedene anwenden, die du wählen wirst. Mehrere wollen testen, und Sie werden die optimalsten oder diejenigen identifizieren, die Sie verwenden möchten. Und während dieses ganzen Prozesses wollten sie sich befreien, und du wirst es trainieren, bis du schließlich zufrieden bist, und dann wird es in die Produktion gebracht werden. Es wird also sein, dass es im Wesentlichen live geht, und selbst nachdem es Leben geht, wirst du es immer noch überwachen müssen. Sie werden immer noch sehen müssen, wie es funktioniert und im Laufe der Zeit, auch beheben Sie es verbessert oder halten Sie es einfach auf dem neuesten Stand. 2. Wesentliche Begriffe für das Maschinelles Lernen: In dieser Vorlesung gehen wir über den ersten Teil der wesentlichen Begriffe. Ich möchte nur erwähnen, dass, wenn Sie nicht alles verstehen, was gerade vor sich geht, keine Sorge machen. Ich möchte Ihnen all diese Begriffe vorstellen, bevor wir in die verschiedenen Bereiche gehen, so dass, wenn sie wieder auftauchen, Sie bereit sind, vertraut, und wir brauchen nicht, um neue Begriffe zu erklären. Also die meisten dieser Begriffe werden wir wieder sehen, und wenn Sie das jetzt nicht verstehen, wieder, machen Sie sich keine Sorgen darüber. Wir werden sie wahrscheinlich in späteren Vorlesungen wieder abdecken. Die Idee hier ist nur, um Ihnen ein Verständnis aller möglichen Begriffe zu verschaffen, die sich nicht wirklich auf einen bestimmten Bereich oder einen anderen beziehen, die Sie können, Sie haben all diese gesehen und dass Sie diese verstehen und wissen , wie man sie kontextualisiert. Und dass du das größere Bild von allem verstehst. Und dann wissen wir, tauchen Sie ein wenig mehr ins Detail in jedes der Dinge, die wir im vorherigen Video erwähnt. Alles klar, also springen wir direkt hinein. Das erste, worüber wir sprechen werden, verschiedene Ansätze, die Sie ein maschinelles Lernen nehmen können. Diese werden in einen überwachten und unbeaufsichtigten und verstärkten Ansatz aufgeteilt. Jetzt ist ein überwachter Ansatz, wenn Sie Daten haben und Ihnen auch eine Lösung zur Verfügung gestellt werden, so ideale Antworten, die Sie wollen. Also in diesem Fall, was wir auf dem Bild auf der linken Seite sehen, wie Sie eine gerade Linie haben. Und jeder dieser Werte kann mit einer idealen Antwort kommen. Sie können also alle Werte auf der X-Achse abrufen und die Werte auf der Y-Achse vorhersagen. In diesem Fall wissen Sie bereits, was die Kopplung ist. Und die Idee von überwachten Machine Learning Ansätzen ist, dass Sie Ihre Daten trennen. Also nehmen Sie nur die Daten, für die Sie Vorhersagen machen möchten, und überprüfen Sie diese Vorhersagen mit den Antworten. Und basierend darauf, wie korrekt oder wie falsch Ihre Vorhersagen sind, ändern Sie dann Ihren maschinellen Lernalgorithmus, um es letztlich besser zu machen, diesen Antworten sehr nahe zu kommen. Nun ist die andere Art von Ansatz, den Sie verfolgen können, unbeaufsichtigt, wo es keine richtigen Antworten gibt oder Sie keine spezifischen Antworten haben. Und so ist das Ziel Ihres Algorithmus hier, zu versuchen, Muster selbst zu finden. Ein gutes Beispiel ist, wenn wir uns das Bild in der Mitte ansehen, wenn wir nur einen Datensatz wie diesen haben und wir verstehen wollen, wollen wir wissen, ob es verschiedene Gruppen gibt. Etwas, das wir ausführen können, ist das Finden von Clustern, über die wir in einer Sekunde mehr und auch mehr in späteren Vorträgen sprechen werden. Und so ist die Idee, dass unser maschinelles Lernen Algorithmus in diesem Fall zwei verschiedene Gruppen finden wird, die hier in blau und orange dargestellt werden, die er gelernt hat, zu trennen. Schließlich ist der dritte Ansatz für maschinelles Lernen , den Sie als Verstärkung Ansatz verwenden können. Und das ist in gewissem Sinne dem unbeaufsichtigten ähnlich, aber es bringt es wirklich auf die nächste Ebene, wo Sie Ihren maschinellen Lernalgorithmus einfach alleine gehen lassen . Und es wird anfangen, Dinge zu tun. Und es wird Feedback erhalten, basierend darauf, ob es Aktion war gut oder ob es Auktion schlecht war. Und Sie können definieren, was gut ist und Sie können definieren, was schlecht ist. Und das sind einige der modernsten Ansätze und sie sind auch sehr komplex und sie können, wissen Sie, man kann wirklich sehr spezifisch werden. Und im Wesentlichen ist die Idee, dass dies die Art und Weise emuliert, die wir lernen. Und so ist der Punkt hier, dass Sie Ihren maschinellen Lernalgorithmus und jede Art von Daten Feed lassen und dann seine eigenen Entscheidungen treffen lassen. Und basierend auf der Entscheidung, die es trifft, sagen Sie entweder: Ja, aber das war eine gute Entscheidung, oder das war eine schlechte Entscheidung. Und dann wird es im Laufe der Zeit lernen, mehr gute Entscheidungen zu treffen. Hand auch vermeiden, dass Entscheidungen. Also die verschiedenen Arten von maschinellen Lernalgorithmen, die es gibt, im Wesentlichen können Sie verschiedene Ziele mit Ihren maschinellen Lernalgorithmen haben. Es gibt Regression, macht Klassifizierung, und es gibt auch Dimensionalitätsreduktion. Also lassen Sie uns durch jede dieser Regression gehen wenn Sie versuchen, einen bestimmten Wert vorherzusagen. Also das Ziel hier ist, sagen wir, Sie versuchen, eine Zahl vorherzusagen. Wenn wir also unsere X-Daten hier haben, versuchen wir nur, den entsprechenden y-Wert vorherzusagen. Dies könnte also sein, dass Sie versuchen, vorherzusagen, sind eine Art kontinuierliche Reihe von Zahlen, in denen Sie versuchen, Zahlen und bestimmte Intervalle oder so etwas vorherzusagen . Aber das Ziel hier ist, dass Sie versuchen, eine bestimmte Zahl davon vorherzusagen. Die Klassifizierung hingegen besteht darin, dass Sie versuchen, Ihre Daten in verschiedene Gruppen aufzuteilen. Also in diesem Fall, und das ist das gleiche Diagramm, das wir letztes Mal verwenden, hätten wir zwei verschiedene Gruppen. Und das Ziel des Algorithmus ist es, Datenpunkte entweder in Gruppe A oder Gruppe B zu sortieren Wenn Sie beispielsweise Anwendungen auf Ihrer Website haben, könnte der maschinelle Lernalgorithmus sich ansehen, was der Benutzer tut. Und sie könnten dann entweder sagen, dass dies ein Benutzer ist, der wahrscheinlich in Zukunft bei uns kaufen wird. Oder dies ist ein Benutzer, der mehr Hand halten muss, oder er braucht mehr Ausbildung darüber, wie man unser Produkt verwendet oder wie auch immer Sie Gruppen kommen können. Aber das ist die Idee, dass Sie nicht versuchen, ihm irgendwelche numerischen Werte zuzuweisen. Vielmehr versuchen Sie, sie in verschiedene Gruppen zu sortieren. Jetzt ist die Dimensionalitätsreduktion ein Ansatz, mit dem Sie Daten für maschinelles Lernen vorbereiten können. Und es ist eigentlich selbst eine Art ganze Reihe von maschinellen Lernalgorithmen. Aber das Ziel ist, dass oft, wenn Sie Daten haben und vor allem, wenn die Dinge sehr kompliziert werden, Sie viele verschiedene Dimensionen haben. Nehmen wir hier ein Beispiel. Wenn Sie ein Bild haben und versuchen, etwas auf diesem Bild zu identifizieren, besteht ein Bild aus verschiedenen Pixeln, abhängig von Ihrer Auflösung. Und jedes Pixel, wenn das Bild gefärbt ist, hat auch andere Farbwerte mit sich. So kommt es mit drei verschiedenen Farbwerten. So sehr schnell, auch wenn Sie nur eine 100 Pixel, Sie haben eine 100 Pixel mal drei Farben. Das sind 300 verschiedene Werte, die Sie wegnehmen können. Und ein 100 Pixel ist auch kein sehr großes Bild. So können Sie das sehr schnell sehen. Ihre Dimensionen können sehr, sehr groß werden. Und so ist die Idee der Dimensionalitätsreduktion, dass man all diese Bilder nimmt. Es sind nicht nur Bilder, sondern all diese Datenquellen, die Tonnen und Tonnen von Daten enthalten. Und Sie versuchen, es zu reduzieren, so dass statt eine Million oder 5 Millionen verschiedene Datenpunkte für jeden Satz von Daten, die Sie haben, können Sie diese Zahl auf viel niedrigere reduzieren, was Ihrem maschinellen Lernalgorithmus hilft letztendlich konzentrieren Sie sich nur auf die wichtigen Dinge. Also lasst uns ein wenig tiefer in das Gebäude oder die Evolution eines maschinellen Lernalgorithmus eintauchen . Solo, maschinelles Lernen. Das erste, was wir tun müssen, ist dass Sie Ihren Algorithmus trainieren müssen. Nun können Sie entweder einen völlig neuen Algorithmus verwenden oder Sie könnten einen teilweise geschulten oder einen bereits vorhandenen Algorithmus haben, den Sie verbessern müssen. Aber was auch immer Sie anfangen, Sie werden es immer noch auf alle Daten trainieren wollen, die Sie gesammelt haben. Also werden Sie diese Daten verwenden. Ich werde Vorhersagen machen. Und dann werden Sie diese Vorhersagen bewerten und Sie werden nach den Fehlern suchen , basierend auf den Daten, die Sie zur Verfügung haben. Nun, neben dem Training, werden Sie auch eine Validierung durchführen wollen. Das Ziel der Validierung ist letztendlich nur ein Dataset zu haben,auf dem Sie Ihre Vorhersagen oder Ihr aktuelles Modell auswertenkönnen auf dem Sie Ihre Vorhersagen oder Ihr aktuelles Modell auswerten und sehen, wie es bei Daten funktioniert, die noch nicht gesehen wurden. Und der Zweck ist, dass Sie Probleme der Überanpassung vermeiden können. Wir werden später noch einmal darüber reden. Aber im Allgemeinen ist es nur Ihr Algorithmus findet Muster, die nicht wirklich existieren. Der Punkt der Validierung ist, dass, sobald Sie trainiert haben, Wolltest du es auf einigen Daten testen, die es noch nicht gesehen hat, so dass seine Vorhersagen nicht korrigiert wurden und sehen, wie es dagegen tut. Und Validierung ist wirklich schön, weil Sie im Wesentlichen nur Ihr Trainingsset nehmen und einen Teil davon trennen. Und Sie verwenden die meisten Ihrer Trainingseinheiten für das Training und sie werden einen anderen Teil verwenden, um gegen zu validieren. Und es kann Ihnen wirklich helfen, Probleme der Überfit zu identifizieren. Und es kann Ihnen sagen, wann Sie mit dem Training aufhören müssen. Und wissen Sie, was ist eine gute 0,1 ist, dass mein Modell nicht wirklich gut funktioniert? Jetzt wird der letzte Teil das Testteil sein. Und der Punkt des Tests ist tatsächlich der Validierung sehr ähnlich. Aber es gibt einen sehr großen Unterschied, dass Ihr Modell nur die Testdaten auf einmal sehen kann. Und Sie werden Ihr Modell nicht weiter verbessern um zu versuchen, die Testdaten besser anzupassen. Also im Allgemeinen, was Sie tun möchten, ist, dass Sie Ihren ursprünglichen Datensatz nehmen und 80 davon teilen und Sie das in den Trainingsteil einfügen. Dies sind also Daten, die Ihr Modell wahrscheinlich mehr als einmal sehen wird. Und 20 Prozent würden Sie einfach beiseite legen und Sie berühren es nicht, Sie sehen es nicht einmal an. Nicht einmal aus dem Menschen, weil Sie keine Voreingenommenheit in Ihren Algorithmus einführen möchten . Sie legen es einfach beiseite und lassen es einfach dort und Sie berühren es nicht bis zum Ende, bis Sie wirklich wissen wollen, okay, wie funktioniert mein Algorithmus jetzt mit den Trainingsdaten, so dass 80 Prozent, können Sie das teilen bis in das Training und die Validierung. Und der sehr große Unterschied zwischen der Validierung und der Testsache ist, dass sowohl die Validierung als auch Testen Ihres Modells das Datum nicht sehen wird und es nicht lernen wird, aus diesen Daten vorherzusagen, aber es ist gegen sie ausgewertet werden. Jetzt, mit der Validierung, können Sie Ihr Modell mehrmals trainieren und Sie können es immer mit ungesehenen Daten und der Validierung testen , wo Sie sehen werden und Sie werden mehrere Male gegen diese Validierungsdaten testen. Während man es für das Testset wirklich nur der Variante überlässt. Und du nimmst, was du für dein endgültiges Modell hältst. Und dann führen Sie es gegen die Testdaten aus und Sie sehen, wie es funktioniert. Und von dort erhalten Sie eine wirklich gute Darstellung, wie Ihr Modell wahrscheinlich funktionieren wird, wenn es völlig neue Daten sieht. Jetzt ist das Wichtigste, wenn Sie es ausführen, es gegen den Testsatz, wollen Sie nicht. Trainieren Sie es mehr und Sie möchten es nicht mehr so einstellen, dass es im Testcenter besser funktioniert, da das gesamte Ziel des Testsatzes ist, völlig ungesehene und unbekannte Daten einzuführen und ohne Vorspannung und ohne jede Eingabe von dem, was richtig ist oder nicht. Und wenn Sie also anfangen, Ihre Daten erneut gegen den Testsatz zu optimieren, dann ist es kein Testsatz mehr, dann ist es nur ein weiterer Validierungssatz. Und von dort ist es nicht wahrscheinlich, dass das Ergebnis, das Sie bei der Validierung erhalten werden, repräsentativ für das ist, was Sie tatsächlich sehen wenn Sie Ihr Modell bereitstellen, wo Sie es auf völlig unsichtbaren -Daten. Auf. Der Sinn des Testsatzes besteht darin, eine fast völlig neue Perspektive zu erhalten und wirklich ein gutes Verständnis dafür zu haben, wie Ihr Modell funktionieren wird wenn es tatsächlich da draußen ist und wenn neue Werte eintreten, die es nie gesehen wird vor. Okay, ein wichtiger Begriff, über den man während des gesamten Trainingsprozesses wissen muss, ist etwas, das Hyperparameter genannt wird. Hyperparameter sind nun im Wesentlichen abstimmbare Parameter Ihres Modells oder Ihres gesamten Prozesses, Ihres gesamten Lernprozesses. Das ist also Ihr Modell, wie Sie sich entscheiden, die Fehler zu erstellen, und auch, wie Sie sich entscheiden, das Lernen zu machen. Ein Beispiel wäre also, wie schnell lernt Ihr Algorithmus? Jetzt kannst du sagen: Oh, nun, das ist einfach. Lass es uns einfach so schnell wie möglich machen. Nun ist das Problem damit, ist manchmal, wenn Ihr Modell zu schnell lernt, es kann tatsächlich schlechter und schlimmer mit der Zeit, weil es versucht, zu korrigieren. Die Entscheidung, wie schnell man lernt, ist eine ziemlich wichtige Ausgewogenheit, denn es ist das Gleichgewicht zwischen der Einnahme zu viel Zeit, um die Lösung zu erreichen, oder Überkorrektur und nie so gut wie möglich zu werden. Hyperparameter sind also Dinge, die Ihr Modell normalerweise nicht lernen wird. Hallo, Sie können verschiedene Algorithmen für maschinelles Lernen verwenden, um Hyperparameter für Ihr Modell zu lernen. Aber es gibt viele dieser freien Parameter, die Sie wählen. Ein weiteres Beispiel ist, wie kompliziert mein Modell ist, das wir sein werden. All diese Dinge, die Ihnen überlassen werden, und das ist Teil dieser maschinellen Lernkunst. Sind diese Hyperparameter, die du letztendlich entscheidest, okay? Wie sollte, weißt du, was sind die Dinge, die es ausprobieren sollte? Muss das sehr kompliziert sein? Muss es einfach sein? Wie schnell möchte ich, dass das lernt? All diese Dinge? Eine gute Sache, über Hybrid-Parameter zu wissen , ist, dass Sie dieses Ding namens Grid Search tun können. Anstatt nur Hyperparameter auszuwählen und zu hoffen, dass alles gut funktioniert, können Sie diese Technik namens Grid Search verwenden, wo Sie eine Liste der Hyperparameter angeben können, die Sie ausprobieren möchten , und einfach die Berechnungen ausführen mehrmals und führen Sie das Training mehrmals aus. Und dann vergleichen Sie, wie die Modelle basierend auf diesen verschiedenen Hyperparametern funktionieren. Und dann können Sie sehen, okay, welche Kombination all dieser freien Parameter die beste ist. Das gibt mir letztendlich eine gute Modellleistung. Und vielleicht auch das lässt das Modell schnell lernen. Also, das sind auch einige der Dinge, die Sie in Betracht ziehen müssen, ist okay, wie viel Zeit habe ich tatsächlich zur Verfügung, um es zu trainieren? Und wie viel Leistung brauche ich wirklich? Wie viel Genauigkeit benötige ich wirklich? Nun können Sie die Rastersuche entweder tun, indem Sie die Parameter neu definieren, die Sie verwenden möchten. Also kannst du sagen, in Ordnung, ich möchte, dass du all diese verschiedenen Kombinationen ausprobierst. Oder Sie können Ihren Computer einfach zufällige Kombinationen auswählen lassen und ihm sagen, wie lange Sie ihn ausführen möchten. Also der Kompromiss hier ist eins, Sie können Kunst wählen. Was möchte ich erkunden? Und der andere ist, okay, wie lange will ich es laufen lassen, bis ich es nehmen und zum nächsten Schritt gehen kann. Und schließlich ist auch etwas Wichtiges zu wissen, die Kreuzvalidierung. Also haben wir im vorherigen Teil über die Validierung gesprochen. Aber die Idee der Kreuzvalidierung ist, dass Sie Ihre Daten nehmen und sie in kleinere Teilmengen aufteilen. Hand, nehmen Sie alle bis auf eine dieser Teilmengen für das Training, und dann nehmen Sie die letzte zur Validierung. Und so können Sie mehrere verschiedene Modelle und, oder das gleiche Modell mehrmals mit verschiedenen Trainings- und Validierungssätzen trainieren . Und dann können Sie Ihr Modell verschiedene Arten von Daten haben , die eingehen und auch verschiedene ungesehene Daten. Und die coole Sache für die Cross-Validierung ist, dass Sie nicht nur ein Verständnis dafür bekommen , wie funktioniert mein Modell gerade jetzt, sondern auch, wie viel variiert mein Modell? Was ist also der erwartete Leistungsbereich, den ich von diesem Modell erwarten kann? 3. ML Begriffe: Diese Vorlesung werden wir weiterhin auf der Suche nach wesentlichen Begriffen. Nun, an diesem Punkt fragst du vielleicht, okay, cool. Also verstehe ich irgendwie, wie der gesamte Trainingsprozess funktioniert. Aber wie fange ich überhaupt damit an, zu wissen, welches Modell ich wählen soll? Nun, das erste, was zu wissen ist, und das ist extrem wichtig, ist, dass jedes Modell immer nur eine Annäherung an Realität ist oder nur eine Annäherung an das ist, was Sie versuchen zu tun. Nun, das gilt für im Wesentlichen alles, was von der Physik reicht. Sogar Physik-Modelle sind nur Annäherungen. Nun, das Ziel, das Sie mit dem Modell zu erreichen versuchen , ist, dass Sie versuchen, die Realität so nah wie möglich nachzuahmen oder zu verstehen , so dass die Unterschiede zwischen Ihrem Modell in Realität nicht mehr wirklich wichtig sind, weil sie verhalten sich im Wesentlichen auf die gleiche Weise. Jetzt kommt jedes Modell in der Regel mit einer Annahme. Und basierend auf den Annahmen, die Sie über Ihre Daten haben, wählen Sie ein bestimmtes Modell aus. Wenn Sie beispielsweise davon ausgehen, dass Ihre Daten linear sind, können Sie eine lineare Regression wählen. Wenn Sie davon ausgehen, dass Ihre Daten komplizierter sind, können Sie eine Polynom-Regression oder Entscheidungsbäume wählen, oder Sie möchten sogar die Wurzeln neuronaler Netzwerke nach unten gehen , je nachdem, wie viel Komplexität Sie hinzufügen möchten. Nun, wenn Sie keine Annahmen über Ihre Daten machen, dann gibt es diesen coolen Satz, der das No-Gratis-Lunch-Theorem genannt wird. Und das sagt im Grunde, es ist unmöglich für Sie zu wissen, welche Modelle die richtige Wahl haben. Sie sind alle gleichermaßen lebensfähig. dies also auf maschinelles Lernen anwenden, ist dies wirklich, dass Sie ein anfängliches Verständnis Ihrer Daten haben, aber es ist immer eine wirklich gute Idee, mehrere verschiedene Modelle zu nehmen, von denen Sie denken, dass Sie die Aufgabe, die Sie 're versuchen, alle diese Modelle zu erreichen und zu trainieren. Wissen Sie, Sie müssen sie nicht vollständig optimieren. Aber nur Art wählen einige Standardparameter werden sie über nur ein wenig geändert, und trainieren diese verschiedenen Modelle und sehen, wie jeder von ihnen funktioniert. Nun, was Sie bekommen werden, manchmal, wenn Sie Glück haben, erhalten Sie verschiedene Modelle und einige funktionieren extrem schlecht und andere funktionieren im Allgemeinen gut. Also wollen Sie Ihre Gewinner aussuchen. Nun, wenn sie alle gleich gut funktionieren, dann an dieser Stelle können Sie irgendwie frei wählen. Aber in der Regel versuchen Sie, die Anzahl der Modelle einzugrenzen. Und so oft kommen Sie nicht nur irgendwie mit dem Modell, weil es oft fast ist, es ist extrem schwierig zu wissen, was die anfängliche richtige Annäherung. Also gut, ist, mehrere Modelle auszuwählen, sie alle zu trainieren, sie alle auszuprobieren, zu sehen, welche am besten funktionieren, und dann diese zu verwenden, diese weiter zu optimieren, zu sehen, wie sie sie ausführen, und dann entscheiden Sie sich letztendlich für eine und gehen Sie vollständig auf den Weg, um es wirklich zu optimieren und es auf Ihrem gesamten großen Dataset oder was auch immer Sie zur Verfügung haben, zu trainieren . Apropos Datasets, lassen Sie uns einige der wichtigen Begriffe betrachten, die Sie beim Sprechen von Datasets treffen werden, insbesondere auch im Bereich des maschinellen Lernens. Der erste Begriff wird Features sein. Features sind nun alle Daten, die Sie verwenden werden, um Ihren Algorithmus zu trainieren. Nehmen wir an, Sie bauen einen Algorithmus, um die Höhe eines Individuums vorherzusagen. Die Funktionen könnten ihr Geschlecht sein, ihre Größe, ihre Beschäftigung, wo sie leben, ihre tägliche Aktivität, was auch immer, alles, was Sie verwenden, Sie möchten in Ihren Algorithmus einspeisen, den Ihr Algorithmus verwenden wird, um zu versuchen vorherzusagen, dass der letzte Weg. Wird es ein Feature sein? Nun können es sich entweder um Rohdaten handeln, die formatiert werden können, oder sie können verarbeitet werden. Es spielt keine Rolle. Es ist nur, dass dies die Daten sind, die Sie in Ihren Algorithmus einspeisen werden. Und das sind die Daten, die Sie verwenden werden, um Ihre Vorhersagen zu machen. Nun, wenn wir auf der rechten Seite schauen, ist dies normalerweise, wie alles irgendwie bezeichnet wird, wenn Sie über mehrere Beobachtungen sprechen , ist das, was sie genannt werden, aber das sind nur mehrere Datenzeilen. Jede dieser Zeilen in diesem Beispiel würde also einer anderen Person entsprechen. Und jedes Feature, das ist, was wir oben haben, würde den verschiedenen Merkmalen entsprechen. So Feature eins, zum Beispiel, könnte es Sex sein, Feature zwei könnte ihre Höhe sein, und dann so weiter. Und Feature n könnte sein, wo immer sie leben können. Nun, die Beobachtung eine wäre Person Nummer 1, Beobachtung 2 wäre Person Nummer 2, und so weiter, bis Sie zu Person Nummer m kommen, was ist, wie viele Beobachtungen Sie haben. Und wie Sie sehen können, wird dies sehr oft nur durch Großbuchstaben X bezeichnet und X enthält die Matrix. Wo jede Zeile eine Beobachtung enthält und jede Spalte für ein bestimmtes Feature steht. Nun, die andere Sache, die wichtig zu wissen ist, sind die Ziele, und diese werden oft durch Kleinbuchstaben y bezeichnet. Jetzt ist das Ziel Ihr Referenzwert, den Ihr Algorithmus zu lernen versucht. In diesem Beispiel wären unsere Ziele nur das endgültige Gewicht. Und wir können sehen, dass wir nicht mehrere Spalten haben, wir haben nur eine Spalte, aber wir haben immer noch die gleiche Anzahl von Beobachtungen. Und so für jede Beobachtung, die in diesem Fall nur eine Person wäre, haben wir in unserem x und unseren Funktionen alle relevanten Merkmale. Und in unserem y, in unseren Zielen, wäre es nur das Gewicht. Also y, y1 wäre das Gewicht der Person eins, Y2 wäre das Gewicht von Person 2, und so weiter. Nun gibt es auch wichtige Begriffe über Machine Learning Modelle zu wissen. Der erste davon wird als Voreingenommenheit bezeichnet. Nun, das wird anders sein als eine andere Art von Voreingenommenheit, über die wir lernen werden. Aber die Idee einer Verzerrung in maschinellen Lernmodellen besteht darin, einen Offset bereitzustellen, und dies wird auch als Abfangen bezeichnet. Und der einfachste Weg, darüber nachzudenken, ist, wenn Sie nur an eine gerade Linie denken oder Ihr Abfangen ist, diese Linie nach oben und unten zu verschieben, um diesen Y-Abfang zu verschieben. Die andere Sache, die Sie haben, unsere Eigenschaften Gewichte. In diesem Vektor speichern wir also die Wichtigkeit jedes Features. Und letztlich, wenn Sie mehrere Funktionen haben, wird Ihr Algorithmus versuchen, diese Funktionen basierend auf der Formel zu lernen , die er verwendet, unabhängig von dem Algorithmus, den er verwendet. Und es wird Gewichtungen zu Ihren Features zuweisen. Es wird relative Bedeutung zuweisen. Und so, was wir haben, ist, dass jedes Feature ein bestimmtes Gewicht mit ihnen verbunden ist. Schließlich haben wir auch den Parametervektor. Jetzt ist der Parametervektor nur eine Kombination aus der Bias und der Feature-Gewichtung bis zu einem vollen Vektor m und Sie tun dies oft, nur weil es das Aufschreiben erleichtert, so dass Sie einen Vektor haben, der sowohl Ihren Offset oder Ihren Abfang oder Ihre Voreingenommenheit, was auch immer Sie wollen, nennen Sie es, plus alle Gewichte Ihrer Features. So können wir sehen, ob wir zurück gehen, wir haben unsere Funktionen hier. Und dann, wenn wir wieder vorwärts gehen, haben wir ein Gewicht für jedes Feature gegangen. Und das ist letztendlich, was unsere Algorithmen lernen wollen. Und einige Algorithmen werden mehrere Sätze von Feature-Gewichten haben. Und einige Algorithmen verwenden wir nur einen einzigen Satz von Feature-Gewichtungen zusammen mit einer Verzerrung. Und der einfachste Weg, dies darzustellen, ist natürlich die Verwendung des Parametervektors, denn damit können Sie alles zusammen gruppieren, was es nur ein wenig sauberer macht. 4. Wesentliche Begriffe auffüllen: Nun fragen Sie sich vielleicht, was sind die verschiedenen Ansätze, die ich zum Erstellen eines Algorithmus ergreifen kann, oder wie stelle ich sicher, dass mein Modell auf dem neuesten Stand bleibt? Im Allgemeinen, wenn Sie trainieren, gibt es zwei verschiedene Ansätze, die Sie ergreifen können. Jetzt wird der erste Batch-Learning genannt und der zweite wird Online Learning genannt. Nun, der große Unterschied zwischen den beiden ist das Batch-Lernen. Und Sie können sehen, dass auch auf dem Bild auf der rechten Seite ist, dass Sie Ihr Modell vorher trainieren. Sie haben also Datenmengen, die hereinkommen. Also Datenblöcke über all diese Kinder waren entweder keine kleineren Teilmengen oder sie können riesig sein. Stapel sind Datensätze, die eintreten, in denen Sie Ihr Modell trainieren. Und im Grunde jeder Traum vertikale Linie, die Sie sehen, wird ein neues Modell erstellt. So trainierst du dein Modell mehrmals und du machst weiterhin Verbesserungen daran. Und irgendwann entscheiden Sie es nicht, es ist Zeit, sehr gut zu funktionieren. Lass es uns zur Verfügung stellen, lass es uns in die Produktion bringen, oder lass uns live gehen oder wie immer du es nennen willst. Und dann kommen Live-Daten rein. Aber an dieser Stelle ändert sich Ihr Modell nicht mehr. Ihr Modell wurde vorher korrigiert. Jetzt kommen die Daten rein und passen, Ausgaben, ihre Vorhersage oder was auch immer das Modell tun soll. Online Learning, auf der anderen Seite, in der Regel beginnen Sie auch mit einem Bachelor in ihm. Also wollen Sie es zuerst so trainieren, dass es vorher gut geht. Aber die Option beim Online-Lernen ist, dass Sie es weiterhin trainieren können , wenn neue Daten kommen. Nun, das klingt wirklich nett, aber natürlich gibt es auch Komplikationen, die damit einhergehen. Wenn zum Beispiel neue Daten hereinkommen, woher wissen Sie, was die richtige Entscheidung ist oder was die richtige Antwort ist? Wenn die richtige Antwort nicht mitkommt. Wenn Sie also keine offensichtliche richtige Antwort haben, die mit Ihrem System kommt, wenn es online ist und es eine ist, funktioniert es nur in der Ausführung. Sie können auf einige Probleme stoßen, weil Sie nur die Antwort erraten müssen oder Sie eine andere intelligente Lösung finden müssen , um herauszufinden was die richtige Antwort ist und was Sie verwenden sollten, um zu trainieren es. Der Punkt ist jedoch, dass, wenn Sie diese Antworten haben oder wenn sich Ihr Datensatz mit der Zeit ändert, Online-Lernen wirklich nett sein kann, weil sich Ihr Modell anpassen wird , wenn sich die Datenart mit der Zeit weiterentwickelt. Nehmen wir an, Sie erstellen ein Produkt und Sie haben zunächst nur ein paar tausend Benutzer. Und Sie haben Ihr Modell online und Sie haben ein gutes Verständnis dafür, wie Sie seine Leistung bewerten und wie Sie eine Änderung mit der Zeit vornehmen können, wenn neue Benutzer hereinkommen, eine Reihe von Dingen tun, die Ihr Algorithmus entwickeln kann oder Ihr Modell mit diese Benutzer. Und wenn Ihr Produkt wächst, werden auch Ihre Modelle wachsen und es wird sich ändern. Und Sie können hier alle diese kleinen grünen vertikalen Linie sehen ist auch live, ist im Grunde neue Versionen Ihres Modells. Nun ist es auch wichtig, hier oder für beide Fälle die Leistung über einen längeren Zeitraum zu bewerten. Sie möchten also mindestens ein paar Monate nach dem Einsatz zurückkommen , um zu sehen, wie die Dinge jetzt für den Bachelor funktionieren, falls dies wichtig ist , weil Ihr Modell wahrscheinlich irgendwann veraltet sein wird. Und so kann es nicht mehr so gut wie anfangs, nur weil sich die Dinge geändert haben. Für den Online-Lernfall könnte es sein, dass Ihr Modell in seine eigene Richtung geht. Und irgendwann ist es einfach, es ist, es hat nicht richtig gelernt und es ist in eine falsche Richtung gegangen, und es ist nicht mehr so gut, wie Sie es möchten. Und so müssen Sie zu diesem Zeitpunkt anhalten und Sie müssen dann zu einer früheren Version zurückkehren. Oder Sie möchten es auf einige frischere Daten umschulen, oder Sie müssen es nur aktualisieren. Also in beiden Fällen wollen Sie sie nicht nur online stellen und sie irgendwie dort lassen. Der für den Batch-Lern-Fall könnte es sein, dass die Datenart von Aktualisierungen und Ihr Modell aus der Mode kommen wird. Während für den Online-Lernfall kann sich das Modell mit den Daten ändern, wo Ihr Modell möglicherweise in die falsche Richtung geht. Jetzt an dieser Stelle ist auch wichtig, über Daten zu sprechen und wie effektiv Daten sind. Und es ist wichtig, vor allem zu beachten, dass mehr Daten im Allgemeinen eine bessere Leistung bedeuten. Und mit genügend Daten können selbst einfache Modelle bei komplexen Aufgaben sehr gut funktionieren. Wenn Sie also Tonnen und Tonnen von Daten haben, möchten Sie irgendwann nicht so viel Zeit damit verbringen, darüber nachzudenken, okay, welchen Algorithmus genau. Und wieder, werde ich es benutzen? Sie werden mit einer gehen wollen, die in der Regel Kleinheit Art von Aufgabe durchgeführt. Und Sie werden sich mehr darauf konzentrieren wollen, okay, welches Modell schnell lernen kann. Denn wenn Sie Tonnen und Tonnen von Daten haben, bedeutet diese Effektivität von Theta im Grunde, dass mehrere Algorithmen gleich gut funktionieren können. Und so wird es wichtig werden. Wie schnell können Sie ein Modell erhalten, um gut zu funktionieren? Wie kann ich mit dem Training Zeit sparen, damit ich mein Modell schneller aufbauen kann oder schneller Verbesserungen vornehmen kann. Nun ist eine weitere wichtige Sache, die Sie über Daten wissen oder darüber nachdenken müssen , wenn Sie ein Modell erstellen und versuchen, Daten zu modellieren, Unterausstattung. Jetzt ist unter Fitting, wenn Ihr Modell zu einfach ist, um die Daten korrekt zu verstehen. Und das kann auch als Bias bezeichnet werden. Jetzt unter Anpassung und Vorspannung sind beide Variationen Formen der Überschlichtheit. Also, was Sie in diesem Fall haben, ist, Sie gehen davon aus, dass etwas viel einfacher ist, als es tatsächlich ist. Nehmen wir also ein Beispiel. Die Börse, die eine der kompliziertesten Dinge ist und es gibt so viel, was in sie einspeist. Wenn Sie versuchen, den Aktienmarkt mit einem einfachen linearen Modell vorherzusagen, wird es nicht besonders gut funktionieren. Und das liegt daran, dass der Aktienmarkt nicht so einfach ist, dass er nur mit linearem Modell verstanden werden kann. Und wenn Sie versuchen, diese Route zu gehen, werden Sie stark unterfit oder Sie werden stark unterfit Modell haben, weil Sie so viel Einfachheit annehmen und der Aktienmarkt ist extrem kompliziert. Eine andere Form, die Einfachheit in Ihr Modell eingeführt werden kann, ist durch Regularisierung. Regularisierung ist Teil der Verlustfunktion oder die Kostenfunktion wird etwas sein, das wir in mehr betrachten werden, in den späteren Vorträgen. Aber letztendlich, was es ist und sehr kurz, ist, dass Sie das Modell bestrafen und Sie versuchen, es so einfach wie möglich zu machen , wie Sie versuchen, seine Flexibilität zu begrenzen. Auf der anderen Seite können Sie Überanpassungen haben oder Varianz wird auch irgendwie sein, sie gehen in die gleiche Richtung. Und das ist, wenn Ihr Modell zu komplex ist oder wenn es zu viel Freiheit hat und Dinge findet, die tatsächlich nicht da sind. Wenn Ihr Modell also überpasst, bedeutet das, dass es Muster gefunden wurden, die tatsächlich nicht existieren. Und ähnlich, wenn Sie mehr Varianz haben, bedeutet das, dass Ihr Modell extrem komplex wird. Und es hat zu viel Freiheit. Und weil es zu viel Freiheit hat, es nicht mehr gut, weil es sich auf Dinge konzentriert, die nicht wichtig sind. Und es ist, diese Dinge zu finden, weil du ihm so viel Freiheit gibst. Und Überfitting oder Varianten können kommen, wenn Sie extrem komplizierte Modelle verwenden. Zum Beispiel, wenn Sie sich entscheiden, mit wie tiefe Entscheidungsbäume gehen sind hohe Polynomfunktionen oder tiefe neuronale Netzwerke. Und Sie versuchen nicht, ihre Freiheit zurückzuhalten, wenn Sie sie einfach frei laufen lassen, es ist ziemlich wahrscheinlich, dass sie Ihre Daten überpassen weil sie so tief in sie gehen und sie werden denken, dass sie etwas extrem gefunden haben interessant, extrem komplex. Und es wird wahrscheinlich nicht wahr sein. Und so ist die Idee der Überanpassung und in der gleichen Region die Idee der Varianz Komplexität eines Modells. Und so oft willst du darüber nachdenken, okay, was ist meine Voreingenommenheit und was ist meine Varianz? Was sind die Trades aus? Im Wesentlichen ist Wasser eine der Einfachheiten und was sind die Komplexität? Und wie kann ich mein Modell machen, dass es weder zu einfach ist, dass es keine wichtigen Dinge findet, noch dass es zu komplex ist, dass es so viel Freiheit hat, dass es Dinge findet, die nicht einmal da sind. Wenn Sie also auf das Diagramm auf der linken Seite schauen, zum Beispiel eines der Testdatensätze, die Sie aus einer Bibliothek namens SKLearn haben, die eine Bibliothek für maschinelles Lernen für Python ist. Es ist eines dieser Test-Datasets für das Iris-Dataset speziell. Und was wir hier haben, ist nur ein einfacher Entscheidungsbaum , der auch in späteren Vorlesungen erfahren wird. Und das Wichtigste hier ist, dass wir drei verschiedene Klassen haben, die Sie für die drei verschiedenen Arten von farbigen Punkten sehen können. Und wir haben auch drei verschiedene Identifikationen, die unser Modell herstellt, die Sie mit den drei verschiedenen Farben sehen können. Also haben wir dieses Lila, dieses Pink und dieses Gelb. Und Sie können in der gelben sehen, es gibt eine Streifen. Und der rosa Streifen trifft nur einen gelben Punkt. Und obwohl diese Daten ziemlich einfach sind, ist dies bereits ein Beispiel für eine Überanpassung, bei der das Modell versucht zu komplex zu werden und diese über Komplexitäten einzuführen, in diesem Fall eine kleine schmale Linie ein Datenpunkt in einer Region, die andernfalls von einer anderen Klasse dominiert wird. Und selbst in, mein Punkt ist hier, dass selbst für diese sehr einfachen Datasets Überpassen zu einem Problem werden kann, wenn Sie Ihr Modell zu viel Freiheit lassen und wenn Sie es einfach alleine loslassen, ohne es zu kontrollieren. Wie sieht der Projektablauf eines maschinellen Lernprojekts im Maschinendruck generell aus? Nun, das erste, was Sie tun müssen, ist, über das Ziel nachzudenken. Und bevor Sie etwas anderes tun, möchten Sie wissen, was der Geschäftsfall ist oder was der Anwendungsfall meines Modells ist? Was ist das eigentliche Ziel, das ich erreichen möchte? Was ist die Genauigkeit, für die ich gehe? Und welche Dinge akzeptabel sind. Also Wasser akzeptable Fehler und was sind inakzeptable Fehler? Also zum Beispiel, wenn Sie auf dem Gebiet der Medizin sind, es, und wenn Sie versuchen, etwas nackt zu erkennen, wenn Sie versuchen, Ärzte zu helfen, erkannte Krankheiten oder haben eine Art von Vortests. Ein akzeptabler Fehler wäre, manchmal etwas zu erkennen, das nicht da ist. Also ein falsches Positiv. Manchmal kann man sagen, oh, das, wir wollen vielleicht weitere Untersuchungen machen, weil diese Krankheit vorhanden sein kann. Und wenn sich herausstellt, dass es nicht da ist, dann ist es okay, weil die Person nicht hart wird. Auch wenn es kurzfristig nicht so schön ist, dass und Angst durchzugehen. Und die langfristige hat es okay Auswirkungen. Aber ein inakzeptabler Fehler, denn wenn Ihr Modell die Krankheit vermisst, wenn es sagt, es ist nicht da und es gibt keine weiteren Tests, die durchgeführt werden und die Person endet mit dieser Diagnose. In diesem Fall, zum Beispiel, werden Sie sich stark darauf konzentrieren wollen. Sie machen keine Fehler, wo Sie etwas vermissen, das tatsächlich da ist , weil das irreparablen Schaden verursachen kann und es ist keine Straße, die Sie gehen wollen. In diesem Fall können Sie sehen, dass es manchmal nicht nur darum geht, wie viel Sie es richtig bekommen, wie viel Sie falsch bekommen? Aber noch wichtiger ist, was sind die wichtigsten Dinge, die Sie brauchen, um richtig zu machen? Und wo ist es okay, die Dinge falsch zu machen? Und dann müssen Sie, denn letztlich Ihre Modelle tropic nicht immer perfekt sein. So müssen Sie es einstellen, um sicherzustellen, dass die Dinge, die Sie brauchen, um richtig unser Recht so oft wie möglich zu bekommen . Und erst danach wollen Sie dann sicherstellen, dass die Dinge, die man richtig machen sollte, auch so oft wie möglich IST. Aber vor allem ist es so wichtig, dass Sie wissen, was das ultimative Ziel ist, bevor Sie etwas anderes tun. Knurren. Du wirst also in die falsche Richtung gehen. Wirst du so viel Zeit damit verbringen, ein extrem hohes Maß an Genauigkeit zu erreichen, das nicht einmal benötigt wird, denn das ist nur, weißt du, etwas, das das Ziel deines Unternehmens ist. Jetzt haben Sie eine Vorstellung davon, was Sie eigentlich tun wollen und was Sie tatsächlich tun müssen. Dann ist es an der Zeit, einen tiefen Einblick in Ihre Daten zu nehmen. Sie möchten sicherstellen, dass Sie Ihre Daten richtig verstehen. Und Sie möchten auch sicherstellen, dass Sie alle Schritte zur Datenaufbereitung durchlaufen , über die wir zuvor gesprochen haben. So viel von diesem ersten Teil ist eigentlich der Data Science Prozess. Verstehen der geschäftlichen Fragen, Verständnis, in Ordnung, wie analysiere ich meine Daten? Was sind die verschiedenen Möglichkeiten, wie ich meine Daten kontextualisieren kann? Wie kann ich mehr Informationen durch mein Domänenwissen in die Daten bringen , die der maschinelle Lernalgorithmus möglicherweise verwenden kann? Der erste Teil wird also sehr stark auf Data Science Fähigkeiten basieren. Nun, der zweite Teil ist, wo das maschinelle Lernen Zeug wirklich eintritt. Was ist, dass Sie dann wollen, um Ihren Zug und Test Split oder Ihre Zugvalidierung und Test Split erstellen . Und Sie werden mit dem Training beginnen und Validieren und Validierungen für Ihre Daten auf oder auf Ihrem Modell durchführen möchten , damit Sie sie mit der Zeit verbessern können. Natürlich möchten Sie zunächst mehrere Modelle auswählen und eine Verlustfunktion oder eine Fehlermaßnahme auswählen, die Sie für gut halten. Und dann wird er, dann wirst du diese verschiedenen Modelle trainieren wollen und wir werden sie vergleichen wollen, einige der Gewinner auswählen, diese optimieren wollen. An dieser Stelle müssen Sie auch gute Optimierer benötigen um sicherzustellen, dass Ihre Modelle so schnell wie möglich lernen. Sie möchten Rastersuche mit Kreuzvalidierung durchführen und einfach über Batches von Trainingsdaten iterieren. Und dann wollen Sie letztendlich auf Ihrem Testset auswerten und sehen , ob es Anzeichen von Unter- oder Überanpassungen gibt. Und du willst das auch anderen Leuten mitnehmen, Input von ihnen bekommen. Sehen Sie, was sie über den Prozess denken, prüfen Sie, ob sie andere Eingaben haben, die auf der Leistung des Modells basieren oder auf welchen Daten Sie sich entschieden haben, es zu liefern und dann von dort zu iterieren. Und wenn Sie sich gut fühlen, wie Ihr Modell funktioniert, dann ist es an der Zeit, es zu starten, um es für Sie verfügbar zu machen. Nein. Stellen Sie es überall hin, wo es hin muss. Und selbst dann wollen Sie immer noch die Leistung Ihres Modells überwachen. Und wenn du willst, wirst du wieder darauf zurückkommen und sehen wollen wie es eine Woche später, einen Monat später funktioniert. Und letztendlich müssen Sie auch darauf zugreifen, es auf neue Daten, um sicherzustellen, dass das Modell auf dem neuesten Stand bleibt. 5. Datenvorbereitung: Willkommen bei der Lektion über Datenaufbereitungstechniken. richtige Vorbereitung Ihrer Daten hat erstaunliche Auswirkungen auf die Leistung Ihrer maschinellen Lernalgorithmen und ist ein entscheidender Schritt im maschinellen Lernen. Und das ist definitiv nicht etwas, das Sie über das Überspringen nachdenken sollten. Dies ist eigentlich einer der wichtigsten Teile um sicherzustellen, dass Ihre maschinellen Lernalgorithmen richtig eingerichtet sind. Schauen wir uns zuerst ein Beispiel an. Wie würden Sie mit einer Distribution umgehen, die wie folgt aussieht? Also, was wir hier haben, ist nur eine Generatorverteilung für mich, die die Einkommensverteilung jeder Stadt zeigt. Und auf der Y-Achse haben Sie die Zählungen oder könnten es auch betrachten. Und wie die Vorkommensrate. Und auf dem X haben Sie das Einkommen und Zehntausende von Dollar. Und was Sie hier sehen, ist eine Stadt mit einer Art durchschnittlichen Mittelschicht, aber natürlich gibt es Menschen, deren Gehalt auf sehr hohe Raten ausgedehnt wird. Und so im Wesentlichen, was wir hier haben, ist, dass wir eine schiefe Verteilung haben oder etwas, das einen sehr langen Schwanz hat. Wir haben eine Art Normalverteilung, die wir in der Mitte erkennen. Und dann nach rechts, diese Verteilung geht einfach weiter. Und dies hat erhebliche Auswirkungen auf unseren maschinellen Lernalgorithmus , da die Skalierung der Daten und wird extrem groß. So können Sie sehen, dass wir uns einfach rechts und rechts ausdehnen und unsere Zählung sinkt. Aber wir können immer Werte begegnen, es sei denn, eine höhere Reichweite. Und das können tatsächlich Probleme sein. Wenn wir versuchen, diese Daten in unseren maschinellen Lernalgorithmus zu integrieren. Und es kann nicht immer so gut damit umgehen, wie Sie es vielleicht wollen. Und wie nähern wir uns solchen Problemen? Wie gehen wir auf diese Arten von Distributionen ein? Nun, eine Sache, die Sie tun können, ist, dass Sie das Protokoll des Einkommens nehmen und Sie können die Auswirkungen hier sehen. Was es tut, ist, anstatt eine Skala von etwa 2,5 bis 20 zu haben, was wir in dieser Verteilung hatten. Hier gehen wir zu etwa eins zu 3.25 oder so etwas. Daher haben wir den Bereich derDaten in unserer Distribution und den Bereich eines wesentlichen Teils derDaten und unserer Verteilung drastisch reduziert Daten in unserer Distribution und den Bereich eines wesentlichen Teils der . Anstatt also von ungefähr achtfachen zu gehen, was von 2,5 auf 20 ist, haben wir nur etwa eine dreifache Änderung von eins zu drei. Und das ist für unseren maschinellen Lernalgorithmus äußerst wichtig da sich die Anzeige nun auf einen viel kleineren Datenbereich konzentrieren muss. Und eine weitere wichtige Sache, die wir mit dieser Protokollskalierung tun, ist dass wir sagen, dass die höheren Zahlen weniger voneinander unterscheiden. Also in diesem Fall der Unterschied zwischen 2,55, so 25000 und 55 Tausend ist viel größer als der Unterschied zwischen sagen, hundertfünfzigtausend und hundertfünfundsiebzigtausend. Und das macht auch Sinn, richtig? Wie irgendwann ist dieser Unterschied einfach nicht mehr so wichtig. Und das sagen wir physisch, wenn wir die Log-Skalierung verwenden. Aber es hat auch erhebliche Auswirkungen auf einen maschinellen Lernalgorithmus weil es wirklich gut ist, wenn wir diesen Bereich reduzieren und ihn nicht so groß machen können. Eine andere Sache, die wir tun können, um den Bereich zu reduzieren , den unsere Daten übergehen, ist nur eine Schwelle zu nehmen. Also könnten wir sagen, zum Beispiel, dass, wissen Sie, alles nach 125 Tausend oder 12,5 in diesem Fall ist im Grunde alles gleich für jedes Projekt, das wir in Betracht ziehen. Nehmen wir an, unser Projekt ist zu sehen, welche Arten von Menschen sich welche Häuser leisten können. Und wir sagen, jeder, der 125 K oder höher betreibt, kann sich im Grunde alle Häuser leisten, die wir betrachten. Und es gibt keinen wirklichen Unterschied mehr zwischen ihnen , weil dieses zusätzliche Einkommen keinen Unterschied für unser Projekt macht. Also können wir sagen, okay, wir werden hier eine harte Schwelle nehmen, die auf dieser physischen Bedeutung basiert, warum genau wir eine 125 K gewählt haben, weil wir an diesem Punkt entschieden haben, es macht einfach keinen Unterschied mehr. Auf diese Weise reduzieren wir auch den Bereich von 2,5 bis 20 auf 2,5 bis 12,5. Wir haben also nicht so große Reduktion wie im Rechtsfall, aber es ist immer noch eine gute Reduktion. Das Problem in diesem Fall ist jedoch, wenn wir uns die Verteilung dieser Normalverteilung ansehen, die wir um die Fünf-Marke oder die 50-k-Marke sehen. Und ich habe einen grünen Balken oben gesetzt, so dass Sie irgendwie visualisieren können, wo die Verteilung liegt. Und jetzt, wenn wir auf den rechten Schwanz schauen, sehen wir, dass die grünen Indikatoren ungefähr die Größe der Verteilung haben, die wir auf der linken Seite haben. Und wir können sehen, dass der Schwanz noch viel länger ist als sie. Und so hat unsere Distribution in diesem Fall immer noch einen extrem langen Schwanz. Und so kann dieser Schwellenwert in einigen Fällen eine gute Sache sein, aber eigentlich für dieses spezifische Beispiel wäre es nicht gut, nur weil unser Schwanz immer noch so lang ist, obwohl wir einen Schwellenwert und eine Art Cutoff verwendet haben, ein signifikanter Teil geht von 12,5 bis 20. Es ist immer noch extrem lang und es ist eigentlich länger. Der Hauptteil der Distribution selbst. Nun, etwas anderes, das Sie tun können, ist, dass Sie Perzentile Ihrer Daten übernehmen können. Sie nehmen also im Grunde alle Daten, die Sie haben, und teilen sie in 100 Gruppen auf. Und dann können Sie jeden dieser Einkommenswerte nehmen und stattdessen durch das Perzentil ersetzen. Und was Sie von hier bekommen, ist das, was Sie auf dem Bildschirm sehen können. Sie erhalten 100 gleichermaßen verteilte Gruppen und Sie erhalten eine Punktzahl zwischen 0 und 100, die Sie auch skalieren können, um von 0 zu einer oder was auch immer Sie wollen. Aber das Wichtigste hier ist, dass Sie einen gut definierten Bereich haben und es kein Ungleichgewicht gibt, wie wir sehen, besonders in diesem Fall, wo sich der Schwanz so lang in eine Richtung erstreckt und es eine Art Ungleichgewicht gibt zum Hauptteil ihrer Verteilung und wie weit sich die Daten davon erstrecken. Das ist nicht etwas, was wir hier sehen. Nun, da wir über Skalierung wissen, bereitet etwas anderes die Eingabe für unsere Daten vor. In diesem Fall haben wir uns eine Skala angesehen, die von etwa 2,5 bis 20 reicht. Und wenn wir nur einen Bereich von Eingaben haben und wir einige der Datenvorbereitung durchführen, über die wir zuvor gesprochen haben, wo wir versucht haben, sie zu verschieben oder zu skalieren, um die Auswirkungen des Schwanzes zu reduzieren, kann das eine gute Sache sein. Aber wenn wir mehrere verschiedene Funktionen haben, die wir für die Eingabe verwenden und ihre Skalen signifikant unterschiedlich sind, kann dies negative Auswirkungen auf die Leistung des Algorithmus haben. Die Algorithmen und generell maschinelles Lernen Algorithmen haben also gerne Zahlen, die in ähnlichen Bereichen vorkommen. Wenn Sie beispielsweise Werte von etwa 2,5 bis 20 oder etwa eins bis 20 haben, dann möchten Sie sicherstellen, dass sich Ihre anderen Werte auch innerhalb des vergleichbaren Bereichs befinden. So zum Beispiel, gehen von fünf zu 30 oder von eins zu 15 oder so etwas. Sie wollen nicht, ist eine eine Verteilung, die von etwa 0 bis 20 geht und eine andere, die von etwa 0 zu 100 geht, und dann eine, die von 50 bis 500 Tausend geht. Algorithmen für maschinelles Lernen haben manchmal Probleme mit diesen Verteilungsarten. Und was Sie wirklich wollen, ist, dass die Skala , die Ihre Eingaben haben, miteinander vergleichbar sind. Worüber wir hier sprechen, ist nicht die Wirkung des Schwanzes zu reduzieren. Das haben wir vorher gemacht, aber sicherstellen, dass Ihre Eingaben von vergleichbarer Größe sind , wenn Sie mehrere Eingaben verwenden. Was Sie hier also tun möchten, ist im Wesentlichen, dass Sie Ihre Features so skalieren möchten , dass sie einen konkreteren Bereich oder einen kleineren, definierteren Bereich haben. Und eine Möglichkeit, dass Sie das tun können, ist nur die Verwendung von etwas namens Min-Max-Skalierung. Also, was Sie tun, ist, dass Sie den Minimalwert nehmen und Sie den Maximalwert nehmen und sagen, dass keine Zahl ist, die am Minimum 0 ist. Und die Zahl, die maximal ist, ist eins. Und alles dazwischen, als eine Zahl zwischen 01, das linear davon abhängt, wo es liegt. Also, wenn es auf halbem Weg zum Maximum ist, wird sein Wert 0,5 sein. Nun, das Problem dabei ist, dass wir immer noch eine ungleichmäßige Verteilung der Daten haben können. So können wir sehen, dass wir die Skala unten hier geändert haben. Wir gehen von 0 zu eins anstatt von 2,5 bis 20. Aber wir halten immer noch den Schwanz. Und so ist es in diesem Fall natürlich immer noch wichtig, dass wir zusätzlich zur Skalierung dieser Funktionen auch eine andere Form der Datenaufbereitung durchführen, wir zusätzlich zur Skalierung dieser Funktionen auch eine andere Form der Datenaufbereitung durchführen um sicherzustellen, dass wir die Auswirkungen dieses Schwanzes reduzieren. Dies ist jedoch ein guter Weg, um zu nähern, mehrere Funktionen zu haben und sie auf den gleichen Bereich zu setzen. Nun natürlich, ein Problem, das Sie auch daraus bekommen können, ist, wenn wir meisten unserer Daten im unteren Teil haben und wir einige Ausreißer haben. Diese Ausreißer können die Reichweite unserer Distribution stark beeinflussen. In diesem Fall können wir sehen, dass die meisten unserer Daten um den Punkt 3 liegen, aber nur einige der Ausreißer, die die 20 hier oben sind, das zieht es den ganzen Weg bis zu eins. Und so haben wir in diesem Fall immer noch das Problem, dass wir immer noch einen kleineren dominanten Bereich in unserer Distribution haben. Die meisten Daten liegen also jetzt zwischen etwa 0.1.4. Aber unser Sortiment reicht bis zu einem, nur wegen der Auswirkungen des Ausreißers. Daher ist es immer noch wichtig, etwas von der Skalierung oder Vorbereitung, über die wir früher gesprochen haben, zu tun , um die Auswirkungen dieser Ausreißer zu reduzieren, die die Auswirkungen des langen Schwanzes, den wir sehen, zu reduzieren. Nun, ein weiterer Ansatz, den Sie annehmen können, ist etwas, das Standardisierung genannt wird. Nun, was Sie hier tun, anstatt eine bestimmte Skala zu setzen, wie wir es in ihnen tun und max Fall, verwenden wir eine relative Skala. Und so finden wir den Mittelwert aller unserer Daten und finden die Standardabweichung. Und wir wenden eine Transformation auf jeden Datenpunkt an, an dem wir den Wert nehmen, wir subtrahieren den Mittelwert, und dann teilen wir ihn durch die Standardabweichung. Und so können wir aus der Grafik auf der linken Seite sehen, unsere Daten sind jetzt angeordnet von etwa negativen eins zu vier. Aber das ist nicht etwas, das vordefiniert ist. Dies ist nur, wir skalieren es basierend auf unserem Datensatz und wie es verteilt ist. Dies ist also eine nette Möglichkeit, Ihre Daten zu regularisieren, da Sie keine bestimmte Skalierung festlegen und Sie die Verteilung der Daten bestimmen lassen , wie die neue Skalierung aussieht. Aber es ist immer noch nützlich, denn wenn Sie dies über mehrere Funktionen oder mehrere verschiedene Eingaben hinweg tun , wird es auf einen vergleichbaren Maßstab herabgesetzt. Anstatt also eine absolute Skala zu setzen, wie wir es für das min-max tun , das zum Beispiel von 0 zu eins geht, können wir immer noch unterschiedliche Skalen haben, die mit der Technik von Standardisierung. 6. Datenvorbereitung fortzusetzen: In dieser Vorlesung werden wir uns weiterhin mit den Techniken der Datenaufbereitung beschäftigen. Alles klar, etwas anderes, was wichtig zu wissen ist, ist eine Probenahme und Probenahme Bias. Denn letztendlich, wenn Sie einen Algorithmus für maschinelles Lernen trainieren, wählen Sie Daten aus, die Sie für das Training verwenden und wählen Sie Daten aus, die Sie zum Testen verwenden. Jetzt ist es wichtig zu wissen, dass die Verteilung Ihrer Daten manchmal erheblicheAuswirkungen auf die Leistung Ihres maschinellen Lernalgorithmus auf Ihr Training und Ihre Testsätze haben kann Auswirkungen auf die Leistung Ihres maschinellen Lernalgorithmus . Wenn wir also die Grafik auf der rechten Seite betrachten, haben wir eine Verteilung von Altersgruppen. Also gehen wir von 15 auf 25. Das ist unsere erste Gruppe, in der etwa etwas mehr als 30 Teilnehmer dabei sind. Dann haben wir von 2006 bis 59, die fast 15 hat, und dann haben wir die 60 plus, die ungefähr 20 hat. Eine Technik, die Sie tun können, ist, dass Sie zufällig Teilnehmer aus dieser Altersgruppe nehmen können . Und wenn Sie das tun, dann können Sie die zugrunde liegende Verteilung nicht nachahmen. Manchmal ist das keine schlechte Sache, manchmal ist das okay. Aber in einigen Fällen, wenn es eine, ein wichtiges Feature, das Sie imitieren möchten, und Ihre Verteilung. Manchmal kann diese wichtige Funktion Auswirkungen darauf haben, wie die Probanden verhalten oder was das Ergebnis von was auch immer Ihr Experiment ist. So können zum Beispiel im Fall der Altersgruppe die verschiedenen Altersgruppen unterschiedliche Meinungen oder Perspektiven haben, und daher können ihre Antworten auf Fragen oder was auch immer einen signifikanten Einfluss auf das Ergebnis haben. Und wenn wir also nur eine zufällige Stichprobe machen, dann ist das, was diese Fehlerbalken zeigen, eine Art Standardabweichung, die wir erwarten können. Und so können wir sehen, dass das, was wir in der tatsächlichen Verteilung haben , im Vergleich zu den Werten, die wir bekommen können, wenn wir nur zufällig Stichproben. Da sind viele Varianten drin und es gibt eine Menge Unsicherheit. Und so können wir hier zum Beispiel sehen, dass, in Ordnung, wenn wir unseren Zug gesetzt haben , der in blau dargestellt ist, und unser Testset, das in grün dargestellt wurde. Einige dieser Altersgruppen können unter sein, sind überrepräsentiert. In diesem Fall ist die Altersgruppe von 60 plus im Training unterrepräsentiert und in den Tests überrepräsentiert. Nun, der Effekt, den dies auf unseren Algorithmus hat, ist, dass unser Algorithmus weniger Eingaben aus dem 60 Plus haben wird. Und es wird mehr, wenn auch über die 60 plus bewerten müssen. Und so kann es sagen, dass die Gedanken der 60 plus Altersgruppe nicht so wichtig sind oder so etwas. Nun, sie sind nicht so bedeutend. Aber dann, wenn es getestet wird, muss es tatsächlich eine Menge der 60 plus Altersgruppe Gedanken bewerten. Und dafür ist es nicht richtig vorbereitet. Es gibt ein Missverhältnis als die Menge der Ausbildung im Vergleich zu den anderen Altersgruppen, die wir im Training durchgeführt haben , im Vergleich zu der Menge der Tests, die durchgeführt werden. Und dies kann erhebliche Auswirkungen auf die Leistung Ihres maschinellen Lernalgorithmus haben. Was Sie also tun können, ist etwas, das als geschichtete Sampling bezeichnet wird, bei dem Sie versuchen, die zugrunde liegende Verteilung nachzuahmen. Und so können wir im Training und im Test, das wiederum in blau und grün gezeigt wird, sehen , dass die Distributionen jetzt viel ähnlicher sind. Jetzt wird es nicht immer eine perfekte Ergänzung sein. Und in einigen Fällen kann die Zufallsstichprobe tatsächlich wie eine geschichtete Stichprobe aussehen, wie wir es getan haben. Dies ist die geschichtete Probe, die wir hier sehen. Also manchmal, wenn Sie zufällig Gruppen wählen, wird es so aussehen, aber Sie sind nicht garantiert. Während Sie bei einer geschichteten Stichprobe garantieren, dass diese Distributionen im Training als auch im Testfall ähnlich aussehen. Und so können Sie sicherstellen, dass diese zugrunde liegenden Distributionen gleich bleiben. Dass die Art und Weise, wie diese Daten in Ihre Schulung und Ihre Testsätze zugeordnet werden, gleich gehalten wird , so dass Sie nicht mit einigen dieser wichtigen Funktionen verwirren. Nun, in einigen Fällen, was Sie tatsächlich tun möchten, ist, dass Sie eine Überrepräsentation einer Probe haben möchten. Manchmal willst du also nicht stratus, du willst, du willst deine Probe nicht schichten. Sie möchten keine gleichmäßige Verteilung, da dies negative Auswirkungen auf Ihren maschinellen Lernalgorithmus haben kann. Nehmen wir zum Beispiel einen Spam-Filter, der versucht hat zu erkennen, ob eine E-Mail Spam ist oder nicht. Und lassen Sie uns sagen, dass die meisten Daten, die wir nicht Spam haben. Nun, wenn Sie hier geschichtetes Sampling durchführen, kann Ihr maschinelles Lernen Algorithmus lernen, dass, wenn er nur alles als nicht Spam klassifiziert, es ziemlich gut geht. Wenn die Wahrscheinlichkeit, dass die E-Mail Spam ist ziemlich gering ist, wird es eine ziemlich gute Arbeit tun sagen, nichts ist Spam, aber das ist überhaupt nicht, was Sie wollen. Diese Art von besiegt den ganzen Zweck. Also etwas, das Sie hier tun können, ist, dass Sie die Menge des Spams übersehen können. Anstatt nur sehr wenig Spam zu haben, können Sie Ihre Sets so erstellen, dass Sie die Menge an Spam überlagern. Und auf diese Weise wird Ihr Algorithmus nicht lernen, dass Spam unwichtig ist , weil etwa genauso viel wie die Nicht-Spam-Inhalte erscheint. Es muss also lernen, wie man es identifiziert. Und dann, wenn Sie zurück zum Testfall oder zum Online-Fall, dem Live-Fall, gehen Sie vielleicht immer noch nicht so viel Spam, aber jetzt kann es wieder, viel besser identifizieren Spam, weil es das während des Trainingsprozesses tun musste. Also manchmal, wenn Sie extrem niedrigen Fall haben. Ereignisse, möchten Sie vielleicht darüber nachdenken, dass diese Ereignisse, einschließlich mehr dieser Ereignisse, dann können Sie tatsächlich erwarten, wenn Ihr Algorithmus als live, um sicherzustellen, dass Ihr Algorithmus lernt, Gebühren wichtige Teile und es lernt, selbst seltene Ereignisse zu unterscheiden, die es lernt, diese zu identifizieren. Obwohl stratified Sampling anfänglich wie eine gute Idee scheinen mag, möchten Sie manchmal sicherstellen, dass die Verteilung von Daten, es ist nicht das gleiche, weil das tatsächlich viel bessere Auswirkungen auf die Leistung von Ihren Algorithmus. Alles klar, das nächste, worüber ich reden möchte, ist wie geht man mit nicht-numerischen Daten um? Also werden wir uns die ersten Datentypen von Daten ansehen, die kategoriale Daten sein werden. Sie haben also verschiedene Kategorien. Nun, in kategorialen Daten, können wir dies in verschiedene Dinge aufteilen. Eine davon ist Ordinal-Typnummern, die wir hier tun können, ist zum Beispiel, wir haben das Sterne-Bewertungssystem. Wir haben einen Stern, zwei Sterne, drei Sterne, vier Sterne und fünf Sterne. Und was wir tun können, ist, dass wir diese Zahlen normalerweise behandeln können. Und wir können sagen, in Ordnung, wir werden sagen, dass ein Stern, wir geben, dass den numerischen Wert von eins zu sars, numerischer Wert von 2, drei Geschichten, drei, vier Sterne für fünf Sterne, fünf. Was wir also für kategoriale Daten tun müssen, ist, dass wir sie in numerischen Wert umwandeln müssen. Nun ist es gut, diese Art der Transformation zu sequentiellen Zahlen zu machen. Wenn die zugrunde liegenden Werte haben eine unterschieden, zwischen ihnen, wenn es eine Hierarchie, so dass zwei Sterne ist besser als ein Stern, vier Sterne ist besser als ein Drei-Sterne, und Fünf-Sterne-ist die beste. Dies ist also eine gute Möglichkeit, Daten zu behandeln, die eine zugrunde liegende Reihenfolge haben. Ein weiteres Beispiel ist, wenn Sie Bewertungen haben, die im Allgemeinen sagen, dass dies schlecht ist, das ist in Ordnung, ist gut, großartig, dass Sie wieder numerische Werte zuweisen können, die zunehmen. Also gehen Sie 12345 und die Fünf sind eigentlich besser als die vier. Verwendung dieser Art von Transformation ist also gut, wenn Ihre Daten eine klare Reihenfolge haben. Aber sonst kann es tatsächlich Probleme verursachen. Wenn Sie das tun, zum Beispiel, wenn Sie Kategorien von Studenten, Alumni, Lehrer und Eltern haben ,können Sie nicht wirklich 1234 zuweisen, können Sie nicht wirklich 1234 zuweisen weil auf diese Weise Ihr Algorithmus lernen kann, dass ein Schüler niedriger ist als ein Alumni, die niedriger ist als ein Lehrer, der niedriger ist als ein Elternteil. Und man kann die Kategorien nicht wirklich vergleichen, weil es sich um verschiedene Kategorien handelt und sie das Gleiche aus verschiedenen Perspektiven erleben können . Also, was Sie in diesem Fall tun können, wenn es keine klare Reihenfolge zwischen diesen verschiedenen Kategorien gibt, können Sie etwas tun, das als One-Hot-Codierung bezeichnet wird. Und das sehen wir auf dem Tisch auf der linken Seite, wo Sie für jede der Kategorien Ihre eigene Spalte erstellen. Und wann immer dieser Wert vorhanden ist, erhält dieser Wert einen Eins. Und so können wir hier sehen, wenn es ein Student ist, wird die Student Kolumne eine Eins haben und jede andere Spalte wird eine 0 haben, wenn es ein Alumni ist, jede andere Spalte wird eine 0 haben, außer für die Alumni-Spalte, die eine Eins hat. Wenn es ein Lehrer ist, wird die Lehrerkolonne eine Eins haben und alles andere wird 0 sein. Und wenn es Elternteil ist, wird der Elternteil eins passieren und alles andere wird 0 sein. Und was Sie hier tun können, ist, dass Sie Kategorien nehmen können und Sie sie stattdessen in diesen One-Hot-Encoder transformieren können , der Algorithmus besser mit diesen kategorialen Typen umgehen lässt. Jetzt ist dies in der Regel gut zu tun, wenn Sie eine geringe Anzahl von Kategorien haben, also etwa 10. Aber Sie wollen dies nicht tun, wenn Sie etwa 100 Kategorien haben, weil das nur die Menge an Eingaben aufblasen, die Sie haben und Ihr Algorithmus möglicherweise nicht sehr gut damit umgehen, weil er all diese verschiedenen Inputfaktoren lernen muss. Ein anderer Weg, wie Sie dies tun können, ist die Verwendung von etwas namens Einbettungen. Nun, dies ist ein sehr oft für Text verwendet, weshalb wir es auch aus dem Textteil der nicht-numerischen Daten betrachten werden . Aber Einbettungen sind etwas, das Sie sowohl für Kategorien als auch für Text tun können. Und die Idee hier ist, dass Sie einen Wert nehmen und stattdessen diesen in eine Reihe von numerischen Werten transformieren. Zum Beispiel, was wir tun können, ist, dass wir das Wort Kartoffel nehmen und wir können eine 3D-Einbettung verwenden. Und so wird jedem Wort oder jeder Kategorie drei Zahlen zugewiesen. Jetzt können diese Zahlen zunächst randomisiert werden, na ja, wird zunächst zufällig gesetzt. Aber diese Kategorien sind, diese Einbettungen sind eigentlich etwas, das Sie lernen können. Und die Einbettungsbemaßung ist jetzt auch Hyperparameter Ihres Modells. Aber ein Beispiel dafür ist, wenn wir die Worte Wolken, Sonne, Regen und Regenknochen nehmen, dann, wenn wir lernen, dass diese Einbettungen sind, können Einbettungen tatsächlich so aussehen, wie wir auf der linken Seite sehen. Und Sie können sehen, dass, um einen Regenbogen zu bekommen, was Sie haben, ist, naja, Sie gehen zur Sonne, Sie subtrahieren die Wolken, fügen Sie den Regen hinzu, und im Grunde haben Sie sich selbst einen Regenbogen. So können Sie tun, oder, Entschuldigung, Sie gehen zu den Wolken, fügen Sie den Regen, und Sie fügen die Sonne, und Sie haben sich selbst einen Regenbogen hier. Und so können Sie sehen, dass es eine, gibt es eine Beziehung zwischen den Zahlen, die wir jedem der Wörter zuweisen. Und so sind wir verwandte Kategorien oder verwandte Wörter werden tatsächlich begonnen, sich zu gruppieren. Und verschiedene Worte werden weiter auseinander verstreut werden. Und so sind Einbettungen äußerst nützlich, weil sie es Ihnen ermöglichen, eine große Anzahl von Wörtern oder eine große Anzahl von Kategorien zu nehmen und sie auf einen viel niedrigeren Satz von Dimensionen zu reduzieren . Zum Beispiel, wenn wir 3D-Einbettungen machen, die eine Tonne von Wörtern nehmen können, und wir können diese einfach auf drei verschiedene numerische Werte reduzieren , anstatt, sagen wir, einen 100 One-Hot-Encoder zu haben. Also ein 100 verschiedene Säulen. Stattdessen haben wir nur drei. Und das ist viel besser für unseren Algorithmus, weil er dann viel besser mit diesen Einbettungen umgehen kann. Und es kann wissen, welche Werte ähnlich sind und welche Werte unterschiedlich sind. Und es kann diese besser behandeln, und es muss nicht lernen oder muss sich nicht mit all diesen verschiedenen Kategorien auseinandersetzen. 7. Classification: In dieser Vorlesung werden wir über Klassifizierungsalgorithmen lernen. Also, zuerst, was sind sie? Nun, es sind im Wesentlichen Algorithmen, mit denen Sie Kategorien aus Ihren Daten vorhersagen können. Nun gibt es auch Klassifizierungsalgorithmen denen Sie Gruppen innerhalb Ihrer Daten identifizieren können. Lassen Sie uns dies mit einem praktischeren Beispiel tun, indem Sie das Diagramm auf der rechten Seite verwenden. Was wir haben, ist nur eine einfache Zeit, die Verteilung verbracht wird. Jeder Datenpunkt stellt beispielsweise eine Person auf der X-Achse dar, wir haben die Zeit, die bei der Arbeit verbracht wird, wobei das Recht mehr Zeit ist, die linke ist weniger Zeit. Und auf der Y-Achse haben wir die Zeit mit der Familie verbracht, wieder Topping mehr und unten weniger. Nun sagen wir auch, dass wir wissen, dass diese Gruppe in zwei verschiedene Kategorien aufgeteilt ist. Wir haben die Gruppe A, die in der Art von oben links ist, was mehr Zeit mit der Familie und weniger bei der Arbeit ist. Und wir haben die unten rechts. Nun können diese Gruppen nicht nur durch die Art und Weise identifiziert werden, wie sie sozial handeln, aber vielleicht hängt das auch damit zusammen, wie Menschen kaufen. Sie haben zwei verschiedene Arten von Verbrauchern, die gerade zufällig in diese Kategorie fallen gehen mehr Zeit mit der Familie und andere gehen mehr Zeit bei der Arbeit verbringen. Sehen wir uns nun auch den grünen Punkt in der Mitte an. Dies ist eine neue Person, die eingegeben wird, und wir wollen in der Lage sein, vorherzusagen welche Kategorie sie fallen werden, damit wir wissen, wie sie richtig angegangen werden können, zum Beispiel aus einer Marketing-Perspektive, welche Art von Katalogen würde vielleicht interessiert sein? Welche Art von Kaufverhalten können wir von ihnen erwarten und wie können wir ihre Erfahrungen entsprechend anpassen? Also wollen wir wissen, in welche Gruppe von Menschen sie passen. Und so eine gute Möglichkeit, dies zu tun, ist die Verwendung von Klassifizierungsalgorithmen, denen Sie eine Gruppe zuweisen oder eine Gruppe vorhersagen können, anstatt in die diese neue Person fällt. Wenn Sie also Klassifizierungsalgorithmen verwenden, verwenden Sie sie, wenn Sie eher an einem Attribut als an einem genauen numerischen Wert interessiert sind. Nehmen wir zum Beispiel an, wir haben zwei Kategorien von Katzen und Hunde sind einfach nur Katzen und nicht Mützen. Und jetzt haben wir ein anderes Bild in diesem Fall, und wir wollen dieses Bild einer Kategorie zuweisen, die wir dieses Bild klassifizieren möchten. Ist dieses Bild einer Katze oder ist es keine Katze? Und so ist dies ein weiteres sehr einfaches Beispiel dafür, was ein Klassifizierungsalgorithmus tun kann. Es werden wir dieses Bild in die bereits definierten Klassen von Katze zuweisen. Wir sind keine Katze. In Ordnung, also lasst uns ein wenig näher in einige der Algorithmen eingehen und tatsächlich einige Beispiele für diese Algorithmen sehen. Wir werden das Iris-Dataset verwenden, das in SkLearn enthalten ist. Und es ist im Grunde nur ein Blick auf drei verschiedene Arten von Blumen, das ist, was wir hier auf der linken Seite haben. Jede dieser Blumen stammt aus der Wikipedia-Seite für das Iris-Dataset. So kannst du sie auch dort oben nachsehen und sie dort finden. Und im Wesentlichen gibt es zwei Formen. Die ersten zwei übergeordneten Formen der Art und Weise, wie wir uns der Klassifizierung nähern können. Einer von ihnen wird beaufsichtigt, der andere ist unbeaufsichtigt. Der große Unterschied hier ist natürlich, dass überwacht, wir haben bereits Ziele für die Ausbildung bekannt, während wir unbeaufsichtigt, wir sind nicht wirklich sicher, was die richtige Lösung ist. Nun, ein weiterer Teil der Klassifizierungsalgorithmen sind Einzelklassen- oder Mehrklassenklassifizierungsalgorithmen. So in der Lage zu sein, eine einzelne Klasse vorherzusagen oder mehrere Klassen vorherzusagen. Und wir werden uns jeden dieser Fälle ansehen und jetzt ein bisschen mehr Details ansehen. Also zuerst werden wir uns Einzelklassen-überwachte Algorithmen ansehen. Nun, was wir hier auf der linken Seite haben, sind nur zwei der vier Features, die aus dem Iris-Dataset geplottet werden. Also auf der linken Seite haben wir die Blütenblattbreite in Zentimetern und auf der Y-Achse eher, und auf der X-Achse für beide Diagramme haben wir die Blütenblattlänge. Jetzt haben wir auch unsere Daten in zwei Kategorien aufgeteilt. Wir haben die nicht VR, Rig Nika. Ich habe keine Ahnung, wie ich das aussprechen soll, aber es ist eine der Blumen. Und dann hast du die andere Kategorie, die diese Art von Blume ist. Also im Grunde können wir sehen, und die Art, wie ich diese Daten beschriftet habe, ist alles in Schwarz ist nicht diese Blume, und alles in Grün ist diese Blume. Nun, was Sie in den Hintergrundfarben sehen, sind zwei verschiedene Klassifizierungsalgorithmen. Einer von ihnen ist ein stochastischer Gradientenabstiegsklassifikator, der SGD, der eine lineare Stützvektormaschine verwendet. Auch hier sind dies nur Namen für Klassifikatoren. Also, wenn das ist, klingt verwirrend, denken Sie es nur als einen Namen für etwas. Und die andere Sache ist ein logistischer Regressionsklassifikator. Nun, der große Unterschied hier ist der blaue Bereich. Stellt dar, wo der maschinelle Lernalgorithmus sagt, dies ist nicht diese Art von Blume. Und der rote Bereich sagt, dass dies diese Art von Blume ist. Und was wir in der Mitte haben, gibt es die Entscheidungsgrenze. Im Wesentlichen, wenn Sie über diese Linie in der Mitte dieser Art von grüner quiggly Linie. Wenn Sie zum Beispiel nach links gehen , für den SGD-Fall, dann gehen Sie in die Kategorie „Nicht diese Blume“. Und wenn du nach rechts oben gehst und in diese Blumenkategorie gehst. Jetzt können Sie übrigens sehen, dass ich mich entschieden habe, die Daten anzuzeigen. Dieser Algorithmus ist natürlich nicht 100 Prozent genau. Wir haben einige der Knoten Blumen in dieser Kategorie zeigen, wo der Algorithmus sagt, dass, das ist eigentlich diese Art von Blume. Also wieder, das Schwarz repräsentiert, was die Blume tatsächlich ist, und die Farben im Hintergrund repräsentieren, was der Algorithmus ein wenig vorhersagt. Also schwarz ist nicht die Blume, grün ist diese Blume, und blau ist der Algorithmus sagt voraus, dass Blume und Rot ist der Algorithmus sagt voraus, dass es diese Art von Blume ist. Nun ist hier eine interessante Sache zu beachten, wenn wir den oberen und unteren Graphen vergleichen, können wir sehen, dass die beiden verschiedenen Algorithmen, die wir hier verwenden, unterschiedliche Entscheidungsgrenzen haben. Sie befinden sich nicht nur an verschiedenen Positionen, sondern sind auch in unterschiedlichen Winkeln. In diesem Fall trennen beide in gewissem Sinne die Daten fast linear. Also, was sie tun, ist, dass sie im Grunde fast nur eine gerade Linie zwischen den Daten zeichnen, die sie trennt. Aber wir können sehen, dass der stochastische Gradientenabstieg , der an diesem Punkt nur lineare Stützvektormaschine verwendet, mehr eine diagonale Trennung hat, während die logistische Regression eher eine horizontale Trennung ist. Schauen wir uns also jeden dieser Algorithmen ein wenig genauer an. Im Falle einer logistischen Regression versucht unser Algorithmus, die unteren Gleichungen zu optimieren nur die beste Wahrscheinlichkeit zu finden. Und es verwendet die logistische Gleichung für sie. Und so sehen wir, dass wir die Features als x haben, wir haben y als unsere Vorhersage, und wir haben unseren Abfang und unsere Koeffizienten oder unsere Gewichte, wie wir sie früher eingeführt haben. Und was wir sehen können, was wir von hier auf der linken Seite bekommen, ist, dass wir eine Wahrscheinlichkeit bekommen , wenn bei diesem Blütenblatt Breite und Blütenblatt Länge, ist, das ist diese Blume oder nicht? Was ist die Wahrscheinlichkeit, dass diese beiden Werte gegeben, ist dies die Blume. Und so können wir sehen, dass bei niedriger PDL-Breite und grundsätzlich jeder Pedallänge die Wahrscheinlichkeit sehr gering ist. Und wenn wir zurückgehen und uns das ansehen, sehen wir genau das, was wir bei niedriger Pedalbreite sehen. Egal, ob die Pedallänge oder -wahrscheinlichkeit niedrig ist. Das bedeutet, dass der Klassifikator dies nicht als diese Art von Pflanze klassifiziert. Während, wenn wir auf hohe PDL Breite gehen für grundsätzlich jede Pedallänge oder Wahrscheinlichkeit hoch ist, was bedeutet, dass unser Klassifikator jetzt diese Region als dieser Planer klassifiziert. So können wir sehen, dass alles in Rot hat, im Grunde unser Algorithmus sagt, das ist eine hohe Wahrscheinlichkeit, dass, Das hat diese Pflanze. Und so werde ich diese Werte hier zuweisen und sagen, dass alles hier drüben diese Pflanze ist. Während wir in der blauen Region eine geringe Wahrscheinlichkeit haben , dass alles in dieser Region unsere Pflanze ist. Also, das ist, was wir in der unteren Grafik hier für logistische Regression haben. Betrachten wir den linearen SVM oder den SGD-Klassifikator, der Stochastic Gradient Abstieg Klassifikator hier. Was die lineare SVM tut, ist, dass sie versucht, eine Hyperebene zu finden, die die Daten linear trennt. Nun, was eine Hyperebene ist, es ist im Grunde nur eine Linie, in diesem Fall, in dem zweidimensionalen Fall hier. Und wenn es dreidimensional ist, ist es eine Oberfläche. Und wenn es vier Dimensionen ist, ist es eine Art interner Bereich, aber es versucht nur, etwas zu finden, das ich zeichnen kann, das die Daten trennt. Und das ist genau das, was wir hier sehen. Was der Algorithmus zu tun versucht, ist, eine gute Zeile zu finden, die die Daten trennt. Aber auch was es tut, ist, dass es versucht, den Abstand von den Datenpunkten zur Linie so groß wie möglich zu halten . Und so nehmen die Algorithmen unterschiedliche Ansätze an das Problem. Und deshalb können wir auch sehen, dass sie mit unterschiedlichen Ergebnissen herauskommen. Und so mit der logistischen Regression, können wir sehen, wir haben eine Wahrscheinlichkeit für jeden Wert eine Wahrscheinlichkeit zwischen 0 und 1 der Zugehörigkeit oder nicht zu dieser Art von Klasse gehören zugewiesen . Während für den Fall der linearen Support Vector Machine, haben wir eine Region von 0, die nicht diese Klasse ist und von einer, die diese Klasse ist. Und wir haben im Grunde die eine Region in der Mitte, wo es einen großen Sprung von dieser Klasse zu dieser Klasse gibt. So können wir sehen, eine ist eine Wahrscheinlichkeit, die viel reibungsloser geht und die andere hat im Grunde einen großen Sprung zwischen ihnen. 8. Laufzeit der Classification: In dieser Vorlesung werden wir mit den Klassifizierungsalgorithmen fortfahren , die wir letzten Vorlesungen begonnen haben. In Ordnung, also werfen wir einen Blick auf multiklasse überwachte Algorithmen. Also, was wir vorher getan haben, ist, dass wir nur versucht haben, zwischen dieser Blume oder nicht dieser Art von Blume zu unterscheiden . Aber tatsächlich gibt es in diesem Datensatz drei verschiedene Arten von Blumen, die darin enthalten sind, was wir hier sehen. Auf der oberen Grafik auf der linken Seite haben wir unsere drei verschiedenen Arten von Blumen. Sie werden mit einem Algorithmus namens KNN getrennt, um für k-nächste Nachbarn zu stehen. Und auf der Unterseite haben wir eine logistische Regression mit einem Eins-gegen-Ruhe-Ansatz. Lassen Sie uns also etwas detaillierter darüber sprechen, insbesondere die eine gegen Ruhe. Nun, was wir im ersten Fall haben, ist genau hier, wir versuchen nur, zwischen einer Klasse von Ja oder Nein zu trennen. Und das ist, worauf sich der einzelne Klassenteil bezieht, wo entweder versucht, Ja oder Nein zu sagen, es ist binär. Nun haben einige dieser Algorithmen kein Gegenstück mit mehreren Klassen. Sie können nur „Ja“ oder „Nein“ sagen. Sie haben keine ABC-Option. Und die Art und Weise, wie Sie diese Algorithmen verwenden können, um , anstatt nur Ja oder Nein zu sagen sie zu einem ABC zu machen, anstatt nur Ja oder Nein zu sagen, ist, dass Sie einen Eins-vers-Ruhe-Ansatz verwenden, was bedeutet, dass Sie einen Klassifikator trainieren, die Wahrscheinlichkeit für jede von ihnen, die zu dieser Art von Blume gehören. Also haben wir, in diesem Fall, drei logistische Regressionen, von denen jeder eine Punktzahl für eine bestimmte Blütenblattlänge und Blütenblattbreite geben , die zu einer bestimmten Art von Blume gehören. Und der Klassifikator, der uns die höchste Wahrscheinlichkeit gibt , dass diese Pedallänge und dies dieser Blume entsprechen würde. Das ist diejenige, die ausgewählt werden wird. Und so nennt man das Eins-vers-Ruhe-Ansatz. Und auf diese Weise können wir eine einzelne Klasse oder einen binären Klassifikator drehen , der nur Ja oder Nein Werte vorhersagen kann und mehrere von ihnen zusammen verwenden, um dann mehrere Klassen vorherzusagen. Und so können wir hier unten sehen, das ist die Entscheidungsgrenze, die wir bekommen. Und es macht einen ziemlich guten Job, sie zu trennen. Auch hier können Sie sehen, dass einige der Punkte Art von Spillover. Also haben wir die grüne Blume irgendwie in das rote Regime verschüttet und einige der roten Blumen in das, was der Algorithmus voraussagen würde, das grüne Regime zu sein. Aber es macht einen ziemlich guten Job, diese drei zu trennen. Jetzt für die k-nächsten Nachbarn, dieser Algorithmus, den es nur ansieht, sind, was sind die Punkte um mich herum? Und dann, basierend darauf, versucht es, eine Vermutung zu machen. Und so ist eine wichtige Sache, hier zu beachten ist, dass für die logistische Regression für die Unterstützung Vektormaschine, aber wir hatten immer im Wesentlichen, im Grunde eine gerade Linie, die trennt. Während für den k-nächsten Nachbarn, können wir sehen, dass es tatsächlich eine Kurve geht, speziell für den schwierigen Teil zwischen den beiden Blumen und der oberen rechten Ecke. Und so können wir sehen, dass verschiedene Algorithmen unterschiedliche Entscheidungsgrenzen geben. Die Entscheidungsgrenzen wieder, sind jene quiggly Linien, die die Ausgabe von den Klassifikatoren trennen. Und natürlich gibt es viele weitere verschiedene Arten von Klassifikatoren, in die Sie gehen können. Und das sind nur einige der Beispiele. Nun, da sich alle diese Klassifikatoren so unterschiedlich verhalten, ist es nicht oft nicht, wenn Sie jeden einzelnen Klassifizierungsalgorithmus lernen, sondern es ist wichtiger, dass Sie ein sehr gutes Verständnis für ein paar von ihnen haben. Wählen Sie also 34 oder fünf und verstehen Sie diese im Detail und fühlen Sie sich wohl mit ihnen. Und oft nur diese Art von Algorithmen zur Auswahl zu haben und sie vollständig zu verstehen, wird Ihr Modell oft viel besser machen. Anstatt zu versuchen, Tonnen verschiedener Klassifizierungsalgorithmen zu verwenden , bei denen Sie nicht wirklich verstehen, was sie tun , wie sie sich verhalten und welche am besten geeignet wäre und diese Art von Situation. So sind zum Beispiel andere Arten von Multi-Class-überwachten Algorithmen Naive Bayes oder Sie können neuronale Netzwerke verwenden, aber es gibt natürlich viele mehr. Aber letztendlich wieder, das Beste ist, sich mit einem Paar ziemlich vertraut zu machen und dann einfach bei denen zu bleiben , denn das sind diejenigen, die Sie am besten verstehen. Und wenn Sie eine Handvoll Klassifizierungsalgorithmen zur Auswahl haben, sind die Chancen, einer von ihnen wird immer eine ziemlich gute Arbeit leisten Ihnen zu helfen, das Problem zu lösen, das Sie angehen. In Ordnung, schauen wir uns unüberwachte Algorithmen mit mehreren Klassen an. Jetzt. Im Wesentlichen werden wir jetzt nur einen betrachten, weil diese ziemlich kompliziert werden können. Und wir werden uns einen Clustering-Algorithmus ansehen, der k-Means genannt wird. Nun, was der Clustering-Algorithmus tut, ist, dass er ihn trennt. Es trennt unsere Daten in verschiedene Cluster, in verschiedene Gruppen. Wieder sehen wir hier haben wir eine Entscheidungsgrenze und wir haben verschiedene Klassen. Und der oberste Fall, sagen wir vorher, wir wollen, dass dieser Algorithmus diese Daten in zwei verschiedene Gruppen aufteilt. Und das ist es, was es tut. Wir sehen die linke Seite ist eine Gruppe und die rechte Seite als eine andere Gruppe. Und in der unteren Hälfte sehen wir, oder wir sagen, wir wollen, dass dieser Algorithmus ihn in drei verschiedene Gruppen aufteilt. Also, das ist etwas, das wir vorher sagen. Und in diesem Fall sehen wir, dass wir eine unten links, eine in der Mitte und eine auf der rechten Seite haben. Jetzt wird dieser Ansatz wieder Clustering genannt. Und wenn wir vorher definieren wie viele verschiedene Gruppen wir wollen, dass der Algorithmus identifizieren. Und in diesem Fall versucht es, die Daten so zu gruppieren, dass es eine minimale Varianz innerhalb jeder Gruppe gibt. In Ordnung, also wie würden Sie bewerten, wie gut Ihr Klassifizierungsalgorithmus funktioniert? Nun und einfach, eine Art unkomplizierter Ansatz wäre nur, um die Genauigkeit zu messen. Schauen Sie sich im Grunde an, was der Anteil der korrekt klassifizierten Ergebnisse oder Vorhersagen ist. Dies kann jedoch Probleme verursachen, wenn Sie eine hohe Anzahl von Klassen haben. Nehmen wir an, Sie prognostizieren 20 verschiedene Klassen. Das bedeutet, dass jede Klasse etwa 5% beträgt, wenn sie gleichmäßig verteilt sind. Wenn Sie eine Genauigkeit von 95% haben, das ist fast mehr, Das ist im Grunde immer noch nur zufällige Vermutung, weil Sie nicht jedes Mal sehen könnten und 95% der Zeit, die Sie immer noch richtig sein werden. Daher ist Genauigkeit normalerweise kein guter Weg, um Klassifizierungsalgorithmen zu evaluieren. Aber wir können hier unten rechts sehen, ich habe immer noch die Genauigkeit des stochastischen Gradientenabstiegs gezeigt, sowie die logistische Regression, die nur die Anzahl der korrekten Vorhersagen ist, die in diesem Fall ist eigentlich nicht so schlimm, weil wir nur zwei Klassen haben. Aber wieder, Genauigkeit kann wirklich beginnen, Probleme zu verursachen , wenn Sie zu einer höheren Anzahl von Klassen gehen. Also, was sind ihre Möglichkeiten? - Sind sie da? Nun, eine andere Option ist die Suche nach Präzision. Präzision, die Sie betrachten oder Sie berechnen, indem Sie die Anzahl der richtigen Vorhersagen betrachten. Sind korrekte positive Vorhersagen, und Dividieren sie durch die Anzahl der richtigen positiven Vorhersagen, sowie falsche positive Vorhersagen. Das bedeutet also, dass eine wahre positive oder eine korrekte positive Vorhersage ist, wenn Sie sagen, dass diese oder diese Blume diese Art von Blume ist. Und wenn es nicht Tatsache ist, dass diese Art von Blume, dann ist das ein wirklich positives. Ein falsches Positiv ist, wenn Sie sagen, dass diese Blume diese Art von Blume ist, aber es ist eigentlich nicht diese Art von Blume. Wenn Sie sagen, Ja, das ist die Blume, die ich suche, aber es ist eigentlich nicht die Blume, als das, was Sie hier haben, ist eine falsche positive. Präzision ist wirklich gut zu verwenden, wenn Sie wissen wollen, wie zuverlässig meine Wahrheiten sind? Wenn ich sage, dass dies der Fall ist, dann ist es sehr wahrscheinlich, dass dies der Fall ist. Nun, der andere Typ, aber Sie können verwenden, oder ein anderer Typ, den Sie verwenden können, ist etwas namens Recall, wo Sie die Anzahl der wahren Positiven über die Summe der wahren Positiven und der falschen Negative betrachten . Das falsche Negativ ist also, wenn Sie sagen, dass dies in der Tat nicht diese Klasse ist, während es in Wirklichkeit diese Klasse ist. Also sagen Sie, das ist nicht diese Art von Blume, sondern eine Wirklichkeit, es ist diese Art von Blume. Nun erinnern Sie sich, ist gut zu verwenden, wenn Sie bewerten möchten, wie oft vermisse ich meine wahren Werte? Nun, was Sie auch etwas verwenden können, die als Verwirrungsmatrix bezeichnet wird. Die Verwirrungsmatrix tut, ist es zeigt Ihnen, wie oft eine Klasse als eine andere verwirrt wurde. Also in diesem Fall können wir rechts sehen, wir haben die beiden Tabellen für den SGD. Wir haben die Zeilen zeigen die wahren Werte und unsere Spalten zeigen die vorhergesagten Werte. Und so können wir 78 sehen, wo prognostiziert negativ und wir sind tatsächlich negativ. Während 20 zu tragen vorhergesagt positiv, aber wir sind eigentlich negativ. Also haben wir hier eine Verwirrung. Aber wir haben keine prognostizierten negativen Werte, die positiv waren. Und was Sie mit einer Verwirrungsmatrix betrachten, ist, wie oft wird eine Klasse mit einer anderen Klasse verwechselt? Jetzt kann dies sehr hilfreich sein, besonders wenn Sie Multi-Klasse machen. Aber natürlich erfordert es einige weitere Überprüfung, weil es nicht nur eine Nummer ist, es ist eine Matrix und C, die Sie hineingehen können und Sie können wirklich sehen, Okay, wo macht mein Algorithmus Fehler? Aber natürlich erfordert es mehr Arbeit, weil Sie hineingehen müssen und Sie sich die ganze Reihe von Zahlen ansehen müssen , anstatt nur eine Zahl zu haben, um die Leistung zu messen. Nun, dies sind nur einige der Tools, die Sie für die Auswertung verwenden können. Es gibt natürlich auch noch andere Werkzeuge, aber das sind die grundlegendsten, über die Sie wissen sollten. Und das sind auch diejenigen, die Ihnen einen Vorgeschmack und ein Verständnis dafür geben sollten , warum es nicht immer ideal ist , Genauigkeit zu verwenden und welche anderen Möglichkeiten Sie bei der Bewertung von Klassifizierungsalgorithmen herangehen können. 9. Regression: In diesem Video werden wir über Regressionsalgorithmen gehen. Also zuerst, was sind sie? Nun, Regressionsalgorithmen sind im Wesentlichen Algorithmen, die uns numerische Werte vorhersagen lassen. Also, wann willst du sie benutzen? Nun, ein wirklich schöner Fall, sie zu verwenden, wäre, wenn Sie fehlende Werte eingeben möchten. Wenn Sie beispielsweise ein Dataset haben, das etwas unvollständig ist, aber vorher vergleichbare Daten vorliegen. Und Sie können Ihre Algorithmen zu ihnen trainieren, fehlende Werte eingeben, so dass Sie diese Daten immer noch verwenden können, anstatt sie zu verwerfen. Ein weiterer Ort, den Sie es für ihn verwenden könnten, ist es sehr oft dafür verwendet, ist für die Prognose. Dies könnte also eine Zeitprognose sein oder dies könnte auch nur in verschiedenen Bereichen prognostiziert werden. Regressionsalgorithmen werden daher sehr häufig verwendet, wenn Sie einen Teil Ihrer Daten verwenden möchten und Sie Vorhersagen über einen anderen Teil machen möchten, auf dem Sie möglicherweise keine Daten haben. Jetzt können Sie auch Regressionsalgorithmen verwenden, wenn Sie verstehen möchten , wie sich Ihr System in verschiedenen Regimen verhält. Und was ich möchte, dass Sie in der Grafik auf der rechten Seite hier bemerken, ist, dass wir tatsächlich die exakt gleiche Kurve für diese Kurve sah linear. Wenn wir also zurück gehen, sehen wir, dass dies eine gerade Linie ist, die wir hier rechts haben. Und jetzt, wenn wir uns den Graphen weiter ausschauen, können wir sehen, dass dieser Pod eigentlich nicht mehr linear ist. Wir können sehen, dass es ein Polynom ist. Also, wie Kurven darin. Nun, diese Daten wurden offensichtlich von mir generiert. Das ist nicht extrem realistisch. Aber der Punkt, den ich hier machen möchte, ist, dass in einigen Regionen Daten tatsächlich linear aussehen können. Wenn wir also die Region zwischen 01 oder 0,51 vergrößern, was wir hier tun. Wir können tatsächlich sehen, dass eine lineare Linie oder eine Linie, eine lineare Linie, eine Linie. Eine ziemlich gute Arbeit, die Daten hier anzupassen, aber wenn wir verkleinern, ist das eigentlich nicht mehr der Fall. Eine gerade Linie wird also nicht mehr einen guten Job machen, dies zu modellieren. Und wenn wir also ein gutes Modell oder einen guten Algorithmus haben, dann können wir in verschiedene Regime gehen und hoffentlich können wir verstehen, wie sich die Daten in diesen verschiedenen Teilen verhalten. Auf diese Weise kann ein sehr gutes Modell uns helfen , etwas zu verstehen, das wir noch nicht untersuchen konnten. Aber natürlich sollten Sie sich darüber im Klaren sein, dass es manchmal oder oft, wenn Sie ein Modell trainieren, nur für den Datenbereich gültig ist, in dem Sie es erstellen , anstatt für den gesamten Datensatz. Obwohl Regressionsalgorithmen Ihnen bei der Vorhersage von numerischen Werten sehr mächtig sein können , möchten Sie sicherstellen, dass Sie sie in Ihrem entsprechenden Datenbereich verwenden. Und wenn Sie Daten erhalten, die vollständig außerhalb des Bereichs liegen, den Sie normalerweise in Betracht gezogen haben. Sie möchten neu bewerten, wie Ihr Algorithmus bei diesen Daten funktioniert. Denn wie wir aus dem Vergleich hier auf der rechten Seite sehen können, beginnen wir zuerst linear und dann gehen wir zu diesem Polynom. Wenn wir also Daten von sehr viel außerhalb des Bereichs eingehen, den wir vorher gewohnt sind, kann sich die Art und Weise ändern, wie sich unsere Daten in unserem System verhalten. In Ordnung, also werfen wir einen Blick auf einige der Algorithmen. Wir werden wieder das Iris-Dataset verwenden , das wir auch für den Klassifizierungsfall verwenden. Wenn du Regression machst, redest du normalerweise nur von beaufsichtigtem. Unbeaufsichtigt ist für Regressionsalgorithmen nicht besonders gut definiert. Und deshalb, wenn wir über Regression sprechen, wird es normalerweise ein beaufsichtigter Fall sein, in dem Sie Ihre Trainingsdaten haben und Sie auch geeignete Labels für eine geeignete Zielwerte haben, die Sie erreichen möchten. In Ordnung, also lassen Sie uns noch einmal diese Iris-Daten betrachten. Was wir hier auf der x-Achse haben, die Sie in der Grafik auf der linken Seite sehen können, ist die Länge des Kelchblattes. Und dann auf der Y-Achse haben wir die Pedallänge. Und was Sie aus dieser Grafik sehen können, ist diese beiden Merkmale etwas verwandt sind. Versuchen wir also, einige Regressionsalgorithmen zu verwenden , um zu sehen, ob wir einige der Werte vorhersagen können oder ob wir ein Modell haben können, das versucht, dieses Verhalten zu modellieren, das wir hier sehen. Jetzt gibt es verschiedene Möglichkeiten, wie wir Regression nähern können und es gibt sehr viele verschiedene Algorithmen. Die einfachste ist eine lineare Regression. Linear ist nur eine gerade Linie Polynom ist eine gekrümmte Linie. Das ist etwas von dem, was wir hier gesehen haben. Das wird also linear sein. Das wird ein Polynom sein. Und dann haben Sie auch Unterstützung Vektormaschinen, die Sie für die Regression verwenden können. Sie können auch die K-Nearest Neighbors verwenden. Regression. Neuronale Netzwerke werden natürlich sehr oft auch für Regression verwendet, und es sind auch noch viele andere überwachte Algorithmen, die Sie für Aggression verwenden können. Genau wie für die Klassifizierung haben wir und viele Algorithmen zur Auswahl, aus denen wir für die Regression verwenden können. Und oft kommt es nur darauf an, okay, was ist das Problem und was ist unser Datensatz und welches Modell ist am besten geeignet für diese Art von Daten zu verwenden. Lassen Sie uns also einen Blick auf die lineare Regression werfen. Was wir hier haben, ist ein lineares Regressionsmodell, das auf diesem Dataset trainiert wird. Und was ich benutzt habe, ist, als ob du One-Hot-Codierung verwendest. Denken Sie daran, dass wir darüber im Fall der Datenaufbereitung gesprochen haben, wo wir die drei verschiedenen Blumenarten ein-hot codieren. Und so schafft unser lineares Modell tatsächlich drei verschiedene Bestpassungen für jeden der einzelnen Blumenarten. Und wir können sehen, dass dies das Ergebnis ist. Und was Sie aus dem linearen Modell sehen können, ist, dass wir nach unten gehen können um die Länge des Kelchblatts zu senken und wir können geeignete PDL-Längen vorhersagen. Wir wissen nicht, ob dieser Wert korrekt wäre oder nicht, aber wir können zumindest versuchen, ihn vorherzusagen. Und wir können das Gleiche tun. Und wir können das für alle Flachwürmer tun, da wir One-Hot-Codierung verwendet haben. Und das, was unser lineares Modell tatsächlich gemacht wird, ist es in drei verschiedene unterteilt, also haben Sie drei verschiedene Blumen in diesem Fall, durch verschiedene lineare Modelle, dass es alle nur m verwenden würde und es würde überprüfen, welche Codierung Das ist es. Also, welche Blume es ist. Und würden Sie dann das entsprechende, wenn unser Modell verwenden, um Vorhersagen zu machen? Wir können das Gleiche auch mit einer K-nächst benachbarten Regression tun. Jetzt versucht der k-nächste Nachbar, anstatt was das lineare Modell tut, die beste lineare Linie zu finden , um durch die Daten zu gehen und der k-nächste Nachbar betrachtet es die umgebenden Nachbarn zu einem Datenpunkt. Vorhersage ist nur der Durchschnittswert aus den umgebenden Datenpunkten. Und so können wir sehen, dass, wenn wir eine niedrigere oder höhere Kelchlänge als unser KNN-Algorithmus nicht mehr wirklich viele großartige Vorhersagen liefert. So können wir sehen, wenn wir in die untere SQL-Länge gehen, Es ist im Grunde alles flach. Und im linearen Fall nimmt es jetzt ab, weil wir in diesem Fall keine Daten haben, wir wissen eigentlich nicht, welche richtig ist oder ob Blumen dieser Eigenschaften überhaupt existieren. Also, bis wir Daten dort haben, können wir nicht wirklich validieren, welche dieser Straßen genauer ist. Aber wir können sehen, dass das Verhalten dieser beiden sehr unterschiedlich. Und wir können auch sehen, dass es für den linearen Fall nicht wirklich nur eine gerade Linie ist. Während für den k-nächst benachbarten Fall, haben wir kleine Art von horizontalen Linien, die oben und unten springen, während wir über die verschiedenen SQL gehen. Und wieder hier haben wir drei verschiedene Modelle, die auch in lila, schwarz und grau für die orange, blau undrot gefärbten Blüten jeweils farblich codiert schwarz und grau für die orange, blau und sind. Und so können Sie sehen, dass wir kleine Regime haben, in denen diese Vorhersagen die gleichen wären. Und wir haben irgendwie, es sieht fast aus wie eine Treppe, die nicht vollständig verbunden ist, mit der wir Vorhersagen machen. So wie im Klassifikatorfall können wir sehen, dass sich verschiedene Algorithmen natürlich sehr unterschiedlich verhalten. Und so ist eine gute Möglichkeit, Ihre großartige Sache, natürlich zu tun, einfach zu sehen, okay, welche Art von Vorhersagen enttäuschen Algorithmus machen oder wie sieht mein Algorithmus tatsächlich aus? Wenn ja, ist die Visualisierung der Vorhersage, dass Ihr Algorithmus, in dem Raum für all diese verschiedenen SQL-Längen geschaffen wird, eine nette Möglichkeit ist , zu verstehen, was Ihr Algorithmus tatsächlich tut. Nun, das waren natürlich nur zwei Algorithmen. Also haben wir uns hier den linearen Fall angesehen. Wir sahen uns die K-nächsten Nachbarn an. Wieder, wie gesagt, gibt es sehr viele verschiedene Regressionsalgorithmen und jeder von ihnen hat einen anderen Ansatz. Und so wird auch die Art und Weise, wie die Vorhersagen aussehen werden, sehr unterschiedlich sein. Wie würden wir also diese verschiedenen Modelle bewerten? Nun, gut zu tun ist, nur auf den Fehler zu schauen. Ich werde y benutzen, um unsere Ziele hier zu bezeichnen, und ich werde y hat benutzen, um unsere Vorhersage zu bezeichnen. Und eine Möglichkeit, Fehler zu betrachten, ist nur durch Betrachten des absoluten Mittelfehlers. Also schauen Sie sich jede Vorhersage an und Sie sehen, wie weit die Vorhersage vom wahren Wert entfernt ist. Sie nehmen einen absoluten Wert, so dass die Zahlen nur positiv sind. Sie summieren sie und teilen sie durch die Anzahl der Datenpunkte. Und so erhalten Sie im Durchschnitt ein Maß, wie weit Ihre Vorhersage vom wahren Wert entfernt ist. Und damit wir auf der rechten Seite sehen können, haben wir zwei Modelle. Auf der linken Seite haben wir die lineare Regression oben links, auf meiner rechten Seite haben wir den k-nächsten Nachbarn. Und unten können wir sehen, dass die lineare Regression mit dem absoluten Mittelwert um etwa 0,2 ausgeschaltet ist. Das bedeutet im Durchschnitt, es ist um etwa 0,2 Zentimeter weg. Und die Vorhersage der Pedallänge, während der K-nächste Nachbar nur etwa 0,17 Zentimeter aus ist. Mit dieser Maßnahme sieht es so aus, als ob der k-nächste Nachbar funktioniert. Nun, es gibt tatsächlich auch eine andere Art, wie man Luft betrachten kann. Und dies ist oft ein bevorzugter, der den mittleren quadrierten Fehler und im Grunde die Ausgabe von maschinellem Lernen betrachtet, es wird oft auch als der root mean quadrierten Fehler bezeichnet oder das ist eine andere Art, sich darauf zu beziehen. Wir werden in einer Sekunde darüber reden. Der mittlere quadratische Fehler ist, anstatt Ihre Vorhersage zu nehmen und zu sehen, wie weit es vom Ziel entfernt ist und nur absolute Werte zu nehmen, möchten Sie das Quadrat. Und der Grund, warum Sie Quadrat, das ist, weil das bedeutet, dass Ausreißer oder Vorhersagen, die sehr weg sind, viel schwerer bestraft werden. Zum Beispiel, im absoluten mittleren Fehlerfall, wenn wir eine Vorhersage haben, die um 0,1 ausgeschaltet ist und eine andere, die um 0,5 ausgeschaltet ist. Diese werden im Wesentlichen gleich gewichtet. Während im mittleren quadrierten Fehlerfall der höhere Fehler einen viel größeren Einfluss auf unsere Bewertung hier haben wird. Und der Grund, warum der mittlere quadratische Fehler schön ist weil er uns nicht nur ein Maß dafür gibt, wie gut unser Algorithmus ist, sondern er stark bestraft wird, wenn die Vorhersagen sehr vom tatsächlichen Ziel entfernt sind. Und so können wir hier sehen, ob wir den mittleren quadrierten Fehler für die lineare Regression und die k nächsten Nachbarn betrachten . Auch hier hat die lineare Regression in diesem Fall tatsächlich auch einen höheren Mittelwert quadriert. Das bedeutet also aus dem absoluten Mittelwert Fehler, wir sehen nicht nur das Modell im Durchschnitt mehr, sondern aus dem mittleren quadrierten Fehlerfall sehen wir, dass auch Ausreißer nicht so reich sind oder die Extreme nicht so gut passen wie im k nächsten Nachbarfall. Nun, was ist dieser Wurzelmittel-Quadrat-Fehlerfall? Während der Wurzelmittelwert quadrierten Fehler nur die Quadratwurzel des mittleren quadrierten Fehlers nimmt . Nun, der Grund, warum Sie dies tun möchten, ist weil der mittlere quadratische Fehler uns Werte und Quadrat gibt. Also, was wir hier von dem mittleren quadratischen Fehler haben, ist, dass wir einen Unterschied von Zentimetern im Wesentlichen haben, was nicht, es macht nicht wirklich Sinn. Es ist nicht wirklich das, was wir suchen. So können wir die Quadratwurzel nehmen und jetzt können wir lesen, dass wir aus dem Wurzelmittel-Quadrat-Fehlerfall einen Fehler von etwa 0,2 Zentimetern haben, während wir für den k-nächsten Nachbarfall einen Fehler von etwa 0,2 Zentimetern haben. Zentimeter. also die Quadratwurzel nehmen, bringt oder Einheiten zurück zu dem, was wir tatsächlich messen, und ermöglicht es uns, einen physikalischen Wert zuzuweisen. Jetzt der Grund, dass Sie den root-mean-squared Fehler und die Machine-Learning-Fälle nicht wirklich verwenden . Da die Leistung die gleiche ist, nehmen Sie nur die Quadratwurzel am Ende. Und die Quadratwurzel ist nur eine zusätzliche Operation, die mehr Zeit in Anspruch nehmen wird. Und so können Sie einfach den mittleren quadratischen Fehler verwenden, denn wenn der mittlere quadratische Fehler größer ist, wird die Quadratwurzel dieses Wertes auch größer sein als mit welchem Wert Sie ihn vergleichen. also die Quadratwurzel nehmen, fügen Sie nichts zusätzliches hinzu, wenn Sie dies verwenden möchten, um Ihren Algorithmus zu bewerten. die Quadratwurzel nehmen, fügen Sie viel mehr hinzu, wenn Sie den Fehler aus menschlicher Sicht interpretieren möchten . Aber wenn Sie es in Ihrem Algorithmus verwenden, um den mittleren quadratischen Fehler zu trainieren, tut, ist, tut genau das Gleiche. Und Sie müssen nicht die zusätzlichen Kosten für die Berechnung der Quadratwurzel jedes Mal verwenden. 10. Optimierungstechniken: In dieser Vorlesung werden wir uns mit Optimierungstechniken für unsere Algorithmen beschäftigen. Vorher lassen Sie uns jedoch eine kurze Zusammenfassung dessen machen, was wir bisher getan haben. Zuerst haben wir uns für die Vorbereitung auf das Training auseinandergesetzt. So identifizieren Sie potenzielle gute Funktionen und gehen einfach nur über das Verständnis unserer Daten. Dann gingen wir näher auf die Vorbereitung unserer Daten mit Techniken wie Normalisierung, Skalierung und die Bedeutung der Probenahme. Und dann haben wir uns verschiedene Arten von Algorithmen angesehen, speziell für Regression und Klassifizierung. Aber wie lassen wir unsere Algorithmen schneller lernen? Also haben wir gerade darüber gesprochen, welche Algorithmen wir verwenden können? Was machen wir? Oder sogar der gesamte Data Science Flow , der im Grunde alles bis zur Algorithmuswahl ist. Wie gehen wir also über unsere Daten? Wie bereiten wir unsere Daten vor? Wie verstehen wir unsere Daten? Wie identifizieren wir gute Funktionen? Wie haben wir das gemacht? Wie erforschen wir all diese wichtigen Themen? Und dann sprachen wir über die Verwendung unseres Modells und wie wir unser Modell bewerten. Aber jetzt, wie lassen wir unseren Algorithmus schneller lernen? Denn manchmal, wenn Sie viele Daten verwenden, kann Ihr Algorithmus tatsächlich eine Weile dauern um zu trainieren und Sie müssen nur warten, bis er abgeschlossen ist. Und so natürlich, eine Sache, die Sie tun können, ist einfach mehr oder starke oder Computer zu verwenden. Aber es gibt auch andere Techniken, mit denen Sie versuchen können, Ihre Algorithmen schneller lernen zu lassen, damit sie besser und schneller werden. Und das werden wir uns jetzt ansehen. Also hier werden wir die verschiedenen Arten von Optimierern abdecken. Wir werden mit Gradienten Abstieg beginnen, was etwas, das wir auch vorher verwendet haben. Wir werden uns Momentum ansehen, dann nag, eeta grad und RMS Requisite und schließlich Atom sowie N Atom. Ok? Bevor wir jedoch darauf eingehen, möchte ich schnell einen anderen Begriff einführen, der die Lernrate nennt. Jetzt definiert die Lernrate, wie schnell unser Algorithmus lernt oder wie viel beeinflusst sein Algorithmus von den Fehlern, die er derzeit macht? Nun, Sie können intuitiv denken, in Ordnung, nun, ich möchte, dass mein Algorithmus so schnell wie möglich lernt, also wird dann so gut wie möglich. Lassen Sie uns nicht wirklich, wie es funktioniert. Schauen wir uns also die Art von zwei Extremen an. Und das ist normalerweise eines dieser Goldilock-Dinge, bei denen man nicht zu klein sein will. Denn wenn Sie zu klein sind, werden Sie im Wesentlichen sehr lange brauchen, um eine optimale Lösung oder ein Modell zu erreichen , das akzeptabel genug Arbeit leistet. Also, wenn Ihre Lernrate zu klein ist, wird es zu lange dauern. Aber wenn Ihre Lernrate zu groß ist, dann nehmen Sie möglicherweise Sprünge, die zu groß werden, und Sie erreichen möglicherweise nie eine optimale Lösung, weil Ihr Algorithmus überkorrigiert. Jetzt wird die Lernrate durch eta bezeichnet, das ist dieses Symbol unten unten, das im Grunde sieht aus wie ein seltsames N. Und so, wenn wir durch die nächsten Teile der Vorlesung gehen, wenn Sie das sehen, dass testet auf Ball oder das seltsame n, Das wird unsere Lernrate sein. Jetzt ist die Lernrate auch ein Hyperparameter Ihres Systems, den Sie einstellen können. Und natürlich möchten Sie diese optimale Lernrate erhalten, damit Sie nicht zu groß werden , dass Ihr Modell über korrigiert bin, aber auch nicht zu klein, dass Ihr Modell zu lange dauert, um die optimale Lösung zu erreichen. Und es hätte dasselbe mit schnelleren Schritten oder größeren Schritten tun können. In Ordnung, schauen wir uns den ersten Algorithmus an, der Gradientenabstieg genannt wird . Alles, was wir tun, ist, dass wir unsere Fehlerfunktion nehmen, eine Verlustfunktion oder unsere Kostenfunktion, was in diesem Fall zum Beispiel ist, was ich gezeichnet habe, ist der mittlere quadratische Fehler, worüber wir in der Regressions-Fall. Der mittlere quadratische Fehler ist also nur eine quadratische Gleichung, die hier nur dieses Quadrat ist. Und wir können sehen, dass der Gradient Abstieg tut, ist es nur unsere aktuellen Gewichte. Und es verschiebt unsere Gewichte im Grunde um die Lernrate und den Gradienten von wo immer wir uns gerade auf unserer Kostenfunktion befinden. Wenn wir also den Graphen auf der rechten Seite betrachten, wenn unser Fehler mehr in Richtung der linken Seite höher der Kurve ist, dann werden wir einen steileren Verlauf an diesem Punkt haben. Und so können wir mehr Fehler hinzufügen. Wenn wir näher am Minimum sind, was wir erreichen wollen, dann wird unser Gradienten kleiner sein. Und jetzt die Lernratenskala, die Sie im Wesentlichen daran denken können, diesen Gradienten zu skalieren. So können wir sehen, die Lernrate ändert sich grundsätzlich zwischen dem orangefarbenen oder dem violetten Pfeil auf dem einen Fall oder dem Block und dem blauen. So können wir eine Lernrate größer oder kleiner machen, und das wirkt sich im Grunde auf die Schrittgröße aus, die wir nehmen werden. Also alles, was wir mit Gradienten Abstieg tun, wie wir unsere Gewichte haben, einschließlich unserer Voreingenommenheit. So erinnern Sie sich an den Begriff Theta von früher, und wir betrachten nur unsere aktuellen Gewichte und wir aktualisieren sie basierend auf dem Fehler, basierend auf jeder Rate oder basierend auf jedem Gewicht, das von der Kostenfunktion stammt. Alles klar, das nächste, was wir tun können, ist die Momentum-Optimierung zu verwenden. Jetzt mit dem Momentum tut es im Grunde nimmt Gradient Abstieg, das ist, was wir uns gerade vorher angesehen haben, und es fügt ein wenig hinzu. Was Gradienten Abstieg tut, ist jeder einzelne Schritt, den wir berechnen den Gradienten und dann passen wir unsere Gewichte entsprechend an. Wenn wir also sehr hoch oben sind, werden die Luftkurve oder Steigungen steiler sein. Und wir werden uns mehr und mehr anpassen. Und je näher wir an die, zu diesem Sprung ganz unten, können wir sehen, dass unser Pfeil ein wenig kleiner und kleiner. Und so werden wir umso weniger anpassen. Was also der Impuls tut, ist, dass er im Grunde die vorherigen Gradienten verfolgt. Und damit wir hier sehen können, ist die Dynamik irgendwie das, was ich in Grün bemerkt habe. Und wenn wir auf der linken Seite beginnen, rollen wir den Hügel hinunter. Und unser Momentum zeigt sich dort in Grün. Und dann nehmen wir auch den Gradienten am lokalen Punkt und ändern unsere Dynamik entsprechend. Und dann aktualisieren wir unsere Gewichte basierend auf der neuen Dynamik und Wirkung, die dies hat, ist, dass wir auf der linken Seite sehen können, wir werden anfangen, den Hügel viel schneller hinunter zu rollen , im Wesentlichen, weil wir an Dynamik gewinnen werden. Aber wenn wir den Boden erreichen, können wir sehen, dass zum Beispiel rechts der Schwung immer noch nach oben zeigt. Wir werden also ein wenig weiter am Hügel vorbeirollen, bevor wir dann etwas abbremsen und wieder runter gehen. Also für den Gradienten Abstieg waren im Grunde, wenn wir auf der linken Seite sind, rollen wir irgendwie den Hügel hinunter und wir verlangsamen uns, als wir den Boden erreichten. Während man sich mit Schwung eher vorstellen kann, als hätten wir eine Schüssel und würden einen Ball auf die Spitze der Schüssel legen und ihn einfach runterlaufen lassen. Und selbst wenn der Ball die Art von niedrigem Punkt erreicht, hat er immer noch eine gewisse Dynamik, die es auf der anderen Seite der Schüssel tragen wird, bevor er verlangsamt und dann kommt er zurück und es springt irgendwie herum ein wenig, bis es eine Organisation erreicht, bleibt in diesem unteren Teil gesetzt. Und so funktioniert ein Impuls als Optimierer auf eine sehr ähnliche Weise. Die nächste Art von Optimizer heißt Nesterov beschleunigte Gradienten oder Knack kurz. Und es braucht im Grunde nur Schwung. Aber anstatt die Gradienten Apps, die aktuellen Gewichte zu betrachten , betrachtet es den Verlauf, die aktuellen Gewichte plus unsere Dynamik. So können wir sehen, dass unser aktueller Schritt die jetzt transparenteren Pfeile sein würde. Und unser Schritt bei unseren aktuellen Gewichten plus dem Impuls wäre dann der undurchsichtigere Pfeil, also die farbigen. Und eine schöne Sache daran ist, dass unser Algorithmus tatsächlich der Optimierer ein wenig in die Zukunft schaut und Anführungszeichen um den nächsten Schritt. Und so wird es nicht so viel beschleunigen, wie wir auf der linken Seite sehen können. Wir werden eigentlich nicht so einen großen Schub bekommen. Und wir werden auch mehr verlangsamen, wenn wir den optimalen Punkt überschritten haben, wie wir auf der rechten Seite sehen können, wo wir bereits einen größeren Kick zurück haben. Was also klopft, ist, anstatt die Gradienten auf die aktuellen Gewichte zu schauen und zu verwenden, es betrachtet die Gradienten an den aktuellen Gewichten plus dem Impuls und passt dann den Impuls entsprechend an und aktualisieren Sie unsere Gewichte basierend auf dem Momentum. Ordnung. Der nächste Typ wird also 80 Grad und RMS Requisite sein. Und diese sind sehr verwandt, weshalb ich sie in die gleiche Kategorie setze. Und im Wesentlichen alles, was wir hier tun, ist, dass wir ähnlich dem Momentum vor einem, einem anderen Symbol, das wir aktualisieren und alles, was wir tun, ist, wir sind, wir haben unseren aktuellen Startwert und wir ändern , die auf dem Farbverlauf in jede einzelne Richtung basiert. Und so skalieren wir es irgendwie nach meinen Farbverläufen, wie wir sehen können. Also nehmen wir den Gradienten jeder Wellen und multiplizieren ihn von selbst. Das wird hier unser S-Wert sein , der für jedes einzelne Gewicht definiert wird. Und dann aktualisieren wir unsere tatsächlichen Gewichte und Verzerrungen, indem den Farbverlauf subtrahieren und jeden Wert durch diesen vordefinierten Wert dividieren. Also, was wir hier tun, ist, dass wir tatsächlich die Wirkung größerer Gradienten reduzieren. Und so werden wir nicht in die falsche Richtung gehen, aber wir werden im Wesentlichen schneller zu diesem Optimum geführt werden. Nun, das seltsame E unten, das nennt man Epsilon, und das ist nur eine sehr kleine Zahl. Und Sie haben das, damit Sie nicht durch 0 dividieren. Aber im Wesentlichen, was es tut, ist, dass es alle Gradienten benötigt und sie basierend auf ihrer Größe skaliert. Und so geht Ihr Algorithmus nicht wirklich in Ron-Richtungen, aber er wird schneller in die richtige Richtung gehen. Rms Requisite ist fast das Gleiche. Alles, was wir tun, ist, dass wir einen Skalierungsbegriff hinzufügen, das ist dieses Gamma hier. Ähm, und so verwerfen wir irgendwie einige der früheren Teile und wir können die Gewichte, die Ströme sind, die Wächter haben, sowie die Erinnerung an die vorherigen Werte anpassen . So können wir sehen, dass eeta grad und RMS prop sehr ähnlich sind und sie das gleiche Ziel haben, wodurch Ihr Algorithmus nicht in die falschen Richtungen geht. Aber das haben sie ein bisschen anders erreicht. Enorme Problem ist in der Regel besser als 80 Grad, nur weil es nicht so viel von dem alten erinnert und schneller vergisst und es berücksichtigt mehr die aktuellen Werte. Aber dieses Gamma ist natürlich auch etwas, das man einstellen kann. Das ist also ein weiterer Hyperparameter. Alles klar, endlich haben wir Adam und ein Atom. Nun, was diese tun, und Sie werden wahrscheinlich viele dieser Teile erkennen. Also haben wir das P, das im Wesentlichen ein P für Schwung ist. Wir haben das S, das ist das S von Ada Garage oder RMS Requisite in diesem Fall. Und was wir tun, ist, dass wir unser P und R S kombinieren, und wir aktualisieren grundsätzlich basierend auf diesen beiden Werten. Und es gibt ein bisschen wie eine Skalierung vor sich. Also teilen wir unsere p durch 1 minus Gamma 1 und unser S durch eins minus gamma2. Und im Wesentlichen tun wir dies nur, damit wir schneller einen optimalen Wert und optimale Werte von P und S erreichen. Aber die Idee dieses Adam-Algorithmus ist, dass es Dynamik kombiniert und es kombiniert, was für RMS-Prop verwendet, und es funktioniert ziemlich gut. Und dann haben wir auch ein Atom, das im Grunde nimmt das Atom und es fügt den Nesterov hinzu. Anstatt also die Steigungen und den aktuellen Ort zu betrachten, werden die Steigungen an der nächsten Stelle betrachtet, nachdem die Dynamik in Betracht gezogen wurde. Und im Grunde tut das das gleiche, was NAG ist zu Momentum und Atom ist zwei Atom. Das sind also alle Arten der beliebten Optimierer. Wenn du gehen willst und einfach einen auswählen willst. Die Standardeinstellung, die normalerweise verwendet wird, ist Gradientenabstieg, aber es ist keineswegs der optimale. Wenn Sie nur einen zufälligen Optimierer wählen, ist es normalerweise gut, mit dem Atom oder dem N Atom zu gehen. Diese funktionieren sehr, sehr gut. Und so, wissen Sie, wenn Sie nicht wirklich sicher sind, sollten Sie wahrscheinlich mit diesen gehen, aber Sie sollten sich bewusst sein, dass Ottomane ein Atom in der Regel orange, die Standardeinstellung dafür gehen will. Aber Sie können sehen, dass jeder dieser Optimierer, die sich anders verhalten. Und so, wissen Sie, gibt es Richtlinien, die im Allgemeinen besser sind. Aber das kann natürlich auch von der Situation abhängen. Und wenn Sie sich nicht sicher sind, kann es sich lohnen mit etwa zwei oder drei von ihnen zu experimentieren. Und dann zu sehen, welche Art von optimiertem es tatsächlich am besten ist, um Ihren Algorithmus zu einem der schnellsten zu machen. Und dann gehen Sie mit dem den Rest des Weges durch. So dass, wenn Sie Ihr Modell verbessern, es tatsächlich schneller lernt, als es sonst würde. In Ordnung, und damit haben wir das Ende des Chors erreicht. Und ich wollte Ihnen allen danken, dass Sie sich mir angeschlossen haben. Ich hoffe, du hast viel gelernt. Ich hoffe, Sie haben den Kurs genossen, und ich hoffe, Sie fühlen sich wohl, einige Gespräche über maschinelles Lernen zu führen. Nun haben Sie vielleicht bemerkt, dass es während dieses Kurses eine Menge Data Science Arbeit gibt, die darin eingeht, ein maschinelles Lernen oder die Spezialisierung des maschinellen Lernens. Es basiert auf wirklich soliden Data Science-Fähigkeiten. Also, wenn Sie daran interessiert sind, sich auf maschinelles Lernen zu spezialisieren oder wenn Sie daran interessiert sind, Data Scientist zu werden. Ich habe auch einige tolle Inhalte auf meiner Website Codierung mit max.com speziell entwickelt , um Sie von absolut keiner Erfahrung zu Data Scientist zu bekommen. Also, wenn du daran interessiert bist oder wenn du meine Tipps hören willst, wie ich angefangen habe, kannst du es auch mal beim Codieren mit max.com überprüfen. Und ja, nochmals vielen Dank, dass Sie sich mir angeschlossen und ich hoffe, Sie in einem meiner anderen Kurse zu sehen.