Transkripte
1. Einführung: Hi. Willkommen bei Data Science und Machine Learning mit Python. Ich bin dein Instruktor. Frank Kane und ich verbrachten über neun Jahre bei amazon dot com und imdb dot com. Entwicklung und Verwaltung einiger ihrer bekanntesten Funktionen, wie Empfohlen für Sie und Menschen, die auch gekauft und Top-Seller und
Filmempfehlungen und I. M. D B. M.
D B. die Anwendung von Data Mining in Machine Learning-Techniken auf reale Datensätze erforderlich. Und darum geht es in diesem Kurs. Als Datenwissenschaftler in der Tech-Branche ist eine der lohnendsten Karrieren auf dem
Planeten, die ich heute absolvierte und aktuelle Stellenbeschreibungen für Data Scientist Rollen in
Tech-Unternehmen studierte , und ich destille diese Anforderungen in die -Themen, die Sie in diesem Kurs sehen. Dieser Kurs ist wirklich umfassend. Wir beginnen mit einem Crashkurs in Python und machen eine Überprüfung einige grundlegende Statistiken und Wahrscheinlichkeit. Aber dann werden wir direkt in über 60 Themen im Data Mining in Machine Learning eintauchen , die Dinge wie basiertes Bier beinhaltet. Ich gruppiere Entscheidungsbäume, Regressionsanalyse, experimentelles Design. Schauen Sie sich ihn alle an und einige dieser Themen sind wirklich lustig. Wir werden ein tatsächliches Film-Empfehlungssystem mit tatsächlichen
Benutzerfilm-Bewertungsdatenentwickeln Benutzerfilm-Bewertungsdaten Wir werden eine Suchmaschine erstellen, die tatsächlich für Wikipedia-Daten funktioniert. Wir werden einen Spam-Klassifikator erstellen, der Spam- und Nicht-Spam-E-Mails in
Ihrem E-Mail-Konto korrekt klassifizieren kann . Und wir haben auch einen ganzen Abschnitt über die Skalierung dieser Arbeit auf einen Cluster, der
mit Apache Spark auf Big Data läuft . Wenn Sie ein Softwareentwickler oder Programmierer sind, der in eine Karriere in Data
Science umsteigen möchte , werden Sie in
diesem Kurs die heißesten Fähigkeiten vermitteln, ohne die mathematische Notation und Vorwand, die mit diesen Themen einhergeht. Wir werden diese Konzepte nur in einfachem Englisch erklären und Ihnen einen Python-Code zeigen tatsächlich funktioniert, mit dem Sie eintauchen und herumlaufen können, um diese Konzepte nach
Hause zu versinken . Und wenn Sie als Datenanalyst in der Finanzbranche arbeiten, kann
dieser Kurs Ihnen auch beibringen, den Übergang in die Tech-Branche zu machen. Alles, was Sie brauchen, ist einige frühere Erfahrung in der Programmierung oder Skripterstellung, und Sie sollten gut zu gehen sein. Das allgemeine Format dieses Kurses ist, dass ich mit jedem Konzept beginnen werde, das es in einer Reihe
von Folien und grafischen Beispielen erklärt , und ich werde es in einfachem Englisch so weit wie möglich machen. Ich werde Ihnen einige der Notation und Phantasie-Terminologie vorstellen, die Datenwissenschaftler Ihnen
mögen, damit Sie dieselbe Sprache sprechen können. Aber die Konzepte selbst waren danach in der Regel ziemlich einfach. Alle drei in einen tatsächlichen Python-Code, der tatsächlich funktioniert,
mit dem wir laufen und herumlaufen können . Und ich werde Ihnen zeigen, wie Sie diese Ideen tatsächlich auf tatsächliche Daten anwenden, und diese werden als I Python Notebookdateien präsentiert werden. Und das ist ein Format, in dem ich Code und Notizen um den Code mischen kann, die erklären, was in den Konzepten vor sich geht. So können Sie diese Notizbuchdateien nach diesem
Kurs mitnehmen und das als praktische, schnelle Referenz später in Ihrer Karriere und am Ende jedes Konzepts werde
ich Sie ermutigen, tatsächlich in diesen Python-Code einzutauchen,einige Modifikationen vorzunehmen, sich
damitzu einige Modifikationen vorzunehmen, sich
damit verwirren und einfach mehr Vertrautheit zu gewinnen, indem Sie Hände auf und tatsächlich einige Modifikationen und sehen die Auswirkungen, die sie haben. Also
lasst uns eintauchen und loslegen
2. Windows-Anweisungen zum Einrichten: Also lasst uns euch alle für diesen Kurs einzurichten. Ziemlich einfach zu machen. Wir werden mit der Installation einer Python Entwicklungsumgebung namens Anaconda beginnen. Wenn du es noch nicht hast. Sobald das installiert ist, installieren wir nur ein paar Pakete, die wir brauchen, die nicht mitkommen. Pi dot plus und TensorFlow, die wir später für neuronale Netzwerke verwenden werden. Und dann laden wir alle Kursmaterialien von unserer Website herunter und lassen es installieren und sicherstellen, dass alles funktioniert. Lassen Sie uns also beginnen, indem wir zu anaconda.com gehen. Dies wird die Python Umgebung sein, die wir für diesen Kurs verwenden. Es ist bereits für Data Science und Data Analytics gemacht, so dass es uns eine Menge Ärger und Einrichten der Dinge erspart. Gehen Sie einfach auf die große, freundliche Schaltfläche „Erste Schritte“ oder wie immer Sie zum Downloadbereich navigieren müssen. Wir werden die Anaconda-Installationsprogramme herunterladen. Und wir wollen, für mich die 64-Bit-Windows-Version. Wählen Sie offensichtlich, welche Version für
welches Betriebssystem Sie verwenden, sinnvoll ist. Aber für mich ist das Windows 64-Bit. Also warten wir, bis das heruntergeladen wird. Sollte ziemlich schnell runterkommen. Und sobald das unten ist, öffnen
wir einfach das Installationsprogramm und führen es aus. In Ordnung, also nichts Besonderes hier, nur Ihr Standard-Windows-Installer. Ich werde Next drücken, um anzufangen. Stimmen Sie den Lizenzbedingungen zu. Installieren Sie es nur für mich. Und du willst sichergehen, dass du das irgendwo installierst. Es hat viel Platz auf der Festplatte für mich. Das C-Laufwerk ist ein wenig eng, weil es eine kleine SSD ist. Also werde ich das tatsächlich in mein E Drive ändern. Tun Sie einfach, was für
Ihren Assistenten sinnvoll ist, um sicherzustellen, dass Sie genug Platz dafür haben. Und wir werden Next drücken, um fortzufahren. Diese Standardoptionen sind in Ordnung. Und jetzt warten wir nur auf die Installation und das wird ein paar Minuten dauern. Es gibt eine Menge Dinge zu installieren, also werde ich pausieren und zurückkommen, wenn das fertig ist. In Ordnung, ein paar Minuten später war das zu Ende. Also werde ich Weiter drücken, um mit dem Installer fortzufahren. Und wir sagen einfach nochmal „Weiter“. Und ich werde diese Optionen deaktivieren. Ich brauche nicht wirklich ein Tutorial zu sehen. Und da haben wir es. Jetzt, da Anaconda installiert wurde, müssen
wir nur ein paar zusätzliche Pakete darin installieren. Um in unsere neue Anaconda-Umgebung zu gelangen, gehen Sie zu Ihrem Startmenü und suchen Sie dort nach dem Anaconda drei Ordner. Und von dort wählen Sie Anaconda Prompt. Und Sie sollten ein kleines Befehlsterminal wie dieses sehen. Und von hier aus werden wir nur in Conda installieren pi dot plus eingeben. Und das wird nur ein Paket installieren. Lassen Sie uns Entscheidungsbäume später im Kurs visualisieren. Es wird einen Moment dauern, um herauszufinden, wie das geht. Und wenn Sie die Aufforderung bekommen, zu sagen, warum Enter und lassen Sie es tun seine Sache. Alles klar, sehr gut. Als nächstes müssen wir das TensorFlow-Paket installieren. Das ist, was wir für Deep Learning später
im Kurs und neuronale Netzwerke und all das lustige Zeug verwenden werden. Normalerweise würden Sie sagen, Conda installieren TensorFlow, um dies zu tun, aber es gibt einen Fehler damit gerade jetzt unter Windows. Stattdessen werden wir sagen, pip installieren TensorFlow. Und das sollte funktionieren. Wieder, lass es einfach sein Ding machen. Bündel von Abhängigkeiten muss es zuerst bekommen, sollte aber nicht zu lange dauern. Alles klar, jetzt haben wir auch TensorFlow installiert. Lasst uns dieses Fenster verlassen. Nun, wir werden etwas später darauf zurückkommen. Aber gehen wir zurück zu unserem Webbrowser und laden Sie das Kursmaterial als nächstes herunter. Dafür werden Sie auf den Kopf über den Media Punkt JSON, Hund Dash, softer.com Schrägstrich Maschine Dash lernen Punkt HTML. Achten Sie auf die Striche und die Kapitalisierung in allen Angelegenheiten. Und wenn Sie hier sind, finden Sie einen netten, freundlichen Link für die Kursmaterialien. Gehen Sie einfach voran und klicken Sie darauf. Und unten bei CMS. Sie hier sind, wenn Sie eine Kopie der Folien wollen, finden
Sie diese auch hier. Sobald das heruntergeladen wurde, mach weiter und öffne das. Und lasst uns die Kursmaterialien dort erweitern. Klicken Sie mit der rechten Maustaste, und alle Und was hier drin ist, ist ein Haufen von dem, was wir ein Jupyter Notebook Akten nennen. Und dies sind Möglichkeiten, Python Code interaktiv in einem Webbrowser auszuführen. So ziemlich jeder Vortrag in diesem Kurs wird mit einem
praktischen iPython Notebook begleitet , mit dem Sie spielen und experimentieren
können. Und das ist es, was hier drin ist. Auch hier ist eine Menge experimenteller Art von Testdaten, die Sie verwenden können,
um diese Modelle tatsächlich zu
trainieren und zu spielen und tatsächlich Vorhersagen basierend auf realen Daten zu machen. Und das ist, was das meiste, was gerade dekomprimiert ist, dass etwas Zeit gibt, um die Dekomprimierung zu beenden. Alles klar, es ist fertig mit dem Entpacken. Gehen wir also weiter und finden Sie den Ordner, in den es erweitert wurde. Es sollte jetzt einen ML Kursordner da sein, und lassen Sie uns das öffnen. Und innerhalb des ML Kursordners befindet sich ein weiterer MLK Kursordner. Das ist diejenige, die wir eigentlich wollen. Gehen wir also voran und wählen Sie diesen ML Kursordner innerhalb des anderen. Und ich werde Control X drücken, um das zu schneiden. Und jetzt wollen wir das an einen Ort setzen, der für uns
leicht zu merken und einfach zu tippen ist. Also werde ich das auf die Wurzel meines C-Laufwerks legen. Ich werde einfach Control V drücken, um es in mein C-Laufwerk hier einzufügen. Was ist das für eine Kopie? Und der Grund, warum ich es hier setze, ist, weil wir den Pfad eingeben
müssen, in dem es sich befindet. Das wird in diesem Fall C Doppelpunkt Backslash ML natürlich sein. Alles klar, jetzt haben wir einen CML-Kursordner, und darin sind die eigentlichen Kursmaterialien selbst. Sie können alle Daten dort sowie alle IPython Notebooks sehen. Dafür steht i, p, y und p. Es nennt sich heutzutage ein Jupyter-Notizbuch. Also lasst uns voran gehen und versuchen, eins und sehen, ob es tatsächlich funktioniert. Ja, also geh zurück zu unserer Anaconda Prompt hier. Und wir sind fertig mit all dem Zeug im Hintergrund. Also, was Sie tun müssen,
denken Sie daran, diese Jungs zu üben. Das wird etwas, das Sie mit fast jeder Vorlesung tun müssen. Um die Notizbuchdatei für eine bestimmte Vorlesung zu öffnen, müssen Sie
zunächst eine Anaconda Prompt öffnen. Und wieder, das ist unter dem Startmenü, unter dem Anaconda-Menü. Und dann brauche ich Sie, wo immer Sie diese Materialien installieren. Also werde ich cd C Doppelpunkt Backslash ML natürlich sagen, weil ich dort die Kursmaterialien installiert habe. Es ist wichtig, dass Sie dies
im richtigen Verzeichnis starten , sonst werden diese Notizbücher nicht angezeigt. Aber sobald wir in dem Verzeichnis sind, in dem wir diese Materialien tatsächlich installieren, kann
ich Jupiter-Notizbuch eingeben. Und das wird den Web-Browser starten , der mir erlaubt, diese Notebooks tatsächlich laufen zu lassen. Also noch einmal, denken Sie daran, für jedes Mal, wenn Sie ein Jupiter-Notizbuch öffnen müssen, öffnen Sie eine Anaconda-Prompt-CD in das Verzeichnis, in dem Sie die Kursmaterialien installieren, und geben Sie dann Jupiter-Notizbuch ein. Vielleicht wollen Sie das hier aufschreiben. Das wirst du in Zukunft wieder viel tun müssen. Und was das tut, ist tatsächlich bringen Sie Ihren Web-Browser. Und das bringt uns auf die Jupiter Hauptseite hier können wir tatsächlich die verschiedenen Notebooks auswählen, die ausgeführt werden sollen. Mal sehen, ob es tatsächlich funktioniert. Scrollen wir ein bisschen nach unten. Ausreißer ist ein lustiger. Klicken wir also auf Ausreißer Punkt p-y, a und B.
Und eine kurze Einführung in Jupiter-Notebooks hier, können
Sie sehen, dass es im Grunde eine Möglichkeit ist, Python Code inline auszuführen. Wir können die Ergebnisse in Ihrem Browser sehen und ausführen. Und es ist nicht nur eine vorgefertigte Webseite. Sie können hier tatsächlich Code ausführen. Also sieh dir das an. Ich kann hier tatsächlich auf einen dieser Blöcke klicken und die Schaltfläche Ausführen drücken und
diesen Code tatsächlich ausführen und ein neues Diagramm als Antwort darauf generieren. Dies ist also eine gute Möglichkeit,
interaktiv mit etwas Python Code zu experimentieren und mit neuen Algorithmen herumzuspielen. Und genau das werden wir in diesem Kurs machen. Also lassen Sie uns wirklich schnell durch
dieses Beispiel hier gehen , nur damit Sie sehen können, was irgendwie auf einem hohen Niveau vor sich geht, wir werden später ausführlicher darüber sprechen. Aber im Grunde, was hier los ist, ist, dass wir eine Einkommensverteilung simulieren. Also haben wir einen Haufen zufälliger Leute simuliert,
die Einkommen von siebenundzwanzigtausend Dollar plus oder minus 15.000 Dollar pro Jahr haben . Und dann, um die Dinge zu vermasseln, werfen
wir Jeff Bezos, der eine Milliarde Dollar auf seinen Namen hat, wahrscheinlich mehr als das an diesem Punkt, oder? Und Sie können sehen, dass das unsere Verteilung hier verzerrt. Also hätten wir gerne das wie ein kleiner dünner Punkt hier, der all die normalen Leute repräsentiert. Und dann haben wir Jeff Bezos hier draußen, um unsere Daten zu vermasseln. Worüber wir in dieser speziellen Übung sprechen, ist, wie wir Ausreißer wie
Jeff Bezos identifizieren und sie aus
unseren Daten entfernen können, damit wir tatsächlich eine sinnvollere Verteilung erhalten können. Und das ist es, was hier passiert. Und Sie können tatsächlich, es ist eine Abkürzung, um diese ganze Sache auf einmal auszuführen. Sie können sehen, gehen Sie zum Kernel-Menü hier und sagen Neustart und starten Sie alle. Und das wird tatsächlich automatisch alle diese Zellen erneut ausführen. Und Sie können sehen, dass es tatsächlich funktioniert. Also hoffentlich, wenn du das tust, siehst
du ein paar hübsche Grafiken. Und wenn ja, bedeutet das, dass Sie alles richtig eingerichtet haben. Herzlichen Glückwunsch. Erinnern Sie sich noch einmal, wie Sie hierher kommen, Jungs schreiben es auf. Sie öffnen eine Anaconda-Prompt-CD in
dem Verzeichnis, in dem Sie die Kursmaterialien installieren,
und geben Sie dann das Jupiter-Notizbuch ein und wählen Sie das NOPLAT aus, das Sie öffnen möchten. In Ordnung, mit dem unter unserem Gürtel, lassen Sie uns weitermachen und anfangen, ein paar Sachen zu lernen.
3. Anweisungen zum Einrichten von Setup: Alles klar, so schnell, lass mich dich durch die Einrichtung führen. Ich zeige dir, wie man das alles aus erster Hand macht. Aber für die Zusammenfassung, wir werden Anaconda installieren
, eine Python Umgebung und Notwendigkeit für wissenschaftliches Computing und Datenwissenschaft und maschinelles Lernen. Sobald wir dieses Setup haben, installieren
wir ein Paket namens pi dot plus, das wir später im Kurs zur Visualisierung von Entscheidungsbäumen verwenden werden. Und wird auch TensorFlow installieren, die wir verwenden werden, um neuronale Netzwerke und
echte KI und Deep Learning später im Kurs zu bauen . Wir laden hier auch die Kursmaterialien von meiner Website herunter und öffnen eines
der Notizbücher aus diesem Material und sehen, ob es funktioniert. Also lasst uns eintauchen. Das erste, was wir brauchen, ist eine Python Entwicklungsumgebung. Und in diesem Kurs verwenden wir Anaconda für diesen Zweck. Es kommt mit den meisten Paketen, die wir für diesen Kurs benötigen, vorinstalliert. Es wird dir also eine Menge Ärger ersparen. Selbst wenn Sie eine vorhandene Python Entwicklungsumgebung haben, empfehle
ich, Anaconda auch auf der Seite zu installieren. Um es zu bekommen, gehen Sie einfach auf anaconda.com. Und Sie möchten zum Produktmenü gehen und zum individuellen Zusatz gehen. Suchen Sie im Grunde nach der Open-Source-Version von Anaconda, wo immer sie es auf der Website verstecken könnten. Und von dort werden wir auf
den großen freundlichen Download-Button klicken und das Mac OS-Grafik-Installationsprogramm
auswählen und darauf warten, dass es heruntergeladen wird. Alles klar, das ist abgeschlossen. Gehen wir weiter und öffnen Sie den Installer. Da ist es wenig, doppelklicken Sie einfach darauf, um es zu starten. Und wir werden auf „Weiter“ klicken. Fahren Sie fort. Lesen Sie die Lizenzvereinbarung. Fahren Sie fort. Und stimmen Sie zu. In Ordnung. Wir gehen einfach die Standardwerte hier durch. Wir installieren nur für mich. Und Sie haben nicht viel Speicherplatz gegessen, denn dieser Kerl ist ein Zwei-Punkt-13 Gigabyte zu starten, und wir werden mehr Sachen darüber zu installieren. Stellen Sie also sicher, dass Sie genügend Platz für diese Installation haben. Und das wird eine Weile dauern. Es gibt ein Gesetz für die Installation, also kommen wir zurück, wenn es fertig ist. Alles klar, hier fast fertig. Wir werden hier „Weiter“ drücken, um die Dinge zu beenden und zu schließen. Und ja, wir sind fertig mit dem Installer, wir können das verwerfen. Lasst uns jetzt ein neues Terminal eröffnen. Und wenn Sie bereits eine geöffnet hatten, benötigen
Sie einen geschlossenen Satz und öffnen Sie ihn erneut, um
die neuen Umgebungsvariablen, die Anaconda installiert hat, aufzunehmen . Wenn Sie also sicher sind, dass Sie hier ein neues Terminal geöffnet haben, können
wir einfach Conda install pi dot plus eingeben, genau so. Und das wird das Pi Dot Plus-Paket installieren, das wir später
im Kurs benötigen werden, um Entscheidungsbäume zu visualisieren. Also lass es einfach los und mach sein Ding hier für ein bisschen. Warum fortfahren? Alles klar, das andere, was wir brauchen, ist TensorFlow, und das ist genauso einfach zu installieren, Conda, TensorFlow zu installieren, genau so. Und das ist ein Paket, das wir brauchen, um tiefe neuronale Netzwerke zu schaffen, was später im Kurs viel Spaß machen wird. Dies wird eine größere Umgebung sein. Warum fortzufahren? Und das geht los. Cool. Also haben wir Anaconda komplett
für den gesamten Kurs an dieser Stelle eingerichtet , das war ziemlich einfach. Das nächste, was wir tun müssen, ist das Kursmaterial zu bekommen. Also gehen wir zurück zu unserem Browser und gehen Sie zu Medien Dotson Hunde, Bindestrich, soft.com Schrägstrich Maschine dash lernen Punkt HTML. Achten Sie auf Groß-/Kleinschreibung Rechtschreibung, wo sich die Bindestriche befinden, alles zählt. Sie sollten eine Seite sehen, die so aussieht. Und Sie sehen hier einen großen, freundlichen Link für die Kursmaterialien. Gehen Sie weiter und klicken Sie darauf, um es herunterzuladen. Und auch hier sehen Sie einen Link zu den Kursfolien, wenn Sie eine Kopie davon wünschen. Alles klar, jetzt, da die Kursmaterialien heruntergeladen wurden, gehen
wir weiter und öffnen, dass man getan hat, gerade einen schnellen Virenscan durchführen sollte. In Ordnung, sieht so aus, als wären unsere Kursmaterialien da und es hat es auch für uns dekomprimiert. Das ist cool. Gehen wir zurück zu unserem Terminal und sehen, ob wir diese Materialien tatsächlich verwenden können. Jetzt müssen wir wissen, wo sie sind. Um diese Notizbuchdateien, die sich innerhalb der Kursmaterialien befinden, tatsächlich zu starten, müssen
wir in der Lage sein, zuerst zu ihnen zu navigieren. Also sind wir gerade in unserem Home-Verzeichnis. Lasst uns in Downloads einladen. Und das sollte dort sein, wo das ML Kursverzeichnis lebt. Da ist es. Also, wenn du das woanders verschieben willst, kannst du das. Es ist wichtig, dass Sie wissen, wie Sie zu diesem Ort kommen, okay. Denn was hier drin ist, ist ein Haufen von dem, was wir Jupiter Notebook Akten nennen. Dies sind interaktive Möglichkeiten, tatsächlich mit
Python Code zu laufen und zu experimentieren , die es uns ermöglichen, mit allen Algorithmen in diesem Kurs herumzuspielen. Um diese zu starten, müssen
wir zuerst in dieses Verzeichnis navigieren. Also muss ich den Befehl cd verwenden, um dorthin zu navigieren, wo das ist. Also wieder, ich bin unter Benutzern Frank Downloads ML Kurs für Sie, die in Ihrem eigenen Benutzerverzeichnis höchstwahrscheinlich sein wird. Und Sie müssen nur in der Lage sein, in das einzufügen. Also der erste Schritt, um diese Dinge tatsächlich
als CD in das Verzeichnis zu starten , in das ich diese heruntergeladen habe. Ich mache das nur aus Gründen der Illustration hier. Und für Sie können die beiden sehen, wo auch immer Sie das sparen. Sobald Sie da drin sind, werden Sie das folgende Jupiter-Notizbuch eingeben. Genau so ist Jupiter lustig geschrieben und stellen Sie sicher, dass Sie das richtig bekommen. Und was das tun wird, ist Jupyter Notebook in diesem Ordner zu starten. Auf diese Weise werden alle richtigen Skriptdateien angezeigt und alle Daten, die sie benötigen, werden auch an der richtigen Stelle sein. Und Sie können hier eine Auflistung aller Notizbuchdateien sehen, die mit dem Kurs geliefert werden. Mal sehen, ob es tatsächlich funktioniert. Gehen wir zu den Ausreißern Punkt, PY und B. Das ist ein einfacher. Also, wenn ich in einem Vortrag in diesem Kurs bin und ich sage öffnen Ausreißer, dot IP, y und b oder was auch immer es ist. Das ist es, was ihr machen wollt. Das ist wichtig. Schreib das auf. Okay, ich werde das in Zukunft nicht sehr oft wieder durchgehen. Sie müssen wieder ein Terminal CD öffnen, wo Sie
die Materialien in Jupiter Notebook installieren , Jupiter geschrieben lustig. Wählen Sie dort das Skript aus, das Sie öffnen möchten. Also lassen Sie uns Ausreißer öffnen und sehen, ob es funktioniert. Es macht cool. Sie sollten also einen Bildschirm wie diesen sehen. Und was cool ist, ist, dass Sie diesen Code hier tatsächlich in der
Reihe ausführen können und ihn tatsächlich modifizieren und damit ein Chaos damit spielen können. Es ist nicht nur eine statische Webseite. So kann ich zum Beispiel auf diesen Block von Python Code hier klicken und diesen Run-Button drücken. Und es wird voran gehen und tatsächlich diesen Code ausführen und dieses Diagramm automatisch basierend auf dieser Ausführung
generieren. Also, wie cool ist das? du neugierig, was hier los ist? Wir schaffen im Grunde eine Verteilung der Einkommen der Menschen. Und dann werfen wir in Jeff Bezos hat am Ende einen Milliardär, um die Wirkung eines Ausreißers auf eine Datenverteilung zu zeigen. Und während der restlichen Übung gehen
wir durch und finden Wege, Ausreißer wie Jeff Bezos zu identifizieren undsie aus dem Datensatz
abzulehnen, sie aus dem Datensatz
abzulehnen, was uns ermöglicht, die Daten für alle anderen aussagekräftiger zu interpretieren. Aber darüber werden wir in Zukunft noch mehr reden. Es macht lustiges Zeug. Vorerst solltest du hier ein funktionierendes Jupiter-Notizbuch sehen. Wenn du das tust, dann sind tolle Dinge richtig eingerichtet. Wenn nicht, gehen Sie zurück, überprüfen Sie Dinge könnte ein Konflikt mit einer anderen Python Umgebung sein, die Sie möglicherweise installiert haben. Das könnte also etwas sein, das du aufspüren musst, aber hoffentlich funktioniert die Dinge und wir können weitermachen.
4. Setup zu Setup: Alles klar, so schnell, lass mich dich durch die Einrichtung führen. Ich zeige dir, wie man das alles aus erster Hand macht. Aber für die Zusammenfassung, wir werden Anaconda installieren
, eine Python Umgebung und Notwendigkeit für wissenschaftliches Computing und Datenwissenschaft und maschinelles Lernen. Sobald wir dieses Setup haben, installieren
wir ein Paket namens pi dot plus, das wir später im Kurs zur Visualisierung von Entscheidungsbäumen verwenden werden. Und wird auch TensorFlow installieren, die wir verwenden werden, um neuronale Netzwerke und
echte KI und Deep Learning später im Kurs zu bauen . Wir laden hier auch die Kursmaterialien von meiner Website herunter und
öffnen eines der Notizbücher aus diesem Material und sehen, ob es funktioniert. Also lasst uns eintauchen. Okay, lassen Sie uns Dinge auf Linux einrichten, jemand in einem Segen, der hier hosten kann. Und das erste, was wir tun müssen, ist Anaconda zu installieren. Anaconda ist eine Python Umgebung, die für das wissenschaftliche Computing entwickelt wurde. Es enthält Bibliotheken, die für Data Science und Machine Learning benötigt werden. Es wird Ihnen also eine Menge Ärger ersparen und Pakete installieren, indem dies anstelle einer generischen Python Installation verwenden. Und dachte Baldachin kann auch funktionieren, wenn Sie das haben. Aber Anaconda ist das, was ich in diesem Kurs vorerst benutze. Gehen Sie also zu anaconda.com, wenn Sie es nicht haben, und finden den Download-Button und drücken Sie erneut Download. Und wählen Sie Ihr Betriebssystem aus. Wir sind unter Linux. Und Sie wollen die Python drei Version 3, was auch immer es ist, der Code in diesem Kurs ist für Python 3 und Python 2, ich bin auf einem X86-System, also werde ich voran gehen und das X86-Installationsprogramm installieren. Sie können sehen, dass es groß ist. Wir laden das automatisch in
mein Home-Verzeichnis im Download-Ordner herunter. Und wir werden nur warten, bis das runtergekommen ist. Sobald das Herunterladen abgeschlossen ist, können
wir unseren Browser minimieren und ein Terminal öffnen. Wir werden in unseren Downloads-Ordner cd. Und wir müssen dieses Shell-Skript ausführbar machen. So ändern mod H plus x Anaconda drei, was auch immer es ist. Und jetzt sollte in der Lage sein, dieses Installer-Skript auszuführen. Drücken Sie die Eingabetaste, um den Bereich der Lizenzvereinbarung zu sehen, während Sie ihn lesen. Und vorausgesetzt, Sie stimmen den Begriffs-Typ in Ja. Das Home-Verzeichnis ist in Ordnung für mich, wir werden Enter drücken. Und los geht es. Es gibt eine Menge für sie zu installieren, also kommen wir zurück, wenn es fertig ist. In Ordnung. Es wird fast deinstalliert. Es will wissen, ob Sie Anaconda initialisieren wollen, nicht sicher, warum Sie Nein sagen würden. Also lasst uns ja eintippen. Und wir sind bereit zu gehen. So ist Anaconda an dieser Stelle installiert, Das ist genial. Nun wurden hier einige Umgebungsvariablen geändert. Also, um sicherzustellen, dass wir sie abholen, werde
ich aus diesem Terminal schließen und ein neues aufbringen. Jetzt gibt es ein paar Pakete, die wir
installieren müssen , die nicht mit der Standardinstallation geliefert wurden. Eins ist pi dot plus. Wir werden das verwenden, um Entscheidungsbäume später im Kurs zu visualisieren. Um das zu installieren, geben Sie einfach Conda ein, installieren Sie pi dot plus genau so. Und Sie werden eine Menge Warnungen im Allgemeinen sehen, wenn Sie Code
ausführen und mit der Anaconda-Umgebung arbeiten, normalerweise sprechen sie nur über Dinge, die in der Zukunft
veraltet sind , und es ist sicher, diese zu ignorieren. Also flippt nicht wegen der Warnmeldungen aus, Jungs. Es wird eine Menge von ihnen sein und sie sind fast immer sicher zu ignorieren. Wenn es ein Fehler ist, ist das eine andere Geschichte, aber schwitzen Sie die Warnungen nicht. Alles klar, wir werden Y drücken, um fortzufahren. Und das war schnell. Jetzt müssen wir auch TensorFlow installieren. Tensorflow ist ein Paket, das für den Aufbau neuronaler Netzwerke von Deep Learning verwendet wird, und wir werden auch später im Kurs damit spielen. Um das zu installieren, sagen Sie einfach Conda, installieren Sie TensorFlow. Und wenn Sie sich auf einem System mit einer NVIDIA-GPU befinden, können
Sie die Dinge beschleunigen, indem Sie stattdessen TensorFlow GPU installieren. Aber wenn Sie sich nicht sicher sind, bleiben Sie einfach bei TensorFlow. Da ich hier in eine kleine virtuelle Umgebung stecke, habe ich nicht viel Vertrauen, dass die TensorFlow GPU tatsächlich funktionieren wird. Also werde ich bei nur einfachem TensorFlow bleiben. Und das wird losgehen und auch sein Ding tun. Und wieder, warum fortzufahren? Ordnung, und an diesem Punkt ist Anaconda mit allem
installiert, was wir für diesen Kurs brauchen. Gehen wir weiter und räumen Sie den Bildschirm aus. Und gehen wir zurück zu unserem Browser und wir erhalten das Kursmaterial als nächstes. Jetzt, um diese zu bekommen, Sie gehen über HTTP und Medien Dotson Hunde Kopf, dash soft.com Schrägstrich Machine Learning Punkt HTML. Achten Sie auf die Kapitalisierung und Striche in allen Angelegenheiten. Und Sie sollten eine Seite sehen, die so aussieht. In Ordnung, also sehen Sie hier einen großen, freundlichen Link für die Kursmaterialien. Dies enthält alle Python
Notebookdateien , die wir während des Kurses verwenden werden. Gehen Sie weiter und klicken Sie darauf, um es herunterzuladen. Und wir werden voran gehen und das speichern. Und wenn Sie wollen, die Folien ist eine Kopie davon auch hier. In Ordnung, jetzt ist das Kursmaterial vorhanden. Lassen Sie uns voran gehen und schließen Sie hier aus dem Browser. Und zurück zu unserem Terminal. Gehen wir wieder zu unserem Download-Ordner. Und lasst uns diese ML natürlich Dot Zip-Datei entpacken. In Ordnung, also müssen wir uns nur daran erinnern, wo das ist. Also lasst uns in ML natürlich gehen. Und so ist es unter Downloads AMOLED Kurs. Du kannst das woanders verschieben, wenn du willst. Wichtig ist nur, dass man sich daran erinnert, wo es ist und wie man dorthin kommt. In Ordnung, also lass mich dir zeigen, wie man diese Dinger tatsächlich durchführt. Dies ist also eine Sammlung von Jupiter Notebook Dateien ist, was sie genannt werden. Sie sind Möglichkeiten, Python Code interaktiv in einem Webbrowser auszuführen. Und das schließt auch alle Beispieldaten ein, die wir für den Kurs benötigen um unsere Modelle tatsächlich zu trainieren und tatsächlich maschinelles Lernen durchzuführen. Aber um sie tatsächlich ausführen zu können, müssen
wir das, was Jupiter-Notebook genannt wird, aus diesem Verzeichnis heraus starten. Also denken Sie daran, wann immer wir tatsächlich ein Notizbuch innerhalb dieses Kurses starten, was Sie zuerst tun müssen, ist,
eine Terminal-Fenster-CD in das Verzeichnis zu öffnen , in dem Sie diese Kursmaterialien installieren ,
okay, für uns wird das unser Zuhause sein Verzeichnis unter Downloads und dann ML Kurs. Und sobald du in diesem Verzeichnis bist,
gib Jupiter mit einem y Notizbuch ein, genau so. Es ist wichtig, dass Sie dies aus dem richtigen Verzeichnis starten. Sobald wir das tun, sollten wir ein Browser-Pop-up haben. Und da ist es. Also, das ist cool. Jetzt können wir die Liste der Notebook-Dateien sehen, die wir
für diesen Kurs haben , müssen wir nur diejenige auswählen, die wir wollen. Also, wenn ich sage,
eine bestimmte Notizbuchdatei auf dem Kurs zu öffnen , freuen Sie sich hier. Lasst uns Ausreißer öffnen. Punkt I-SPY, NB. Das ist ein interessanter. Cool. So können Sie sehen, dass wir all diesen Inline-Python Code haben, den wir tatsächlich interaktiv ausführen können und tatsächlich die Ausgabe sehen, während wir es in unserem kleinen Webbrowser ausführen. Es ist irgendwie cool. Und das ist nicht nur eine vorgefertigte Webseite, Leute. Dies ist tatsächlich eine Umgebung, in der Sie Code tatsächlich ausführen und ändern können. So kann ich zum Beispiel auf diesen kleinen Block hier klicken. Was es tatsächlich tut, ist eine zufällige Verteilung der Einkommen der Menschen zu schaffen. Und dann werfen Jeff Bezos hat einen Ausreißer mit einer Milliarde Dollar, aber kann einfach darauf klicken und diesen Run-Button drücken. Und das wird diesen Code tatsächlich ausführen und dieses Diagramm als Antwort erzeugen. Ziemlich cool. Und der Rest davon werden
wir später darüber reden, wenn wir tatsächlich zu dieser Lektion kommen. Aber im Grunde sprechen wir darüber, wie man Jeff Bezos entfernt hat einen Ausreißer und erhalten sinnvollere Visualisierungen der Daten für normale Menschen hier. So wichtige Aktivität dort. Aber jedenfalls, ja, es scheint zu funktionieren. Also, wenn Sie so weit haben, ist
alles richtig eingerichtet. Herzlichen Glückwunsch, und wir können wieder vorwärts gehen. Denken Sie daran, wie Sie diese Notizbuchdateien öffnen können. Sie möchten eine Terminal-CD
für das Verzeichnis öffnen , in dem Sie die Kursmaterialien installieren, und geben Sie dann Jupiter-Notizbuch ein. Und denken Sie daran, Jupiter ist lustig geschrieben, Jay UP warum TER, und das sollte Sie dorthin bringen, wo Sie sein müssen. Na gut, Leute, lasst uns weitermachen.
5. Python Teil 1: Wenn Sie Python bereits kennen, können
Sie wahrscheinlich die nächsten beiden Vorträge überspringen. Aber wenn Sie einen Refresher benötigen oder wenn Sie Python noch nicht gemacht haben, möchten
Sie diese durchgehen. Es gibt ein paar schrullige Dinge über die Python-Skriptsprache, über die Sie wissen müssen . Also lasst uns eintauchen und einfach in den Pool springen und etwas Python lernen, indem wir einen echten
Code schreiben . Alles klar, Zeit für einen Crashkurs in Python. Nun, wie ich bereits im Jahr die Anforderungen für diesen Kurs gesagt habe, sollten
Sie eine Art Programmierhintergrund haben, um erfolgreich zu sein. In diesem Kurs haben
Sie in einer Art Sprache überzogen, auch wenn es sich um eine Skriptsprache handelt. JavaScript. mir egal, was es ist. C plus plus Arbeit etwas. Aber wenn du neu in Python bist, werde
ich dir hier ein bisschen einen Crashkurs geben. Ich werde einfach direkt eintauchen und hier ein paar Beispiele eingehen. Es gibt ein paar Macken über Python, die ein wenig anders sind als andere Sprachen, die Sie vielleicht gesehen haben, also möchte ich nur durch das gehen, was sich an Python von anderen Skriptsprachen unterscheidet mit denen
Sie vielleicht gearbeitet haben, und das beste Weg, dies zu tun, ist, indem man sich einige echte Beispiele. Also lasst uns in einen Code eintauchen. Also ein letztes Mal, ein wenig gerade, wie man hier auf Ihrem System ein Notebook öffnet. Und ich bin hier an Fenstern. Lesen Sie in der vorherigen Vorlesung, wenn Sie Anweisungen zu einem anderen Betriebssystem benötigen, aber im Allgemeinen möchten
Sie eine Eingabeaufforderung irgendeiner Art öffnen. Und unter Windows müssen
Sie die Anaconda-Eingabeaufforderung verwenden. Also finden Sie Ihre Anaconda drei. Viele mit Startmenü und Goto Anaconda Aufforderung wir für das kommen und wieder, Sie müssen in das Verzeichnis CD, wo Sie alle Ihre Kursmaterialien gespeichert haben. Also für mich war
das C Doppelpunkt Schrägstrich ml natürlich, du könntest ein de ir machen, nur um sicherzustellen, dass alles da ist. Und sobald Sie sich im richtigen Verzeichnis befinden, geben Sie Jupiter mit warum Notebook ein und Sie sollten einen Bildschirm wie diesen sehen. Und von hier aus wollen wir das Python 101-Notizbuch auswählen, weil das hier unser
kleines Tutorial in Python enthalten ist . Also gehen Sie weiter und klicken Sie auf Python 101 Punkt i p y N b und Sie sollten jetzt einen Bildschirm haben, der so aussieht, also lasst uns eintauchen. Wenn Sie noch nie ein Jupiter-Notizbuch gesehen haben, funktioniert es, dass Sie in eines dieser Boxen mit Code klicken und auf die Ausführungstaste oder
Shift drücken können. Geben Sie ein und er wird diesen Code direkt von Ihrem Web-Browser aus ausführen. Versuchen wir es mit diesem ersten Block. Klicken Sie in das Innere, um es auszuwählen und drücken Sie Umschalttaste Eingabetaste Jetzt werden wir nur die Syntax von Python hier in den wichtigsten Arten abdecken, in denen es sich von anderen Sprachen unterscheidet. Lassen Sie uns also einen genaueren Blick auf diesen Code werfen. Eine Sache mit Python ist, dass Leerraum wirklich wichtig ist. Jede Verschachtelung von Code, wie für Anbetung oder bedingte Ausdrücke, beruht auf der Anzahl der Tabs, um Code zusammen zu gruppieren, anstatt geschweifte Klammern wie andere Sprachen. Also hier haben wir eine Liste von Zahlen. In Python ist
eine Liste wie ein Array oder ein Vektor und andere Sprachen. Wir definieren eine Liste der Zahlen eins bis sechs, indem wir sie in eckige Klammern setzen durch Kommas
getrennt sind. In Python war
kein Zeichen erforderlich, um eine Zeile zu beenden, die Sie gerade getroffen haben. Geben Sie ein, wenn Sie fertig sind, lassen Sie uns sieben auf die Liste, nur um zu beweisen, dass das Ausführen dieses tatsächlich etwas tut. Ja, wir haben jetzt Ergebnisse für eins bis sieben. Als nächstes haben
wir ein Beispiel für eine Vier-Schleife in Python. Diese Aussage es eine Rate durch die Liste benannte Liste der Zahlen, die aktuelle Iteration in der variablen Zahl jedes Mal
speichert, Ah, vier Anweisung muss mit einem Doppelpunkt wie diesem enden, aber jetzt verwenden wir in dicht zu geben an, welcher Code sich innerhalb dieses vier Blocks befindet. Und hier haben wir ein Beispiel für eine if else Klausel. Wenn die Zahl gleichmäßig durch zwei teilbar ist, drucken
wir das aus. Es ist sogar anders. Wir drucken, dass es seltsam ist und wieder verwenden wir in dicht, um anzuzeigen, welcher Code in jeder if-
oder andere-Klausel lebt , wird alles in dicht entfernen, um aus der vier Schleife herauszukommen und alles
am Ende zu drucken . Beachten Sie, dass wir nie eine Variable im Voraus deklarieren mussten. Auch müssen wir ihre Typen nicht definieren. Python ist eine dynamisch typisierte Sprache. Es versucht, den Datentyp Ihrer Variablen basierend darauf abzuleiten, wie Sie ursprünglich um verwendet haben, aber intern haben
sie Typen. Sie können Variablen auch explizit in verschiedene Typen umwandeln, wenn nötig. Variablen werden jedoch nicht automatisch neu gefasst, wie in wöchentlichen Typsprachen. Manchmal kann dies zu unerwarteten Fehlern führen, und wir werden einige davon sehen, wenn wir den Kurs durchlaufen. Gehen wir zum nächsten Block über, der nur zeigt
, wie externe Module in Ihre Python-Skripte importiert werden. Sie haben dafür gerade den Befehl import verwendet, und Sie können einen Alias für das Modul definieren, wenn Sie sich
auch etwas eingeben möchten . Also hier importieren wir das Num pie Modul, damit wir es innerhalb unseres Skripts referenzieren können, und wir importieren es unter dem Namen NP. Dies lässt uns dann taub Pies Zufallsfunktion verwenden, indem wir einfach np Punkt zufällig eingeben und in diesem Fall taub pie uns 10 normal verteilte Zufallswerte mit dem gegebenen Mittelwert und Standardabweichung
6. Python Teil 2: Als nächstes wollen wir Listen ausführlicher besprechen, da wir sie viel verwenden. Wenn Sie wissen müssen, wie viele Elemente in einer Liste lüften, können
Sie die eingebaute Len-Funktion verwenden, um das zu erhalten. Wie so oft müssen
Sie Listen auch auf bestimmte Weise aufteilen, um Werte in einem bestimmten Bereich innerhalb der
Liste zu extrahieren . wird der Doppelpunkt verwendet. In diesem ersten Beispiel verwenden
wir Doppelpunkt drei, um nach den ersten 3 Elementen der Liste zu fragen, und ähnlich können
wir drei Doppelpunktzehen verwenden. Fragen Sie nach allem nach dem dritten Element. Wie So können
wir auch etwas wie negativ auf den Doppelpunkt tun. Fragen Sie nach den letzten beiden Elementen der Liste. Und wenn Sie eine Liste an eine andere Liste anhängen möchten, ist
das, wofür die Erweiterungsfunktion geeignet ist. So wie dieser Junge, die Liste mit sieben und acht auf unserer ursprünglichen Liste. Und wenn Sie einen einzelnen Wert in eine Liste aufsetzen möchten, können
Sie die Upend-Funktion so verwenden. Eine andere coole Sache an Python ist, dass Listen fast jeden Typ enthalten können, den Sie wollen. Du könntest sogar eine Liste von Listen erstellen, also lass uns das jetzt tun. Wir machen eine neue Liste namens Warum und Make eine neue Liste von Listen, die unsere neu gewachsene
X-Liste und diese neue Y-Liste enthält , um ein Element einer Liste abzurufen. Verwenden Sie einfach den Bracket-Operator hier wie folgt. Wir kriegen Element eins der wildesten zurück. Dies ist auf Null basiert. Also, warum man Ihnen tatsächlich das zweite Element zurückgibt, nicht das 1. 1 Warum Null würde Ihnen das erste Element geben, das die Zahl 10 in diesem Beispiel ist. Lassen Sie uns auch eine eingebaute Sortierfunktion haben, die Sie verwenden können, um die Liste an Ort und Stelle so zu sortieren. Und wenn Sie in umgekehrter Reihenfolge sortieren möchten, Sie einfach vorbei. Reverse entspricht true in der Sortierfunktion. Dies ist auch ein guter Zeitpunkt zu erwähnen, dass es ein paar Möglichkeiten gibt, Parameter in
Funktionen zu übergeben . Sie könnten einfach eine Liste von Werten übergeben, wie Sie es in den meisten Sprachen tun würden, aber Sie können sie auch nach Namen übergeben. Oft haben
Python-Funktionen viele Parameter, denen Standardwerte zugewiesen sind, und Sie geben einfach diejenigen an, die Sie interessieren, indem Sie sie nach Namen angeben. Okay, lassen Sie uns weitermachen und über zwei Umfragen reden. nächsten zwei Umfragen sind eine Menge wie Listen, aber der Hauptunterschied ist, dass sie unveränderlich sind. Sobald Sie eine zum Ziehen erstellt
haben, können Sie sie nicht mehr ändern. Sie sind praktisch für Leute, die funktionale Programmierung machen oder für die Verbindung mit Systemen wie Apache Spark, die Luft entwickelt auf funktionalen Programmiersprachen wird das später im
Kurs tun . Der einzige wirkliche Unterschied besteht darin, dass Sie zwei Pools mit Klammern anstelle von
eckigen Klammern einschließen . Also hier ist ein, um die Werte 12 und drei zu ziehen. Wir können Len darauf verwenden, genau wie wir es bei der Liste waren. Sie können Elemente in A referenzieren, um auf die gleiche Weise zu ziehen, wie Sie in einer Liste wäre,
gut wieder ist es auf Null basiert. Also warum zwei gibt uns das dritte Element der Liste zurück, nicht die 2. 1 Sie können auch eine Liste von zwei Bullen machen, wenn Sie dies wünschen. Eine weitere häufige Verwendung von zwei Polen ist die Weitergabe von Gruppen von Variablen, die Sie zusammen
halten möchten . Zum Beispiel wird
die Split-Funktion für eine Zeichenfolge Ihnen eine Reihe von String-Tälern zurückgeben,
die aus dieser Zeichenfolge extrahiert wurden, und wir können diese Werte Elementen in a zuweisen, um als eine schnelle Art zu benennen Schauen Sie sich in diesem Beispiel. Wir haben zwei Zahlen durch ein Komma getrennt, und wir wissen, dass das erste Tal ein Alter und die zweite und Einkommenswert darstellt. Wir können sie direkt in Variablen namens Alter und Einkommen extrahieren. Wie so ist das Verschieben einer anderen nützlichen Datenstruktur und Python das Wörterbuch. In anderen Sprachen können Sie dies als eine Karte oder eine Hash-Tabelle kennen. Es ist im Grunde eine Nachschlagetabelle, in der Sie Werte speichern, die mit einem eindeutigen Satz von
Schlüsselwerten verknüpft sind. Es macht mehr Sinn. Mit einem Beispiel deklarieren
Sie ein Wörterbuch mit geschweiften Klammern, also lassen Sie uns ein Wörterbuch Mapping Raumschiffnamen zu den Namen ihrer Kapitäne wird
dieses Wörterbuch Kapitäne jetzt aufrufen , um einen Eintrag in der Dictionary of Use Square zu erstellen Klammern, um einen Schlüsselwert
anzugeben, der an einer Zuweisung interessiert war. Also, um den Wert Kirk dem Schlüsselunternehmen zuzuweisen, können
wir einfach sagen, dass Kapitäne Unternehmen gleich Kirk ist. Wir machen das Gleiche für die anderen Raumschiffe, von denen wir wissen. Dann wird das Abrufen eines Wörterbuch-Elements auf die gleiche Weise durchgeführt. Verwenden Sie einfach eckige Klammern, um den gewünschten Wert zurückzuerhalten. Also, um den Kapitän der USS Voyager zu holen, können
wir es so machen. Aber was passiert, wenn Sie versuchen, einen Wert für einen Schlüssel abzurufen, der nicht existiert? Du bekommst eine Ausnahme. In diesem Fall besteht
eine Möglichkeit, dies zu vermeiden, darin, die get-Funktion für das Wörterbuch zu verwenden. Sie sehen also, Sie können den Kapitän des Unternehmens erfolgreich abrufen, wie er im Wörterbuch existiert . Aber wenn wir versuchen, ein Schiff zu bekommen, das nicht in ihrem Wörterbuch ist, gibt
es den besonderen Wert zurück, den Sie anstreben und damit umgehen, wie Sie wollen. Und wenn du weißt, dass der Kapitän des N XO Jonathan Archer ist, bist
du mein neuer bester Freund. Sie können alle Schlüssel in einem Wörterbuch durchlaufen, genau wie Sie eine Liste wie diese für den Versand eingeben würden. Kapitäne geben dir jeden Schlüssel und das Wörterbuch des Kapitäns zurück und benennen ihn für dich, damit wir ihn ausdrucken können. Wie so
7. Python Teil 3: OK, gehen Sie jetzt zu Funktionen. Glücklicherweise funktionierten
sie so ziemlich wie in Python. Das intakt sieht so aus. Sie definieren eine Funktion mit dem Schlüsselwort taub, gefolgt von dem Funktionsnamen, gefolgt von allen Parametern, die Sie mit ihren Namen übergeben möchten. Stellen Sie sicher, dass Sie die Funktionsdefinition mit einem Doppelpunkt beenden. Danach muss
Ihr Code innerhalb der Funktion eingerückt werden. Pythons alles über den weißen Raum. Denken Sie daran? Also hier haben wir eine super einfache Funktion namens Square It, die nur einen Wert annimmt, es X
aufruft und seinen quadratischen Aufruf zurückgibt. Die Funktion funktioniert genau so, wie Sie es erwarten würden. Geben Sie einfach in Quadrat es und dann zwei in Klammern, um das quadratische Tal von zu bekommen, zum Beispiel, lassen Sie es laufen. Es gibt ein paar funky Dinge, die Sie
zum Beispiel mit Funktionen und Python tun können . Sie können tatsächlich eine andere Funktion als Parameter an eine Funktion übergeben. Dies ist etwas, das Python erlaubt, gut mit funktionalen Programmiersprachen zu spielen, die Sie viel verteiltes Computing stoßen. Wir können eine Funktion wie diese namens do Something erstellen, die eine Funktion f
Parameter X annimmt und das Ergebnis von f von X zurückgibt. So können wir tatsächlich sagen, Tun Sie etwas, quadratische es Komma drei als eine wirklich verschlungene Art und Weise zurück zu bekommen zu Quadrat von drei. Aber es funktioniert, dass übrigens bemerkt
haben, Sie
übrigens bemerkt
haben,dass dieser Codeblock immer noch weiß, dass das Quadrat, das es funktioniert, existiert,
obwohl wir es in einem vorherigen Block definiert haben? Jupiter-Notizbücher laufen in einer einzigen Colonel-Sitzung. Alles, was Sie vor dem Block, den Sie ausführen, definieren oder ändern, wird in diesem Colonel immer noch
im Speicher sein. Manchmal kann dies zu verwirrendem Verhalten führen, besonders wenn Sie Blöcke innerhalb eines Notebooks ausführen, außer Betrieb oder wiederholt. Wenn seltsame Dinge passieren, können
Sie immer von einem sauberen Schiefer starten, indem Sie Colonel restart aus dem Menü wählen. Lassen Sie uns auch einige Aufmerksamkeit auf die Lambda-Funktionen geben, die Ihnen erlauben, einfache
Funktionen in Zeile zu übergeben , ohne ihnen sogar einen Namen zu geben. Das sieht man ziemlich oft in der Welt der Data Science. Es ist am einfachsten, mit einem Beispiel zu verstehen. Hier rufen wir unsere Funktion do Something mit einer Lambda-Funktion auf, die den Würfel
eines Wertes anstelle seines Quadrats berechnet . Werfen Sie einen genauen Blick auf die Syntax hier sagen wir Lambda, gefolgt von dem Funktionsparameter als einem Doppelpunkt, nach dem wir tun können, was wir wollen, um diesen Parameter. Unabhängig von dem Wert, der nach dem Doppelpunkt berechnet wurde, ist implizit der Rückgabewert des Landes der Funktion. Das heißt also, um eine Lambda-Funktion zu erstellen, die etwas namens X nimmt und X mal X mal X zurückgibt Wir übergeben dieses Lamm, um etwas mit einem Wert von drei zu tun, was dann ausgeführt wird, sind Lambda-Funktion für den Wert drei. Und wenn wir das ausführen, können
Sie sehen, dass wir tatsächlich tun, bekommen 27, die drei Würfel sind.
8. Python Teil Teil: Okay, das andere Zeug ist ziemlich unkompliziert. So sieht die Syntax für boolesche Ausdrücke aus. Sie können ein doppeltes Gleichheitszeichen verwenden, um auf Gleichheit zu testen, und Sie können auch nur das Wort verwenden, ist es auch ein dreifaches Gleichheitszeichen, das Sie verwenden können um tatsächliche Objekte anstelle ihrer Werte zusammen zu vergleichen. Aber das scheinen weniger häufig wahr und falsch sind ein wenig seltsam und dass sie
in Python großgeschrieben werden . Aber nur der erste Buchstabe, so und für Operatoren wie und oder nicht, dass Sie nur die Wörter und oder nicht
anstelle von speziellen Symbolen verwendet haben, könnten Sie etwas wie eine case- oder switch-Anweisung tun, indem Sie boolesche Ausdrücke mit einem Wenn l. Wenn sonst Struktur wie diese in diesem Beispiel, drucken
wir Wie ist das passiert, wenn man drei ist, was immer falsch ist. Andernfalls prüfen wir, ob man größer als drei ist, was auch mit Unglauben begegnet werden sollte, wenn es wahr wäre. Wenn dieser Test fehlschlägt, greifen
wir auf unsere endgültige Else-Klausel zurück, die alles wieder gut mit der Welt druckt, wir verwendeten in dichten Code mit bestimmten Klauseln hier, die wir früher auf Looping berührt haben, zu verknüpfen . Lasst uns hier noch tiefer gehen. Sie können die Bereichsfunktion toe verwenden automatisch eine Liste von Werten innerhalb eines bestimmten
Bereichs wie so wieder aufbauen , wir beginnen hier von Null zu zählen, also Bereich 10 gibt uns die Werte 0 bis neun zurück. Das Continue-Schlüsselwort innerhalb einer Schleife bedeutet, den Rest der Anbetung zu überspringen und direkt
zur nächsten zu gehen . Und das Schlüsselwort Bremse bedeutet, die Anbetung früh in diesem Beispiel zu stoppen, verwenden
wir weiterhin den Druck jedes Wertes zu überspringen, wenn der Wert eins ist, und wir verwenden Bremse zu stoppen, nachdem wir den Wert erreicht. Fünf. Studieren Sie die Ausgabe von 02345 und Sie werden sehen, dass es genau das ist, was es getan hat. Eine alternative Syntax ist die Wildschleife, die bis ein Boolescher Expressionist falsch erzeugt. Hier richten wir eine Zählervariable namens X und Schleife durch das Drucken X nur während X kleiner
als 10 ist . Sobald es 10 trifft, endet die Schleife, wie Sie in ihrer Ausgabe sehen können. Probieren Sie also eine wirklich einfache Aktivität aus, die einige der Dinge zusammenfasst, über die wir gerade
gesprochen haben . Ihre Herausforderung besteht darin, hier einen Codeblock zu schreiben, der eine Liste von Imagern Schleifen
durch jedes Element der Liste erstellt , und Onley druckt gerade Zahlen in der Liste aus. Dies sollte nur eine Frage der Neuanordnung eines anderen Codes in diesem Notizbuch sein. Selbst wenn Sie sich mit Python nicht wohl fühlen, ermutige
ich Sie, es zu versuchen. Sie werden sich mit Python viel besser fühlen, wenn Sie selbst etwas geschrieben haben, egal wie klein. Okay, hoffentlich hattest du damit nicht viel Ärger. Hier ist meine Lösung. Und denken Sie daran, dass mehr als eine Möglichkeit, es zu tun. Geben wir uns ein. Ah, meine Liste ist gleich in eckigen Klammern. 012583 und Sie können beliebige Zahlen verwenden, die Sie wollen. Dann können wir vier Zahlen in meiner Liste sagen. Dickdarm-Kurs. Sie können verschiedene Variablennamen wählen, wenn Zahl mod zwei Null Doppelpunkt Drucknummer ist. Und wie Sie sehen können, erhalten
wir hier die erwartete Ausgabe nur der geraden Zahlen. Okay, das ist
also alles, was an Python merkwürdig ist. , sollte Ihnen
das größtenteils Wenn Sie aus einer anderen Sprache kommen, sollte Ihnen
das größtenteilsgenug Wissen geben, um den Python-Code zu verstehen. Ich werde Ihnen in diesem Kurs zeigen und selbst mit diesem Code arbeiten. Das ist also dein Python-Crashkurs. Sie sind offensichtlich nur ein paar sehr einfache Sachen da. Wenn wir im Laufe des Kurses immer mehr Beispiele durchlaufen, wird
es mehr und mehr Sinn machen, da Sie mehr Beispiele zu betrachten haben. Aber wenn Sie sich an diesem Punkt etwas eingeschüchtert fühlen, sind Sie
vielleicht etwas zu neu in der Programmierung oder Skripterstellung, und es könnte eine gute Idee sein, einen Python Kurs zu machen, bevor Sie vorwärts gehen. Aber wenn du dich ziemlich gut fühlst, was du bisher gesehen hast,
lass uns weitermachen und wir werden weitermachen.
9. Einführung in Pandas: Nun, da Sie eine kurze Einführung in die Python Programmiersprache haben, lassen Sie uns ein wenig über die Pandas-Bibliothek sprechen. Das ist eine Bibliothek von Python-Funktionen, die Sie viele Datenwissenschaftler verwenden werden. Also folgen Sie mit mir hier, gehen Sie vor und finden Sie das Pandas-Tutorial, dass ich p Y N b Datei. Das sollte in deinen Kursmaterialien liegen. Sie sollten so etwas an dieser Stelle sehen. Was ist Pandas? Nun, es ist im Grunde eine Möglichkeit, tabellarische Daten zu verarbeiten. Wenn Sie also Spalten und Zeilen mit Informationen haben, wie Sie es oft in Data Science tun, ist
Pandas eine sehr einfache Möglichkeit, diese Daten zu laden, um sie zu manipulieren, Ihre Daten zu
untersuchen, sie zu
bereinigen und solche Dinge zu bereinigen. Und es funktioniert zusammen mit zwei anderen Bibliotheken, die Sie im
Bereich Data Science und Machine Learning viel verwenden werden . Wenn wir also über das tatsächliche maschinelle Lernen sprechen, verwenden
Algorithmen eine Python-Bibliothek namens Psychic Learn oder SK Learn kurz. Dort hat es den gesamten eigentlichen Code, um Dinge wie lineare Regressionen oder SPM zu tun. All das Zeug, über das wir später reden werden, und das dauert normalerweise als Eingabe einen tauben Scheiterhaufen, einen so tauben Kuchen. Eine weitere Bibliothek in der Mischung hier, die eine eigene Darstellung einer Erhöhung von Daten hat,
könnte auch ein mehrdimensionales Array von Daten sein. Es ist also eine Art, Informationen darzustellen. So wie es normalerweise geht, ist, dass Sie Pandas verwenden können, um Ihre Daten zu laden, zu manipulieren und bereinigen und es zu verstehen, und dann in einen tauben Scheiterhaufen zu übersetzen. Ein, das dann in die Psyche eingespeist wird. Es lernt, und dass Übersetzung oft automatisch geschieht. Übrigens, Sie haben nichts Besonderes. Was in diesem Stadium wichtiger ist, ist Pandas zu verstehen, richtig? Denn tatsächlich, was in Psych, es lernt ziemlich trivial. Also lasst uns über Pandas reden. Scrollen wir hier ein bisschen nach unten und spielen mit ein paar Daten, oder? Also fangen wir an, indem wir importieren, was wir brauchen. Also werden wir sagen, dass wir die Matte Plot Lib-Bibliothek in Linie verwenden wollen. Das geringste bedeutet, dass jedes Gras, das wir als Teil unseres Notizbuchs erstellen,
innerhalb des Notizbuchs selbst erscheint und nicht in einem externen Fenster mit der Notwendigkeit, speziell die Bibliotheken zu importieren, die wir in unserem Python-Code verwenden möchten. Also werden wir die num pie Bibliothek als und P
importieren bedeutet, dass wir jetzt auf taube Kuchen die Kurzschrift und P in unserem Skript beziehen können. Und wir werden auch die Pandas-Bibliothek als PD importieren. Das bedeutet also, dass wir im Grunde einen Alias für die Panis Library of PD erstellt haben. Nur Zehe erspart uns ein paar Tastenanschläge. Also lasst uns weitermachen und Panis zum ersten Mal benutzen. Wo ich hier sage, ist DF gleich p d dot reid Unterstrich. Siehe SV vorbei an höheren Sazi SV. Also, was ist hier los? Dies wird den letzten höheren Start laden siehe SV-Datei. Das ist eine Datei mit kommagetrennten Werten Das bedeutet nur, dass es sich um tabellarische Informationen handelt, bei denen jede Spalte durch ein Komma getrennt ist. Es ist also ein sehr einfaches, textbasiertes Format, und die erste Zeile entspricht normalerweise den Titeln dieser Spalten. Mit einer Codezeile können
wir diese Daten von der Festplatte einlesen und daraus einen so genannten Datenrahmen erstellen. Ein Pandas-Datenrahmen, und wir werden diesen Datenrahmen auf eine Variable namens DF signieren. Das lädt also unseren Zazi SV vorbei und wandelt ihn in einen Pandas-Datenrahmen um. Und dann können wir Kopf auf diesem Datenrahmenobjekt aufrufen, um die ersten 5 Zeilen dieses
Datenrahmens zu visualisieren , und so sieht es aus. Es ist also tatsächlich hier klicken und Shift Enter drücken, um es auszuführen. Und Sie können hier sehen, dies ist eine kleine Vorschau der Datei. Wenn Sie also einfach nur
überprüfen
möchten, möchten, ob alles falsch geladen wurde und verstehen, was darin ist, ist
das ein guter Weg. Zehe machen wenig Fleck. Überprüfen Sie mit Kopf. Sie können hier sehen, dass wir die ersten 5 Zeilen hier angezeigt werden und unsere Spalten Luft dem Titel Richtig Jahre Erfahrung beschäftigt früheren Arbeitgeber Niveau Ausbildung, sprach Ihre Schule, interniert und eingestellt. Wir werden diesen Datensatz später im Kurs verwenden, um zu sehen, ob wir vorhersagen können, ob ein Bewerber eingestellt wird oder nicht, basierend auf ihrer Vergangenheit. Okay, also sieht alles einigermaßen gut aus. Sie können auch eine ganze Zahl übergeben, wenn Sie eine bestimmte Zahl vom
Anfang Ihrer Datei sehen möchten . Also, wenn ich die ersten 10 Zeilen meines Datenrahmens sehen möchte. Ich könnte einfach sagen DF Punkt Kopf 10 so und der Krampf die ersten 10 Zeilen, Sie können ein wenig von einer größeren Sampling von Daten dort sehen. Ähm, und er könnte auch das Ende Ihrer Datendatei sehen. Wenn Ihr Datenrahmen auch so DF Dot Tail gut, sehen Sie so aus und das zeigt die letzten vier Zeilen in unserem Datenrahmen an. Sie können sehen, dass dies ein sehr kleiner Datensatz ist. Es ist nur etwas, das ich erfunden habe. Es enthält nur 12 Zeilen mit Informationen. Jetzt sprechen wir
manchmal über die Form Ihres Datenrahmens oder die Form Ihrer Daten. Und was wir meinen, wenn wir über die Form sprechen, ist nur die Dimensionalität davon. Also, zum Beispiel, wenn wir DF Punktform sehen, die mit 13 Komma sieben zurückkommen wird, und was das bedeutet, ist, dass wir 13 Rose und sieben Spalten in unserem Datenrahmen haben, und das ist die Form unseres Datenrahmens. Wie viele Spalten hat wie viele Zeilen Es hat nur ein schickes Wort für ein sehr einfaches Konzept . Wir können auch sagen, DF Punktgröße, die zurück kommt. Es ist 91, was nur die Anzahl der Zellen in unserem Datenrahmen ist, im Grunde die Anzahl der eindeutigen Datenpunkte. Und das wird nur 13 mal sieben in unserem Beispiel sein. 13 Rose Zeit. Sieben Säulen. Es ist 91. Es gibt auch einen Len-Operator. Er könnte Len DF anrufen, und das kommt mit 13 zurück. führt nur dazu, dass Sie die Anzahl der Zeilen in Ihrem Datenrahmen zurücksetzen. Wenn du das nur brauchst. Und wenn Sie DF Punktspalten tun. Was dir das zurückgibt. Es ist ein Array der tatsächlichen Spaltennamen. Wenn Sie also eine kleine kurze Erinnerung daran machen wollen, was Ihre Spaltennamen sind und was sie bedeuten , ist
das ein guter Weg,
um , eine kleine schnelle Visualisierung zu
bekommen,was er mich nennt. Und manchmal müssen Sie sich daran erinnern, und das ist,
ah, ah, ein
praktischer kleiner Trick. Lassen Sie uns nun einige Manipulation dieses Datenrahmens durchführen. Nehmen wir an, wir möchten nur eine einzelne Spalte aus diesem Datenrahmen extrahieren. Nehmen wir an, wir wollen nur die angestellte Spalte extrahieren und etwas speziell damit tun . Oft sind Sie beim Laden von Daten nicht an jedem einzelnen Feature interessiert, das darin enthalten ist. Sie möchten bestimmte Features extrahieren, die Sie für das Modell interessieren, das Sie erstellen . So würde das funktionieren. Also, wenn ich sage, DF Klammer zitieren eingestellte Klammer, die nur die erste Spalte die
gemietete Spalte als einzelner Datenrahmen extrahiert . Also haben wir jetzt einen neuen Datenrahmen, der genau aus diesem besteht. Einspaltige. Die gemietete Spalte und ich hätten das in einen anderen Datenrahmen signieren können, wenn ich mich
umdrehen und das tun wollte , weißt
du, und etwas anderes damit machen wollte. Also könnte ich sagen, du weißt schon, angeheuert Anruf auf Gleichen, DF eingestellt oder so etwas. Sie können auch einen bestimmten Bereich von Rose innerhalb einer Spalte wie diese extrahieren. Also, wenn ich das tue, engagierte
DF und dann eine zusätzliche Klammer mit Doppelpunkt fünf, die die ersten 5 Zeilen
der gemieteten Spalte extrahieren wird , und ich bekomme einen neuen Datenrahmen, der so aussieht, dass nur fünf Zeilen der höheren Spalte und nichts anderes, so dass Sie kann sehen, wie Pandas verwendet werden könnte, um die Daten zu extrahieren, die Ihnen wichtig sind, wenn Sie versuchen, Ihre Daten vorverarbeiten. Sie können auch einen einzelnen Wert wie diesen
extrahieren. Wenn ich nur Klammer fünf am Ende sagen würde, das explizit die gemietete Spalte in der fünften Zeile herausreißen, was zufällig der Wert Warum ist. Okay, also lasst uns hier ein wenig über Terminologie reden. OK, wir haben einen Datenrahmen, der im Grunde ein mehrdimensionales Objekt ist, in diesem Fall von 13 mal sieben Objekten. Und dann, wenn wir eine einzelne Zeile oder eine einzelne Spalte wie diese extrahieren, wird
das geben. Speck wurde Siri genannt. Okay, also das ernst ist im Grunde ein One D-Array. Und wenn wir einen einzelnen Wert extrahieren, bezieht sich
das normalerweise , einen Wert,der so wenig Terminologie gibt. Sie können auch mehr als eine Spalte extrahieren, wenn Sie möchten. Offensichtlich wird
das eine häufigere Situation sein. Du würdest das so machen. Anstatt nur einen einzelnen Spaltennamen in Anführungszeichen zu übergeben, könnten
Sie stattdessen ein Array von Spaltennamen wie folgt übergeben. Also sagen wir DF Klammer, und dann werden wir eine weitere Schicht von Klammern in diesen Klammern haben, die das Array von Spaltennamen darstellt ,
die Sie wollen Also sage ich DF Klammer Jahre Erfahrung Komma eingestellt Klammer Klammer Klammer und das wird uns diesen neuen Datenrahmen hier zurückgeben, der die jahrelangen erfahrenen und angestellten Spalten und nichts anderes besteht. Und Sie, offensichtlich können Sie mehr Spalten zu dieser Liste hinzufügen, wenn Sie möchten. Also wieder
eine sehr häufige Operation, um nur die Features oder Spalten zu extrahieren, die Sie tatsächlich für eine bestimmte Aufgabe
interessieren . Je weniger Daten Sie herumschieben, desto besser. Also, das ist normalerweise das erste, was du tun willst. Werde das Zeug los, das dir egal ist. Okay, Sie können auch Bereiche von Rose aus mehr als einer Spalte auf die gleiche Weise extrahieren. Also könnte ich sagen, ich will nur die ersten 5 Reihen der Jahre erfahren in höheren Spalten wie diese. Nichts zu überraschend dies in der Steuer dort. Wenn Sie Ihre Ergebnisse sortieren möchten, sortieren Sie Ihren Datenrahmen. Du könntest es so machen. Es gibt die Sortierunterstrich-Werte-Funktion. Sie können Datenrahmen aufrufen, einfach Array der Spalte übergeben, die Sie sortieren möchten, und wir werden diese Erfahrung sagen. Wir wollen nach jahrelanger Erfahrung sortieren. Sie können sehen, dass es tatsächlich getan hat, tun Sie diese Art von von niedrigsten
bis höchsten Null, bis zu 20 Jahre Erfahrung und unseren kleinen erstellten Datenrahmen hier. Was könnten wir sonst noch tun? Wir können auch Wertezählungen durchführen. diese Weise können Sie aufschlüsseln, wie viele von jedem eindeutigen Wert vorhanden sind, was eine nützliche Möglichkeit sein könnte, Ihre Datenart zu visualisieren. Suchen Sie nach seltsamen Werten, die aus sein könnten. Lügner, die ich tun muss, ist DF zu sagen und dann der Name der Spalte, die Sie auf
Punktwert zählen möchten , und ich werde Ihnen eine Anzahl von jedem eindeutigen Wert innerhalb ihrer geben. Also mach es real. Nehmen wir an, wir wollen eine Wertanalyse Siri aus der Spalte Bildungsniveau in
unserem Datenrahmen erstellen , und dann gehen wir voran und drucken das aus, indem wir nur sagen, um eine Punktzahl zu erstellen, und wir
erhalten dieses Ergebnis zurück, das anzeigt dass es in unserem gesamten Datenrahmen sieben Bs Grad für PhD Grad in M s Grad gibt. Okay, und wenn du willst, Oh, das Verlockende, was hier zu tun ist, ist, eine Geschichte zu erstellen, Graham, richtig? Also wollen wir, wenn Sie diese Verteilung planen wollen, das ist sehr einfach. Und Pan ist so gut, wir könnten einfach sagen, Grad zählt. Stop Grundstück Art Eagles Bar sagt, sagen, Wir wollen eine Bar Grundstück dieser Grad zählt. Und da wir Matt Plot live in Linienform an der Spitze verwendet haben
, gehen Sie einfach voran und zeigt in unserem I Python Notebook so sehr einfach, tatsächlich
Grafiken mit Pandas zu machen . In Ordnung, wenn du das selbst üben willst, habe ich eine Herausforderung für dich. Machen Sie sich hier die Hände schmutzig und machen Sie ein wenig Erfahrung. Versuchen Sie, Rose 5 bis 10 dieses Quelldatenrahmens der potenziellen Mitarbeiter zu extrahieren die wir haben,
und ich möchte, dass ,
die wir haben,
und ich möchte, dassSie nur die vorherigen Arbeitgeber und die höheren Spalten erhalten. Weisen Sie das einem neuen Datenrahmenobjekt zu und erstellen Sie dann einen Verlaufsgraham,
wie wir es gerade
hiergetan haben ,
wie wir es gerade
hier die Verteilung der Anzahl der vorherigen Arbeitgeber innerhalb dieser Teilmenge der Daten aus. Okay, das sollte dir erlauben, alle Sachen zusammenzustellen, über die wir hier gesprochen haben. Es gibt
natürlich viel abhängiger als das, natürlich viel abhängiger als das, aber das sind die häufigsten Operationen, mit denen Sie umgehen müssen, und so ziemlich alles, was Sie wissen müssen, um diesen Kurs zu durchlaufen und zu verstehen, was los ist. Also haben Sie einen Riss von dieser Übung. Ich denke, es wird eine gute Praxis für Sie sein, und mit dem unter Ihrem Gürtel können
wir zu einer echten Datenwissenschaft übergehen.
10. Arten von Daten: Alles klar. Wenn Sie Data Scientist sein wollen, müssen
wir über die Arten von Daten sprechen, die Ihnen begegnen könnten, und wie Sie sie kategorisieren und wie Sie sie anders behandeln können. Lassen Sie uns also in die verschiedenen Geschmacksrichtungen von Daten eintauchen, denen Sie begegnen könnten. In Ordnung, lassen Sie uns über verschiedene Arten von Daten sprechen, auf die Sie hier ziemlich grundlegende Dinge stoßen könnten. Aberweißt
du, weißt
du, ich muss mit einfachen Dingen anfangen, und wir werden uns bis zu den komplizierteren Machine Learning Dingen von Data Mining arbeiten. Es ist jedoch wichtig zu wissen, mit welcher Art von Daten Sie zu tun haben, da verschiedene Techniken unterschiedliche Nuancen haben können,
je nachdem, welche Art von Daten Sie verarbeiten. Es gibt also mehrere Geschmacksrichtungen von Daten, wenn Sie so wollen, und ich mag Eis, was der Hauptgrund ist, warum diese Folie oben ist. Aber weiter gibt es numerische, kategorische und orginale Daten, und wieder,wissen
Sie, wissen
Sie, gibt es verschiedene Variationen von Techniken, die Sie für verschiedene Arten von Daten verwenden können . Sie müssen also immer im Hinterkopf behalten, mit welchen Daten Sie es zu tun haben, wenn Sie sie
analysieren. Fangen wir New Miracle an. Es ist wahrscheinlich der häufigste Datentyp stellt im Grunde eine quantifizierbare Sache dar, die Sie einige Beispiele messen können, die ich hier habe Höhen der Leute Seite Ladezeit, Aktienkurse. Wissen Sie,
Dinge, die Dinge variieren, die Sie Dinge messen können,
die
eine große Auswahl an Möglichkeiten haben . Ähm, jetzt gibt es im Grunde zwei Arten von numerischen Daten, also einen Geschmack eines Geschmacks, wenn du so willst. Es gibt diskrete Daten, die auf Energie basieren, zum Beispiel, die Konten einer Art von Ereignis sein könnten. Einige Beispiele hier. Wie viele Einkäufe hat ein Kunde in einem Jahr getätigt? Nun, das könnten nur diskrete Werte sein. Sie haben eine Sache gekauft oder zwei gekauft. Es geht um drei Dinge, die sie kaufen könnten, weißt
du, 2,25 Dinge oder drei und 3/4 Dinge. Es ist ein diskreter Wert, der eine Ganzzahlbeschränkung hat. Die andere Art von numerischen Daten sind kontinuierliche Daten. Das ist Zeug. Es hat eine unendliche Palette von Möglichkeiten, wo Sie in Bruchteile gehen können. So, zum Beispiel, wenn man auf die Höhe der Menschen zurückgeht, gibt es eine unendliche Anzahl möglicher Höhen für Menschen. Sie könnten fünf Fuß und 10.37625 Zoll groß sein oder was auch immer oder die Zeit, die es braucht, um
etwas wie Check-out auf einer Website zu tun , könnte jede riesige Auswahl an Möglichkeiten sein. Wissen Sie, 10,7625 Sekunden für alles, was Sie wissen, oder wie viel Regen an einem bestimmten Tag wieder fiel, gibt es eine unendliche Menge an Präzision, also ist das ein Beispiel für kontinuierliche Daten. Um zusammenzufassen , numerische Daten etwas, das Sie quantitativ mit einer Zahl messen können. Und es könnte entweder diskret sein, wo seine Energie basiert,
wie eine Art Ereigniszählung oder kontinuierlich, wo es unendliche Präzision gibt, die Sie für diese Daten zur Verfügung haben könnten. Die zweite Art von Daten, die wir über seine kategorischen Daten sprechen werden, und dies Daten, die keine inhärente numerische Sitzung hat. Sie können eine Kategorie nicht direkt mit einer anderen vergleichen. Dinge wie Geschlecht. Ja, keine Fragen. Rennen, Wohnsitzstaat, Produktkategorie, politische Partei. Sie können diesen Kategorien Zahlen zuweisen, und oft tun Sie dies, aber diese Zahlen haben keine inhärente Besprechung. Also, zum Beispiel kann
ich sagen, dass die Gegend von Texas größer ist als die Gegend von Florida, aber ich kann nicht einfach sagen, Texas ist größer als Florida, ich meine, sind nur Kategorien. Es gibt kein Riel, neues Wunder, quantifizierbare Bedeutung für sie. Es sind nur Möglichkeiten, verschiedene Dinge zu kategorisieren. Nun wieder, ich könnte eine Art numerische Hintern IG Nation für jeden Staat haben. Ich meine, ich könnte sagen, dass Floridas Staat Nummer drei in Texas Estate Nummer vier, aber es gibt keine echte Beziehung zwischen drei und vier. Sie haben recht. Es ist nur eine Abkürzung, diese Kategorien kompakter darzustellen. Auch hier haben kategoriale Daten keine intrinsische numerische Bedeutung. Es ist nur eine Möglichkeit, dass Sie eine Reihe von Daten basierend auf Kategorien aufteilen, und die letzte Kategorie, die Sie mit Arten von Daten hören, sind orginale Daten,
und es ist eine Art, ah, Mischung aus numerischen und kategorialen Daten. Und ein gemeinsames Beispiel sind Sternebewertungen für einen Film oder Musik oder was haben Sie. Also in diesem Fall haben
wir kategorische Daten, dass es ein bis fünf Sterne sein könnte. Sie wissen, wo man Armen darstellen könnte, und fünf könnten ausgezeichnet sein, aber sie haben mathematische Bedeutung. Wir wissen, dass fünf bedeutet, dass es besser ist als eine Eins. Dies ist also ein Fall, in dem wir Daten haben, in denen die verschiedenen Kategorien tatsächlich eine
numerische Beziehung zueinander haben . Also kann ich sagen, dass ein Stern weniger als fünf Sterne ist. Ich kann sagen, dass zwei Sterne weniger als drei Sterne sind und sagen, dass vier Sterne ist größer als zwei Sterne in Bezug auf ein Maß für Qualität. Es ist also irgendwie in der Mitte da. Du könntest auch daran denken. Wissen Sie, wenn Sie es nur als die tatsächliche Anzahl der Sterne als diskrete numerische Daten betrachten. Also definitiv eine feine Linie dort, und in vielen Fällen kann
man es tatsächlich so behandeln. Also da hast du es. Die drei verschiedenen Typen gibt es numerische, kategorische und orginale Durchmesser. Mal sehen, ob es versenkt ist. Keine Sorge, ich schaffe es nicht in deiner Arbeit vorbei oder so. Schnelles Quiz. Also für jedes dieser Beispiele, die Daten numerisch, kategorisch oder orginal? Beginnen wir damit, wie viel Gas in Ihrem Tank ist. Was meinst du? Nun, die richtige Antwort ist ein neues Wunder. Es ist ein kontinuierlicher numerischer Wert dort, weil Sie jede unendliche Palette von
Möglichkeiten von Gas in Ihrem Tank haben können . Ich meine, ja, das ist wahrscheinlich eine Obergrenze, wie viel Gas du hineinpassen kannst. Aber es gibt kein Ende der Anzahl der möglichen Werte, wie viel Gas Sie haben. Es könnte 3/4 eines Panzers sein. Es könnte 7/16 eines Panzers sein. Es könnte ein über Pi eines Panzers sein. Ich meine, wer weiß, richtig? Wie wäre es, wenn Sie Ihre allgemeine Gesundheit auf einer Skala von 1 bis 4 lesen, wo diese Entscheidungen entsprachen Kategorien ärmer, moderat, gut und ausgezeichnet, Glauben Sie? Nun, das ist ein gutes Beispiel für orginale Daten. Das ist sehr ähnlich wie unsere Film-Bewertungsdaten. Und
je nachdem, wie Sie modellieren, könnten Sie wahrscheinlich auch als diskrete numerische Daten behandeln . Aber technisch gesehen werden
wir diese Tortendaten nennen. Wie wär's mit den Rennen deiner Klassenkameraden? Weißt du, welche Nationalität sind sie? Ziemlich klares Beispiel für kategoriale Daten. Weißt
du, man kann nicht wirklich sagen, dass man gelbe Leute nicht vergleichen kann, die grünen Leute dort nur gelb und grün und einfach zwei zufällige Rassen
ausgesucht hat, die es nicht gibt. Ähm, aber Sie wissen, es
sind Kategorien, die Sie vielleicht studieren und die Unterschiede zwischen einer
anderen Dimension verstehen möchten . Wie wär's mit dem Alter deiner Klassenkameraden hier in dieser Klasse seit Jahren? Ein bisschen eine Trickfrage da. Wenn ich sagte, es müsste in einem neuen Energietal von Jahren sein, wie, wissen
Sie, 40 50 oder 55 Jahre alt, dann wären das diskrete numerische Daten. Aber wenn ich mehr Präzision hätte, wie, wissen
Sie, 40 Jahre, drei Monate und 2,67 Tage, dann wären das kontinuierliche numerische Daten. Aber so oder so, es ist ein numerischer Datentyp, und schließlich
Geld, das wieder in einem Geschäft ausgegeben wurde. Weißt du, das könnte ein Beispiel für kontinuierliche numerische Daten sein. Auch hier ist
dies nur wichtig, weil Sie verschiedene Techniken auf verschiedene
Datentypen anwenden können . Es könnte also einige Konzepte geben, bei denen wir zum Beispiel eine Art von Implementierung für kategoriale Daten und eine andere Art der Implementierung für numerische
Daten und eine andere Art der Implementierung für numerische
Datendurchführen. Das ist alles, was Sie über die verschiedenen Arten von Daten wissen müssen. Ziemlich einfache Konzepte Bereich erhalten Sie numerische kategorische und Ordell Daten und numerische Daten könnten kontinuierlich oder diskret sein, und es kann verschiedene Techniken, die Sie anwenden,
je nachdem, mit welcher Art von Daten Sie zu tun haben. So werden wir sehen, dass während des gesamten Kurses weiter
11. Mean, Median, Modus: Lassen Sie uns eine kleine Auffrischung der Statistiken machen. 101 e. Ich meine,
das ist wie Grundschulkram, aber gut, es wieder durchzugehen und irgendwie die Unterschiede zu schätzen und wie diese verschiedenen Techniken verwendet werden. Mittelwert und Modus. Ich bin sicher, dass Sie für diese Begriffe vorher, aber es ist gut zu sehen, wie sie anders verwendet werden. Also lasst uns eintauchen. Gehen wir weiter zu Median und Modus. Das sollte eine Rezension für die meisten von euch sein. Ich glaube, sie unterrichten diese Sachen heutzutage in der Grundschule. Aber nur eine schnelle Auffrischung, anderen
Worten,
beginnen, tatsächlich in einige echte Statistiken einzutauchen. Schauen wir uns nur einige aktuelle Daten an und finden heraus, wie man diese Dinge misst. Der Mittelwert
ist, wie Sie wahrscheinlich wissen, wie Sie wahrscheinlich wissen,nur ein anderer Name für den Durchschnitt, um den Mittelwert eines Datensatzes zu berechnen. Alles, was Sie tun müssen, ist einige bis alle Werte und geteilt durch die Anzahl der Täler, die Sie haben. Nehmen wir also dieses Beispiel hier. Nehmen wir an, ich ging von Tür zu Tür in meiner Nachbarschaft und fragte alle, wie viele Kinder sie haben? Wie viele Kinder leben in ihrem Haushalt, das ist übrigens ein gutes Beispiel für diskrete numerische Daten, richtig? Denken Sie daran, von der vorherigen Vorlesung. Sagen wir mal, ich gehe herum und fand heraus, dass das erste Haus keine Kinder drin hat. Und das zweite Haus hat zwei Kinder und der SEC Dritte Haushalt hat drei Kinder und zwei und eins und so weiter und so weiter. Also eine Maske, dieser kleine Datensatz von diskreten numerischen Daten. Und um herauszufinden, was ich tue, ist, sie alle zusammen hinzuzufügen und geteilt durch die Anzahl der Häuser, in die ich ging. In diesem Fall kommt
es also aus Null plus zwei plus drei, plus all den Rest dieser Dinge geteilt durch die Anzahl der Häuser, die ich angeschaut habe, das ist neun. Und die durchschnittliche Anzahl von Kindern pro Haus in meiner Probe ist 1,11 Also da haben Sie es
jetzt bedeuten , Median. Es ist ein bisschen anders. Die Art und Weise, wie Sie den Median eines Datensatzes berechnen, besteht darin, alle Werte zu sortieren und
denjenigen zu nehmen , der in der Mitte endet. Wenn das
zum Beispielmein ursprünglicher Datensatz wäre,könnte
ich ihn numerisch sortieren,
und ich kann die Nummer, die schlief, in der Mitte der Daten,
die sich als eins erweist, nehmen. zum Beispiel Wenn das
zum Beispielmein ursprünglicher Datensatz wäre, könnte
ich ihn numerisch sortieren, und ich kann die Nummer, die schlief, in der Mitte der Daten,
die sich als eins erweist, nehmen Also wieder,
alles, was ich tue, ist die Daten Art numerisch zu nehmen und den Mittelpunkt zu nehmen. Das ist alles, was es für die Medien gibt. Jetzt gibt es eine Nuance, wenn Sie sie sogar im Vergleich zu einer ungeraden Anzahl von Datenpunkten haben, als der Median tatsächlich zwischen zwei Datenpunkten fallen könnte, oder? Wie, wenn ich Ah hätte, eine gerade Anzahl von Datenpunkten, dass es klar wäre, welcher tatsächlich die Mitte ist . In diesem Fall ist
alles, was Sie tun, nehmen Sie den Durchschnitt der zu tun in der Mitte fallen. Also, wenn Sie nicht gerade Zahl haben, nehmen
Sie einfach die Mitte zu jetzt dieses Beispiel eines Medians und der Mittelwert, dass wir ziemlich nahe
beieinander sind, weil es nicht viele Ausreißer gab. Wir hatten 012 oder drei Kinder,
aber wir hatten keine verrückte Familie, die 100 Kinder hatte. Wir hatten 012 oder drei Kinder, Das hätte den Mittelwert wirklich verzerrt. Aber es könnte den Median nicht zu stark verändert haben, oder? Und deshalb ist der Median oft eine sehr nützliche Sache zu betrachten und oft übersehen. Die Leute neigen manchmal dazu, Leute mit Statistiken in die Irre zu führen, und ich werde darauf hinweisen, wo immer ich kann. Aber zum Beispiel können
Sie über das mittlere oder durchschnittliche Haushaltseinkommen in den Vereinigten Staaten sprechen, und diese tatsächliche Zahl aus dem letzten Jahr, als ich es nachsah, war 72.000 einige ungerade Dollar. Aber das sagt nicht wirklich ein genaues Bild davon, was der Durchschnitt, was der typische Amerikaner macht. Denn wenn man sich das mittlere Einkommen anschaut, ist
es viel niedriger seine 51.939$. Warum ist das? Nun, wegen Einkommensungleichheit gibt es ein paar sehr reiche Leute in Amerika, und das gleiche gilt auch in vielen Ländern. Amerika ist nicht einmal das Schlimmste, aber Sie kennen diese Milliardäre so super reiche Leute, die auf der Wall Street oder Silicon
Valley leben oder was auch immer sie das gemeine Recht verzerren. Aber es gibt so wenige von ihnen, sie den Median nicht so sehr beeinflussen. Dies ist also ein großartiges Beispiel dafür, wo der Median eine viel bessere Geschichte über die typische
Person oder Datenpunkt in diesem Beispiel erzählt als der Mittelwert also, wenn jemand über den
Mittelwert spricht ,
an den man denken muss , Wie sieht das Datum der Verteilung aus? Gibt es Ausreißer, die das bedeuten könnten? Und wenn die Antwort potenziell ist, ja, sollten
Sie auch nach dem Median fragen, denn oft gibt das mehr Einsicht als der Mittelwert oder der Durchschnitt. Schließlich werden
wir über Modus sprechen. Dies kommt in der Praxis nicht wirklich oft auf, aber man kann nicht über Mittelwert und Median sprechen, ohne über Modus zu sprechen. Ich weiß nicht warum. Weil es mit ihnen anfängt, schätze
ich. Aber alles, was ist der häufigste Wert im Datensatz. also zu meinem Beispiel für die Anzahl der Kinder in jedem Haus zurückgehe, Wenn ichalso zu meinem Beispiel für die Anzahl der Kinder in jedem Haus zurückgehe,schaue ich mir einfach an, welche Zahl am häufigsten auftritt, erweist sich
dies als Null. Und der Modus daher dieser Daten ist
daherNull. Die häufigste Anzahl von Kindern in einem bestimmten Haus in dieser Nachbarschaft ist keine Kinder, und das ist alles, was jetzt bedeutet. Dies ist eigentlich ein ziemlich gutes Beispiel für
kontinuierliche und diskrete Daten,
richtig,
weil dies nur mit diskreten Daten funktioniert. kontinuierliche und diskrete Daten, richtig, Wenn ich einen kontinuierlichen Datenbereich habe, kann ich nicht wirklich über den häufigsten Wert
sprechen, der auftritt, es sei denn, wollen Bindungen, die irgendwie in diskrete Werte eingehen. OK, also haben wir bereits auf ein Beispiel hier gestoßen, bei dem der Datentyp wichtig ist, Modus in der Regel nur für diskrete numerische Daten relevant ist. Und wenn Sie kontinuierliche Daten haben, nicht so sehr. Viele reale Daten neigen dazu, kontinuierlich zu sein. Vielleicht hörst du deshalb nicht zu viel über den Modus. Aber es ist hier der Vollständigkeit halber. Da haben Sie es bedeutet Median und Modus auf den Punkt gebracht, und wir könnten weitermachen. Mittelwert und Modus, Art der grundlegendsten Statistiken Zeug, die Sie möglicherweise tun können. Aber ich hoffe, dass er dort eine kleine Auffrischung über die Wichtigkeit der Wahl zwischen Median
und Mittelwert gewonnen hat. Sie können ganz unterschiedliche Geschichten erzählen, und doch neigen die Menschen dazu, sie in ihren Köpfen gleichzusetzen. Stellen Sie also sicher, dass Sie ein verantwortungsvoller Datenwissenschaftler sind und Daten in einer Weise darstellen, die die Bedeutung
vermittelt, die Sie zu vertreten versuchen. Wenn Sie versuchen, einen typischen Wert anzuzeigen, ist der Median aufgrund von Ausreißern
häufig eine bessere Wahl als der Mittelwert. Also denken Sie daran, dass wir weitermachen
12. Die Nutzung von mittler, Medien und Modus in Python: Lassen Sie uns anfangen, einige echte Codierung und Python zu machen und sehen, wie Sie den mittleren Median und
Modus mit Python in einer I Python-Notebookdatei berechnen , die wir haben OK, also öffne das mittlere Median-Modus-Notebook von deinen Kursmaterialien hier drüben in deinem ah Jupiter Notizbuch Seite hier und wieder, wenn Sie Teoh Auffrischung brauchen, wie das geht, gehen Sie zurück zum Setup-Vortrag und ich werde Ihnen zeigen, wie Sie das tun. Aber sobald Sie den mittleren Modus offen haben, können
Sie damit herumspielen. Mal sehen, was hier vor sich geht. Was wir also anfangen werden, ist, einen gefälschten Datensatz der Einkommensverteilung zu erstellen. Also werden wir 10.000 Leute modellieren und wieviel Geld sie jedes Jahr verdienen. Umdies
zu tun,werden
wir das Num Pie Paket verwenden. dies
zu tun, Also, wie wir beim Importieren von Paketen in unserer Einführung in Python gesprochen haben, wird beginnen, indem wir wichtige taub pie AS und P sagen. Dies erlaubt uns, auf das taub pie Paket als nur np zu beziehen, was uns nur einige erspart Eingabe zusätzlich zum Importieren dieses Pakets, damit wir es jetzt verwenden können Das num pie Paket enthält eine Funktion namens random dot normal, und was dies tut, ist eine zufällige Verteilung zu erstellen. Grundsätzlich erzeugt
es eine Glockenkurvenverteilung von Daten um einen bestimmten Punkt in diesem Fall, $27.000 mit einer Standardabweichung von $15.000. Und wir wollen 10.000 Datenpunkte in diesem Datensatz. nun Wenn Sienunmit Standardabweichung und Normalverteilungen nicht vertraut sind, werden
wir später ausführlicher darüber sprechen. Aber ich denke, du wirst anfangen, es zu verstehen, wenn du diese Übung durchmachst. Sobald wir also diesen Datensatz von 10.000 Personen erstellt haben, die eine Verteilung auf $27.000 zentriert haben, können wir dann col n p dot bedeuten, das num pie Paket zu verwenden, um den Mittelwert
oder den Durchschnitt dieses Datensatzes zu berechnen . Und da wir angegeben haben, dass es um $27.000 zentriert sein sollte, würden wir erwarten, dass es
ungefähr $27.000 sein wird . Also klicken Sie in diesen Codeblock und drücken Sie Shift Enter, um es auszuführen, und sicher genug, es ist ungefähr $27.000 jetzt, weil es eine zufällige Komponente zu diesem Ihr Ergebnis kann
etwas anders sein . Das wird erwartet. Das ist in Ordnung, aber es sollte fast 27.000 sein, damit wir das eigentlich planen können, um mehr in das Gefühl zu bekommen,
wie der Staat verteilt ist. Um dies zu tun, werden
wir ein Paket namens Matt Plot Lib verwenden, das es uns ermöglicht, wirklich einfache Diagramme hier in Zeile zu erstellen und tatsächlich diese
Grafiken in der Notebookdatei selbst anzuzeigen . Wir müssen sagen, Prozent Matt plotten lib in Linie als erste Zeile hier. Sie jemals mit diesem Kurs in den Notizbüchern, in denen Ihre
Diagramme angezeigt werden, in Zukunft auf ein Problem gestoßen ? Es liegt wahrscheinlich daran, dass Sie vergessen haben, einen Codeblock auszuführen, dass es Matt Plot live in
line enthielt , die erforderlich ist, um diese Diagramme tatsächlich zu sehen. das aus dem Weg ist, jedoch können
wir
jedochdas eigentliche Matt Plot lib-Paket selbst importieren, spezifisch das Pipe Lot Teil davon und wieder wird darauf als Alias von Plt verweisen, nur um uns zu retten und zu tippen. Also, jetzt, wo wir Matt Pot Libs Tortenplot installiert haben, können
wir einfach sagen, Plot dot zissed, um ein hist ein Gramm unseres Einkommensdatensatzes zu erstellen, und wir werden die Nummer 50 übergeben, was bedeutet, dass wir diese Aufteilung in 50
verschiedene Eimer wollen . Also gehen wir zu Kwan Ties sind ein Datensatz in 50 diskrete Eimer von Daten,
wenn Sie so wollen, wenn Sie so wollen, und dann können wir Plot nennen, die ich gezeigt habe. Eigentlich zeig es. Lass uns weitermachen und das auch ausführen. Shift, geben Sie innerhalb dieses Blocks ein und Sie sollten etwas sehen, das ein bisschen so aussieht. Also gibt es diese Glockenkurve, die ich dir versprochen habe, richtig, und du kannst sehen, dass sie um 27.000 Dollar oder so zentriert ist. Wenn Sie nicht mit der Geschichte vertraut sind, Grams, Die Art, diese Daten zu interpretieren, ist, dass viele Leute rund $27.000 pro Jahr machen. Nur sehr wenige Menschen machen zwischen 60.000 und 80.000 Dollar pro Jahr. Okay, das sind
also die fiktiven Daten, die wir erfunden haben. Also haben wir gesehen, dass der Mittelwert etwa 27.000 Dollar beträgt. Das macht Sinn. Das ist es, was wir erwarten würden. Was ist der Median? Also wieder, die Medien sind gerecht. Wenn wir all diese Daten sortieren würden, was wäre der Wert in der Mitte von allem. Und da wir hier eine schöne,
gleichmäßige Glockenkurvenverteilung haben , sollte
der Median ungefähr der gleiche sein wie der Mittelwert. Gehen wir weiter und klicken Sie hier in Block drei und führen Sie diese Schicht aus. Geben Sie ein und sicher genug, das sind auch etwa $27.000. Also für einen gleichmäßig zerstörten Datensatz wie diesen, wird
der Median und der Mittelwert ungefähr gleich sein. Allerdings ist
nicht jeder Datensatz gleichmäßig verteilt. Mal sehen, was passiert, wenn wir Jeff Bezos in die Mischung geben. Und sagen wir einfach, dass er letztes Jahr $1.000.000.000 verdient hat. Es ist wahrscheinlich ein bisschen auf der hohen Seite, sogar für Jeff Bezos. Aber nur um des Arguments willen werden
wir n p dot append aufrufen, um nur einen zusätzlichen Wert an die Einkommensliste anzuhängen, und es wird einen einzigen Wert enthalten,
eine Milliarde. Also werden wir hier eine neue Einkommensliste haben, die normalerweise verteilte Daten plus Jeff
Bezos enthält , um die Dinge durcheinander zu bringen. Denken Sie daran, dass der Median nur repräsentiert, was der mittlere Wert weit ist, um sie alle zu sortieren. Und wir haben hier nur einen weiteren Datenpunkt hinzugefügt, also sollte sich das nicht viel ändern, richtig? Also lassen Sie uns den Median erneut ausführen, und wir bekommen immer noch einen Wert in der Nähe von $27.000. So hat Jeff Bezos den Median unseres Datensatzes nicht durcheinander gebracht. Aber wenn wir den Mittelwert berechnen, wird
es ganz anders sein, oder? Das ist bis zu 127.000 Dollar. Fast so. Dies ist eine großartige Geschichte darüber, wie ein Ausreißer in einem Datensatz den Mittelwert oder den
Durchschnittswert dieses Datensatzes wirklich durcheinander bringen kann . Wenn die Leute also über Durchschnittswerte oder Mittel sprechen, dann nehmen Sie diese Information mit einem Salzkorn. Fragen Sie sich Könnte es Ausreißer geben, die diese Daten verzerren? Und, ah, Einkommensverteilung ist ein großartiges Beispiel dafür. In diesem Fall wird Ihnen
der Median eine bessere Geschichte darüber erzählen, was wirklich in der größeren
Bevölkerung passiert . Also wissen Sie, Statistik Lektion Nummer eins oder wie man auf Leute aufpasst, die mit Statistiken liegen. Stellen Sie sicher, dass Sie den Unterschied zwischen Median und Mittelwert verstehen, und wenn es Ausreißer beteiligt sind, die Medien und es wird wahrscheinlich geben Ihnen mehr nützliche Informationen wird auch auf Modus berühren, nur weil es mit ihnen beginnt und die Leute sprechen darüber zusammen mit Mittelwert und Median aus irgendeinem Grund. Also lassen Sie uns voran und erstellen Sie hier einen weiteren gefälschten Datensatz. Dies wird gleichmäßig verteilt. Wir werden ein Haufen gefälschter Alter für 500 Leute haben. Also werden wir np dot random dot rand dazu aufrufen, eine gleichmäßige Verteilung von zwischen 18 und
19 Jahren für 500 Leute zu haben . Und dann werden wir nur Ewigkeiten eingeben, was uns erlaubt, dieses Array hier in der Reihe zu visualisieren. Umschalteingabe innerhalb dieses und dies ist zufällig. Also werden wir jedes Mal unterschiedliche Ergebnisse bekommen, um den Modus wieder zu berechnen. Das ist nur der Wert, der am häufigsten in diesem Datensatz angezeigt wird. Also lasst uns weitermachen und das tun. Hättest du das tun sollen? Wir werden These I pi-Paket und es ist Statistik-Modul verwenden, und es ist nur eine andere Möglichkeit, es zu importieren. Also sagen wir von CYP ich importiere Statistiken. In diesem Fall werden
wir die as-Klausel nicht verwenden, weil ich Statistiken eingeben kann, die nicht zu schwer sind. Und dann werden wir den Statis-Punkt-Modus auf dem Alters-Array aufrufen, um unser Mode-Ergebnis zurückzubekommen, und danach ein wenig
weggeschuckt. Es hat eine Ladung. Das Paket, das wir bekommen. Unsere Antwort. Stellt sich heraus, in diesem Fall ist
der Modus 28, der 14 Mal im Zustand der Menge aufgetreten ist. Und das ist völlig zufällig. Jedes Mal, wenn Sie dies ausführen, erhalten
Sie eine andere Antwort. Lass uns gehen. Lasst uns gehen! Zurück, Teoh. Block Sieben Hier wieder und Shift geben Sie erneut ein, um hier einen neuen Datensatz zu erhalten. Und wenn wir diese Blockade wieder ausführen, sollten
Sie diesmal eine andere Antwort bekommen, die Wähler 20, die 15 Mal stattgefunden hat. So zeigt Ihnen nur, dass der Modus funktioniert. Aber das sind zufällige Daten,
also ist es nicht schrecklich sinnvoll, aber veranschaulicht, wie Sie das in Cyp I tun würden. Alles klar, also haben Sie es bedeuten Median und Modus. Gehen wir zu einer Übung über, damit Sie damit üben können. Ich werde dir ein bisschen Simon geben. Hier. Wenn Sie mittlere Übung I Python-Notebook öffnen. Es gibt einige Sachen, mit denen Sie spielen können, also möchte ich, dass Sie Ihre Ärmel hochkrempeln und tatsächlich versuchen, dies hier zu tun, haben wir ein paar zufällige E-Commerce-Daten. Also was? Diese Daten stellen den Gesamtbetrag dar, der pro Transaktion ausgegeben wird. Und wieder, genau wie bei unserem vorherigen Beispiel, ist nur eine normale Verteilung der Daten. Genau wie unser Einkommensbeispiel das ausführen kann und Ihre Hausaufgaben darin bestehen, den
Mittelwert und den Median dieser Daten mit dem Klumpen zu finden , packe ich so ziemlich die einfachste Zuordnung Sie sich vorstellen können. Alle Techniken, die Sie benötigen, sind auf dem mittleren Medianmodus von Python Notebook. Mein Punkt hier ist nicht wirklich, uns herauszufordern, nur um Sie tatsächlich einen Python-Code zu schreiben und sich davon zu überzeugen, dass Sie
tatsächlich ein Ergebnis bekommen und hier etwas passieren lassen können . Also mach voran und spiele damit. Wenn Sie Probleme haben, helfen Ihnen die Diskussionen für die Auswahl zu posten. Aber es sollte ziemlich trivial sein, wenn Sie das einige spielen wollen oder sich frei fühlen, um
mit der Datenverteilung hier zu spielen und zu sehen, welche Auswirkungen Sie auf die Zahlen dort haben können. Weißt du, bei einigen Ausreißern tun wir irgendwie, was wir mit den Einkommensdaten machen, die so verwirrt
sind, wie du dieses Zeug
lernst , hast Spaß daran, alles klar. Ich hoffe, er rollte deine Ärmel hoch und spielte tatsächlich ein bisschen um diesen Code herum. Holen Sie sich etwas Vertrauen darin, Statistiken in I Python Notebook,
Bear und Python im Allgemeinen zu machen . Also, ohne hinter uns, gehen
wir voran zu unserem Netzkonzept, Standardabweichung und Varianz.
13. Variation und Standardabweichung: Lassen Sie uns über Standardabweichung und Variantenkonzepte in Begriffen sprechen, die Sie wahrscheinlich
zuvor gehört haben . Aber lassen Sie uns etwas tiefer darüber gehen, was sie wirklich bedeuten und wie Sie
sie berechnen . Es ist ein Maß für die Verbreitung einer Datenverteilung, und ich werde in ein paar Minuten etwas mehr Sinn machen. Lassen Sie uns über Standardabweichung in Varianten zu grundlegenden Mengen für eine
Datenverteilung sprechen, die Sie in diesem Kurs immer wieder sehen werden. Also mal sehen, was sie sind. Wenn Sie erneut eine Auffrischung benötigen, schauen wir uns eine Historie Graham an, da Varianz und Standardabweichung sich alles um die Streuung des Datums der Form der Verteilung eines Datensatzes dreht. Also lassen Sie uns einen Blick auf diese gefälschten Daten werfen. Nehmen wir an, wir haben einige Daten über die Ankunftshäufigkeit von Flugzeugen an einem Flughafen, zum Beispiel, und diese Geschichte Graham würde darauf hinweisen, dass jedoch wir zu Kwan Verbindungen diese Daten wählen. Nehmen wir an, wir haben ungefähr vier Ankünfte pro Minute. Nun, das passierte an , etwa 12 Tagen,in denen wir nach diesen Daten gesucht haben. Also 12 verschiedene diskrete Datenpunkte bei vier Ankünften permanent ish, aber dann haben wir diese Ausreißer. Wir hatten einen wirklich langsamen Tag, der nur eine Ankunft pro Minute zu mir hatte, hatte
nur einen wirklich schnellen Tag, an dem wir fast 12 Ankünfte pro Minute hatten. Also wieder, die Art, eine Geschichte zu lesen Graham ist Suchen Sie nach dem Bucket eines bestimmten Werts und das sagt Ihnen wie häufig dieser Wert in Ihren Daten und der Form des Verlaufs aufgetreten ist. Ram könnte Ihnen viel über die Wahrscheinlichkeitsverteilung eines bestimmten Satzes von Daten erzählen. Wir wissen also aus diesen Daten, dass es sehr wahrscheinlich ungefähr vier Ankünfte pro Minute haben wird. Aber es ist sehr unwahrscheinlich, dass ein oder 12 Recht haben, und wir können auch speziell über die Wahrscheinlichkeiten aller Zahlen zwischen sprechen. Es ist also nicht nur unwahrscheinlich, dass 12 Ankünfte erlaubt sind, es ist auch sehr unwahrscheinlich, dass neun Ankünfte pro Minute haben. Und wenn wir anfangen, uns zu bewegen , wissen
Sie, essen oder so fangen die Dinge ein wenig an. Also viele Informationen, die wir von einem History Graham haben, und die Varianz spricht nur dazu, wie ausgebreitet, was die Form dieser Daten ist. Wie breitet sich Ihr Datensatz aus? Wie messen Sie die Varianz gut, wir bezeichnen sie normalerweise als Sigma quadrat und Sie werden herausfinden, warum momentan. Aber jetzt wissen
Sie nur, dass die Varianz nur der Durchschnitt der quadrierten Differenzen vom Mittelwert ist. Um also die Varianz eines Datensatzes zu berechnen, ermitteln
Sie zuerst den Mittelwert. Sagen wir mal, ich habe ein paar Daten. Es könnte alles repräsentieren. Sagen wir, maximale Anzahl von Menschen, die eine bestimmte Stunde lang in der Schlange standen oder etwas, das ich nicht
weiß . Und in der ersten Stunde beobachtete ich eine Person, die in der Schlange stand als vier als fünf und vier als acht. Okay, der erste Schritt bei der Berechnung der Varianz besteht darin, den Mittelwert der
Daten zu finden . Ich füge sie alle zusammen hinzu, geteilt durch die Anzahl der Datenpunkte. Und das kommt auf 4.4. Ist die durchschnittliche Anzahl der Personen, die in der Schlange stehen Jetzt besteht der nächste Schritt darin, die
Unterschiede vom Mittelwert für jeden Datenpunkt zu finden . Also weiß ich, dass der Mittelwert 4,4 ist. Also für meine ersten Daten 0,4 Punkt vier, und bei einem, so dass ein minus 4,4 negativ 3,4 vier minus 4,4 ist negativ. 0.4 und so weiter und so weiter. Okay, also komme ich mit Leichtigkeit sowohl positive als auch negative Zahlen, die die Abweichung vom
Mittelwert für jeden Datenpunkt darstellen . OK, aber was ich will, ist eine einzelne Zahl, die die Varianz dieses gesamten Datensatzes darstellt. Also das nächste, was ich tun werde, lassen Sie uns die quadratischen Unterschiede finden. Also mussten wir einfach jeden dieser rohen Unterschiede vom Mittelwert durchlaufen und
sie quadrieren . Dies ist aus ein paar verschiedenen Gründen. Zuallererst möchte
ich sicherstellen, dass negative Varianzen genauso viel wie positive Varianzen, richtig. Andernfalls würden
sie sich gegenseitig absagen, nicht schlecht sein. Ich möchte den Ausreißern auch mehr Gewicht geben. Dies verstärkt also die Wirkung von Dingen, die sich sehr von dem Mittelwert unterscheiden, während sie
immer noch erhalten, stellt sicher, dass die negative und positive Luft vergleichbar verglichen Also schauen wir uns an, was dort
passiert. So negativ 3,4 quadriert positiv, 11,6 negativ 0,4 quadriert, aber kleinere Zahl von 0,16, weil das ist viel näher an den Mittelwert von 4,4 Punkt sechs, auch in der Nähe des Mittelwerts nur 60.36 Aber wie wir bis zum positiven Ausreißer 3,6 Cent nach oben ist 12,96 in Ordnung, und um den tatsächlichen Variantenwert zu finden, nehmen
wir einfach den Durchschnitt aller dieser quadrierten Unterschiede vom Mittelwert. Also addieren wir alle diese quadrierten Varianzen dividiert durch fünf die Anzahl der Werte, die wir haben , und wir enden mit einer Varianz von 5,4 OK, das sind jetzt alle Varianzen. Typischerweise sprechen
wir über Standardabweichung mehr als Varianten, und es stellt sich heraus, dass Standardabweichung nur die Quadratwurzel der Varianz ist. Es ist einfach so einfach. Also hatte ich eine Varianz von 5,4. Die Standardabweichung ist 2,24 So sehen Sie jetzt, warum wir Variant Sigma quadrat genannt haben. Es liegt daran, dass Sigma selbst die Standardabweichung darstellt. Also, wenn ich die Quadratwurzel des Signals Square nehme, um Sigma zu bekommen, das in diesem Beispiel endet,
auf 2.24 Dies ist ein History Graham der tatsächlichen Daten, die wir betrachteten. Jetzt sehen wir, dass die Zahl vier sie zweimal in unserem Datensatz, und dann hatten wir 1115118 Nun wird die Standardabweichung in der Regel als eine Möglichkeit verwendet, um über
die, wie Ausreißer in Ihrem Datensatz zu identifizieren denken . Also, wenn ich sage, ob ich innerhalb einer Standardabweichung des Mittelwerts von 4,4 bin, wird das als eine
Art typischer Wert in einer Normalverteilung angesehen. Aber Sie können in diesem Beispiel sehen, dass die Zahlen eins und acht tatsächlich außerhalb dieses
Bereichs liegen . Also, wenn ich 4,4 plus oder minus 2,24 nehme, wissen Sie, dass wir dort landen und dort und jeder achte fallen beide außerhalb dieses Bereichs einer Standardabweichung. Also können wir mathematisch sagen, dass jeder achte oder Ausreißer Wir müssen nicht irgendwie wie ein Augapfel es
erraten. Jetzt gibt es noch eine Art Urteilsvermögen. Rufen Sie uns an, was Sie als Ausreißer in Bezug auf wie viele Standardabweichungen betrachten, damit Sie generell darüber sprechen können, wie viel von einem Ausreißer-Datenpunkt ist, wie viele
Standardabweichungen vom Mittelwert es ist. Das ist also etwas, für das Sie Standardabweichung in der realen Welt sehen werden, es gibt ein wenig neue Wünsche zur Standardabweichung in Varianten. Und das ist, wenn Sie über Population im Vergleich zu Stichprobenvarianz sprechen. Okay, nur ein kleiner Unterschied. Wenn Sie also mit einem kompletten Satz von Daten arbeiten,wissen
Sie, wissen
Sie, einem kompletten Satz von Beobachtungen, dann tun Sie genau das, was ich Ihnen gesagt habe. Sie nehmen einfach den Durchschnitt aller quadrierten Varianzen vom Mittelwert und das sind Ihre Varianten. Aber wenn Sie Ihre Daten abtasten, wissen
Sie, wenn Sie eine Teilmenge der Daten verwenden, nur um das Computing zu erleichtern, müssen
Sie etwas anderes tun. Anstatt durch die Anzahl der Stichproben zu dividieren, dividiert man durch die Anzahl der Stichproben minus eins . Okay, also schauen wir uns dieses Beispiel ein Beispiel an. Wir hatten gerade die Populationsvarianz ist genau das, was wir getan haben. Wir nahmen die Summe der quadrierten Varianzen in geteilt durch fünf, die Anzahl der Datenpunkte, die wir 5,4 erhalten mussten, aber die Stichprobenvarianz, die durch S quadriert geschätzt wird, wird durch vier und minus eins geteilt. Also nahmen wir die Anzahl der Datenpunkte, die wir einen subtrahiert hatten, und bekamen die Stichprobenvarianz , die auf 6,3 kommt. dies also Wenndies alsoeine Art Beispiel wäre, die wir aus einem größeren Datensatz genommen haben, würden Sie
das tun. Wenn es der komplette Datensatz ist, teilen
Sie sich mit der tatsächlichen Zahl, okay? Und das ist zu extreme Population und Stichprobenvarianz. Warum es in
wirklich seltsame Dinge über die Wahrscheinlichkeit gerät , ,an die Sie wahrscheinlich nicht zu viel denken wollen . Und wenn Sie dies in Bezug auf ausgefallene mathematische Notation ausdrücken möchten, versuche
ich, die Notation in diesem Kurs so weit wie möglich zu vermeiden. Ich denke, die Konzepte sind wichtiger, aber das ist grundlegend genug Zeug, dass Sie es immer wieder sehen werden. Population verschiedene wird normalerweise als Sigma bezeichnet, das mit Sigmund-Standardabweichung quadriert ist, und wir könnten sagen, dass die Summierung des jeden Datenpunkts X minus dem Mittelwert ist, den Sie quadriert haben. Das sind die Varianten jeder Probe, die über Ende quadriert ist. Die Anzahl der Datenpunkte und der Stichprobenabweichung ist ähnlich, ist es nicht quadratisch. Und das ist die Summe jedes Datenpunkts minus dem Mittelwert m des Stichprobensatzes über und minus eins. Also subtrahieren Sie eins von der Anzahl der Samples, die Sie haben, das ist alles, was es gibt. Schauen wir uns also einige echte Beispiele an und schreiben etwas Python-Code, um dies zu erreichen. Lassen Sie uns hier etwas Code schreiben und mit einigen Standardabweichungen in Varianzen spielen. Also, wenn Sie hochziehen, hat das nicht die Varianten Python Notebook gemacht. Sarah Deviation Variantendatei. Folgen Sie mir hierher. Bitte tun Sie, denn es gibt eine Aktivität am Ende, die ich möchte, dass Sie versuchen. Also werden wir hören, ist genau wie das vorherige Beispiel. Wir werden Matt Plot Live verwenden, um eine Geschichte Graham von einigen normalerweise verteilten
Zufallsdaten zu plotten . Und wir werden das nennen, wir nennen es Einkommen, die sagen, dass das auf 100 zentriert
sein wird . Hoffentlich ist
das ein Stundensatz oder so. Und auf jährliche oder es ist eine seltsame Stückelung widerstehen Abweichungen von 20 und 10.000
Datenpunkten . Also lasst uns voran gehen und das generieren und plotten. Da hast du es. So haben wir 10.000 Datenpunkte bei einer zentrierten um 100, wie Sie hier sehen können. Mit einer Normalverteilung mit einer Standardabweichung von 20 ist das also ein Maß für die Streuung dieser Daten, und sicher genug, können
Sie sehen, dass das häufigste Vorkommen etwa 100 ist. Und wenn wir immer weiter davon kommen, werden die
Dinge immer weniger wahrscheinlich. Und der Standardabweichungspunkt von 20, den wir angegeben haben, ist dort herum. So können Sie diese Art von dem Punkt sehen, an dem die Dinge scharf abfallen, oder? So können wir sagen, dass die Dinge jenseits dieser Standardabweichung, Grenze oder ungewöhnlich. Jetzt Dump I macht es auch unglaublich einfach, die Standardabweichung in der Varianz zu konkurrieren. Wenn Sie die tatsächliche Standardabweichung dieses von uns generierten Datensatzes berechnen möchten, rufen
Sie einfach die STD-Funktion direkt am Datensatz selbst auf. Also kein Schiedsrichter, wenn es eine Liste erstellt, es ist nicht nur eine normale Python-Liste, hat
tatsächlich einige zusätzliche Dinge daran angeheftet, so dass Sie tatsächlich Funktionen wie STD für Standardabweichung aufrufen können. Und wir könnten das tun, und wir sollten eine Nummer ziemlich nahe an 20 bekommen, denn das ist es, was wir spezifizieren. Als wir unsere Zufallsdaten erstellt
haben, wollten wir eine Standardabweichung von 20. Sicher genug, 19.96 ziemlich nah und die Varianz ist nur eine Frage des Aufrufs von dot var, ziemlich nahe an 400 kommt, was 20 quadriert ist, oder? Die Welt macht also Sinn. Ja, Standardabweichung ist nur eine Quadratwurzel der Varianz. Oder Sie könnten sagen, dass Varianzen ein Standardabweichungsquadrat umgekehrt. Sicher genug, das klappt, also funktioniert die Welt so, wie sie sollte. Ich möchte, dass du hier eintauchst und tatsächlich damit herumspielst. Machen Sie es wirklich so versuchen, verschiedene Parameter zu generieren, dass normale Daten. Denken Sie daran, dies ist ein Maß für die Form der Verteilung der Daten. Was passiert, wenn ich diesen Mittelpunkt ändere? Es spielt keine Rolle. Beeinflusst es tatsächlich die Form? Hast du es ausprobiert und es herausgefunden? Versuchen Sie es mit der tatsächlichen Standardabweichung, die wir angeben, und sehen Sie, welche Auswirkungen auf die Form des Diagramms hat. Wenn ich also eine Standardabweichung von 30 möchte, könnte ich das dort ändern. Und du weißt, du kannst sehen, wie sich das tatsächlich auf die Dinge auswirkt oder lass es uns noch dramatischer machen, wie 50 Spielen Sie einfach um das, beginnend ein wenig dicker dort, richtig, also Spieler mit verschiedenen Werten bekommen einfach ein fühlen, wie diese Werte funktionieren. Dies ist der einzige Weg, um wirklich ein intuitives Gefühl der Standardabweichung, Varianz Mesereau und nur verschiedene Beispiele zu bekommen und den Effekt zu sehen, den es hat. Spielen Sie also ein wenig herum und sehen Sie den nächsten Vortrag, so dass die Standardabweichung in Varianten in der Praxis mit einigen davon in die Hände bekommen hat. Hoffe also, dass du ein bisschen herumgespielt hast, um etwas Vertrautheit mit ihm zu bekommen. Sehr wichtige Konzepte. Wissen Sie, wir haben viel über Standardabweichungen während des Kurses und während Ihrer Karriere
und Datenwissenschaft gesprochen , also stellen Sie sicher, dass Sie das unter Ihrem Gürtel haben. Lasst uns weitermachen.
14. Die Wahrscheinlichkeitsfunktion, die Massenfunktion: , so haben wir bereits einige Beispiele für eine normale Verteilungsfunktion für einige der Beispiele in diesem Kurs gesehen. Das ist ein Beispiel für eine Wahrscheinlichkeitsdichtefunktion, und es gibt andere Arten von Wahrscheinlichkeitsdichtefunktionen da draußen, also lasst uns eintauchen und sehen, was es wirklich bedeutet und was einige andere Beispiele von ihnen sind. Lassen Sie uns über Wahrscheinlichkeit,
Dichtefunktionen sprechen , und wir haben dies tatsächlich bereits im Kurs verwendet. Wir haben es einfach nicht so genannt. Also lasst uns etwas von dem Zeug formalisieren, über das wir gesprochen haben. Zum Beispiel haben wir die Normalverteilung einige Male in unseren Beispielen gesehen, und das ist ein Beispiel für eine Wahrscheinlichkeitsdichtefunktion hier ist, dass
Normalverteilungskurve . Also wissen Sie, es ist leicht, konzeptionell zu versuchen, dies als die Wahrscheinlichkeit eines gegebenen Wertes zu betrachten. Aber das ist ein wenig irreführend, wenn Sie über kontinuierliche Daten sprechen,
richtig, richtig, denn es gibt eine unendliche Anzahl von tatsächlich möglichen Datenpunkten in einem kontinuierlichen
Verteilungszustand , Sie wissen, dass es Null geben könnte oder 0,1 oder 0,1 rechts, so dass die tatsächliche Wahrscheinlichkeit eines sehr spezifischen Wertes ist sehr, sehr klein, unendlich, sogar unendlich klein. Die wahrscheinlich Desi Funktion spricht wirklich von der Wahrscheinlichkeit, dass ein gegebener Wertebereich auftritt. Also ist es das, was du darüber nachdenken musst. gibt es Zum Beispiel in einer Normalverteilung zwischen dem Mittelwert und einer Standardabweichung vom Mittelwert eine 34,1% Chance, in einer Normalverteilung zwischen dem Mittelwert und einer Standardabweichung vom Mittelwert eine 34,1% Chance,dass es sich aus einem Wert ergibt, der in diesen Bereich fällt, und Sie können dies verschärfen oder als viel, wie Sie wollen. Finden Sie die tatsächlichen Werte heraus, aber das ist der Weg, um über eine Wahrscheinlichkeit,
Dichte,
Funktion,
vergebener Wertebereich nachzudenken Dichte,
Funktion, Funktion, . Es sagt Ihnen, dass Sie eine Möglichkeit sehen können, die Wahrscheinlichkeit des Auftretens dieses Bereichs herauszufinden. Okay, Sie können hier sehen. Wissen Sie, wenn Sie innerhalb einer Standardabweichung dem Mittelwert nahe kommen, werden
Sie wahrscheinlich dorthin gelangen. Ich meine, wenn Sie 34 34 addieren, was auch immer das herauskommt, ist die Wahrscheinlichkeit, innerhalb einer
Standardabweichung des Mittelwerts zu landen . Aber wenn Sie hier zwischen zwei und drei Standardabweichungen kommen, wissen
Sie, wir sind auf nur ein bisschen über 4% kombiniert mit dem positiven und negativen und da Sie über drei Standardabweichungen hinaus
kommen und wir sind viel weniger als 1% Eigentlich. Ist dies der Weg, um die Wahrscheinlichkeiten des gegebenen Datenpunkts
zu visualisieren und zu sprechen ? Also wieder eine Wahrscheinlichkeitsverteilungsfunktion. Sie sehen die Wahrscheinlichkeit, dass ein Datenpunkt innerhalb eines bestimmten Bereichs eines bestimmten Wertes fällt. Ok. Und eine normale Funktion ist nur ein Beispiel für eine Wahrscheinlichkeitsdichtefunktion. Sehen Sie sich in einem Moment noch etwas mehr an. Nun, wenn Sie es mit diskreten Daten zu tun haben
, verschwindet diese kleine Nuance über unendliche Anzahl möglicher Werte, und wir nennen das etwas anderes. Das ist also eine Wahrscheinlichkeitsmassenfunktion für den Umgang mit diskreten Daten. Sie können über Wahrscheinlichkeitsmassenfunktion sprechen. So beispielsweise können
Sie
beispielsweiseeine Wahrscheinlichkeitsdichte,
Normalwahrscheinlichkeit,
Dichtefunktion kontinuierlicher Daten auf dieser schwarzen Kurve darstellen Normalwahrscheinlichkeit . Aber wenn wir das in einen diskreten Datensatz quantifizieren würden, wie wir es mit dem History Ram tun , können
wir sagen, dass die Zahl drei eine bestimmte Anzahl von Malen auftritt, wirklich, und Sie können tatsächlich sagen, die Zahl drei hat ein wenig über 30% Wahrscheinlichkeit des Auftretens, Also wahrscheinlich Massenfunktion ist die Art, wie wir die Wahrscheinlichkeit von diskreten Daten
visualisieren , und es sieht viel wie eine Geschichte Graham aus, weil es im Grunde ein History ram ist. Okay, also Terminologieunterschied wahrscheinlich Dichtefunktion, eine solide Kurve, die die Wahrscheinlichkeit beschreibt, dass ein Wertebereich mit kontinuierlichen
Daten geschieht . Wahrscheinlich Massenfunktion ist die Wahrscheinlichkeiten der gegebenen diskreten Werte, die in einem
Datensatz auftreten . Okay, also schauen wir uns einige tatsächliche Beispiele an, und es wird noch sinnvoller machen, dass wir irgendwo in die Tiefe gehen als nächstes.
15. Häufige Datenverteilungen: Schauen wir uns einige echte Beispiele für Wahrscheinlichkeitsverteilungsfunktionen und
Datenverteilungen im Allgemeinen und wickeln Sie Ihren Kopf um ein wenig mehr über Datenverteilungen und wie sie
visualisieren und in Python verwenden können. Also gehen Sie vor und öffnen Sie die Distributionen I Python Notebook Datei aus den Kursmaterialien , und Sie können mit mir hier folgen, wenn Sie möchten. Beginnen wir mit einem wirklich einfachen Beispiel. Also ah, einheitliche Verteilung bedeutet nur, dass es eine flache,
konstante Wahrscheinlichkeit gibt, dass ein Wert innerhalb eines bestimmten Bereichs auftritt, so dass wir verwenden können, indem wir die Klumpen-I-Zufalls-Punkt-Uniformfunktion verwenden. Und dieser Aufruf sagt, ich möchte einen gleichmäßig verteilten zufälligen Satz von Werten, die zwischen negativen 10 und positiven 10 und ich 100.000 von ihnen liegen. Und wenn ich dann eine hist erstelle, ein Gramm dieser Werte können Sie sehen, es sieht so aus. Es besteht also so ziemlich die gleiche Chance, dass ein gegebener Wert oder Wertebereich
innerhalb dieser Daten auftritt . Anders als bei der Normalverteilung, wo wir eine Konzentration von Werten in der Nähe des Mittelwerts ah gleichmäßige Verteilung als gleiche
Wahrscheinlichkeit über einen bestimmten Wert innerhalb des Bereichs gesehen haben, den Sie definieren. Wie würde die Wahrscheinlichkeitsverteilungsfunktion dieses aussehen? Während ich erwarten würde, im Grunde Null außerhalb des Bereichs von negativen 10 oder jenseits 10 zu sehen. Aber wenn ich zwischen negativen 10 und 10 würde ich eine flache Linie sehen, weil es eine konstante
Wahrscheinlichkeit gibt , dass einer dieser Wertebereiche auftritt. Okay, also eine gleichmäßige Verteilung, würden
Sie eine flache Linie in der Wahrscheinlichkeitsverteilungsfunktion sehen, weil es
im Grunde eine konstante Wahrscheinlichkeit gibt . Jeder Wert, jeder Wertebereich hat die gleiche Chance, wie jeder andere Wert zu erscheinen. Okay, und das passiert manchmal. Jetzt haben wir in der Vergangenheit normale oder auch als Galaxie- und Distributionsfunktionen bekannt gesehen, und bereits in diesem Kurs können
Sie diese tatsächlich in Python visualisieren. Es gibt eine pdf-Funktion auf der CYP idot stats dot norm Paketfunktion. Also hier, in diesem Beispiel, lassen Sie uns einfach durch das gehen, was hier passiert. Wir erstellen eine Liste von X-Werten, um diesen Bereich zwischen negativen drei und
positiven drei mit einem Inkrement von 30.1 dazwischen zu applaudieren . Okay, also diese Luft die X-Werte im Diagramm und sie wollten die X-Achse und die
Y-Achse wird die normale Funktion Norm dot pdf Wahrscheinlichkeitsdichtefunktion für eine Normalverteilung auf diese X-Werte sein. Und wir enden damit. Die PDF-Funktion mit normaler Verteilung sieht also genauso aus wie in unserer vorherigen Folie . Das ist eine Normalverteilung für die gegebenen Zahlen, die wir angegeben haben, wo Null den Mittelwert
darstellt und diese Zahlen Standardabweichungen sind, um tatsächlich
Zufallszahlen mit Normalverteilung zu generieren . Wir haben dies bereits ein paar Mal gemacht, aber genauso wie eine Auffrischung wieder, wenn Sie das Num Pie Paket verwenden, hat
es eine zufällige Punkt-Normalfunktion. Und der erste Parameter mu stellt den Mittelwert dar, den Sie zentrieren möchten. Die Daten um Sigma sind die Standardabweichung dieser Daten, die im Grunde die Verbreitung dieser Daten ist. Und dann geben wir die Anzahl der Datenpunkte an, die wir mit einer normalen
Wahrscheinlichkeitsverteilungsfunktion wollen . Okay, also ist das der Weg, eine Wahrscheinlichkeitsverteilungsfunktion in diesem Fall zu verwenden, die normale Verteilungsfunktion. Um eine Reihe von zufälligen Daten zu generieren, verurteilen
wir Handlung, die nur eine Geschichte zeigen. Graham brach in 50 Eimer und zeig es, und das ist es, was wir am Ende damit. Es sieht mehr oder weniger wie eine Normalverteilung aus, aber da es ein zufälliges Element gibt, wird
es keine perfekte Kurve sein. Weißt du, wir reden alle über Wahrscheinlichkeiten oder Chancen, dass Dinge nicht ganz so sind, wie sie sein
sollten. Eine andere Verteilungsfunktion, Sie oft sehen, ist die exponentielle Wahrscheinlichkeitsverteilungsfunktion, bei der Dinge exponentiell
abfallen . Wenn Sie also über exponentielles Abfallen sprechen, erwarten Sie eine Kurve wie diese zu sehen, wo es sehr wahrscheinlich ist, dass etwas passiert, wissen
Sie, nahe Null. Aber dann, wenn Sie weiter davon entfernt sind, fällt
es sehr schnell ab. Es gibt also viele Dinge in der Natur, die sich so verhalten. Und um das in Python zu tun, genau wie wir eine Funktion in CYP I Statistiken für einen Normpunkt pdf hatten. Wir haben auch ein ex pond dot pdf für eine exponentielle Wahrscheinlichkeitsverteilungsfunktion, und wir könnten die gleiche Syntax wie für die Normalverteilung mit einer exponentiellen
Verteilung hier tun . Also wieder, wir erstellen einfach unsere X-Werte mit dem num pie, einer Bereichsfunktion, um eine Reihe von Werten zwischen Null und 10 mit einer Schrittgröße von 100.1 zu erstellen und dann zeichnen wir diese X-Täler gegen die Y-Achse, die definiert ist als Funktion exponentiell. Pdf von X und es sieht so aus, als ob exponentiell abfallen. Wir visualisieren auch wahrscheinlich Wahrscheinlichkeitsmassenfunktionen. Es wird von niemandem binomial Wahrscheinlichkeit, Massenfunktion und wieder, gleiche Sündensteuern vor. Also anstelle von ex Pond oder Norm, verwenden
wir einfach mit Gnome und wieder eine Erinnerung Wahrscheinlichkeit Massenfunktion befasst sich mit diskreten Daten, und in diesem Fall haben wir es mit diskreten Daten zu tun. Wir haben die ganze Zeit Veröffentlichungen, wie Sie darüber nachdenken. Wir erstellen einige diskrete X-Werte zwischen Null und 10 mit einem Abstand von 100.1 Und wir sagen, ich möchte eine binomiale Wahrscheinlichkeitsmassenfunktion mit diesen Daten plotten und mit der Wahrscheinlichkeitsmassenfunktion kann
ich tatsächlich die Shape dieser Daten verwenden, um Parameter und NP zu formen. In diesem Fall es 10 und 0,5, und wenn Sie verschiedene Werte herumspielen möchten, um zu sehen, welche Auswirkungen es hat, ist
das eine gute Möglichkeit, ein intuitives Gefühl dafür zu erhalten, wie diese Formparameter auf der Wahrscheinlichkeitsmassenfunktion. Schließlich ist
die andere Verteilungsfunktion, von der Sie hören könnten, eine Poisson-Wahrscheinlichkeitsmassenfunktion , und dies hat eine sehr spezifische Anwendung. Sieht viel wie eine normale Verteilung aus, aber es ist ein bisschen anders. Die Idee hier ist, wenn Sie einige Informationen über die durchschnittliche Anzahl der Dinge haben, die in einem bestimmten Zeitraum
passieren. Okay, das könnte Ihnen eine Möglichkeit geben, die Chancen vorherzusagen, anstatt an einem
bestimmten zukünftigen Tag einen anderen Wert zu bekommen . Okay, also als Beispiel, sagen
wir, haben eine Website, und im Durchschnitt erhalten
Sie 500 Besucher pro Tag. Ich kann die Pawson-Wahrscheinlichkeitsfunktion verwenden, um die Wahrscheinlichkeit zu schätzen, einen
anderen Wert an einem bestimmten Tag zu sehen . Nehmen wir an, ich bekomme durchschnittlich 500 Besuche pro Tag. Wie hoch sind die Chancen, 550 Besucher an einem bestimmten Tag zu sehen? Das ist, was eine Prasong-Wahrscheinlichkeitsfunktion Ihnen geben kann. Also in diesem Beispiel sage
ich, meine Durchschnittswerte 500 Sie Ich werde einige X-Werte toe einrichten. Betrachten Sie zwischen 406 100 mit einem Abstand von 1000,5. Und ich werde das mit dem Fossil auf Wahrscheinlichkeitsmassenfunktion planen. Und ich kann dieses Diagramm verwenden, um nach den Chancen zu suchen, einen bestimmten Wert zu erhalten. Das sind nicht 500, wenn man eine normale Verteilung annimmt. So 5 50 es stellt sich heraus, kommt zu etwa 0,2 Ist die Wahrscheinlichkeit dort oder 0,2%? Sehr interessant. Ordnung, das sind
also einige allgemeine Datenverteilungen, auf die Sie in der realen Welt stoßen könnten. Pop-Quiz. Stellen Sie sicher, dass Sie aufpassen. Was ist die äquivalente Wahrscheinlichkeitsverteilungsfunktion, wenn diskret statt
kontinuierlicher Daten verwendet wird? Denken Sie daran, dass wir eine Wahrscheinlichkeitsverteilungsfunktion mit kontinuierlichen Daten verwendet haben Aber wenn wir es stattdessen mit diskreten Daten zu tun
haben, verwenden wir Hinweis. Es ist direkt auf dem Bildschirm. Eine Wahrscheinlichkeitsmassenfunktion. Okay, lass uns weitermachen. Das ist also Wahrscheinlichkeit. Dichte, Funktionen und Wahrscheinlichkeit. Massenfunktionen visualisieren und messen die tatsächliche Wahrscheinlichkeit eines bestimmten Wertebereichs in einem Datensatz. Sehr wichtige Informationen in einer sehr wichtigen Sache zu verstehen, verwenden
Sie dieses Konzept immer und immer wieder. Stellen Sie also sicher, dass Sie dieses Video erneut sehen, wenn Sie müssen. Du bist gut. Alles klar, gehen wir weiter
16. Die meisten Momente: Als nächstes werden wir über Perzentile und Momente Perzentile sprechen. hörst du ständig in den Nachrichten. Menschen, die in den oberen 1% des Einkommens sind, das ist ein Perzentil. Wir werden das erklären und einige Beispiele dort haben, und wir werden über Momente sprechen. Sehr ausgefallenes mathematisches Konzept. Aber es stellt sich heraus, dass es sehr einfach ist, konzeptuell zu verstehen. Also lasst uns eintauchen und loslegen. Lassen Sie uns über Perzentile und Momente sprechen. Ein paar ziemlich grundlegende Konzepte und Statistiken. Aber nochmal, wir arbeiten uns bis zum harten Zeug. So tragen Sie mit mir, wie wir durch einige dieser Rezension gehen. Also Perzentile. Grundsätzlich, wenn Sie sich vorstellen, dass, wenn Sie alle Daten im Datensatz sortieren würden, ein bestimmtes Perzentil der Punkt ist, an dem dieser Prozentsatz der Daten kleiner ist als der Punkt, an dem Sie sich befinden. Ein häufiges Beispiel, das Sie sehen, über eine Menge gesprochen wird, ist die Einkommensverteilung. Wenn wir über das 99. Perzentil oder den einen Prozentwert sprechen, stellen Sie sich vor, dass Sie in diesem Fall alle Einkommen aller im Land,
der Vereinigten Staaten, aufnehmen und nach Einkommen sortieren würden. Das 99. Perzentil wäre der Einkommensbetrag, bei dem 99% des restlichen Landes weniger
ausmachten. Okay, also ist es ein sehr einfacher Weg Zeh. Verstehen Sie es. Dies sind einige echte Daten hier. So zum Beispiel beim 99. Perzentil sagen, können
wir
zum Beispiel
beim 99. Perzentil sagen,dass 99% der Datenpunkte hier, die Menschen in Amerika repräsentieren, weniger als 506.000 Dollar pro Jahr
machen und 1% mehr als das machen. Umgekehrt,
Also, wenn Sie ein Eins percenter sind, machen
Sie mehr als 500.000 Dollar pro Jahr ungefähr. Herzlichen Glückwunsch. Aber wenn Sie eine typischere Medianperson sind, definiert
das 50. Perzentil den Punkt, an dem die Hälfte der Menschen macht. Weniger als die Hälfte macht mehr, was die Definition von Median ist, richtig? Also das 50. Perzentil gleiche Sache ist Median, und das wäre bei $42.000 angesichts dieses Datensatzes. Also, wenn Sie $42.000 pro Jahr in den USA
machen , machen
Sie genau die mittlere Höhe des Einkommens für das Land,
und Sie können sehen, dass Sie das Problem der Einkommensverteilung kennen. Hören Sie die Dinge neigen dazu, sehr konzentriert auf das High-End zu sein, was Ah ist sehr großes politisches Problem im Moment im Land, also werden wir sehen, was damit passiert. Aber das geht über den Rahmen dieses Kurses hinaus. Das sind also Perzentile auf den Punkt gebracht. Perzentile werden auch im Kontext des Gesprächs über die Viertelfliesen in einer
Verteilung verwendet . Wenn Sie also
sagen wir,
eine normale Verteilung hier betrachten sagen wir, , reden
die Leute über Gerichtsfliesen und Quartil. Eins und Quartil drei in der Mitte sind nur die Punkte, die zusammen 50% der
Daten enthalten,
so dass Daten enthalten, 25% auf dieser Seite des Medians in 25% auf dieser Seite des Medians liegen. Das Meeting in diesem Beispiel liegt zufällig in der Nähe des Mittelwerts. So beispielsweise
der Quartilbereich, ist
beispielsweise
der Quartilbereich,wenn wir über eine Verteilung sprechen, der Bereich in der Mitte der Verteilung, der 50% der Werte enthält. Okay, jetzt, das ist ein Beispiel für das, was wir ein Box- und Whisker-Diagramm nennen. Also machen Sie sich noch keine Sorgen über dieses Zeug hier draußen an den Rändern. Das wird ein bisschen verwirrend, und wir werden das später abdecken, obwohl es Quartil genannt wird, wenn ein Gerichtsverfahren. Drei sie repräsentieren nicht wirklich 25% der Daten. Aber lassen Sie sich noch nicht daran hängen. Konzentrieren Sie sich auf den Punkt, dass diese Quart Kacheln in der Mitte 25% der
Datenverteilungdarstellen Datenverteilung und diese in der Regel in der Mitte liegen. Schauen wir uns einige weitere Beispiele an, die Python verwenden und irgendwie unsere Hände bekommen und konzeptualisieren Es ist ein bisschen mehr. Okay, lass uns unsere Hände mit Perzentilen schmutzig machen. Gehen Sie voran und öffnen Sie die Perzentile wie Python Notebookdatei. Wenn Sie immer wieder folgen möchten, ermutige
ich Sie, dies zu tun, weil ich damit ein wenig später herumspielen wollte. Lassen Sie uns also beginnen, indem wir einige zufällig verteilte normale Daten oder normalerweise
verteilte Zufallsdaten generieren . Vielmehr und in diesem Beispiel werden wir einige Daten generieren, die um Null zentriert sind, mit einem Mittelwert von Null mit einer Standardabweichung von 00,5. Und ich werde 10.000 Datenpunkte mit dieser Verteilung machen, und wir werden einen History Graham plotten und sehen, dass wir uns einfallen, und es sieht ein bisschen so aus, sehr ähnlich wie eine normale Verteilung. Aber weil es eine zufällige Komponente gibt, die du kennst, haben
wir eine Menge Lügner. Hören Sie Dinge. Luft-Tipp ein bisschen nach rechts hier. Ein bisschen. Ein bisschen zufällige Variation gibt es, um die Dinge interessant zu machen. Nun, um die Perzentilwerte dieser Verteilung zu berechnen, bietet
Numb pie eine sehr praktische Perzentil-Funktion, die dies für Sie tun wird. Also haben wir unsere Vokalliste von Daten hier mit dem Schiedsrichter Punkt zufällig erstellt, nicht normal. Und ich könnte einfach np dot perzentil aufrufen, um den 50. Perzentil-Wert in diesem
Beispiel herauszufinden , das sich als Plano fünf herausstellt. Denken Sie daran, das 50. Perzentil ist nur ein anderer Name aus dem Median. Und es stellt sich heraus, dass der Median in diesen Daten sehr nahe bei Null liegt, und Sie können sehen, dass wir
ein wenig nach rechts gekippt sind, also ist das nicht allzu überraschend. Ich möchte das 90. Perzentil berechnen. Das gibt mir den Punkt, an dem 90% der Daten kleiner sind als dieser gegebene Wert. Also das 90. Perzentil des Staates, es stellt sich heraus, 0,65 Also ist es hier, und im Grunde sind 0,90% der Daten weniger als das, also glaube ich, dass 10% größer sind. 90% sind im 20. Perzentilwert weniger als genau dort herum. Das würde mir den Punkt geben, an dem 20% der Werte kleiner sind als die Zahl, die ich
mir vorgestellt habe. So funktioniert der 20. Perzentilpunkt ungefähr und wieder negativ 0,4, glaube
ich das. Es sagt also, dass 20% der Daten links von negativen 200,4 liegen und umgekehrt 80% größer sind. Wenn Sie also ein Gefühl bekommen möchten, wo sich diese Bruchpunkte im Datensatz befinden, ist
die Perzentilfunktion eine einfache Möglichkeit, sie zu berechnen. Wenn dies ein Datensatz wäre, der die Einkommensverteilung repräsentiert, wie in unseren Folien, wissen
Sie, wir könnten einfach MP Top Perzentil Werte Common 99 nennen, um herauszufinden, was das 99. Perzentil ist. Du könntest herausfinden, wer diese Prozentsätze, über die die Leute reden, wirklich sind. Und wenn du einer von ihnen bist, dann mach dir
jetzt die Hände schmutzig. Ich möchte, dass Sie diese Daten herumspielen, also ist dies aus einem Grund ein I Python offen. Es ist so, dass Sie sich damit anlegen und sich mit dem Code verwirren
können, wissen Sie,
anders versuchen können, wissen Sie, . Probieren Sie verschiedene Standardabweichungswerte aus. Sehen Sie sich an, welche Auswirkungen es auf die Form der Daten hat und wo diese Prozent-Haus endet . zum Beispiel, Versuchen Siezum Beispiel,kleinere Datensatzgrößen und ein wenig mehr zufällige Variation in die Sache zu verwenden. Es ist einfach bequem, dass Sie damit herumspielen und, wissen
Sie,
finden, dass Sie dieses Zeug tatsächlich machen und ein echtes Co schreiben können, das funktioniert. Also verbringen Sie ein paar Minuten, Ah, spielen Sie mit dieser Hitpolitik, während Sie das tun, und wenn Sie fortfahren, wird wieder
auf das Konzept der Momente einer Verteilung kommen . Als nächstes reden wir über Momente. Momente sind eine ausgefallene mathematische Phrase, und Sie brauchen nicht wirklich einen mathematischen Abschluss, um es zu verstehen obwohl intuitiv, es ist viel einfacher, als es klingt. Es ist eines dieser Beispiele, in denen Menschen in Statistik und Data Mining in Machine Learning und Data Science gerne große ausgefallene Begriffe verwenden, um sich wirklich intelligent zu klingen. Aber die Konzepte sind eigentlich sehr leicht zu erfassen, und das ist das Thema, das Sie hören werden, können und wieder in diesem Kurs. Also lasst uns über Momente sprechen. Grundsätzlich ist
es Möglichkeiten, die Form einer Datenverteilung einer wahrscheinlich Dichtefunktion von
irgendetwas
wirklich zu messen irgendetwas . Und mathematisch haben
wir hier eine wirklich ausgefallene Mathematik-Notation, wie sie definiert sind. Und, weißt
du, wenn du Kalkül kennst, ist
es eigentlich nicht so kompliziert von einem Konzept. Wir nehmen den Unterschied zwischen jedem Wert von einer Wertrasse bis zur 10. Macht, wobei N die Momentnummer ist und sich über die gesamte Funktion von negativer
Unendlichkeit bis Unendlichkeit integrieren lässt . Aber intuitiv ist
es viel einfacher als Kalkül bereit. Los geht's. Der erste Moment ist nur der Mittelwert der Daten, die Sie betrachten. Das war's. Der erste Moment ist das Fleisch, der Durchschnitt ist es so einfach. Der zweite Moment ist die Varianz. Das war's. Der zweite Moment eines Datensatzes ist das gleiche wie der verschiedene Wert, und es mag ein wenig gruselig erscheinen, dass diese Dinge natürlich aus der Mathematik fallen
. es mag ein wenig gruselig erscheinen, dass diese Dinge natürlich aus der Mathematik fallen Aber denk darüber nach. Die verschiedenen basieren wirklich auf dem Quadrat der Unterschiede vom Mittelwert, also kommen mit einer mathematischen Art zu sagen, dass sehr darauf bestehen, im Zusammenhang mit bedeuten ist nicht wirklich so viel von einer Strecke, oder? So einfach ist es. Nun, wenn wir zum dritten und vierten Moment kommen, werden die
Dinge etwas schwieriger, aber es sind immer noch Konzepte, die leicht zu erfassen sind. Also wird der dritte Moment Skew genannt, und es ist im Grunde ein Maß dafür, wie schief eine Verteilung ist. So können Sie in diesen beiden Beispielen sehen. Wenn ich einen längeren Schwanz auf der linken Seite habe, wissen
Sie, dass das eine negative Schrägstellung ist, und ich habe einen längeren Schwanz auf der rechten Seite. Das ist eine positive Schrägstellung, so können Sie hier mit der Form einer Normalverteilung sehen würde ohne Schrägstellung. Wenn ich das auf der einen Seite ausdehne, dann lande ich mit der Schrägung auf der anderen Seite der positiven Schrägung in diesem Beispiel. Okay, also das ist alles schief ist. Es streckt im Grunde den Schwanz auf der einen oder anderen Seite aus, und es ist ein Maß dafür, wie schief eine Verteilung ist. Der vierte Moment heißt Curto Sis. Wow, das ist ein schickes Wort. Alles, was wirklich ist, ist, wie dick ist die Geschichte, wie scharf der Gipfel ist. Also wieder, es ist ein Maß für die Form der Datenverteilung Und hier ist ein Beispiel hier, und Sie können sehen, dass die höheren Spitzenwerte einen höheren Kurt-Hostess Wert haben. Die rote Kurve hat also eine höhere Keratose, als Sie wissen. Das ist so schwarz. Ich kann nicht mal schwärzlich stolze Kurve hier unten sagen. Es ist also ein sehr subtiler Unterschied, aber ein Unterschied dazu, dass es im Grunde misst, wie hoch Ihre Daten wieder sind. Bewertung. Der erste Moment bedeutet Varianten des zweiten Moments. Dritter Moment skew vierten Moment Keratose bereits wissen, was bedeuten und Varianz unser Ski war wie schief die Daten sind, wie gestreckt eine der Geschichten sein könnte und Keratose aus Peaked Haus
zusammengequetscht . Die Demonstration ist so lassen Sie uns in Python herumspielen und tatsächlich diese Momente berechnen und sehen, wie Sie das tun,
Okay, um
zu spielen, um
zu spielen, Lassen Sie uns voran und öffnen Sie die Momente, die ich Python-Notebook-Datei und Sie können folgen Sie mir hier, damit es wieder die gleiche Normalverteilung von Zufallsdaten erstellen wird, und wieder werden wir es um Null mit einer 0,5 Standardabweichung und 10.000
Datenpunkten zentriert machen und das nochmals plotten, ein zufällig generierter Satz von Daten mit einer Normalverteilung um Null. Um also den Mittelwert und die Varianz zu finden, die wir vorher gemacht haben, gibt Ihnen
Taub pie nur eine Mittelwert- und Balkenfunktion, um das zu berechnen. So können wir einfach anrufen und p dot bedeuten, den ersten Moment zu finden, was nur ein schickes Wort für den Mittelwert ist. Und das funktioniert sehr nahe bei Null, genau wie wir es für normal verteilte,
verteilte Daten erwarten würden, die um Null zentriert sind. So macht die Welt bisher Sinn. Der zweite Moment, nur ein anderer Name für die Varianz. Und das klappt auf 0,25 und wieder funktioniert das mit einem netten Vernunft Check. Denken Sie daran, dass die Standardabweichung die Quadratwurzel der Varianz ist. Und wenn Sie die Quadratwurzel von 0,25 nehmen, kommt es 2,5 heraus, was die Standardabweichung ist, die wir beim Erstellen des Status angegeben haben. Also wieder, das überprüft auch für einen Moment, sq. Und um das zu tun, müssen
wir das CYP-I-Paket anstelle von Nicht-Kuchen verwenden. Aber das ist wieder in jedem wissenschaftlichen Computing-Paket wie und dachte Baldachin oder
Anaconda Importe integriert . Geben Sie iDot Statistiken als SP und dann könnten wir einfach sagen sp dot schief auf vales und das wird uns
einen Schrägwert geben . Und da dies um Null zentriert ist, sollte
es fast eine Nullschiefe sein. Es stellt sich heraus, dass es aus zufälliger Variation ein wenig nach links schief ist. Und tatsächlich tut das Jive mit der Form, die wir hier sehen. Es sieht so aus, als hätten wir es irgendwie etwas negativ gezogen. Vierte Frau ist Curto Sys, die die Form des Schwanzes beschreibt und wieder für eine normale Verteilung, die
etwa Null sein sollte . Und in der Tat ist es das. Also wissen Sie, die Form des Schneiders, die wie scharf der Gipfel ist irgendwie, wenn man ihn hineinschiebt. Weißt du, es hat beide Auswirkungen, den Schwanz nach unten zu zerquetschen. Es schiebt diesen Gipfel nach oben, um deutlicher zu sein. Und ebenso, wenn ich es auf diese Verteilung hinunterschieben und mir vorstellen würde, dass
Dinge ein wenig verbreitet werden, was es ein bisschen dicker macht und der Höhepunkt etwas niedriger ist. Das ist also, was Keratose bedeutet. Und in diesem Beispiel ist
Keratose nahe Null, weil es nur eine einfache alte, normale Verteilung ist. Wenn Sie also das herumspielen möchten, gehen Sie weiter und versuchen Sie erneut, die Verteilung zu ändern, machen Sie sie um etwas außer Null zentriert und sehen Sie, ob sich das tatsächlich etwas ändert, oder? Nun, es sollte wirklich nicht, weil dies alle Maßnahmen der Form der Verteilung sind, und es sagt nicht wirklich viel darüber aus, wo diese Verteilung genau ist. Es ist ein Maß für die Form. Das ist es, worum es bei den Momenten geht. Also geh voran und spiel um das herum. Probieren Sie verschiedene Mittelwerte aus, versuchen Sie verschiedene Werte für die san Abweichung und sehen Sie, welche Auswirkungen sie auf diese Werte hat und nicht alles
ändert. Natürlich würden
Sie erwarten, dass sich Dinge wie sie bedeuten, weil Sie den Mittelwert ändern. Aber Varianz que vielleicht nicht herumspielen, finden Sie heraus, alles in Ordnung, das ist Momente. Lass uns weitermachen. Und dort haben Sie Perzentile und Momente Perzentile. Ziemlich einfache Konzept-Momente. Klingt hart, aber es ist eigentlich ziemlich einfach zu verstehen, wie es geht. Und es ist einfach und Python zu. Also hast du das unter deinem Gürtel. Lasst uns weitermachen
17. Ein Crashkurs in Matplotlib: damit du weißt, dass dein Date nur so gut ist, wie du es anderen Leuten präsentieren kannst, Wirklich? Lassen Sie uns also darüber sprechen, Ihre Daten zu plotten und zu grafieren und wie Sie andere präsentieren und Ihre Diagramme hübsch aussehen
lassen, waren auf der Einführung Matt Plot Lib, einer Bibliothek, die Sie in Python verwenden können, um hübsche Grafiken zu erstellen, und ich zeige Ihnen ein paar Tricks, wie man sie so hübsch wie möglich macht. Lass uns dorthin gehen. Lassen Sie uns etwas Spaß mit Grafiken haben. Sie wissen, dass es immer gut ist, schöne Bilder aus Ihrer Arbeit zu machen, und dies gibt Ihnen einige weitere Werkzeuge in Ihrem Werkzeugkasten, um zwei verschiedene
Arten von Daten zu visualisieren, verschiedene Arten von Kunsthandwerk zu
verwenden und es schön aussehen zu lassen. Weißt du, diese verschiedenen Farben, verschiedene Linienstile, verschiedene Achsen, solche
Dinge. Sie wissen also, dass es nicht nur wichtig ist, Diagramme und Datenvisualisierung zu verwenden, um
interessante Muster in Ihren Daten zu finden , sondern es ist auch interessant, Ihre Ergebnisse einem nicht technischen Publikum gut zu präsentieren. Also lasst uns in Matt Plot lib eintauchen. Gehen Sie voran und öffnen Sie die Matte Plot lib I Python Notebook und Sie können um dieses Zeug
mit mir spielen . Wir werden damit beginnen, ein einfaches Liniendiagramm zu zerstören. Also in diesem Beispiel werde
ich Matt Plot leben hoch Grundstück als Pflanzung importieren und wir werden es nur als
plt bezeichnen . Von nun an in diesem Notizbuch und was ich tun werde, verwenden Sie einen tauben Kreispunkt, um eine X-Achse zu erstellen, die mit Werten zwischen negativen drei und drei und Argumenten von 30.1 gefüllt und ich werde Pi-Plots Plot-Funktion verwenden, um X zu plotten und die Y-Funktion wird norm dot pdf von x. Also werde ich eine Wahrscheinlichkeitsdichtefunktion mit einer Normalverteilung basierend auf den
X-Werten erstellen . Und ich benutze das Site-Pi-Statistis-Normpaket, um das zu tun. So binden wir es zurück in unsere frühere Vorlesung über Wahrscheinlichkeitsdichtefunktionen hier, wir plotten eine normale Wahrscheinlichkeitsdichtefunktion mit dieser Plotlippe. Also haben wir gerade die Plot Plot Methode aufgerufen, um unsere Handlung einzurichten. Und dann zeigen wir es mit Plot Dot Show und wenn wir das ausführen, ist
das, was wir bekommen. Ziemlich kleines Diagramm mit allen Standardformatierungen. Nehmen wir an, ich möchte mehr als eine Sache gleichzeitig plotten, so dass Sie tatsächlich Plot
mehrmals aufrufen können , bevor der Aufruf gezeigt hat, fügen Sie tatsächlich mehr als eine Funktion zu Ihrem Diagramm hinzu. In diesem Beispiel rufe
ich meine ursprüngliche Funktion nur einer Normalverteilung auf. Aber ich werde auch hier eine andere Normalverteilung machen, mit einem Mittelwert um einen Punkt. Oh, in einer Standardabweichung von 00,5. Und ich werde die zusammen zeigen, damit Sie sehen können, wie sie miteinander vergleichen und Sie an Standardwerten
sehen können . Matt. Plot lebte wählt verschiedene Farben für jeden Graph automatisch für Sie, was sehr schön und handlich von ihm ist. Da hast du es. Wenn ich das zu einer Datei sagen möchte, möchte ich es
vielleicht in ein Dokument oder so aufnehmen. Ich kann so etwas tun, anstatt nur Plot Got Show zu nennen. Ich kann Plot bekommen nennen, sagen Abb mit einem Pfad, wo ich diese Datei speichern möchte und in welchem Format ich wollte. In diesem Beispiel habe ich das gleiche Plot anstelle von Show eingerichtet. Ich nenne sicher groß zu diesem Pfad und Sie werden diesen in einen tatsächlichen Pfad ändern möchten, der auf Ihrem Computer
existiert. Wenn Sie mitverfolgen, haben
Sie wahrscheinlich keinen offenen Ordner eines Benutzers auf Ihrem System. Und denken Sie daran, wenn Sie auf Lennox oder Mac Os anstelle eines umgekehrten Schrägstrichs sind, verwenden
Sie Schrägstriche und Sie werden keinen Laufwerksbuchstaben haben. also einen Pfad wie diesen sehen, stellen Sie bei all diesen Python-Notebooks Wenn Siealso einen Pfad wie diesen sehen, stellen Sie bei all diesen Python-Notebooks
sicher, dass Sie ihn in einen tatsächlichen Pfad ändern, der auf Ihrem System funktioniert. Okay, aber ich bin unter Windows hier, und ich habe die Benutzer offene Ordner, damit ich weitermachen und das ausführen kann. Und wenn ich mein Dateisystem unter Benutzern überprüfe, Frank. Sicher genug, ich habe eine meine Plot-PNG-Datei. Ich kann mich öffnen und es ansehen, und ich kann das in jedem Dokument verwenden, das ich will. So ziemlich cool. Alles klar, lass uns weitermachen. Nehmen wir an, ich mag die Standardauswahl der Achsen dieses Wertes nicht, als würde er ihn automatisch an die engsten Zugriffswerte anpassen, die er beschränkt hat, was normalerweise eine gute Sache ist. Aber manchmal wollen Sie Dinge in absoluter Größenordnung, oder? In diesem Beispiel setze
ich das X-Limit, indem ich zuerst die Achsen mit Plata-Achsen bekomme. Ich möchte diese Achsenobjekte haben. Ich kann sie anpassen. Also, indem Sie Set Excellent aufrufen. Ich kann den X-Bereich von negativ 55 einstellen und während in meinem Satz ihren Y-Bereich von 0 bis 1 einstellen. Und Sie können sehen, dass hier unten Meine Ex-Werte Luft reicht von Nacht minus 5 bis 5 und warum es von 0 zu 1
geht. Und ich kann auch explizite Kontrolle darüber haben, wo sich diese Teilstriche befinden. Also sage ich, ich will den x tex nach Vietnam minus fünf auf seinen vier Minen, drei usw. Und warum tickt von 0 bis 1 in 10,1-Schritten. Jetzt könnte
ich die Bereichsfunktion verwenden, um das kompakter zu machen. Aber der Punkt ist, dass Sie explizite Kontrolle darüber haben, wo genau diese Teilstriche passieren und Sie können einige überspringen. Sie können sie in allen Schritten haben, die Sie wollen oder in welcher Verteilung Sie wollen. Darüber hinaus ist
es das Gleiche. Sobald ich meine Achsen angepasst habe, rufe
ich einfach den Plot mit den Funktionen auf, die ich plotten und anzeigen möchte, um es anzuzeigen. Und sicher genug, da haben Sie das Ergebnis. Was ist, wenn ich Rasterlinien möchte? Nun, die gleiche Idee. Alles, was ich tue, ist, Punktraster auf den Achsen zu nennen, die ich von Pipe Lott DOD Achsen zurückbekomme. Und indem ich das mache, bekomme
ich diese netten kleinen Rasterlinien, und das macht ein bisschen leichter zu sehen, wo ein bestimmter Punkt ist, obwohl es die Dinge ein wenig überlastet, also ein bisschen eine stilistische Wahl dort. Was ist, wenn ich Spiele mit den Löwenarten und Farben spielen möchte? Das könntest du
auch tun . So sehen Sie hier, dass es sich tatsächlich um einen zusätzlichen Parameter für die Plotfunktion handelt, Reckon passierbare Zeichenfolge, die den Stil der Linie beschreibt. Und in diesem ersten Beispiel zeigt dies an, dass ich eine blaue Linie mit einer durchgezogenen Linie möchte. Dafür steht das B. Blau im Bindestrich bedeutet eine durchgezogene Linie, und für meine zweite Funktion werde
ich sie in Rot zeichnen. Das ist, was das R bedeutet und der Doppelpunkt bedeutet, dass ich mit kleinen vertikalen Hashes den
ganzen Weg nach oben geplottet werde . Ich führe, dass Sie sehen können, dass es das ist, was es tut und Sie können,
uh,
verschiedene Arten von Linienstilen ändern uh, . Darüber hinaus können
Sie einen doppelten Schrägstrich oder einen doppelten Strich eher tun, und das gibt Ihnen diese gestrichelte Linie ist ein Linienstil wie in ah, Bindestrich Punkt und Sie können etwas bekommen, das so aussieht. Also, was sind die verschiedenen Möglichkeiten dort? Ich könnte es grün mit Schrecken mit vertikalen Schrägstrichen machen. Da gehst du. Also viel Spaß damit. Wenn Sie möchten, experimentieren Sie mit verschiedenen Werten und Sie können verschiedene Linienstile erhalten. Etwas, was Sie öfter tun werden, ist die Beschriftung Ihrer Achsen. Sie wissen, dass Sie niemals Daten im Vakuum präsentieren möchten. Du willst den Leuten definitiv sagen, was es repräsentiert. Und dazu können Sie das X-Label und warum Beschriftungsfunktionen im Kreisdiagramm verwenden, um
Etiketten auf Ihre Achsen zu setzen . Also werde ich die X-Achse Grables und die Wild-Label-Wahrscheinlichkeit beschriften, und Sie können auch eine Legende hinzufügen und hier setzen. Normalerweise wäre dies das Gleiche. Aber nur um zu zeigen, dass es unabhängig gesagt, ich sitze hier oben eine Legende, und Sie übergeben im Grunde eine Liste von dem, was Sie wollen, um jeden Graphen zu nennen. Mein erster Graph wird also Spitzel genannt. Zweites Graf wird Jacks genannt und der Look-Parameter hier zeigt an, an welchem Ort Sie es wollten. Daher stellt die untere rechte Ecke. Also lassen Sie uns das laufen, und Sie können sehen, dass ich Grables versus Wahrscheinlichkeit für beide Reden und Jacks kleine Dr. Seuss-Referenz für Sie dort plündere. So haben Sie Äxte,
Etiketten und Legenden gesagt . Ein kleines lustiges Beispiel hier, wenn Sie mit dem Web-Comic X vertraut sind, K C D. Und es ist ein wenig wie ein Osterei in der Matte Plot Schleife, wo Sie tatsächlich Dinge im XK CD-Stil plotten können, und Sie können das tun, indem Kolonie Handlung X K C D. Welche Art von setzt Matt Handlung live in X K C D Modus. Und nachdem Sie das getan haben, werden die
Dinge einfach anfangen zu sehen, wissen
Sie, wie dieser Stil mit einer Art Comic-Schriftart und zerquetschten Linien automatisch. Und dieses kleine einfache Beispiel zeigt eine lustige kleine Grafik hier, wo wir Ihre
Gesundheit im Vergleich zur Zeit planen , wo Ihre Gesundheit einen starken Rückgang nimmt, wenn Sie merken, dass Sie Speck kochen können, wann immer Sie wollen. Und alles, was wir dort tun, ist die Verwendung dieser x K C D-Methode, um in diesen Modus zu gehen. Ein bisschen interessanter Python hier und tatsächlich, wie wir dieses Handwerk
zusammen setzen . Also beginnen wir damit, eine Datenlinie zu erstellen, die nichts als der Wert eins über 100
Datenpunkte ist . Und dann haben wir die alte Python benutzt. Lassen Sie uns schneiden Operator, um alles nach dem Wert von 70 zu nehmen, und wir subtrahieren von dieser Unterliste von 30 Elementen, der Bereich von Null bis 30. Das hat also den Effekt, einen größeren Wert linear zu subtrahieren, wenn Sie über 70 hinausgehen, was führt, dass das Liegen nach unten auf Null über die 00.70 hinuntergeht. Also ein kleines Beispiel. Da. Einige Python-Liste Slicing in Aktion gibt in ein wenig kreative Verwendung der A-Bereichsfunktion , um Ihre Daten zu ändern. Jetzt zurück in die reale Welt, können
wir den XK-CD-Modus entfernen, indem wir RC-Standardwerte auf dieser Handlung live sagen, und wir können wieder zur normalen Last hier. Wenn Sie ein Kreisdiagramm möchten, müssen Sie
lediglich Plot-Punktkuchen aufrufen und ihm ein Array Ihrer Werte,
Farben,
Beschriftungen geben Farben, und ob Elemente aufgelöst werden sollen oder nicht. Und wenn ja, um wie viel Sie hier sehen können, erstelle ich ein Kreisdiagramm mit diesen Werten 12 55 für 32
14. Ich werde jedem dieser Werte explizite Farben zuweisen explosive Beschriftungen zu
jedem dieser Werte. Ich werde das russische Segment des Kuchens um 20% explodieren und ich werde dieser Handlung
einen Titel geben , der Studentenstandorte nennt, und zeigen, dass das alles ist, was da ist. Wir gingen zu einem Balkendiagramm auch sehr einfach
, eine ähnliche Idee wie das Tortendiagramm. Sie haben ein Array von Werten und ein Array von Farben angegeben, und Sie plotten Ihre Daten einfach. Also sage ich es, aus dem Bereich von 0 bis 5 zu plotten, indem ich diese y-Werte in diesem Array verwende und seine explizite Liste von Farben verwende. Gehen Sie weiter und zeigen Sie das. Und da haben Sie Ihr Balkendiagramm und ein Streudiagramm. Das ist etwas, was wir in diesem Kurs ziemlich oft sehen werden. Sagen Sie also, Sie haben ein paar verschiedene Attribute. Sie wollen eine Handlung für die gleichen Leute oder Dinge. Zum Beispiel, sie applaudierten Alter gegen Einkommen oder etwas für jede Person erreicht Punkt repräsentiert eine Person, und diese Achsen stellen verschiedene Attribute dieser Menschen. Die Art und Weise, wie Sie dies mit einem Streudiagramm tun, ist, dass Sie mein Kreisdiagramm mit Streuung aufrufen, indem Sie die beiden Achsen verwenden, die zwei Attribute definieren möchten, die Daten enthalten, die Sie ein Diagramm gegeneinander darstellen möchten. Also lassen Sie uns sagen, haben eine zufällige Verteilung in X und Y, und ich habe diese auf einem Streudiagramm verstreut, und ich zeige ihm, dass es ziemlich cool aussieht. So können Sie diese Art von Konzentration in der Mitte hier sehen, weil die
Normalverteilung , die in beiden Achsen verwendet wird. Aber da es zufällig ist, aber es gibt keine echte Korrelation zwischen diesen beiden. Schließlich werden
wir euch daran erinnern, wie zischt ein Gramm funktioniert. Wir haben das schon oft im Kurs gesehen, aber wenn Sie
zum Beispielnur
die Normalverteilung auf 27.000 mit einer Standardabweichung von 15.000 mit 10.000
Datenpunkten aufrufen zum Beispiel die Normalverteilung auf 27.000 mit einer Standardabweichung von 15.000 mit 10.000 , Ich kann einfach Tortendiagramme aufrufen, eine Graham Zissed-Funktion zischte, und Sie geben die Eingabedaten und die Anzahl der Buckets an, in denen Sie Dinge
in Ihrer Geschichte gruppieren möchten , Graham in dieser Aufrufshow und der Rest ist Magie. Schließlich, Box und Whisker Plots. Also erinnern Sie sich an die vorherige Vorlesung, und wir sprachen über Perzentile berührt auf diese ein wenig wieder. Mit einer Box und einem Schnurrhaar-Plot. Das Feld stellt die Kacheln zum Geschlechtsverkehr dar, in denen sich 50% Ihrer Daten befinden ,
und umgekehrt befinden sich
weitere 25% auf beiden Seiten des Feldes. Aber die Tochterlinie und die Schnurrhaare repräsentieren den Bereich der Daten mit Ausnahme von Ausreißern. Also definieren wir Ausreißer in einer Box und Whisker Teil Plot als alles, was über das 1,5-fache der Inter Quartil anordnen oder die Größe dieser Box hinausgeht. Also nehmen wir die Größe dieser Box mal 1,5, und bis zu diesem Punkt nennen wir diese äußeren Kern-Kacheln. Aber alles außerhalb davon gilt als Ausreißer, und das ist es, was diese Zeilen hier darstellen. Das ist, wo wir oder definieren Ausreißer basierend auf unserer Definition mit der Box und Whisker Plot . Nun, nur um Ihnen ein Beispiel hier zu geben, haben wir einige gefälschte Datensätze erstellt, wo wir eine einheitliche
,
zufällige Verteilung von Daten haben , , und dann fügen wir in ein paar Ausreißer auf dem High-End und ein paar negative Ausreißer uns gut Und dann können wir acht dieser Listen alle zusammen Kapitän und einen einzigen Datensatz aus
diesen drei verschiedenen Sätzen erstellen , die wir mit taub pie erstellt haben. Wir nehmen dann diesen kombinierten Datensatz von zufälligen uniformierten Daten und ein paar Ausreißer, und wir plotteten mit Plot Dot Box Plot. Und so erhalten Sie eine Box- und Whisker-Plot-Call-Show, um sie zu visualisieren. Und da gehst du. So können Sie sehen, dass dieses Feld zeigt, das die inter 50% aller Daten darstellt. Und dann haben wir diese Ausreißlinien, wo man für jeden einzelnen
Lügner ein wenig Kreuze sehen kann , der in diesem Bereich liegt. In Ordnung, das ist in der Handlung. Lebe deinen Crashkurs. Nimm deine Hände drauf. Eigentlich machen Sie hier einige Übungen. Als Ihre Herausforderung möchte
ich, dass Sie ein Streudiagramm erstellen, das zufällige Daten darstellt, die Sie
nach Alter und Zeit herstellen, die Sie beim Fernsehen verbracht haben, und Sie können das alles machen, was Sie wollen. Wirklich? Wenn Sie einen anderen fiktiven Datensatz im Kopf haben, mit dem Sie spielen möchten, haben Sie Spaß damit. Erstellen Sie also ein Streudiagramm, das zufällige Hilfssätze gegeneinander anzeigt und Ihre
Achsen beschriftet , damit es hübsch aussieht. Spielen Sie um sie herum, haben Sie Spaß damit. Alles. Und er sollte in diesem Python Notizbuch sein, das Sie für Beispiele als Referenz benötigen. Aber haben Sie irgendwelche Probleme fühlen sich frei, in den Diskussionen für diesen Vortrag zu posten und wir werden
Ihnen helfen . Also halten Sie, dass ich Python Notebook mit Ihren Tipps und Tricks für Matt Plot lib herum. Es ist eine Art Spickzettel, wenn Sie so wollen, für verschiedene Dinge, die Sie tun müssen, um verschiedene Arten von Grafiken und
verschiedene Arten von Handwerk zu erzeugen , also hoffe ich, es erweist sich als nützlich.
18. Datenvisualisierung mit Seaborn: Okay, reden
wir jetzt über Seaborne, was im Grunde Matt plot lib plus plus ist, wenn du so willst. Alles klar, Seaborn ist im Grunde eine Visualisierungsbibliothek, die auf der Kartenlib sitzt,
und alles, was es tut, ist, es ein wenig hübsch zu betrachten. Aber es hat auch eine Reihe von verschiedenen Arten von Diagrammen und Diagrammen, die wir in Matt
Plot live nicht hatten . Und gerade da das Beispiel wieder anfangen wird zu sagen, dass die Handlung live in line ist,
was bedeutet, dass wir alle unsere Ergebnisse als Teil dieses Notebooks selbst im
Browser anzeigen möchten , werden Pandas als PD eine Kraftstoffeffizienz-Punkt-C S V-Datei importieren, die ich habe hier auf meine Website hochgeladen und diese Israel-Daten übrigens. Das sind also aktuelle Daten, die von der
US-Regierungüber die Kraftstoffeffizienz jedes Autos kommen US-Regierung . Sie haben einen Rekord für das 2019-Modelljahr und spezifische, Also lasst uns einige Informationen daraus extrahieren, dass wir mit spielen können. Lassen Sie uns beginnen, indem Sie die Anzahl der Zahnräder aus diesem resultierenden Datenrahmen extrahieren, und wir werden Wertanalysen durchführen. Und wenn Sie sich von unserem Pandas-Tutorial erinnern, das gibt uns im Grunde die Daten zurück, die wir für ein hist ein Gramm benötigen, das sagt, wie oft jeder eindeutige Wert in unserem Datenrahmen auftritt. Das sollte uns also einen Siri zurückgeben, der die Zahnradnummern auf die Anzahl der Male abbildet, die jeder eindeutige Wert auftaucht. Wir können das dann einfach plotten und
sagen, dass wir ein Balkendiagramm wollen. Im Moment verwenden
wir nur diese Plot-Bibliothek,
wie es nur ist, um diese Daten zu visualisieren. Und da haben Sie es, so können Sie sehen, dass Ah, acht Gang-Getriebe scheinen die häufigste zu sein,
gefolgt von sechs Geschwindigkeiten,
und wir haben eine gefolgt von sechs Geschwindigkeiten, Art exponentieller Drop von ihren zwei anderen obskuren Werten. Jetzt lassen Sie uns sehen geboren, so sehen geboren in seiner grundlegendsten Form kann einfach Matt Plot live aussehen besser. Also alles, was wir tun müssen, sagen wir, importieren Seaborn als SNS, und dann können wir sagen sns dot set und alles, was tut, ist ersetzt. Die Standardeinstellungen in Matt Plot leben mit den visuell modernen aussehenden Einstellungen, die Seaborne uns gegeben hat. Das Topfleben ist ziemlich alt. Ich meine, es geht zurück auf diese Handlung, und es zeigt sein Alter ganz offen. So gibt es ein moderneres Aussehen und Haptik. Also, jetzt könnten wir genau das gleiche Balkendiagramm machen. Aber mit den Seaborne-Standardeinstellungen können
Sie ein wenig schöner sehen. Wir haben , mehr,
Ah, Ah, hier
mehr,
Ah,
gedämpfte Töne. Und es ist auch vor diesem netten kleinen grafischen Hintergrund hier, der tatsächlich das große ein bisschen besser
visualisieren lässt , sonst ziemlich das gleiche. Aber es ist nur ein bisschen einfacher für die Augen, oder? Lasst uns hier noch mehr Tiefe eintauchen. Werfen wir einen genaueren Blick auf die Daten, mit denen wir es zu tun haben. Also hier ist unser roher Datenrahmen, den wir tatsächlich geladen haben, der von der Regierung hier kam , und wir mussten nur einen Blick auf die ersten 5 Zeilen hier als Beispiel werfen. Also die Informationen, die ich extrahiert habe, sind der Autohersteller wie Aston Martin oder Volkswagen. Die Auto-Linie, die im Grunde das Modell der Hubraum ist. Das ist, wie viele Führer der Motor ist. Wie viele Zylinder Luft im Motor,
die Getriebeart. Es ist ein StadtmpG. Kraftstoffeffizienz trifft Autobahn Kraftstoffeffizienz, die kombinierte Stadt plus Autobahn, mein mpg Wert und die Anzahl der Getriebe Städte Auto hat. Das sind also die Informationen, mit denen wir jetzt spielen müssen. See Born hat einige Grundstücke, die Matt Plot live überhaupt nicht bietet. Also, zum Beispiel gibt es displot, und das ist die Art, ein hist ein Gramm zusammen mit einer glatten Verteilung
über zu plotten . Hinauf gelegt, dass zischte ein Gramm. Lassen Sie uns also einen Blick auf die Ruhe- und PG-Säule werfen. Also hier haben wir eine Geschichte Graham, wie oft jeder Wert innerhalb des Kommentars. PG wird angezeigt. Sie können sehen, dass wir diese Spitze hier haben. Wissen Sie, die niedrigen, niedrigen bis Mitte der Zwanziger, richtig? Das scheint irgendwie wie die häufigste mpg-Bewertung für ein Fahrzeug zu sein. Und wir können diese Art von Trendkurve überlagern hier automatisch ist Teil der dis-Plots. Das ist also etwas, was Seaborn für uns automatisch tut, ohne dass wir es versuchen, so dass sie ein wenig einfacher gesagt haben, die größeren Trans hier zu visualisieren. Und Sie können sehen, dass das irgendwie hilfreich ist, weil wir diese haben, wie seltsame Werte zwischen diesen anderen Werten. Es scheint also, als ob es eine Art Quantenisierung in unseren Daten , die wir mit dieser Trendlinie ein wenig glätten können. Das ist manchmal eine nützliche Möglichkeit, Dinge zu visualisieren. Eine andere Sache, die Sie in Seaborn haben können, ist das Paar Grundstück, das auch etwas Einzigartiges ist, um
Born zu sehen . Und das ist coole Sachen, weil es Ihnen erlaubt, Plots jeder möglichen Kombination von
,
ah,
Satz von Attributen zu visualisieren ,
ah, ah, . Sie können also , einfach auf jede mögliche Art und Weise schauen,um eine Reihe von Werten zu visualisieren und versuchen, diejenigen zu finden
, die interessant aussehen, die nützlich sein könnten, um tiefer zu untersuchen. So als ein Beispiel, lassen Sie uns klassifizieren Autos nach, wie viele Zylinder sie haben, und wir werden für Beziehungen zwischen, wie viele Zylinder jedes Auto hat und ihre Stadt mpg Bewertung gibt Autobahn mpg Bewertung und ihre kombinierten mpg Bewertung suchen. Lassen Sie uns also beginnen, indem Sie diese Spalten aus unserem Datenrahmen in DF zwei extrahieren. Wir werden die gleiche Syntax verwenden, so in unserem Höschen Tutorial eingeführt. Extrahieren Sie diese Spalten einfach in einen neuen Datenrahmen, so dass wir jetzt eine neue Reihe von Rose hier, die nur die Zylinder und die NPG-Spalten
aus unseren ursprünglichen Daten enthalten . Jetzt sieh dir das an. Wenn wir auf diesem neuen Datenrahmen paarweise plotten, müssen Sie das
tun? Wir können sagen, dass wir uns auf die Zylinder als unsere primäre Sache konzentrieren wollen, die wir
betrachten wollen und mit einer bestimmten Höhe zu sagen, dass wir wollen, dass dies eine schöne und große Handlung ist, die wir leicht
visualisieren können . Lass das laufen. Los geht's. Also, was wir hier haben, ist wie ein Gitter aus Gittern, richtig? Das ist also irgendwie ordentlich. Lassen Sie uns ein wenig nach unten scrollen, damit wir visualisieren können, was hier vor sich geht, damit Sie
sehen können , dass wir hier jede einzelne Spalte haben. Und hier drüben haben wir alles, auch
jede einzelne Spalte. Also, wenn Sie einen Plot Kommentar PG gegen Zylinder wollen, können
Sie so hier suchen. Wenn Sie eine Handlung Autobahn wollen, mpg gegen Stadt I mpg. Sie können sich diese Handlung hier ansehen, damit Sie hier sehen können, dass Sie interessante lineare
Beziehungen zwischen verschiedenen ah Spalten hier finden können . wir
zum Beispieldie Spalte Zylinder hier betrachten, zum Beispiel können
wir sehen, dass es eine ziemlich klare Beziehung zwischen der Anzahl der Zylinder und der MPG gibt, ob es Stadt ist, Autobahn oder kombiniert. Also ist es die Anzahl der Zylinder erhöht wir können sehen, dass das mpg ist fallen muss. Aber es gibt eine wirklich weit verbreitet hier für Vierzylinder-Fahrzeuge. Das ist also mehr zur Geschichte hier in der Welt der Vierzylinderfahrzeuge. Manche sind wirklich schlecht. Einige sind wirklich gut, wirklich große Verbreitung dort. So haben wir schon einige nützliche Einblicke in unsere Daten, so dass wir auch ein Streudiagramm und Seaborn 1.9 verwenden können. Es ist nur eine Art hübschere Version des Kartendiagramms. Lebe eins. Grundsätzlich können
Sie einzelne Datenpunkte über zwei beliebige Achsen plotten und sehen, wie Ihre Daten auf diese Dimensionen
verteilt sind. Also sagen wir sns dot scatter plot. Wir werden sagen, die X-Achse wird Motorverdrängung sein. Warum wird mpg,
mpg kombiniert werden ? Und für die Daten selbst beziehen
wir uns auf unseren DF-Datenrahmen aus unseren Rohdaten. Das wird also diese beiden Spalten ausreißen und sie gegeneinander auf einem
Streudiagramm darstellen. Und da hast du es. So wird jeder einzelne Punkt in unserem Datenrahmen auf dieses Diagramm verstreut, das diese
bestimmten Punkte Motorverschiebung und kombinierten mpg-Wert abbildet . Und wieder, du siehst Ah, es gibt hier eine Beziehung. So erhalten wir bereits einige, Sie wissen schon, Einblicke aus der Visualisierung dieser Daten. Die niedrigeren Motorverschiebungen sind in der Regel sehr weit verbreitet von M p G, aber im Allgemeinen, je größer
der Hubraum, desto schlimmster, die Kraftstoffeffizienz, die nicht so groß sein sollte Überraschung, richtig? Eine andere coole Sache Und Seaborn ist die gemeinsame Handlung. Auf diese Weise können Sie Diagramme visualisieren, streuen und ein Gramm gleichzeitig auf jeder Achse zischten. Werfen wir einen Blick auf die gleiche Ausbreitung der Motorverdrängung im Vergleich zum Kloster PG. Aber dieses Mal machen wir eine gemeinsame Handlung statt einer Streuhandlung. Hier ist, wie es aussieht, so haben wir die gleichen Streudiagramme vor, aber wir haben eine Geschichte Gramm über auf jedem Zugang gelegt, so dass wir hier auf dieser Seite
die zischte sehen können , ein Gramm mpg Bewertungen. Okay, also können wir das sehr einfach visualisieren und sehen, wie diese Daten alle
hier oben zusammenrollen . Wir haben auch eine Geschichte rammen der Motorverdrängungswerte, so dass es viel einfacher zu sagen, dass der häufigste Hubraum ist um. Ah, ein bisschen unter 22 Anführern, richtig? Das ist also ein bisschen einfacher Weg, wie zu versuchen, herauszufinden, wie viele Punkte in einer bestimmten Spalte hier ein Abschnitt lüften, weil sie sich oft überlappen können und dass es nicht wirklich so intuitiv ist, die
Geschichte herauszufinden . Ram macht diese Verteilung der Daten leichter zu sehen. Eine andere Sache, die Seaborn bietet, ist L M Plot, und das ist nur ein Streudiagramm mit einer linearen Regression. Wenden Sie es automatisch an, damit ich das gleiche Streudiagramm sagen kann, aber stattdessen gibt Scatter Plot und Lamm Plot mir denselben genauen Scott eine Handlung zurück, aber mit einer linearen Regression, die darauf angewendet wird. Und wenn man wirklich genau hinschaut, kann
man diese Art von schattigem Bereich dort sehen. Geben Sie
Ihre , Grenzen für diese Regression, und wir werden später in diesem Kurs über lineare Regression und mehr Tod sprechen. Aber im Grunde passen wir eine Linie an den Tag, an dem wir ein sehr einfaches Konzept haben. Zurück in Matt Grundstück leben. Wir sprechen über Box-Plots und Seaborne hat auch eine eigene Version davon. Box und Schnurrhaare Grundstücke. In diesem Beispiel. Werfen wir einen Blick auf jeden Fahrzeughersteller und visualisieren die MPG-Bewertung über die Fahrzeuge, die sie produzieren. Das wird uns also die Verbreitung der MPG-Bewertungen auf alle Fahrzeuge geben, die jeder Hersteller anbietet. Okay, also werden wir im Grunde ein individuelles Box-Plot für jeden Hersteller machen, das die
Verteilung der NPG-Bewertungen über ihre gesamte Produktlinie zeigt . Hab es. Ordnung, es gibt
also eine Menge Hersteller, also müssen wir hier ein paar Dinge tun, um das zu nutzen, was Seaborne anbietet. Zunächst einmal werden
wir die Figurgröße auf 15 5 einstellen, das macht es nur größer, so dass wir mehr
Informationen auf dem Bildschirm passen können . Nun, dann definieren Sie die Box Plot selbst waren auf. Angenommen, wir möchten den Hersteller auf der X-Achse und die kombinierten mpg-Werte auf der
Y-Achse mit unserem ursprünglichen Datenrahmen darstellen . Hier ist die Daten DF und wir werden diese Box Plot in eine X-Variable speichern. Wir werden dann die Tick-Beschriftungen in diesem Diagramm auf eine 45-Grad-Drehung setzen. Auf diese Weise werden sie leichter zu lesen sein, weil es eine Menge von ihnen gibt. Also die Syntax hier ist Ron, sagen wir, setzen Sie X Tick-Label auf den X Tick-Label, die wir von dieser Handlung mit einer Rotation
von 45 Grad zurückbekommen . Es heißt also im Grunde, ich möchte die Beschriftungen auf der X-Achse auf die vorhandenen Beschriftungen setzen. Sie wissen, lassen Sie sie unverändert, aber geben Sie eine Drehung von 45 Grad an. Also lassen Sie uns voran und kick, dass aus dem Set exit überprüft Labels Befehl löschte einige Ausgabe . Hier ist ein Teil seines ah-Prozesses hier. Aber hier ist das Diagramm selbst ziemlich interessant, so können Sie sehen, dass 45 Grad Winkel, die wir auf den Etiketten angegeben hier verwendet werden dort. Das ist viel einfacher zu lesen, und Sie können sich die Verbreitung der MPG-Werte für jeden einzelnen Hersteller ansehen. So ziemlich interessant. Volkswagen hat
zum Beispiel eine sehr breite Palette, zum Beispiel eine sehr breite Palette, während Aston Martin ziemlich eng zusammengefasst ist. Volvo ist Volvo auch ziemlich eng hier, weißt
du, so interessante Sachen. Außerdem neigt
General Motors dazu, hier um
Mitte der zwanziger Jahre oder so gruppiert zu werden ,
aber sie haben eine Menge Ausreißer hier oben auch am höheren Ende. , Es scheint also, dass es auch ein paar sehr effiziente General Motors Autos gibt. Dann haben wir Ferrari, offensichtlich nicht sehr gut mpg, weil Menschen, die Ferraris fahren kümmern sich mehr um Leistung und Kraftstoffeffizienz. Ich glaube schon. Interessante Einblicke aus dieser Box und Schnurrhaare zeichnen hier von Kraftstoffeffizienz über die Modelle für jeden Fahrzeughersteller, die wir über lustige Sachen wissen, und es ist schön zu sehen. Ist es schon wieder. Es ist moderne, erfreuliche Farben, und das ist irgendwie, was C man gibt Ihnen out of the box. Es gibt auch die Schwarmplots, die anstelle von Kisten und Schnurrhaaren jeden einzelnen Datenpunkt darstellen. Aber es gruppiert sie tatsächlich auf eine Weise, die es einfacher macht, sie zu visualisieren. Es macht also mehr Sinn. Wenn du es dir ansiehst, machen
wir einfach eine Schwarm Handlung auf der gleichen Sache. Also im Herstellernamen und kombiniert mpg aus unserem DF-Datenrahmen. Auch hier setzen
wir die Rotation auf 45 Grad auf der X-Achse und starten sie auf Lee. Verschiedene Sears machten ein Schwarmplot statt einer Box-Plot, die Sie hier sehen können, es ist von der Box und Schnurrhaare. Wir bekommen nur dieses andere Format hier, wo wir zusammenklappen. Diese Punkte hier tatsächlich die Verteilung der Daten besser darstellen. Also wird jedes einzelne Fahrzeug bis zu einem Punkt auf dem Schrott geplottet, aber wir gruppieren diese Punkte horizontal zusammen, um zu versuchen, die Verteilung
dieser Punkte ein wenig besser zu reflektieren . Es ist also eine Möglichkeit, die Rohdaten ein wenig mehr als in einem Boxplot zu betrachten. Aber es ist immer noch so gruppiert, dass Sie die gleichen Informationen wie eine Box Taschen mit raffinierteren Informationen. Das nennen wir also eine Schwarm Handlung. Sie könnten die gleichen Ergebnisse daraus bekommen. Also wieder, wissen
Sie, genauer in Volkswagen
schauen, können
Sie sehen, dass sie hier ziemlich weit verbreitet sind. Es gibt einen Haufen um 30 und einen Haufen um 10 und nichts viel dazwischen. So ein seltsamer Fall dort, und ich denke, das liegt daran, dass Volkswagen tatsächlich eine Reihe von verschiedenen Marken besitzt, die auf sehr unterschiedliche Märkte
ausgerichtet sind . Also sehen wir wahrscheinlich die Konsumfahrzeuge hier oben. Und die Performance-Fahrzeuge hier unten wären meine Vermutung. General Motors in diesem Bereich sehr eng gruppiert. Hier sind sie, mehr über Massenmarkt Fahrzeug, so dass sie Art von wollen in diesem Sweet Spot dort von Dingen, die einigermaßen aber auch
gut zu Art von Attraktivität funktionieren. Bald amerikanisches Publikum sowieso, nur eine andere Art, es zu betrachten. Noch ein ist die Zählhandlung. Im Grunde ist das gleiche eine Geschichte, Graham, aber es ist für kategoriale Daten, also zischte ein Gramm wirklich nur ein Gramm zischt, wenn Sie mit numerischen Werten zu tun haben. Wenn Sie
jedochmit Kategorien arbeiten, jedoch wird
das Kontendiagramm genannt. Betrachten wir es also noch einmal als Beispiel, lassen Sie uns die Herstellernamen extrahieren und werfen Sie einen Blick darauf, wie viele Autos jeder Hersteller herstellt. Also werden wir die Handlung berücksichtigen,
zählen, wie viele Fahrzeuge jeder Hersteller hat und wieder wird sie um 45
Grad drehen , so dass wir tatsächlich diese X Etiketten lesen können. Und da hast du es. Also, genau wie eine Geschichte Graham, außer dass es nach Kategorie aufgeschlüsselt ist, also gibt es keine echte inhärente Bedeutung für die tatsächliche Reihenfolge, in der diese erscheinen. Es zählt nur nach Kategorie aufgeschlüsselt, das ist alles, was es dazu gibt. Das ist alles Kontendiagramm ISS. So können Sie hier ziemlich deutlich sehen, dass General Motors die meisten Fahrzeugmodelle
zur Verfügung hat , gefolgt von BMW und, wissen
Sie, wieder, diese Luft großen Unternehmen, die andere Hersteller. sagen also nicht unbedingt, Wirsagen also nicht unbedingt,dass
2019 über 100 verschiedene BMW Modelle auf dem Markt sind . Dazu gehören auch andere Marken. Die Sache gut, aber, wissen
Sie, auf der ah, am anderen Ende hier gibt es eine sehr wenige Aston Martin Modelle in einer sehr geringen Anzahl von Rolls Royce Modellen, zum Beispiel so können Sie hier wirklich sehen, wie viele Modelle jeder Hersteller produziert sehr einfach. schließlich Lassen Sie unsschließlicheinen Blick auf eine Heatmap, Heatmaps oder Spaß werfen, so dass sie weg sind, um Ah two d Daten zu plotten, aber wo die Farben die einzelnen Werte in jeder Zelle dieser Tabelle darstellen,
so dass es wieder Sinn macht. Wenn Sie es nur betrachten, lassen Sie uns eine Pivot-Tabelle aus unserem ursprünglichen Datenrahmen erstellen, um eine zwei D-Tabelle Mapping durchschnittliche mpg-Bewertung für jede Kombination aus der Anzahl der Zylinder und Hubraum . Werfen wir einen Blick auf diese Heatmap, die wir hier haben. Es ist eine Pivot-Tabelle auf dem ursprünglichen Datenrahmen, nur um diese zwei D-Informationen im Grunde
ein zwei-D-Array zu extrahieren , das die kombinierte mpg für jede Kombination von Zylindern und
Motorverschiebung abbildet . Also im Grunde rennen
wir hier oben. Es ist irgendwie wie ein Datenrahmen, genau wo waren Mapping Zylinder gegen Motor Verschiebung mit einzelnen Zellen in diesem Diagramm enthalten die mpg Kühlschrankkombination. Und wir werden diese zusammen mit Mitteln zusammenfassen, die wir sagen werden, wir wollen
über all die verschiedenen Werte schauen und den Mittelwert für jede einzelne Kombination von
Zylinder und Motorverdrängung nehmen . Wenn es also mehr als ein Auto gibt, das sagt, du weißt schon, vier Zylinder zu zeigen, wird
ein Führermotor den Durchschnitt all dieser Autos zusammen nehmen, um den Wert in
dieser Zelle des Grundstücks zu erreichen . Okay, so sieht diese Handlung wie eine Heatmap aus. Nun fehlt viel von dem Datum, weil es anscheinend keinen 12-Zylinder , 1,4 Liter Motor gibt. Das wäre verrückt. Aber das ist repräsentieren alle Werte, für die wir tatsächlich Daten in unserem Datenrahmen haben, und die tatsächliche Farbe jedes Punktes entspricht dem Wert dieser Zelle. So, zum Beispiel, hier ist die Legende, was diese Farben bedeuten. Schwarz ist irgendwo um 12 mpg. Wenn Sie also einen 16-Zylinder, 8-Liter-Motor haben, wird
das eine wirklich schreckliche Kraftstoffeffizienz im Durchschnitt von nur 12 mpg haben. Okay, so lest du das Ding. Und Sie können nur sehen, indem Sie es betrachten, dass, wie Sie bis zu diesem Ende der Handlung gehen, diese Ecke hier haben Sie eine geringe Anzahl von Zylindern, niedrigen Hubraum. Diese haben sehr helle Farben, weil sie sparsamer sind. Wenn Sie hier in Richtung dieser Ecke kommen, von vielen Zylindern und viel
Motorverdrängung , werden
Sie immer schlimmer, Kraftstoffeffizienz. Diese Heatmap macht es daher sehr einfach zu visualisieren, wie sich diese tatsächlichen MPG-Bewertungen als
Funktion davon ändern , wo sie sich in diesem Diagramm befinden. Das ist also eine Heatmap. Gut. Wenn Sie das selbst ausprobieren möchten. Hier ist eine kleine Herausforderung für dich. Versuchen Sie also, die Beziehung zwischen der Anzahl der Gänge, die das Auto hat und es ist
kombiniert mpg Bewertung zu erkunden . Und ich möchte Abteilungsaugen diese zwei Dimensionen von Daten in einer Reihe von verschiedenen Weisen zu einem Streudiagramm tun Ellen Handlung zu einem gemeinsamen Grundstück zu einem Kasten Blut und zu einem Schwarmplot tun. Welche Schlüsse können Sie daraus ziehen? Also, bevor Sie nach unten scrollen, geben Sie, um sich selbst zu versuchen. Ich habe dir ein paar leere Plätze gelassen, mit denen du wirklich spielen kannst. Kein Peeking vor der Zeit, aber ich habe meine Lösung unten. Wenn Sie einen Blick werfen möchten, wenn Sie fertig sind und vergleichen Sie Ihre Ergebnisse in den Sinn. Also gib dem einen Schuss, hoffentlich einige Ergebnisse zu bekommen. Aber wenn Sie stecken bleiben, fühlen Sie sich frei, nach unten zu scrollen und nicht Schnabel. Aber die meine Antworten lüften da unten. Okay, also viel Spaß damit. Und ich hoffe, das macht Seaborn wieder ein bisschen realer für dich. Wir werden es während dieses Kurses ziemlich viel benutzen. Es ist eine sehr nützliche Visualisierungsbibliothek, die auch gut zu betrachten ist und dort haben Sie es
19. Kovariation und Korrelation: Als nächstes werden
wir über Kovarianz und Korrelation sprechen. Also sagen wir, ich habe zwei verschiedene Attribute von etwas, und ich möchte sehen, ob sie tatsächlich miteinander verwandt sind oder nicht. Dies gibt Ihnen die mathematischen Werkzeuge, die Sie dazu benötigen, und wird in einige
Beispiele eintauchen und tatsächlich Co-Varianz und Korrelation mit Python herausfinden. Als nächstes sprechen
wir über Kovarianz und Korrelation. Dies sind Methoden, um zu messen, ob zwei verschiedene Attribute in einem
Satz von Daten miteinander in Beziehung stehen , das ist Cumbia. Sehr nützliche Sache, um es herauszufinden. Lassen Sie uns also über Co-Varianz sprechen. Stellen Sie sich also vor, wir haben hier ein Streudiagramm, und vielleicht repräsentiert jeder dieser Datenpunkte eine Person, die wir gemessen haben. Und wir applaudieren vielleicht ihr Alter auf einer Achse gegenüber ihrem Einkommen auf einer anderen. Jeder dieser Punkte würde also eine Person darstellen oder sagen, dass sie exe-Tal sind, ihr Alter
repräsentiert und ihr Warum ihr Einkommen repräsentiert. Okay, ich mache dieses Büro total gefälschte Daten. Nun, da ein Streudiagramm, das so aussah, sehen
Sie, dass diese Werte in der Regel überall liegen. Und das würde Ihnen sagen, dass es keine Riel-Korrelation zwischen Alter und Einkommen gibt, basierend auf diesen Daten ,
richtig, so scheint das für jedes gegebene Alter, das eine große Auswahl an
Einkommen sein könnte, egal . Sie neigen dazu, um die Mitte gruppiert zu werden. Aber wir sehen nicht wirklich eine sehr klare Beziehung zwischen diesen beiden verschiedenen Attributen von
Alter und Einkommen. wir sehen nicht wirklich eine sehr klare Beziehung zwischen diesen beiden verschiedenen Attributen von Im Gegensatz dazukönnen
Sie
hier rechts sehen,dass es eine sehr klare lineare Beziehung zwischen Alter und Einkommen gibt,
so dass die Ko-Varianz und Korrelation uns ein Mittel gibt, um zu messen, wie eng diese Dinge sind Im Gegensatz dazu hier rechts sehen, können
Sie
hier rechts sehen,dass es eine sehr klare lineare Beziehung zwischen Alter und Einkommen gibt, so dass die Ko-Varianz und Korrelation uns ein Mittel gibt, um zu messen, wie eng diese Dinge sind korreliert sind. Also, wissen
Sie, ich würde eine sehr geringe Korrelation oder Kovarianz für diese Daten auf der linken Seite erwarten, aber eine sehr hohe Corvair-Co-Varianz und Korrelation für die Daten auf der rechten Seite. Das ist also das Konzept der Kernvarianz und Korrelationsmessungen, wie sehr diese beiden Attribute, die ich misse, voneinander abhängig zu sein scheinen, also die Kovarianz mathematisch zu messen. Es ist ein bisschen schwer, aber ich werde versuchen, es zu erklären. Es ist wirklich wichtiger, dass Sie verstehen, wie Sie es verwenden und was es bedeutet, aber tatsächlich ableiten. Wenn Sie an diese denken, sind diese Attribute der Daten hochdimensionale Vektoren. Was wir für jedes Attribut für jeden Datenpunkt tun werden, ist die Varianz
vom Mittelwert an jedem Punkt zu berechnen . Also jetzt habe ich diese hochdimensionalen Vektoren erreichen jeden Datenpunkt jede Person, wenn Sie einer anderen Dimension entsprechen. Und ich habe einen Vektor in diesem hohen dimensionalen Raum, der alle Varianzen von
dem Mittelwert für ein sagen Alter für ein Attribut darstellt . Und dann habe ich einen weiteren Sieg, der alle Abweichungen vom Mittelwert für einige
andere Attribute
wie Einkommen darstellt andere Attribute . Und was ich dann mache, ist, dass ich diese Vektoren nehme, die die Varianzen vom Mittelwert für
jedes Attribut messen , und ich nehme das sogenannte Punktprodukt zwischen den beiden und mathematisch. Das ist eine Möglichkeit, den Winkel zwischen diesen hochdimensionalen Vektoren zu messen. Wenn sie also nicht sehr nahe beieinander sind, sagt mir das, dass sich diese Varianzen
über diese verschiedenen Attribute hinweg im Lockstep bewegen . Und wenn ich das endgültige Punktprodukt nehme und mit einem Stichprobenumfang divide, endete das mit der Co-Varianzmenge. Jetzt wirst du das nie selbst auf die harte Art berechnen müssen. Weißt du, wir werden sehen, wie man das in Python macht
, aber konzeptionell funktioniert es jetzt. Das Problem mit co various ist, dass es schwer zu interpretieren sein kann. Also, wenn ich, AH, ist die Ko-Varianz nahe Null. Nun, ich weiß, das sagt mir, dass es nicht viel Korrelation zwischen diesen Variablen gibt,
aber, ah, ah, große Co-Varianz impliziert, dass es eine Beziehung gibt. Aber wie groß ist groß? Wissen Sie, abhängig von den Einheiten, die ich benutze, gibt es möglicherweise sehr unterschiedliche Möglichkeiten, diese Daten zu interpretieren. Das ist also ein Problem. Diese Korrelation von Saul. Es normalisiert alles durch die Standardabweichung jedes Attributs, und dadurch kann
ich sehr deutlich sagen. Eine Korrelation von negativem bedeutet, dass es eine perfekte inverse Korrelation gibt. Wenn also ein Wert zunimmt, nimmt
der andere ab und umgekehrt. Eine Korrelation von Null bedeutet, dass es überhaupt keine Korrelation zwischen diesen beiden Attributen gibt, und eine Korrelation von einem würde eine perfekte Korrelation bedeuten, bei der sich diese beiden Attribute genau auf die gleiche Weise
bewegen, wie Sie verschiedene Datenpunkte. Denken Sie also daran, dass Korrelation keine Ursache bedeutet, nur weil Sie einen sehr hohen
Korrelationswert finden , bedeutet nicht, dass eines dieser Attribute das andere verursacht. Es bedeutet nur, dass es eine Beziehung zwischen den beiden gibt, und diese Beziehung könnte durch etwas völlig anderes verursacht werden. Die einzige Möglichkeit, die Ursache wirklich zu bestimmen, ist durch ein kontrolliertes Experiment, über
das wir später sprechen werden. Lassen Sie uns unsere Hände schmutzig machen und Korrelation und Ursache berechnen und sehen, wie wir
das tatsächlich in Python machen. Alles klar, lassen Sie uns unsere Hände schmutzig machen mit Co-Varianz und Korrelation hier mit einem echten
Python-Code . Also, wie ich den Folien erklärt habe, können
Sie konzeptionell denken, dass Co-Varianz diese mehrdimensionalen Vektoren
von Varianzen vom Mittelwert für jedes Attribut nimmt und den Winkel zwischen ihnen als Maß der Co-Varianz. Und die Mathematik dafür ist viel einfacher, als es klingt. Wissen Sie, wir sprechen von hochdimensionalen Vektoren. Ich meine, es klingt wie es klingt wie
Stephen Hawking-Zeug,
aber
für einen mathematischen Standpunktist
es ziemlich einfach. Stephen Hawking-Zeug, aber für einen mathematischen Standpunkt Also werde ich das auf die harte Art machen. Numb Pie hat eine Methode, um nur die Co-Varianz für Sie zu berechnen, und wir werden später darüber sprechen. Aber vorerst möchte
ich zeigen, dass Sie das tatsächlich tun können. Wissen Sie, von den ersten Prinzipien. So wird die Co-Varianz wieder definiert als das Punkt-Produkt, das ein Maß für den Winkel zwischen zwei Vektoren des Vektors der Abweichungen vom Mittelwert für einen bestimmten Satz von Daten und die Abweichungen vom Mittelwert für einen anderen geben statt von Daten für die gleichen Daten, Datenpunkte. Und dann teilen wir das durch Ende minus eins. In diesem Fall, weil wir es tatsächlich mit einer Probe zu tun haben, so d e Mittelwert oder Abweichung vom Sein Funktion nimmt eine Reihe von Data X tatsächlich Liste, und es berechnet den Mittelwert dieser Menge von Daten. Und hier ist ein bisschen Python-Trickery für dich. Diese Syntax sagt, ich werde durchgehen, ich werde eine neue Liste erstellen und
jedes Element des nächsten durchgehen . Nennen Sie es X I, und geben Sie dann den Unterschied zwischen X I und dem nächsten Mittelwert für diesen gesamten Datensatz zurück. Diese Funktion gibt also eine neue Liste von Daten zurück, die die Abweichungen vom Mittelwert
für jeden Datenpunkt darstellt . Meine Co-Varianzfunktion wird das für beide Sätze von Daten tun, dividiert durch die Anzahl der Datenpunkte minus eins. Erinnerst du dich an das Ding über Stichprobe im Vergleich zur Bevölkerung Nun, das kommt hier ins Spiel, und dann können wir einfach diese Funktionen nutzen und sehen, was passiert. In diesem Beispiel werde
ich einige Daten herstellen, die versuchen werden, eine Beziehung zwischen bezahlten
Geschwindigkeiten zu finden . Das ist, wie schnell die Seite auf einer Website gerendert wird und wie viel Leute ausgeben. So waren
wir
beispielsweise beispielsweise bei Amazon bei Amazonsehr besorgt über die Beziehung zwischen der schnellen Darstellung der Seiten und der Menge Geld, die die Menschen nach dieser Erfahrung ausgeben. Weißt du, wir wollen es wissen. Gibt es eine tatsächliche Beziehung zwischen wie schnell die Website ist und wie viel Geld die Leute tatsächlich auf der Website ausgeben? Das ist also eine Möglichkeit, dass Sie das herausfinden könnten. Lassen Sie uns also nur einige zufällig normal verteilte Zufallsdaten für sowohl bezahlte Geschwindigkeiten
als auch Kaufbeträge generieren . Und da es zufällig ist, wird
das keine Riel-Korrelation zwischen ihnen sein. Also wird nur ein Sanität-Check hier beginnen. Beginnen Sie mit dem Streuplotten dieses Zeugs, und Sie werden sehen, dass es wegen der
Normalverteilung für jedes Attribut dazu neigt, um die Mitte zu gruppieren . Nun, es gibt keine echte Beziehung zwischen den beiden, wissen
Sie, denn jede gegebene bezahlte Geschwindigkeit ist eine Vielzahl von Ausgaben und für jede gegebene Menge ausgegeben, gibt es eine Lüge Vielzahl von bezahlten Geschwindigkeiten. Es gibt also keine Riel-Korrelation, außer denen, die durch Zufälligkeit oder durch die Natur der
Normalverteilung herauskommen . Und sicher genug, wenn wir die Co-Varianz in diesen beiden Daten berechnen, die zwei Sätze von Attributen
sind, haben wir einen sehr kleinen Wert. Negativ 0,7 Das ist also ein sehr kleiner Co-Varianzwert nahe Null. Das bedeutet, dass es keine echte Beziehung zwischen diesen beiden Dingen gibt. Jetzt machen wir das Leben ein bisschen interessanter. Lassen Sie uns tatsächlich den Kaufbetrag der realen Funktion der bezahlten Geschwindigkeit machen. Also halten wir die Dinge hier ein wenig zufällig, aber wir schaffen eine echte Beziehung zwischen diesen beiden Sätzen von Werten. Also für einen bestimmten Trend vergeben Benutzer, gibt es eine echte Beziehung zwischen den bezahlten Geschwindigkeiten, die sie treffen, und der Menge, die sie ausgegeben. Und wenn wir das planen, können
wir sehen, dass es tatsächlich diese Kurve hier ist, wo die Dinge tendenziell eng ausgerichtet sind. Die Dinge werden hier unten ein bisschen wackelig, nur weil zufällige Dinge funktionieren. Aber wenn wir hier die Co-Varianz konkurrieren, haben wir einen viel größeren Wert. Negative Acht. Und du weißt, dass es die Größe dieser Zahl ist, die zählt. These signiert, positiv oder negativ impliziert nur eine positive oder negative Korrelation. Aber dieser Wert von acht sagt, Hey, das ist ein viel höherer Wert als Null. Da war also etwas los. Aber wieder, es ist schwer zu interpretieren, was Acht tatsächlich bedeutet. kommt also die Korrelation ins Spiel, wo wir alles durch die Standardabweichungen normalisieren. Also wieder, wenn wir das von den ersten Prinzipien tun, können
wir die Korrelation zwischen zwei Sätzen von Attributen nehmen. Berechnen Sie die Standardabweichung jeder Computer-Co-Varianz jeder Co-Varianz zwischen diesen beiden Dingen und dividieren Sie durch die Standardabweichungen jedes Datensatzes. Und das gibt uns den Korrelationswert, der auf negativ 1 zu 1 normalisiert ist, und wir enden mit einem Wert von negativem 0,4, was uns sagt, dass es eine gewisse Korrelation zwischen diesen beiden Dingen in der negativen Richtung . Es ist nicht perfekt. Es ist keine perfekte Linie, weißt
du, das wäre negativ. Aber da und wieder geht etwas Interessantes vor sich. Ein negativer Korrelationskoeffizient bedeutet eine perfekte negative Korrelation. Null bedeutet keine Korrelation, und man bedeutet perfekte positive Korrelation. Nun, taub Pichon berechnen tatsächlich Korrelation für Sie mit der Core-Coif-Funktion. Also, wenn er dies auf den einfachen Weg machen wollte, könnten
wir einfach sagen, Dump iDot Coif, bezahlte Geschwindigkeiten, Kaufbetrag. Und was Ihnen das gibt, ist ein Array, das Ihnen die Korrelation zwischen jeder
möglichen Kombination der Datensätze gibt , die Sie übergeben. Der Weg, dies zu lesen, ist die Antwort. Es gibt eine perfekte Korrelation zwischen dem Vergleich der bezahlten Geschwindigkeiten mit sich selbst und dem Kaufbetrag zu sich selbst, was erwartet wird. Aber wenn Sie anfangen zu vergleichen bezahlte Geschwindigkeit mit Kaufbetrag oder Kaufbetrag bezahlt Geschwindigkeit gehen über diesen nativen 10.4005 Wert, was in etwa das ist, was wir bekommen haben, als wir es auf die harte Weise gemacht haben, wird
es ein wenig Präzision Fehler, aber wissen Sie, das ist nicht wirklich wichtig. Jetzt. Wir könnten eine perfekte Korrelation erzwingen, indem wir eine völlig lineare Beziehung herstellen, und das haben wir in diesem Beispiel und wieder hier getan. Wir würden erwarten, dass die Korrelation zu negativem kommt, um eine perfekte negative Korrelation zu erzielen. Und in der Tat, das ist es, was wir am Ende haben. In Ordnung, also, wieder, eine Erinnerungskorrelation bedeutet keine Ursache für die Beziehung. Nur weil die Leute Lohn haben, könnten
die Leute mehr ausgeben, wenn sie schneller bezahlt haben. Vielleicht bedeutet das nur, dass sie sich eine bessere Internetverbindung leisten können. Vielleicht bedeutet das nicht, dass es tatsächlich einen ursächlichen Zusammenhang zwischen wie schneller Seiten gerendert und wie viel Leute ausgeben. Aber es sagt dir diese interessante Beziehung, die es wert ist, Mawr zu untersuchen. Man kann also nichts über Kausalität sagen, ohne ein Experiment durchzuführen. Aber Correlation kann Ihnen sagen, welche Experimente Sie vielleicht ausführen möchten, also machen Sie Ihre Hände schmutzig rollen. Chris Lees Ich möchte, dass du die Num pie Doc U've Funktion verwendest. Das ist eigentlich eine Möglichkeit, taub Kuchen zu bekommen, um die Co-Varianz für Sie zu berechnen. Wir haben gesehen, wie die Korrelation mit der Core-Coif-Funktion berechnet wird, also gehen Sie zurück und führen Sie diese Beispiele erneut aus. Es verwendet die Funktion „no taub pie dot c o V“, um zu sehen, was, wenn Sie die gleichen Ergebnisse erhalten oder nicht in Ordnung sind, sollten
Sie. Sie sollten verdammt nah dran sein. Anstatt es mit der Co-Varianzfunktion, die ich von Grund auf neu geschrieben habe , einfach taub pie verwenden und sehen, ob Sie die gleichen Ergebnisse wieder erhalten. Es ist nur Ah, der Sinn dieser Übung ist, Sie mit der Verwendung von taub Kuchen vertraut zu machen und es auf
tatsächliche Daten anzuwenden . So haben Sie es. Sieh, wo du hinkommst, also hast du es. Co-Varianz und Korrelation sowohl in der Theorie und in der Praxis, Sehr nützliche Technik. Toe Haben so definitiv daran erinnern, dass Vortrag. Lasst uns weitermachen.
20. Übung: Bedingte Wahrscheinlichkeit: Lassen Sie uns über bedingte Wahrscheinlichkeit sprechen. Ziemlich einfaches Konzept. Es ist im Grunde die Wahrscheinlichkeit, dass etwas passiert, da
zuerst etwas anderes passiert , dass es von guten realen Beispielen abhängt. Wenn Sie auf amazon dot com gehen und in die Zukunft schauen, das ist wie Leute, die diese gekauft auch gekauft haben, oder Leute, die dies angesehen auch angesehen. Sie können sich das in Bezug auf die bedingte Wahrscheinlichkeit vorstellen. Wie hoch sind die Chancen, einen anderen Artikel zu kaufen, da Sie diesen anderen Artikel zuerst gekauft haben ? Gleiches Konzept. Nun ist die Notation in bedingter Wahrscheinlichkeit wahrscheinlich der verwirrendste Teil, also werden wir versuchen, Sie in dieser Vorlesung durch sie zu führen. Aber es würde helfen, wenn Sie eine zusätzliche Tasse Kaffee nehmen oder auf Ihre Denkmütze setzen, was immer es braucht, um sich in Ihre schärfste mentale Zustand zu bekommen, denn dies ist eine der schwierigeren Dinge, um durch zu kommen. Lassen Sie uns eintauchen und ich werde versuchen, es so einfach wie möglich zu machen. Lassen Sie uns wieder über bedingte Wahrscheinlichkeit sprechen. Einfaches Konzept mit der Notation tragen manchmal bei, also lasst uns einfach in das eintauchen, was diese Notation ist und was es jetzt bedeutet. Das Grundkonzept der bedingten Wahrscheinlichkeit ist, dass, wenn ich muss,
Ereignisse, die voneinander abhängen, ich eine Aussage über die Wahrscheinlichkeit des Auftretens dieses zweiten Ereignisses machen kann. Da das erste Ereignis jetzt aufgetreten ist, ist
die Notation, die wir hier verwenden werden zweifach. Es gibt p ein Komma B, und das bedeutet die Wahrscheinlichkeit, dass sowohl A als auch B unabhängig voneinander auftreten. Und dann haben wir p von bar A. Das ist die Wahrscheinlichkeit gegeben werden, dass ein aufgetreten ist. Das impliziert also eine Abhängigkeit zwischen B und A. Und wir können dies alles zusammen mit dieser praktischen Dandy-Gleichung hier binden, wobei die Wahrscheinlichkeit, ein gegeben zu werden, das die bedingte Wahrscheinlichkeit ist, dass Ereignis A gegeben
wird , gleich dem Wahrscheinlichkeit von A und B zusammen geteilt durch die Wahrscheinlichkeit eines So können Sie das
verwenden, um die bedingte Abhängigkeit zwischen dem Sein a zu necken Es wird
mit einem echten Beispiel mehr Sinn machen . Lassen Sie uns also einen Blick auf ein echtes Beispiel werfen. Nehmen wir an, dass ich meine Schüler Tests gebe, und insgesamt 60% meiner Schüler beide Tests bestanden. Also, wenn wir die Tests A und B p ein Komma nennen, wäre 60%. jedoch Der erste Test warjedocheinfacher. 80% meiner Schüler haben das bestanden. Also, wenn sein ist der zweite Test und a ist der erste Test P von a wäre 80% in diesem Beispiel, rechts und sehen. Dies wird ziemlich schnell mit allen A- und B's und Kommas und Pipes verwirrend. Aber lassen Sie uns noch einmal überprüfen. So haben 60% der Studenten beide Tests bestanden. Opiate ein Rohstoff 60%. Der erste Test war einfacher. 80% sind bestanden. Diese Testseife von a ist 80%. Wie finde ich jetzt den Prozentsatz der Studenten heraus, die den ersten Test bestanden haben, die auch den zweiten
bestanden haben? Wie hoch ist die Wahrscheinlichkeit, meinen zweiten Test zu bestehen? Angesichts der Tatsache, dass Sie den ersten Test bestanden haben? Das ist bedingte Wahrscheinlichkeit. Also fragen wir nach der Wahrscheinlichkeit von B bar a. Die bedingte Wahrscheinlichkeit, den Test zu bestanden, da Sie Test eins bestanden und wir das mit der Gleichung berechnen können, die wir gerade gesehen haben p von Bari sein. Die bedingte Wahrscheinlichkeit gegeben werden a ist in der Lage, die nicht-bedingte Wahrscheinlichkeit p
ein Komma B, die 60% über der Wahrscheinlichkeit von A, das ist 80%. Und wenn wir das tun, ging
diese Division mit 75%. Und wir können sagen, dass 75% die bedingte Wahrscheinlichkeit ist, den zweiten Test zu bestehen. Angesichts der Tatsache, dass Sie die 1. 1 passieren, macht Sinn, Hit, Pause und verdauen dies für eine Minute. Denn mit all diesen Buchstaben und verschiedenen Satzzeichen und was nicht, kann
es verwirrend werden. Also lass mich dich einfach in ein Notizbuch eintauchen und wir werden eine Reihe von anderen Beispielen durchlaufen, um zu versuchen, diese Notation zu machen und wie man all diese Dinge zweiter Natur zu dir umgeht. Und wenn wir fertig sind, werde
ich Ihnen ein bisschen eine Übung in der Praxis selbst geben. Okay für diese Übung, ich möchte, dass Sie das bedingte Wahrscheinlichkeitsübungs-Notizbuch in Ihrem
Kursmaterial öffnen , und ich habe versucht, dies ein wenig langsam durchzugehen. Das ist irgendwie eine
harte Sache, um deinen Kopf ein wenig zu wickeln. Was wir in dieser Aktivität tun werden, ist 100.000 zufällige Menschen zu generieren und sagen wir , dass sie alle Kunden auf einer großen E-Commerce-Website wie Amazon sind oder etwas für jede dieser 100.000 Menschen wird sie zufällig einer bestimmten Altersgruppe zuweisen, in ihren Zwanzigern oder in ihren dreißiger oder dort vierzig, bis zu ihren siebziger Jahren. Und wir werden eine bedingte Wahrscheinlichkeit einer Abhängigkeit zwischen ihrer Wahrscheinlichkeit, etwas zu kaufen, und ihrem Alter schaffen. Grundsätzlich werden
wir sagen, dass je älter Sie sind, desto wahrscheinlicher ist, dass Sie etwas kaufen. Also, wenn Sie jung sind, haben
Sie eine geringere Wahrscheinlichkeit, etwas zu kaufen. Nehmen wir also an, dass wir sagen, dass die Wahrscheinlichkeit, etwas zu kaufen, E genannt wird, und die Wahrscheinlichkeit, tatsächlich in einem bestimmten Alter zu sein
, reicht F. Das bedeutet, dass wir keine Abhängigkeit bedingte Wahrscheinlichkeit zwischen E und F
haben und die Wahrscheinlichkeit, tatsächlich in einem bestimmten Alter zu sein
, reicht F.Das bedeutet, dass wir keine Abhängigkeit bedingte Wahrscheinlichkeit zwischen E und F
haben. also lasst uns hier den Code durchlaufen, der diesen zufälligen Datensatz einrichtet. Ich bekomme viele Fragen von Leuten darüber, wie dieser Code funktioniert. Also gebar mit mir Jungs, wenn du Python schon kennst. Aber für die Menschen, die neu darin sind, braucht
dies einige Erklärungen. Also werde ich diese Zeile für Zeile durchgehen. Ordnung, also fangen wir an, indem wir zufällig aus dem Taubkuchen-Paket importieren. Nichts Aufregendes. Da Das ist nur so, dass wir tatsächlich Zufallszahlen innerhalb dieses kleinen
Codeausschnitts generieren können , erzeugt
zufällige Punktsamen nur einen Seed-Wert für den Zufallszahlengenerator. Der Zweck dieser Zeile besteht darin, sicherzustellen, dass wir jedes Mal konsistente Ergebnisse erhalten, wenn wir
diesen Code ausführen . Nach wie vor haben wir jedes Mal unterschiedliche Ergebnisse erzielt, wenn Sie das ausgeführt haben. Aber durch eine konsistente, siehe Zahl,
das bedeutet, dass es die gleichen Ergebnisse für unsere Zufallszahlen zurückbekommt. Jedes Mal, wenn wir dies ausführen, ist
die Zahl Null willkürlich. Alles, was zählt, ist, dass es der gleiche Wert ist, der jedes Mal verwendet wird. Es könnte 1234 sein oder eine beliebige Zahl, die Sie wollen, solange es die gleiche ist, die immer vor sich geht. Es gab nur sicherzustellen, dass wir beim nächsten Mal eine gewisse Konsistenz in unseren Ergebnissen haben. Einrichten von Python-Wörterbüchern, die Summen und Käufe genannt werden, und was dies tut, ist nachzuverfolgen, wie viele Menschen ich in jedem Wutbereich habe. Die 20-Jährigen, die 30-Jährigen von 40-Jährigen und so weiter, und wie viele Käufe von jeder Person in diesem Alter getätigt wurden, tobt Also im Grunde, ich sage, zunächst habe ich null Menschen in der 20-jährige Eimer hier auf dem 30-jährigen Eimer und hier auf dem 40-jährigen Eimer und so weiter und so weiter. Und ich habe null Einkäufe von 20-Jährigen, null Einkäufe von 30-Jährigen, null Einkäufe von 40-Jährigen und so weiter und so weiter. So werde ich die Gesamtzahl der Menschen und die Gesamtzahl der Einkäufe, die mit jeder Altersgruppe verbunden sind, verfolgen . Ich werde auch die Gesamtzahl der Einkäufe unabhängig vom Alter verfolgen,
mit der Gesamtkäufe variabel. Als nächstes werden
wir eine Schleife erstellen, um durch 100.000 zufällige Menschen zu jittery, die
erstellt werden würden . Und das unterstreicht uns einen Platzhalter. Ich könnte einfach Forex sagen und reichte 100.000 oder was immer Sie wollen. Aber da ich diesen Wert nicht wirklich irgendwo in der Schleife hier verwende, kann
ich einfach das Unterstrichzeichen als Platzhalter verwenden. Es bedeutet nur, dass es mir egal ist, was dieser Wert tatsächlich jedes Mal durch ist. mir egal, dass dies die Benutzernummer 1776 ist. Ich könnte diese Information einfach verwerfen. Das ist alles. Der Unterstrich bedeutet, dass es mir egal ist, was die tatsächliche Zahl ist. Also für jeden von diesen, 100.000 Menschen wurden 100.000 Mal durch die Suppe essen und für jedes Mal, wenn wir dieser Person Altersdekade
zuweisen. Zufällige Punktauswahl wählt nur zufällig einen Wert aus dieser Liste, die wir übergeben, so
dass es zufällig eine dieser Zahlen wählen 2030 40 50 60 oder 70 gleichmäßig verteilt. So haben wir eine zufällige, sogar Chance, ein 20-jähriger oder ein 30-jähriger oder ein 40-jähriger zu sein. Alles, was wir haben, um eine 70 Jahre alt für jede einzelne Person. Hier ist hier, wo die Dinge ein bisschen seltsam werden. Basierend auf Ihrem Alter berechnen
wir eine Kaufwahrscheinlichkeit. Also nehmen wir Ihr Alter und teilen es durch 100, um herauszufinden, welche Chancen Sie tatsächlich etwas von unserer Website
kaufen. Also, zum Beispiel, wenn ich in meinen Zwanzigern bin, werde
ich 20 geteilt durch 100 nehmen. Das funktioniert auf 0,2 oder 20%, so dass 20 Jährige eine 20% Chance haben, tatsächlich
etwas zu kaufen 30 Jährige, die eine 30% Chance haben, etwas zu kaufen und so weiter und so weiter. So finden wir heraus, dass jüngere Menschen weniger wahrscheinlich etwas kaufen, das ältere Menschen in unserem zufällig generierten Datensatz hier, wie wir es durchgehen, wird die Gesamtsumme für dieses Alter Jahrzehnt um einen Mittelwert erhöhen, den wir zu einem neuen zufällige Person innerhalb dieser Altersspanne. Und hier sagen wir, wenn zufälliger Punkt zufällig, ist
es weniger als diese Kaufwahrscheinlichkeit, tatsächlich den Kauf dieser Person zuzuschreiben. Wie funktioniert das? Nun, zufälliger Punkt zufällig wählt nur zufällig einen Wert zwischen Null und eins. Also, wenn diese Zufallszahl kleiner ist als unsere Kaufwahrscheinlichkeit, sagen
wir, dass diese Person tatsächlich etwas gekauft hat. Schauen wir uns ein Beispiel an, um das ein wenig intuitiver zu machen. Nehmen wir an, wir haben eine 30 Jahre alt,
okay, okay, so dass jemand in ihren dreißiger Jahren ihre Kaufwahrscheinlichkeit auf 0,3 oder 30% arbeiten wird. Wenn also unsere Zufallszahl zwischen Null und eins kleiner als 10,3 ist, wird diese Person einem Kauf zugeschrieben, wenn sie größer als 0,3 ist. Sie haben nichts gekauft. Du siehst also, wie das funktioniert. Das ist, wie sind im Grunde rollen die Würfel, um zu sehen, ob diese Person etwas gekauft oder nicht, angesichts ihrer allgemeinen Wahrscheinlichkeit des Kaufs weitere Altersspanne. So wie wir fertig sind, bauen
wir die Gesamtzahl der Einkäufe auf, die für den gesamten
Datensatz getätigt werden . Wir verfolgen auch Einkäufe vor diesem individuellen Alter Jahrzehnt, und wir verfolgen auch die Gesamtzahl der Menschen in jedem Alter Decadas gut, wir werden alle diese Zahlen brauchen, um herauszufinden, Dinge wie PV und Stück PF und PV gegeben Hälfte und all das Zeug. Gehen wir weiter und rennen. Das und das. Generiert sind gefälschte Datensätze, die eine Abhängigkeit von Alter und Einkäufen haben. Werfen wir einen Blick darauf, was wir haben. Ich würde erwarten, dass die Gesamtsummen für jede Altersgruppe ungefähr konsistent sind, und sie sind so dass wir etwa 16,5 1000 Menschen in jedem Alter Jahrzehnt haben, also das ist gut. Und sogar die Verteilung, das ist, was wir erwarten. Aber wenn wir uns die Käufe ansehen, die jeder Altersgruppe zugeschrieben werden, können
Sie sehen, dass dies aufgrund von AIDS zunimmt. Also haben wir diese Abhängigkeit, die wir versuchen, dort zu modellieren, funktioniert gut. Also etwa 3020-Jährige, aber kaufen etwas, aber über, wissen
Sie, fast 12.007 Jahre alte Flecken etwas, obwohl sie gleichmäßig in der Anzahl der Menschen verteilt waren. Wir sehen hier also sehr deutlich, dass es eine Beziehung zwischen Ihrem Alter und Ihrer Wahrscheinlichkeit gibt, etwas zu kaufen. Okay, also haben wir einen netten kleinen gefälschten Datensatz mit Jahr für bedingte Wahrscheinlichkeit, wir können auch die Gesamtzahl der Käufe über den gesamten Datensatz berechnen, der
auf 45.012 kommt . Und jetzt haben wir die Täler, mit denen wir arbeiten müssen, um mit bedingter Wahrscheinlichkeit zu spielen. Okay, wieder, eine Menge davon ist nur, den Kopf um die Notation zu bekommen und den Überblick zu behalten, welcher Buchstabe was bedeutet? Also nochmal, wir werden e kaufen etwas und f einem bestimmten Alter, in dem du bist, nennen. Also lasst uns damit beginnen, p von e gegeben f zu berechnen. Dies ist eine bedingte Wahrscheinlichkeit zwischen einem Kauf und f, wo wir
das in Ihren dreißiger Jahren mit diesem willkürlich ausgewählten Altersbereich dort nennen werden. Also die Wahrscheinlichkeit, etwas zu kaufen e gegeben, dass Sie in Ihren dreißiger Jahren f wir das direkt
berechnen können . Eigentlich können
wir einfach herausfinden, wie viele 30-Jährige etwas in Prozent gekauft haben. Also gehen wir voran und berechnen das einfach. Wie viele Käufe haben wir von dreißig Dingen gesehen und wie viele Leute waren in diesem Datensatz? Und das funktioniert auf 0,299 fast 0,3 richtig? Wir können auch unabhängig berechnen Stück BNP Sabbeth Stück f wird die Wahrscheinlichkeit 30 insgesamt im Zustand der Menge sein. Das ist einfach zu berechnen. Nehmen Sie einfach die Gesamtzahl der 30-Jährigen geteilt durch die Gesamtzahl der Menschen in unserem Datensatz, und das funktioniert. Teoh 16.6% 0.166 Stück PF e ist nur die allgemeine Wahrscheinlichkeit, etwas unabhängig
von Ihrem Alter zu kaufen , wenn es keine Abhängigkeit gab überhaupt, Also zu berechnen, PV wird nur die Gesamtzahl der Einkäufe nehmen für alle, unabhängig vom Alter, geteilt durch die Gesamtzahl der Menschen insgesamt, und das funktioniert auf 2,45 oder 45%. Insgesamt gibt es also in unserem gesamten Datensatz, Alter aus der Gleichung
herausnimmt, eine 45% Chance, etwas zu kaufen. Ordnung, also hier fängst du an, deine Denkmütze ein wenig anzuziehen. Also wickeln Sie Ihren Kopf um diese Aussage. Wenn e und f, die etwas kaufen und Ihr Alter unabhängig wären, als Sie erwarten würden, dass p von e gegeben f ungefähr das gleiche wie PV ist, oder? Wenn es keine Abhängigkeit zwischen dem Kauf von etwas in Ihrem Alter gäbe, würden
Sie erwarten, dass die allgemeine Wahrscheinlichkeit, etwas zu kaufen, die gleiche ist wie Wahrscheinlichkeit, etwas in Ihrem Alter zu kaufen,
weil es keine Abhängigkeit geben sollte es sollte keine Rolle spielen. Du hättest keine Rolle spielen sollen. Aber wir haben gesehen, dass das nicht wahr ist, oder? Also PV wir berechnet, um etwa 45%, aber p von e gegeben f wir früher berechnet, um etwa 30% oder
300.299 Was auch immer es ISS diese Zahlen Luft ziemlich unterschiedlich sein . So dass allein uns sagt, dass E und f abhängig sind, dass es eine Bedingung zwischen
diesen beiden Dingen gibt und wir wissen, dass das in diesem Beispiel der Fall ist, haben wir künstlich eine Abhängigkeit zwischen Kaufwahrscheinlichkeit und Alter geschaffen. Das ist also eine Möglichkeit, das aus den Daten direkt dort zu ärgern. Wenn Sie sehen, dass P, e, v und P V gegeben F oder wenn Sie verschiedene Buchstaben verwenden möchten, können Sie von A pinkeln ist nicht gleich P eines gegebenen sein, was auch immer Buchstaben Sie verwenden möchten, es ist nur Notation. Wenn diese nicht die gleichen sind, dann könnte es eine Abhängigkeit geben, die Sie wissen müssen. Alles klar, lassen Sie uns auch wieder p von e com af berechnen. Hier geht es um Notation. PFE-Komma F unterscheidet sich von P A e bar f. So PV Komma F ist die allgemeine Wahrscheinlichkeit, sowohl in Ihren dreißiger Jahren zu sein und
etwas ohne Abhängigkeit dort zu kaufen . Also schauen wir uns die allgemeine Wahrscheinlichkeit an, sowohl in deinen dreißiger Jahren zu sein als auch
etwas zu kaufen,und etwas zu kaufen, beschränken das
nicht nur auf die Bevölkerung von Menschen, die in ihren dreißiger Jahren sind. Wir können das leicht genug berechnen. Wir könnten nur die Gesamtzahl der Einkäufe von dreißig etwas über die
Gesamtgröße des Datensatzes hier betrachten , und das funktioniert auf etwa ah 5% ish Punkt für Punkt. Oh, für neun. Während wir dabei sind, können
wir auch das Produkt von P E und P F berechnen. Das wird nur P e und P F multiplizieren,
die allgemeine Wahrscheinlichkeit, etwas zu kaufen und die allgemeine Wahrscheinlichkeit, in Ihren
dreißiger Jahren zu sein . Das ergibt sich jetzt auf etwa 7,5%. In Statistiken, wenn sie über Wahrscheinlichkeit sprechen, werden
Sie oft die Beziehung sehen, dass p von aecom F gleich dem Produkt von PNE und PMF ist . Aber das ist nur dann wahr, wenn er jetzt genug unabhängig ist. Wir fanden hier, dass p von aecom f die allgemeine Wahrscheinlichkeit, nur in Ihren dreißiger Jahren zu sein und etwas aus dem Gesamtdatensatz zu
kaufen, ungefähr 0,5 Aber PV mal Pff ist etwa 0,75 Also wenn Sie eine Abhängigkeit zwischen diesen beiden Variablen haben, gibt es eine bedingte Wahrscheinlichkeit, und die Beziehung von PV-Komma F entspricht P, wenn er mal pf nicht mehr hält. Das ist eine andere Möglichkeit, wie Sie herausfinden können, dass
hier vielleicht eine Abhängigkeit stattfindet , die Ihre Ergebnisse vermasselt. Allerdings könnten
wir zurückgehen und überprüfen, dass die Gleichung, die wir in den Folien zurück gegeben und nur sehen, ob p a e gegeben f ist in der Tat gleich PV Komma F über PF. Und das ist nur eine Möglichkeit, bedingte Wahrscheinlichkeit zu berechnen. Wenn Sie nicht direkt Computer, wie wir in diesem Beispiel konnten, und sicher genug, können wir beweisen, dass das wahr ist. Die Wahrscheinlichkeit von aecom a F Das wird nur die Gesamtzahl der Einkäufe von
30-Jährigen über den gesamten Datensatz über Pff sein , die wir früher berechnet haben. Das funktioniert 2.299 bis 9, was genau das gleiche ist wie P A E gegeben f, dass wir ganz oben berechnet haben, richtig? Also lassen Sie uns überprüfen, dass 90.299295 Dieselbe Nummer, die wir ursprünglich hier aufgestanden haben. Das ist also cool. Die Mathematik funktioniert. Wow. OK, dies ist
also im Grunde ein paar Möglichkeiten, herauszufinden, ob Sie eine Abhängigkeit in Ihren Daten haben
, von der Sie vielleicht nicht gewusst haben, und eine Möglichkeit, bedingte Wahrscheinlichkeit zu berechnen, andere Dinge kennen, die Sie vielleicht kennen. Also wie auch immer, lassen Sie uns eine kleine Aufgabe hier ein bisschen eine Herausforderung machen, wenn Sie so wollen. Also Ihre Aufgabe, sollten Sie es akzeptieren,
ist es, den obigen Code so zu ändern, dass die Kaufwahrscheinlichkeit nicht mit dem Alter variiert. Also denken Sie daran, hier oben in diesem ersten Block haben wir diese Kaufwahrscheinlichkeit, die
eine Funktion Ihres Alters war . Machen Sie das einfach zu einem konstanten Wert. stattdessen Sehen Sie sichstattdessenan, was das mit Ihren Ergebnissen auswirkt. Also, wenn Sie das tun, können Sie einen neuen Datensatz generieren, wo Sie zeigen können, dass PV gegeben f ist ungefähr das gleiche von P und V? Das würde Ihnen zeigen, dass es dort keine Bedingung gibt. Wenn Sie zeigen, dass, um wahr zu sein, dass PV genug ist das gleiche spv, dann gibt es keine Abhängigkeit zwischen diesen beiden Dingen und das ist ein mathematischer Weg, das zu finden. Also gib das eine Chance und schau, ob du dir das beweisen kannst, und ich zeige dir meine Lösung dafür im nächsten Vortrag. So gibt es einige Beispiele für die Verwendung bedingter Wahrscheinlichkeit wieder, die Konzepte nicht so schwer. Es ist einfach wirklich einfach, auf der ganzen Notation mit allen Pipes und Kommas stolpert zu werden, was verschiedene Dinge und Sachen bedeutet. Aber sobald man sich daran gewöhnt hat, ist
es nicht so schlimm. Also ich hoffe, Sie haben eine Chance, hier in die Hausaufgaben einzutauchen und diese kleine
Übung zu versuchen , mit sich selbst zu spielen und diesen Zustand zu entfernen und zu bestätigen, dass bedingte Wahrscheinlichkeit sich selbst auslöscht. In diesem Fall möchte ich Ihnen meine Lösung in der nächsten Vorlesung zeigen.
21. Exercise Bedingte Wahrscheinlichkeit: Hast du deine Hausaufgaben gemacht? Ich hoffe es. Werfen wir einen Blick auf meine Lösung für das Problem, einen Blick darauf zu werfen, wie bedingte Wahrscheinlichkeit uns sagt, ob es eine Beziehung zwischen Alter und
Kaufwahrscheinlichkeit in einem gefälschten Datensatz gibt. Lass uns gehen. Okay, lass mich dich hier durch meine Lösung führen, und das sollte wieder ziemlich unkompliziert sein. Das Ziel hier war es, die Abhängigkeit zwischen Ihrem Alter und Ihrer
Kaufwahrscheinlichkeit zu entfernen und zu sehen, ob Sie tatsächlich aus der Mathematik dieser Abhängigkeit ärgern können, dass die Konditionalität verschwand. Wenn Sie sich also von unserem Spaziergang durch diesen Code erinnern, der unseren Datensatz generiert, haben
wir hier eine Zeile auf Kaufwahrscheinlichkeit, die basierend auf Ihrem Alter generiert hat. Es dauerte im Grunde Ihr Alter Jahrzehnt und geteilt durch 100, um diese Bedingung zwischen Ihrem
Alter und wie wahrscheinlich Sie etwas kaufen zu schaffen . Also, was ich hier getan habe, statt nur harten Code davon zu 40%, so gibt es keine Beziehung mehr zwischen Ihrem Alter und Ihrer Wahrscheinlichkeit, etwas zu kaufen. Lassen Sie uns also voran gehen und diesen Datensatz regenerieren. Das Entfernen dieser Abhängigkeit zwischen Alter und Kaufwahrscheinlichkeit ist es jetzt können wir berechnen. PFE Gegeben f Wieder Das ist die Wahrscheinlichkeit, einen Kauf gegeben Ihr Alter, für einige Altersgruppe wird wieder 30 Jährige wählen, nur um konsistent zu sein. So werden wir wieder die Gesamtzahl der Einkäufe von 30-Jährigen mit der Gesamtzahl
der 30-Jährigen berechnen , und wir enden mit der Zahl etwa 40%. Und wir können unabhängig berechnen p von e, das ist nur die Wahrscheinlichkeit, etwas insgesamt zu kaufen, unabhängig von Ihrem Alter, Das kommt zu 40%. Also 39,8 40,0, ziemlich verdammt nah. Okay, in diesem Fall ist
PV ungefähr äquivalent zu PV gegeben f ein wenig anders, nur wegen der zufälligen Variation. Aber es ist nahe genug, dass wir sagen können, dass TNF in diesem
Fall wahrscheinlich unabhängige Variablen sind . Also die Mathematik sagte uns, dass p von e gegebenen F das gleiche spv mehr oder weniger und sicher genug ist, das spiegelt die Tatsache wider, dass wir diese Bindung zwischen Alter und Kaufwahrscheinlichkeit entfernen. Ich hoffe, Sie konnten das gleiche Ergebnis erzielen und ein wenig von etwas über bedingte Wahrscheinlichkeit lernen und wie Sie diese Abhängigkeiten zwischen Ihren
verschiedenen Merkmalen Ihrer Daten aus der Mathematik ärgern können. Okay, hoffentlich sind Sie auf eigene Faust zu einer ähnlichen Lösung gekommen. Wenn nicht, dann
gehen Sie zurück und studieren Sie meine Lösung. Es ist genau dort in den Datendateien für diesen Kurs. Wenn du es öffnen und studieren musst und damit herumspielen musst. Und mit dem hinter uns, gehen
wir zum Bayes-Theorem.
22. Bayes' Theorem: Nun, da Sie die bedingte Wahrscheinlichkeit verstehen, können
Sie verstehen, wie Sie Bayes Theorem anwenden, die auf bedingter Wahrscheinlichkeit basiert. Und es ist ein sehr wichtiges Konzept,
vor allem, wenn Sie im medizinischen Bereich gehen, aber weitgehend anwendbar auf, und Sie werden sehen, warum in einer Minute es Ihnen sehr quantitativ sagen kann. Manchmal, wenn Leute dich mit Statistiken irreführen. Also mal sehen, wie das funktioniert. Jetzt, wo Sie die bedingte Wahrscheinlichkeit verstehen, können
wir über das Bayes-Theorem sprechen. Man hört viel davon, aber nicht viele Menschen verstehen wirklich, was es bedeutet oder seine Bedeutung. Also lassen Sie uns darüber sprechen, dass es auf einem hohen Niveau hier basiert. Also basiert dort, ähm, ist einfach das. Die Wahrscheinlichkeit eines gegebenen B ist gleich der Wahrscheinlichkeit, dass ein Mal die Wahrscheinlichkeit
gegeben wird a über die Wahrscheinlichkeit von B. Alles klar,
so dass Sie wissen, dass Sie A und B ersetzen können, was Sie wollen. Ein häufiges Beispiel sind die Drogentests. Also könnten wir
sagen, wie hoch ist die Wahrscheinlichkeit, ein wirklicher Konsument eines Medikaments zu sein, da Sie positiv darauf getestet haben? Und der Grund basierte Satz ist wichtig ist, dass es fordert, dass dies sehr viel von der Wahrscheinlichkeit eines und wahrscheinlich von Bienen
abhängt . Die Wahrscheinlichkeit, ein Drogenkonsument zu sein, da Sie positiv getestet haben, hängt sehr stark von der Gesamtwahrscheinlichkeit des Seins eines Drogenkonsumenten und der Gesamtwahrscheinlichkeit der positiven Tests ab. Okay, es bedeutet auch, dass die wahrscheinlich ein gegeben werden Es ist nicht das Gleiche wie ein vermutlich ein gegebenes sein . Die Wahrscheinlichkeit, ein Drogenkonsument zu sein, da Sie positiv getestet haben, könnte sich sehr von der Wahrscheinlichkeit unterscheiden, positiv zu testen, da Sie ein Drogenkonsument waren,
also wissen Sie, dass Sie sehen können, wohin das geht. Es gibt ein sehr echtes Problem, bei dem diagnostische Tests in der Medizin oder Medikamentententests eine Menge
falscher Positiva ergeben , richtig? Und Sie können immer noch sagen, dass die Wahrscheinlichkeit eines Tests, der einen Benutzer erkennt, sehr hoch sein könnte. Aber es bedeutet nicht unbedingt, dass die Wahrscheinlichkeit, ein Benutzer zu sein, gegeben, dass Sie
positiv getestet haben, hoch ist. Es gibt zwei verschiedene Dinge und basiert dort und ermöglicht es Ihnen, diesen Unterschied zu quantifizieren. Also lassen Sie uns dieses Beispiel nach Hause ein wenig mehr Nagel Also wieder, ein Drogentest könnte ein häufiges Beispiel für die Anwendung von Bayes-Theorem sein, um einen Punkt zu beweisen. Selbst ein hochgenauer Medikamententest kann mehr Fehlalarme und wahre Positive hervorrufen. In unserem Beispiel hier werden
wir eine Medikamentententests entwickeln, die Benutzer eines Medikaments zu 99%
der Zeit genau identifizieren können und tatsächlich ein negatives Ergebnis für 99% der Nichtbenutzer hat. Also, aber nur 0,3% der Gesamtbevölkerung verwendet tatsächlich das fragliche Medikament. Okay, also habe ich eine sehr geringe Wahrscheinlichkeit, tatsächlich ein Konsument einer Droge zu sein. Was wie eine sehr hohe Genauigkeit von 99% scheint, ist eigentlich nicht hoch genug, oder? Wir können die Mathematik ausarbeiten. Also lassen Sie uns Ereignis Amy bedeutet, dass Sie ein Benutzer von einigen Drogen und Ereignis ist, dass Sie positiv für das Medikament mit diesem Medikamententest
getestet. Daher müssen wir die Wahrscheinlichkeit ermitteln, insgesamt positiv zu testen. Und wir können das herausfinden, indem wir uns die Wahrscheinlichkeitstests positiv ansehen, wenn Sie Benutzer sind und die Wahrscheinlichkeit, positiv zu testen, wenn Sie kein Benutzer sind, und das funktioniert bis 22 Punkt April davon funktioniert auf 1,3% in diesem Beispiel Okay, also wir haben die Wahrscheinlichkeit, die Wahrscheinlichkeit, positiv für das Medikament insgesamt zu testen ohne etwas anderes über Sie zu wissen. Wenn Sie die Mathematik, die Wahrscheinlichkeit, ein Benutzer des Medikaments Angesichts der Tatsache, dass Sie positiv getestet, wissen
Sie, was die Wahrscheinlichkeit eines positiven Testergebnisses ist? Das bedeutet, dass Sie tatsächlich ein Drogenkonsument arbeiten, um die Wahrscheinlichkeit, ein Benutzer
des Medikaments insgesamt, die 3% ist. Wir wissen, dass 3% der Bevölkerung ein Drogenkonsument mal die
Wahrscheinlichkeit einer positiven Prüfung gegeben werden . Da Ihr Benutzer und wieder dieser Test hat eine, was sich wie eine sehr hohe Genauigkeit von 99% anhört . Also haben wir 0,3% der Bevölkerung verwendet das Medikament mal die I-Genauigkeit von 99% geteilt durch die Wahrscheinlichkeit, positiv zu testen insgesamt, die auf 1,3% geklappt. So ist die Wahrscheinlichkeit, ein tatsächlicher Benutzer dieses Medikaments zu sein, da Sie positiv dafür getestet haben, nur 22,8%. Okay, Obwohl dieser Medikamententest genau 99% der Zeit ist, liefert
er immer noch ein falsches Ergebnis in den meisten Fällen, in denen Sie positiv testen. Okay, die Leute übersehen das die ganze Zeit. Wenn es also eine Lektion gibt, die von der Basis dort gelernt werden muss, ist
es, immer die Quelle der Dinge mit der Kranangriff Arbeit, die dort angewendet werden,
in diese tatsächlichen Probleme zu nehmen . Und man findet oft, dass das, was nach einer hohen Genauigkeitsrate klingt, tatsächlich zu sehr
irreführenden Ergebnissen führen kann . Wenn Sie mit einer geringen Gesamtinzidenz eines bestimmten Problems zu tun
haben, sehen wir dasselbe in Krebsvorsorge und anderen Arten von medizinischen Screening als auch. Es ist ein sehr echtes Problem, und es ist eine Menge Leute, die sehr, sehr real und sehr unnötige Operation als Folge der Nichtverständnisses dort. Also, wenn Sie mit Big Data in den medizinischen Beruf gehen, bitte, Sie denken
Sie
bitte an diesen Vortrag. Also, das basiert dort. Ich erinnere mich immer daran, dass die Wahrscheinlichkeit, dass etwas anderes gegeben
wird, nicht
dasselbe , nicht
dasselbe ist, umgekehrt ist, und es hängt tatsächlich viel von den Basiswahrscheinlichkeiten beider Dinge ab, die Du messst. Die Wahrscheinlichkeit, dass ein Drogentest genau ist, hängt also viel
von der allgemeinen Wahrscheinlichkeit ab, ein Drogenkonsument in der Bevölkerung zu sein, nicht nur Theokratie des Tests, sehr wichtig, im Auge zu behalten. Und, wissen
Sie, schauen Sie sich Ihre Ergebnisse
immer mit dem Gedanken an, basierend auf dort und gibt Ihnen die Werkzeuge, um diesen Effekt zu quantifizieren. Ich hoffe, es erweist sich als nützlich.
23. Lineare Regression: Lassen Sie uns über Regressionsanalyse, sehr beliebtes Thema und Data Science und Statistik sprechen. Alles, was es ist, versucht, eine Kurve, eine
Art Funktion an eine Reihe von Beobachtungen anzupassen . Und dann können Sie diese Funktion verwenden, um neue Werte vorherzusagen, die Sie noch nicht gesehen haben. Es ist alles, was da ist. Lassen Sie uns also beginnen, indem wir über die einfachste Form der Regressionsanalyse sprechen. Lineare Regression Lassen Sie uns über lineare Regression sprechen. Sie hören viel über Regressionsanalyse im Bereich der Tage. Wissenschaft klingt schick, aber es ist eigentlich ein sehr einfaches Konzept. Mal sehen. Also lineare Regression alles, was es ist, ist eine gerade Linie an eine Reihe von Beobachtungen anzupassen. Das war's. Das ist alles, was es dazu gibt. Also, zum Beispiel, lassen Sie uns sagen, dass ich eine Reihe von Menschen habe, die ich gemessen habe, und die beiden Merkmale, die ich
gemessen habe , oder diese Leute sind ihr Gewicht und ihre Größe, einige schockierend, zeigen das Gewicht auf die X-Achse und die Höhe auf der Y-Achse. Und ich kann all diese Datenpunkte plotten. Dass die Leute auf uns warten, ist ihre Höhe, und ich konnte ihn sehen. Das sieht aus wie eine lineare Beziehung, nicht wahr? Vielleicht kann ich eine gerade Linie dazu passen und diese verwenden, um neue Werte vorherzusagen. Und das ist es, was Lenny lineare Regression tut. In diesem Beispiel könnte
ich mit einer Neigung von 0,6 im Y-Schnittpunkt von 1 30,2 in diesem Beispiel enden, das eine gerade Linie
definiert,
wenn eine Neigung in einem Y-Schnittpunkt gegeben wird, der zu den Daten passt, die ich am besten habe. Und ich kann diese Linie verwenden und neue Werte erstellen, damit Sie sehen können, dass die Gewichte, die ich beobachtete, nur bis zu Menschen, die 100 Kilogramm wogen. Was wäre, wenn ich jemanden hätte, der 120 Kilogramm wog? Nun, ich könnte diese Linie verwenden, um herauszufinden, wo wäre die Höhe für jemanden mit 100 20 Kilogramm, basierend auf all diesen vorherigen Daten? Das war's. Ich weiß nicht, warum man es Regression nennt. Regression impliziert, dass Sie etwas rückwärts tun, und ich denke, Sie können sich daran denken, dass Sie eine Linie erstellen, um neue Werte
basierend auf Beobachtungen vorherzusagen , die Sie in der Vergangenheit rückwärts in der Zeit gemacht haben. Aber es scheint ein bisschen eine Strecke zu sein. Es ist nur ein verwirrender Begriff, ganz ehrlich. Und Sie wissen noch einen anderen Weg, dass wir irgendwie verdunkeln, was wir mit sehr einfachen,
einfachen Konzepten tun, die sehr ausgefallene Terminologie verwenden. Lassen Sie sich also nicht von der linearen Regression in Bezug auf die klingende Phantasie stürzen. Alles, was es ist, ist eine gerade Linie an einen Satz von Datenpunkten anzupassen. Wie funktioniert es gut intern verwendet eine Technik namens kleinste Quadrate, gewöhnliche kleinste Quadrate, die auch als OLS bekannt ist. Möglicherweise sehen Sie, dass dieser Begriff auch umhergeworfen wird, und die Funktionsweise ist, dass er versucht, den quadrierten Fehler zwischen jedem Punkt und der
Linie zu minimieren , und der Fehler ist nur der Abstand zwischen jedem Punkt in der Linie, den Sie haben. Also, wenn wir alle Quadrate dieser Fehler zusammenfassen, klingt sehr ähnlich, wenn wir Varianten richtig berechnet haben, außer anstatt relativ zu den Mitteln zu dieser Linie, die wir definieren. Wir können die Varianz der Datenpunkte von dieser Linie messen, und indem wir diese Varianz minimieren, können
wir die Linie finden, die am besten zu ihr passt. Jetzt musst du das nie selbst auf die harte Art machen. Aber wenn Sie musste aus irgendeinem Grund oder wenn Sie nur neugierig, was unter der Haube passiert . Dies beschreibt den Gesamtalgorithmus hier für Sie, wie Sie tatsächlich die Steigung
berechnen würden und warum Sie sich auf die harte Weise abfangen, wenn Sie es brauchen. Es ist wirklich nicht so kompliziert. Die Steigung erweist sich nur als die Korrelation zwischen den beiden Variablen mal einer
Standardabweichung und warum dividiert durch die Standardabweichung in X, und es könnte ein wenig seltsam erscheinen, dass die Standardabweichung nur irgendwie in die Karte natürlich dort. Aber denken Sie daran, dass Korrelation auch Standardabweichung in sie eingebacken hatte, also ist es nicht überraschend, dass wir diesen Begriff wieder einführen. Der Abfang kann dann gesetzt werden. Der Schnittpunkt kann dann als Mittelwert des Y,
minus der Steigung,
mal als Mittelwert von X und wieder berechnet werden minus der Steigung, , obwohl das wirklich nicht so schwierig ist. Python wird alles für Sie tun. Aber der Punkt ist, dass es sich nicht um komplizierte Dinge handelt, wissen
Sie, sie können tatsächlich ziemlich effizient machen. Also noch einmal, denken Sie
daran, kleinste Quadrate die Summe der quadrierten Fehler von jedem Punkt zur Linie minimiert, und eine andere Art, über lineare Regression nachzudenken, besteht darin, dass Sie eine Linie definieren, die die maximale Wahrscheinlichkeit, dass eine Beobachtung dort liegt, aber die maximale Wahrscheinlichkeit, dass der Y-Wert etwas für einen gegebenen X-Wert ist. Also wieder, wissen
Sie, Leute nennen diese Maximalwahrscheinlichkeitsschätzung manchmal, und es ist nur ein weiteres Beispiel dafür, dass Menschen etwas, das sehr einfach ist, einen schicken Namen geben . Wenn Sie also jemanden hören, der über die Maximalwahrscheinlichkeitsschätzung spricht, sprechen
sie wirklich über Regression. Sie versuchen nur, wirklich schlau zu klingen. Aber jetzt kennen Sie diesen Begriff, damit Sie beide schlau klingen können. Es gibt mehr als einen Weg, dies zu tun. Wir sprechen von gewöhnlichen kleinsten Quadraten als eine einfache Möglichkeit, eine Linie an einen Satz von
Daten anzupassen . Aber es gibt auch andere Techniken. Grady und Dissens ist einer von ihnen, und es funktioniert am besten in dreidimensionalen Daten, also versucht es irgendwie, den Konturen der Daten für Sie zu folgen. Es ist sehr schick und offensichtlich ein bisschen rechnerischer e teuer, aber Python macht es nicht einfach für Sie, es auszuprobieren. Wenn Sie es mit gewöhnlichen Quadraten vergleichen möchten, sind die
kleinsten Quadrate
jedoch eine vollkommen gute Wahl,die wir tun, wenn Ihre Regression und Sie wissen, dass es
immer ist,
ah, jedoch eine vollkommen gute Wahl, kleinsten Quadrate
jedoch eine vollkommen gute Wahl,die wir tun, wenn Ihre Regression und Sie wissen, dass es
immer ist , ah, legitime Sache zu tun. Aber wenn Sie auf Grady und Dissens stoßen, werden
Sie wissen, dass dies ein alternativer Weg ist, England Ihre Regression zu tun, und es normalerweise in höherdimensionalen Daten gesehen. Woher weiß ich, wie gut meine Regression ist? Wie gut passt meine Zeile zu meinen Daten? Nun
, da kommt R. Squared ins Spiel und R quadriert ist, dass sie auch wieder als Bestimmungskoeffizient bekannt . Also versuche ich jemanden zu finden, der versucht, klug zu klingen. Ich nenne es so, aber normalerweise heißt es R quadriert. Es ist der Bruchteil der Gesamtstreuung und warum diese von Ihren Modellen erfasst wird. Wie gut folgt Ihre Linie dieser Variation, die passiert? Erhalten wir eine gleiche Anzahl von sehr Varianten auf beiden Seiten Ihrer Linie oder nicht? Das ist, was R. Squared hat diese Messung erfüllt und berechnet tatsächlich den Wert 1 minus die Summe der quadrierten Fehler über die Summe der quadrierten Variationen vom Mittelwert, so dass es nicht sehr schwierig ist zu berechnen, Aber wieder, Python wird Ihnen Funktionen geben, die das nur für Sie berechnen würden, also werden Sie Acto nie diese Mathematik selbst machen, um R quadriert zu interpretieren, Sie erhalten einen Wert, der von 0 bis 1 Null reicht. Bedeutet, dass du fit bist, ist schrecklich. Es erfasst keine der Varianz in Ihren Daten, und eine ist perfekt geeignet. So wird die gesamte Varianz in Ihren Daten von dieser Zeile erfasst, so dass alle verschiedenen, die auf beiden Seiten Ihrer Zeile zu sehen sind, in diesem Fall gleich sein sollten, also Null ist schlecht. Einer ist gut. Es ist schon wirklich notwendig, etwas dazwischen ist etwas dazwischen. Ein niedriger R-Quadratwert bedeutet also, fit hoch R quadriert zu unterstützen. Value Means ist eine gute Passform. Und wie Sie in den kommenden Vorträgen sehen, gibt es mehr als eine Möglichkeit, Regression durchzuführen. Lineare Regression ist einer von ihnen. Es ist eine sehr einfache Technik, aber es gibt auch andere Techniken, und Sie können unsere quadrierten verwenden. Es ist ein quantitatives Maß dafür, wie gut eine gegebene Regression für einen Satz von Datenpunkten ist, und verwenden Sie
diese dann, um das Modell auszuwählen, das am besten zu Ihren Daten passt. OK, also lasst uns damit spielen und tatsächlich eine lineare Regression berechnen und r quadriert. Lassen Sie uns etwas Spaß mit linearer Regression haben. Also gehen Sie vor und öffnen Sie die lineare Regression I Python Notebookdatei und folgen mir, wenn Sie wollen, weil sie es tun. Du willst das herumspielen, um ein gutes Gefühl davon zu bekommen. Also beginnen wir damit, hier ein wenig Python-Code zu erstellen, der einige zufällige
ish-Daten generiert ,
die tatsächlich linear korreliert sind. In diesem Beispiel werde
ich einige Daten über Seitenrendering-Geschwindigkeiten vortäuschen und wie viel Leute wie
ein vorheriges Beispiel kaufen . Erstellen Sie also eine lineare Beziehung zwischen der Menge an Zeit, die für eine Website
toload und der Menge an Geld, die Menschen auf dieser Website ausgeben. Also habe ich hier getan ist, dass ich eine zufällige,
eine normale Verteilung der Gehaltsgeschwindigkeiten gemacht habe , die um drei Sekunden mit einer Mittelabweichung
von einer Sekunde zentriert ist, und ich habe den Kaufbetrag der linearen Funktion davon gemacht. Also mache ich es 100 minus der Seitengeschwindigkeiten, plus eine normale zufällige Verteilung um sie herum. Mal drei. Und wenn wir das zerstreuen, können
wir sehen, dass die Zeile die Daten so aussehen. Okay, Sie können
also nur durch Augäpfeln sehen, dass dort definitiv eine lineare Beziehung
stattfindet . Und das liegt daran, dass wir harte Coda, riel lineare Beziehungen in unseren Quelldaten gemacht haben. Mal sehen, ob wir das ärgern und die beste Passform finden können, indem wir gewöhnliche kleinste
Quadrate verwenden . Jetzt haben wir darüber gesprochen, wie man normalerweise Quadrate und lineare Regression in den Folien macht, aber Sie müssen keine dieser Mathematik selbst machen, weil These I Pi Paket ein immer Paket hat, das Sie wichtig suchen sicher von CYP I Import-Statistiken. Und dann könntest du einfach Statistiken nennen. Stotland Regression auf Ihre beiden Features. So haben Sie eine Liste der bezahlten Geschwindigkeiten und eine entsprechende Liste der Kaufbeträge. Lane Regress wird mir eine Reihe von Sachen zurückgeben, also gibt es mir alle diese Variablen zurück, die ich zurückbekomme, die Steigung den Abfang, und das ist, was ich brauche, um meine beste Passlinie zu definieren. Es bringt mir auch den Wert, von dem wir unser Quadrat bekommen können, um die Qualität
dieser Passform zu messen und ein paar Dinge, über die später im Kurs für Jetzt sprechen
wir nur Slope Abfangen in unserem Wert. Also lasst uns weitermachen und diese ausführen. Also gibt es meine Linie und lass uns voran gehen und die lineare Regression finden. Am besten passt jetzt der R-Quadratwert, dass die Linie, die wir zurückbekommen haben, 0,99 Das ist fast ein Punkt. Oh, das bedeutet, dass wir eine wirklich gute Passform haben, was nicht überraschend ist, weil wir dafür gesorgt haben, dass es eine echte lineare Beziehung zwischen diesen Daten gibt. Obwohl es eine gewisse Varianz um diese Linie gibt, liegen Captures bei Varianz. Also haben wir ungefähr die gleiche Menge an Varianz auf beiden Seiten der Linie, was eine gute Sache ist. Es sagt uns, dass wir eine lineare Beziehung haben und unser Modell passt gut zu den Daten , die wir haben. Lassen Sie uns diese Linie eigentlich zeichnen, so dass dieses kleine bisschen Code tatsächlich eine Funktion erstellt, um diese rote Linie am besten neben den Daten zu zeichnen. Also ein bisschen mehr von Matt Plot lib Magie hier, wir werden eine Fit Line Liste erstellen, und wir werden diese Vorhersage Funktion verwenden. Wir haben geschrieben, um die bezahlten Geschwindigkeiten zu nehmen, die unsere X-Achse ist und daraus die Y-Funktion zu erstellen. Anstatt also die Beobachtungen für den ausgegebenen Betrag zu nehmen, werden
wir die vorhergesagten finden, indem wir nur die Steigung Times X plus den Abfang verwenden, den
wir vom Landregress Anruf oben zurückkamen. Also im Grunde gehen
wir zu einem Streudiagramm, wie wir es vorher getan haben, um die rohen Datenpunkte die
Beobachtungen zu zeigen . Und dann werden wir auch Plot auf derselben Rohrlos-Instanz aufrufen, indem wir unsere Anpassungslinie verwenden, die wir mit der Liniengleichung erstellt haben, die wir zurückbekommen haben, und sie alle zusammen zeigen. Tun Sie das. Und es sieht so aus, so dass Sie sehen können, dass unser Löwe in der Tat eine gute Passform für unsere Daten geht rechts, Snack in der Mitte und alles, was Sie brauchen, um neue Werte vorherzusagen, ist diese Vorhersage Funktion. Angesichts einer neuen zuvor ungesehenen bezahlten Geschwindigkeit konnten
wir den Betrag vorhersagen,der nur mit der Steigung mal die bezahlte C plus C pe Geschwindigkeit
plus den Abfang ausgegebenwurde. Angesichts einer neuen zuvor ungesehenen bezahlten Geschwindigkeit konnten
wir den Betrag vorhersagen, der nur mit der Steigung mal die bezahlte C plus C pe Geschwindigkeit
plus den Abfang ausgegeben Das ist alles, was es dazu gibt. Also Zeit, deine Hände schmutzig zu machen. Versuchen Sie, die zufällige Streuung in den Testdaten zu erhöhen und zu prüfen, ob dies Auswirkungen hat. Denken Sie daran, dass die R quadriert ist ein Maß für die Passform. Wie viel zu erfassen, die Varianten. Also die Höhe der Varianz werden wir sehen, ob es tatsächlich einen Unterschied macht oder nicht. Das ist eine lineare Regression. Ziemlich einfaches Konzept. Alles, was wir tun, ist eine gerade Linie anstelle von Beobachtungen anzupassen. Und dann können wir diese Linie verwenden, um Vorhersagen neuer Werte zu machen. Es ist alles, was da ist. Aber warum beschränken Sie sich darauf, sich auszurichten? Es gibt andere Arten von Regression. Wir könnten diesen Arm oder Komplex machen. Das machen wir als Nächstes.
24. Polynom-Regression: also sprachen wir über lineare Regression. Polynom-Regression ist unser nächstes Thema, und das verwendet höhere Ordnung. Polynom ist, dass Ihre Daten passen, so dass Ihre Daten manchmal nicht wirklich für eine gerade Linie geeignet sind. Dort kommt die polynomische Regression ins Spiel. Lass uns in Alles klar eintauchen. Wir haben früher über lineare Regression gesprochen, wo wir eine gerade Linie zu einer Reihe von Beobachtungen passen. Lassen Sie uns über die Polynom-Regression sprechen, die ein allgemeinerer Fall von Regression ist. Warum also beschränken Sie sich auf eine gerade Linie? Vielleicht haben Ihre Daten keine lineare Beziehung. Vielleicht gibt es eine Art Kurve, oder? Das passiert ziemlich häufig. Nicht alle Beziehungen sind linear, aber die lineare Regression ist nur ein Beispiel für eine ganze Klasse von Regressionen, die wir
tun können . Wenn Sie sich daran erinnern, dass
die lineare Regressionslinie, die wir am Ende hatten, von der Form Y gleich MX plus B war, wo wir die Werte M und B aus unserer linearen Regressionsanalyse von gewöhnlichen
kleinsten Quadraten oder von welcher Methode Sie wählen, zurückerhalten haben. Jetzt ist dies nur eine erste Ordnung oder ein Polynom ersten Grades, und die Reihenfolge des Grades ist die Macht von X, ein C. Also das ist das Polynom erster Ordnung. Aber wir könnten auch ein Polynom zweiter Ordnung verwenden, und das würde wie y gleich X quadriert plus B x plus e aussehen. Und wenn wir eine Regression mit einem Polynom zweiter Ordnung machen, würden
wir Werte für A,
B und C zurückbekommen . Oder wir könnten 1/3 Ordnung Polynom, das ein X Cubed plus B X quadriert plus e x plus D hat Und je mehr die höheren Ordnungen, die Sie bekommen, komplexer sind die Kurven, die Sie darstellen können. Richtig? Du kennst also die mawr Kräfte von X. Du hast die komplizierteren Formen und Beziehungen miteinander vermischt, die du bekommen kannst. Aber mehr Abschlüsse sind nicht immer besser, weißt
du. Normalerweise gibt es eine natürliche Beziehung in Ihren Daten, die nicht wirklich so kompliziert ist. Und wenn Sie sich selbst werfen, wissen
Sie sehr große Grade, um Ihre Daten anzupassen, könnten
Sie übermäßig passen. Okay, wenn Sie
also sind, wenn Sie Daten haben, das ist irgendwie überall und hat eine Menge von Varianten, die Sie bekommen können, können Sie verrückt werden und diese Zeile erstellen, die, nur, wie, geht nach oben und runter, um zu versuchen, diese Daten genau wie möglich anzupassen. Aber in der Tat das nicht die intrinsische Beziehung dieser Daten dar. Es macht keinen guten Job, neue Werte vorherzusagen. Beginnen Sie also immer mit der Visualisierung Ihrer Daten und denken Sie darüber nach, wie kompliziert diese Kurve wirklich sein muss? Jetzt können Sie unser Quadrat verwenden, um zu messen, wie gut Ihre ISS passen. Aber denken Sie daran, das ist nur zu messen, wie gut diese Kurve zu Ihren Trainingsdaten passt. Die Daten, die Sie verwenden, um Ihre Vorhersagen tatsächlich basierend darauf zu machen,
messen nicht Ihre Fähigkeit, in Zukunft genau vorherzusagen. Später werden
wir über einige Techniken zur Verhinderung von Überanpassungen sprechen, die als Zugtest bezeichnet werden. Aber im Moment musst
du es nur augapfeln und sicherstellen, dass du nicht übermäßig bist und mehr Grad als eine Funktion
werfst. Dann musst du es. Dies wird Mawr sinnvoller machen, wenn wir ein Beispiel machen. Zum Glück, keine. Pie hat eine Poly-Fit-Funktion, die es super einfach macht, damit zu spielen und mit
verschiedenen Ergebnissen zu experimentieren . Also lassen Sie uns einen Blick werfen. Zeit für Spaß mit Polynom-Regression. Ich denke, es macht
übrigens wirklich Spaß . Es ist irgendwie cool,
zu sehen, dass all die High-School-Mathematik tatsächlich in eine praktische Anwendung kommt. Gehen Sie voran, öffnen Sie die Polynom-Regression i Python Notebook und lassen Sie uns etwas Spaß haben. Lassen Sie uns also eine neue Beziehung zwischen unseren Seitengeschwindigkeiten und Kaufbetrag gefälschte Daten erstellen. Und dieses Mal werden wir eine komplexere Beziehung schaffen. Das ist nicht linear. Wir werden eine die bezahlten Geschwindigkeiten nehmen und es eine Funktion der Aufteilung der Seitengeschwindigkeiten
für den Kaufbetrag machen . Und wenn wir ein Streudiagramm machen, enden
wir damit. Übrigens, wenn Sie sich mit dieser NPR-zufälligen Punkt-Seedlinie fragen, erzeugt das einen zufälligen
Startwert , und es bedeutet, dass, wenn ich nachfolgende zufällige Operationen mache, sie deterministisch sein werden. Indem ich das mache, könnte
ich sicherstellen, dass jedes Mal, wenn ich das ein bisschen Code mache, mit den gleichen exakten Ergebnissen
enden, okay, und das wird später wichtig sein, weil ich dich zurückkommen lassen werde und tatsächlich Probieren Sie verschiedene Anpassungen zu diesen Daten aus, um die Passungen zu sehen, die Sie erhalten. Daher ist es wichtig, dass Sie mit dem gleichen anfänglichen Satz von Punkten beginnen. Also da haben wir es. Sie können sehen, dass das nicht wirklich eine lineare Beziehung ist. Wissen Sie, wir könnten versuchen, die Linie zu ihm zu
fummeln, und es wäre in Ordnung, wenn viele der Daten hier unten sind, aber nicht so sehr hier. Wir haben wirklich eine exponentielle Kurve. Jetzt stellt sich heraus, dass taub pie eine Poly-Fit-Funktion hat, mit der Sie jeden
Polynomgrad, den Sie möchten, an diese Daten anpassen können. So zum Beispiel sagen, könnten
wir
zum Beispiel sagen,unsere X-Achse ist ein Array der Seitengeschwindigkeiten, die wir in unserer Y-Achse haben, ist ein Bereich. Die Kaufbeträge, die wir haben. Wir können dann einfach anrufen und P, das ist eine Abkürzung für taub Kuchen, Paul, wenn es x y und vier bedeutet, dass wir 1/4 Grad Polynom passen zu diesen Daten wollen. Also lasst uns voran gehen und rennen. Das läuft ziemlich schnell, und wir können das dann planen. Also werden wir hier ein kleines Diagramm erstellen, dass Plots Streudiagramm Originalpunkte vs vorhergesagte Punkte
sind, und es sieht so aus. So
sieht an dieser Stelle wie eine ziemlich gute Passform aus. Was Sie sich fragen möchten,
ist, , m I über Anpassung Hat meine Kurve so aussieht, als ob sie tatsächlich aus dem Weg geht, um Ausreißer
aufzunehmen und nicht wirklich. Weißt du, ich sehe nicht wirklich eine ganze Menge Verrücktheit. Wenn ich ein wirklich hochrangiges Polynom hätte, könnte
es, wissen
Sie
, könnte
es,wissen
Sie
,hier raufschlagen, um das zu fangen, und dann hier runter, um das zu fangen und, wissen
Sie, ein bisschen stabiler zu werden durch hier, wo wir eine Menge Dichte haben. Und vielleicht würde es dann gerne, dass es potenziell,wissen
Sie,überall über den Ort
gehen könnte wissen
Sie, versuchen, diesen letzten Besuch Satz von Daten hier zu passen. Vielleicht wird es gehen. Wir woo, zum Beispiel. Also, wenn Sie diese Art von Unsinn sehen, wissen
Sie, Sie haben zu viele Aufträge zu viele Grad in Ihrem Polynom, und Sie sollten es wahrscheinlich wieder nach unten bringen, denn obwohl es zu den Daten passt, die Sie beobachtet haben, Es wird nicht nützlich sein, um Daten vorherzusagen, die Sie noch nicht gesehen haben. Stellen Sie sich also vor, ich habe eine Kurve, die hier nach oben und dann wieder nach unten fällt, um diese
Datenpunkte zu passen . Meine Vorhersage für etwas dazwischen wird nicht genau sein, oder? Es sollte wirklich in der Mitte hier sein, so später im Kurs wird über die
wichtigsten Mittel zu erkennen, dass über Anpassung sprechen . Aber für jetzt, nur Augapfel es. Jetzt können wir die R quadrierte Luft messen. Also, indem wir das Warum und die vorhergesagten Werte nehmen, die wir nicht haben, um Funktion in seiner SK gelernt psychisch auf Metriken, die wir verwenden können, die diesen Wald berechnet. Im Grunde vergleicht
es eine Reihe von Beobachtungen mit einer Reihe von Vorhersagen und berechnet r quadriert für Sie mit nur einer Codezeile und r r r quadrierten Code dafür erweist sich als 10,8 bis 9, was nicht zu schlecht ist. Denk daran, Null ist schlecht. Einer ist gut, zeigt auf ziemlich nah an einer, die du kennst, nicht perfekt. Und intuitiv macht das Sinn. Sie können sehen, dass unsere Linie in diesem Abschnitt der Daten ziemlich gut ist, aber nicht so gut hier draußen und nicht so gut hier oben und zeigen Sie ein auf Klänge über richtig. Also will ich dich,
Teoh, Teoh, geh runter und dreckig mit dem Zeug. Probieren Sie verschiedene Ordnungen des Polynoms aus. Also geh zurück hier, wo wir die Poly-Fit-Funktion ausgeführt haben und probiere dort
neben vier verschiedene Werte aus. Du weißt, du könntest einen benutzen, und das würde zu einer linearen Regression zurückgehen. Oder du könntest einen wirklich hohen Betrag ausprobieren, wie acht. Und vielleicht würden Sie anfangen, über passen zu sehen, also sehen, welche Wirkung das hat. Weißt du, du wirst das ändern wollen. zum Beispiel Gehen
wirzum Beispielzu 1/3 Grad Polynom. Sie einfach weiter laufen, um durch jeden Schritt zu gehen, und Sie können die Wirkung sehen, die es hat. Also unser Polynom dritten Grades definitiv nicht so gut wie eine Passform. Und wenn Sie tatsächlich den r quadrierten Fehler messen, ist
es tatsächlich quantitativ schlechter. Aber wenn ich in die Höhe gehe, sehe
ich vielleicht, dass wir passen. Also einfach nur etwas Spaß damit, spielen um verschiedene Werte und bekommen ein Gefühl, was verschiedene Ordnungen des Polynoms aufgrund Ihrer Linie hier, Regression und bekommen Sie Ihre Hände schmutzig und versuchen, etwas zu lernen. Das ist also wieder eine polynomische Regression. Sie müssen sicherstellen, dass Sie keine Mawr-Grade auf das Problem setzen, als Sie
genau die richtige Menge verwenden müssen , um zu finden, was wie eine intuitive Anpassung an Ihre Daten aussieht. Zu viele können dazu führen, dass zu wenige zu einer schlechten Passform führen können. So können Sie sowohl Ihre Augäpfel vorerst als auch die R-Quadratmetrik verwenden, um herauszufinden, was die richtige Anzahl von Grad ist. Für Ihre Daten, lassen Sie uns weitermachen.
25. Mehrere Regression mehrfach: Lassen Sie uns in mehrere Regression eintauchen. Das ist nur eine Regression, die mehr als eine Variable berücksichtigt, mehr als eine Funktion. Das Konzept ist eigentlich ziemlich einfach. Es beantwortet nur die Frage,
was ist, wenn ich mehr als eine Variable habe, die das Ding beeinflusst, das ich vorhersagen möchte. Also im Grunde mache ich eine Regression, die ich nicht nur eine Funktion habe, die ich misse, um zu versuchen, einen Wert vorherzusagen. Ich habe viele Funktionen, die zusammen kommen könnten. Für ein Beispiel könnte
das sein, den Preis eines Autos basierend auf seinen vielen Attributen vorherzusagen. Das Auto hat viele verschiedene Dinge, die Sie messen können, die seinen Preis beeinflussen könnten, wie seine Kilometerleistung, es ist Alter, wie viele Zylinder es hat, wie viele Türen es hat, Dinge wie diese. Und Sie können tatsächlich all diese berücksichtigen und das in ein großes Modell rollen, viele Variablen als Teil davon. So oft wie in der Datenwissenschaft, gibt es hier eine verwirrende Terminologie. Neben der multiplen Regression, die mehrere Features verwendet, um einen einzelnen Wert vorherzusagen, haben
wir auch das Konzept der multivariaten Regression. Und du würdest denken, das würde dasselbe bedeuten, aber das tut es nicht. Wenn wir über multivariate Regression sprechen, sprechen
wir in der Regel nicht nur über mehrere Feature-Attribute, die wir verwenden, um eine Vorhersage zu erstellen. Aber wir versuchen auch, mehr als eine Sache gleichzeitig vorherzusagen. Also vielleicht versuche ich, nicht nur den Preis eines Autos
basierend auf seiner Kilometerleistung und Alter und Anzahl der Türen vorherzusagen . Ich versuche auch vorherzusagen, wie lange es dauern wird, es zu verkaufen oder so etwas. Dies wäre ein Beispiel für eine multivariate Regression, bei der wir mehrere Dinge vorhersagen wollen, zusätzlich zu mehreren Features, die verwendet werden, um diese Vorhersagen zu machen. Wie auch immer, die Art und Weise, wie wir es tun, ist eigentlich ziemlich einfach. So können wir nur anstelle eines einzelnen Koeffizienten an
eine einzelne Feature-Variable angehängt haben, können
wir mehrere Terme mit mehreren Variablen haben. So können wir sagen, dass wir den Wert-Preis basierend auf
einemkonstanten Wert Alpha mal
einen Koeffizienten namens Beta einmal vorhersagen können konstanten Wert Alpha mal , das sagen könnte Kilometerstand plus einige Koeffizienten Beta zwei sein, die könnte mit einem anderen Feature wie dem Alter des Autos plus Beta dreimal so viel wie
die Anzahl der Türen multiplizieren, was auch immer Sie tun wollen. Und diese Koeffizienten messen nur, wie wichtig jeder Faktor für das tatsächliche Endergebnis ist. Nun wird davon ausgegangen, dass alle Ihre Features normalisiert sind. So können Sie diese Koeffizienten tatsächlich fair miteinander vergleichen. Wenn sie nicht normalisiert sind, arbeitet dieser Koeffizient auch daran , dieses Feature in das Endergebnis
zu skalieren. Und das kann auch informativ sein, wenn er tatsächlich die Werte von Beta-1, Beta-2, Beta-3 und was auch immer Sie haben. Das kann Ihnen auch ein wenig darüber erzählen welche Funktionen tatsächlich für Ihr Modell wichtig sind. Also, wenn Sie mit einem sehr niedrigen Koeffizienten
für ein bestimmtes Feature enden , nachdem die Dinge normalisiert sind. Das könnte die Art der Natur sein, Ihnen zu sagen, dass diese Funktion
eigentlich nicht sehr wichtig ist, um die Sache vorherzusagen, die Sie vorherzusagen versuchen. Und das kann Ihnen helfen, Ihr Modell zu vereinfachen, indem Sie nicht benötigte Feature-Daten
eliminieren. Das ist also eine sehr nützliche Sache. Das nennt man Feature-Auswahl. Und es ist oft ein sehr wichtiger Teil beim Aufbau eines guten maschinellen Lernmodells. Jetzt verwendet das alles noch die kleinsten Quadrate. Also in unserem Notebook werden wir etwas namens
OLS verwenden , das für gewöhnliche kleinste Quadrate steht. Und es kann mehrere Funktionen wie diese behandeln. So können wir immer noch die Passform dieses Dings insgesamt mit R-squared messen. Da ist nichts anders. Und eine andere Sache, die wir darauf hinweisen müssen, ist, dass diese ganze Sache davon ausgeht, dass es keine Abhängigkeit zwischen diesen verschiedenen Merkmalen gibt. Beachten Sie, dass ich all diese Features unabhängig mit ihren eigenen Koeffizienten behandle. Wenn es also tatsächlich eine Beziehung zwischen diesen Features gibt, wird
dieses Modell nicht erfassen. Und das ist eigentlich ein Beispiel dafür, wo das wahrscheinlich der Fall wäre. Zum Beispiel wäre die Kilometerleistung auf dem Auto wahrscheinlich stark mit dem Alter des Autos korreliert. Und dieses Modell wird diese Beziehung nicht erfassen. In der Tat werden Sie wahrscheinlich nur in Ordnung
sein Kilometerstand oder Alter unabhängig voneinander verwenden. Aber das könnte Ihnen wenigstens sagen, welches von denen wichtiger zu halten ist. Also lassen Sie uns eintauchen und tatsächlich ein Notizbuch starten und sehen, wie es funktioniert. Es gibt etwas, das Statsmodel-Paket genannt wird, das die Dinge einfach macht. Und es bietet das OLS-Modell, mit dem wir einfach
losgehen und es weglaufen lassen und alles für uns tun können . Lassen Sie uns also dieses Beispiel der Mehrfach-Regression real machen. Gehen Sie weiter und öffnen Sie die Notizbuchdatei mit mehreren Regressionen hier, und Sie sollten so etwas sehen. In Ordnung, lassen Sie uns mehrere Regressionen in Aktion sehen. Glücklicherweise verfügt das Statsmodel-Paket über ein OLS-Regressionsmodell, das mehrere Regressionen verarbeiten kann. Es ist ziemlich einfach zu bedienen, obwohl es ein paar Gerichte gibt, über die wir hier sprechen werden, über die Sie wissen müssen. Was wir versuchen zu tun ist vorherzusagen Auto-Preise mit mehreren Regression auf verschiedenen Attributen der Autos. Zum Beispiel die Kilometerleistung, die Anzahl der Zylinder in der Anzahl der Türen. Und ich habe hier einen echten Datensatz für Sie, mit dem ich auf unsere Website hochgeladen habe. Das erste, was wir tun werden, ist, Pandas zu importieren und seine Lese-Excel Funktion aufrufen, um diese Excel-Tabelle mit einer Reihe
von Daten über Autos in ihren Attributen zu
laden und wofür sie verkauft wurden. Und wir werden das in einen DataFrame namens df laden. Gehen wir also voran und drücken Sie die Eingabetaste, um das zu tun. Wenn Sie jetzt einen Fehler bekommen, versuchen Sie es einfach noch einmal. Manchmal kann der Zugriff auf das Internet von einem Notebook aus ein wenig unzuverlässig sein, aber normalerweise, wenn Sie es einfach noch einmal versuchen, werden die
Dinge aufholen und es wird das zweite Mal funktionieren. In Ordnung, also lasst uns versuchen, diese Daten zu visualisieren. Das erste, was Sie normalerweise tun möchten, wenn Sie mit
einem neuen Dataset zu tun haben , ist, die Daten zu überprüfen und sicherzustellen, dass Sie sich damit wohl fühlen und sie manipulieren und Informationen
daraus holen und sicherstellen, dass es erwarten. Das ist alles, was wir in diesem nächsten Block tun werden. Wir werden matplotlib laden, damit wir Dinge plotten können, werden das NumPy-Paket importieren, damit wir unsere Daten manipulieren können. Und wir werden einen neuen df Datenrahmen erstellen, der nur die Kilometer- und
Preismerkmale aus unserem ursprünglichen DataFrame
aus der Excel extrahiert Preismerkmale aus unserem ursprünglichen DataFrame , die wir als df geladen haben. Also jetzt werden wir alles versuchen, mit C umzugehen.
Gibt es eine Beziehung zwischen Kilometerstand und Preis? Du würdest denken, dass es das geben würde, oder? Sie würden denken, dass höhere Kilometerleistung Autos im Allgemeinen weniger kosten würde als Autos mit niedriger Kilometerleistung. Mal sehen, ob das wahr ist. Lasst uns das aufräumen. Also werden wir den DataFrame
eines Bins erstellen und wir werden np.arange nennen. Was das tun wird, ist, unsere Daten
in 10 Tausend Meilen Stücke zwischen 0 und 50000 Meilen aufzuteilen . Hab es. Das wird mir also eine Reihe von Daten zwischen 010 Tausend Meilen,
10000 und 20000 Meilen zurückgeben , bis zu 50.000 Meilen. Und dann erstellen wir diese Gruppen und nehmen diese Kilometer- und Preis-Feature-Daten, gruppieren sie nach den Fächern, die wir erstellt haben, und berechnen den Mittelwert für jeden dieser Abschnitte. Also jetzt werden Gruppen
den mittleren Preis für jeden dieser Meilengruppen enthalten . Wir drucken das aus, stellen sicher, dass es vernünftig aussieht, und dann werden wir es planen und sehen, was wir haben. Also lassen Sie uns Shift Enter drücken. Und Sie können hier sehen, dass wir diese Bereiche haben, die wir erwartet haben. Also zwischen 010 Tausend Meilen, die mittlere Kilometerleistung war 4588 und der mittlere Preis war $24 Tausend. Arbeiten Sie Ihren Weg bis zu 30 bis 40 Tausend Meilen und der mittlere Preis sinkt auf 19.463 Meilen. Und wenn Sie es planen, dann sehen Sie, was Sie erwarten. Höhere Kilometer Autos im Allgemeinen kostet weniger als Autos mit niedriger Kilometerleistung. Jetzt warne ich Sie, dass es einige Ausreißer in diesem Datensatz gibt. Und das gilt vielleicht nicht den ganzen Weg über 50.000 Meilen hinaus. Vielleicht gibt es einige wie Sammler-Sportwagen, die hohe Laufleistung haben, aber sie sind immer noch viel wert, oder? Also ist dieser Datensatz tatsächlich ein guter, um mit Ausreißer umzugehen. Um, wenn Sie in das graben wollen und ich werde Sie
ermutigen, dies am Ende dieser Übung zu tun. Wie auch immer, unser Ziel war es, nur sicherzustellen, dass wir uns wohl fühlen, die Daten waren in der Lage, es zu laden, wir sind in der Lage, es so weit zu manipulieren, so gut. In Ordnung, also lasst uns ein Modell bauen. Also werden wir damit beginnen, Statsmodel API als SM zu importieren. Dies wird also das Modell importieren, das wir hier tatsächlich verwenden werden. Wir werden Standard-Scaler aus SKLearn Dot Preprocessing importieren. Und wir werden eine neue Instanz des Standard-Skalierers erstellen als skalierter Standardskalar bezeichnet wird und was wir verwenden um alle unsere Feature-Daten zu normalisieren, so dass sie sich alle im gleichen allgemeinen Bereich befinden. Das lässt Modelle in einigen Fällen, einschließlich dieses, viel besser funktionieren. Lassen Sie uns damit beginnen, die Feature-Daten zu extrahieren, die wir wollen. Wir gehen zurück zu unserem ursprünglichen Datenrahmen, direkt aus dieser Excel geladen
wurde. Und extrahieren Sie einfach drei Funktionen, Kilometerstand, Anzahl der Zylinder und Anzahl der Türen. Und nach Konvention nennen wir unser Feature-Array X, Großbuchstaben X also werden wir versuchen, ein Modell zu bauen, das nur versucht, den Preis basierend auf Kilometerstand,
Anzahl der Zylinder und Anzahl der Türen vorherzusagen . Jetzt gibt es tatsächlich viele andere Daten und die Quelldaten und zum Beispiel die Marke und das Modell des Autos, die ziemlich wichtig wären, wie Sie denken würden. Aber diese Art von Regressionsmodell, können
Sie nicht wirklich mischen und Ordnungsdaten mit numerischen Daten abgleichen. Also müssen wir irgendwie das eine oder andere auswählen. In diesem Fall werden wir mit einigen numerischen Merkmalen gehen. Und deshalb emittieren wir Dinge wie Marke und Modell des Autos. Nach Konvention sind Kleinbuchstaben y unsere Etiketten, die Dinge, die wir in unserem Fall vorherzusagen versuchen, das ist der Preis, okay? Jetzt müssen wir diese Feature-Daten vorverarbeiten, damit sie gut mit unserem Modell funktionieren. Dies ist eine ziemlich häufige Sache zu tun. Also werden wir Skala nennen, das ist unsere Standard-Scaler-fit Transformation und übergeben in diesem Myelinzylinder unterstützen Funktionen von unserer Röntgenaufnahme, extrahieren Sie die Werte daraus, übergeben Sie es in fit transformieren und das wird geben uns zurück skalierte Kilometerzylinder und Türen, die es in eine normale Verteilung
skaliert worden waren . Also mehr oder weniger eine Glockenkurve zwischen negativem 11 und wir werden das direkt wieder in
die ursprüngliche Röntgenaufnahme in den gleichen Spalten stecken , mit denen wir begonnen haben. Diese Linie wird erneut die Kilometerzylinder in Innenräumen innerhalb
dieses Datasets in eine Glockenkurve zwischen negativer 11 in eine Normalverteilung skalieren . Diese nächste Folie ist eine Art von OLS. Sie werden also aus der Vorlesung daran erinnern, dass es einen B-Termin gibt, einen konstanten Y-Abfang für jeden, für den wir von dort anfangen. Und es sei denn, Sie fügen den Feature-Daten eine konstante Spalte hinzu, kann
das Modell diese nicht erstellen. Um es also zu ermöglichen, einen Y-Abfang zu haben, um das im Modell konstant zu sein, müssen
wir Statsmodel dot add constant aufrufen und in unserem Feature-Array übergeben. Sie sind alles, was es tut, ist eine Spalte voller Einsen am Anfang unseres DataFrames hinzuzufügen. Wir drucken das aus und sorgen dafür, dass es so aussieht, wie wir es erwarten. Und dann trainieren wir tatsächlich das Modell selbst. Und das ist ein Ein-Liner hier. Wir rufen nur Statsmodel dot OLS auf, übergeben unsere beschrifteten Daten, übergeben unsere Feature-Daten und rufen
fit auf, um diese Daten an unser Modell anzupassen und einen neuen Schätzer zu erstellen. Wir werden dann zusammenfassende Informationen darüber ausdrucken, wie das Training gelaufen ist. Und es wird uns sagen, es wird uns
ein paar Einblicke darüber geben , was tatsächlich in dem Modell genau dort vor sich geht. Also lassen Sie uns Shift Enter und starten Sie das ziemlich schnell. Alles klar, das erste, was wir ausgedruckt haben
, war das Feature-Array, das nach unten skaliert wurde. Und Sie können sehen, dass wir diese konstante Spalte haben, die wir in der Front
dort stecken , Das wird für die Modellierung des y-Abschnitts des Modells verwendet werden 0. Und Sie können sehen, dass unsere Feature-Daten mehr oder
weniger in einen plus oder minus negativen 1-Bereich in eine Normalverteilung skaliert wurden . Sieht so aus, als hätte das funktioniert. Anschließend trainieren wir das Modell und druckten zusammenfassende Informationen über das Zugmodell aus. Und wenn Sie sich das ansehen, können
Sie einige Einblicke bekommen. R-squared und alle üblichen Metriken hier sind für Sie da zu sehen. Wirklich muss die Dokumentation darüber lesen, was diese Statistiken wirklich bedeuten, weil sie nicht immer das sind, was Sie erwarten. Beispielsweise basiert r-squared auf
einer gewichteten Metrik, die normalerweise nicht als r-quadriert betrachtet wird, aber es ist immer noch vergleichbar, da Sie unterschiedliche,
unterschiedliche Modelle auf denselben Daten ausführen . Werfen wir einen Blick auf die tatsächlichen Koeffizienten hier. Das ist also irgendwie wie das Fleisch der Ausgabe unseres Modells hier. Dies sind die tatsächlichen Koeffizienten für diese b0,
b1, b2, b3 Terme in unserem Multiple Regressionsmodell. So können Sie sehen, dass unser konstanter Begriff eigentlich ziemlich groß ist. 21.340 ish Dollar ist unser y-Abfang. Kilometerstand hat tatsächlich einen negativen Koeffizienten. Also wieder, das macht Sinn, denn wenn Sie einen Kilometerstand erhöhen, würde
der Preis sinken. Wir sehen auch, dass die Zylinder einen wirklich großen Einfluss darauf haben. Die Anzahl der Zylinder im Auto scheint also tatsächlich
die höchste absolute Größe des Koeffizienten zu sein , die wir hier sehen. Also ziemlich überraschend, die Anzahl der Zylinder scheint das Modell mehr zu beeinflussen, als alles, was zu sehen, dass kommen. Aber ich schätze, es ergibt Sinn. Weißt du, wenn du wirklich hochzylindernde Fahrzeuge
hast, bist du wahrscheinlich in der Welt von exotischen Superautos, oder? Das könnte also von Ausreißern angetrieben werden,
bei denen jemand einige Millionen Dollar Supersportwagen mit zehn Zylindern hat . Und das könnte dieses ganze Modell verzerren und oft seltsame Dinge machen. Also wieder, Ausreißer oder etwas, in das man später eingraben und darüber reden kann. Anzahl der Türen, überraschend auch ein negativer Koeffizient. Die Anzahl der Türen, mehr Türen, es ist nicht mir mehr Geld, es stellt sich heraus. Und wenn Sie noch einmal darüber nachdenken, wissen
Sie, Sportwagen, Sportwagen, sind sie in der Regel zwei Türen und sie neigen dazu, teuer zu sein. Also ein bisschen eine interessante Einsicht und die Daten nur aus der Betrachtung dieser Koeffizienten und nichts mehr. Na gut, weitermachen. Das war also eigentlich eine ziemlich verschlungene und komplexe Art herauszufinden, dass mehr Türen nicht mehr Geld bedeuten. Und das möchte ich noch einmal wiederholen. Sie möchten immer die einfachere Lösung wählen, wenn Sie können. Also hätte ich das hier mit einer Codezeile herausfinden können. Viel einfacher, wenn ich nur meine Daten nach der Anzahl der Türen und Computer gruppiert, der mittlere Preis für jeden Satz von Türen Zahlen. Mal sehen, was wir uns einfallen lassen. Genau dort kann ich mit dieser einfachen Codezeile
sehen , ohne ein großes ausgefallenes maschinelles Lernmodell zu bauen, dass der mittlere Preis eines zweitürigen Fahrzeugs 23.800$ beträgt, während der mittlere Preis einer vier Tür 20.580$ beträgt. Also hätte ich diese Schlussfolgerung viel leichter und mit weniger Komplexität erreichen können, wenn ich es wollte. So kleine Nebengleichnis dort und wie Einfachheit ist oft eine gute Sache. Jedenfalls. Also haben wir dieses Modell, das wir damit machen werden. Nehmen wir an, Sie wollen eine tatsächliche Vorhersage für ein fiktives Auto oder ein neues Auto, das Sie getroffen haben, machen? Nun, es ist nicht ganz so einfach, wie Sie
denken würden , es wäre, zurück zu einer tatsächlichen Vorhersage mit diesem Modell zu kommen. Aber hier ist, wie du es machst. Also zuerst werden wir dieses neue gefälschte Auto herstellen, das 45 Tausend Meilen,
acht Zylinder und vier Türen hat . Das ist also, was dieses Array dort bedeutet. Zuerst müssen wir das in den gleichen Bereich skalieren, in dem unser Modell trainiert wurde. Also werden wir die gleiche Maßstabsinstanz
von Standard-Skalar nehmen , die wir vorher hatten, und transformieren, um dieses spezielle Auto wieder
in den gleichen Bereich zu skalieren , den wir verwenden, um das Modell tatsächlich zu trainieren. Und so wird es mit einem Modell kompatibel sein, das wir hergestellt haben. Wir müssen diese konstante Spalte auch wieder einfügen. Also werden wir numpy dot insert nennen. Wir werden diese Feature-Daten aus skaliert extrahieren, was wir das resultierende Array unseres fiktiven Autos nennen. Wir werden sagen, wir wollten an Position 0 einfügen, die Nummer eins. Okay, das ist alles, was hier vor sich geht. Dann drucken Sie das aus, stellen Sie sicher, dass es das ist, was wir erwarten. Schließlich können wir auf unserem Schätzer vorhersagen, dass wir
mit diesem fiktiven Fahrzeug erstellt haben , das wir erstellt haben, und erhalten einen prognostizierten Verkaufspreis dafür zurück. Also lasst uns weitermachen und das laufen. Da gehen wir. So können wir sehen, dass unser Eingabe-Feature-Array hier die konstante Spalte 1 und unsere skalierten Feature-Daten für den Kilometerstand, Anzahl der Zylinder und die Anzahl der Türen enthält. Und es kam mit einem prognostizierten Preis in diesem Fall von 27 $1658 zurück, was es im Ballpark unserer Daten ist. Also denke ich, das ist eine vernünftige Schätzung. Also da hast du es. Mehrere Regression in Aktion mit einigen realen Daten von tatsächlichen Autoverkäufen wenig. Und ich denke, es ist eine Art alter Datensatz, aber, wissen Sie, Autopreise haben sich nicht so viel geändert, sowieso
keine Gebrauchtwagen. Wie immer ermutige ich euch, mit diesem weiter alleine herumzuschwingen. Versuchen Sie, die XLS-Kalkulationstabelle von unserer Website herunterzuladen. Sie können einfach diesen Link verwenden,
der sich im ersten Block dort befand und ihn tatsächlich über
Ihren Browser herunterladen , wenn Sie möchten und sich mit dem vertraut machen, was los ist. In der Aktivität hier schlug
ich vor, vielleicht zu versuchen,
sich mit der Anzahl der Türen zu verwirren und zu sehen, ob Sie tatsächlich
einige Daten herstellen können , um einen
interessanteren oder vielleicht einen anderen Einfluss auf die Anzahl der Türen auf den Preis. Und vielleicht können wir etwas Spaß damit haben und Autos erschaffen, die
10 Türen haben oder so etwas, um zu versuchen, zu sehen ob man die Dinge auf die eine oder andere Weise verzerren kann. Es wäre auch eine gute Idee, einen Blick auf
die Daten zu werfen und zu versuchen, einige dieser Ausreißer zu identifizieren, von denen wir gesprochen haben. Versuchen Sie, sie zu entfernen und sehen Sie, was das mit der Qualität Ihres Modells auswirkt. Ich denke, wie ich schon sagte, es könnte einige Super-Autos sein, die Dinge wegwerfen für die häufigeren Arten von Autos, die Menschen im Allgemeinen kaufen. Also habe ich ein bisschen Spaß damit und basteln,
wenn du so geneigt bist. Und das ist eine mehrfache Regression auf den Punkt gebracht.
Alles, was wir tun, ist eine Regression auf mehreren Features gleichzeitig durchzuführen und
jedem Feature unterschiedliche Koeffizienten zuzuweisen, um ein einzelnes Regressionsmodell zu haben , die wir verwenden können, um Vorhersagen basierend auf mehr als einem Feature zu machen.
26. Multi-Level: Lassen Sie uns über Multi-Level-Modelle sprechen. Dies ist definitiv ein fortgeschrittenes Thema, und ich werde hier nicht in eine ganze Menge Detail geraten. Mein Ziel ist es, Ihnen nur das Konzept der Multi-Level-Modelle vorzustellen und Ihnen einige der Herausforderungen zu
verstehen und darüber nachzudenken. Wenn du sie zusammenlegst, war's
das. Das Konzept hier ist also, dass einige Effekte auf verschiedenen Ebenen in der
Hierarchie aufgetreten sind. So zum Beispiel kann
zum Beispiel
Ihre Gesundheit Ihre Gesundheit davon abhängen, wie gesund Ihre einzelnen Zellen sind. Und diese Zellen könnten eine Funktion davon sein, wie gesund die Organe, die sie in unserem sind, und die Gesundheit Ihrer Organe könnten von der Gesundheit Ihres Ganzen abhängen, und Ihre Gesundheit könnte teilweise von der Gesundheit Ihrer Familie und der Umwelt abhängen, die Ihre Familie gibt Ihnen und die Gesundheit Ihrer Familie, wiederum einigen Faktoren der
Stadt abhängen, in der Sie leben. Wie viel Verbrechen gibt es, Wie viel Stress gibt es, wie viel Verschmutzung gibt es? Und sogar darüber hinaus? Es könnte von Faktoren in der ganzen Welt abhängen, in denen wir leben vielleicht nur der Stand der Medizintechnik in der Welt ist ein Faktor, oder? Ein weiteres Beispiel für Ihren Reichtum. Wie viel Geld verdienen Sie? Nun, das ist ein Faktor für Ihre individuelle harte Arbeit, aber es ist auch ein Faktor des Wertes Ihrer Eltern. Wussten Sie, wie viel Geld sie in Ihre Ausbildung und das
Umfeld investieren konnten, in dem Sie aufgewachsen sind? Und im Gegenzug, wie wär's mit Ihren Großeltern? Welche Art von Umgebung konnten sie schaffen? Und welche Art von Bildung waren sie in der Lage, für Ihre Eltern zu bieten, was wiederum beeinflusst die Ressourcen, die sie für Ihre eigene Ausbildung zur Verfügung haben und Upgrade gebracht bringen. Dies sind also alle Beispiele für mehrstufige Modelle, bei denen es eine Hierarchie von Effekten gibt, die gegenseitig in größeren und größeren Maßstäben
beeinflussen. Okay, jetzt besteht die Herausforderung von Multi-Level-Modellen darin, herauszufinden, während ich diese
Interdependenzen modelliere ? Wie modelliere ich all diese verschiedenen Effekte und wie sie sich gegenseitig beeinflussen? Sie sehen die Linie der Gesundheitsversorgung, übrigens, Also die Herausforderung hier ist, die Faktoren in jeder Ebene zu identifizieren, die tatsächlich die
Sache beeinflussen , die Sie vorhersagen wollen. Also versuche ich, insgesamt vorherzusagen, wissen Sie s a T Punkte, zum Beispiel. Nun, ich weiß, das hängt zum Teil von dem einzelnen Kind ab, das den Test durchführt. Aber was ist es an dem Kind, das zählt? Nun, es könnte die Genetik sein, die es sein könnte. Ähm, du weißt schon, ihre individuelle Gesundheit. Weißt du, das Individuum, du weißt schon, betende Größe, die sie haben. Sie können sich eine beliebige Anzahl von Faktoren vorstellen, die die Person beeinflussen, die ihre S
a T-Score beeinflussen könnte . Und dann, wenn Sie gehen eine andere Ebene, schauen Sie ihre häusliche Umgebung, um ihre Familie aussehen. - Nein. Was ist es an ihren Familien, die ihre S A T Werte beeinflussen könnten? Wie viel Ausbildung konnten sie anbieten? Sind die Eltern in der Lage, die Kinder in den Themen, die auf der S A
T sind, tatsächlich zu unterrichten? Dies sind alles Faktoren auf dieser zweiten Ebene. Das könnte wichtig sein. Was ist mit ihrer Nachbarschaft? Die Kriminalitätsrate dieser Nachbarschaft könnte wichtig sein. Weißt du, die Einrichtungen, die sie für Teenager haben und sie von der Straße fernhalten, Dinge wie diese. Nun, die Idee ist, dass Sie weiter auf diese höheren Ebenen schauen wollen, aber jede Ebene identifiziert die Faktoren, die das beeinflussen, was Sie vorhersagen wollen, und ich kann weiter auf die Qualität der Lehrer in ihrer Schule gehen, die Finanzierung des Schulbezirks, die Bildungspolitik auf staatlicher Ebene. Sie können sehen, es gibt verschiedene Faktoren auf verschiedenen Ebenen auf allen Feed in diese Sache Sie versuchen, vorherzusagen. Und einige dieser Faktoren könnten in mehr als einer Ebene existieren. So Kriminalitätsrate, zum Beispiel, auf lokaler und staatlicher Ebene. Sie müssen herausfinden, wie diese alle auch miteinander interspielen. Wenn Sie Multi-Level-Modellierung. Ok. Und wie Sie sich vorstellen können, wird
das sehr hart und sehr schnell sehr kompliziert. Es ist wirklich weit über den Rahmen dieses Kurses hinaus, nicht nur der Punkt, dass Sie jetzt in diesem Kurs sind, aber jeder Einführungskurs in Data Science, Dies ist harte Sachen, ihre gesamte dicke Bücher darüber. Du machst einen ganzen Kurs darüber. Das wäre ein sehr fortgeschrittenes Thema. Der einzige Grund, warum ich es überhaupt in diesem Kurs anspreche, ist, weil ich es in
Jobbeschreibungen als etwas erwähnt habe, von dem sie wollen, dass Sie wissen. In ein paar Fällen musste
ich es nie in der Praxis verwenden. Aber ich denke, das Wichtigste aus der Sicht eines Karrieretages der Wissenschaft ist
, dass Sie zumindest mit dem Konzept vertraut sind,
und Sie wissen,was es bedeutet und einige der Herausforderungen, die bei der Erstellung eines
Multi-Level-Modells einhergehen , dass Sie zumindest mit dem Konzept vertraut sind,
und Sie wissen, was es bedeutet und einige der Herausforderungen, die bei der Erstellung eines
Multi-Level-Modells einhergehen . Ich hoffe, ich habe Ihnen diese Konzepte gegeben, mit denen wir zum nächsten Abschnitt übergehen können. So haben Sie die Konzepte von Multi-Level-Modellen. Es ist ein sehr fortgeschrittenes Thema, aber Sie müssen verstehen, was das Konzept ist, zumindest, und das Konzept selbst ist ziemlich einfach. Sie betrachten nur die Auswirkungen, die verschiedene Ebenen, verschiedene Hierarchien, wenn Sie versuchen, eine Vorhersage zu machen. Vielleicht gibt es also verschiedene Ebenen von Effekten, die sich gegenseitig auswirken, und diese verschiedenen Ebenen können Faktoren aufweisen, die miteinander
in Beziehung stehen . Multilevel-Modellierung versucht, all diese unterschiedlichen Hierarchien und Faktoren zu berücksichtigen und wie sie miteinander interagieren. Das ist alles, was du wissen musst. Für jetzt,
27. Supervises vs. unüberwachtes Lernen, trainieren / Test: Lassen Sie uns über einige weitere maschinelle Lerntechniken sprechen. Und eines der grundlegenden Konzepte hinter Machine Learning ist etwas, der als trainierter
Test bezeichnet wird, mit dem wir sehr geschickt beurteilen können, wie gut ein Modell, das wir im maschinellen Lernen herstellen ist. Also lasst uns mehr darüber erfahren. Lassen Sie uns über maschinelles Lernen sprechen und insbesondere über den Unterschied zwischen überwachtem und unbeaufsichtigtem maschinellem Lernen. Wir kommen hier in das interessante Zeug, also gehen wir. Also, was ist maschinelles Lernen? Nun, wenn Sie es auf Wikipedia oder was auch immer nachschlagen, wird
es sagen, dass seine Algorithmen, die aus der Beobachtung aller Daten lernen und
Vorhersagen basierend darauf machen können , wirklich schick klingt. Alles klar, wie Dinge mit künstlicher Intelligenz, die Sie wissen,
möchten, dass Sie ein pochendes Gehirn in Ihrem Computer haben. Aber in Wirklichkeit sind
diese Techniken in der Regel sehr einfach, und wir hätten dies bereits richtig gemacht. Wenn Sie sich Regressionen ansehen, haben wir eine Reihe von Beobachtungsdaten genommen. Wir neigen dazu, und dann könnten wir diese Linie verwenden, um Vorhersagen zu machen. Also nach dieser Definition, das ist maschinelles Lernen, und es ist ziemlich verdammt einfach. Und ja, ich meine, dein Gehirn funktioniert auch
so, so, weißt
du, es macht Spaß, darüber nachzudenken. Gibt es Erkenntnisse in diesen Algorithmen, wie Ihr Gehirn tatsächlich funktioniert? Vielleicht gibt es vielleicht unter allem, da drin ist wirklich eine sehr einfache Sache los, aber das ist ein Thema für einen anderen Kurs. Lassen Sie uns also über die zwei verschiedenen Arten des maschinellen Lernens sprechen, über das wir betreut und unbeaufsichtigt sprechen. Manchmal kann es eine Art verschwommene Linie zwischen den beiden geben, um ehrlich zu sein. Aber die grundlegende Definition des unbeaufsichtigten Lernens ist, dass Sie Ihrem Modell keine
Antworten geben , um daraus zu lernen, dass Sie es nur mit einer Gruppe von Daten präsentieren, und es versucht, Sinn daraus zu machen, ohne zusätzliche Informationen. Also für ein Beispiel, sagen
wir, ich gebe ihm eine Reihe von verschiedenen Objekten,wissen
Sie, wissen
Sie, Kugeln und Würfel und Sätze von Würfeln und so weiter. Und ich habe ein Album, das diese Objekte in den Dingen gruppiert, die
einander ähnlich sind , basierend auf einer Ähnlichkeitsmetrik. Okay, jetzt habe ich es nicht im Voraus erzählt. Welche Kategorien? Bestimmte Objekte gehören Teoh. Ich habe keine Art Spickzettel, die es lernen kann, wo ich eine Reihe von vorhandenen Objekten in meiner richtigen Kategorie-Kategorisierung davon habe. Es muss sich für diese Kategorien allein einlassen. Das ist also ein Beispiel für unbeaufsichtigtes Lernen, bei dem ich keine Reihe von Antworten habe, von denen ich es lernen
lasse. Ich versuche nur, es sich versammeln zu lassen. Seine eigene Antwort basiert auf den Daten, die ihm allein vorgelegt werden. Okay, das Problem dabei ist, dass man nicht unbedingt weiß, was das Album einfallen
wird . Also, wenn ich ihm einen Haufen dieser Objekte auf dieser Folie gegeben habe, wird es Dinge in Dinge gruppieren, die um Dinge herum sind, die groß sind gegen kleine Dinge, die rot gegen blau sind? Ich weiß es nicht. Es wird von der Metrik abhängen, die ich ihm für die Ähnlichkeit zwischen den Elementen gebe, in erster Linie. Aber manchmal finden Sie Cluster, die überraschend sind und auftauchen, die Sie nicht erwartet haben, zu sehen. Das ist also wirklich der Sinn des von der UNO betreuten Lernens. Wenn Sie nicht wissen, wonach Sie suchen, könnte
es ein leistungsfähiges Werkzeug sein, um Klassifikationen zu entdecken, von denen Sie nicht einmal wussten, dass sie
da waren . Wir nennen das eine latente Variable. So kann eine Eigenschaft Ihrer Daten, von der Sie nicht einmal wussten, dass es ursprünglich war, aber unbeaufsichtigtes Lernen für Sie ärgern. Also ein Beispiel. Sagen wir, ich habe Leute geclustert, anstatt, du weißt schon, Eier und Dyson Was nicht? Ich betreibe eine Dating-Site, und ich möchte sehen, welche Arten von Leuten dazu neigen, sich hier zusammenzufassen. Es gibt einige Attribute, die Leute neigen, um zu gruppieren, dass sie neigen, einander zu mögen und sich gegenseitig oder was auch immer zu datieren. Und Sie könnten feststellen, dass die Cluster, die entstehen, nicht Ihren
prädisponierten Stereotypen entsprechen . Vielleicht geht es nicht um College-Studenten gegen , Menschen
mittleren Alters oder Menschen,die geschieden sind und was nicht oder ihre religiöse Polizei. Vielleicht, wenn Sie sich die Cluster ansehen, die tatsächlich aus dieser Analyse hervorgehen, lernen
Sie etwas Neues über Ihre Benutzer und finden tatsächlich heraus, dass es
etwas Wichtigeres gibt als alle vorhandenen Funktionen Ihrer Mitarbeiter, die wirklich auf ob sie einander mögen. Das ist also ein Beispiel für unbeaufsichtigtes Lernen, das nützliche Ergebnisse liefert. Okay, ein weiteres Beispiel. Clustering von Filmen basierend auf ihren Eigenschaften Weißt du, wenn du Clustering auf einer Reihe von Filmen von
imdb oder
soausführen so würdest, waren die Ergebnisse
vielleicht überrascht. Vielleicht geht es nicht nur um das Genre des Films. Vielleicht gibt es andere Eigenschaften wie das Alter des Films oder die Lauflänge, oder in welchem Land veröffentlicht wurde, die wichtiger sind, man weiß einfach nie. Oder wir könnten den Text von Produktbeschreibungen analysieren und versuchen, die Begriffe zu finden,
die für eine bestimmte Kategorie die größte Bedeutung haben. Auch hier wissen
wir vielleicht nicht unbedingt im Voraus, welche Begriffe welche Wörter am deutlichsten darauf hinweisen, dass ein Produkt in einer bestimmten Kategorie ist. Aber durch unbeaufsichtigte Erkenntnisse können
wir diese latente Information jetzt ausprobieren. Im Gegensatz dazu ist
überwachtes Lernen ein Fall, in dem wir eine Reihe von Antworten haben, von denen das Modell lernen kann . Also geben wir ihm eine Reihe von Trainingsdaten in diesem Fall, dass das Modell von Hennequin lernt und für Beziehungen zwischen den Merkmalen und den Kategorien, die wir wollen, und wenden diese dann auf unsichtbare neue Werte an und prognostizieren Informationen über sie. Zurück zu unserem früheren Beispiel,
wo wir versuchen,die Fahrzeugpreise basierend auf den Attributen dieser Autos vorherzusagen,ist
dies ein Beispiel, in dem wir unser Modell mit tatsächlichen Antworten trainieren. Zurück zu unserem früheren Beispiel,
wo wir versuchen, die Fahrzeugpreise basierend auf den Attributen dieser Autos vorherzusagen, Also habe ich eine Reihe von bekannten Autos in ihren tatsächlichen Preisen, für die sie verkauft. Ich habe das Modell auf diesem Satz vollständiger Antworten trainiert, und dann kann ich ein Modell erstellen, mit dem ich die Preise für neue Autos vorhersagen kann, die ich vorher
noch nicht gesehen habe. Das ist also ein Beispiel für überwachtes Lernen. Haben Sie ihm eine Reihe von Antworten gegeben,
um aus den zugewiesenen Kategorien
Ihrer Partei oder was auch immer zu einem Satz von Daten zu lernen , und verwenden Sie diese dann, um ein
Modell zu erstellen, mit dem sie neue Werte vorhersagen kann? , und verwenden Sie diese dann, um ein
Modell zu erstellen Wie bewerten Sie das überwachte Lernen? Also das Schöne an überwachtem Lernen ist, dass ich einen Trick namens
Zugtest verwenden kann , und die Idee hier ist, Was wäre, wenn ich meine Beobachtung alle Daten aufteilen würde, von denen ich mein Modell lernen möchte, aus
zwei gruppiert einen Trainingssatz und einen Testsatz. Wenn ich also mein Modell tatsächlich trainiert habe, wenn ich mein Modell basierend auf den Daten erstelle, mache
ich das nur mit einem Teil meiner Daten, den ich meinen Trainingssatz in Ordnung nenne, und ich reserviere einen anderen Teil meiner Daten, und ich werde das für Testzwecke, damit ich mein Modell mit einer Teilmenge meiner Daten für Trainingsdaten erstellen kann. Und dann kann ich das Modell auswerten, das daraus entsteht, und sehen, ob es die richtigen Antworten für meine Testdaten erfolgreich
vorhersagen kann . Siehst du, was ich dort gemacht habe? Ich habe eine Reihe von Daten. Wo bereits die Antwort ist, dass ich mein Modell trainieren kann, aber ich werde einen Teil dieser Daten zurückhalten und diese tatsächlich verwenden, um mein Modell zu testen, das mit dem Trainingssatz generiert
wurde. Okay, das gibt mir eine sehr konkrete Möglichkeit zu testen, wie gut mein Modell auf ungesehenen Daten ist. Denn tatsächlich haben ein bisschen Tag, dass ich beiseite, dass ich es mit bestreiten. Und Sie können dann quantitativ messen, wie gut es mit R quadriert oder einer anderen Metrik wie Routine quadrierten Fehler, Dinge wie das gemacht hat. Undwissen
Sie, wissen
Sie, Sie können das verwenden, um ein Modell gegen ein anderes zu testen und zu sehen, was das beste Modell für ein
bestimmtes Problem ist . Sie können die Parameter dieses Modells optimieren und mit geschulten Tests die Genauigkeit
dieses Modells auf Ihren Testdaten maximieren . So gute Möglichkeit, Überanbringung zu verhindern. Es gibt einige Vorbehalte. Sie müssen sicherstellen, dass sowohl Ihre Trainings- als auch Testdatensätze groß genug sind, um tatsächlich repräsentativ für Ihre Daten zu sein. Sie müssen sicherstellen, dass Sie alle verschiedenen Kategorien und Lügner zu fangen, die
Sie interessieren, sowohl in der Ausbildung als auch in der Prüfung. Um ein gutes Maß für seinen Erfolg zu erhalten und ein gutes Modell zu erstellen, müssen
Sie sicherstellen, dass Sie aus diesen Datensätzen zufällig ausgewählt haben. Also schnitzen Sie nicht nur Ihren Datensatz und zwei und sagen, alles übrig von hier ist Training und rechts von hier ist das Testen. Sie möchten das zufällig testen, da in Ihren
Daten einige Muster nacheinander vorhanden sein könnten , von denen Sie nichts wissen. Aber im Grunde ist
es, wie ich schon sagte, eine gute Möglichkeit, sich vor Überanpassungen zu schützen. Also, wenn Sie ein Modell sind zu passen und einfach aus dem Weg gehen, um Ausreißer in
Ihren Trainingsdaten zu akzeptieren , na ja, das wird offenbart, wenn Sie es gegen ein unset gesehen von Testdaten setzen, richtig? Denn all das Gyrationen für Ausreißer wird nicht mit den Verbündeten helfen, die es vorher noch nicht gesehen . Nun, Zugtest ist nicht perfekt, Sie können irreführende Ergebnisse daraus bekommen, können Ihre Stichprobengrößen
Luft zu klein sein , wie wir bereits gesprochen haben. Oder vielleicht die pseudozufällige Chance, dass Ihre Trainingsdaten in Ihren Testdaten bemerkenswert
ähnlich aussehen . Sie haben tatsächlich eine ähnliche Reihe von Ausreißern, und Sie können immer noch über passend sein, wer weiß? Und Sie können in diesem Beispiel sehen Yeah, es kann passieren. Es gibt also einen Weg, um die zwei genannte K-Falt-Kreuzvalidierung zu umgehen und ein Beispiel
dafür später im Kurs zu tun . Aber das grundlegende Konzept ist, dass Sie Zug Test viele Male. So teilen Sie Ihre Daten tatsächlich nicht in nur einen Trainingssatz in einem Test auf, setzen Sie Ihre Daten in mehrere zufällig zugewiesene Segmente. K-Segmente. Das ist, woher das K kommt und Sie reservieren eines dieser Segmente ist Ihre Testdaten. Und dann beginnen Sie mit dem Training Ihres Modells auf den verbleibenden Segmenten und messen deren Leistung anhand Ihrer festgesetzten Tests. Und dann nehmen Sie die durchschnittliche Leistung von jedem dieser Trainingssätze, Modelle Ergebnisse und nehmen ihre R quadrierte durchschnittliche Punktzahl. Auf diese Weise trainierst du tatsächlich auf verschiedenen Segmenten deiner Daten, die sie
gegen denselben Testsatz messen . Und auf diese Weise, wenn Sie ein Modell haben, ist
es vorbei an der Anpassung an bestimmte Segmente Ihrer Trainingsdaten, die
von den anderen, die zur sorgfältigen Kreuzvalidierung beitragen, gemittelt werden, wird mehr Sinn später. Im Laufe der, Ich möchte nur, dass Sie wissen, dass dieses Werkzeug existiert, um tatsächlich Zugtest noch robuster zu machen als es bereits ist. Also lassen Sie uns gehen und tatsächlich mit einigen Daten spielen und tatsächlich ausgewertet mit geschulten Test.
28. Zug/Test zur Vermeidung von Überfällen: lassen Sie uns Zugtest in die Tat umsetzen, damit Sie sich vielleicht daran erinnern, dass eine Regression
von einer Form des überwachten maschinellen Lernens gedacht werden kann . Nehmen wir also einfach eine Polynom-Regression, die wir bereits früher in diesem Kurs behandelt haben, und verwenden geschulte Tests, um zu versuchen, den
richtigen Grad Polynom zu finden , der zu einem bestimmten Satz von Daten passt. Genau wie in unserem vorherigen Beispiel werden
wir einen kleinen gefälschten Datensatz von zufällig generierten bezahlten Geschwindigkeiten und
Kaufbeträgen einrichten , und ich werde eine seltsame kleine Beziehung zwischen ihnen schaffen. Das ist irgendwie exponentiell. Also lasst uns weitermachen und diese Daten generieren. Es wird eine normale Verteilung von Zufallsdaten sowohl für bezahlte Geschwindigkeiten als auch für den
Kaufbetrag mit dieser Beziehung hier verwenden. Als nächstes werde ich diese Daten teilen. Ich nehme 80% meiner Daten und wir müssen die für meine Trainingsdaten reservieren. So werden nur 80% dieser Punkte für das Training des Modells verwendet. Und dann werde ich die anderen 20% reservieren, um dieses Modell gegen unsichtbare Daten zu testen. OK, also werde ich nur Python-Syntax hier verwenden, um eine Liste in die ersten 80 Punkte
zu teilen , die zum Trainingsset und den letzten 20 gehen. Alles nach 80 wird zum Test gehen. Denken Sie also daran, dass
wir von unserem Python Basics-Kurs diese Syntax vorher abdecken, und ich werde dasselbe für Kaufbeträge jetzt auf den Folien tun. Ich sagte, Sie sollten Ihren Datensatz nicht einfach so einschneiden. Sie sollten es zufällig für Training und Test testen. In diesem Fall funktioniert
es, weil meine ursprünglichen Daten sowieso zufällig generiert wurden, so dass es wirklich keinen Reim oder Grund gibt, wo die Dinge fielen. Aber in realen Daten möchten
Sie diese Daten mischen, bevor er sie teilt. Und es gibt eine zufällige Punkt-Shuffle-Methode, die Sie für diesen Zweck verwenden können. Wenn du das Pandas-Paket verwendest,
gibt es einige praktische Funktionen, um Trainingsdaten
automatisch für dich zu erstellen und zu testen. Wenn du das Pandas-Paket verwendest, gibt es einige praktische Funktionen, um Trainingsdaten
automatisch für dich zu erstellen und zu testen Aber wir werden es einfach mit einer Python-Liste hier tun, nur um es einfach zu halten. Lassen Sie uns also unseren Trainingsdatensatz visualisieren, mit dem wir gelandet sind. Also werden wir ein Streudiagramm unserer Ausbildung,
bezahlten Geschwindigkeiten und Kaufbeträge machen , und es sieht so aus, dass im Grunde 80 Punkte zufällig aus dem Original des vollständigen
Datensatzes ausgewählt haben, im Grunde die gleichen Formen hat. Das ist eine gute Sache. Es ist repräsentativ für unsere Daten. Das ist wichtig. Und unsere restlichen 20 zum Testen haben auch, wissen
Sie die gleiche allgemeine Form ist unsere ursprünglichen Daten. Also ich denke, das ist ah, repräsentativer Test auf etwas kleiner eingestellt, als Sie in der realen Welt
sicher sehen möchten , Sie bekommen wahrscheinlich ein bisschen ein besseres Ergebnis, wenn Sie, wissen
Sie, 1000 Punkte anstelle von 100 zum Beispiel wählen und reservieren 200 statt 20. Jetzt werde ich versuchen, ein Polynom des achten Grades zu diesem Datum zu passen. Und ich werde nicht nur die Nummer acht nach dem Zufallsprinzip wählen, weil ich weiß, dass es eine wirklich hohe Ordnung ist wahrscheinlich über passend. Also lassen Sie uns voran und passen unser achtes Grad-Polynom mit einem Paedo, Polly, Wendy und Menschen, wenn es X y und acht verwendet, wobei X nur ein Array der Trainingsdaten ist und klug nur ein Array der Trainingsdaten. Also passen wir unser Modell nur mit den 80 Punkten an, die wir für das Training reservieren und Jetzt haben
wir diese P vier Funktion, die Ergebnisse, die wir verwenden können, um neue Werte vorherzusagen. Lassen Sie uns also voran gehen und das Polynom, mit dem sich das gegen die Trainingsdaten auf
Schwächen entwickelte . Streuen Sie hier unsere Originaldaten für den Trainingsdatensatz. Und dann können wir plotten sind vorhergesagte Werte gegen sie. So können Sie hier sehen. Es sieht aus wie eine ziemlich gute Passform, aber eindeutig macht es etwas über passt hier. Was ist diese Verrücktheit hier draußen? Ich meine, ich bin mir sicher, dassData
wirklich sind, Data
wirklich sind, wenn wir es hier draußen hätten, wäre nicht verrückt hoch, wie diese Funktion implizieren würde. Dies ist also ein großartiges Beispiel für die übermäßige Anpassung Ihrer Daten. Es passt zu den Daten. Sie haben es sehr gut gegeben, aber es würde eine schreckliche Arbeit leisten, neue Werte über diesen Punkt hinaus vorherzusagen. Richtig? Also lasst uns versuchen, das zu ärgern. Geben wir ihm unseren Testdatensatz. Und in der Tat, wenn wir unsere Testdaten gegen dieselbe Funktion plotten , dann sieht es nicht wirklich so schlecht aus. Wir hatten Glück, und keiner unserer getesteten ist hier zu Beginn. Aber Sie können sehen, dass Sie wissen, es vernünftig passt, aber es ist alles andere als perfekt. Und in der Tat, wenn Sie tatsächlich die R quadrierte Punktzahl messen, ist
es schlimmer, als Sie vielleicht denken. Also können wir das hier tun. Mit der Funktion sind zu punkten aus Psych, es lernt Metriken, und wir geben ihm nur unsere ursprünglichen Daten und sind vorhergesagte Werte. Und es geht einfach durch und misst alle Abweichungen von den Vorhersagen und Quadraten. Ich bin alles bereit für dich und wir enden mit einem R-Quadrat Punktzahl von nur 0,3. Also nicht so heiß. Und Sie können sehen, dass es zu den Trainingsdaten viel besser passt, was mit r quadratischen Wert von 0,6, was nicht zu überraschend ist, weil wir es auf den Trainingsdaten trainiert haben. Die Art des Teststatus. Es ist unbekannt. ITT-Test und es hat den Test fehlgeschlagen, ehrlich gesagt, 30%. Das reicht. Das ist also ein Beispiel für die Verwendung von geschulten Tests, um einen überwachten Lernalgorithmus zu bewerten. Und, wie ich schon sagte, Pandas hat einige Möglichkeiten, das noch einfacher zu machen. Wir werden uns das ein wenig später ansehen, und wir werden uns auch weitere Beispiele für geschulte Tests ansehen, einschließlich sorgfältiger Validierung später im Kurs,
und Sie können wahrscheinlich erraten, was Ihre Hausaufgaben sind. Wir wissen also, dass ein Polynom der achten Ordnung nicht sehr nützlich ist. Kannst du es besser machen? Also möchte ich zurück gehen, Führen Sie dieses ich Python kein Buch den ganzen Weg durch, aber verwenden Sie verschiedene Werte für die Zahl für den Grad Polynom, den Sie verwenden werden, um zu passen. Ändern Sie also, dass 82 verschiedene Werte und sehen Sie, ob Sie herausfinden können, welchen Grad
Fehlerpolynom tatsächlich am besten bewertet Mit trainiertem Test ist eine Metrik. Also, wo erhalten Sie Ihre beste r quadrierte Punktzahl für Ihre Testdaten? Was für zwei Grad hier passt. Also geh mit dem spielen. Haben Sie irgendwelche Probleme in den Diskussionen gestellt, sollte
aber eine ziemlich einfache Übung in einer sehr aufschlussreichen eine für Sie als auch sein. Also viel Spaß damit. Das ist also trainierter Test in Aktion. Sehr wichtige Technik. Zehe haben. Und Sie werden es immer und immer wieder verwenden, um sicherzustellen, dass Ihre Ergebnisse gut für das Modell passen, das Sie haben und ein guter Prädiktor für unsichtbare Werte sind. So gute Möglichkeit, Übermontage zu verhindern, wenn Sie Ihre Modellierung machen. Lasst uns weitermachen
29. Bayesische Methode: Konzepte: Haben Sie sich jemals gefragt, wie der Spam-Klassifikator in Ihrer E-Mail funktioniert? Woher weiß es, dass E-Mail Spam sein könnte oder nicht? Nun, eine populäre Technik ist etwas namens naive Bayes, und das ist ein Beispiel für eine beschäftigt und Methode. Lassen Sie uns also mehr darüber erfahren, wie das funktioniert. Lassen Sie uns Basie und Methoden besprechen. Also sprachen wir über Bayes Theorem früher im Kurs, im Zusammenhang mit der Diskussion darüber, wie Dinge wie Drogentests in
ihren Ergebnissen sehr irreführend sein könnten . Aber Sie können tatsächlich das gleiche anwenden basierend hier, ähm, größeren Probleme wie Spam-Klassifikator. Also lasst uns eintauchen, wie das funktionieren könnte. Und das nennt man BZ und Methode. Also nur eine Auffrischung auf dem Bayes-Theorem. Denken Sie daran, dass
die Wahrscheinlichkeit eines gegebenen B gleich der Gesamtwahrscheinlichkeit eines Vielfaches
der Wahrscheinlichkeit , ein über die Gesamtwahrscheinlichkeit von B gegeben zu werden also was ist Wie können Sie das im maschinellen Lernen verwenden? Ich kann dafür tatsächlich einen Spam-Klassifikator erstellen. Ein Algorithmus, der tatsächlich eine Reihe von bekannten Spam-E-Mails und eine bekannte Gruppe von
Nicht-Spam-E-Mails analysieren und ein Modell trainieren kann , um tatsächlich vorherzusagen, wo ihre neuen e-Mails Spam sind oder nicht. Und das gibt es. Dies ist eine echte Technik, die natürlichen Spam verwendet wird. Classifier ist in der realen Welt. Also, als Beispiel, lassen Sie uns einfach herausfinden, wie wahrscheinlich eine E-Mail Spam ist, da sie das Wort frei enthält. Weißt du, die meisten Leute versprechen dir kostenloses Zeug. Es ist wahrscheinlich Spanne, also lasst uns das klären. Die Wahrscheinlichkeit, Spammed zu werden, da Sie das Wort frei in einer E-Mail haben, funktioniert auf die allgemeine Wahrscheinlichkeit, dass es eine Spanne ist, die Nachricht mal die Wahrscheinlichkeit das Wort frei zu enthalten, da es Spam über die Wahrscheinlichkeit insgesamt frei zu sein jetzt, der Zähler und nur der Gedanke daran, die Wahrscheinlichkeit, dass eine Nachricht Spam ist und das Wort frei enthält. Aber das ist ein bisschen anders als das, was wir suchen, denn das sind die Chancen aus dem kompletten Datensatz, und nicht nur die Chancen in Dingen, die das Wort frei enthalten. Okay, und der Nenner nur die allgemeine Wahrscheinlichkeit, das Wort frei zu enthalten. Manchmal ist das nicht sofort für Sie aus den Daten, die Sie haben, zugänglich. Wenn dies nicht der Fall ist, können
Sie das tatsächlich auf diesen anderen Ausdruck hier erweitern, wenn Sie ihn ableiten müssen. Also am Ende des Tages, das gibt Ihnen den Prozentsatz der e-Mails, die das Wort frei diese Spanne enthalten, was eine nützliche Sache wäre zu wissen, wenn Sie versuchen, herauszufinden, ob es Familie ist. Was ist mit all den anderen Worten in der englischen Sprache, obwohl, Also sollte unser Spam-Klassifikator über mehr wissen, als nur das Wort frei sollte automatisch jedes Wort in der Nachricht im Idealfall
abholen, und herauszufinden, Wie viel trägt das dazu bei, dass es sich bei dieser E-Mail um Spam handelt? Was wir also tun können, ist, ein Modell für jedes Wort zu trainieren, das wir während des Trainings begegnen. Du weißt schon, Dinge wie ein und die und und und bedeutungslose Wörter wie das
rauswerfen, natürlich. Und dann, wenn wir alle Wörter in einer neuen E-Mail durchlaufen, können
wir die Wahrscheinlichkeit multiplizieren, Spam für jedes Wort zusammen zu sein. Und dann bekommen wir die allgemeine Wahrscheinlichkeit, dass es sich bei dieser E-Mail um Spam handelt. Okay, jetzt nennt man es aus einem Grund naive Bayes. So nennt man diese Technik. Und ein Grund, dass es naiv ist, ist, weil wir annehmen, dass es keine Beziehungen
zwischen den Wörtern selbst gibt , die nur auf jede Welt schauen, Wort in Isolation, individuell innerhalb einer Nachricht und im Grunde kombinieren alle Wahrscheinlichkeiten jedes Wortes Beitrag dazu. Spam sind oder nicht, betrachten
wir nicht die Beziehungen zwischen den Wörtern. Okay, also würde ein besserer Spam-Klassifikator das tun. Aber offensichtlich ist das viel schwieriger. Das hört sich also nach viel Arbeit an. Die Gesamtidee, und nicht, dass nicht so schwer, aber psychisches Lernen Python macht es eigentlich ziemlich einfach zu tun. Es bietet eine Funktion namens Count Factor Riser, die es sehr einfach macht, tatsächlich eine E-Mail an alle seine Komponenten Wörter
aufzuteilen und diese Wörter einzeln zu verarbeiten. Und dann hat es eine Multi keine Mahlzeit NB-Funktion, wo N B für naive Bayes steht, die
alle schweren Heben für naive Basis für uns tun wird , so dass wir tatsächlich einen Spam-Klassifikator
mit nicht viel Mantel bauen können . Und in Ihren Kursmaterialien enthalten sind einige Beispieldaten, die eine Reihe von bekannten
Spam-E-Mails und anstelle von bekannten Ham-E-Mails enthalten. Ham ist das, was wir E-Mail nennen. Das ist kein Spam, und lass es uns tun. Lassen Sie uns Spam-Klassifikator erstellen
30. Die Implementierung eines Spam mit Naive Bayes: In Ordnung, schreiben
wir einen Spam-Klassifikator. Mit naiven Bayes wirst
du überrascht sein, wie einfach das ist. Tatsächlich liest der
meiste Teil der Arbeit nur alle Eingabedaten, auf die wir trainieren werden und analysiert diese Daten tatsächlich in der eigentlichen Spam-Klassifizierung. Aber das maschinelle Lernbit ist eigentlich nur ein paar Codezeilen, so funktioniert es normalerweise. Wissen Sie, eigentlich ist das
Einlesen und Massieren und Bereinigen Ihrer Daten in der Regel die meiste Arbeit, wenn Sie Data Science
machen, also gewöhnen Sie sich an die Idee. Gehen Sie weiter und öffnen Sie das naive Bayes I Python Notebook, wenn Sie mit mir folgen möchten . Und wie ich schon sagte, die
meiste Arbeit ist nur darin, die Daten zu lesen. Was ich hier in Ihren Kursmaterialien habe, sind ein paar verschiedene Verzeichnisse, die
mit E-Mails gefüllt sind. Und eine ist eine Reihe von E-Mails, die ich bereits weiß, wo Spannen, die vor
der Zeit klassifiziert wurden , und ein anderes Verzeichnis voller E-Mails, die Schinken sind, die nicht Spannen sind. Und ich werde diese Informationen verwenden, um mein Modell zu trainieren und es tatsächlich zu testen. Das erste, was zu tun ist, ist, all diese E-Mails irgendwie zu lesen, und wir gehen wieder. Verwenden Sie Pandas, um dies ein wenig einfacher zu machen. Also wieder, Pandas ist ein nützliches Werkzeug für den Umgang mit tabellarischen Daten. Und lasst uns, äh, nachdem wir all die verschiedenen Pakete importiert haben, die wir in unserem Beispiel hier verwenden werden, dazu gehören die Betriebssystembibliothek, die IoT-Bibliothek, Taub Pie, Pandas und Count Faktor Riser und Multi keine Mahlzeit und werden von Psych. Es lernt, und wir werden das alles durchmachen, wenn wir ihnen begegnen. Lassen Sie uns von jetzt an diese Funktionsdefinitionen vorbei und gehen Sie auf das erste, was unser Code tatsächlich tut. Und das ist, um ein Pandas-Datenrahmenobjekt zu erstellen. Und wir werden dies aus einem Wörterbuch konstruieren, das anfänglich eine leere Liste für
Nachrichten in einer leeren Liste der Klasse enthält . Diese Syntax besagt also, dass ich einen Rahmen mit zwei Spalten datieren möchte,
eine, die die Nachricht enthält, den eigentlichen Text jeder E-Mail und wenn das die Klasse jeder E-Mail enthält,
das ist, ob es sich um Spam oder Ham handelt. Okay, im Grunde sagt
diese eine Zeile, dass ich eine kleine Datenbank mit E-Mails erstellen möchte, und diese Datenbank hat zwei Spalten. Es hat theatralischen Text der E-Mail, und es hat, ob es Spam ist oder nicht. Okay, jetzt muss ich etwas in dieser Datenbank in diesen Datenrahmen in Python-Syntax einfügen. Also werde ich diese beiden Methoden aufrufen, um tatsächlich alle meine Spam-E-Mails aus meinem
Spam-Ordner und alle meine Hand-E-Mails für meinen Schinkenordner einzuwerfen . Und wenn Sie hier spielen,
stellen Sie sicher, dass Sie diesen Pfad so ändern, dass er überall dort passt, wo Sie die Kursmaterialien für
diesen Kurs installiert haben , okay? Und weißt du, wieder, wenn du auf einem Mac bist oder diese Rücken begrenzt, achten Sie auf Schrägstriche und Her Schrägstriche und all das Zeug in diesem Fall, ist es egal. Aber Sie haben keinen Laufwerkbuchstaben, zum Beispiel, wenn Sie nicht unter Windows sind. Stellen Sie
also sicher, dass diese Pasts tatsächlich darauf hinweisen, wo sich Ihre Spam- und Ham-Ordner
für dieses Beispiel befinden . Also, was ist das Fälligkeitsdatum? Ein Frame aus Funktionsverzeichnissen, die ich hier aufgeschrieben habe. Grundsätzlich sagt
es, dass ich einen Pfad zu einem Verzeichnis habe, und ich weiß, dass es wie Klassifikationen Spammer,
Schinken gibt und was ich tun werde, ist diese Lesefunktion aufzurufen, die ich auch geschrieben durch jeden einzelnen
Datei in einem Verzeichnis, und ich möchte nicht auf zu viele Details eingehen, wie das funktioniert. Aber im Grunde verwendet es die OS dot walk Funktion, um alle Dateien in einem Verzeichnis zu finden, baut den vollständigen Pfadnamen für jede einzelne Datei in diesem Verzeichnis und liest sie dann ein. Und während es es einliest, überspringt
es tatsächlich die Kopfzeile für jede E-Mail und geht einfach direkt zum Text. Und das tut es, indem man hier nach der ersten leeren Zeile sucht. Es weiß, dass alles nach der ersten leeren Zeile tatsächlich der Nachrichtentext ist, und alles vor dieser ersten leeren Zeile ist nur eine Reihe von Header-Informationen, auf die ich meinen Spam-Klassifikator nicht wirklich trainieren möchte. Es gibt mir also sowohl den vollständigen Pfad zu jeder Datei als auch den Text der Nachricht zurück. Okay, so lese ich alle meine Daten ein, und das ist die Mehrheit des Codes. Was ich am Ende des Tages hier habe, ist ein Datenrahmenobjekt, im Grunde eine Datenbank mit zwei Spalten, die Nachrichtentexte enthält und ob es Spam ist oder nicht. Und wir könnten weitermachen und das ausführen und wir können den Head Befehl aus dem Datenrahmen verwenden, um tatsächlich eine Vorschau zu sehen, wie das aussieht. So sehen die ersten Einträge in unserem Datenrahmen für jeden Pfad zu einer bestimmten Datei
voller E-Mails so aus, wir haben eine Klassifizierung und wir haben den Nachrichtentext. Okay,
okay , jetzt zum lustigen Teil. Also werden wir die multi no meal nb Funktion von Psychic Learned verwenden, tatsächlich naiv basierend auf dem Zustand, dass wir haben und was es erwartet, ist zwei
Dinge zu bekommen . Also, sobald wir einen Multi Multi keine Mahlzeit naive Bayes Klassifikator in diesen beiden Eingängen bauen und er ist die tatsächlichen Daten, die trainiert wurden und die Ziele für jede Sache. Also, was das ist im Grunde eine Liste aller Wörter in jeder E-Mail,
okay, okay, und die Häufigkeit, wie oft dieses Wort auftritt. Das ist also, was diese Zählvektor-Riser-Sache tut. Das wird es. Diese Syntax bedeutet, dass Sie die Nachrichtenspalte für meinen Datenrahmen nehmen und alle Werte daraus . Ich werde Vektorrisierpunkt Fit nennen,
transformieren, was das tut. Ist es im Grunde Token ises oder konvertiert alle einzelnen Wörter, die in meinen Daten gesehen , in
Zahlen in Werte, und es wird dann zählen, wie oft jedes Wort auftritt. Dies ist also eine kompaktere Methode, um darzustellen, wie oft jedes Wort in einer E-Mail vorkommt ,
anstatt die Wörter selbst zu erhalten. Ich repräsentiere diese Wörter als verschiedene Werte in einer spärlichen Matrix. Okay, was im Grunde sagt, dass ich jedes Wort eine Zahl als numerischer Index in
ein Array behandle . Also, was das tut, ist nur in einfachem Englisch. Es spaltet sich. Er schmied jede Nachricht bis in eine Liste von Wörtern, die in ihm sind und wie oft jedes Wort vorkommt. Also nennen wir, dass zählt. Es ist im Grunde, dass Informationen darüber, wie oft jedes Wort in jeder einzelnen
Nachricht vorkommt und dann Ziele die tatsächlichen Klassifizierungsdaten für jede E-Mail sind, die mir
begegnet ist . Und ich kann Classifier dot fit mit meinem Multi nobile nennen und Funktion sein, um tatsächlich
ein Modell mit naiven Bayes zu erstellen , die vorhersagen, wo ihre neuen e-Mails Spam sind oder nicht, basierend auf den Informationen, die ich ihm gegeben habe. Es geht voran und rennen. Das läuft ziemlich schnell, also lasst es uns ausprobieren. Ich werde hier ein paar Beispiele verwenden. Lassen Sie uns versuchen, eine Nachricht Body, die gerade sagt frei Viagra jetzt wahrscheinlich ziemlich deutlich Spanne. Und, ah, mehr unschuldige Nachricht, die nur sagt, Hi, Bob, wie wäre es mit einer Partie Golf morgen? Also sind wir vorbei, dass wir zuerst diese Nachrichten in das gleiche
Format konvertieren müssen, an dem ich mein Modell trainiert habe. Also werde ich denselben Vektorriser verwenden, den ich beim Erstellen des Modells erstellt habe, um jede Nachricht in eine Liste von Wörtern und deren Frequenzen zu konvertieren, wobei die Wörter durch Positionen in einem Array dargestellt werden. Und dann, wenn ich diese Transformation gemacht habe, kann
ich tatsächlich die Vorhersagefunktion für meinen Klassifikator in diesem Bereich verwenden,
Beispiele, die sich in,
Sie wissen schon,
Listen von Wörtern verwandelt haben Sie wissen schon, und sehen, dass wir und sicher genug funktioniert es. Also angesichts dieses Array von Eingabemeldungen, kostenlos Viagra jetzt und hoch. Bob sagt mir, dass die ersten Ergebnisse ein Spam zurückkamen, und das zweite Ergebnis kam zurück seine Hand, was ich erwarten würde, so dass das ziemlich cool ist. Also da hast du es. Nun, wir haben hier einen ziemlich kleinen Datensatz. Also, Sie wissen, Sie könnten versuchen, einige verschiedene E-Mails durch sie auszuführen, wenn Sie möchten, und sehen, ob Sie andere Ergebnisse erhalten. Aber versuchen Sie, drei anzuwenden. Pass nicht auf dich auf. versucht, Zugtest auf dieses Beispiel anzuwenden. Das eigentliche Maß, ob mein Spam-Klassifikator gut ist oder nicht, ist nicht nur intuitiv, ob es herausfinden kann, dass kostenlose Viagra jetzt ein Spam ist. Sie wollen das quantitativ messen. Also, wenn Sie ein bisschen eine Herausforderung wollen, gehen Sie voran und versuchen Teoh teilen Sie den Zustand in ein Trainingsset in einem Testdatensatz und Sie können tatsächlich online nachschlagen, wie Pandas Daten in Zugtests und
Testsets aufteilen können ziemlich leicht für Sie. Oder Sie können es von Hand tun, was auch immer für Sie funktioniert, und sehen, ob Sie tatsächlich Ihren Multi no Meal nb Klassifikator auf einen Testdatensatz anwenden und seine Leistung
messen können. Also ein bisschen eine Übung, ein bisschen eine Herausforderung. Probieren
Sie das mal aus. Wie cool ist, dass wir gerade ihren eigenen Spam-Klassifikator geschrieben haben, nur mit ein paar Zeilen Code in Python Es ist ziemlich einfach mit psychischem Lernen und Python. Das ist naiv. Bayes in Aktion, und Sie können tatsächlich reingehen. Klassifizieren Sie einige Spam- oder Schinkennachrichten jetzt, da Sie diese unter Ihrem Gürtel haben. Ziemlich cooles Zeug. Lassen Sie uns als Nächstes über Clustering sprechen.
31. K-Means Clustering: Als nächstes werden wir über K sprechen bedeutet Clustering, und das ist eine unbeaufsichtigte Lerntechnik, bei der Sie ah haben, Sammlung von Sachen, die Sie zusammen in verschiedenen Clustern gruppieren möchten. Vielleicht sind es Filmgenres oder Demographie von Menschen, die es wissen, aber es ist eigentlich eine ziemlich einfache Idee. Also lass uns gehen und sehen, wie es funktioniert. Okay, reden
wir über K bedeutet Clustering. Sehr häufige Technik im maschinellen Lernen, bei der Sie nur versuchen, eine Reihe von Daten zu nehmen und interessante Cluster von Dingen zu finden, die nur auf den Attributen der Daten selbst
basieren. Klingt schick, aber es ist eigentlich ziemlich einfach. Alles, was wir in K tun, bedeutet Clustering ist zu versuchen, unsere Daten in K-Gruppen zu teilen. Das ist, woher das K kommt. Es ist, wie viele verschiedene Gruppen Sie versuchen, Ihre Daten aufzuteilen. Und es tut dies, indem er den Fall Central Lloyds findet. Also im Grunde, zu
welcher Gruppe eines gegebenen Datenpunkts gehört, wird definiert, durch welchen dieser zentralen OID-Punkte es in Ihrem Streudiagramm am nächsten ist, so dass Sie visualisieren können, dass hier ein Beispiel für K zeigt, bedeutet Clustering mit K von drei, und die Quadrate repräsentieren Datenpunkte in einem Streudiagramm, die die Kreise darstellen, das zentrale ist, dass der K-Algorithmus für den Clustering-Algorithmus entwickelt wurde, und jedem Punkt wird ein Cluster zugewiesen, der darauf basiert, welcher Mitte er am nächsten ist. Okay, das ist alles, was es gibt. Es ist wirklich ein Beispiel für das von der UNO überwachte Lernen. Es ist also kein Fall, in dem wir eine Reihe von Daten haben, und wir kennen bereits den richtigen Cluster für einen bestimmten Satz von Trainingsdaten. Vielmehr erhalten
Sie nur die Daten selbst,
und es versucht, auf diesen Clustern auf natürliche Weise zu konvergieren, nur basierend auf den Attributen der Daten allein. Es ist also ein guter Fall, wo Sie versuchen, Cluster zu finden, sind Kategorisierungen, von denen Sie nicht einmal
wussten, dass sie dort waren. Es ist Ah, wie bei den meisten unbeaufsichtigten oder irgendwelchen Techniken, der Punkt ist, latente Werte zu finden. Weißt du,
Dinge, die du nicht wirklich erkannt hast, wo es da ist, bis der Algorithmus sie dir zeigt. Also, zum Beispiel, wo leben Millionäre? Vielleicht, ich weiß es nicht. Vielleicht gibt es einen interessanten geografischen Cluster, in dem Sie wissen, dass reiche Menschen leben und K bedeutet, dass Clustering Ihnen helfen könnte, das herauszufinden. Vielleicht weiß ich nicht wirklich, ob die heutigen Genres der Musik oder sinnvoll Was bedeutet es,
alternativ zu sein heutzutage? Nicht viel, richtig. Aber durch die Verwendung von K bedeutet Clustering auf Attributen von Songs, vielleicht könnte ich interessante Cluster von Songs finden, die miteinander verwandt
sind und neue Namen für das finden, was diese Cluster repräsentieren. Oder vielleicht kann ich mir demografische Daten ansehen, und vielleicht sind bestehende Stereotypen nicht mehr nützlich. Vielleicht hat
Hispanic seine Bedeutung verloren. Und diese tatsächlich andere Attribute, die Gruppen von Menschen definiert, zum Beispiel, die ich mit Clustering aufdecken könnte, klingt fantastisch. Es ist nicht wirklich kompliziert. Unüberwachtes maschinelles Lernen mit Clustern K. Es klingt schick, aber wie bei den meisten Techniken und Data Science, ist
es eigentlich eine sehr einfache Idee. Also hier ist der Algorithmus, den wir mit einem zufällig gewählten anstelle von Central beginnen. Wenn wir also ein K von drei haben, werden
wir nach drei Clustern in unserer Gruppe suchen, und wir werden drei zufällig positionierte zentrale Hilfsmittel in unserem Streudiagramm zuweisen. Wir weisen dann angegebenen Punkt auf die Sie zufällig zentral zugewiesen, die am nächsten ist, und dann berechnen wir die zentrale Reichweite Cluster, die wir kommen mit. Also für einen bestimmten Cluster, den wir am Ende haben. Wir werden das zentral verschieben, um das eigentliche Zentrum all dieser Punkte zu sein. Und dann werden wir alles wieder tun, bis die zentral aufhören zu bewegen. Wissen Sie, wir haben einen Schwellenwert erreicht, der besagt, OK, wir haben hier etwas konvergiert und dann, um die Cluster für neue Punkte vorherzusagen, die ich noch nicht gesehen habe. Wir können einfach durch unsere zentralen Standorte gehen und herausfinden, in welchem Zentrum es
Ihnen am nächsten ist, um seinen Cluster vorherzusagen. Okay, schauen wir uns hier ein grafisches Beispiel an, um ein bisschen mehr Sinn zu machen. Sagen Sie, ich habe wieder ein Streudiagramm. Diese grauen Quadrate stellen Datenpunkte in unserem Streudiagramm dar. Diese Berichte stellen also einige verschiedene Merkmale von etwas dar. Vielleicht ist sein Alter und Einkommen ein Beispiel, das ich ständig benutze, aber es könnte alles sein. Und diese Quadrate repräsentieren einzelne Menschen oder einzelne Lieder oder Einzelpersonen,
etwas, zwischen dem ich Beziehungen finden möchte. Okay, also fange ich an, indem ich nur drei Punkte zufällig in meinem Streudiagramm auswähle. Könnte überall sein. Ich muss irgendwo anfangen, richtig? Das nächste, was ich tun werde, ist für jeden Punkt. Ich werde berechnen, zu welchem dieser Punkte es am nächsten ist, damit Sie sehen können, wo das endet , indem Sie dies tun Diese blau schattierten Punkte sind mit dieser blauen Wachtposten-OID verbunden. Die grünen Punkte liegen dem grünen Zentrum am nächsten. Es in diesem einzelnen Redpoint ist dem roten zufälligen Punkt am nächsten, den ich herausgesucht habe. Aber Sie können sehen,
dass Sie wissen, das ist nicht wirklich ah reflektiert, wo die tatsächlichen Cluster zu sein scheinen. Also, wenn ich das nochmal
mache, werde ich die Punkte nehmen, die in jedem Cluster gelandet sind, und den tatsächlichen
Mittelpunkt dieser Punkte berechnen . Also, zum Beispiel, und dieser grüne Cluster hier, der eigentliche Mittelpunkt all dieser Daten erweist sich als ein wenig niedriger. Also werden wir das ein wenig in dieser roten Clusterinsel verschieben, die einen Punkt hatte, also bewegt sich sein Zentrum nach unten, wo der einzelne Punkt in Ordnung ist, und der blaue Punkt war eigentlich ziemlich nah. Das bewegt sich also nur ein bisschen. Und bei dieser nächsten Generation haben wir etwas, das so aussieht. So können Sie jetzt sehen, dass unser Cluster für rote Dinge ein wenig gewachsen ist, und die Dinge haben sich ein wenig bewegt mit denen, die aus dem grünen Cluster genommen wurden, im Grunde genommen. Und wenn wir das nochmal machen, können
Sie wahrscheinlich sehen, was passieren wird. Netze, die Green Central. Es wird sich hier ein bisschen so blau bewegen. Sen. Troy ist immer noch dran, wo es sein sollte, aber am Ende des Tages wirst
du mit den Clustern landen, die du wahrscheinlich erwarten würdest. Der rote Cluster wird am Ende diese Gruppe sein, und Blue wird letztendlich diese Gruppe sein und Greenwell darauf, dass diese Gruppe ist, so bedeutet k funktioniert. Es iteriert also immer wieder, um die richtigen zentralen Rechte zu finden, bis sich die Dinge nicht mehr
bewegen und wir auf einer Lösung konvergieren. Es gibt also offensichtlich einige Einschränkungen für K bedeutet Clustering. Zuallererst müssen
wir den richtigen Wert von K wählen, und das ist keine einfache Sache, alles zu tun. Sie wissen, wie die prinzipielle Art der Auswahl von K darin besteht, einfach niedrig zu beginnen und den Wert von K zu erhöhen Wie viele Gruppen Sie wollen, bis Sie aufhören, große Reduktionen in quadratischen Fehlern zu bekommen. Sie wissen also, wenn Sie die Entfernungen von jedem Punkt zu ihren Zentralen betrachten. Sie können sich vorstellen, dass es sich um eine Fehlermetrik handelt, und an dem Punkt, an dem Sie aufhören, diese Fehlermetrik zu reduzieren, wissen
Sie, dass Sie wahrscheinlich zu viele Cluster haben. OK, Sie gewinnen
also nicht wirklich mehr Informationen, indem Sie an diesem
Punkt zusätzliche Cluster hinzufügen. Außerdem gibt es ein Problem der lokalen Minima, so dass Sie einfach sehr Pech mit diesen anfänglichen Entscheidungen der zentralen Rechte bekommen können. Und sie könnten am Ende nur auf lokale Phänomene statt auf mehr globale Cluster konvergieren. Normalerweise möchten Sie dies ein paar Mal ausführen und vielleicht die Ergebnisse zusammen durchschneiden. Wissen Sie, wir nennen das Ensemble Lernen. Darüber reden wir später noch ein bisschen. Aber Sie wissen, es ist immer eine gute Idee, K auszuführen bedeutet mehr als einmal einen anderen Satz von zufälligen
Anfangswerten zu verwenden und nur zu sehen, ob Sie tatsächlich mit den gleichen Gesamtergebnissen enden oder nicht. Schließlich bedeutet
das Hauptproblem mit K Clustering, dass es keine Labels für die Cluster gibt, die Sie erhalten. Es wird Ihnen nur sagen, dass diese Gruppe von Datenpunkten irgendwie verwandt ist, aber Sie können keinen Namen darauf setzen. Du weißt, dass du dir die eigentliche Bedeutung dieses Clusters nicht sagen kannst. Sagen wir mal, haben ein paar Filme, die ich ansehe und K bedeutet, Clustering sagt mir, dass ein Haufen Science-Fiction-Filme hier rüber kommen, aber es wird sie nicht Science-Fiction-Filme nennen. Für mich liegt
es an mir, in die Daten zu graben und herauszufinden, was diese Dinge wirklich gemeinsam haben und wie es könnte ich das auf Englisch beschreiben. Das ist der schwierige Teil, und K bedeutet, dass dir nicht dabei helfen wird. Also wieder, psychisches Lernen macht es sehr einfach, dies zu tun. Lassen Sie uns tatsächlich ein Beispiel machen und k bedeutet Clustering in die Tat umsetzen.
32. Menschen nach Einkommen und Alter gruppieren: Alles klar, mal sehen, wie einfach es ist, K zu tun, bedeutet Clustering mit psychischem Lernen und Python. Also zuerst, was ich tun werde, ist ein paar zufällige Daten zu erstellen, die ich versuchen möchte, Cluster zu erstellen. Und nur um es einfacher zu machen, werde
ich tatsächlich einige Cluster in meine gefälschten Testdaten bauen. Also lassen Sie uns so tun, als gäbe es eine grundlegende Beziehung zwischen diesen Daten, und es gibt einige echte natürliche Cluster, die darin existieren. Also, um das zu tun, habe ich gerade diese kleine Clustered-Datenfunktion und Python geschrieben, und es beginnt mit einem konsistenten zufälligen Seed, so dass Sie jedes Mal das gleiche Ergebnis erhalten und es einnimmt. Ich möchte Cluster von Endmenschen in K-Clustern erstellen. So ermittelt es, wie viele Punkte pro Cluster zuerst funktioniert und baut dann diese Liste X auf, die leer beginnt. Also für jeden Cluster für I in Bereich K, werde
ich einige zufällige zentrale Rate des Einkommens zwischen $220.000 ein zufälliges
Jahrhundert zwischen dem Alter von 20 und 70 zu schaffen . Also, was ich hier mache, ist die Schaffung einer gefälschten Scatter-Plot, die Einkommen
gegen Alter für N Menschen und K-Cluster zeigen wird . Also für jedes zufällige zentral, das ich erstellt
habe, werde ich dann einen normal verteilten Satz von Zufallsdaten mit einer
Standardabweichung von 10.000 und Einkommen und einer Standardabweichung von zwei und einem Richter erstellen und das wird mir einen Haufen
zurückgeben von Alterseinkommensdaten, die in einige vor bestehenden Clustern gruppiert sind, die ich zufällig ausgewählt habe. Okay, lassen Sie uns weitermachen und das laufen. Und jetzt wirklich K zu tun bedeutet, dass Sie sehen, wie einfach es ist. Alles, was Sie tun, ist, k Mittel aus Psych zu importieren. Es lernt Cluster-Paket, und wir sind auch wichtig, dass Plot Lippen, damit wir Dinge und auch die Skalierung Dinge visualisieren können,
damit wir einen Blick darauf werfen können, wie das funktioniert in einer Minute. Also werde ich meine Funktion „Clustered Data erstellen“ verwenden, um zu sagen, dass ich 100 zufällige Menschen um
fünf Cluster will . Es gibt also fünf natürliche Cluster ab dem Datum, an dem sie erstellt wurden. Ich habe ein Modell k bedeutet Modell mit K von fünf zu erstellen. Also ich und wähle fünf Cluster, weil ich weiß, dass das die richtige Antwort ist. Aber wieder und unbeaufsichtigtes Lernen, wissen
Sie nicht unbedingt, was der wahre Wert von K ist. Sie müssen selbst iterieren und konvergieren. Und dann könnte ich Modeled Outfit mit
einem Mittelmodell aufrufen, indem ich die Daten
verwende, auf die ich jetzt Maßstab hatte, auf die ich früher angespielt habe. Das ist die Normalisierung der Daten. Und eine wichtige Sache mit K bedeutet ist, dass es am besten funktioniert. Wenn Ihre Daten alle normalisiert sind, bedeutet
dies, dass alles auf dem gleichen Maßstab ist. Ein Problem, das ich hier habe, ist, dass meine Altersgruppen von 20 bis 70, aber
die Einkommen reichten bis zu 200.000. Diese Werte sind also nicht wirklich vergleichbar. Die Einkommen sind viel größer als die Alterswerteskala, nehmen alle diese Daten und skalieren sie zusammen auf eine konsistente Skala. Also kann ich diese Dinge tatsächlich als Äpfel mit Äpfeln vergleichen, und das wird viel mit Ihrem K bedeutet Ergebnisse helfen. Wenn ich also einmal fit auf mein Modell genannt habe, habe
ich ein Modell, und ich kann mir die resultierenden Etiketten ansehen, die ich bekommen habe, und dann können wir es tatsächlich mit diesem kleinen bisschen Matt Plot Live Magie
visualisieren. Sie können hier sehen, ich habe einen kleinen Trick hier, wo ich die Farbe unterzeichnet habe, auch. Die Beschriftungen, mit denen ich endete, wurden in eine Gleitkommazahl umgewandelt, und das ist ein wenig knifflig, können verwendet werden, um einem bestimmten Wert beliebige Farben zuzuweisen. Also mal sehen, wir haben am Ende nicht so lange gedauert. Sie sehen die Ergebnisse hier,
im Grunde, in welche Cluster ich alles eingeschrieben habe. Und Sie können sehen, dass wir wissen, dass unsere gefälschten Daten bereits vorgruppiert sind, so scheint es, dass es und die Identifizierung des ersten und zweiten Clusters ziemlich leicht über diesen Punkt hinaus ein
wenig verwirrt , weil unsere
Cluster hier in der Mitte sind eigentlich ein bisschen ein bisschen zusammengepusht. Sie sind nicht wirklich so verschieden. Das war also eine Herausforderung für K bedeutet. Aber egal, es kam mit einigen vernünftigen Vermutungen bei den Clustern. Aber wir landeten mit hier war Cluster hier, in der Nähe von hier. Cluster dort in einem Cluster, Cluster hier unten und es ist keine schlechte Wahl. Wissen Sie, das ist wahrscheinlich ein Beispiel dafür, wo Sie vier Cluster natürlicher passen. Die Daten. Also, was ich will, dass du ausländische Aktivitäten machst, um das auszuprobieren. Versuchen Sie, anderen Wert von K und CTO am Ende mit, wissen
Sie, nur Augäpfeln dies. Es sieht so aus, als ob vier funktionieren würden, oder? Was passiert, wenn ich K zwei groß vergrößere? Was passiert mit meinen Ergebnissen dort? Was versucht es, Dinge zu spalten und macht nicht einmal Sinn? Also spielen Sie mit ihm herum,
versuchen Sie, für Werte. OK, also funktionieren die End-Cluster hier, ändern Sie die fünf in etwas anderes, laufen alle durch es wieder und sehen, ob sie am Ende mit so spielen herum, haben etwas Spaß damit. Das ist alles, was es gibt, um K bedeutet Clustering. So einfach ist es. Sie könnten einfach wie es lernt k bedeutet Sache aus Cluster und wieder die einzige echte Gotcha . Stellen Sie sicher, dass Sie die Daten skalieren, normalisieren oder aufhellen, da der Fall ein anderer anderer Name für die gleiche Sache sein kann. Sie möchten sicherstellen, dass die Dinge, die Sie k verwenden
, miteinander vergleichbar sind , und die Skalierungsfunktion wird dies für Sie tun. Das sind also die wichtigsten Dinge für K bedeutet Clustering. Ziemlich einfaches Konzept, noch einfacher, es mit psychischen gelernt zu tun. Da hast du es. Es ist alles, was da ist. Das ist K bedeutet Clustering. Wenn Sie also eine Reihe von Daten haben, die nicht klassifiziert sind und Sie nicht wirklich die richtige
Antwort haben , ist der Zeit voraus. Es ist ein guter Weg, um natürlich interessante Gruppierungen Ihrer Daten zu finden. Und vielleicht könnte Ihnen das einen Einblick in das geben, was diese Daten sind. So gutes Werkzeug tohave. Ich habe es vorher in der realen Welt benutzt, und es ist wirklich nicht so schwer zu bedienen, also behalte das in deiner Werkzeugkiste.
33. Entropie messen: Alles klar. Bald kommen wir zu einem der kühleren Teile des maschinellen Lernens, aber zumindest denke ich, so genannte Entscheidungsbäume. Aber bevor wir darüber reden könnten, müssen
Sie das Konzept der Entropie und Datenwissenschaft verstehen, und es ist eine ziemlich einfache Übung. Sehr kurze Vorlesung hier. Aber lasst uns das Konzept einfach unter den Gürtel bringen. Lassen Sie uns über Entropie sprechen, ein weiteres Beispiel für ein schickes Wort für ein einfaches Konzept. Aber wir müssen das verstehen, bevor wir über Entscheidungsbäume sprechen. Also lasst uns das zuerst unter unseren Gürtel bringen. So Entropie, genau wie in der Physik. Thermodynamik. Es ist ein Maß für eine Datensatzstörung. Also, wie gleich oder anders sein Tag eingestellt. Stellen Sie sich also vor, wir haben einen Datensatz mit verschiedenen Klassifizierungen. Zum Beispiel Tiere. Nehmen wir an, ich habe eine Reihe von Tieren, die nach Arten klassifiziert sind. Wenn alle Tiere in meinem Datensatz kein Leguan sind,dann ist
ich eine sehr niedrige Entropie, weil sie alle gleich sind. Wenn alle Tiere in meinem Datensatz kein Leguan sind, Aber wenn jedes Tier in meinem Datensatz ist ein anderes Tier, haben Leguane und Schweine und Schlitze, und wer weiß, was sonst, dass ich eine höhere Entropie, weil es mehr Störung. In meinem Datensatz sind
die Dinge anders als sie sind. Die gleiche Entropie ist eine Möglichkeit, diese Gleichheit oder diese Differenz in
meinen Daten zu quantifizieren . Also wieder, ein Interview Null impliziert alle Klassen und die Daten sind die gleichen. Während, wenn alles anders ist, hätte
ich eine hohe Entropie und etwas dazwischen wäre eine Zahl dazwischen. Es ist also nur ein weiteres Beispiel für ein schickes Wort für ein einfaches Konzept. Entropie beschreibt nur, wie gleich oder anders die Dinge in einem Datensatz sind. Das ist alles, was es dazu gibt. Es ist ein sehr kurzer Vortrag, weil es ein sehr einfaches Konzept ist. Mathematischist
es ein bisschen mehr daran beteiligt. Mathematisch Wenn also tatsächlich eine Zahl für die Entropie berechnet wird, wird hier mit diesem Ausdruck berechnet. Also für jede andere Klasse, die ich in meinen Daten
habe, werde ich einen dieser p Begriffe haben. Also Stück von einem Stück von zwei und so weiter und so weiter bis zum Ende verschiedene Klassen die ich haben könnte, und jeder Begriff repräsentiert die P DIS den Anteil der Daten, die diese Klasse ist,
und wenn Sie tatsächlich damit plotten, sieht so aus für jeden Begriff, dieses negative Stück von mal ein Naturgesetzalgorithmus von Stück I. Es wird ein bisschen so aussehen, und Sie addieren diese für jede einzelne Klasse. Also, wenn man es sich anschaut, macht
es irgendwie Sinn. Sie wissen zum Beispiel, ob der Anteil der Daten, die eine gegebene Klasse Null ist, als der Beitrag zur Gesamtentropie Null ist. Und wenn alles diese Klasse und wieder ist, ist
der Beitrag zur Gesamtentropie Null. Denn in beiden Fällen, wenn nichts diese Klasse ist oder alles, ist diese Klasse, die nicht wirklich
etwas zur allgemeinen Entropie beiträgt ? Wissen Sie, es sind diese Dinge in der Mitte, die zur Hommage an die Klasse beitragen, wo es eine Mischung aus diesem,
dieser Klassifizierung und anderen Sachen gibt, und wenn man all diese Begriffe zusammenfügt, Sie erhalten am Ende eine allgemeine Entropie für den gesamten Datensatz, so mathematisch, dass es funktioniert. Aber auch hier ist
das Konzept sehr einfach. Es ist nur ein Maß dafür, wie unsortiert Ihr Datensatz ist, wie gleich oder anders die Dinge in Ihren Daten sind. Das ist alles, was es zur Entropie gibt. Mit dem unter unserem Gürtel können
wir weitermachen und über Entscheidungsbäume sprechen. Das ist also Entropie, nur ein Maß für die Störung eines Datensatzes. Wie gleich oder anders ist das alles? Und Sie müssen das nur verstehen, wenn wir als Nächstes über Entscheidungsbäume sprechen.
34. Windows: Installing von Graphviz: Das wird also der kürzeste Vortrag der Welt über Windows sein. Sie müssen nichts Besonderes tun, um tatsächlich Entscheidungsbäume in Anaconda zu verwenden. Es hat bereits alles installiert, was Sie für Sie benötigen. Möglicherweise stellen Sie fest, dass hier Videos für einen Mac und Lennox-Benutzer eingerichtet sind, in denen
sie einen zusätzlichen Schritt folgen müssen. Aber du bist gut. Fahren Sie also mit der nächsten Lektion fort, und wir können tatsächlich anfangen, mit unseren Entscheidungsbäumen zu spielen.
35. Mac: Installieren von Graphviz: jetzt, bevor wir tatsächlich Entscheidungsbäume anzeigen können, benötigen
wir ein Paket namens Graph Viz, das auf Ihrem System und auf dem Mac installiert ist. Der einfachste Weg, dies zu tun, ist durch Homebrew. Also, wenn Sie nicht bereits Homebrew installiert haben, gehen Sie zu brauen Punkt s h hier und installieren Homebrew. Wir werden nur all diese Informationen hier kopieren, Command. Sehen Sie? Gehen Sie zu einem Terminal, fügen Sie es in Befehl V ein und führen Sie das aus. Wird er zurückkehren? Er muss sich authentifizieren. Und los geht es gut. Nach ein paar Minuten war
das zu Ende. Und jetzt können wir einfach Gebräu eingeben. Install Graph ist einfach so. In Ordnung. Sieht aus, als wären wir im Geschäft. Gehen wir weiter und schließen Sie dieses Terminalfenster, damit wir sicher sein können, dass wir das nächste Mal die neue
Umgebung aufnehmen . Und das sollte es sein. Wir sollten alle bereit sein, jetzt zu gehen.
36. Linux: Grafische installieren: So auf Lenox. Bevor wir tatsächlich mit Entscheidungsbäumen spielen können, müssen
wir ein Paket namens Graph Viz installieren, das es uns ermöglicht, auf
Visualize sie innerhalb unseres Notebooks zu ziehen . Um das zu tun, es ist wirklich einfach, und Lennox, Ich werde tun müssen, ist ein Terminal öffnen und geben Sie sudo Apt Dash get install graph viz.
Zumindest das ist, wie es auf einem Segen auf verschiedene Geschmacksrichtungen von Winnicks funktioniert. Möglicherweise haben Sie verschiedene Paketmanager, aber Graph ist wahrscheinlich dort drin. Also tun Sie einfach, was Sie tun müssen, um zu installieren. Graph befindet sich auf Ihrem Lennox-System. Aber warum fortzufahren und Diagramm ist jetzt installiert. Es ist einfach so einfach. So können wir jetzt fortfahren und anfangen, mit Entscheidungsbäumen zu spielen.
37. Entscheidungsbäume: Konzepte: Glauben Sie es oder nicht. Angesichts einer Reihe von Trainingsdaten können
Sie Python tatsächlich dazu bringen, ein Flussdiagramm zu generieren, damit Sie tatsächlich eine Entscheidung treffen können. Wenn Sie also etwas haben, das Sie für eine Klassifizierung vorhersagen möchten, können
Sie eine Entscheidungsstruktur verwenden, um tatsächlich mehrere Attribute zu betrachten, die Sie
auf jeder Ebene in einem Flussdiagramm entscheiden könnten . Und Sie können tatsächlich ein tatsächliches Flussdiagramm ausdrucken, mit dem Sie eine Entscheidung treffen basierend auf dem tatsächlichen maschinellen Lernen. Wie cool ist das? Mal sehen, wie es funktioniert. Alles klar, wir werden über Entscheidungsbäume reden. Dies ist eine der interessantesten Anwendungen im maschinellen Lernen, die ich mir vorstellen kann. Ich denke, es ist ziemlich coole Sachen, aber lass uns darüber reden, wie es funktioniert. Ein Entscheidungsbaum gibt Ihnen also im Grunde ein Flussdiagramm, wie Sie einige Entscheidungen treffen können, so dass Sie abhängige Variable
haben, wie ob ich heute draußen spielen sollte oder nicht, basierend auf dem Wetter. Und wenn Sie eine solche Entscheidung haben, hängt
das von mehreren Attributen ab, mehreren Variablen. Ein Entscheidungsbaum könnte eine gute Wahl sein, daher gibt es sehr viele verschiedene Aspekte des Wetters, die meine Entscheidung beeinflussen könnten ob ich nach draußen gehen und spielen sollte. Ich habe vielleicht mit der Feuchtigkeit zu tun, der Temperatur, ob es sonnig ist oder nicht. Zum Beispiel kann
ein Entscheidungsbaum all diese verschiedenen Attribute des Wetters oder irgendetwas anderes betrachten und entscheiden, wo die Schwellenwerte liegen, wo die Entscheidungen, die ich für jedes dieser Attribute treffen muss, bevor ich zu einem Entscheidung, ob ich gehen sollte spielen draußen. Das ist alles, was der Entscheidungsbaum ist. Es ist also eine Form des überwachten Lernens. Die Art und Weise, wie es in diesem Beispiel funktionieren würde, wäre ich eine Art von Datensatz von
historischem Wetter haben und ob die Leute nach draußen gingen, um an diesem Tag zu spielen, und ich würde
das Modell diese Daten von was füttern , ob es sonnig war oder nicht auf jeden Tag und was die Luftfeuchtigkeit war, zum Beispiel, und ob es windig war oder nicht, und ob es ein guter Tag war, draußen zu spielen. Und angesichts der Trainingsdaten kann
ein Entscheidungsbaum-Algorithmus tatsächlich zu einem Baum kommen, der Ihnen dieses Flussdiagramm gibt, das Sie ausdrucken können, sieht genau so aus, dass Sie einfach durchlaufen und herausfinden könnten ob es eine gute Tag Toe spielen draußen basierend auf den aktuellen Attributen. So können Sie das verwenden, um die Entscheidung für einen neuen Satz von Werten vorherzusagen. Es ist ziemlich tolles Zeug. Ich meine, wie cool ist das? Wissen Sie, wir haben einen Algorithmus, der automatisch ein Flussdiagramm für Sie erstellt, nur basierend auf Beobachtungsdaten. Und was noch cooler ist, ist, wie einfach alles funktioniert, wenn man lernt, wie es funktioniert. Also, zum Beispiel, werden
wir das wirklich tun. Nehmen wir an, ich möchte ein System erstellen, das automatisch Lebensläufe und basierend auf
den Informationen im Lebenslauf herausfiltert . Ein großes Problem, das Technologieunternehmen hat, ist, dass wir Tonnen und Tonnen Lebensläufe für unsere
Positionen bekommen . Dann müssen wir entscheiden, wen wir eigentlich für ein Interview mitbringen, denn es kann
teuer sein , jemanden auszufliegen und sich tatsächlich die Zeit zu nehmen, um ein
Interview zu führen . Was wäre, wenn es eine Möglichkeit gäbe, historische Daten darüber zu nehmen, wer tatsächlich angeheuert wurde und die Dinge, die in ihrem Lebenslauf gefunden werden, zu
kartieren könnten
wir einen Entscheidungsbaum konstruieren, der uns durch den individuellen Lebenslauf gehen lässt und sagen: Okay, diese Person hat tatsächlich die hohe Wahrscheinlichkeit, eingestellt zu werden oder nicht. So können wir einen Entscheidungsbaum auf diese historischen Daten trainieren und diese für zukünftige
Kandidaten durchlaufen . Wäre das eine wunderbare Sache zu haben? Lassen Sie uns also einige völlig gefertigte Einstellungsdaten erstellen, die ich in diesem Beispiel verwenden werde. Wir haben Kandidaten, die gerade durch numerische Identifikatoren identifiziert werden, und ich werde einige Attribute auswählen, die meiner Meinung nach interessant sein könnten, um vorherzusagen, ob sie eine gute Einstellung sind oder nicht. Wie viele Jahre Erfahrung haben sie? Sind sie derzeit beschäftigt? Wie viele Arbeitgeber hatten sie vor diesem hier? Wie hoch ist ihr Bildungsniveau? Welchen Grad haben sie? Sind sie zu einer Schule der Spitzenklasse gegangen? Haben sie ein Praktikum gemacht, während sie auf dem College waren? Und wir können einen Blick auf diese historischen Daten werfen und die abhängige Variable hier wird eingestellt. Hat diese Person tatsächlich ein Jobangebot bekommen oder nicht basierend auf diesen Informationen Nun, offensichtlich gibt es eine Menge Informationen, die nicht in diesem Modell sind. Das könnte sehr wichtig sein. Aber der Entscheidungsbaum, den wir aus diesen Daten trainieren, könnte tatsächlich nützlich sein, um einen
ersten Durchlauf zu machen , dass das Auslesen einiger Kandidaten und na ja, wir am Ende vielleicht ein Baum sein, der so aussieht. Es stellt sich also heraus, dass in meinen total hergestellten Daten
jeder, der ein Praktikum im College absolviert hat, tatsächlich ein Jobangebot bekam. Also mein erster Entscheidungspunkt ist, hat diese Person ein Praktikum gemacht oder nicht? Wenn ja, fahren Sie fort und bringen Sie ihn rein. Und weißt du, meiner Erfahrung sind
Praktika ein ziemlich guter Prädiktor dafür, wie gut eine Person ist, wenn sie die Initiative haben, tatsächlich auszugehen und ein Praktikum zu machen und tatsächlich zu lernen Etwas in diesem Praktikum, das ist ein gutes Zeichen. Haben sie derzeit einen Job? Nun, wenn sie momentan in meinen sehr kleinen Think Data beschäftigt sind, stellte sich heraus, dass sie
es wert sind, eine Einstellung zu machen, wissen
Sie, nur weil jemand anderes dachte, sie wären es wert, zu engagieren. Offensichtlich wäre
es ein bisschen mehr eine nuancierte Entscheidung in der realen Welt. Wenn sie derzeit nicht beschäftigt sind, haben sie mehr als einen weniger als einen früheren Arbeitgeber. Wenn ja, hat
diese Person nie einen Job bekleidet, und sie haben
auch nie ein Praktikum gemacht. Wahrscheinlich keine gute Mietentscheidung. Stellen Sie diese Person nicht ein. Aber, weißt
du, wenn sie einen früheren Arbeitgeber hatten, gehen sie wenigstens zu deiner Schule? Wenn nicht, ist
es irgendwie unheimlich. Wenn ja, dann ja, sollten
wir diese Person auf der Grundlage der Daten einstellen, auf die wir geschult haben. So gehen Sie durch die Ergebnisse eines Entscheidungsbaums. Es ist wie durch ein Flussdiagramm zu gehen, und es ist irgendwie genial, dass ein Algorithmus dies für Sie produzieren kann. Der Algorithmus selbst ist eigentlich sehr einfach. Hier ist, wie es funktioniert. So finden
wir bei jedem Schritt des Entscheidungsbaum-Flussdiagramms das Attribut, auf dem wir unsere Daten partitionieren können. Dadurch wird die Entropie der Daten im nächsten Schritt minimiert. Okay, also wissen Sie, dass wir eine resultierende Reihe von Klassifikationen in diesem Fall haben, höher, ich stelle nicht ein und wir möchten die Attributentscheidung bei jedem Schritt auswählen,
der das Interview im nächsten Schritt minimiert . Im Grunde bei jedem Schritt alle verbleibenden Entscheidungen dazu führen, möchten
wir
bei jedem Schritt alle verbleibenden Entscheidungen dazu führen,dass entweder so viele Know Hits oder so viele höhere Entscheidungen wie möglich ergeben. Wir wollen das Datum oder einheitlicher machen. Also, wenn wir unseren Weg nach unten im Flussdiagramm arbeiten, enden
wir am Ende mit einer Reihe von Kandidaten, die entweder alle Mitarbeiter sind alle wissen Mitarbeiter, die wir klassifizieren können, wissen
Sie, ja, keine Entscheidungen über einen Entscheidungsbaum. Das war's also. Weißt du, wir sind gerade durch den Baum gegangen, minimieren die Entropie bei jedem Schritt, indem wir das richtige Attribut für die Entscheidung ausgesucht haben, und wir gehen weiter, bis wir ausgehen. Und es gibt einen ausgefallenen Namen für diesen Algorithmus heißt Idee drei. Ich weiß nicht einmal, wofür das steht, aber das ist alles, was es bedeutet, ist, was man als gieriger Algorithmus bezeichnet. Wenn es den Baum hinuntergeht, wählt
es nur das Attribut, das die Entropie an diesem Punkt minimiert. Nun könnte das nicht tatsächlich zu einem optimalen Baum führen, der die Anzahl der Entscheidungen minimiert die Sie treffen müssen,
aber es wird zu einem Baum führen, der funktioniert,
angesichts des Tages, an dem Sie es gegeben haben. Das ist also alles, was es dazu gibt. Es ist eine ziemlich einfache Idee. Nun, ein Problem mit Entscheidungsbäumen ist, dass sie sehr anfällig für übermäßige Anpassung sind. So können Sie mit einem Entscheidungsbaum enden. So wie wir gesehen haben, dass das wunderbar für die Daten funktioniert, auf denen Sie es trainiert haben. Aber es könnte nicht so groß sein, um tatsächlich die richtige Klassifizierung für neue
Leute vorherzusagen , die noch nicht gesehen haben. Diese Entscheidungsbäume lüften alles darüber, zu der richtigen Entscheidung für die Trainingsdaten, die Sie ihm gegeben haben, zu gelangen. Ok. Und vielleicht haben Sie die richtigen Attribute nicht wirklich berücksichtigt. Vielleicht hat es nicht genug von einer repräsentativen Stichprobe von Menschen gegeben, um daraus zu lernen, kann echten Problemen
führen. Um das zu bekämpfen, verwenden wir eine Technik namens zufällige Wälder. Und die Idee hier ist, dass wir tatsächlich unsere Daten testen, die wir auf verschiedenen Wegen für
mehrere verschiedene Entscheidungsbäume trainieren . Jeder Entscheidungsbaum nimmt also eine andere zufällige Stichprobe aus unseren Trainingsdaten und führt die Wahrheit durch, baut daraus einen Baum, und dann kann jeder daraus resultierende Vertrag über das richtige Ergebnis abstimmen. Nun, diese Technik, unsere Daten nach dem Zufallsprinzip mit dem gleichen Modell zu sammeln, ist ein Begriff namens Bootstrap Aggregating oder Bagging wieder, ein schicker Begriff für eine sehr einfache Idee. Und das ist eine Form von dem, was wir Ensemble Learning nennen, die in Kürze ausführlicher abdecken wird. Aber die Grundidee. Wir haben mehrere Bäume, einen Wald von Bäumen, wenn Sie wollen. Jeder, der eine zufällige Teilprobe der Daten verwendet, auf die wir trainieren müssen, und dann kann jeder dieser Bäume über das Endergebnis abstimmen, und das wird uns helfen, über die Anpassung an eine bestimmte Reihe von Trainingsdaten zu kämpfen. Die andere Sache, die zufällige Wälder tun können, ist tatsächlich die Anzahl der Attribute zu beschränken, zwischen denen es in jeder Phase wählen
kann, ist es versucht, die Entropie zu minimieren ist vor geht und wir können zufällig wählen, welche Attribute, die auf jeder Ebene wählen können. Das gibt uns auch mehr Variation von Baum zu Baum. Und deshalb erhalten wir mehr von einer Vielzahl von Algorithmen, die wir miteinander konkurrieren können, und sie können alle über die Endergebnisse abstimmen, indem sie leicht unterschiedliche Ansätze verwenden, um zur
gleichen Antwort zu gelangen . So funktionieren zufällige Wälder. Grundsätzlich handelt es sich um einen Wald von Entscheidungsbäumen, in dem sie aus verschiedenen Stichproben und auch
verschiedenen Attributen in jeder Phase zeichnen , zwischen denen es wählen kann. Okay, also mit all dem, lass uns ein paar Entscheidungsbäume machen und wir werden tatsächlich zufällige Kräfte verwenden Nun, wenn wir fertig sind, weil wie Hitler und macht es wirklich, wirklich einfach, so gut zu sehen, in einer Minute.
38. Entscheidungsbäume: Vorhergehende Entscheidungen: In Ordnung, lassen Sie uns ein paar Entscheidungsbäume treffen. Es ist ziemlich einfach. Tatsächlich ist
es verrückt, wie einfach das ist. Es ist ziemlich aufregendes Zeug. Wenn wir nur ein tatsächliches Flussdiagramm aus Trainingsdaten erstellen könnten, das wirklich mit nur
wenigen Codezeilen in Python funktioniert . Versuchen wir es mal. Also habe ich eine frühere Reifen Punkt C S V-Datei in Ihre Kursmaterialien aufgenommen, und das enthält nur einige erstellte Daten, die ich über Leute zusammengestellt habe, die entweder ein
Jobangebot erhalten haben oder nicht auf den Attributen dieser Kandidaten basieren. Also geh weiter und ändere diesen Weg in was auch immer. Wo immer Sie die Materialien für diesen Kurs installiert haben, ich bin mir nicht sicher, wo Sie es hinlegen, aber es ist fast sicher nicht da. Also gehen Sie vor und Ende dieser Datei waren in der Entscheidung Tree Python Notebookdatei hier gerade jetzt. Und wir werden nur Pandas verwenden, um das ESPN zu lesen und ein Datenrahmenobjekt daraus
zu erstellen . Okay, also gehen wir weiter und lesen Sie das in, und wir können die Kopffunktion auf der Datenrahmenspitze verwenden, die ersten Zeilen
ausdrucken und sicherstellen, dass es so aussieht, als ob es sinnvoll ist, und sicher genug, wir haben hier einige validiert. Also für jeden Kandidaten, ich d. Wir haben ihre jahrelange Erfahrung in der Vergangenheit, ob sie dort beschäftigt waren oder nicht, Anzahl der früheren Arbeitgeber, ihr höchstes Bildungsniveau, ob sie an eine Spitze gingen Stufe-Schule und ob sie ein Praktikum gemacht haben. Und schließlich, hier sind die Antworten, bei denen wir wussten, dass wir entweder ein Jobangebot an diese Person erweitert haben oder nicht . Okay, so wie üblich, besteht die
meiste Arbeit nur darin, Ihre Daten zu massieren, Ihre Daten
vorzubereiten, bevor Sie tatsächlich die Algorithmen darauf ausführen. Und das ist es, was wir hier tun müssen. psychische Lernen erfordert alles, um neu zu sein. Ein Wunder. Also können wir nicht klug und Enden haben und B s und M s ist. Und Doktortitel Wir müssen all diese Dinge in Zahlen für das Entscheidungsbaum-Modell
umwandeln . Die Art und Weise, dies zu tun, ist die Verwendung von etwas Shorthanded Panda Dies macht diese Dinge einfach . Grundsätzlich mache
ich es Wörterbuch und Python, die den Buchstaben y der Nummer eins und das
Buchstabenende auf den Wert Null abbilden. Also will ich alle meine Frauen zu bekehren Zehe Einsen und Enden 20 Also warum wird bedeuten, dass man gemein sein wird? Ja, und Null bedeutet nein. Und was ich tun kann, ist, einfach den eingestellten Anruf und aus dem Datenrahmen zu nehmen, diese Syntax hier zu
verwenden und Karte mit einem Wörterbuch aufzurufen. Und was das tun wird, ist die gesamte eingestellte Spalte im gesamten Datenrahmen zu durchlaufen und dieses Wörterbuch zu
verwenden. Suchen Sie nach oben, um alle Einträge in dieser Spalte zu transformieren, und es gibt eine neue Datenrahmenspalte zurück, die ich in den höheren Aufruf zurücksetze. Dies ersetzt also im Grunde die höhere Spalte durch eine, die auf Einsen und Nullen abgebildet wurde . Okay, und das tue ich auch für Angestellte. Sprechen Sie mit Ihrer Schule und Praktikanten, so dass alle mit dem Ja Nein Wörterbuch abgebildet werden, so dass die Weisen und Enden stattdessen Einsen und Nullen werden. Für das Bildungsniveau, Ich habe den gleichen Trick, den ich erstellt Wörterbuch, das Zeichen Bs 20 m esto one und PhD zu und verwendet, um diese Gradnamen auf tatsächliche numerische Werte neu zuordnen. Wenn ich also voran gehe und das mache und wieder voran mache, kannst
du sehen, dass es funktioniert hat, alle meine Ja sind Einsen, meine Nase oder Nullen, und mein Bildungsniveau wird jetzt durch einen numerischen Wert repräsentiert, der echte Bedeutung hat. Also, jetzt müssen wir nur alles vorbereiten, um tatsächlich in unseren Entscheidungsbaum-Klassifikator zu gehen , was nicht so schwer ist, das zu tun. Wir müssen unsere Feature-Informationen trennen, d. h. die Attribute, die vorherzusagen versuchten, und unsere Ziel-Spalte. Was enthält also die Sache, die wir vorhersagen wollen? Also, um die Liste der Feature-Namen Spalten zu extrahieren waren gerade dabei zu sagen, Erstellen Sie eine Liste von Spalten bis zu Nummer sechs. Also die 1. 6 Spalten und wir gehen voran und drucken das aus. Und das sind die Spaltennamen, die unsere Feature-Informationen Jahre Erfahrung
beschäftigt enthalten , frühere Mitarbeiter Niveau Ausbildung gekrönt Ihre Schule und im Gegenzug, diese Luft die Attribute der Kandidaten, die wir vorhersagen wollen Einstellung auf und wir als nächstes konstruieren R y Vektor hier ist zu dem, was wir versuchen, vorherzusagen zugeordnet. Das ist also unsere angeheuerte Kolumne. Dies extrahiert also die gesamte eingestellte Spalte und nennt sie warum, und dann werden alle Spalten für die Feature-Daten benötigt und sie in etwas
namens X eingefügt . Dies ist
also eine Sammlung aller Daten und aller Feature-Spalten. Und das sind die beiden Dinge, die Entscheidungsbaum-Klassifikator benötigt werden. So erstellt es tatsächlich den Klassifikator selbst. Zwei Codezeilen behandeln wir den Entscheidungsbaum-Klassifikator, um unseren Klassifikator zu erstellen. Und dann passen wir es an unsere Feature-Daten an, und die Antwort ist, ob Menschen eingestellt wurden oder nicht. Gehen wir also voran und führen Sie das ziemlich schnell aus, um es anzuzeigen. Ich will nicht zu viel Detail bekommen. Was ist hier los? Grundsätzlich ist die
Anzeige grafischer Daten ein wenig schwierig. Betrachten Sie einfach diesen Standardcode, wie Sie dies tun. Sie müssen verstehen, wie Graph in Punktdateien auf all dem Zeug funktioniert, aber es ist nicht wichtig. Grundsätzlich ist
dies die Cody-Notwendigkeit, tatsächlich das Endergebnis eines Entscheidungsbaums anzuzeigen. Also lasst uns weitermachen und das laufen. Und da haben wir es. Wie cool ist das? Wir haben hier ein tatsächliches Flussdiagramm. Jetzt lassen Sie mich Ihnen zeigen, wie Sie es lesen, damit es Bühne isst. Wir haben eine Entscheidung. Denken Sie daran, die meisten unserer Daten sind ja. Nein, es wird Null oder eins sein. Der Entscheidungspunkt hier ist weniger als 10.0.5 beschäftigt,
was bedeutet, dass, wenn wir einen Beschäftigungswert von null Nein haben, wir gehen nach links. Beschäftigung ist eins. Ja, wir gehen. Richtig. Also, wo sie zuvor angestellt, wenn nicht, gehen Sie links? Wenn ja, geh. Richtig. Und es stellt sich heraus, dass in meinen Beispieldaten
jeder, der derzeit beschäftigt ist, tatsächlich ein Jobangebot bekommen hat. Also kann ich sehr schnell sagen, wenn Sie gerade angestellt sind,
ja, ja, Sie sind es wert, mitzubringen. Wir werden es hier bis auf diese Ebene verfolgen. Wie interpretieren Sie das? Die Gini-Score ist im Grunde ein Maß für Entropie, dass sie sie jeden Schritt verwendet. Denken Sie daran, während wir nach unten gehen, versucht
der Algorithmus, die Menge an Entropie zu minimieren und die Samples lüften die verbleibende Anzahl von Samples, die nicht im Grunde von einem vorherigen abgeschnitten wurden Entscheidung. Weg, um die letzten Blattnotizen hier zu lesen. Diese Wertspalte. Das sagt Ihnen an dieser Stelle, wir haben keine Kandidaten, die keine Angestellten waren und fünf, die Mitarbeiter
waren. Der Weg, dies zu interpretieren, ist, wenn beschäftigt war eins. Ich gehe nach rechts,
was bedeutet, dass sie derzeit angestellt sind. Und das bringt mich in eine Welt, in der jeder ein Jobangebot bekommen hat. Das heißt, ich sollte diese Person einstellen. Okay, sagen
wir, dass wir diese Person derzeit keinen Job haben. Das nächste, was wir uns ansehen werden, ist, dass sie ein Praktikum haben? Wenn ja, dann sind wir an einem Punkt, wo ein Künstler Ausbildung Daten, jeder bekam ein Jobangebot. An diesem Punkt können
wir sagen, dass unsere Entropie jetzt Null ist, weil alle verrückt sind und sie alle ein Angebot bekommen haben . jedoch Wenn wirjedochweiter unten gehen, sind
wir an einem Punkt hier, wo die Entropie 0,0,32 immer niedriger wird. Das ist gut. Als nächstes werden wir uns ansehen, wie viel Erfahrung sie haben, sie haben weniger als ein Jahr Erfahrung. Und wenn der Fall ist, dass sie etwas Erfahrung haben und sie so weit dort
ziemlich gut gekommen sind, keine höhere Entscheidung. Also landen wir an diesem Punkt, wo wir Null Entropie haben. Aber alle drei verbleibenden Proben in unserem Trainingsset waren keine Mitarbeiter. Okay, wir haben drei keine Angestellten und Nullstellen, aber wenn sie weniger Erfahrung haben als dort, wahrscheinlich frisch aus dem College, könnten
sie es immer noch wert sein, sich anzuschauen. Das letzte, was wir uns ansehen werden, ist, ob sie in eine hochstufige Schule gegangen sind oder nicht, und wenn ja, sind sie am Ende eine gute Vorhersage, um eine höhere zu sein. Und wenn nicht, sind sie am Ende ein nicht höher, weil wir am Ende mit einem Kandidaten, der in diese
Kategorie fiel , die ein nicht höher und Null war, die höher waren. Während in diesem Fall haben wir Null keine Anmietungen und eine höhere, so können Sie sehen, dass wir einfach weiter gehen, bis wir einen Eintrag von Null erreichen, wenn überhaupt möglich für jeden Fall. Nehmen wir an, wir wollen einen zufälligen Wald verwenden. Wissen Sie, wir sind besorgt, dass wir unsere Trainingsdaten vielleicht nicht mehr passen. Es ist eigentlich sehr einfach, einen zufälligen Gesamtstrukturklassifikator mehrerer Entscheidungsbäume zu erstellen. Um dies zu tun, können
wir die gleichen Daten, die wir zuvor erstellt haben, wieder verwenden. Sie brauchen nur Ihren X- und Y-Vektor, die Reihe von Funktionen und den Anruf ihn, den Sie vorherzusagen versuchen, und wir werden nur einen zufälligen Wald Klassifikator auch von psychischen lernen zur Verfügung zu stellen und alles, was Sie brauchen, um es zu übergeben, ist, wie viele Bäume wollen Sie in Ihrem Wald? Also lasst uns 10 Bäume in unserem zufälligen Wald machen. Wir können das dann an das Modell anpassen, und Sie müssen nicht von Hand durch die Bäume gehen. Und wenn man es mit einem zufälligen Wald zu tun hat, kann
man das sowieso nicht tun. Stattdessen werden
wir die Vorhersagefunktion auf dem Modell auf dem Klassifikator verwenden, den wir erstellt haben. Wir werden eine Liste mit all den verschiedenen Funktionen für einen bestimmten Kandidaten übergeben, für die wir eine Beschäftigung vorhersagen
wollen . Also, wenn Sie sich daran erinnern, Karten zu diesen Spalten. Jahreserfahrung beschäftigt frühere Arbeitgeber, Bildungsniveau, oben auf Ihre Schule und interniert als numerische Werte interpretiert. Also wollen wir die Beschäftigung von arbeitslosen 10 Jahr Veteran vorhersagen. Wir können das tun, oder wir wollen die Beschäftigung eines arbeitslosen 10-jährigen Veteranen vorhersagen. Wir könnten das tun, und sicher genug bekommen wir ein Ergebnis. In diesem speziellen Fall
haben wir also eine höhere Entscheidung für beide gefunden. Aber was interessant ist, ist, dass es eine zufällige Komponente gibt, so dass Sie nicht jedes Mal das gleiche Ergebnis erhalten. Meistens bekommt
der Arbeitslose kein Stellenangebot,
und wenn Sie das weiter ausführen, werden
Sie sehen, dass dies normalerweise der Fall ist. Aber die zufällige Natur des Bootstrap-Aggregats, die er einer dieser Bäume ist, bedeutet, dass Sie nicht jedes Mal das gleiche Ergebnis bekommen. Vielleicht sind 10 nicht genug Bäume. Also jedenfalls, gute Lektion, um dort für eine Aktivität zu lernen. Wenn Sie zurückgehen und mit diesem Mesereau spielen Eingabedaten wollen. Gehen Sie weiter und bearbeiten Sie die CSB-Datei, von der wir gestartet haben, und erstellen Sie ein alternatives Universum, in dem es topsy turvy Welt ist. Jeder, dem ich jetzt ein Jobangebot gegeben habe, bekommt kein und umgekehrt. Sehen Sie, was das tut, um Ihre Entscheidung Tree abgewiesen herum und sehen Sie, was Sie tun können, und versuchen die Ergebnisse
zu interpretieren. Also viel Spaß damit. Das ist interessantes Zeug. Ich denke, das ist wirklich cool, also ist das Entscheidungsbäume und zufällige Wälder. Das sind also Entscheidungsbäume, einer der interessanteren Bits des maschinellen Lernens. Meinung nach denke
ich immer, dass es ziemlich cool ist, einfach so ein Flussdiagramm aus dünner Luft zu erzeugen, also hoffentlich wirst du das nützlich finden. Lasst uns weitermachen
39. Ensemble: Wenn wir also über zufällige Wälder sprachen, war
das ein Beispiel für Ensemble-Lernen, wo wir tatsächlich kombinieren und mehrere Modelle zusammen, um ein besseres Ergebnis als jedes einzelne Modell kommen könnte. Lassen Sie uns also etwas mehr Tiefe darüber lernen. Lassen Sie uns über das Ensemble sprechen, das ein bisschen mehr lernt. Wir haben das schon ein bisschen abgedeckt, aber es gibt mehr als einen Weg, es zu tun, also möchte ich es nur abdecken. Einige der grundlegenden Techniken, die für das Ensemble Lernen existieren, ist es eine Art wichtiges Thema, aber es wird ein kurzer Vortrag sein, weil die Ideen ziemlich einfach sind. Also erinnere dich an zufällig für uns. Wir hatten,
ah, ah, Reihe von Entscheidungsbäumen, die verschiedene Sub-Samples der Eingabedaten und
verschiedene Sätze von Attributen verwendeten , auf die es verzweigen würde. Und sie haben alle über das Endergebnis abgestimmt, als Sie am
Ende etwas klassifizieren wollten . Das ist also ein Beispiel für Ensemble-Lernen. Ein weiteres Beispiel, als wir über K sprechen bedeutet Clustering, hatten
wir die Idee, vielleicht verschiedene K-Mittelmodelle mit unterschiedlichen anfänglichen zufälligen
Centrowitz zu verwenden und sie alle über das Endergebnis abstimmen zu lassen, auch ein Beispiel für Ensemble-Lernen. Grundsätzlich ist
die Idee, dass Sie mehr als ein Modell haben, und es könnte die gleiche Art von Modell sein. Es mag verschiedene Arten von Modellen sein, aber Sie führen sie alle auf Ihrer Seite der Trainingsdaten aus, und sie alle stimmen über das Endergebnis ab, was auch immer Sie vorhersagen wollen. Und oft werden Sie feststellen, dass dieses Ensemble aus verschiedenen Modellen bessere Ergebnisse liefert als jedes einzelne Modell allein könnte. Ein gutes Beispiel von vor einigen Jahren war der Netflix-Preis. Netflix hat also einen Wettbewerb durchgeführt, wo sie angeboten haben. Ich denke, es waren $1.000.000 für jeden Forscher, der ihren bestehenden
Filmempfehlungsalgorithmus übertreffen konnte und diejenigen, die man Ensemble-Ansätze waren, wo sie tatsächlich mehrere liefen. Empfehlen Sie ihre Algorithmen auf einmal und lassen Sie sie alle über das Endergebnis abstimmen. So kann das Ensemble-Lernen ein sehr leistungsfähiges, aber einfaches Werkzeug sein, um die Qualität Ihrer
Endergebnisse und maschinelles Lernen zu erhöhen . Nun verwendeten
zufällige Wälder wieder eine Technik namens Bagging, die kurz für Bootstrap-Aggregierung ist, was ein weiterer schicker Begriff für ein einfaches Konzept ist. Alles was bedeutet, ist, dass wir zufällige Teilproben unserer Trainingsdaten genommen und in
verschiedene Versionen desselben Modells eingespeist haben und sie alle über das Endergebnis abstimmen lassen. Also, wenn Sie sich erinnern, Random Forest nahm viele verschiedene Entscheidungsbäume, die eine andere zufällige Stichprobe der
Trainingsdaten verwenden , um weiterzubilden, und dann kamen sie alle zusammen am Ende der Abstimmung über das Endergebnis. Okay, also das ist Absackung. Boosting ist eine alternative Mall, und die Idee dort ist, dass Sie das Modell starten. Jedes nachfolgende Modell erhöht jedoch die Attribute, die die Bereiche adressieren, die vom vorherigen Modell
falsch klassifiziert wurden . Also machen Sie einen Laufbahntest an einem Modell, er findet heraus, was sind die Attribute, dass es im Grunde falsch geht? Und dann steigern Sie diese Attribute und nachfolgenden Modelle in der Hoffnung, dass diese nachfolgenden Einkaufszentren ihnen mehr Aufmerksamkeit schenken und sie richtig machen. Das ist also die allgemeine Idee hinter dem Boosting. Wissen Sie, Sie führen ein Modell aus, finden seine Schwachstellen heraus, verstärken den Fokus auf diese Schwachstellen, während Sie gehen und bauen immer mehr Modelle, die dieses Modell basierend auf den Schwächen der vorherigen Technik. Und das ist eine Art von dem, was der Netflix-Preisträger tat, wurde ein Eimer von Modellen genannt, wo Sie vielleicht völlig andere Modelle haben, die versuchen, etwas vorherzusagen. Vielleicht verwende ich K Mittel und einen Entscheidungsbaum und Regression. Ich kann alle drei dieser Modelle zusammen auf einer Reihe von Trainingsdaten ausführen und sie alle
über das endgültige Klassifikationsergebnis abstimmen lassen , wenn ich versuche, etwas vorherzusagen. Und vielleicht wäre das besser, als eines dieser Modelle isoliert zu lockern. Okay, stapeln, dieselbe Idee. Sie wissen also, Sie führen mehrere Modelle auf den Daten zusammen die Ergebnisse irgendwie zusammen. So kennen Sie den subtilen Unterschied dort, zwischen Eimer von Modellen und Stapeleimer von Modellen, wählen
Sie im Grunde das Modell, das gewinnt,
so dass Sie trainierten Test durchführen würden. Finden Sie das Modell, das am besten für Ihre Daten geeignet ist, und verwenden Sie dieses Modell? Wo Stapeln wird kombinieren die Ergebnisse aller dieser Modelle zusammen, um zu einem
endgültigen Ergebnis zu gelangen . Jetzt gibt es ein ganzes Forschungsfeld zum Ensemble-Lernen, das versucht, die optimalen
Wege des Ensemble-Lernens zu finden . Und wenn Sie klingen klug finden wollen. Normalerweise beinhaltet das die Verwendung der Wortkästen viel, die Sie auf der Folie sehen werden. Es gibt also einige sehr fortgeschrittene Methoden des Ensemble-Lernens. Aber alle von ihnen haben Schwachstellen. Und ich denke, dies ist eine weitere Lektion darin, dass Sie immer die einfachste Technik verwenden sollten , die gut für Sie funktioniert. Das sind also alle sehr komplizierte Techniken, so dass ich nicht wirklich in den Rahmen dieses Kurses einsteigen kann. Aber am Ende des Tages ist
es schwer, nur einfache Techniken zu übertreffen, über die wir bereits gesprochen haben. In der Theorie
gibt es also etwas namens „Bays Optimal Classifier“, das immer der beste sein wird. Aber es ist unpraktisch. Du weißt, dass es rechnerisch unerschwinglich ist, es zu tun. Leute haben versucht, Variationen der Basis Herbst einen Klassifikator zu tun, um es
praktischer zu machen , wie Peking Parameter Werbung Mittelung. Aber es ist immer noch mehrere über passend, und es wird oft von der Unterstützung übertroffen, was die gleiche Idee hinter dem Zufallsprinzip ist. Für uns, Sie nur wieder Probe die Daten mehrmals wir auf verschiedenen Modellen sind und lassen Sie sie alle über das Endergebnis abstimmen. Es stellt sich heraus, dass das genauso gut funktioniert, und es ist viel einfacher. Schließlich gibt es etwas namens Gänseblümchen und Modellkombination, die versucht, alle
Mängel der Bienen,
optimalen Klassifikator und beschäftigt und Parametermittelmittelung zu lösen Mängel der Bienen, . Aber am Ende des Tages, es ist nicht viel besser, als nur Kreuz-Validierung gegen eine Kombination von Modellen gegen, wissen
Sie, Stapeln im Grunde. Also, wissen
Sie, sind sehr komplexe Techniken, die in der Praxis sehr schwierig zu verwenden sind. Du bist besser dran mit den einfacheren, über die wir ausführlicher gesprochen haben. Aber Sie wollen klug klingen und verwenden das Wort Tage viel. Es ist gut, mit diesen Techniken vertraut zu sein, zumindest zu wissen, was sie sind. Das ist also das Ensemble wieder lernen. Die Take away ist, dass die einfachen Techniken wie Bootstrap, Aggregieren oder Absacken oder Boosting oder Stapeln oder Eimer von Modellen, oder in der Regel, die richtige Wahl. Es gibt einige viel schickere Techniken da draußen, aber sie sind weitgehend theoretisch, aber zumindest wissen Sie jetzt sowieso. Ensemble Lernen immer eine gute Idee, um auszuprobieren, wissen
Sie, es ist immer wieder bewiesen, dass es bessere Ergebnisse als jedes einzelne
Modell zu produzieren , also auf jeden Fall betrachten. Auch wenn es mehr Arbeit ist, erhalten
Sie bessere Ergebnisse als Ergebnis der Verwendung von Ensemble Learning
40. [Aktivität] XGBoost: Also, jetzt, da wir über Boosting gesprochen haben und wir über Entscheidungsbäume in diesem Kurs gesprochen haben. Lassen Sie uns diese Konzepte zusammenfassen und über XGBoost sprechen, das wohl die mächtigsten Algorithmen für maschinelles Lernen ist, die es heute gibt. So sehr wichtiges Kapitel hier, XGBoost steht für extreme Gradienten gesteigert Bäume. Denken Sie daran, Boosting ist eine Ensemblemethode. Die Idee ist, dass wir ein Modell nehmen und wir mehrere Versionen dieses Modells miteinander verkettet haben. Was also passiert, ist, dass jeder Baum in unserem Boosting-Schema hier die Attribute erhöhen
wird, die zu Fehlklassifizierungen aus dem vorherigen Baum führen. Also im Grunde haben wir mehrere Bäume, die nur
übereinander aufbauen , um die Fehler des vorherigen Baumes davor zu korrigieren. Und es stellt sich heraus, dass diese ziemlich einfache Idee wirklich, wirklich erstaunlich ist. Xgboost gewinnt routinemäßig Kaggle Wettbewerbe. Es ist sehr einfach zu bedienen. Es ist sehr rechnerisch effizient. Es macht also eine wirklich gute Wahl für einen Algorithmus, um von welchem Problem auch immer Ihr Problem zu starten, egal ob es sich um Klassifizierung oder Regression handelt, es gibt eine wirklich gute Chance, dass XgBoost sich als der beste Algorithmus erweisen wird , um tatsächlich zu versuchen, ein Modell für Ihre Daten
zu erstellen und genaue Vorhersagen basierend auf diesem Modell zu machen. Und es ist wirklich einfach zu bedienen. Ich meine, es ist, es ist fast beunruhigend, wie einfach es unter
der Haube ist , hat viele wirklich coole Funktionen, die es so gut machen. Leichtigkeit ist etwas, das als regularisierte Boosting bezeichnet wird. Das unterscheidet sich also von anderen gesteigerten Baummethoden da draußen. Regularisierung ist etwas, das eine Überanpassung verhindert. Es stellt also sicher, dass das Modell, das wir am Ende haben, verallgemeinert ist und es nicht
wirklich übermäßig an die Datenmenge angepasst ist , auf die Sie es trainiert haben. Wir werden später im Kurs ausführlicher über die Regularisierung sprechen. Aber unter der Haube verwendet es L1 und L2 Regularisierung, über
die wir später wieder sprechen werden. Ein weiteres wirklich cooles Feature ist, dass XgBoost fehlende Werte automatisch verarbeiten kann. Es wird also automatisch
den besten Weg finden , um die fehlenden Werte in Ihren Daten zu behandeln. Du musst nicht zu viel darüber nachdenken. Das ist eine wirklich coole Funktion, weil, wissen Sie, Umgang mit fehlenden Werten und die Zurechnung dieser fehlenden Werte ein großer Teil Ihres Jobs als Data Scientist sein kann. Aber XGBoost macht es irgendwie möglich. Es kann auch parallel ausgeführt werden. Das ist also der Schlüssel zu seiner Effizienz. Es kann tatsächlich alle Kerne auf Ihrer CPU nutzen oder sogar einen Cluster von Computern nutzen. Es kann parallel über mehrere Threads ausgeführt werden. Und das bedeutet auch, dass Sie es für Big Data verwenden können, für große Datasets werde ich nicht unbedingt auf eine Maschine passen. So ist XGBoost nicht nur wirklich leistungsfähige und genaue Algorithmus für kleine Datensätze. Es skaliert auch gut. Also, was soll man nicht daran lieben, richtig? Eine weitere nette Funktion ist, dass Sie bei jeder Iteration Kreuzvalidierung durchführen können. Wir haben noch nicht zu viel über Kreuzvalidierung gesprochen. Aber die Idee ist, dass Sie die Leistung
dieses Algorithmus von XGBoost bei jedem Schritt seines Trainings bewerten können . Und das ermöglicht es Ihnen, Dinge zu tun, wie sagen ,
Nun, ich sehe nicht wirklich viel mehr Nutzen aus weiteren Iterationen. Also werde ich voran gehen und diese Iteration früh stoppen. Oder ich kann tatsächlich die optimale Anzahl von Iterationen finden, während ich sie trainiere. So wie ich die Genauigkeit meines Modells überwachen kann, während es iteriert und herausfinden kann, wann ich es stoppen und diesen optimalen Punkt ziemlich leicht finden sollte. Es unterstützt auch inkrementelles Training. Was ich damit meine, ist, dass Sie tatsächlich das Training
eines XGBoost-Modells stoppen und es dann speichern und zurückkommen und es später wieder aufnehmen können. So. Wenn Sie die Schulung tatsächlich über
einen bestimmten Zeitraum oder über mehrere Stapelaufträge aufteilen möchten. Das ist auch eine Möglichkeit mit XGBoost. Außerdem ermöglicht es Ihnen, Ihre eigenen Optimierungsziele anzuschließen. Dies macht es sehr flexibel in der Natur. Was auch immer das Problem Sie haben, wenn Sie es in Bezug auf etwas beschreiben können, das Sie optimieren möchten, können
Sie wahrscheinlich XgBoost dazu bringen, daran zu arbeiten. Und schließlich verwendet eine Funktion namens Baumschnitt. Im Gegensatz zu normalen Entscheidungsbäumen, bei denen es einfach aufhört zu verzweigen,
sobald es aufhört zu singen , nimmt es hier einen anderen Ansatz ein, wird standardmäßig sehr tief gehen und dann versuchen, diesen Baum
rückwärts zu beschneiden , so dass führt in der Regel zu tieferen Bäumen, aber stärker optimierten Bäumen. Und das ist Teil des Erfolgs. Verwendung von XGBoost ist lächerlich einfach zu installieren. Es geben Sie einfach pip install xgBoost von Ihrem Anaconda Prompt. Und sobald es installiert ist, können Sie es einfach verwenden. Es bietet auch Schnittstellen auf der Befehlszeilenschnittstelle für C plus plus, was es nativ geschrieben ist, auch für die R-Sprache Julia, und es hat eine JVM-Schnittstelle. So können Sie XGBoost sehr effizient in Programmen wie Java oder Scala und Spark mit Scala zum Beispiel verwenden. Es ist also nicht nur für Scikit-learn- und Python Notebooks gemacht. Es ist allgemeiner als das. Und als solches hat es eine eigene Schnittstelle. Es ist also nicht wirklich speziell für scikit-learn gemacht. Die Dinge sind also ein bisschen anders, wenn Sie
XGBoost in scikit-learn es in einem Notebook verwenden . Der Hauptunterschied besteht darin, dass es eine
D-Matrix-Datenstruktur verwendet , um das Feature und die beschrifteten Daten zu halten. Aber die Verwendung ist sehr einfach und ist eine sehr einfache
Möglichkeit , eine dieser d-Matrixstrukturen aus einem NumPy-Array zu erstellen. In der Praxis ist es keine große Sache. Und Sie werden alle Parameter für XGBoost
als riesiges Wörterbuch übergeben und wir werden in einer Sekunde darüber sprechen. Sobald Sie das getan haben, alles, was Sie tun müssen, was heißt Zug auf dem Modell und dann rufen Sie Vorhersage auf dem trainierten Modell, um Vorhersagen daraus zu machen. Es ist wirklich, wirklich einfach. Der schwierige Teil ist, ist Tuning all diese Hyperparameter von XGBoost. Es gibt also eine Reihe von Knöpfen und Zifferblättern und XGBoost. Und um die besten Ergebnisse zu erzielen, müssen Sie die richtigen Einstellungen auswählen. Und oft geschieht das nur durch Experimentieren. Irgendwas wird ziemlich unkompliziert sein. Zum Beispiel können Sie Ihren Booster wählen, Ihre Prioritäten. Ein Baum für Klassifizierungsprobleme ist linear für Regressionsprobleme. Und Sie müssen auch Ihre Art der objektiven Funktion wählen. Zum Beispiel könnte ich softmax wählen, wenn ich nur eine
von vielen Klassifikationen auswählen und die beste Klassifizierung für jede bestimmte Sache auswählen möchte. Oder ich könnte sagen, ich möchte Multi Soft Prob, das mir tatsächliche Wahrscheinlichkeiten für jede Klassifizierung
gibt. Das könnte mir möglicherweise erlauben, eine Liste wahrscheinlicher Klassifikationen zu erhalten, mehr als eine für jede Sache, die ich vorherzusagen versuche. Darüber hinaus muss der Rest durch Experimente gelernt werden. Also eta ist wahrscheinlich der primäre Parameter, der größte Knopf, den Sie in XGBoost haben, wenn Sie so wollen. Sie können sich das als Lernraten vorstellen. So wird es die Gewichte auf jedem Schritt des Trainings anpassen. Und der Standardwert davon wird 0.3 sein. Und oft werden Sie feststellen, dass in der Praxis, ein wenig auf,
auf oder sogar tiefer senken, oft bessere Ergebnisse erzielen. Also, das ist die Hauptsache, mit der du anfangen willst zu basteln. Sobald Sie versuchen, die Leistung Ihres XGBoost-Modells zu optimieren. Einige andere wichtige Parameter oder eine maximale Tiefe, die die maximale Tiefe des Baumes sein wird. Und natürlich, wenn das zu klein ist, werden
Sie nicht in der Lage sein, ein sehr genaues Modell zu erstellen, aber wenn es zu groß ist, können Sie am Ende zu passen. So Tuning, das eine sehr wichtige Sache sein kann, um zu versuchen, richtig zu werden. Es gibt auch einen namens Min Kindergewicht. Dies kann auch verwendet werden, um die Überanpassung zu steuern
und sicherzustellen, dass Ihr Modell nicht zu spezifisch für die Daten ist, für die Sie es trainiert haben. Aber wenn du es zu hoch stellst, wirst du unter Fitting enden. Also müssen Sie auch das richtige Gleichgewicht bekommen. Es gibt eine große Anzahl von anderen Parametern und XGBoost als auch. Aber das sind die wichtigsten, mit denen Sie experimentieren möchten. Und wieder, manchmal müssen Sie nur experimentieren, um herauszufinden, welche Kombination von Werten am besten funktioniert. In einem Python Notizbuch können
Sie Tools wie GridSearchCV verwenden, um automatisch
verschiedene Werte für diese Parameteranzuordnen
und verschiedene Werte für diese Parameter automatisch herauszufinden, welcher der richtige ist. Oder wenn Sie ein größeres System wie AWS, SageMaker verwenden, wird
es Dinge wie automatische Hyperparameter-Tuning-Jobs haben, die Sie einstellen
können, um zu versuchen, genau die richtige Kombination von Parametern hier zu finden. So Tuning diese nur Fahrer Schlüssel, um die beste Leistung aus XGBoost zu bekommen. Aber wie Sie sehen werden, müssen Sie nicht wirklich zu hart denken, um gute Ergebnisse daraus zu erzielen. Denken Sie daran, XGBoost ist fast alles,
was Sie für maschinelles Lernen in diesen Tagen in praktischer Hinsicht wissen müssen. Für einfache Klassifizierung oder Regressionsprobleme, Chancen sind Sie gehen, um die besten Ergebnisse von XGBoost zu erhalten und seine wirklich einfach zu verwenden. Also lassen Sie es uns tatsächlich in Aktion sehen. Wir werden es auf die Iris-Datenmenge werfen. Dies ist ein gängiger Datensatz, der für Bildungszwecke verwendet wird. Es ist nur ein Datensatz von einem Blumenstrauß und sie messen die Länge und Breite der Blütenblätter und der Kelchblätter. Die Kelchblätter sind nur eine bestimmte Art von Pedal. Ich glaube, es ist der auf der Unterseite der Iris Blume. Und basierend auf diesen Messungen der Blütenblätter versuchen
wir nicht vorherzusagen, zu welcher Unterart des Virus die Blume tatsächlich gehört. Und wie wir sehen werden, ist XGBoost extrem gut darin. Also lasst uns eintauchen und ihm einen Schuss geben. Also lasst uns mit XGBoost spielen. Wir werden damit beginnen, unsere Anaconda Aufforderung ist immer so. Ich gehe hier zu meinem Startmenü und gehe zur Anaconda Prompt oder auf Mac oder Linux, bringe das Terminal auf. Das erste, was wir tun müssen, ist CD in den Ort, wo unsere Kursmaterialien gespeichert sind. Für mich wird das CDC Doppelpunkt Backslash ML natürlich sein. Und bevor wir das Jupyter Notebook auslösen, müssen
wir zuerst XGBoost selbst installieren. Also habe ich das schon getan, aber Sie haben wahrscheinlich nicht. Also gehen Sie weiter und geben Sie pip installieren xgBoost ein, um sich darum zu kümmern. Für mich wird es nichts tun, weil ich es bereits installiert habe. Aber für Sie sollte es gehen und die neueste Version von XGBoost
herunterladen und installieren. Sobald das erledigt ist, können wir Jupiter Notizbuch, Jupiter mit y eingeben. Sobald wir hier drin sind, gehen Sie weiter und finden Sie den XGBoost, kein Buch und öffnen Sie das. Und lasst uns anfangen. Also wieder, die Verwendung von XGBoost ist wirklich einfach. Es gibt hier nicht viel zu sehen, weil es nicht viel zu tun gibt. Es ist wirklich einfach zu bedienen und es funktioniert einfach. Also waren wir bereits installiert, aber als Erinnerung, so würden Sie es installieren, wenn Sie es nicht bereits getan haben. Und wieder werden wir mit dem Iris-Dataset experimentieren. Die Idee davon ist, dass wir einen Datensatz von
Blumen haben , wo wir Messungen sowohl der Blütenblätter als auch Kelchblätter haben, die nur eine besondere Art von Blütenblatt, die Länge und Breite von jedem. Also für jede Blume werden wir vier Messungen für Attribute oder Merkmale haben, wenn Sie so wollen, die Länge und Breite der Blütenblätter und die Länge und Breite der Kelchblätter. Und was wir tun müssen, ist vorherzusagen, welche Unterart der Blume sie auf diesen Messungen basiert. Und dann stellt sich heraus, dass es drei Unterarten von Iris Blumen gibt, setosa, versicolor und virginica. Lasst uns voran gehen und die Daten hochladen. Glücklicherweise ist das bereits in scikit-learn integriert. Also mussten wir nur sagen, Load Unterstrich Iris, um das zu laden. Und wir können hier die Parameter und Merkmale dieser Daten untersuchen. Also werden wir data.dat Form tun, um herauszufinden, was genau darin ist, zu versuchen zu verstehen, was da drin ist. Gehen Sie weiter und drücken Sie Shift Enter dort, um das tatsächlich auszuführen. Und wir können sehen, dass dies aus 150 Samples besteht, also gibt es hier nur 150 Blumen in unserem Datensatz. Jede Blume hat vier Merkmale, die Länge und Breite des Blütenblattes, und dann verbinden Sie sie mit dem Kelchblatt. Und ein möglicher Zielnamen. Die tatsächlichen Kategorien, die wir versuchen,
die Etiketten vorherzusagen , sind setosa, versicolor und virginica. Beginnen wir also, indem wir diese Daten
sowohl in das Trainings-Dataset als auch in ein Test-Dataset aufteilen . Die Idee hier ist, dass wir sicherstellen wollen, dass wir unser Modell nur auf Basis unserer Trainingsdaten trainieren. Und dann werden wir 20% unserer Daten beiseite legen, um das Modell tatsächlich auszuwerten. Also wollen wir sicherstellen, dass wir diese Testdaten
beiseite halten und das Datum nicht trainieren, so dass wir sagen können, Okay Modell, okay, XGBoost-Modell. Wie gut machst du es? Ich sage Unterarten für Blumen voraus, die du noch nie gesehen hast. Das stellt sicher, dass wir nicht trainieren. Die Antwort ist, dass wir nicht wie Betrug sind, wenn Sie gut, richtig, also die Idee ist, dass wir 20% unserer Daten für Testzwecke beiseite legen, das Modell und die restlichen 80 Prozent
trainieren und dann das Modell basierend auf diesen Daten auswerten , die zurückgehalten wurde. Also das ist, was Zugtest Split macht, ist nur zufällig die Daten aufzuteilen. Auf diese Weise übergeben wir die tatsächlichen Feature-Daten, die beschrifteten Daten. Und wir sagen, dass wir 20 Prozent der Daten für Tests reservieren wollen. Und wir können ihm einen bestimmten Zufallszustand geben, um sicherzustellen , dass wir jedes Mal die gleichen Ergebnisse erhalten, wenn wir dies ausführen. Das wird in eine Reihe von verschiedenen Arrays gehen hier, x ist im Grunde durch Konvention die Feature-Daten, in diesem Fall die Längen und Breiten der Blütenblätter und abgesetzten Kelchblätter. Und y durch Konvention bezieht sich auf die beschrifteten Daten. Das wird also sein, was Unterart es ist. Das bedeutet also, dass die Feature-Daten, die tatsächlichen Messungen der Blütenblätter in x Zug für
das Trainings-Dataset und X-Test für das Test-Dataset gehen . Und die Etiketten, die Antworten, wenn Sie so wollen, welche Unterart es ist, werden
wir in den Grund gehen, warum Unterstrich für
die Trainingsdaten trainieren und y Unterstrich-Test für die Testdaten. Gehen wir weiter und machen das, bevor ich es vergesse. Und jetzt können wir XGBoost selbst laden. Wie wir gesagt haben, ist XGBoost ein wenig schrullig und dass Sie
diese d-Matrix-Dinge verwenden müssen , anstatt nur geradlinige numpy Arrays zu verwenden. Aber wie Sie hier sehen können, ist es wirklich einfach, sie aus einem NumPy-Array zu erstellen. Wir werden also sagen, dass die gesamten Trainingsdaten
eine D-Matrix sein werden , die aus den Trainings-Feature-Daten,
den tatsächlichen Messungen und den beschrifteten Daten, der tatsächlichen Unterart besteht . Und wir tun dasselbe für die Testdaten. Also haben wir im Grunde alle Funktionen und
Labeldaten für Training und Test in diesen beiden d-Matrix-Objekten verkörpert . Gehen Sie weiter und drücken Sie die Umschalttaste, um das auszuführen. Als nächstes müssen wir unsere Hyperparameter-Werte definieren. Und wie wir gesagt haben, ist dies oft der schwierigste Teil der ganzen Sache zu versuchen, die richtigen Werte dieser Einstellungen zu finden, wenn Sie so wollen. Und so fangen wir einfach mit einer Vermutung an. Sagen wir also, wir werden mit einer maximalen Tiefe von vier Bäumen beginnen. Eta beginnt mit der Standardlernrate von 0,3. Und wieder, in der Regel möchten Sie etwas tiefer gehen, wenn überhaupt, unsere objektive Funktion wird Softmax sein. Softmax bedeutet nur, dass wir
die wahrscheinlichste Klassifizierung für jede Blume betrachten möchten . Im Gegensatz dazu könnten wir weiche Prompt verwenden, um
die tatsächlichen Wahrscheinlichkeiten zu erhalten , die mit jeder einzelnen Unterart verbunden sind. Aber ich bin nur an einer Antwort pro Blume interessiert, also möchte ich, dass es automatisch den besten Klassifizierungswert auswählt, und das ist es, was softmax tut. Es fixiert die Klassifizierung mit der maximalen Wahrscheinlichkeit. Und wir werden die Anzahl der Klassifizierungen angeben, die wir haben, in diesem Fall drei, weil es nur drei Unterarten zur Auswahl gibt. Ihr Ding, wir müssen hier im Einklang erraten ist die Anzahl der Epochen oder Iterationen, wenn Sie es nennen, was Sie wollen. Grundsätzlich, wie oft werden wir diesen Algorithmus tatsächlich ausführen? Also mit diesem Shift Enter und wir können dann unser Modell mit einer Zeile Code trainieren. Es ist einfach so einfach. Indem wir also XGBoost Dot Train sagen, übergeben
wir einfach diese Wörterbuch-Parameter, die tatsächlichen Trainingsdaten, das ist das d-Matrix-Objekt. Und wie viele Epochen wir es überfahren wollen. Gehen Sie weiter und drücken Sie die Umschalttaste Und Sie können sehen, dass es bereits erledigt ist. Wie gesagt, XGBoost ist wirklich, wirklich schnell. So können wir jetzt nur Vorhersagen basierend auf diesem Zugmodell machen. Also lassen Sie uns voran und rufen Sie Vorhersagen an, die Testdaten, die wir zurückgehalten haben, oder? Denken Sie daran, dass wir 20% unseres Datensatzes genommen haben und ihn beiseite legen, so dass das Modell ihn während des Trainings nie gesehen hat. Und jetzt werden wir bewerten, wie gut es die Blumen
vorhersagt, die es noch nie gesehen hat. Und wenn wir diese Vorhersagen ausdrucken, können
wir sehen, dass es die Kategorienummern
jeder einzelnen Blume in diesem Testdatensatz ausdruckt . Also vergaß ich, was diese eigentlich entsprechen. Ich denke, zwei bedeutet eine Virginica, zum Beispiel, oder? Dies sind also die tatsächlichen Unterspezies-Vorhersagen für jeden Datenpunkt in den Testdaten, die das Modell noch nie gesehen hat. Mal sehen, wie gut es tatsächlich gelungen ist. Also werde ich nur Genauigkeits-Unterstrich
aus dem scikit-learn-Metrik-Paket dort aufrufen , ich werde die tatsächlich bekannten korrekten Werte übergeben , die in Y und einem Punkte-Test sein werden, das sind
die richtigen Klassifikationen, die wir kennen und die vorhergesagten Werte. Und wir werden vergleichen, wie gut sie passen. Und sieh dir das an. Eigentlich ist es perfekt. Das sieht man nicht sehr oft. Ich meine, wir haben gerade die richtigen Hyperparameter für XGBoost erraten. Und selbst nur zu raten, wir haben perfekte Ergebnisse daraus. Ich meine, offensichtlich sind das außergewöhnlich, als
würdest du normalerweise keine 100-prozentige Genauigkeit bekommen,
aber wow, das ist eine erstaunliche Leistung hier. Jetzt ist normalerweise eine praktische Aktivität. Ich hätte Sie versucht, die Genauigkeit zu verbessern, indem Sie die Hyperparameter weiter aneinander setzen, aber Sie können sich bei 100 Prozent nicht verbessern. Stattdessen möchte ich, dass Sie versuchen, dieses Modell effizienter zu machen. Könnte tatsächlich mit weniger Epochen oder Iterationen davonkommen, könnte tatsächlich mit kleineren Bäumen davonkommen, indem der Parameter max depth abgesenkt wird. Versuchen Sie also, die Einfachheit dieses Modells und damit seine
Leistung zu optimieren und sehen Sie, wie einfach Sie es machen können, bevor Sie tatsächlich die Genauigkeit verlieren. Spielen Sie also damit herum und erhalten Sie ein Gefühl, wie sich diese Hyperparameter auf die tatsächliche Genauigkeit Ihrer Ergebnisse auswirken. Aber ja, das ist XGBoost Untätigkeit. Wie Sie sehen können, erzeugt es tolle Ergebnisse. Es ist nicht schwer zu benutzen. Es sollte Ihr Go-to-Algorithmus sein. Und viele Fälle.
41. Unterstützung von Vector (SVM) Übersicht: Schließlich werden
wir über Support-Vektormaschinen sprechen, die eine sehr fortschrittliche Möglichkeit ist, höherdimensionale Daten zu gruppieren oder zu klassifizieren. Was also, wenn Sie mehrere Funktionen haben, die Sie basierend auf SPM vorhersagen möchten, könnte ein
sehr leistungsfähiges Werkzeug dafür sein , und die Ergebnisse könnten beängstigend sein. Gut. Es ist sehr kompliziert unter der Haube, aber die wichtigen Dinge verstehen, wann man es benutzt und wie es auf einem hohen Niveau funktioniert. Lassen Sie uns das jetzt abdecken. Lassen Sie uns über Support-Vektormaschinen sprechen, und das ist ein schickes Wort für das, was eigentlich ein ausgefallenes Konzept ist, aber zum Glück ist
es ziemlich einfach zu bedienen. Das Wichtigste ist, zu wissen, was es tut und wofür es gut ist. So unterstützen Vektormaschinen. Es funktioniert gut, um höherdimensionale Daten zu klassifizieren, und damit meine ich viele verschiedene Funktionen. Also ist es einfach, etwas zu verwenden wie, Wissen
Sie, K bedeutet Clustering zu Clusterdaten, die zwei Dimensionen
haben, wissen Sie, vielleicht Alter auf einer Achse und Einkommen auf einer anderen. Was passiert, wenn ich viele, viele verschiedene Funktionen habe, die ich ausprobiere? Teoh Predict basiert darauf, dass wir Vektormaschinen unterstützen, könnte ein guter Weg sein, dies
mathematisch zu tun . Was es tun kann, ist diese höherdimensionalen Stützvektoren zu finden. Dort erhält er seinen Namen, die diese höherdimensionalen Ebenen definieren, die die Daten in verschiedene Cluster aufteilen. Und offensichtlich werden die Methoden ziemlich seltsam mit all dem ziemlich schnell. Glücklicherweise wird
das psychische Gelernte Paket alles für Sie tun, ohne tatsächlich in es
selbst unter der Haube bekommen zu müssen . Sie müssen
jedoch verstehen, dass es etwas benutzt, das den Colonel-Trick genannt wird, um diese Unterstützungsvektoren tatsächlich zu finden. Und es gibt verschiedene Kernel, die Sie verwenden können, um dies auf verschiedene Arten zu tun. Alles klingt sehr schick. Aber wieder, der Hauptpunkt ist, dass Sie SPM verwenden müssen, Zahra Gute Wahl. Wenn Sie Daten mit höherer Dimensionalität mit vielen verschiedenen Features haben und verschiedene Kernel vorhanden sind, können Sie verwenden, die unterschiedliche Rechenkosten haben und
möglicherweise besser für das Problem geeignet sind. Und auch möchte ich darauf hinweisen, dass dies eine überwachte Lerntechniken ist, also werden wir es tatsächlich auf einer Reihe von Trainingsdaten trainieren, und wir können das verwenden,
um Vorhersagen für
zukünftige unsichtbare Daten zu machen also werden wir es tatsächlich auf einer Reihe von Trainingsdaten trainieren,
und wir können das verwenden,
um Vorhersagen für
zukünftige unsichtbare Daten zu machenoder Testdaten. Es ist also ein bisschen anders als K bedeutet Clustering. Und das K bedeutet war völlig unbeaufsichtigt mit Unterstützung Vector Maschine. Es ist Training basierend auf tatsächlichen Trainingsdaten, wo Sie die Antwort auf die richtige Klassifizierung für einige Reihe von Daten, die es lernen kann, haben. Okay, also S PM ist nützlich für die Klassifizierung, wissen
Sie, Clustering, wenn Sie so wollen. Aber es ist beaufsichtigte Technik. Ok, bedenken Sie das. Ein Beispiel, das man oft sieht, war die Unterstützung. SPM verwendet so genannte Support-Vektorklassifizierungen, und im typischen Beispiel wird der irische Datensatz verwendet. Also einer dieser Stichprobendatensätze, die mit Psych kommt es lernen, heißt Irish Data Set, und was es ist eine Klassifizierung von verschiedenen Blumen, verschiedene Beobachtungen von verschiedenen Iris Blumen und ihre Arten. Und die Idee ist, diese mit Informationen über die Länge und Breite des Pedals
auf jeder Blume und die Länge und Breite des CEPAL jeder Blume zu klassifizieren . Und ein CEPAL ist offenbar eine kleine Stützstruktur unter dem Pedal. Das wusste ich bis jetzt
auch nicht, auch nicht, aber Sie haben vier Dimensionen von Attributen. Dort haben Sie die Länge und mit des Pedals und die Länge und die Breite eines CEPAL, und Sie können diese Zehe verwenden. Prognostizieren Sie die Art einer Iris, angesichts dieser Informationen. Hier ist ein Beispiel dafür, das mit SBC zu tun. Grundsätzlich haben
wir mehrere mit und geschmeidige Länge auf zwei Dimensionen projiziert, so dass wir es tatsächlich visualisieren können. Und mit verschiedenen Kernel erhalten
Sie möglicherweise unterschiedliche Ergebnisse. So produziert SBC mit einem linearen Kernel so etwas, es stellt sich heraus, und dann gibt es auch eine lineare SBC-Methode. Auch der lineare Kernel. Es erzeugt ein solches Ergebnis, und Sie können auch Polynomkerne oder schickere Kernel verwenden, die auf
Kurven in zwei Dimensionen projizieren könnten . Also könntest du auf diese Weise ein paar ziemlich ausgefallene Klassifikationen machen, oder? Also, das ist wieder ein Beispiel, Diese haben steigende Rechenkosten, und sie können produzieren, wissen
Sie, komplexere Beziehungen. Aber auch hier ist
es ein Fall, in dem zu viel Komplexität irreführende Ergebnisse liefern kann. Also müssen Sie vorsichtig sein und tatsächlich trainierten Test verwenden, wenn angemessen. Da wir betreutes Lernen durchführen, können
Sie tatsächlich Trainings durchführen und das richtige Modell finden, das funktioniert. Oder vielleicht ist es ein Ensembleansatz richtig. Sie müssen beim richtigen Oberst ankommen, um die Aufgabe zu erledigen. Und für Dinge wie polynom SBC, was ist der richtige Grad Polynom zu verwenden? Weißt du, selbst Dinge wie lineare SBC haben verschiedene Parameter, die mit ihnen verknüpft sind, für die Sie möglicherweise optimieren müssen, so dass es mit einem echten Beispiel mehr Sinn macht. Lassen Sie uns in einen echten Python-Code eintauchen und sehen, wie es funktioniert.
42. Verwendung von SVM zum Cluster Personen: Lasst uns mit Unterstützung Vektormaschinen herumspielen. Öffne das S V C Notebook in deinen Kursmaterialien und zum Glück ist
es viel einfacher, Unterstützungsvektormaschinen zu verwenden, als zu verstehen, wie sie funktionieren. Also für dieses Beispiel, gehen
wir zurück zu den gleichen Clustering-Beispieldaten, die wir für unsere K erstellt haben, bedeutet
Clustering-Vorlesung . Wir haben nur diese Kiste Cluster-Datenfunktion hier wieder, wir werden eine konsistente Zufallszahl einfügen, damit Sie die gleichen Ergebnisse sehen, die ich hier sehe . Wir werden eine bestimmte Anzahl von Clustern übergeben, die wir wollen, und eine Anzahl von Punkten pro Cluster wird von einem über K
berechnet.Also im Grunde, wir übergeben in, wie viele Cluster Sie wollen und wie viele Gesamtpunkte wir verteilen möchten zwischen ihnen. Hier erstellen wir dann unsere X- und Y-Strahlen hier X wird Container-Feature-Daten, die zwei
D-Punkte , bestehend aus Einkommen und Alter, die Luft zufällig erzeugt und hergestellt werden. Und warum werden Beschriftungen die Cluster darstellen, mit denen diese Punkte verknüpft sind. Also, für jeden Cluster, den wir erstellen wollen, wird eine zufällige Einkommen zentrale OID in einem großen und acht Central ausgewählt hatte zufällig zwischen 20 und 70 Jahren und $220.000. Und dann werden
wir für jeden Punkt dieses Clusters einen fiktiven Punkt schaffen, der zufällig mit einer normalen Verteilung für ein bestimmtes
Einkommen und Alter um diese Centrowitz gesampelt wird. Diese werden an unser Ex-Feature-Array angehängt und dann den eigentlichen Cluster aufwärts gesetzt. Nummer zwei ist, warum Label-Array diese zurück in taub pie konvertieren, erhöhen und zurückgeben. Alles klar, jetzt bereiten wir unsere Daten hier vor, damit wir tatsächlich anrufen Clustered Data
erstellen. Wir werden um 100 Punkte bitten, die in fünf verschiedene Cluster aufgeteilt sind, und ich werde das für uns tun. Und lassen Sie uns planen, was es zurückkommt. Also werden wir nur sagen, wir wollen eine Acht mal sechs Plot hier Abbildung erstellen, und wir werden ein Streudiagramm mit einer Farbe machen, die mit der tatsächlichen Beschriftung
korreliert , die sicherstellen wird, dass jeder Cluster seine eigene Farbe erhält, wird dann das. Nun stellt sich heraus, dass
wir in einigen Kernen, vor allem
im Poly Colonel, diese Daten auf einen normal verteilten Bereich zwischen negativem und
eins skalieren müssen . Andernfalls könnten die Lösungen niemals konvergieren. Also werden wir auch die angegebenen unten auf den Bereich negativ Oneto ein hier skalieren. Und um das zu tun, etwas namens Min Max Scaler zu
erheben, das aus dem Pre-Processing-Modul des
psychischen Learn kommt . Und wir werden nur sagen, dass wir alle Funktionen im X-Strahl beheben möchten
, der alle Einkommen und Altersgruppen des Bereichs enthält. Negativ 1 zu 1 wird diese Transformation auf unsere Feature-Daten anwenden Anschließend werden die resultierenden Skalierungsdaten ebenfalls geplottet. Wenn Sie schon einmal zum ursprünglichen Datenbereich zurückkehren wollten,
gibt es auch eine umgekehrte Transformationsfunktion auf dem Min Max-Skalierer, mit der Sie in die
andere Richtung zurückkehren können. Wenn Sie schon einmal zum ursprünglichen Datenbereich zurückkehren wollten, gibt es auch eine umgekehrte Transformationsfunktion auf dem Min Max-Skalierer, mit der Sie in die
andere Richtung zurückkehren können Aber für dieses Beispiel müssen
wir das sowieso nicht tun. Gehen wir voran und führen Sie diese aus, bevor wir vergessen, also gehe ich hier zurück zum Funktionsdefinitionsblock und führe diese Schicht aus. Geben Sie und dann in Block zu verschieben, geben Sie wieder ein und Sie können hier die Handlung unserer ungelernten Ergebnisse sehen, wo die Einkommen reichten von 20.000 bis 200.000 plus oder minus einige Schlitzwert ihre und unsere Bereiche Luft etwa 30 bis 70 Jahre alt für das Alter Zugang. Grundsätzlich bestehen
unsere Feature-Daten aus Einkommen auf der X-Achse und altert auf der Y-Achse Jahr, nachdem wir sie
skaliert haben , es sieht genau gleich aus. Außer, dass die tatsächlichen Zahlen auf den Bereich Negative Oneto eins auf beiden
Achsen skaliert wurden . Also das ist unsere Daten darauf vorbereitet, freundlich zu S V C zu sein. Jetzt müssen wir nur spc anwenden, was unglaublich einfach ist. Alles, was wir tun müssen, ist das SPM-Paket aus Psych es lernen und SPM gekauft spc nennen Geben Sie den Oberst, den Sie wollen. Wir beginnen mit einem einfachen linearen Kernel. Der Haupt-Hyper-Parameter, der hier wichtig ist, ist C, das standardmäßig ein Punkt ist. Oh, das funktioniert gut und wir werden es bitten, zu unserer Funktion eines und R beschrifteten Arrays zu passen. Also im Grunde sagen passen mit unserem Array von all den beiden D-Punkten von Alter und Einkommen und alle unsere Etiketten von welchen Clustern wir diejenigen kennen, die ursprünglich zugeordnet sind, so dass unser SPC-Modell
trainieren wird . Gehen wir voran und rennen. Das lief sehr schnell. Lassen Sie uns also einen Blick auf die Ergebnisse werfen, die wir hier tun werden, ist eine Handlung zu erstellen, in der wir
tatsächlich die Bereiche innerhalb dieser zwei D-Raum von Altersgruppen und Einkommen visualisieren können , die
Modelldinge korreliert zu gegebenen Clustern sind , und zur gleichen Zeit Wir werden die tatsächlichen Ergebnisse dessen plotten, die denken, dass jeder einzelne Punkt in diesem Brunnen ist Um diese Grafik aufzubauen, müssen
wir zuerst ein sehr dichtes zwei-D-Array aufbauen,
auf dem wir tatsächlich Vorhersagen erstellen können, damit wir tatsächlich zu plotten, was diese Cluster an jedem Punkt in diesem Raum sind. Um dies zu tun, nennen
wir Netzraster auf taub pie und
sagen, dass wir hier ein Raster von Beispielpunkten wollen, die zwischen negativem eins und eins
sowohl in der x- als auch in der Y-Achse in einem Abstand von nur 0,1 voneinander liegen. Das ist also nah genug, dass es wie eine kontinuierliche Farbpalette aussehen wird. Wenn wir eigentlich plotten, müssen
wir dann das Ergebnis aus Mesh große Melodie,
Schiedsrichter Rennen umwandeln . Wir können sie mit einer Klassifikationsvorhersage verwenden und dann müssen wir diese wiederum
in eine Liste von zwei D-Einkommensalterspunkten umwandeln . Die Raval-Funktion hier konvertiert dies nur in taube Tortenstrahlen und den np dot c Unterstrich. Siehe Unterstriche Abkürzung für Dose Katyn acht. Das heißt, ich nehme alle diese X-Werte und all diese y-Werte und kann sie
in eine Liste von Punkten abstellen, die x y x y x y x y usw. haben. Also, jetzt, wo ich diese Liste von Beispielpunkten
habe, kann ich das in Vorhersagen übergeben. Nun, nur ah, um hier einen Punkt der Verwirrung zu klären, können
X und Y hier den X- und Y-Achsen entsprechen. Also N p X wird am Ende alle Einkommensdaten und MP y werden alle
Altersdaten sein. Also lassen Sie sich das nicht verwirren, wenn wir darüber reden, warum
ich
in diesem Zusammenhangvon der Y-Achse spreche,
nicht von den Etikettendaten. Also lassen Sie sich das nicht verwirren, wenn wir darüber reden, warum in diesem Zusammenhang ich
in diesem Zusammenhangvon der Y-Achse spreche, Warum? Also haben wir diese Feature-Array, das wir in Vorhersagen übergehen werden, und das wird uns vorhergesagte Labels zurückgeben, die die tatsächlichen Cluster-Nummern für jeden Punkt in diesem Raum sind. Dann müssen wir es nur noch mal planen. Wir machen eine Acht mal Sechs. Wir werden diese Ergebnisse umformen, um sicherzustellen, dass sie mit der X-Dimension unseres Plots übereinstimmen, und dann rufen wir Kontur F auf. Dies wird im Grunde jeden einzelnen Punkt durchlaufen, den wir auf diesem Gitter erstellt haben, und seine Beschriftungen, die prognostiziert. Dies sind also die prädiktiven Beschriftungen, nicht die tatsächlichen Beschriftungen, und plotten sie mit der Farbkarte, die wir verwenden möchten, die mit diesen Werten verknüpft sind. Und danach werden
wir tatsächlich ein Streudiagramm machen, das die ursprünglichen Punkte plotten wird, die noch in unserem großen X-Array
leben. Es gibt wieder Feature-Daten
, also Einkommen und Alter, und wir färben sie basierend auf den tatsächlichen ursprünglichen Clustern, die Why aufrufen, als Typ float, um diese ursprünglichen Beschriftungen zurück in Farbwerte für das Diagramm zu konvertieren. Gehen wir also weiter und lassen Sie das laufen und sehen, wie es aussieht. Es dauert ein wenig eine Weile, um so viele Vorhersagen zu erstellen, aber nicht zu lange. Und Sie können hier sehen, was passiert ist. Denk daran, was wir tun. Er hat die tatsächlichen Prognosebereiche als Hintergrundfarbe geplottet, also verwenden wir einen linearen Kernel. Wir haben also gerade Linien, die jede Region abgrenzen, in der sie glaubt, dass diese Cluster übereinstimmen. Also im Grunde alles in diesem Dreieck wird ein Modell sein, um in einem Cluster zu sein. Alles, was sich auf einem roten Hintergrund befindet, wird ein weiterer Cluster sein. Und wir plotten darüber hinaus die ursprünglichen wahren Cluster aus
dem Zeitpunkt, an dem wir die Daten tatsächlich erstellt haben. Nun, diese Cluster überlappen sich bis zu einem gewissen Grad, so dass es wirklich nicht möglich oder realistisch sein wird, wirklich zu erwarten, dass jeder Algorithmus 100% davon
bekommt. Sie können sehen, dass es, Mr. Couples ,
zum Beispiel, wir haben diese blaue Funktion hier, die auftaucht, eine andere Farbe hat als
die anderen , die im selben Cluster sein sollten. Hören Sie, dass die Hintergrundfarben nicht unbedingt mit vier Gramm korrelieren. Sie können sehen, wenn ein Punkt nicht mit seinen Nachbarn um ihn herum übereinstimmt. Für den Rest dieses Clusters wird
das wahrscheinlich ein falsches Ergebnis sein. Außerdem haben
wir diesen violetten Punkt hier für den Cluster, der sich hier in diese
rote Region schlich zu haben schlich, die wirklich zu diesem anderen Cluster hier gehört. Also ein paar Punkte, die falsch gelaufen sind, aber es nicht wirklich zu viel dafür schulden können. Thea-Cluster
überlappen tatsächlich sich jetzttatsächlich. Sie können auch die Prognosefunktion auf dem Zugmodell verwenden, um Vorhersagen für bestimmte neue Punkte zu erstellen, die das Modell zuvor noch nicht gesehen hat. Das ist der ganze Sinn von all dem. In diesem speziellen Beispiel rufen
wir s V c dot Predict auf, um einen Cluster für jemanden mit einem Einkommen von $200.000
im Alter von 40 vorherzusagen . Und es stellt sich heraus, dass Land und Cluster Nummer drei mit unserem Modell und für jemanden mit $50.000 pro Tag 65, die in Cluster Nummer zwei gelandet sind, jetzt wissen, dass wir diese
Zahlen für uns nach unten skalieren müssen , bevor wir tatsächlich eine Vorhersage mit ihnen machen können. Also denken Sie daran, dass, bevor wir dieses Modell trainieren, wir alle unsere Eingaben nach unten mit Männern Max Scaler skaliert. Also müssen wir den gleichen Skalierer verwenden, den wir Skalierung genannt haben, und diesen verwenden, um unsere
Eingabedaten zu transformieren , wenn wir versuchen, Vorhersagen für neue einzelne Punkte zu machen, also sehr wichtig, diesen Schritt nicht zu vergessen. Es ist sehr einfach zu tun, und ich habe es selbst gemacht. Aber damit
werde ich Sie herausfordern, dies zu erweitern und für Ihre Aktivität hier, versuchen Sie verschiedene Kerne, also linear ist nur einer von ihnen. Gehen Sie und suchen Sie die Dokumentation in psychic Learn on line für das SPC-Modell, was selbst eine gute Übung ist, weil ich viele Ihrer eigenen Fragen auf diese Weise beantworten
und herausfinden kann , was die anderen möglichen Colonel-Optionen sind. Sehen Sie, ob Sie einen Besseren finden können. Wenn Sie in nichtlineare Kernel gelangen. Vielleicht machen die es dem Staat
eigentlich ein bisschen besser, eigentlich ein bisschen besser, und machen einen besseren Job. Also machen Sie einfach ein paar Experimente. Probieren Sie verschiedene Kernel aus. Sehen Sie, welche Auswirkungen hat, die auf die Formen der Cluster und die Regionen, die, um sie zu finden finden
Sie es interessant und auch sehen, welche Auswirkungen es auf die Laufzeit hat. Einige von ihnen sind komplizierter als andere, und einige von ihnen erfordern mehr Rechenressourcen ist ein anderer, also ist das auch ein Kommerz. Sie müssen bewusst machen, auch. Außerdem möchten
Sie vielleicht mit einigen der Hyper-Parameter, die mit diesen
verschiedenen Modellen verknüpft sind, herumspielen . Sie werden in der Dokumentation in Psych dokumentiert, es wird für jeden Kerneltyp gelernt. Viele von ihnen haben sehr viele verschiedene Parameter, und Sie müssen nur experimentieren, um die Parameter zu finden, die am besten funktionieren. Also spielen Sie auch damit. Hyper, Parameter-Tuning, sehr wichtiger Teil des maschinellen Lernens. Also geh und mach dir die Hände schmutzig, wenn du so willst, und sieh mal, ob du einen anderen Colonel-Typ besser machen könntest.
43. Benutzerbasierte Collaborative Filterung: Lassen Sie uns über meinen persönlichen Bereich sprechen. Empfehlen Sie die Systeme. Also Systeme, die Leute Sachen empfehlen können, basierend auf dem, was alle anderen getan haben. Sehen Sie sich einige Beispiele dafür auf verschiedene Arten an, um dies speziell auf Techniken zu tun benutzerbasierte und artikelbasierte kollaborative Filterung
genannt werden. Also lasst uns eintauchen. Ich möchte über ein Thema sprechen, das mir am Herzen liegt. Empfehlen Sie ihre Systeme. Wenn Sie sich erinnern, ich habe tatsächlich den größten Teil meiner Karriere bei amazon dot com und imdb dot com verbracht, und eine Menge von dem, was ich dort getan habe, war die Entwicklung von empfohlenen Systemen, Dinge wie Menschen, die gekauft, auch gekauft oder empfohlen für Sie und Dinge, die Filmempfehlungen für Menschen getan. Das ist etwas, über das ich persönlich viel weiß, und ich hoffe, dass ich etwas von diesem Wissen mit Ihnen teilen kann. Also, was meinen wir mit empfehlen ihre Systeme? Nun, wie ich schon sagte, Amazon ist ein großartiges Beispiel und eines, mit dem ich sehr vertraut bin. Wenn Sie also zu ihren Empfehlungen hier gehen, können
Sie sehen, dass es tatsächlich Dinge empfehlen wird, die Sie interessieren könnten basierend auf Ihrem früheren Verhalten auf der Website zu
kaufen, und das könnte Dinge, die Sie bewertet oder Dinge, die Sie gekauft haben, und unter anderem Signale, dass ich diesen Brunnen verwenden könnte, können in die Details gehen, weil sie mich
jagen und, wissen
Sie, schlechte Dinge mit mir
tun. Aber es ist ziemlich cool. Es ist
auch ziemlich gutes Zeug, auch ziemlich gutes Zeug, und man könnte auch an die Leute denken, die gekauft haben. Auch gekaufte Funktion auf Amazon ist eine Form von empfehlen er, System. Der Unterschied besteht darin, dass die Empfehlungen, die Sie hier sehen, auf all Ihrem früheren
Verhalten basieren , während Leute, die auch gekauft haben, oder Leute, die sich angesehen haben, auch Dinge wie diese anzeigen nur auf der Sache basieren, die Sie betrachten gerade jetzt, oder die Sache, die Sie gerade jetzt zu kaufen denken und Ihnen Dinge zu zeigen, die ihm
ähnlich sind . Sie könnten auch daran interessiert sein. Es stellte sich heraus, was Sie gerade tun, ist wahrscheinlich das stärkste Signal Ihres Interesses. Ein weiteres Beispiel von Netflix. Sie haben also verschiedene Funktionen, die versuchen, neue Filme oder andere Filme zu empfehlen, die Sie noch nicht gesehen haben. Basierend auf den Filmen, die Sie mochten oder in der Vergangenheit gesehen als gut, Dann brechen sie, dass von John Run Sie haben eine Art andere Spin auf Dinge, wo sie versuchen, die Genres oder die Arten von Filmen zu identifizieren, die sie denken, Sie genießen die die meisten, und sie zeigen Ihnen mehr Ergebnisse aus diesen Genres. Das ist also ein weiteres Beispiel für ein empfohlenes System in Aktion. Und der Sinn ist es, Ihnen dabei zu helfen, Dinge zu entdecken, von denen Sie vielleicht vorher nicht
gewusst haben . Also ist es ziemlich cool. Weißt du, es gibt Filmen, Büchern oder Musik oder was auch immer eine Chance, von Leuten entdeckt zu werden, die vielleicht noch
nicht davon gehört haben. Also, wissen
Sie, ist
nicht nur eine coole Technologie, sie ebnet auch irgendwie das Spielfeld ein wenig und hilft, neue Gegenstände von
den Massen entdeckt zu werden. Es spielt also eine sehr wichtige Rolle in der heutigen Gesellschaft. Zumindest würde ich es gerne denken. Es gibt also ein paar Möglichkeiten, dies zu tun. Lassen Sie uns über das Empfehlen von Sachen sprechen, die auf Ihrem früheren Verhalten basieren. Eine Technik wird als benutzerbasierte kollaborative Filterung bezeichnet, und hier ist, wie es funktioniert. Kollaborative Filterung, übrigens, nur ein schicker Name, um etwas zu sagen, basierend auf der Kombination von dem, was Sie getan haben, was alle anderen getan haben. Okay, also schaut es sich Ihr Verhalten an und vergleicht das mit Die Dinge, die für Sie interessant sein könnten, von denen Sie noch nicht gehört haben. Also die Idee hier ist, wir bauen eine Matrix von allem, was jeder Benutzer, den ich jemals gekauft oder angesehen oder bewertet, gekauft oder angesehen oder bewertet,
oder was auch immer ein Signal von Interesse, das Sie wollen, um dieses System zu stützen. Also am Ende mit einer Reihe für jeden Benutzer in meinem System. Und diese Zeile enthält all die Dinge, die sie taten, die auf irgendeine Art von
Interesse an einem bestimmten Produkt hinweisen könnten . Stellen Sie sich also einen Tisch vor. Ich habe Benutzer für die Rose und jede Spalte ist ein Element. Okay, das könnte ein Film sein. Ah, Produkt. Was auch immer eine Webseite Sie können. Sie können dies für viele verschiedene Dinge verwenden. Dann verwende ich diese Matrix, um die Ähnlichkeit zwischen verschiedenen Benutzern zu berechnen. Also trade ich im Grunde jede Zeile davon als Vektor, und ich kann die Ähnlichkeit zwischen jedem Vektor von Benutzern basierend auf ihrem Verhalten berechnen. Also wissen Sie, Benutzer, die meistens die gleichen Dinge mögen, würden einander sehr ähnlich sein, und ich kann das dann nach diesen Ähnlichkeitsergebnissen sortieren. Wenn ich also alle Benutzer finden kann, die Ihnen ähnlich sind, basierend auf ihrem früheren Verhalten, kann
ich dann die Benutzer finden, die mir am ähnlichsten sind und dann Dinge empfehlen, die ihnen gefallen, die ich noch nicht angesehen habe. Okay, also wissen Sie, schauen wir uns ein echtes Beispiel an, und es wird ein bisschen mehr Sinn ergeben. Sagen wir mal, diese nette Dame hier sah Star Wars und das Imperium schlägt zurück, und sie liebte sie beide. Also haben wir einen User-Vektor hier dieser Dame Gefiel, gab fünf Sterne Bewertung genauer zu Star Wars, und das Imperium schlägt zurück. Sagen wir mal, Mr. Edgy Mohawk Man kommt und er hat nur Star Wars gesehen. Das ist das Einzige, was er gesehen hat, von dem er nichts weiß. Das Imperium schlägt noch zurück. Irgendwie lebt er in einem seltsamen Universum, in dem er nicht weiß
, dass es tatsächlich
viele , viele Star Wars-Filme gibt,
die jedes Jahr wachsen , aber wir können sagen: ,
aber wir können sagen: Dieser Kerl ist eigentlich ziemlich ähnlich wie diese andere Dame, weil sie beide Star Wars
sehr genossen haben, also gibt es Ähnlichkeit. Die Punktzahl ist wahrscheinlich ziemlich gut, und wir können sagen, OK, ja, was hat diese Dame genossen, die er noch nicht gesehen hat? Und das Imperium schlägt das hier zurück. So können wir dann die Informationen nehmen, die diese beiden Benutzer Luft ähnlich basierend auf ihrer Freude an Star Wars. Finden Sie, dass diese Dame auch gerne Empire schlägt zurück. Und das könnte eine gute Empfehlung für Mr. Edgy Mohawk Man sein. Und wir können ihn weiterempfehlen. Das Imperium schlägt zurück und wird es wahrscheinlich lieben,
weil meiner Meinung nach esmeiner Meinung nachein besserer Film ist. Aber ich werde hier nicht mit dir in einen G-Kurs kommen. Leiderhat Leider der
benutzerbasierte Clara Filter einige Einschränkungen. Wenn wir über Beziehungen nachdenken und Dinge empfehlen, basierend auf Beziehungen zwischen Gegenständen und Menschen auf dem, was wir nicht neigen, neigt unser Geist dazu, in Beziehungen zwischen Menschen zu gehen. Wir wollen also Leute finden, die Ihnen ähnlich sind und Dinge empfehlen, die ihnen gefallen haben, die intuitiv zu tun. Aber es ist nicht das Beste, was zu tun ist. Ein Problem ist, dass Menschen unbeständig sind, ihr Geschmack ändert sich immer. Vielleicht hatte diese nette Dame in den vorherigen Folien eine Art kurze
Science-Fiction-Action-Film-Phase , als sie durchging und sie darüber hinwegkam. Und vielleicht begann
sie später in ihrem Leben mehr in
Dramen,
Romantikfilme oder Rahm-Säulen einzusteigen ,oder
? , Was würde passieren, wenn mein kantiger Mohawk ich mit einer hohen Ähnlichkeit zu ihr endete? Nur basierend auf ihrer früheren SciFi-Periode? Und am Ende haben wir ihm romantische Komödien empfohlen. Infolgedessen wäre
das schlecht, oder? Ich meine, es gibt einen gewissen Schutz davor in Bezug darauf, wie wir die Ähnlichkeitswerte berechnen . Aber es ist immer noch verschmutzt unsere Daten, dass sich die Geschmäcker der Menschen im Laufe der Zeit ändern können. also nicht immer eine einfache Sache, Menschen mit Menschen zu vergleichen, weil
sich Menschen ändern. Das andere Problem ist, dass es normalerweise viel mehr Leute gibt, als es Dinge in Ihrem System gibt. Also sieben Milliarden Menschen auf der Welt und zählen. Es sind wahrscheinlich nicht sieben Milliarden Filme auf der Welt oder sieben Milliarden Artikel, die Sie aus Ihrem Katalog empfehlen könnten . Also das Rechenproblem, alle Ähnlichkeiten zwischen allen Benutzern in
Ihrem System zu finden , ist es wahrscheinlich viel größer als das Problem, Ähnlichkeiten zwischen den
Elementen in Ihrem System zu finden . Indem Sie das System auf Benutzer konzentrieren, machen
Sie Ihr Rechenproblem viel schwieriger als es sein könnte, weil Sie viele Benutzer
haben, zumindest hoffentlich tun Sie es, wenn Sie für ein erfolgreiches Unternehmen arbeiten. Das andere Problem ist, dass Menschen schlechte Dinge tun. Es gibt einen sehr realen wirtschaftlichen Anreiz, um sicherzustellen, dass Ihr Produkt oder Ihr Film oder was auch immer es ist, den Menschen empfohlen
wird. Und es gibt Leute, die versuchen, das System zu gewinnen, um das für ihren neuen
Film, ihr neues Produkt oder ihr neues Buch oder was auch immer geschehen zu lassen. Und wenn Sie dies auf Benutzerbeziehungen basieren, ist
es ziemlich einfach, gefälschte Personas im System zu erstellen, indem Sie einen neuen Benutzer erstellen und eine Folge von Ereignissen ausführen
lassen, von denen Sie wissen, dass viele beliebte Elemente mögen und dann Element zu schreiben. Dies wird als Schilling Angriff bezeichnet, und wir wollen, dass Zehe idealerweise ein System haben, das damit umgehen kann. Es wird untersucht, wie diese Shelling-Angriffe in der Filterung der
Zusammenarbeit von Benutzern erkannt und vermieden werden können. Aber ein noch besserer Ansatz wäre, einen völlig anderen Ansatz zu verwenden, der nicht so anfällig für das Spielen des Systems ist, und wir werden darüber in unserem nächsten Vortrag sprechen. Es gibt eine Möglichkeit, dies auf den Kopf zu stellen und tatsächlich besser als üblich zu machen. Erhöhen Sie die kollaborative Filterung. Das ist also benutzerbasierte kollaborative Filterung Again, ein einfaches Konzept. Sie betrachten Ähnlichkeiten zwischen Benutzern basierend auf ihrem Verhalten und empfehlen Dinge, die einem Benutzer genossen, die Ihnen ähnlich waren, die Sie noch nicht gesehen haben. Jetzt haben hat seine Grenzen, wie wir über gesprochen. Lassen Sie uns also darüber sprechen, das Ganze auf den Kopf zu drehen, mit einer Technik namens item based Cloud wuchs als nächstes Filtern.
44. Item-Based Item-Based: Lassen Sie uns also versuchen, einige der Mängel in der benutzerbasierten Cloudera-Filterung mit einer Technik zu beheben, die Elementbasierte kollaborative Filterung genannt wird, und wir werden sehen, wie das leistungsfähiger sein könnte. Es ist tatsächlich eine der Techniken, die Amazon tatsächlich unter der Haube verwendet, und sie haben darüber öffentlich gesprochen, also kann ich Ihnen so viel sagen. Aber mal sehen, warum es so eine tolle Idee ist. Wir sprachen also über benutzerbasierte kollaborative Filterung, bei der wir Artikel empfehlen, basierend auf dem was Menschen ähnlich wie Sie mögen, die Sie noch nicht gesehen oder erlebt haben. Und wir haben über einige der Probleme mit der kollaborativen Filterung der Benutzerbasis gesprochen. Was ist, wenn wir es auf den Kopf werfen? Und anstatt unsere Empfehlungen auf Beziehungen zwischen Menschen zu stützen, stützen
wir sie auf Beziehungen zwischen Elementen,
und das ist es, was die objektbasierte kollaborative Filterung ist. Das zieht also ein paar Einblicke ein. Zum einen
haben wir davon gesprochen, dass Menschen unbeständig sind. Ihr Geschmack kann sich im Laufe der Zeit ändern, so dass der Vergleich einer Person mit einer anderen Person aufgrund ihres vergangenen Verhaltens ziemlich
kompliziert wird . Wissen Sie, Menschen haben verschiedene Phasen, in denen sie unterschiedliche Interessen haben, und Sie vergleichen vielleicht nicht die Menschen, die sich in der gleichen Phase befinden, miteinander, aber ein Gegenstand wird immer sein. Was auch immer es ist, ein Film wird immer ein Film sein. Es wird sich nie ändern. Star Wars wird immer Star Wars gut sein, bis George Lucas ein wenig daran bastelt. Aber in den meisten Fällen ändern sich
Elemente nicht so sehr wie Menschen. Wir wissen also, dass diese Beziehungen dauerhafter sind. Und es gibt mehr einen direkten Vergleich, den Sie machen können, wenn Sie Ähnlichkeit zwischen
Elementen berechnen , weil sie sich im Laufe der Zeit nicht ändern. Der andere Vorteil ist, dass es im Allgemeinen weniger Dinge gibt, die Sie
empfehlen möchten , dass es Leute gibt, die Sie empfehlen. Also nochmal, sieben Milliarden Menschen auf der Welt, bieten Sie wahrscheinlich nicht sieben Milliarden Dinge auf Ihrer Website an. Um ihnen zu empfehlen, damit Sie eine Menge Rechenressourcen sparen können, besteht darin,
Beziehungen zwischen Elementen anstelle von Benutzern auszuwerten , da Sie wahrscheinlich weniger Elemente haben als Benutzer in Ihrem System. Und das bedeutet, dass Sie Ihre Empfehlungen öfter ausführen können, um die aktuellere aktueller zu machen. Sie können kompliziertere Algorithmen verwenden, da Sie weniger Beziehungen zu berechnen haben, und das ist eine gute Sache. Es ist auch schwieriger, das System zu spielen. Also sprachen wir darüber, wie einfach es ist, einen benutzerbasierten kollaborativen Filteransatz zu gewinnen, indem nur einige gefälschte Benutzer wie eine Reihe beliebter Sachen erstellen. Und dann das, was Sie versuchen, zu fördern, mit einer Item-basierten Wolke von Filtern, die viel schwieriger wird. Sie müssen das System in der Annahme spielen, dass es Beziehungen zwischen den Elementen gibt. Und da Sie wahrscheinlich nicht die Fähigkeit haben, gefälschte Gegenstände mit gefälschten Verbindungen zu
anderen Gegenständen basierend auf vielen,
vielen anderen Benutzern zu erstellen anderen Gegenständen basierend auf vielen, , ist
es viel schwieriger für Gaiman Artikel basiertes kollaboratives Filtersystem, das eine gute Ding. Während ich auf dem Thema Gaming des Systems bin, ist
eine andere wichtige Sache, um sicherzustellen, dass die Leute mit ihrem Geld abstimmen. Also eine allgemeine Technik zur Vermeidung von Schilling-Angriffen oder Menschen, die versuchen, Ihr
Empfehlungssystem zu gewinnen , stellen Sie sicher, dass das Verhalten, das Sie es von seiner basierend auf Menschen tatsächlich Geld ausgeben, so dass Sie immer irgendwie bekommen bessere und zuverlässigere Ergebnisse, wenn Sie Empfehlungen auf das, was die Leute tatsächlich gekauft im Gegensatz zu dem, was sie angesehen oder Sie wissen, was sie auf OK geklickt, Alles klar. Lassen Sie uns also darüber sprechen, wie die inhaltsbasierte Claverie-Filterung funktioniert. Es ist sehr ähnlich wie benutzerbasierte kollaborative Filterung, aber statt Benutzer haben sich Elemente angesehen. Gehen wir also zurück zum Beispiel der Filmempfehlungen. Das erste, was wir tun würden, ist jedes Paar von Filmen zu finden, jeden Film Paarung, der von der gleichen Person gesehen wird. Also gehen wir durch und finden jeden Film, der von identischen Leuten gesehen wurde. Und dann messen wir die Ähnlichkeit all jener Leute, die diesen Film zueinander gesehen haben . Auf diese Weise können wir Ähnlichkeiten zwischen zwei verschiedenen Filmen berechnen, basierend auf den Bewertungen der Leute, die beide Filme angesehen haben. Also habe ich ein Filmpaar. Okay, vielleicht schlägt Star Wars im Imperium zurück. Ich finde eine Liste von allen, die beide Filme gesehen haben, vergleichen ihre Bewertungen
miteinander . Und wenn sie ähnlich sind, als ich sagen kann, diese beiden Filme ähnlich, weil sie ähnlich von Leuten bewertet wurden, die beide
sahen . Okay, das ist die allgemeine Idee hier. Das ist eine Möglichkeit, es zu tun. Es gibt mehr als einen Weg, es zu tun, und dann könnte ich einfach alles nach dem Film und dann nach der Ähnlichkeit
aller ähnlichen Filme sortieren . Und es gibt meine Ergebnisse für Leute, die auch mochte Leute, die diese
hochgeschwüren bewertet , diese hoch und so weiter und so weiter. Und wie ich schon sagte, das ist nur eine Möglichkeit, es zu tun. Das ist also eine Art Schritt eins der elementbasierten kollaborativen Filterung. Zuerst finde
ich Beziehungen zwischen Filmen, die auf den Beziehungen der Menschen basieren, die
jedes Paar Filme gewaschen haben . Sie werden mehr Sinn machen, wenn wir das Beispiel durchlaufen. Also, zum Beispiel, sagen
wir, unsere nette junge Dame hier sah Star Wars und Empire schlägt zurück und wie beide, also lesen beide fünf Sterne oder so. Nun kommt Herr Edgy Mohawk Man, der auch Star Wars in The Empire Strikes Back beobachtete und auch beide mag. Also an diesem Punkt, schwächen sagen, es gibt eine Beziehung. Es gibt eine Ähnlichkeit zwischen Star Wars und dem Empire Streiks zurück, basierend auf diesen beiden Benutzern , die beide Filme mögen. Also, was wir tun werden, ist, uns jedes Paar Filme anzusehen. Wir haben ein Paar Star Wars und Imperium Streiks zurück und dann schauen wir uns all die
Benutzer an, die
sobeide
sahen,
die diese beiden sind. an, die
so beide
sahen, Und wenn sie beide mögen, dann können wir sagen, dass sie einander ähnlich sind, oder wenn sie beide nicht mochten, können
wir sagen, dass sie einander ähnlich sind, ? Also schauen wir uns nur die Ähnlichkeitsnote dieser beiden Benutzer Verhalten im Zusammenhang mit diesen beiden Filmen in diesem Filmpaar an. Also kommt Mr. Schnurrbart, sie Holzfäller,
Hipster Mann, und er beobachtet, wie das Imperium zurückschlägt, und er lebt in einer seltsamen Welt, in der er will, dass das Imperium zurückschlägt, aber keine Ahnung hatte , dass Star Wars der erste Film existierte. Nun, das ist in Ordnung. Wir berechneten eine Beziehung zwischen dem Empire Strikes Back und Star Wars basierend auf dem Verhalten dieser beiden Menschen. Wir wissen also, dass diese beiden Filme einander ähnlich sind. Angesichts der Tatsache, dass Herr Hipster Man wie das Imperium zurückschlägt, können
wir mit gutem Vertrauen sagen, dass er auch Star Wars mögen würde, und das können wir ihm dann als seine Top-Filmempfehlung zurückempfehlen. So können Sie sehen, dass Sie am Ende sehr ähnliche Ergebnisse haben, aber wir haben irgendwie die
ganze Sache auf den Kopf gedreht . Anstatt das System auf Beziehungen zwischen zu fokussieren, konzentrierten sich die
Menschen auf Beziehungen zwischen den Gegenständen. Und diese Beziehungen basieren immer noch auf dem aggregierten Verhalten aller Menschen, die zugesehen haben. Ähm, aber im Grunde betrachten
wir Beziehungen zwischen Gegenständen und nicht Beziehungen zwischen Menschen. Hab es. In Ordnung, also lasst es uns tun. Wir haben tatsächlich einen Python-Code, der Pandas und all die verschiedenen anderen Tools verwenden wird um Filmempfehlungen mit einer überraschend kleinen Menge an Code zu erstellen. Das erste, was wir tun werden, ist, Ihnen artikelbasierte kollaborative Filterung in der
Praxis zu zeigen , so dass wir Menschen aufbauen, die zugesehen haben. Auch beobachtet. Im Grunde, wissen
Sie,
Leute, die die Dinge hoch bewertet haben, haben dieses Ding auch hoch bewertet. Also bauen wir diese Film-zu-Film-Beziehungen auf und wir werden sie auf realen Daten stützen, die wir aus dem Film Lines Projekt bekommen haben. Also, wenn Sie eine Filmlinse Dot Org's haben, ist
es eigentlich ein offener Film. Empfehlen Sie er System dort, wo Menschen können Filme bewerten und erhalten Empfehlungen für neue Filme, und sie machen alle zugrunde liegenden Daten öffentlich zugänglich für Forscher wie uns. Also werden wir tatsächlich ein paar Riel-Film-Bewertungen Daten verwenden. Es ist ein wenig veraltet. Es ist wie 10 Jahre alt, also bedenken Sie das, aber es sind echte Verhaltensdaten, mit denen wir endlich hier arbeiten werden. Und wir werden das verwenden, um Ähnlichkeiten zwischen Filmen zu berechnen. Und diese Daten an sich und für sich sind nützlich. Weißt du, du kannst das benutzen, um zu sagen, dass Leute, die mochten, auch richtig? Also lassen Sie uns sagen, ich schaue auf eine Webseite für einen Film, den ich dort und dann und da kann. Sagen Sie, wenn Sie diesen Film mögen, da Sie ihn ansehen, sind
Sie wahrscheinlich daran interessiert. Sie mögen vielleicht auch diese Filme, und das ist eine Form eines empfohlenen Systems direkt dort. Auch wenn wir nicht einmal wissen, wer Sie jetzt sind, ist
es eine echte, es sind reale Daten. Also werden wir mit einigen echten Problemen begegnen. Unsere ersten Ergebnisse werden nicht gut aussehen, also werden wir ein bisschen mehr Zeit damit verbringen, herauszufinden, warum, was viel ist. Was Sie Ihre Zeit damit verbringen, ist ein Data Scientist. Korrigieren Sie diese Probleme und gehen Sie wieder herum, bis wir Ergebnisse erhalten. Das macht Sinn. Und schließlich, naja, tatsächlich tun Benutzerelemente basierte kollaborative Filterung in seiner Gesamtheit, wo wir tatsächlich empfehlen Filme für Einzelpersonen basierend auf ihrem eigenen Verhalten. Also lasst uns das machen. Lasst uns anfangen. Das ist also elementbasierte kollaborative Filterung. Eine wunderbare Idee, die von Leuten ausgedacht wurde, die viel klüger sind als ich. Aberwissen
Sie, wissen
Sie, es hatte seine Ursprünge bei Amazon, was irgendwie cool ist. Wie Sie sehen können, behebt
es viele Mängel der benutzerbasierten kollaborativen Filterung, und es funktioniert wirklich gut. Also lassen Sie es uns tatsächlich in die Praxis umsetzen und anfangen, etwas Python-Code zu schreiben, um es zu ermöglichen .
45. Movie finden: Lassen Sie uns also das Konzept der inhaltsbasierten Claverie-Filterung anwenden, um mit
Film-Ähnlichkeiten zu beginnen . Finden Sie heraus, welche Filme Air ähnlich wie andere Filme im Besonderen wird versuchen, herauszufinden welche Filme Air ähnlich zu Star Wars basierend auf Nutzerbewertung Daten. Und wir werden sehen, ob wir da rauskommen. Lasst uns eintauchen. Okay, also lassen Sie uns voran und berechnen tatsächlich die erste Hälfte der Element-basierten Kollaborate-Filterung, die Ähnlichkeiten zwischen den Elementen findet. In diesem Fall betrachten
wir Ähnlichkeiten zwischen Filmen basierend auf Benutzerverhalten, und wir werden einige Riel-Film-Bewertungsdaten aus dem Gruppenobjektiv-Projekt verwenden. Wenn Sie zu Gruppenzeilen Punktorganisation gehen, die tatsächlich öffentlich zugänglich macht Forschern wie uns rial Filmbewertungen Daten von echten Menschen, die die Filmlinse Tochter Arbeit
Website verwenden , um Filme zu bewerten und erhalten Empfehlungen zurück für neue Filme es, dass sie wollen zuschauen. Also haben wir die Datendateien, die Sie aus dem Gruppen-Pläne-Datensatz mit den Kursmaterialien benötigen, und das erste, was wir tun müssen, ist, diese in einen Pandas-Datenrahmen zu importieren, und wir werden wirklich die volle Leistung von Pandas sehen in diesem Beispiel ist
es ziemlich coole Sachen. Das erste, was wir tun werden, ist, die u dot Datendatei zu importieren. Das ist Teil des Film-Linien-Datensatzes. Und das ist eine tabulatorgetrennte Datei, die jede Bewertung im Datensatz enthält. Die Art und Weise, wie dies funktioniert, ist so dass selbst es Aufruf Lesen Siehe SV auf Pandas schwächen gab ein
anderes Trennzeichen als ein Komma angeben . In diesem Fall ist
es eine Registerkarte. Also sagen wir im Grunde, Nehmen Sie die ersten 3 Spalten in der u dot Datendatei und importiert in einen neuen Datenrahmen mit drei Spalten. Der Benutzer i d. Der Film I d. Und die Bewertung. Also, was wir hier am Ende haben, ist der Datenrahmen, der eine Zeile für jeden Benutzer I D hat , die eine Person identifizieren. Und dann für jeden Film, den sie bewertet haben, haben
wir den Film I D. Eine neue Wunder-Kurzschrift für einen bestimmten Film. Star Wars könnte also Film 53 oder so sein, und sie bewerten, wissen
Sie, 1 bis 5 Sterne. Also haben wir hier eine Datenbank, einen Datenrahmen jedes Benutzers
und jeden Film, den sie bewerten. Okay, jetzt wollen wir in der Lage sein, mit Filmtiteln zu arbeiten, damit wir diese Ergebnisse
intuitiver interpretieren können . Also werden wir stattdessen ihre menschenlesbaren Namen verwenden. Wenn Sie einen wirklich massiven Datensatz verwenden, würden
Sie das bis zum Ende sagen, weil Sie mit Zahlen arbeiten möchten. Sie sind kompakter für so lange wie möglich, aber zum Zweck des Beispiels, im Unterricht wird die Titel um zu halten, so dass Sie sehen können, was los ist. Es gibt also eine separate Datendatei mit dem Movieland Status, der You Don Item genannt wird, und es ist Piper Limited, und die ersten 2 Spalten, die wir importieren, werden der Film I D und der Titel dieses Films sein. Also, jetzt haben wir zu Datenrahmen sind Anrufe, hat alle Benutzerbewertungen und M Anrufe hat alle Titel für jeden Film I D. Und wir können diese magische Merge-Funktion in Pandas verwenden, um es ganz zu Brei. Was wir am Ende haben, ist
es so etwas. Ich war ziemlich schnell, so dass wir am Ende mit einem neuen Datenrahmen, der den Benutzer I D und Bewertung für jeden Film enthält , den Benutzer bewertet und wir haben sowohl einen Film I D und den Titel, den wir lesen und sehen können, was es wirklich ist. So ist der Weg, dies zu lesen, verwenden Sie Ihre I. D. Nummer 308 Lesen Sie ein Spielzeug Geschichte vier Sterne Benutzer I D bis 87 Radio Toy Story, fünf Sterne und so weiter und so weiter. Und wenn wir immer mehr über den Zustand des Rahmens schauen würden, sehen
wir verschiedene Bewertungen für verschiedene Filme, während wir es jetzt durchmachen, die wahre Magie von Pandas kommt ins Spiel. Was wir also wirklich wollen, ist die Beziehungen zwischen Filmen zu betrachten, basierend auf allen Benutzern , die jedes Paar Filme angesehen haben. Also brauchen wir am Ende der Matrix jedes Films und jeden Benutzer und alle Bewertungen, die jeder Benutzer jedem Film und den Pivot-Tabellenbefehl in Höschen gab. Komm, tu das für uns. Es kann im Grunde eine neue Tabelle aus einem bestimmten Datenrahmen so ziemlich wie
gewünscht konstruieren . Also, was wir hier sagen, nehmen Sie unsere Lesungen Datenrahmen hier oben, und ich möchte einen neuen Datenrahmen namens Filmbewertungen erstellen, und ich möchte, dass der Index davon der Benutzer i d s
sein.Also werden wir Ah, ro für Jeder Benutzer i d. Und ich werde jede Spalte mit den Filmtiteln haben. Also werde ich eine Spalte für jeden Titel haben, den ich in diesem Datenrahmen und im
Süden begegne . Jede Zelle enthält den Bewertungswert, wenn sie vorhanden ist. Also lasst uns weitermachen und das tun. Und wir am Ende mit einem neuen Datenrahmen, der wie diese Art von erstaunlich aussieht, wie das einfach
alles zusammen für uns jetzt diese n a n Werte, die für keine Zahl steht. Und es ist nur, wie Pandas einen fehlenden Wert anzeigt. So ist der Weg, dies zu interpretieren ist Benutzer I D ein, zum Beispiel, nicht den Film zu sehen gewann 900, aber Benutzer I d man sah 101 Dalmations und las es zu Sternen. Er hat recht. Er gewann auch beobachtete 12 Angry Männer und bewertete es fünf Sterne, aber nicht den Film Zwei Tage im Tal zu sehen, zum Beispiel. Okay, was wir hier enden, ist eine spärliche Matrix, im Grunde, die jeden Benutzer und jeden Film enthält und an jeder Kreuzung, wo ein Benutzer einen
Film bewertet hat . Es gibt einen Bewertungswert. Okay, so können Sie jetzt sehen, können wir sehr leicht Vektoren von jedem Film extrahieren, den Luft User angesehen hat . Und wir können auch Vektoren von jedem Benutzer extrahieren, der einen bestimmten Film bewertet hat, was wir wollen. Das ist also nützlich für Benutzer- und Item A Clavier-Filterung rechts Wenn ich
Beziehungen zwischen Benutzern finden möchte , könnte
ich auf Korrelationen zwischen diesen Benutzerrose schauen. Aber wenn ich Korrelationen zwischen Filmen für die elementbasierte kollaborative Filterung finden möchte, kann
ich anhand des Benutzerverhaltens Korrelationen zwischen Spalten betrachten. Okay, hier kommt
also der Rial ins Spiel, der Dinge auf den Kopf wirft, für Benutzer- und Gegenstandsbasierte Ähnlichkeiten. Jetzt gehen wir mit elementbasierter kollaborativer Filterung, also möchten wir Spalten extrahieren. Also lasst uns das als nächstes tun. Lassen Sie uns voran gehen und extrahieren alle Benutzer, die Star Wars bewertet haben, und wir können sehen, dass die meisten Leute tatsächlich gesehen haben und es lesen. Star Wars und allen gefiel es. Also zumindest in dieser kleinen Probe, die wir vom Kopf des Datenrahmens genommen haben, so dass wir am Ende mit einer Ergebnismenge von Benutzer-IDs und deren Bewertungen für Star Wars. Und er ist ein Rechtschaffener. Drei haben Star Wars
zum Beispiel nicht bewertet , also hatten wir einen nicht einen Zahlenwert, der einen fehlenden Wert angibt. Aber das ist in Ordnung. Wissen Sie, wir möchten sicherstellen, dass wir diese fehlenden Werte beibehalten, damit wir
Spalten aus
verschiedenenFilmen direkt vergleichen können Spalten aus
verschiedenen . Also, wie machen wir das? Nun, Pandas macht es uns einfach und hat einen Kern mit Funktion hier, die wir verwenden können
, und das wird tatsächlich eine bestimmte Spalte mit jeder anderen Spalte im
Datenrahmen korrelieren und die Korrelationswerte berechnen und Geben Sie uns das zurück. Also, was wir tun werden, hören Sie Probleme mit dem gesamten Datenrahmen der Filmbewertungen. Das ist eine ganze Matrix von Benutzer- und Filmbewertungen, die nur mit der Spalte „Star Wars
Lesungen“ korreliert sind. Wir werden dann alle fehlenden Ergebnisse mit Drop in einem fallen lassen, so dass uns nur
mit Gegenständen, die tatsächlich eine Korrelation hatten, hinterlässt . Sie wissen, wo es mehr als eine Person gab, die es angesehen hat, und wir erstellen einen neuen Datenrahmen basierend auf den Ergebnissen und schauen uns die Top 10 Ergebnisse an. Also wieder, nur um zusammenzufassen, werden
wir die Korrelationsmusik zwischen Star Wars und jedem anderen Film fallen alle
und einen nicht einen Zahlenwert zu bauen , so dass wir nur Film-Ähnlichkeiten haben, die tatsächlich existieren wo mehr als eine Person bewertet. Und wir werden einen neuen Datenrahmen aus den Ergebnissen erstellen und die Top 10 Ergebnisse betrachten . Und hier sind wir. So landeten wir mit diesem Ergebnis der Korrelation Partituren zwischen jedem einzelnen Film für Star Wars. Und Sie können sehen, zum Beispiel, eine überraschend hohe Korrelationsmusik mit dem Film Till da war Sie. Eine negative Korrelation, eigentlich, mit dem Film 1 900 eine sehr schwache Korrelation mit 101 Dalmations. Jetzt sollten wir das nur nach Ähnlichkeitsmusik sortieren, und wir sollten den Top-Film für Star Wars symbolisieren, oder? Gehen wir und machen das. Rufen Sie einfach die Reihenfolge auf dem resultierenden Datenrahmen auf. Ein Ken Pandas macht es wirklich einfach, und wir können sagen, aufsteigend gleich falsch, um es tatsächlich in umgekehrter Reihenfolge nach
Korrelation Score sortiert zu bekommen . Also lasst uns das machen. Okay, also kamen Star Wars ziemlich nah an der Spitze, weil Star Wars sich selbst ähnelt. Aber was ist das ganze andere Zeug? Was zum Teufel? Voller Geschwindigkeit Mann des Jahres aus dem Gesetzlosen. Das sind alles, was du weißt, ziemlich obskure Filme, von denen ich die meisten noch nie gehört habe. Und doch haben sie perfekte Korrelationen mit Star Wars. Das ist irgendwie komisch. Also offensichtlich machen wir hier etwas falsch. Was könnte es sein? Nun, lassen Sie uns in unserem nächsten Vortrag darüber reden. Es stellt sich heraus, dass es eine völlig vernünftige Erklärung gibt, und das ist eine gute Lektion und warum Sie Ihre Ergebnisse immer untersuchen müssen, wenn Sie
mit Daten mit jeder Art von Data Science-Aufgabe fertig sind . Fragen Sie die Ergebnisse, denn oft gibt es etwas, das Sie verpasst haben. Möglicherweise müssen Sie Ihre Daten säubern. Das könnte etwas sein, was du falsch gemacht hast. Sie sollten auch immer skeptisch aussehen. Ihre Ergebnisse bringen sie nicht nur auf den Glauben. Ok? Wenn du das tust, wirst du Ärger bekommen, weil wir diese tatsächlich als
Empfehlungen für Leute präsentieren , die Star Wars mögen, würde
ich gefeuert werden, nicht gefeuert werden,
achten Sie darauf, die Ergebnisse . Also lasst uns in unserem nächsten Vortrag eintauchen, was schief gelaufen ist. Das ist also unser anfänglicher Riss und artikelbasierter kollaborativer Filterung und das Finden eines Films. Ähnlichkeiten, die auf dem Benutzerverhalten und den ersten Ergebnissen basieren, sind wirklich nicht so groß. Aber es stellt sich heraus, dass es eine vollkommen rationale Erklärung dafür gibt, warum, eine ganz einfache Weise, um es zu berücksichtigen. Also lasst uns in das eintauchen, was schief gelaufen ist und es reparieren.
46. Die Ergebnisse der Movie verbessern: Wie Sie sich erinnern, unsere ersten Ergebnisse für einen Film ähnlich wie Star Wars, mit objektbasierten kollaborativen Filtertechniken nicht so gut heraus. Also lasst uns herausfinden, warum und sehen, ob wir dagegen tun können. Also lasst uns herausfinden, was mit unseren Film-Ähnlichkeiten schief gelaufen ist. Dort gingen wir durch all diese spannende Arbeit sehr leicht mit Pandas. Berechnen Sie Korrelationswerte zwischen Filmen basierend auf ihren Benutzerbewertungen Vektoren und den Ergebnissen, die wir irgendwie gesaugt haben. Erinnern Sie sich also daran, dass
wir nach Filmen gesucht haben, die Star Wars mit dieser Technik ähneln, und wir landeten mit einer Reihe von seltsamen Empfehlungen an der Spitze. Das hatte eine perfekte Korrelation, und die meisten sind sehr obskure Filme. Also, was denkst du, könnte dort los sein? Nun, eine Sache, die Sinn ergeben könnte, ist, sagen wir, wir haben eine Menge Leute, die Star Wars und einen anderen obskuren Film anschauen. Weißt du, wir haben eine gute Korrelation zwischen wem und diesen beiden Filmen, weil sie von Star Wars
zusammengebunden sind . Aber am Ende des Tages, wollen wir unsere Empfehlungen wirklich auf das Verhalten von,wissen
Sie,
ein oder zwei Menschen,die einen obskuren Film sehen, stützen wissen
Sie,
ein oder zwei Menschen, ? Wahrscheinlich nicht. Ich meine, ja, die beiden Menschen auf der Welt oder was auch immer es ist, die den Film in voller Geschwindigkeit ansehen und beide mochten es zusätzlich zu Star Wars. Vielleicht ist das eine gute Empfehlung für sie, aber es ist wahrscheinlich keine gute Empfehlung für den Rest der Welt. Wissen Sie, wir müssen ein gewisses Maß an Vertrauen in unsere Ähnlichkeiten haben, indem wir eine
Mindestgrenze dafür erzwingen , wie viele Leute einen bestimmten Film angesehen haben. Wissen Sie, wir können nicht beurteilen, dass ein bestimmter Film gut für den Raum ist, über das Verhalten von ein oder zwei Menschen. Versuchen wir also, diese Einsicht hier in die Tat umzusetzen. Also, was wir tun werden, ist einen Blick zu werfen,
versuchen, die Filme zu identifizieren, die nicht wirklich von sehr vielen Leuten bewertet wurden. Werfen Sie sie einfach raus, okay und sehen Sie, was wir bekommen. Um das zu tun, werden
wir unseren ursprünglichen Bewertungsdatenrahmen nehmen, und wir werden wieder gruppieren nach Titel sagen. Pandas hat alle Arten von Magie darin, und dies wird im Grunde einen neuen Datenrahmen konstruieren,
der alle Zeilen für einen bestimmten Titel in einer Zeile zusammenfasst , und wir können sagen, dass wir speziell auf die Bewertung aggregieren möchten und wir möchten sowohl die Größe, die Anzahl
der Bewertungen für jeden Film als auch die durchschnittliche Punktzahl der mittleren Bewertung für diesen Film anzeigen. Also, wenn wir das tun, wenn es so etwas war. Das sagt uns, zum Beispiel, für den Film 101 Dalmations, 109 Leute bewertet diesen Film, und ihre durchschnittliche Bewertung war 2,9 Sterne. Also nicht so toll von einer Punktzahl. Wirklich? Also wissen Sie das. Wenn wir nur Augapfel diese Daten, können
wir sagen OK, gut, Movie sagte, Ich halte obskure wie 1 87 hatte 41 Bewertungen, aber 101 Dalmations. Davon habe ich gehört. Weißt du, 12 wütende Männer, von denen ich gehört habe. Das scheint, als gäbe es eine Art natürlichen Cut-Off-Wert bei etwa 100 Bewertungen, wo vielleicht das der magische Wert ist, bei dem die Dinge Sinn ergeben. Also lassen Sie uns loswerden von Filmen, die von weniger als 100 Personen bewertet werden. Und ja, weißt
du, ich mache das an diesem Punkt intuitiv, als würden wir später darüber reden. Es gibt mehr grundsätzliche Möglichkeiten, dies zu tun. Wir könnten tatsächlich experimentieren. Sie trainieren Testexperimente mit verschiedenen Schwellenwerten, um diejenige zu finden, die tatsächlich das Beste
ausführt. Aber zunächst sollten wir einfach unseren gesunden Menschenverstand nutzen und Filme herausfiltern, die von weniger als 100
Personen begrüßt wurden . Auch hier macht
Pandas das wirklich einfach. Also könnten wir einfach beliebte Filme sagen. Ein neuer Datenrahmen wird erstellt, indem wir uns Filmstatistiken ansehen, und wir werden Rose nur würdig nehmen. Rating-Größe ist größer als oder gleich 100 und ich werde dann sortieren, dass durch eine mittlere Bewertung nur zum Spaß, um die am besten bewerteten,
weit gesehene Filme zu sehen . Weißt du, ich bekomme diese Warnung jetzt. Seit ich diesen Kurs ursprünglich erstellt habe, kam
eine neue Version von Panis ins Spiel. Sie könnten dort einfach Sortierunterstriche verwenden, und es wird genauso gut funktionieren, nicht warnen. Geh weg und wir enden damit. Also, wissen
Sie, wir haben im Grunde hier eine Liste von Filmen, die von mehr als überfallen wurden 100 Menschen sortiert nach ihrer durchschnittlichen Bewertung, und dies an sich ist ein empfehlenswertes System hoch bewertete populäre Filme. Eine enge Rasur war offenbar ein wirklich guter Film, und viele Leute wusch ihn, und sie mochten es wirklich. Also wieder, dies ist ein sehr alter Datensatz aus den späten neunziger Jahren. Also, auch wenn Sie nicht sind, vielleicht nicht vertraut mit dem Film eine enge Rasur es könnte sich lohnen, zurück zu gehen und
wieder zu entdecken hinzugefügt, um Ihre Netflix hier, was auch immer Schindler's List. Keine große Überraschung gibt es, die oben auf den meisten Top-Film-Listen Die falsche
Hose kommt . Ein weiteres Beispiel für einen obskuren Film, der anscheinend wirklich gut war. Und es war auch ziemlich beliebt. So gibt es schon einige interessante Entdeckungen. Nur
dadurch, dass die Dinge jetzt ein bisschen besser aussehen. Also lassen Sie uns voran und machen im Grunde unseren neuen Datenrahmen von Star Wars Empfehlungen Filme ähnlich wie Star Wars, wo wir ihn nur auf Filme basieren, die in diesem neuen Datenrahmen erscheinen. Also werden wir die gemeinsame Operation nutzen, um weiterzumachen und unseren ursprünglichen,
ähnlichen Film-Datenrahmen zu diesem neuen Datenrahmen von Onley-Filmen, die mehr als 100
Bewertungen haben,beizutreten ähnlichen Film-Datenrahmen zu diesem neuen Datenrahmen von Onley-Filmen, die mehr als 100
Bewertungen haben, . Okay, also erstellen wir einen neuen Datenrahmen basierend auf ähnlichen Filmen, in dem wir die
Spalte Ähnlichkeit extrahieren . Schließen Sie sich dem mit unseren Filmstatistiken an. State of Frame, das ist unser beliebter Film State of Frame, und wir werden uns die Ergebnisse kombinieren und da gehen wir. So haben wir uns jetzt nur auf Filme beschränkt, die von mehr als 100 Personen bewertet wurden. Die Ähnlichkeitsnote zu Star Wars. Jetzt müssen wir das nur besser sortieren. Holen Sie sich die Warnung nochmal. Ja, können Sie Werte sortieren, anstatt umgekehrt sortiert zu sortieren, und wir werden nur einen Blick auf die ersten 15 Ergebnisse werfen. Und, hey, das sieht ein bisschen besser aus. Star Wars kommt also an die Spitze, weil es sich selbst ähnlich ist. Das Imperium schlägt zurück. Es ist Nummer zwei Drehen Sie
rechts die Jetaugen Nummer drei Raiders der verlorenen Arche. Nummer vier. Du weißt, dass es immer noch nicht perfekt ist, aber die machen viel mehr Sinn, oder? Man würde also erwarten, dass die drei Star Wars-Filme aus der ursprünglichen Trilogie
einander ähnlich sind . Der Zustand, in den es zurückgeht, bevor die nächsten drei Filme und Raiders of the Lost Ark, auch ein sehr ähnlicher Rubin zu Star Wars in Stil kommt, es ist Nummer vier. Also fange ich an, mich ein wenig besser in Bezug auf diese realen Ergebnisse zu fühlen. Es gibt noch Raum für Verbesserungen. Aber, hey, wir haben ein paar Ergebnisse, die Sinn ergeben. Wer jetzt idealerweise auch Star Wars herausfiltern würde. Sie wollen sich nicht Ähnlichkeiten mit dem Film selbst ansehen, von dem Sie begonnen haben, aber darüber sorgen Sie sich später. Also, wenn Sie dieses bisschen mehr spielen wollen, wie ich sagte, 100 war Wort eines willkürlichen Abschnitts für die minimale Anzahl von Bewertungen. Wenn Sie mit verschiedenen Cut-Off-Werten experimentieren möchten, ermutige
ich Sie, zurück zu gehen und dies zu tun Sehen Sie, was das zu den Ergebnissen tut. Wissen Sie, Sie können hier sehen, dass die Ergebnisse, die wir wirklich mögen, viel mehr als 100
Bewertungen gemeinsam hatten . Also mit Austin Powers kommt da rein ziemlich hoch mit nur 130 Bewertungen, also vielleicht Hunderte sind nicht hoch genug. Pinocchio blieb bei 101 nicht sehr ähnlich zu Star Wars, so dass Sie vielleicht eine noch höhere Schwelle in Betracht ziehen und sehen, was es tut. Also denken Sie daran, Dies ist ein sehr kleiner, begrenzter Datensatz, den wir für Experimentierzwecke verwenden, und es basiert auf sehr alten Daten ist hier, nur um ältere Filme zu sehen. Also, wissen
Sie, diese Ergebnisse intuitiv zu
interpretieren, könnte infolgedessen ein wenig herausfordernd sein, aber keine schlechten Ergebnisse. Also lassen Sie uns weitermachen und tatsächlich vollständig durchgebrannte Artikel basierte kollaborative Filterung durchführen. Wir empfehlen, Benutzer empfehlen Filme, um Menschen, die ein vollständigeres System verwenden, wird das als nächstes tun , so dass das sieht viel besser. Du musst immer arbeiten. Achten Sie auf falsche Beziehungen, also gibt es eine gewisse Menge an Vertrauen oder Unterstützung, die Sie haben sollten. Wenn Sie Beziehungen in Daten betrachten und diese minimale
Supportschwelle durchsetzen , haben wir viel bessere und vernünftigere Ergebnisse erzielt. So gute Lektion, dort zu lernen. Lassen Sie uns es auf die nächste Ebene bringen und tatsächlich vollständig durchgebrannte Item-basierte Cloud oder Filterung durchführen und Empfehlungen für einen gesamten Benutzer basierend auf ihrer gesamten Geschichte erstellt. Und wir können ein System bauen, das das für jeden Benutzer in unserem Datensatz tun könnte. Wir machen das als Nächstes
47. Filmempfehlungen für die Menschen erstellen: Okay, lassen Sie uns tatsächlich ein vollständiges Empfehlungssystem aufbauen, das alle
Verhaltensinformationen von allen betrachten kann und welche Filme? Sie lesen es in jedem Film und verwenden, um tatsächlich die besten Empfehlungsfilme
für jeden bestimmten Benutzer in unserem Datensatz Art erstaunlich zu produzieren , und Sie werden überrascht sein, wie einfach es ist. Lass uns gehen. Okay, lassen Sie uns alles zusammen setzen und tatsächlich vollständig aufgeblasen Artikel basierte kollaborative Filterung, wo wir Filme für jeden Benutzer empfehlen können, basierend auf dem ganzen Verhalten dessen, was jeder
jeden Film bewertet hat . Wie erstaunlich ist das? Was wirklich erstaunlich ist, ist, wie einfach Pandas es macht. Also lasst uns durch sie gehen. Okay, also fangen wir an, indem wir den Film-Objektiv-Datensatz importieren, den wir wieder haben. Wir verwenden eine Teilmenge davon, die momentan nur 100.000 Bewertungen enthält. Aber es gibt größere Datensätze, die Sie von der Gruppe Lynn Stott bekommen können oder bis zu Millionen von Bewertungen, wenn Sie so geneigt sind. Denken Sie
jedoch daran, jedoch daran, wenn Sie anfangen, mit diesen wirklich großen Daten umzugehen, werden
Sie die Grenzen dessen, was Sie in einer einzigen Maschine tun können, in dem, was Pandas umgehen
können. Also, wissen
Sie, ich habe andere Kurse zu Techniken wie Spark und Map Reduce, die viel
größere Empfehlungen behandeln können . Also, wenn du neugierig bist, sieh dir die an. Aber jetzt, lasst uns damit arbeiten. So wie zuvor werden
wir die u dot Datendatei importieren, die alle einzelnen Bewertungen für
jeden Benutzer enthält , welchen Film sie überfallen haben. Und dann binden wir das zusammen mit dem Filmtitel, damit wir nicht einfach mit
dem neuen Miracle-Film arbeiten . Ich DS. Gehen Sie voran und tun Sie das, und wir enden mit diesem Datenrahmen Weg, um dies zu lesen. Zum Beispiel, User I D 308 bewertet Toy Story vier Sterne und User I D 66 bewertet Toy Story drei Sterne, und dies würde jede Bewertung für jeden Benutzer für jeden Film und wieder enthalten, genau wie zuvor, haben wir die wunderbare Pivot-Tabellenbefehl und Pandas, um einen neuen Datenrahmen zu erstellen. Basierend auf diesen Informationen, wo der Index jede Zeile der Benutzer ist, i D. Und die Spalten wurden aus allen eindeutigen Filmtiteln in meinem Datensatz, und jede Zelle enthält eine Lesung. Was wir am Ende haben, ist diese unglaublich nützliche Matrix-Sparse-Matrix, die Benutzer
für jede Zeile und Filme für jede Spalte enthält . Und wir haben grundsätzlich jede Nutzerbewertung für jeden Film in dieser Matrix. So
gab Benutzer I D ein, zum Beispiel, zum Beispiel,101 Dalmations zwei Sterne. Und wieder, all diese Entei endet. Nicht eine Zahl ist stellen fehlende Daten, so dass nur zeigt, zum Beispiel, Benutzer i D man nicht bewerten den Film gewann 900. Okay, also wieder, sehr nützlich Natur Zeh haben. Wenn wir benutzerbasierte kollaborative Filterung durchführen, könnten
wir Korrelationen zwischen Benutzern zwischen jedem einzelnen Benutzer des Bewertungsvektors berechnen um ähnliche Benutzer zu finden. Und da wir Item-basierte, kollaborative Filterung waren mehr Schüler Beziehungen zwischen den Spalten. So wie eine Korrelationsnote zwischen zwei beliebigen Spalten zu tun, die uns eine
Korrelationsnote für ein bestimmtes Filmpaar geben wird . Also, wie machen wir das? Es stellt sich heraus, dass Pandas das auch unglaublich einfach machen. Es hat eine eingebaute Kernfunktion, die tatsächlich den Korrelationswert für jede in der gesamten Matrix gefundene
Aufruf-Beeinträchtigung berechnet . Es ist fast so, als hätten sie an uns gedacht, also lasst uns das machen. Es ist eine ziemlich rechnerische, teure Sache zu tun. Es wird also einen Moment dauern, um tatsächlich mit einem Ergebnis zurückzukommen. Aber da haben wir es. Also, was haben wir hier? Wir haben hier, einen neuen Datenrahmen, in dem jeder Film in der Zeile und in der Spalte ist, so dass wir an der
Kreuzung von zwei bestimmten Filmen schauen und ihre Korrelationsnote zueinander basierend auf dieser Benutzerbewertung Daten, die wir erschienen Ursprünglich? Wie cool ist das? So zum Beispiel ist
zum Beispiel
der Film 101 Dalmations perfekt mit sich selbst korreliert, , weil er identische User-Rating-Vektoren hat. Aber wenn man sich 101 Dalmations Beziehung zum Film ansehen 12 Angry Men, es ist eine viel niedrigere Korrelations-Score, weil diese Filme Luft ziemlich unähnlich, macht Sinn, richtig. Also habe ich jetzt diese wunderbare Matrix, die mir die Ähnlichkeit von zwei beliebigen Filmen zueinander geben wird. Es ist irgendwie erstaunlich und sehr nützlich für das, was wir jetzt tun werden. Genau wie zuvor müssen
wir uns mit falschen Ergebnissen beschäftigen, also möchte ich nicht auf Beziehungen schauen, die auf einer kleinen Menge an
Verhaltensinformationen basieren . Es stellt sich also heraus, dass die Pandas-Kernfunktion tatsächlich ein paar Parameter hat, die Sie ihm geben können . Eins ist die eigentliche Korrelationsbewertungsmethode, die Sie verwenden möchten. Also werde ich sagen, Pearson-Korrelation verwenden. Aber es hat auch einen Parameter für Männer Perioden, den Sie ihm geben können und das heißt im Grunde, ich möchte nur, dass Sie Korrelationswerte berücksichtigen, die von
mindestens in diesem Beispiel
100 Personen gesichert werden , die beide Filme bewertet haben und das wird diese falschen Beziehungen loswerden , die auf nur einer Handvoll Menschen basieren, die ein wenig anders sind als das, was wir getan haben. Und die Gegenstandsähnlichkeiten Übung, wo wir gerade geworfen haben jeden Film, der von
weniger als 100 Menschen überfallen wurde . Was wir hier tun, ist Film-Ähnlichkeiten zu werfen, bei denen weniger als 100 Leute
beide Filme bewertet haben. Okay, Sie können jetzt sehen, dass wir viel mehr in Enden und die resultierende Matrix haben. In der Tat, sogar Filme, die ich mir ähnlich war, werden rausgeworfen. So zum Beispiel wurde
zum Beispiel
der Film 1 900 vermutlich von weniger als 100 Menschen gesehen, so dass er nur völlig 101 geworfen wird. Dalmations
jedoch jedoch überlebt mit einer Korrelations-Score von einem, und es gibt tatsächlich keine Filme in diesem kleinen Beispiel des Tages eingestellt ist, die sich
voneinander unterscheiden , die 100 Menschen gemeinsam hatten, die beides. Aber es gibt genug Filme, die überleben, um aussagekräftige Ergebnisse zu erzielen. Also was, wir machen diese Daten gut, was wir tun wollen, ist, Filme für Menschen zu empfehlen. Die Art und Weise, wie wir das tun, wie wir uns alle Bewertungen gegeben wurden, Menschen finden Filme ähnlich dem Zeug, das sie bewertet, und das sind Kandidaten oder Empfehlungen für diese Person. Lassen Sie uns also beginnen, indem Sie eine gefälschte Person erstellen, um Empfehlungen für So habe ich tatsächlich einen gefälschten Benutzer I
D
hinzugefügt D Nummer Null zur Filmlinie Status sagte, dass wir von Hand verarbeiten, und diese Art von repräsentiert jemand wie mich, der Star Wars und das Imperium liebte, schlägt zurück , aber hasste Filme verweht mit dem Wind. Das stellt also jemanden dar, der Star Wars wirklich liebt, aber den alten Stil über
romantische Dramen nicht mag . Okay, also gab ich Empire-Strikes in Star Wars eine Fünf-Sterne-Bewertung und ein Eins, der vor dem Wind
verweht war. Also werde ich versuchen, Empfehlungen für diesen fiktiven Benutzer zu finden. Also, wie mache ich das? Nun, lassen Sie uns damit beginnen, eine Serie namens SIM-Kandidaten zu erstellen, und ich werde durch jeden Film gehen, den ich bewerten. Also für I und Rain Null durch die Anzahl der Bewertungen, die ich in meinen Bewertungen
habe, werde ich ähnliche Filme zu denen addieren, die ich bewertet. Also werde ich die Kernmatrix State of Frame nehmen, die magische, die alle Ähnlichkeiten des Films hat. Ich werde eine Korrelationsmatrix mit meinem Bewertungsabfall erstellen, alle fehlenden Werte. Und dann werde ich die resultierende Korrelationsnote so skalieren, wie gut ich diesen Film bewertet habe . Also die Idee hier ist, dass ich zum Beispiel alle Ähnlichkeiten durchmachen werde, damit das Imperium
zurückschlägt , , und ich werde diese alle um fünf skalieren, weil ich das Empire-Strikes wirklich mochte. Aber wenn ich durchgehe und die Ähnlichkeiten für weg mit dem Wind, Ich werde nur diejenigen von einem zu skalieren, weil ich nicht wie Verweht mit dem Wind. So wird dies mehr Kraft zu Filmen geben, die Filmen ähnlich sind, die ich mochte, und weniger Stärke zu ähnlichen zwei Filmen, die Filmen ähnlich sind, die ich nicht mochte. Okay, also gehe ich einfach durch und baue diese Liste von Ähnlichkeitskandidaten auf, die
Kandidaten empfehlen . Wenn Sie die Ergebnisse sortieren und ihn aus, Mal sehen, was wir bekommen. Hey, die sehen nicht so schlimm aus, oder? Also offensichtlich schlägt das Imperium zurück in Star Wars kommen an der Spitze, weil ich diese
Filme explizit mag . Ich habe sie bereits beobachtet und Rate von ihnen, aber sprudelt bis an die Spitze der Liste ist auf den Jet I zurückgekehrt, was wir erwarten würden, und Raiders der verlorenen Arche. Lassen Sie uns also beginnen, diese Ergebnisse ein wenig mehr zu verfeinern. Wir sehen, dass wir doppelte Werte zurückbekommen, also wenn wir einen Film haben, der mehr als einen Film ähnelt, den ich bewertet habe, wird
er mehr als einmal in den Ergebnissen zurückkommen. Also wollen wir diese zusammen kombinieren. Also, wenn ich in der Tat den gleichen Film Rückkehr der Jedi, zum Beispiel, mit ähnlich wie sowohl Star Wars und das Imperium schlägt zurück. Vielleicht sollte das zusammen zu einer kombinierten,
stärkeren Empfehlungen zusammengefasst werden. Punktzahl. Gehen wir weiter und machen das. Wir werden die Gruppe nach Befehl wieder verwenden, um alle Straßen, die
für den gleichen Film sind, zusammenzufassen , und wir werden dort zusammenfassen. Korrelationswerte und schauen Sie sich die Ergebnisse an. Hey, das sieht wirklich gut aus. So kommt die Rückkehr der Jedi weit oben heraus, wie es sollte, mit einer Punktzahl von sieben Raiders der verlorenen Arche, einer nahen Sekunde und fünf. Und dann fangen wir an, Indiana Jones und Last Crusade und ein paar weitere Filme zu bekommen. Brücke auf dem Fluss Kwai Zurück in die Zukunft des Sting. Das sind alles Filme, die ich wirklich genießen würde. Weißt du, ich mag
auch Disney-Filme in der alten Schule . Es ist also nicht so verrückt, wie es scheinen mag. Das letzte, was wir tun müssen, ist die Filme herauszufiltern, die ich bereits bewertet habe, weil es keinen Zugriff auf Filme, die Sie bereits gesehen haben, so dass ich alle Zeilen fallen kann die in meinen ursprünglichen Bewertungen enthalten sind. Siris Blick auf die Top 10 Ergebnisse. Da haben wir es. Gib den Jet zurück. Ich bringe Strahlen der verlorenen Arche zurück. Indiana Jones Alle Top-Ergebnisse für meinen fiktiven Benutzer, und sie alle macht Sinn, ein paar familienfreundliche Filme zu sehen. Weißt du, Cinderella war DeVos Dumbo einschleichen? Wahrscheinlich basierend auf der Anwesenheit von Verweht mit dem Wind da drin, obwohl es nach unten gewichtet wurde, ist es immer noch da drin. Es wird immer noch gezählt, und dort haben wir unsere Ergebnisse. Also, da hast du es ziemlich cool. Wir haben tatsächlich Ergebnisse generiert, Empfehlungen für Benutzer zu geben, und wir könnten das für jeden Benutzer in unserem gesamten Datenrahmen tun. Also gehen Sie voran,
spielen, dass, wenn Sie als nächstes wollen, Ich möchte darüber reden, wie Sie Ihre Hände schmutzig wenig mawr bekommen und mit diesen
Ergebnissen spielen versuchen, auf sie zu verbessern. In Ordnung, ich bin ziemlich aufgeregt von diesen Ergebnissen bis jetzt. Sie sehen wirklich vernünftig aus. es gibt Raum für Verbesserungen, Aberes gibt Raum für Verbesserungen, und das wird meine Herausforderung für dich in unserem nächsten Vortrag sein. Wir werden über einige Möglichkeiten sprechen, die Sie tatsächlich erweitern und auf diesem
Python-Notebook aufbauen und tatsächlich bessere Filmempfehlungen machen als das, was ich Ihnen zu Beginn gegeben habe . Es gibt also ein bisschen Kunst dazu. Wissen Sie, Sie müssen weiterhin verschiedene Ideen und verschiedene Techniken iterieren und ausprobieren, bis Sie bessere und bessere Ergebnisse erzielen. Und du kannst das so ziemlich für immer tun. Ich meine, ich habe eine ganze Karriere daraus gemacht, also erwarte ich nicht, dass du die nächsten
10 Jahre damit verbringst, das so zu verfeinern, wie ich es getan habe. Aber es gibt einige einfache Dinge, die du tun kannst, also lass uns darüber reden.
48. Die Ergebnisse der Empfehlungen verbessern: Als Übung möchte
ich Sie herausfordern, diese Empfehlungen noch besser zu machen. Also lassen Sie uns über einige Ideen reden, die ich habe, und vielleicht haben Sie einige Ihrer eigenen dazu. Sie können tatsächlich ausprobieren und experimentieren, Ihre Hände schmutzig machen und versuchen, bessere Filmempfehlungen zu machen. Okay, also gibt es viel Raum für Verbesserungen. Dennoch, in diesen Empfehlungsergebnissen, dann können Sie sehen, dass es eine Art Kunst gibt. Es gibt eine Menge Entscheidungen, die wir getroffen haben, wie viele andere Empfehlungsergebnisse basierend auf Ihrer Bewertung dieses Artikels, von dem es stammt, oder welchen Schwellenwert Sie für die minimale Anzahl von Personen auswählen möchten, die zu bestimmten
Filmen bewertet haben . Es gibt also eine Menge Dinge, die Sie viele verschiedene Algorithmen optimieren können, die Sie ausprobieren können, und Sie können viel Spaß mit dem Versuch haben, bessere Filmempfehlungen aus dem
System zu machen . Also, wenn du es machst, fordere
ich dich auf, genau das zu tun. Also hier sind einige Ideen, wie Sie tatsächlich versuchen könnten, die Ergebnisse in
diesem Vortrag zu verbessern , so dass Sie einfach voran gehen und mit dem Artikel basierten cf dot i python Notebookdatei spielen und damit
basteln können. So zum Beispiel gesehen, haben wir
zum Beispiel gesehen,dass die Korrelationsmethode tatsächlich einige Parameter für die Correlation comp
YouTube-Berechnung hatte . Wir haben Pearson in unserem Beispiel verwendet, aber es gibt andere, die Sie nachschlagen und ausprobieren können. Sehen Sie, was es zu Ihren Ergebnissen macht. Wir haben einen Mindestzeitraum von 100 verwendet. Vielleicht ist das zu hoch. Vielleicht ist es zu niedrig. Wir haben es einfach willkürlich ausgewählt. Was passiert, wenn man damit mit diesem Wert spielt? Wenn Sie das
zum Beispiel senken würden, würde
ich erwarten, dass Sie ein paar neue Filme sehen. Vielleicht haben Sie nie gehört, aber vielleicht immer noch eine gute Empfehlung für diese Person, oder wenn Sie es höher erhöhen, würden
Sie sehen, dass Sie nichts als Blockbuster wissen. So manchmal müssen Sie darüber nachdenken, was das Ergebnis ist, dass Sie aus einem empfehlen
ihr System wollen . Gibt es eine gute Balance zwischen Menschen Filme zu zeigen, die sie von einem
Film gehört haben, der sich bewegt, von dem sie noch nicht gehört haben? Wie wichtig ist die Entdeckung neuer Filme für diese Leute im Vergleich zu haben Vertrauen in das empfohlene System, indem sie eine Menge von Filmen sehen, die sie gehört haben. Also wieder, da ist eine Art Kunst. Wir können auch die Tatsache verbessern, dass wir viele Filme in den Ergebnissen gesehen haben, die
ähnlich waren wie „Vom Wind verweht “, obwohl ich nicht mochte. Wissen Sie, wir warteten auf diese Ergebnisse niedriger als Ähnlichkeits-Filme, die ich genossen habe. Aber vielleicht sollten diese Filme bestraft werden, wenn ich „Vom Wind verweht“ so sehr hasste . Vielleicht
sollten Ähnlichkeiten mit dem Wind verweht, wie der Zauberer von Oz, wie der Zauberer von Oz,tatsächlich bestraft werden und, weißt
du, in ihrer Partitur
gesenkt werden, anstatt alles zu erhöhen. Das ist also eine weitere einfache Modifikation, mit der Sie machen und spielen können. Es gibt wahrscheinlich einige Ausreißer in unserem Nutzerbewertungsdatensatz. Was ist, wenn unsere Zehenwerfenden Leute, die lächerliche Menge Filme überfallen haben, vielleicht alles verzerren? Sie könnten tatsächlich versuchen, diese Benutzer zu identifizieren und sie als eine andere Idee zu werfen. Und wenn Sie wirklich wollen, ein großes Projekt, wenn Sie wirklich wollen, um Ihre Zähne in dieses Zeug versenken, könnten
Sie tatsächlich die Ergebnisse dieser Empfehlung, aber empfohlen Motor,
indem Sie die Techniken der trainierten Test. Was wäre, wenn anstatt eine willkürliche Empfehlungsnote zu haben, die die
Korrelation zusammenfasst , Punktzahl jedes einzelnen Films tatsächlich auf eine vorhergesagte Bewertung für jeden Film skaliert hat. Also, wenn die Ausgabe meines Empfehlungssystems Film und meine vorhergesagte Bewertung für diesen
Film in einem Zugtestsystem waren , könnte
ich tatsächlich versuchen, herauszufinden Wie gut ich vorherzusagen Filme
,die dieser Benutzer tatsächlich
gesehen hat , und lesen Sie es vorher? Okay, also könnte ich , einige der Bewertungsdaten
beiseite legen und sehen,wie gut mein empfohlenes System
vorhersagen kann . Die Benutzerbewertungen waren diese Filme, und das wäre eine quantitative und prinzipielle Möglichkeit, den Fehler davon zu messen. Empfehle ihren Motor. Aber auch hier gibt es ein bisschen mehr Kunst als eine Wissenschaft. Auch wenn der Netflix-Preis diesen Bereich tatsächlich genutzt hat, bedeutet
Metrik namens Route Me quadratische Fehler. Was sie früher ziemlich besonders waren, ist, dass wirklich ein Maß für ein gutes
Empfehlungssystem . Grundsätzlich messen
Sie die Fähigkeit Ihres Empfehlungssystems, die Bewertungen von Filmen vorherzusagen die eine Person bereits gesehen hat, ist
aber nicht der Zweck einer empfohlenen Engine, Filme zu empfehlen, die eine Person nicht hat beobachtete, dass sie genießen könnten? Es gibt zwei verschiedene Dinge. Also, leider, nicht sehr einfach zu messen, was Sie wirklich messen wollen. Also manchmal muss man irgendwie mit Ihrem Bauchinstinkt und dem richtigen Weg, um die Ergebnisse eines
Empfehlungsvorschlags zu messen gehen . Ihr Motor ist es, die Ergebnisse zu messen, die Sie durch sie zu fördern versuchen. Vielleicht versuche ich, Leute dazu zu bringen, mehr Filme oder tolle neue Filme zu sehen oder
mehr Sachen zu kaufen . Ausführen von tatsächlichen kontrollierten Experimenten auf einer realen Website wäre der richtige Weg, um dies
zu optimieren , im
Gegensatz zu der Verwendung von geschulten Tests. Also, weißt
du, ich bin dort etwas mehr Details gegangen, als ich vermutlich hätte tun sollen. Aber die Lektion ist, man kann immer über diese Dinge in Schwarz und Weiß nachdenken. Weißt du, manchmal kann man die Dinge nicht direkt und quantitativ messen, und man muss ein bisschen gesunden Menschenverstand verwenden, und das ist ein Beispiel dafür. Wie auch immer, hier sind einige Ideen, wie man zurück zu gehen und die Ergebnisse dieser empfehlen er
Motor zu verbessern , die wir geschrieben haben. Also bitte zögern Sie nicht, damit herumzubasteln. Sehen Sie, ob Sie es verbessern können. Wie auch immer Sie möchten und haben etwas Spaß damit. Dies ist eigentlich ein sehr interessanter Teil des Kurses, also hoffe ich, Sie genießen es. Also geh es mal ausprobieren. Sehen Sie, ob Sie unsere ersten Ergebnisse verbessern können. Da. Es gibt einige einfache Ideen, um zu versuchen, diese Empfehlungen besser zu machen und einige viel kompliziertere, auch. Es gibt keine richtige oder falsche Antwort. Ich werde dich nicht bitten, deine Arbeit zu machen, und ich werde deine Arbeit nicht überprüfen. Wissen Sie, Sie müssen nur mit ihm herumspielen und etwas Vertrautheit mit ihm bekommen und experimentieren und sehen, welche Ergebnisse Sie bekommen. Das ist der springende Punkt, nur um Sie mit der Verwendung von Python für diese Art von Sache vertraut zu machen und sich mit den Konzepten hinter der elementbasierten kollaborativen Filterung vertraut zu machen. Also viel Spaß damit. Siehst du, was ich mir einfällt? Wenn Sie mit einigen wirklich guten Ergebnissen kommen,
stellen Sie sicher, dass Sie diese für alle unsere anderen Schüler posten, um in den Diskussionen hier zu sehen, würde ich neugierig
sein, was Sie kommen mit. So haben Sie es
49. K-Nearest-Neighbors: Nachbarn: Konzepte: Lassen Sie uns über ein paar weitere Data Mining und Machine Learning Techniken sprechen, die von
Ihnen erwartet werden . Wir werden mit einem wirklich einfachen beginnen, der K nächsten Nachbarn Air Cannon kurz genannt wird. Und Sie werden überrascht sein, wie einfach eine gute überwachte
Technik des maschinellen Lernens sein kann. Werfen wir einen Blick. Lassen Sie uns also über einige weitere maschinelle Lerntechniken von Data Mining sprechen, die Arbeitgeber erwarten dass
Sie über ein paar mehr wissen, die wir noch nicht abgedeckt haben. Einer der einfacheren wird K nächste Nachbarn genannt, also fangen wir damit an. Klingt schick, aber es ist eigentlich eine der einfachsten Techniken da draußen. Die Idee ist, sagen
wir, Sie haben ein Streudiagramm und Sie können den Abstand zwischen zwei beliebigen Punkten
in diesem Skylar-Plot berechnen , oder? Also die Idee von K nächsten Nachbarn ist Angenommen, Sie haben eine Reihe von Daten, die Sie
bereits klassifiziert haben , von
denen Sie das System trainieren können, wenn ich einen neuen Datenpunkt habe. Alles, was ich tue, ist, auf der Grundlage dieser Entfernungsmetrik die nächsten K Nachbarn zu betrachten und sie alle
über die Klassifizierung dieses neuen Punktes abstimmen zu lassen . Also lasst uns hier Beispiel nehmen. Stellen wir uns vor, dass diese Streuhandlung hier Filme plottet, und vielleicht stehen die Blue Squares für Science-Fiction-Filme und die roten Dreiecke für Dramafilme. Okay, und vielleicht ist das das Plotten von Bewertungen gegen Popularität oder irgendetwas anderes, was Sie sich erträumen können. Wir haben also eine Art Entfernung, die wir basierend auf Bewertung und Popularität
zwischen zwei beliebigen Punkten im Streudiagramm berechnen können. Nehmen wir an, ein neuer Punkt kommt in einem neuen Film, dass wir den John R.
Four nicht kennen . Aber wir könnten tun, ist sagen, Lassen Sie uns K 23 und nehmen Sie die drei nächsten Nachbarn zu diesem Punkt auf dem Streudiagramm. Sie können dann alle über die Klassifikationen abstimmen, damit Sie sehen können, ob ich die drei nächsten
Nachbarn K's drei nehme . Ich muss Filme und einen Science-Fiction-Film Drama, und ich würde dann lassen sie alle Stimmen und wir würden die Deklassifizierung des Dramas für diesen
neuen Punkt auf der Grundlage dieser drei nächsten Nachbarn wählen . Nun, wenn ich diesen Kreis auf fünf nächste Nachbarn K von fünf erweitern
würde, bekomme ich eine andere Antwort. In diesem Fall nehme ich drei Science-Fiction in Dramafilme auf. Wenn ich sie alle abstimmen lasse, würde
ich stattdessen nur mit einer Klassifikation von Science-Fiction enden, so dass Sie sehen können, dass die Wahl von K sehr wichtig sein kann. Sie möchten sicherstellen, dass es klein genug ist, dass Sie nicht zu weit gehen müssen und beginnen Ihre relevanten Nachbarn
aufzunehmen, aber es muss groß genug sein, um genug Datenpunkte zu schließen, um eine sinnvolle Probe zu erhalten, so oft müssen Sie verwenden geschulten Test oder eine ähnliche Technik, um tatsächlich zu bestimmen, was der richtige Wert von K vergeben wird. Datensatz. Aber am Ende des Tages müssen Sie Ihre Intuition beginnen und von dort aus arbeiten. Das ist alles, was es dazu gibt. So einfach ist es. Also, obwohl es eine sehr einfache Technik ist, wie geht es Ihnen? Nimmt buchstäblich DK nächste Nachbarn auf einem Streudiagramm und lässt sie alle über die
Klassifizierung abstimmen . Sie qualifiziert ein beaufsichtigtes Lernen, da es die Trainingsdaten einer Reihe
bekannter Punkte und bekannter Klassifikationen verwendet , um die Einstufung eines neuen Punktes zu informieren. Aber lassen Sie uns etwas komplizierteres damit machen und tatsächlich mit Filmen herumspielen nur auf ihren Metadaten basieren. Mal sehen, ob wir tatsächlich herausfinden können, die nächsten Nachbarn eines Films basierend auf nur den intrinsischen Werten dieser Filme de als die Bewertungen für den John oder Informationen dafür . Also in der Theorie, wir könnten etwas ähnlich wie Kunden, die beobachtet haben, neu erstellen. Auch waschen, Sie wissen, dies ist ein Screenshot von amazon dot com. benutze nur Stock nächsten Nachbarn und ich könnte es einen Schritt weiter gehen. Sobald Sie die Filme identifizieren, die einem bestimmten Film ähnlich sind, basierend auf dem K nächsten Nachbarn Algorithmus, kann
ich sie alle über eine vorhergesagte Bewertung für diesen Film abstimmen lassen. Das ist also, was wir in unserem nächsten Beispiel tun werden. Lasst uns dran kommen. So gibt es die Konzepte von Can und K nächsten Nachbarn. Lassen Sie uns das auf ein Beispiel anwenden, um Filme zu finden, die
einander ähnlich sind und die nächsten Nachbarfilme verwenden, um die Bewertung für einen anderen Film vorherzusagen, den wir noch nicht gesehen haben.
50. Mit KNN kannst du eine Bewertung für einen Film vorgehen: Alles klar, wir werden tatsächlich die einfache Idee von Cayenne NK nächsten Nachbarn nehmen und das
auf ein komplizierteres Problem anwenden . Und das ist die Vorhersage der Bewertung eines Films, nur
angesichts seines Genres und Leseinformationen. Also lasst uns eintauchen und machen, dass Lasst uns etwas Spaß mit K und N haben und tatsächlich versuchen,
Filmbewertungen nur basierend auf dem K nächsten Nachbarn Algorithmus vorherzusagen und sehen, wo wir bekommen. Also, wenn Sie mitverfolgen wollen, gehen Sie vor und öffnen Sie das Kanone hohe Python Notebook und Sie können mit mir spielen. Es ist, was wir tun werden, ist eine Distanzmetrik zwischen Filmen nur basierend auf ihren
Metadaten und durch Metadaten definiert , nur mich und Informationen, die intrinsisch für die Filminformationen sind mit dem
Film verbunden . Konkret werden
wir uns die Genre-Klassifikationen des Films ansehen. Jeder Film in unserem Film Lens Datensatz enthält zusätzliche Informationen darüber, was John oder Ist es gehört, und ein Film kann zu mehr als einem Genre gehören. Ein Gezeichnet sind so etwas wie Science-Fiction oder Drama oder Komödie. Sie wissen, was haben Sie animierte Filme, und wir werden auch auf die allgemeine Popularität des Films durch die Anzahl der
Menschen , die es überfallen. Und wir kennen auch die durchschnittliche Bewertung jedes Films. Also kann ich all diese Informationen zusammen kombinieren, um im Grunde eine Metrik der Entfernung
zwischen zwei Filmen zu erstellen , die nur auf Rating-Informationen und John oder Informationen basiert. Mal sehen, was wir bekommen. Also benutzen wir wieder Pandas, um das Leben einfach zu machen. Und wenn Sie noch einmal folgen, stellen Sie sicher, dass Sie den Pfad zum Film-Lines-Datensatz überall dort ändern, wo Sie es installiert haben, was fast sicher nicht das sein wird, was in diesem Python-Notebook ist. Also geh weiter und ändere das. Wenn Sie wie zuvor folgen wollen, wir nur die tatsächliche Bewertungsdatendatei selbst importieren, h. Sie Punktdaten mit der Lese-Funktion Siehe SV und Pandas,
wo, bis sie tatsächlich eine Registerkarte hat, getrennt oder nicht, ein Komma. Und wir werden die ersten 3 Spalten importieren, die den Benutzer I d Film I D und Bewertung für jede einzelne Filmbewertung in unserem
Datensatz darstellen . Also gehen wir voran und führen das aus und schauen uns die Spitze an. Wir können sehen, dass es funktioniert. Wir enden mit einem Datenrahmen, der Benutzer I.
D.
Film Idee und Bewertung hat D. , zum Beispiel, Benutzer I D bewertet Film I D 50, die ich glaube, ist Star Wars, fünf Sterne und so weiter und so weiter. Also, wenn Sie aggregierte Informationen über die Bewertungen erreichen Film, das ist das nächste, was wir herausfinden müssen. Also werden wir die Gruppe nach Funktion in Pandas verwenden, um tatsächlich alles nach
Filmideen zu gruppieren . Also werden wir alle Bewertungen kombinieren, die einzelnen Filme erreichen, und wir werden über die Anzahl der Bewertungen und die durchschnittliche Bewertung, die für
jeden Film bedeuten . Also lassen Sie uns voran und tun, dass kommt ziemlich schnell zurück. So gibt uns dies einen anderen Datenrahmen, der uns sagt, zum Beispiel Film I D hatte 452 Bewertungen, was ein Maß für seine Popularität ist. Wie viele Leute haben es tatsächlich gesehen und überfallen und ein durchschnittlicher Bewertungsergebnis von 3,8. Also 14 52 Leute sahen Film I D eins, und sie gaben ihm eine durchschnittliche Bewertung von 3,87, was ziemlich gut ist jetzt. Die unformatierte Anzahl der Bewertungen ist für uns nicht so nützlich? Ich meine, ich weiß nicht, 452 bedeutet, dass es beliebt ist oder nicht. Also, um zu normalisieren, was wir tun werden, ist im Grunde zu messen, dass gegen die maximale und minimale Anzahl von Bewertungen erreichen Film. Und wir könnten das mit dieser kleinen Lambda-Funktion hier tun, damit wir eine Funktion auf
einen gesamten Datenrahmen anwenden können . Auf diese Weise werden wir die NUM Pie Min und Max Funktionen verwenden um die maximale Anzahl von Bewertungen in der minimalen Anzahl der gefundenen Bewertungen zu finden im gesamten Datensatz. Also nehmen wir den beliebtesten Film im am wenigsten populären Film und finden den Bereich dort und normalisieren alles gegen diesen Bereich. Also, was uns das gibt, wir führen es aus. Es ist im Grunde ein Maß für die Popularität für jeden Film auf einer Skala von 0 bis 1. Also würde eine Punktzahl von Null bedeuten, dass niemand es beobachtet hat. Es ist der am wenigsten populäre Film, und eine Partitur von einem würde bedeuten, dass jeder ihn gesehen hat. Es ist der beliebteste Film, in dem es speziell der beliebteste Film ist, der Film, den die meisten Leute gesehen haben. Okay, also haben wir ein Maß für die Popularität des Films jetzt, wo wir für unsere Distanz verwenden können. Metrisch. Als Nächstes. Lasst uns Auszüge aus Jonah-Informationen machen. Es stellt sich also heraus, dass es eine Utah Item-Datei gibt, die nicht nur die Filmnamen enthält, sondern auch alle Genres, zu denen jeder Film gehört. Also wird dieses kleine bisschen Code tatsächlich durchgehen. Jede Zeile von Ihnen Punkt-Element tut dies auf die harte Art und Weise, die wir nicht verwenden. Sie wissen, dass alle Pan-Dysfunktionen dieses Mal gerade einen Python verwenden würden.
Stellen Sie sicher, dass Sie diesen Pfad überall dort ändern, wo Sie diese Informationen installiert haben. Also werden wir unsere Sie Punkt-Item-Datei öffnen, und dann werden wir durch jede Zeile in der Datei nacheinander lesen, Russ, entfernen Sie die neue Zeile am Ende und teilen sie basierend auf der Pipe. Die Begrenzer in dieser Datei und wir extrahieren den Film I D. Der Filmname und alle einzelnen Genre-Felder. Im Grunde gibt es also eine Reihe von Nullen und Einsen in 19 verschiedenen Feldern in der
Quelldatenreichweite . Eines dieser Felder repräsentiert ein bestimmtes Genre, also lasst uns sehen, wie das aussieht, und wir werden am Ende ein Python-Wörterbuch erstellen, das Film I DS ihren Namen und
Genres zuordnet , und dann werden wir auch wieder in unsere Rating-Informationen. So werden wir Genre Popularität auf einer Skala 01 und die durchschnittliche Bewertung genannt haben. Das ist also, was dieses kleine Code-Snippet tut. Lassen Sie uns das laufen und nur um zu sehen, was wir am Ende
haben, können wir den Wert für Film I.
D.
One extrahieren D. , was zufällig Toy Story ist. Es wird Pixar Film von 1995 Sie wahrscheinlich gehört haben, und was wir in unserem Wörterbuch haben, ist für den Eintrag. Ein Zug der I D Won. Der Name ist Toy Story. Dies ist eine Liste aller Genres, bei denen eine Null angibt, dass sie nicht Teil dieses Genres ist, und eine zeigt an, dass sie Teil dieses Genres ist. Und es gibt eine Datendatei im Film-Objektiv-Datensatz, die Ihnen sagt, was jeder dieser John oder Fields tatsächlich entspricht. Aber für unsere Zwecke ist
es nicht wirklich wichtig, oder? Wir versuchen nur, die Distanz zwischen Filmen anhand ihrer Genres zu messen, also ist alles, was mathematisch wichtig ist, wie ähnlich dieser Vektor der Genres einem anderen Film ist . Okay, der eigentliche Jonah ist selbst. Nicht wichtig. Wir wollen nur sehen, wie gleich oder anders zwei Filme sind. Und da, John oder Kostenklassifizierungen. Sie haben also diesen John Relist. Wir haben die Popularitätsbewertung, die wir berechnet haben, und wir haben dort die mittlere oder durchschnittliche Bewertung für Toy Story. Lassen Sie uns also voran gehen und überlegen, wie man all diese Informationen zusammen in einer
Distanzmetriken kombiniert . So haben wir zum Beispiel die K nächsten Nachbarn für eine Spielzeuggeschichte beschränkt . Also habe ich diese Distanzfunktion eher willkürlich berechnet, die zwei Film I DS nimmt und eine Distanzbewertung zwischen den beiden
berechnet. Und wir werden dies zunächst auf die Ähnlichkeit stützen, indem wir eine Co-Zeichen-Ähnlichkeitsmetrik zwischen den beiden John Reflectors verwenden. Also, wie ich schon sagte, wir werden nur die Liste der Genres für jeden Film nehmen und sehen, wie ähnlich sie
einander sind . Eine Null zeigt an, dass sie nicht Teil dieses Genres ist. Einer zeigt an, dass es das ist. Wir werden dann die Popularitätswerte vergleichen und einfach den absoluten Wert
der Differenz zwischen diesen beiden Popularitäts-Scores nehmen und diese auch in Richtung der
Distanzmetrik verwenden , und wir werden diese Informationen allein verwenden , um den Abstand zwischen zwei Filmen zu definieren. also zum Beispiel Wenn wiralso
zum Beispielden Abstand zwischen Filmideen zwei und vier berechnen würden, würde
diese Funktion eine Distanzfunktion zurückgeben, die auf Lee auf der Popularität dieses Films und auf den Genres dieser Filme. Okay, also stellen Sie sich vor, das ist ein Streudiagramm, wenn Sie so wollen, zurück zu unserem ursprünglichen Beispiel in den Folien, wo ein Zugriff ein Maß für die
Genreähnlichkeit sein könnte , basierend auf Co-Zeichen-Metrik, der andere Zugriff könnte Popularität sein. Okay, wir finden nur den Abstand zwischen diesen beiden Dingen. In diesem Beispiel, wo wir versuchen, die Entfernung mit unserer Distanzmetrik zwischen Filmen zwei und
vier zu berechnen , enden
wir mit einer Punktzahl von 40,8. Und denken Sie daran, eine weit entfernte Entfernung bedeutet, dass es nicht ähnlich ist, richtig. Wir wollen die nächsten Nachbarn mit kleinster Entfernung. Also eine Punktzahl von 0,8 ziemlich hohe Zahl auf einer Skala von 0 zu 1. Das sagt mir also, dass diese Filme wirklich nicht ähnlich sind. Wir machen nur eine schnelle Vernunft Check und sehen, was diese Filme wirklich sind. Es stellt sich heraus, dass es die Filme GoldenEye und Get Shorty sind, die ziemlich verdammt verschiedene Filme sind. Du weißt, du hast James Bond Action-Abenteuer hier in einem Comedy-Film und
überhaupt nicht sehr ähnlich . Sie sind tatsächlich vergleichbar in Bezug auf die Popularität. Aber der John R. Unterschied hat es geschafft. Okay, also lasst uns alles als Nächstes zusammenfassen. Wir werden ein bisschen Code richtig machen, um tatsächlich einen bestimmten Film I D zu nehmen und tatsächlich die K nächsten Nachbarn zu
finden. Alles, was wir tun müssen, ist die Entfernung zwischen Toy Story und allen anderen Filmen
in unserem Filmwörterbuch zu berechnen und die Ergebnisse anhand ihrer Entfernungsbewertung zu sortieren. Und das macht dieses kleine Code-Snippet hier. Nehmen Sie sich einen Moment Zeit, um Ihren Kopf herum zu wickeln. Es ist ziemlich einfach, aber wie wir sagen, wir haben eine kleine bekommen Nachbarn Funktion, die den Film, den wir interessiert,
und die K Nachbarn, die wir finden Sie Analphabeten durch jeden Film, den wir haben, nehmen wird . Wenn es nicht ist, wenn es tatsächlich ein anderer Film ist, als wenn wir uns ansehen, wird
es diese Distanzbewertung von vor einem Stift berechnen, dass in der Liste der Ergebnisse, die wir haben, dieses Ergebnis sortieren und dann werden wir die K Top-Ergebnisse. Okay, in diesem Beispiel müssen
wir das Rosset K auf 10 nehmen. Finden Sie die 10 nächsten Nachbarn. Wir werden die 10 nächsten Nachbarn mit get Nachbarn finden, und dann werden wir durch all diese 10 nächsten Nachbarn lesen und die durchschnittliche
Bewertung für jeden von jedem Nachbarn berechnen . Und diese durchschnittliche Bewertung wird uns über unsere Leseprognose für den betreffenden Film informieren . Und als Nebeneffekt erhalten
wir auch die 10 nächsten Nachbarn basierend auf unserer Distanzfunktion, die wir ähnliche Filme nennen könnten. So dass Informationen selbst nützlich sind. Ich gehe zurück auf das. Kunden, die sahen auch Beispiel. Wenn Sie eine ähnliche Funktion ausführen möchten, die nur auf dieser Entfernungsmetrik und nicht auf
tatsächlichen Verhaltensdaten basiert , könnte
dies ein vernünftiger Ausgangspunkt sein, oder? Also lasst uns weitermachen und sehen, ob wir am Ende enden und die Ergebnisse nicht so unvernünftig sind. Also verwenden wir als Beispiel für den Film Toy Story,
der Film I.
D.
One ist D. und was wir zurück mit für die Top 10 nächsten Nachbarn sind, ah, ziemlich gute Auswahl an Komödie und Kinder 's Filme. Also angesichts der Spielzeuggeschichte ist eine beliebte Komödie und Kinderfilme. Wir haben eine Reihe anderer populärer Komödie und Kinderfilme, so scheint es zu funktionieren. Wir mussten keine ausgefallenen kollaborativen Filteralgorithmen verwenden. Diese Ergebnisse sind nicht so schlimm. Und wenn wir nur vorhersagen wollen, verwenden Cannon, um die Bewertung vorherzusagen, wo wir an eine Lesung denken, ist die Klassifikationen. In diesem Beispiel wir eine prognostizierte Bewertung von 3,34, die sich tatsächlich nicht so stark von der
tatsächlichen Bewertung für diesen Film unterscheidet , was 3,87 Also nicht großartig war. Das ist auch nicht so schlimm. Ich meine, es funktioniert tatsächlich überraschend gut, wenn man
bedenkt, wie einfach dieser Algorithmus ist. Der größte Teil der Komplexität in diesem Beispiel war nur die Bestimmung unserer Distanzmetrik und, wissen
Sie, wir haben absichtlich ein bisschen Phantasie dort, nur um es interessant zu halten, aber Sie könnten alles tun, was Sie wollen. Also, wenn Sie mit diesem herumspielen wollen, ermutige
ich Sie definitiv dazu. Unsere Wahl von 10 für K war völlig aus der Luft. Das habe ich mir gerade erfunden. Wie würdest du das? Wie reagiert das auf verschiedene K-Werte? Erhalten Sie bessere Ergebnisse mit einem höheren Wert von K oder mit einem niedrigeren Wert K Ist egal, können Sie? Eigentlich, und ich? Wenn Sie wirklich wollen, dass toe amore beteiligt Übung, Sie könnten tatsächlich versuchen, Zug Test zu implizieren, um tatsächlich den Wert K zu finden, der am besten die Bewertung eines bestimmten Films basierend auf kn n vorhersagen
kann, und Sie können einfach andere verwenden Distanzmetriken. Ich habe das irgendwie so gemacht, um die Distanzmetrik zu spielen, kann vielleicht verschiedene
Informationsquellen verwenden oder wie Dinge anders interessant sein könnten. Vielleicht ist Popularität nicht so wichtig wie die Jonah-Informationen. Oder vielleicht ist es andersherum. Sehen Sie, auf welche Auswirkungen sich die Ergebnisse ergeben. Also gehen Sie voran und durcheinander mit diesen Algorithmen, die mit Co vermasselt sind. Und renne damit und sieh, was du kriegen kannst. Und wenn Sie einen signifikanten Weg zur Verbesserung dieser Aktie finden, die mit Ihren Klassenkameraden, das heißt kann in Aktion enden. Also ein sehr einfaches Konzept, aber es kann tatsächlich ziemlich mächtig sein. Da hast du es, und da hast du es. Ähnliche Filme basieren nur auf dem Genre und Popularität und nichts anderes funktioniert überraschend gut. Und wir verwenden das Konzept von kann Ende tatsächlich die nächsten Nachbarn verwenden, um eine Bewertung
für einen neuen Film vorherzusagen , und das hat tatsächlich ziemlich gut funktioniert, auch. Also, das ist K und Untätigkeit. Sehr einfache Technik, aber oft funktioniert es ziemlich verdammt gut.
51. Dimensionalität Reduziert, Grundlegende Komponentenanalyse: Alles klar. Zeit, alles trippig zu werden. Wir werden über höhere Dimensionen und Dimensionalitätsreduktion sprechen. Klingt gruselig. Es gibt einige ausgefallene Mathematik, aber konzeptionell ist
es nicht so schwer zu erfassen, wie Sie vielleicht denken. Lassen Sie uns also über Dimensionalitätsreduktion und Hauptkomponentenanalyse sprechen. Als nächstes sprechen
wir über den Fluch der Dimensionalität. Sehr dramatisch klingend. Normalerweise, wenn Leute darüber sprechen, sprechen
sie von einer Technik, die als Hauptkomponentenanalyse bezeichnet wird, und einer bestimmten Technik, die Singularwert-Zerlegung genannt wird. RSVP-würde. So sind PC und S V. T. S V. T.
S V.
D die Themen dieser Vorlesung. Lass uns hineintauchen. Was ist also der Fluch der Dimensionalität? Nun, viele Probleme können daran gedacht werden, viele verschiedene Dimensionen zu haben. Als wir
zum BeispielFilmempfehlungen machten,hatten
wir Attribute verschiedener Filme,
und jeder einzelne Film konnte an seine eigene Dimension in diesem Datenraum gedacht werden. zum Beispiel Als wir
zum BeispielFilmempfehlungen machten, hatten
wir Attribute verschiedener Filme, Also, wenn Sie viele Filme haben, das sind viele Dimensionen, und Sie können nicht wirklich Ihren Kopf um mehr als drei wickeln,
richtig, denn das ist es, was wir aufgewachsen sind, um innerhalb zu entwickeln. Oder Sie haben möglicherweise eine Art von Daten, die viele verschiedene Funktionen haben, die Ihnen wichtig sind. In einem Moment werden
wir uns ein Beispiel für Blumen ansehen, die wir klassifizieren wollen und dass Klassifikationen
basierend auf vier verschiedenen Messungen der Blumen und diesen vier verschiedenen Merkmalen setzen . Diese vier verschiedenen Messungen können vier Dimensionen repräsentieren, was wiederum sehr schwer zu visualisieren ist. Daher existieren Techniken zur Dimensionalitätsreduktion, um einen Weg zu finden, höherdimensionale
Informationen in geringere Dimensionen zu reduzieren . Und das kann es nicht nur einfacher machen, Dinge zu betrachten und zu klassifizieren, sondern es muss nützlich sein für Dinge wie das Komprimieren von Daten. Indem wir also die maximale Varianz beibehalten, während wir die Anzahl der Dimensionen reduzieren, wurden kompakter einen Datensatz darstellen, während immer noch versucht, die Varianz in
diesem Datensatz zu erhalten . Daher ist eine sehr häufige Anwendung der Dimensionalitätsreduktion nicht nur für die Visualisierung, sondern auch für die Kompression und für die Feature-Extraktion. Darüber reden wir in einem Moment noch ein bisschen mehr. Ein sehr einfaches Beispiel für die Dimensionalitätsreduktion kann an sein K bedeutet Clustering gedacht werden . Sie wissen also, dass beispielsweise Sie
beispielsweisemit vielen Punkten beginnen können, die viele verschiedene Dimensionen in einem Datensatz darstellen . Aber letztendlich können wir das auf k verschiedene Centrowitz aufkochen und Ihre Distanz zu den zentralisierten. Das ist also eine Möglichkeit, Daten bis hin zu einer niedrigeren dimensionalen Darstellung zu kochen. Aber in der Regel, wenn Menschen über Dimensionalitätsreduktion sprechen, sprechen
sie von einer Technik, die als Hauptkomponentenanalyse bezeichnet wird. Und das ist eine viel ausgefallenere Technik. Es kommt in einige ziemlich involvierte Mathematik, aber auf einem hohen Niveau. Alles, was Sie wissen müssen, ist, dass es einen höherdimensionalen Datenraum benötigt und Ebenen innerhalb dieses Datenraums in höheren Dimensionen findet. Und diese höherdimensionalen Ebenen Luft genannt Hyper-Ebenen. Und sie werden durch Dinge definiert, die Eigen Vektoren genannt werden, und Sie nehmen so viele Ebenen, wie Sie wollen Dimensionen. am Ende Projizieren Sie diese Datenam Endeauf diese Hyperebenen, und diese werden zu den neuen Achsen in Ihrem niedrigeren dimensionalen Datenraum. Weißt du,
es sei denn, du kennst höherdimensionale Mathematik und du hast vorher darüber
nachgedacht, wird es schwer sein, deinen Kopf umzuwickeln. Aber am Ende des Tages bedeutet dies, dass wir Ebenen in einem höherdimensionalen Raum auswählen , die immer noch die größte Varianz in unseren Daten erhalten und die Daten auf diese
höherdimensionalen Ebenen projizieren , die wir dann in einen niedrigeren dimensionalen Raum bringen. Okay, weißt
du, ich meine, du musst nicht wirklich die ganze Mathematik verstehen, um sie zu benutzen. Der wichtige Punkt ist, dass es ein sehr prinzipieller Weg ist, einen Datensatz auf einen
niedrigeren dimensionalen Raum zu reduzieren , während die Varianz darin beibehalten wird. Wir sprachen über Bildkompression ist eine Anwendung davon. Also wissen Sie, wenn ich die Dimensionalität in einem Bild reduzieren möchte, könnte
ich PC A verwenden, um es auf seine Essenz zu kochen. Gesichtserkennung ist ein weiteres Beispiel. Also, wenn ich ah, Datensatz von Gesichtern, wissen
Sie, vielleicht repräsentiert jedes Gesicht 1/3 Dimension von zwei D-Bildern und ich möchte das herunterkochen. SPD und Hauptkomponentenanalyse könnten eine Möglichkeit sein, die Features zu identifizieren, die wirklich in einem Gesicht
zählen, so dass es am Ende mehr in den Augen fokussiert werden könnte. Und der Mund zum Beispiel wichtige Merkmale, ist
zum Beispiel wichtige Merkmale,die notwendig sind, um die Varianz innerhalb dieses Datensatzes zu erhalten. Es kann also einige sehr interessante und sehr nützliche Ergebnisse produzieren, die nur
natürlich aus den Daten entstanden sind, was irgendwie cool ist, um es zu machen. Wirklich, wir werden ein einfacheres Beispiel verwenden,
mit dem, was IRA-Status-Set genannt wird. Und das ist ein Datensatz, der im psychischen Lernen enthalten ist. Es wird ziemlich häufig in Beispielen verwendet, und hier ist die Idee dahinter. Also, was? Iris hat tatsächlich zwei verschiedene Arten von Pedalen auf seiner Blume, die einst als Pedal bezeichnet werden, das ist, wissen
Sie, die Blütenblätter, mit denen Sie vertraut sind. Und es hat auch etwas, das CEPAL genannt wird,
was eine Art von diesem stützenden unteren Satz von Pedalen auf der Blume ist. Und wir können eine Reihe von Viren in verschiedenen Arten von Viren nehmen und messen das Pedal verlängern mit und die CEPAL-Länge. Und damit zusammen sind
die Länge und Breite des Pedals auf der Länge mit der CEPAL vier verschiedene Messungen, die vier verschiedenen Dimensionen in unserem Datensatz entsprechen. Und ich möchte das benutzen, um zu klassifizieren, zu welcher Art und Iris gehören könnten. Nun, P. C. A. Lassen
Sie uns visualisieren, dass es in zwei Dimensionen statt vier ist, während die Varianz in diesem Datensatz beibehalten wird. Mal sehen, wie gut das funktioniert und tatsächlich etwas Python-Code schreiben, um PC auf
dem irischen Datensatz passieren zu lassen. Das sind also die Konzepte der Dimensionalitätsreduktion, Hauptkomponentenanalyse und des Singularwerts. Zersetzung alle großen ausgefallenen Worte. Und doch ist es irgendwie eine schicke Sache. Wissen Sie, wir haben es damit zu tun, höherdimensionale Räume auf kleinere dimensionale Räume so zu
reduzieren, dass ihre Varianten
erhalten bleiben. Glücklicherweise macht uns
psychisch gelernt extrem einfach zu tun, wie drei Codezeilen alles, was Sie brauchen, um PC A
tatsächlich anzuwenden .
52. PCA mit der the: Also lassen Sie uns bewerben. Die Hauptkomponentenanalyse für den irischen Datensatz ist ein vierdimensionaler Datensatz den
wir auf zwei Dimensionen reduzieren werden, und wir werden sehen, dass wir tatsächlich die meisten Informationen in diesem
Datensatz erhalten können , selbst wenn wegwerfen die Hälfte der Dimensionen. Es ist ziemlich cooles Zeug. Es ist ziemlich einfach zu, Also lasst uns eintauchen. Ordnung, lassen Sie uns eine Hauptkomponentenanalyse durchführen und den Fluch der Dimensionalität heilen. So ist es eigentlich sehr einfach, mit psychischen lernen wie gewohnt und wieder PC ese
Dimensionalitätsreduktionstechnik zu tun . Es klingt sehr Science-Fiction. E wie all diese Rede von höheren Dimensionen, aber nur um es konkreter und realer wieder zu machen. Ah, gängige Anwendungen Bildkompression. Sie denken also an ein Schwarz-Weiß-Foto, ein Bild eines Schwarz-Weiß-Bildes als drei Dimensionen, wo Sie mit Ihrer X- und Ihrer Y-Achse der Höhe haben, und dann hat jede einzelne Zelle einen Helligkeitswert auf einer Skala von 0 bis 1 dass Sie wissen , ist schwarze Zehe weiß oder ein Wert dazwischen. Das wären also dreidimensionale Daten. Sie wissen, dass Sie räumliche Dimensionen und dann eine Helligkeits- und Intensitätsdimension haben. Hinzu kommt, dass, wenn Sie tot wären, um noch das unten zu sagen, zwei Dimensionen allein, das wäre ein komprimiertes Bild. Und wenn Sie das in einer Technik tun würden, die die Varianz in diesem Bild so gut
wie möglich bewahrt , könnten
Sie das Bild immer noch ohne großen Verlust in der Theorie rekonstruieren. Das ist also Dimensionalitätsreduktion, wissen
Sie, bis zu einem praktischen Beispiel
destilliert. Jetzt werden wir hier ein anderes Beispiel
verwenden, mit dem irischen Datensatz und psychisch gelernt beinhaltet dies. All dies ist ein Datensatz mit verschiedenen Irisblütenmessungen und der
Artenklassifizierung für jede Iris in diesem Datensatz. Und es hat auch, wie gesagt, vor der Längen- und Breitenmessung sowohl des Blütenblattes als auch des geschmeidigen für jedes Iris Exemplar. Also zwischen der Länge und Breite des Pedals und der Länge und Breite des CEPAL, wir haben vier Dimensionen von ah Feature-Daten von Informationen. In unserem Datensatz wollten
wir immer noch, dass auf etwas hinunter, das wir tatsächlich betrachten und verstehen können, weil Ihr Verstand sich nicht mit vier Dimensionen sehr gut auseinandersetzt, aber Sie können sich zwei Dimensionen auf einem Stück Papier ziemlich leicht ansehen. Also lasst uns voran gehen und das aufladen. Hier gibt es eine praktische Dandy Load Iris Funktion, die in Psych eingebaut ist. Es hat gelernt, dass wird nur laden, dass für Sie ohne zusätzliche Arbeit, so dass Sie nur auf den interessanten Teil konzentrieren können. Und wenn wir einen Blick darauf werfen, wie dieser Datensatz aussieht, können
Sie sehen, dass wir die Form dieses Datensatzes extrahieren, was bedeutet, wie viele Datenpunkte wir darin haben 150. Und wie viele Features oder wie viele Dimensionen dieser Datensatz hat, und das sind vier. So haben wir 100 50 Irisproben in unserem Datensatz mit vier Dimensionen von Informationen. Wieder, das ist die Länge und Breite des geschmeidigen in der Länge, mit dem Pedal für insgesamt vier Features, die wir an seine vier Dimensionen denken können. Und wir können auch die Liste der Zielnamen in der Statusgruppe ausdrucken, die die Klassifikationen sind, und wir können sehen, dass jede Iris zu einer von drei verschiedenen Arten gehört, Sentosa gegen Color oder Virgin Icka. Das sind also die Daten, die wir mit 150 IRA-Exemplaren arbeiten, die in eine von drei
Arten eingeteilt sind, und wir haben vier Merkmale, die mit jeder Iris die Länge und Breite des Pedals
in der Länge und Breite des geschmeidigen verbunden sind. Schauen wir uns an, wie einfach PC A ist, obwohl es eine sehr komplizierte Technik unter der Haube ist. Es ist nur ein paar Zeilen Code zugewiesen den gesamten IRA-Statussatz, und wir werden es X nennen. Wir werden dann einen PC erstellen, ein Modell, und wir werden sagen, und Komponenten gleich zwei. Also wollen wir Dimensionen. Wir gehen von 4 zu 2. Wir werden aufhellte Gleiche verwenden. Es stimmt, das bedeutet, dass wir alle Daten normalisieren und sicherstellen, dass alles
schön und vergleichbar ist . Normalerweise werden
Sie das tun wollen, um gute Ergebnisse zu erzielen, und dann werden wir den PC ein Modell zu unserem irischen Datensatz X passen, und dann können wir dieses Modell verwenden. Sie dann auch TransformierenSie dann
auchdiesen Datensatz in zwei Dimensionen auf. Lassen Sie uns voran und tun, das ist ziemlich schnell passiert. Denk darüber nach, was gerade dort passiert ist. Wir haben tatsächlich einen PC als Modell erstellt, um vier Dimensionen auf zwei zu reduzieren. Und das tat es, indem Sie vier dimensionale Vektoren wählen, um Hyperebenen zu erstellen, um diese vierdimensionalen Zweifelsdaten auf zwei Dimensionen zu
projizieren, und Sie können tatsächlich sehen, was diese vierdimensionalen Vektoren sind. Diese Eigen-Vektoren durch das Ausdrucken der tatsächlichen Komponenten von PCs OPC A steht für die
Hauptkomponentenanalyse . Diese Hauptkomponenten sind die i n Vektoren, die wir gewählt haben, um unsere Ebenen zu definieren. Okay, und Sie können sich diese Werte hier ansehen. Es wird Ihnen nicht viel bedeuten, weil Sie sich sowieso nicht wirklich für Dimensionen vorstellen können. Aber nur damit Sie sehen können, dass es tatsächlich etwas mit Hauptkomponenten macht. Also lasst uns ah haben, lasst uns unsere Ergebnisse bewerten. Der PC ein Modell gibt uns etwas zurück, das als erklärtes Varianzverhältnis bezeichnet wird, und im Grunde sagt Ihnen, wie viel der Varianz in den ursprünglichen vierdimensionalen Daten beibehalten
wurde, wie ich es auf zwei Dimensionen reduziert habe. Also lassen Sie uns voran und schauen uns das an. Was es gibt Ihnen zurück ist eigentlich ah, Liste von zwei Elementen für die beiden Dimensionen, die wir erhalten haben. Das sagt mir also, dass ich in der ersten Dimension 92% der
Varianz in den Daten beibehalten kann . Und die zweite Dimension gab mir nur noch 5% der Varianten. Und wenn ich zusammen gipfel, diese beiden Dimensionen, in die ich meine Daten projiziert habe, erhalten immer noch über 97% der Varianz in den Quelldaten, so dass vier Dimensionen nicht wirklich notwendig waren, um alle Informationen in diesen Daten zu erfassen war ziemlich interessant. Es ist ziemlich cooles Zeug. Also, wenn du darüber nachdenkst, was denkst du, könnte das sein? Nun, vielleicht hat diese Gesamtgröße der Blume eine gewisse Beziehung zu der Spezies in ihrer Mitte. Vielleicht, ist das Verhältnis von Länge zu Breite für das Pedal und die geschmeidig. Weißt du, einige dieser Dinge bewegen sich wahrscheinlich gemeinsam für eine bestimmte Spezies
oder für eine verzeihte Gesamtgröße einer Blume zusammen. Vielleicht gibt es Beziehungen zwischen diesen vier Dimensionen, die PC A selbst
extrahiert . Es ist hübsch, ziemlich cool und ziemlich mächtig. Lass uns das visualisieren. Also der springende Punkt, dies auf zwei Dimensionen zu reduzieren, ist, dass, damit wir ein
schönes wenig zu verstreuen Handlung davon machen könnten . Zumindest ist das unser Ziel für dieses kleine Beispiel hier. Wir gehen also zu einem bisschen Matt hier etwas Magie, um das zu tun. Es gibt hier etwas ausgefallenes Zeug, das ich wenigstens erwähnen sollte. Also werden wir tun, ist eine Liste von Farben rot,
grün und blau zu erstellen . Wir werden eine Liste von Ziel-I erstellen. Also der Wert 01 in sie nach den verschiedenen IRA Arten zu drei verschiedenen Arten, die wir haben. Und was wir tun werden, ist das alles mit den tatsächlichen Namen jeder Spezies zusammenzureißen. Also diese kleine Zeile hier für ich sehe Etikett in Zip-Target-Ideen, Farben Iris, Zielnamen bedeutet, dass wir durch die drei verschiedenen IRA Arten Analphabeten. Und während wir gehen, werden
wir sowohl den Index für diese Spezies haben, ah,
Farbe, die damit verbunden ist, als auch den tatsächlich lesbaren Etikettennamen für diese Spezies. Also nehmen wir eine Spezies nach dem anderen auf unserem Streudiagramm nur für diese Spezies mit einer bestimmten Farbe und das angegebene Etikett Leute fügen dann unsere Legende hinzu und zeigen die Ergebnisse, und das ist, was wir am Ende haben. Das sind also unsere vierdimensionalen Irisdaten, die auf zwei Dimensionen projiziert werden. Ziemlich interessantes Zeug, das du sehen kannst. Es ist immer noch ziemlich schön zusammen. Weißt du, du hast alle jungfräulichen Nigga hier drüben zusammen sitzen. Alle Verse Farbe sitzt in der Mitte dieses Toast ist weit weg auf der Seite hier, und es ist wirklich schwer, sich vorstellen, was die tatsächlichen Werte repräsentieren. Aber der wichtige Punkt ist, dass wir 40 Daten auf zwei D projiziert haben und so, dass wir die Varianz
immer noch erhalten. Und wir können immer noch klare Abgrenzungen zwischen diesen beiden Arten sehen etwas intermittierend dort drinnen vermischen. Es ist nicht perfekt, weißt
du. Aber im Großen und Ganzen war es ziemlich effektiv. Wenn Sie also mit diesem wenig schrägen Rückruf aus den erklärten Varianzverhältnissen spielen , haben wir tatsächlich die meisten Kugellager in einer einzigen Dimension erfasst. Weißt du, vielleicht ist die Gesamtgröße der Blumen alles, was wirklich wichtig ist und sie klassifiziert, und du könntest das mit einem Feature angeben. Also gehen Sie weiter und ändern Sie die Ergebnisse. Wenn Sie das Gefühl haben, es zu tun. Sehen Sie, ob Sie mit zwei Dimensionen oder einer Bemaßung anstatt mit zwei Dimensionen davonkommen können. Also gehen Sie ändern das und Komponenten Zehe eins und sehen, welche Art von verschiedenen Verhältnis Sie bekommen. Was passiert ist, ist es sinnvoll, also spielen Sie mit ihm herum, machen Sie etwas Vertrautheit mit ihm, und das ist Dimensionalitätsreduktion, Hauptkomponentenanalyse und Singularwert. Zersetzung alles in Aktion. Sehr,
sehr ausgefallene Begriffe. Und, wissen
Sie, um fair zu sein, ist
es eine ziemlich ausgefallene Mathematik unter der Haube. Aber wie Sie sehen können, ist
es eine sehr mächtige Technik. Und mit psychischem Lernen ist
es nicht schwer anzuwenden, also behalte das in deiner Werkzeugkiste. So haben Sie es, ein vierdimensionaler Datensatz von Mehlinformationen gekocht auf zwei Dimensionen, die wir
beide leicht visualisieren können und auch immer noch klare Abgrenzungen zwischen den Klassifizierungen , die an So PC A interessiert waren funktioniert in diesem Beispiel sehr gut, und wieder, es ist ein nützliches Werkzeug für Dinge wie Kompression oder Feature-Extraktion oder Gesichtserkennung als auch. Also behalte das in deiner Werkzeugkiste. Nein, es ist für dich da.
53. Datenlagerung: ETL und ELT: Als nächstes werden
wir ein wenig über Data Warehousing sprechen, und dies ist ein Feld, das vor kurzem durch das Aufkommen von Hadoop und einige
Big Data Techniken und Cloud Computing wirklich aufgewertet wurde . So viele große Summen Wörter gibt, aber Konzepte, die für Sie wichtig sind zu verstehen. Also lasst uns eintauchen und diese Konzepte erforschen. Lassen Sie uns über E, L T und E.
T. T. L und Data Warehousing sprechen. Im Allgemeinen ist
dies mehr von, ah, Konzept, im
Gegensatz zu einer bestimmten praktischen Techniken, dass wir darüber konzeptionell sprechen werden. Aber es ist etwas, das wahrscheinlich in der Einstellung eines Vorstellungsgesprächs kommen wird. Lassen Sie uns also sicherstellen, dass Sie diese Konzepte verstehen. Beginnen wir damit, über Data Warehousing im Allgemeinen zu sprechen. Was ist also ein Data Warehouse? Nun, es ist im Grunde eine riesige Datenbank, die Informationen aus vielen verschiedenen Quellen enthält und sie für Sie
zusammenbindet. Beispielsweisearbeiten Sie
vielleicht in einem großen E-Commerce-Unternehmen,
und sie haben möglicherweise ein Bestellsystem,das Informationen über die Dinge, die Menschen
in Ihr Data Warehouse gekauft haben, einspeist. Beispielsweise arbeiten Sie
vielleicht in einem großen E-Commerce-Unternehmen,
und sie haben möglicherweise ein Bestellsystem, das Informationen über die Dinge, die Menschen
in Ihr Data Warehouse gekauft haben, einspeist Und Sie könnten auch Informationen aus Webserverprotokollen haben, die in das Data
Warehouse aufgenommen werden,
und dies würde Ihnen ermöglichen, zusammen Browsing-Informationen auf der Website mit dem, was Leute letztendlich bestellt. Zum Beispiel könnte
vielleicht auch italienische Informationen aus Ihrem Kunden-Service-Systeme und messen, ob es eine Beziehung zwischen Browserverhalten und wie glücklich die Kunden sind am Ende des Tages. So hat ein Data Warehouse die Herausforderung, Daten aus vielen verschiedenen Quellen zu nehmen sie in eine Art Schema
umzuwandeln, das es uns ermöglicht, diese verschiedenen
Datenquellen gleichzeitig abzufragen . Und es ermöglicht uns, Erkenntnisse durch Datenanalyse mit diesen unterschiedlichen Datenquellen zu gewinnen. So große Unternehmen und Organisationen haben diese Art von etwas ziemlich häufig diese. Wir beschäftigen uns hier mit dem Konzept der Big Data, richtig? Und Sie können
zum Beispiel eine riesige Oracle-Datenbank haben , die all diese Dinge enthält. Weißt du, vielleicht ist es in irgendeiner Weise partitioniert und repliziert und dort allerlei Komplexität. Und Sie könnten das einfach durch sequel strukturierte Abfragesprache oder durch Tools abfragen. Grafische Werkzeuge wie Tableau sind heutzutage sehr beliebt, und das ist, was ein Datenanalytiker tut. Sie fragen große Datensätze mit Dingen wie Tableau ab. Das ist der Unterschied zwischen einem Datenanalytiker in einem Data Scientist. Sie könnten tatsächlich Code schreiben, um auszuführen oder erweiterte Techniken für Daten bereitzustellen,
die an ein I grenzen, im
Gegensatz dazu, nur Werkzeuge zum Extrahieren von Diagrammen und Beziehungen aus einem Data Warehouse zu verwenden . Und es ist ein sehr kompliziertes Problem. Weißt du, bei Amazon hatten
wir eine ganze Abteilung für Data Warehousing, die sich um dieses Zeug kümmerte, und sie hatten nie genug Leute, ich kann dir sagen, dass es ein großer Job ist, weißt
du, Es gibt viele Herausforderungen bei der Durchführung von Data Warehousing eine ist die Data-Normalisierung. Sie müssen also herausfinden, wie alle Felder in diesen verschiedenen Daten sind. Quellen beziehen sich tatsächlich zueinander. Und wie stelle ich tatsächlich sicher, dass eine Spalte in einer Datenquelle mit einer Spalte
aus einer anderen Datenquelle vergleichbar ist und denselben Satz von Daten im gleichen Maßstab unter Verwendung derselben
Terminologie aufweist ? Wie gehe ich mit fehlenden Daten um? Wie gehe ich mit korrupten Daten oder Daten von Ausreißern oder Robotern und solchen Dingen um? Alle sehr großen Herausforderungen. Die Aufrechterhaltung dieser Datenfeeds auch ein sehr großes Problem. Vieles kann schief gehen, wenn Sie all diese Informationen in Ihr Data Warehouse importieren, besonders. Wir haben eine sehr große Transformation, die passieren muss, um die Rohdaten sicher aus Weblogs in eine tatsächliche Struktur-Datenbanktabelle zu bringen, die in Ihr Data
Warehouse importiert werden könnte . Skalierung könnte auch schwierig werden, wenn Sie mit einem monolithischen Data Warehouse zu tun haben. Wissen Sie, schließlich werden Ihre Daten so groß werden, dass es Transformationen selbst zu einem Problem zu
werden beginnen , und dies beginnt, in die ganze E l T vs CTL Sache zu gelangen. Also lassen Sie uns zuerst über E.
T. T. L war, die für Sinn für Extrakt,
Transformation und Last stehen . Und das ist, wo die konventionelle Art, Data Warehousing durchzuführen. Also im Grunde, extrahieren Sie
zuerst die Daten, die Sie wollen, aus den Betriebssystemen, die Sie wollen. So könnte
ich
beispielsweise beispielsweise jeden Tag alle Webprotokolle von unseren Webservern extrahieren, die ich brauche, um
all diese Informationen in eine tatsächliche Strukturdatenbanktabelle umzuwandeln , die ich in mein Data
Warehouse importieren kann . So dass die Transformationsstufe jede Zeile dieser Webserver-Protokolle
durchlaufen könnte , transformieren Sie das in eine nationale Tabelle, in der ich aus jeder
Webs-Weblog-Zeile herausreiße . Weißt du, Dinge wie Session I D und welche Seite sie angeschaut haben und wie spät es war und was der Hinweis war. Und so was. Und ich kann das in einer tabellarischen Struktur organisieren, die ich dann als tatsächliche Tabelle in der Datenbank in das Data
Warehouse selbst laden kann . Wenn Daten immer größer werden, kann
dieser Transformationsschritt zu einem echten Problem werden. Sie wissen, denken Sie darüber nach, wie viel Verarbeitungsarbeit erforderlich ist, um durch alle Web-Protokolle wie
Google oder Amazon oder eine große Website zu gehen , und verwandeln Sie das in etwas, das eine Datenbank aufnehmen kann. Das selbst wird zu einer Herausforderung für die Skalierbarkeit und etwas,
das
Stabilitätsprobleme für die gesamte Data Warehouse-Pipeline einführen kann . also das Konzept von E. L. T. kommtalso das Konzept von E.
L.T.ins Spiel, und es dreht irgendwie alles auf den Kopf. Es steht. Nun,
was ist, wenn wir keine riesige Oracle-Instanz verwenden? Was ist, wenn stattdessen einige dieser neueren Techniken verwenden, wir
stattdessen einige dieser neueren Techniken verwenden,die es uns ermöglichen, eine verteilte Datenbank
über einen Hadoop-Cluster zu haben und das uns die Macht dieser verteilten Datenbanken zu übernehmen. Weißt du, diese Dinge, die auf Hadoop aufgebaut sind, wie hoch für Funken oder eine Karte reduzieren und verwenden das, um die Transformation
tatsächlich durchzuführen, nachdem sie geladen wurde. Also die Idee hier ist, dass wir die Informationen, die wir wollen,
wie wir es vorher getan
haben,
aus einer Reihe von Webserver-Protokollen extrahieren wie wir es vorher getan
haben, haben , . Aber dann laden wir das direkt in unser Daten-Repository ein, und wir werden die Macht des Projektarchivs selbst nutzen, um die Transformation
tatsächlich durchzuführen. Die Idee hier ist also, anstatt einen Offline-Prozess zu machen, um meine Weblogs als
Beispiel in ein strukturiertes Format zu verwandeln , ich werde diese einfach als rohe Textdateien einsaugen und sie eine Zeile nach dem anderen durchgehen, indem ich die Macht von etwas wie Hadoop, um diese tatsächlich in ein strukturierteres Format zu verwandeln, das ich dann über meine gesamte Data Warehouse-Lösung abfragen kann. Dinge wie Hive lassen Sie eine massive Datenbank auf einem Hadoop-Cluster hosten. Und es gibt Dinge wie eine Funkensequel, die Sie auch tun können. Die Abfrage ist in einer sehr Fortsetzung wie Data Warehouse-ähnliche Weise auf einem Data Warehouse, das tatsächlich auf einem Hadoop-Cluster verteilt wird. Es gibt auch keine Sequel Data Stores verteilen, zweite Equerry mit Spark und Map reduzieren. Und die drei Idee ist, dass anstatt eine monolithische Datenbank für ein Data Warehouse zu verwenden, Sie stattdessen etwas verwenden, das auf Hadoop oder eine Art Cluster basiert, der nicht nur die Verarbeitung und Abfrage dieser Daten skalieren kann , aber auch die Transformation dieser Daten skalieren. Also wieder, Sie haben zuerst Rohdaten extrahiert. Aber dann laden wir es in das Data Warehouse-System selbst, wie es ist, und nutzen dann die Macht des Data Warehouse, das auf Hadoop gebaut werden könnte, um diese Transformation als dritten Schritt durchzuführen. Dann kann ich Dinge zusammen abfragen. Es ist also ein sehr großes Projekt, sehr großes Thema. Wissen Sie, Data Warehousing ist eine ganze Disziplin und für sich. Und wir werden sehr bald über Funken amore in diesem Kurs sprechen. Das ist eine Möglichkeit, mit diesem Ding umzugehen. Das ist etwas namens Spark Fortsetzung, insbesondere, das relevant ist. Auch Dinge wie Hive Map reduzieren Big-Data-Techniken im Allgemeinen, die moderner sind dass wir abdecken können, und es gibt andere Kurse, die ich auf Funken und Karte reduzieren anbieten. Das wird Ihnen mehr Einblick in dieses Haus eines kostenlosen Kurses zu Big Data Basics geben. Sie können überprüfen,
ähm , aber viel über ihre zu lernen. Also wieder, das Gesamtkonzept
ist, wenn Sie von einer monolithischen Datenbank auf Oracle oder meiner Fortsetzung zu einer dieser
moderneren verteilten Datenbanken wechseln , die auf Hadoop basieren. Sie können diese Transformationsstufe übernehmen und dies tatsächlich tun, nachdem Sie die Rohdaten im
Gegensatz zu zuvor geladen haben . Und das kann am Ende einfacher und skalierbarer werden und die Vorteile großer Computing-Cluster nutzen, die heute verfügbar sind. Das ist also E T. L vs CLT. So wie die alte Art, es zu tun. Zuvor hatten
wir überall viele Cluster und Cloud-basiertes Computing im Vergleich zu einem Weg, heute
sinnvoll ist, wenn uns große Rechenwolken zur
Transformation großer Datensätze zur Verfügung stehen . Das ist das Konzept. Also wieder, e t l Art der alten Schule Art, es zu tun. Sie transformieren eine Reihe von Daten off-line, bevor Sie sie importieren und in ein riesiges
Data Warehouse laden . Monolithische Datenbank. Aber die heutigen Techniken mit Cloud-basierten Datenbanken und Hadoop und Hive und Spark und Map reduzieren Sie können es tatsächlich ein wenig effizienter machen und die Macht eines Clusters nutzen um diesen Transformationsschritt nach dem Laden der Rohdaten tatsächlich zu tun in Ihr Data Warehouse. Das verändert also wirklich das Feld. Es ist wichtig, dass du es nochmal weißt. Es gibt noch viel mehr zu diesem Thema zu lernen, daher ermutige ich Sie, mehr zu diesem Thema zu erkunden. Aber das ist das Grundkonzept, und jetzt wissen Sie, wovon die Leute sprechen, wenn sie über E T l vs E L T sprechen
54. Reinforcement: Unser nächster Stopp ist ein lustiger. Verstärkung Lernen, und wir können diese Idee tatsächlich mit einem Beispiel von Pac Man verwenden. Wir können tatsächlich einen kleinen intelligenten Pacman-Agenten erstellen, der das Spiel Pac Man
wirklich gut auf eigene Faust spielen kann . Und Sie werden überrascht sein, wie einfach die Technik ist, um die Smarts hinter diesem
intelligenten Pac Man aufzubauen . Werfen wir einen Blick. Lassen Sie uns über das Verstärkungslernen sprechen. Das ist eine Art, ah, Spaß kleines Konzept hier können Sie in Bezug auf das Spiel Pac Man denken, einer meiner aller Zeiten Favoriten. Die Idee hinter dem Verstärkungslernen ist, dass Sie in diesem Fall eine Art Agent haben , Pacman
, der irgendeine Art von Raum erkundet. Und in unserem Beispiel wird
dieser Raum das Labyrinth sein, in dem sich Pac Man befindet. Und wie es geht, lernt
es den Wert von verschiedenen Zustandsänderungen unter verschiedenen Bedingungen. So zum Beispiel könnte
hier
zum Beispielder Zustand von Pac Man durch die Tatsache definiert werden, dass er einen Geist im Süden und
eine Mauer im Westen und Leerräume im Norden und Osten hat , und das könnte den aktuellen Zustand von Pac Man definieren und die Zustandsänderungen, die es nehmen kann, wäre, sich in eine bestimmte Richtung zu bewegen, und ich kann dann den Wert lernen, in eine bestimmte Richtung zu gehen. Wenn ich
zum Beispielnach Norden ziehen würde,würde
nichts passieren. zum Beispiel Wenn ich
zum Beispielnach Norden ziehen würde, ist keine echte Belohnung verbunden. Aber wenn ich nach Süden ziehen würde, würde
ich vom Geist zerstört werden, und das wird ein negativer Wert sein. Während ich diesen ganzen Raum erforsche, kann
ich eine Reihe von allen möglichen Zuständen aufbauen, die Pacman vermitteln, und die Werte, die mit dem Verschieben einer bestimmten Richtung in jedem dieser Zustände
verbunden sind. Und das ist verstärktes Lernen. Während es diesen ganzen Raum erforscht, verfeinert
es die Belohnungswerte für einen bestimmten Zustand, und es kann dann diese Ladenbelohnungswerte verwenden, um die beste Entscheidung zu wählen, die unter
Berücksichtigung einer aktuellen Reihe von Bedingungen zu treffen ist. Also, neben Pac Man, das ist auch ein Spiel namens Katze Maus. Das ist ein Beispiel, dass allgemein zu verwenden, die später aussehen wird. Und der Vorteil dieser Technik besteht darin, dass Sie, sobald Sie die gesamte Menge möglicher
Zustände untersucht haben , in denen sich Ihr Agent befinden kann, sehr schnell eine sehr gute Leistung erzielen können, wenn Sie verschiedene Iterationen
davon ausführen . Sie wissen also, Sie können im Grunde einen intelligenten PacMan machen, indem Sie Verstärkung ausführen, lernen und es die Werte verschiedener Entscheidungen erkunden, die in
verschiedenen Zuständen treffen können und diese Informationen dann sehr schnell speichern treffen Sie die richtige Entscheidung , angesichts eines zukünftigen Staates, dass es in einer unbekannten Reihe von Bedingungen sieht. So wird eine sehr spezifische Implementierung von Verstärkung Learning als Q Learning bezeichnet und dies formalisiert, worüber wir gerade ein wenig mehr gesprochen haben. Also wieder, Sie beginnen mit einer Reihe von Umweltstaaten, die wir nennen, dass s und mögliche Staaten Air. Wissen Sie, die Umgebungsbedingungen der Agenten. So ist da Ach, Geist neben mir. Gibt es eine Power-Pille vor mir? Dinge und ich habe eine Reihe von möglichen Maßnahmen, die ich in diesen Staaten ergreifen kann. Wir werden diesen Satz von Aktionen A nennen und im Fall von Pac Man, mögliche Aktionen werden nach oben,
unten,
links oder rechts bewegt , , und dann haben wir einen Wert für jedes Zustands-Aktionspaar, das Q aufruft. mögliche Aktionen werden nach oben,
unten,
links oder rechts bewegt,
und dann haben wir einen Wert für jedes Zustands-Aktionspaar, das Q aufruft.
ist, warum wir es Q lernen Also für jeden Staat, wissen
Sie, eine bestimmte Reihe von Bedingungen rund um Pacman gegebene Aktion wird einen Wert haben. F: Das Aufwärtsbewegen könnte einen bestimmten Wert haben. Que nach unten könnte einen negativen Q-Wert haben, wenn es bedeutet, auf Geist zu stoßen, zum Beispiel, so beginnen wir mit einem Q-Wert von Null für jeden möglichen Zustand, in dem Pac Man sein könnte, in. Und als Pacman erstaunt erforscht, wie Pac Man schlechte Dinge passieren, reduzierten
wir den Q-Wert für den Zustand, dass Pac Man in die Zeit war. Okay, wenn Pac Man am Ende von einem Geist gefressen wird, bestrafen
wir, was er in diesem aktuellen Zustand getan hat. Und so gute Dinge mit Pac Man passieren, wie er eine Power-Pille isst oder einen Geist isst, erhöht den Q-Wert für diese Aktion für den Staat, in dem er sich befand. Okay, und dann können wir diese Q-Werte verwenden, um Pac Mans zukünftige Entscheidungen zu informieren und irgendwie einen kleinen intelligenten Agenten zu bauen,
der optimal funktionieren und einen perfekten Willen machen kann. Pacman. Also, um zu einem echten Beispiel hier einige staatliche Aktionen hier zurückzukehren, Pac Man, könnten
wir den aktuellen Zustand von Pac Man durch die Tatsache definieren, dass er eine Mauer im Westen hat, leeren Raum im Norden und Osten von Ghost im Süden, und wir können uns die Aktionen ansehen, die er ergreifen kann. Du weißt, dass er sich überhaupt nicht nach links bewegen kann, aber er kann sich nach oben, unten oder rechts bewegen, und wir können es all diesen Aktionen Wert zuweisen. Also, wenn man nach oben geht oder rechts, passiert
nichts wirklich. Es gibt keine Power-Pille oder Punkte zu konsumieren, aber wenn er nach links geht, ist
das definitiv ein negativer Wert. Man kann also sagen, für den Staat, durch die aktuellen Bedingungen
gegeben wird, dass Pac Man von einem Umzug nach unten umgeben ist, wäre eine wirklich schlechte Wahl. Es sollte einen negativen Q-Wert für das Verschieben nach links geben, kann einfach nicht alles getan werden und sich nach oben oder rechts oder einfach nur neutral bewegt werden. Der Schlüsselwert würde also Null für diese Aktionsoptionen für diesen gegebenen Zustand bleiben. Nun können
Sie auch ein wenig nach vorne schauen, um es noch intelligenter zu machen, Agent. Also bin ich eigentlich zwei Schritte davon entfernt, hier eine Power-Pille zu bekommen. Als Pac Man diesen Zustand erforschen würde, wenn ich den Fall treffen würde, die Power-Pille im nächsten Zustand zu essen. Ich könnte das tatsächlich in das Q-Tal für den vorherigen Staat einbeziehen. Und wissen Sie, wenn Sie nur eine Art Rabattfaktor haben, basierend darauf, wie weit Sie in der Zeit sind, wie viele Schritte entfernt Sie sind, können
Sie das alles zusammen berücksichtigen. Das ist also eine Möglichkeit, tatsächlich ein wenig Speicher in das System einzubauen. So der Q-Wert, den ich erlebt, als ich diese Power-Pille verbraucht könnte tatsächlich einen
Schub zu den vorherigen que Täler geben , die ich auf dem Weg begegnet. Das ist ein Weg, um Sie noch besser zu lernen. Ein Problem mit dem wir in der Verstärkung des Lernens haben, ist also das Explorationsproblem. Wie stelle ich sicher, dass ich während der Explorationsphase alle verschiedenen Zustände und Aktionen innerhalb
dieser Staaten effizient abdecke ? So Art der naiven Ansätze immer die Aktion für einen bestimmten Zustand mit dem
höchsten que Tal zu wählen , die ich bisher berechnet habe. Und wenn es eine Unentschieden gibt, wählen Sie
einfach zufällig, so dass zunächst alle meine Cue-Täler Null sein könnten, und ich werde nur Aktionen ausgewählt, die zufällig sind, dass zuerst und wie ich beginne, Informationen über bessere Cue-Werte für eine gegebenen Aktionen und gegebenen Zuständen, werde
ich anfangen, diese zu verwenden, wie ich gehe. Aber das endet ziemlich ineffizient, und ich kann tatsächlich eine Menge Vergangenheit auf diese Weise verpassen, wenn ich mich einfach an diesen starren
Algorithmus binde , immer das beste Q-Tal zu wählen, das bisher berechnet wurde. Also eine bessere Möglichkeit, ein wenig zufällige Variation in meine Aktionen einzuführen, während ich erforsche. Also nennen wir das einen Epsilon-Begriff. Also haben wir einen gewissen Wert, dass ich Würfel würfle. Ich habe eine Zufallszahl, und wenn sie in diesem Epsilon-Wert weniger ist, folge
ich nicht wirklich dem höchsten Q-Wert. Ich mache nicht das, was Sinn ergibt. Ich nehme nur einen Weg nach dem Zufallsprinzip, um es auszuprobieren und zu sehen, was passiert. Und das lässt mich tatsächlich eine viel breitere Palette von Möglichkeiten erkunden, eine viel breitere Palette von Maßnahmen für ein breiteres Spektrum von Staaten während dieser
Explorationsphase effizienter . Also, was wir gerade getan haben, kann in sehr ausgefallenen mathematischen Begriffen beschrieben werden , wissen
Sie, konzeptuell ist ziemlich einfach, ich erforsche einige Aktionen, die ich für einen bestimmten
Satz von Zuständen ergreifen könnte . Ich benutze das, um die Belohnungen zu informieren, die mit der gegebenen Aktion für bestimmte Zustände verbunden sind. Und nachdem diese Erkundung abgeschlossen ist, kann
ich diese Informationen diese Q-Werte verwenden, um intelligent durch ein völlig neues
Labyrinth zu navigieren , zum Beispiel. Okay, aber das kann auch als Markov-Entscheidungsprozess bezeichnet werden, also kann ich, ah, viele Datenwissenschaft gibt nur ausgefallene, einschüchternde Namen, einfache Konzepte zu. Und es gibt eine Menge davon im verstärkten Lernen. Wenn Sie also die Definition von Markov-Entscheidungsprozessen nachschlagen, ist
es ein mathematischer Rahmen für Modellierung, Entscheidungsfindung, Entscheidungsfindung. Welche Maßnahmen tun wir, angesichts einer Reihe von Möglichkeiten für gegebenen Zustand in Situationen, in denen Ergebnisse Luft teilweise zufällige Art wie unsere zufällige Ablauf gibt, und teilweise unter der Kontrolle eines Entscheidungsträgers, die Entscheidungsträger sind unsere Q-Werte, die wir berechnet haben? Also M DPS Markov Entscheidungsprozesse sind eine ausgefallene Möglichkeit, unsere Explorationsalgorithmus zu beschreiben die wir gerade für eine Verstärkung Lernen beschrieben, und die Notation ist sogar ähnliche Zustände oder noch beschrieben seine S und S. Prime ist die nächste Zustand, dass wir begegnen. Wir haben Zustandsübergangsfunktionen, die als Stück eines verzeihten Zustands von SNS
prime definiert sind , und wir haben unsere Q-Werte sind im Grunde Vertreter oder Belohnungsfunktion, also sind a einige Wert für eine gegebene sns prime. Wechsel von einem Zustand in einen anderen hat die kürzliche Belohnung gegeben, die damit verbunden ist, und der Wechsel von einem Zustand in einen anderen wird durch eine Zustandsübergangsfunktion definiert. Also noch einmal beschreiben, was wir gerade getan haben. Nur eine mathematische Notation und er schicker klingenden Wort Markov Entscheidungsprozesse. Und wenn Sie noch schlauer klingen wollen, können
Sie auch einen Markov-Entscheidungsprozess mit einem anderen Namen nennen. Ein diskreter zeitlicher stochastischer Kontrollprozess. Heilige Kuh. Das klingt intelligent, aber das Konzept selbst ist dasselbe, was wir gerade beschrieben haben. So können noch mehr ausgefallene Wörter dynamische Programmierung verwendet werden, um zu beschreiben. Was wir gerade gemacht haben, ist gut, wow, das klingt wie Computer mit künstlicher Intelligenz, Programmierung selbst, Terminator zwei, Skynet-Zeug. Aber nein, es ist genau das, was wir gerade getan haben. Wenn Sie also die Definition der dynamischen Programmierung nachschlagen, ist
es eine Methode, um ein komplexes Problem zu lösen,
wie zum Beispiel einen intelligenten Pac-Mann zu schaffen. Das ist eine ziemlich komplizierte und führt durch Aufschlüsselung in eine Sammlung von einfacheren Unterproblemen. Also, zum Beispiel, was ist die optimale Aktion für einen bestimmten Zustand, in dem Pac Man sein könnte, zu ergreifen? Es gibt viele verschiedene Staaten, in denen Pac Man sich finden könnte. Aber jeder dieser Staaten stellt ein einfacheres Unterproblem dar, bei dem es eine begrenzte Auswahl an Entscheidungen gibt , die ich treffen könnte. Und es gibt eine richtige Antwort für den besten Schritt, um ihre Lösungen zu erstellen und zu speichern. Diese Lösungen sind die Q-Werte, die ich mit jeder möglichen Aktion in jedem
Zustand assoziiert habe , idealerweise mit einer speicherbasierten Datenstruktur. Nun, natürlich muss
ich diese Q-Werte speichern und sie irgendwie mit dem Zustand verknüpfen, wenn das nächste Mal dasselbe Unterproblem auftritt, wenn Pac Man das nächste Mal in einem bestimmten Zustand ist, dass ich eine Reihe von
Q-Werten habe . Vier. Anstatt seine Lösung neu zu berechnen, wenn einfach nachschlägt, die zuvor berechnete Lösung, die der Q-Wert bereits aus der Explorationsphase hat, wodurch Rechenzeit auf Kosten eines bescheidenen Erweiterungsspeicherplatzes gespart wird. Das ist genau das, was wir gerade mit verstärktem Lernen gemacht haben. Wir haben eine komplizierte Explorationsphase, die die optimale Belohnungen Associate ID mit
jeder Aktion vergeben Zustand findet und war, wir haben diese Tabelle der richtigen Aktion, um vergeblichen Zustand zu nehmen. Wir können das sehr schnell nutzen, um unseren Pacman zu einer optimalen Art und Weise zu machen und ein völlig neues Labyrinth, das er vorher noch nicht gesehen hat. verstärkte Lernen ist also auch eine Form der dynamischen Programmierung. Wow. Um zusammenzufassen, könnten
Sie einen intelligenten PacMan-Agenten machen, indem Sie nur seine halbzufällig
verschiedene Bewegungsmöglichkeiten unter verschiedenen Bedingungen erforschen , wo diese Entscheidungen oder Aktionen, diese Bedingungen oder Zustände, wir verfolgen die Belohnung der Strafe mit jeder Aktion oder Staat verbunden, wie wir gehen, und wir können tatsächlich Rabatt, wissen
Sie, gehen zurück mehrere Schritte, wenn Sie es noch besser machen wollen. Und dann speichern wir die Q-Werte, die wir am Ende jedem Zustand zuordnen. Und wir können das nutzen, um seine zukünftigen Entscheidungen zu informieren, damit wir in einen ganz neuen Mais gehen und einen wirklich intelligenten Pacman
haben können, der die Geister vermeiden und ihn ziemlich effektiv alle
seine eigenen fressen kann. Ziemlich einfaches Konzept. sehr mächtig, Abersehr mächtig, und Sie können auch sagen, dass Sie eine Reihe von ausgefallenen Begriffen verstehen, weil es alles
dasselbe heißt . Que lernen, Verstärkung, Lernen Markov Entscheidungsprozess ist dynamische Programmierung alle im gleichen Konzept gebunden. Also denke ich, es ist ziemlich cool, dass man durch eine so einfache Technik einen künstlich intelligenten
Pacman machen kann, und es funktioniert wirklich. Wenn Sie es genauer betrachten möchten,
hier sind ein paar Beispiele, die Sie sich ansehen können. Es hat einen tatsächlichen Quellcode, den Sie betrachten und potenziell mit spielen können. Es gibt also eine Python Markov Entscheidungsprozess-Toolbox, die Sie kennen und umschließt sie. In all der Terminologie, über die wir gesprochen haben, gibt es ein Beispiel. Sie können sich ein funktionierendes Beispiel für das Katzen- und Maus-Spiel ansehen, das ähnlich ist, und es gibt tatsächlich ein Pacman-Beispiel, das Sie auch online betrachten können. Das verbindet mehr direkt mit dem, worüber wir gesprochen haben, also fühlen Sie sich frei, diese Links zu erkunden und noch mehr darüber zu erfahren. Aber das ist ein verstärktes Lernen auf den Punkt gebracht. Also, das ist Verstärkung. Generell lernen, ist
es eine nützliche Technik zum Erstellen eines Agenten, der seinen Weg durch eine mögliche
andere Gruppe von Zuständen navigieren kann , die über eine Reihe von Aktionen verfügen, die mit jedem Status verknüpft werden können . Also haben wir darüber vor allem im Kontext eines Labyrinth-Spiels gesprochen. Aber du denkst breiter. Und wenn Sie eine Situation haben, in der Sie das Verhalten von etwas vorhersagen müssen, angesichts einer Reihe von aktuellen Bedingungen und einer Reihe von Maßnahmen, die Verstärkung erfordern können, könnten
Lernen und Q-Lernen eine Möglichkeit sein, dies zu tun, also behalte, dass im Hinterkopf.
55. Praktische mit Q-Learning: so Verstärkung Lernen ist in den letzten Jahren viel beliebter geworden, da die Aufregung über maschinelles Lernen im Allgemeinen gewachsen ist. Und zum Glück gibt es ein neues Paket namens Open Ai Jim. Das macht es ziemlich einfach für Sie, Testfälle für das verstärkte Lernen einzurichten. Also lasst uns tatsächlich einige Hände auf Übung mit ihm machen. Zuerst jedoch müssen
wir
jedochJim installieren. Um das zu tun, gehen Sie zu Ihrer Anaconda-Eingabeaufforderung unter Windows oder Ihrem Terminal auf Lennox oder Mac OS und geben Sie einfach pip Install Jim ein. Stellen Sie sicher, dass Sie „See out of Jupiter Notebook“ steuern. Wenn das immer noch zuerst läuft, natürlich. Und Jim funktioniert tatsächlich besser auf Lenox-Maschinen als Windows. Maschinen ermöglichen es Ihnen, Dinge wie Spielraum,
Eindringlinge und Training zu tun , wie man Raum Invasoren und Untergang oder grafische Video-Gamey Dinge unter Windows zu spielen. Es wird begrenzter sein, weil es keinen Zugriff auf das grafische System hat, aber wie Sie sehen werden, können
wir es immer noch verwenden. In Ordnung, also haben wir wenigstens die nackte Bones Version von Jim installiert. Lass uns weitermachen und unser Notizbuch starten. Jupiter ein Notizbuch und natürlich bin
ich bereits im ML Kursordner, wo meine Kursmaterialien sind, und suche nach dem Q learning Notebook. Da ist es. Und mal sehen, ob es funktioniert. Alles klar, was
wir hier spielen werden, ist, was das Taxiproblem nennt, wird mehr Sinn machen wenn wir es hier betrachten. Aber im Grunde modellieren wir ein selbstfahrendes Taxi, das Passagiere an einer
Reihe von festen Orten abholen kann , sie an einem anderen Ort abgeben und versuchen, in kürzester Zeit dorthin zu gelangen Hindernisse zu
vermeiden. Also werden wir im Grunde unser Taxi trainieren, um Passagiere von einem Punkt zum
anderen auf schnellstmögliche Weise zu bringen, indem wir Verstärkung lernen. Also lassen Sie uns beginnen, indem Sie die Umgebung importieren, die wir brauchen, wird das Fitness-Paket importieren wir gerade installiert und zufällig geben uns eine konsistente Zufallszahl. So erhalten wir jedes Mal die gleichen Ergebnisse, und wir werden unsere Umgebung namens Taxi V zu machen, dass nur enthalten Art der Regeln dieses Spiels, wenn Sie so wollen, wie es alles funktioniert. Wir nennen das resultierende Modellstraßen und rendern es dann aus. Wir können visualisieren, wie diese Umgebung aussieht, also gehen wir voran und verschieben Enter und da haben wir es. So interpretieren Sie das, was Sie hier sehen. Grundsätzlich sind die Buchstaben RGB und warum sind sie welcher Korrespondent? Rot, Grün, Blau und Gelb oder so. Was immer du willst. Diese lüften die gültigen Abhol- und Abgabestellen. So kann ein Passagier wählen, dass er an einem der Orte abgeholt wird, die sich entscheiden, einen Tag
abgesetzt zu werden . Diese Orte sind Taxibedarf, um zu lernen, wie sie von einem Punkt zum anderen so
schnell wie möglich zu bekommen. , welcher Buchstabe gefärbt ist,
blau ist, wo wir jemanden abholen müssen, und wann immer der Buchstabe in Magenta gefärbt ist zeigt an, wohin der Passagier gehen will. Okay, denk daran, dass der blaue Brief ist, wo wir herkommen. Die magentafarbenen Buchstaben, wohin wir gehen. In diesem Fall unsere Kunden bei B abgeholt und wollen nach G gehen. Jetzt stellen diese durchgezogenen Linien Wände dar, so dass das Taxi diese Linien nicht überqueren kann. Das ist irgendwie der Rand
der Straße dort oder was auch immer. Und das gefüllte Rechteck, das ah orangy Yellow Square ist eigentlich das Taxi selbst. Das bedeutet, wo das Taxi jetzt ist, wenn es leer ist, wird gelb sein. Und wenn es grün ist, bedeutet das, einen Passagier zu
tragen. Also haben wir dieses kleine virtuelle Taxispiel hier, und wir müssen unser Taxi trainieren. Wie Zehe das Spiel spielen. Also haben wir hier eine kleine Welt, und wir haben sie Straßen genannt. Es ist im Grunde ein fünf mal fünf Raster, und wir können den Zustand dieser Welt zu jeder Zeit definieren, mit nur ein paar Dingen, wo das Taxi ist, das ist einer von 25 möglichen Orten, was das aktuelle Ziel ist, das ist einer der vier Möglichkeiten und wo der Passagier ist, das ist fünf Möglichkeiten. Eigentlich könnte
es entweder eines der Ziele oder innerhalb des Taxis für 1/5 Möglichkeit sein. Insgesamt funktioniert
das bis zu 500 möglichen Staaten, die unsere Welt an jedem beliebigen Punkt beschreiben könnten. Das ist jetzt eine überschaubare Nummer für jeden möglichen Staat, jeden dieser fünf Staaten. Es gibt sechs mögliche Aktionen, die mit diesem Staat verbunden sind, und wir müssen lernen, welche dieser Aktionen für jeden Staat sinnvoll sind, richtig? Also können
wir für jeden Staat Südosten,
Westen Norden bewegen . Wir könnten einen Passagier abholen oder den Passagier abgeben. Da unser virtuelles Taxi hier diese Umgebung erforscht und darüber lernt, müssen
wir im Grunde Belohnungen und Strafen assoziieren, wie es Dinge tut, da es
verschiedene Aktionen auf diese verschiedenen Staaten anwendet . Also werden wir diese so definieren. Wenn unser Taxi erfolgreich jemanden abgesetzt hat, wo er hingehört, erhalten Sie eine Belohnung von 20 Punkten. Wenn Sie einen Zeitschritt machen, während Sie einen Passagier fahren, aber nicht fallen lassen, erhalten
Sie eine negative Ein-Punkt-Strafe, die dazu dient, sicherzustellen, dass wir den
kürzesten Weg im Laufe der Zeit belohnen . Und wenn Sie etwas Schlimmes tun, wie Abholung oder Absetzen an einem illegalen Ort, das gibt Ihnen eine negative 10-Punkte-Strafe, so dass es keine eingebauten Smarts zu wissen,
was Sie im Voraus wissen, wo Sie 're erlaubt, Passagiere abzuholen und abzugeben. Das muss es
auch lernen . Und so weit wie die Wände gut gehen, ja, es weiß von den Wänden. Wir erlauben einfach nicht, dass das überhaupt passiert. Du kannst die Mauer nicht überqueren, egal was passiert. Das ist physisch unmöglich. In Ordnung, also fangen wir mit einem Anfangszustand an. Unser Ausgangszustand hier wird nur mit einem Taxi an Ort x zwei sein und warum drei? Der Passagier wird ein Abholort Nummer zwei sein, und das Ziel wird an Position Nullen sein. Wir kodieren diesen Zustand als Standort des Taxis, A bis drei Passagierstandort und den Zielort. Wir setzen unsere Straßen, bleiben daran und rendern sie, damit wir sie wieder visualisieren können. Und da hast du es. Sortieren Sie Taxis an dieser Ausgangsposition auf drei. Der mit dem blauen Buchstaben angegebene erste Abholort für den Passagier ist Standort zu, und er möchte zu Position Null wechseln
, der in Magenta gefärbt ist. Also im Grunde willst du Zeh. Unser Taxi beginnt hier drüben. Es muss hier unten einen Passagier abholen, und ich will sie da oben abgeben. In Ordnung, schauen wir uns unsere erste Belohnungstabelle für diesen Anfangszustand an. Also, hier ist, wie interpretieren Sie die Belohnungstabelle hier jetzt? Jede Rose geht zu einer potenziellen Aktion in diesem Zustand entsprechen? Wie gesagt, es gibt sechs potenzielle Aktionen für jeden Staat, so dass sie sich nach Süden,
Norden,
Osten oder Westen bewegen können Norden, , abholen oder ablegen und die vier Werte in jeder Zeile oder die Wahrscheinlichkeiten, die diesem zugeordnet -Aktion und dann den nächsten Status, der sich aus dieser Aktion ergibt. Die Belohnung für diese Aktion und ob diese Aktion auf einen erfolgreichen Abbruch hindeutet, fand statt. So zum Beispiel sehen, können
wir
zum Beispiel sehen,dass uns der Weg nach Norden von diesem Staat in die Staatsnummer 368 versetzt. Es würde eine Strafe von negativem verursachen, wenn man nur einen Zeitschritt aufnimmt. Und es führt nicht zu einem erfolgreichen Drop off und zunächst sind Wahrscheinlichkeiten sind alle ein Punkt. Oh, weil wir noch nichts gelernt haben. Kümmern wir uns darum. Also lassen Sie uns tatsächlich einige que lernen hier, wie wir über die Folien gesprochen. Das erste, was wir tun müssen, ist, unser Modell zu trainieren. Auf einem hohen Niveau werden
wir 10.000 simulierte Taxifahrten trainieren und für jeden Lauf werden die Zeit
mit einer 10% Chance durchlaufen , nur einen zufälligen Explorationsschritt zu machen, anstatt die erlernten
Q-Werte zu verwenden , um unsere Aktionen zu leiten. Also im Grunde haben wir hier einen 10% Explorationsfaktor, den wir verwenden, um die
Lernphase schnell zu machen , gehen Sie durch den Code hier. Ah, wir beginnen mit der Definition einer que Tabelle, die ein Taub Scheiterhaufen ist, A und das enthält ah zwei D-Array, das jeden möglichen Zustand und Aktion innerhalb
unseres virtuellen Raumes hier darstellt und initialisieren. Sind diese Q-Werte alle Null? Wir haben einige Hyperparameter hier ist, na ja, die Lernrate. Das ist im Grunde, wie schnell wir versuchen, Rabattfaktor zu lernen. Diese alle pipe in die Q Lerngleichung, die wir in den Folien und unsere Explorationsrate, die, wie wir sagten, 10% und die Anzahl der F-Blöcke, die über seine 10.000 trainieren wollten. Also gehen wir über alle 10.000 Taxifahrten. Wir setzen unser virtuelles Spielfeld hier zurück, und während wir nicht gut fertig sind, ziehen Sie
zuerst eine Zufallszahl zwischen Null und Eins. Wenn diese Zahl weniger mittlere Ablaufrate ist, die 10,1 ist, dann werden wir tatsächlich nur eine zufällige Aktion erkunden. Andernfalls werden
wir nur mit dem höchsten Q-Wert gehen, der mit den Aktionen verbunden ist, die
uns zur Verfügung stehen . Okay, da die Exploration 0,1 ist, ist das im Grunde eine 10% ige Chance, dass eine Zufallszahl kleiner ist als die. In diesem Fall
wählen wir einfach eine zufällige Stichprobenaktion aus. Andernfalls gehen
wir mit dem maximalen Q-Wert, der uns für die Aktionen zur Verfügung steht, die wir zur Hand haben. Wir haben dann ST Starts gestuft aufgerufen, tatsächlich diese Aktion anwenden, die uns den nächsten Zustand zurückgibt, der aus dieser Aktion resultiert . Die resultierende Belohnung, ob wir an dem Punkt fertig sind, an dem wir unseren Passagier erfolgreich abgesetzt haben, und einige weitere Informationen. An diesem Punkt müssen
wir tatsächlich die Q-Lerngleichung machen. Dies ist im Grunde die Code-Version der Gleichung, die wir in den Folien betrachtet. Es gab nur einen Blick auf den aktuellen Q-Wert als einen der nächsten Zustände und dann die
Berechnung des neuen Q-Wertes, basierend auf der Q-Lerngleichung, die Lernrate und Rabattfaktor
berücksichtigt . Und dann weisen wir die Q-Tabelle für diesen gegebenen Zustand in Aktion dem neu erlernten Q-Wert zu
,
und wir setzen unseren Zustand auf den nächsten Zustand und machen es noch einmal, bis wir tatsächlich fertig sind , und tatsächlich für einen Passagier absteigen und ich werde Führen Sie einen einzigen Lauf des Taxis aus, und dann machen wir das 10.000 Mal, also könnte das ein bisschen dauern, Ah, ein bisschen Zeit zum Laufen. Probieren wir es aus. Wir klicken hier und verschieben, geben ein und sehen es einfach los. Schade, dass es ein paar Sekunden gedauert hat. Das ist ziemlich beeindruckend, oder? Alles klar, also mal sehen, was wir haben. Also jetzt sollten wir eine Tabelle mit Q-Werten aufbauen, die wir schnell verwenden können, um die
optimale nächste Aktion für einen bestimmten Zustand zu bestimmen . Also schauen wir uns mal an. Werfen wir einen Blick auf den netten Tisch für unseren Anfangszustand, von dem wir angefangen haben. Hier können Sie sehen, dass der niedrigste Q-Wert der Aktion entspricht. Es ist ziemlich nah hier, aber es entspricht der Aktion. Geh nach Westen, es stellt sich heraus, also macht das Sinn. Wenn du auf unseren Anfangszustand zurückblickst, äh ,
ja ,
ich meine, wir wollen diesen Weg gehen, oder? Also, , wir wollen unseren Kerl um diese Mauer abholen, als wäre die einzige Richtung, die Sinn macht, Westen
zu gehen. Sieht so aus, als hätte es bisher funktioniert. Das ist ziemlich cool. In Ordnung, also lassen Sie es uns tatsächlich in Aktion sehen. Eine coole Sache über Open ei Jim ist, dass es Ihnen erlaubt, das zu animieren, was vor sich geht, und es macht wirklich Spaß zu sehen. Also, was wir in diesem Codeblock tun werden, es ist tatsächlich simulieren Ah, 10 verschiedene Reisen hier bei jedem Schritt wird, für jede Reise wird den Straßenzustand zurücksetzen, und wir werden einfach einen Schritt nach dem anderen durchlaufen, Anwendung, was auch immer Aktion, die wir gelernt haben, dass que Tabelle lernen. Es gibt also kein Lernen, das hier passieren muss, und dass wir bereits die optimale Aktion für jeden möglichen Zustand gelernt haben, den wir in
dieser Welt haben können . Wir können unser Taxi sehr schnell durch jede Situation führen. Das ist also wirklich die Kraft des Q-Lernens. Wissen Sie, sobald Sie gelernt haben, dass Q-Tabelle tatsächlich eine KI dazu bringt, durch Ihre virtuelle
Umgebung zu gehen , super schnell und super einfach ist, und der wirklich lustige Teil hier ist, dass wir ST Stop gerendert nennen könnten, tatsächlich animieren, dass Taxi durch, wie wir gehen. Also lass uns zuschauen. Da geht es, Abholung unseres Passagiers unten um ah,
warum Standort es abgeholt und an G cool geliefert hat und wir sind auf Reise Nummer drei jetzt holen ihren Passagier wieder ab. Es ist jetzt in der grünen Box. Es ist im Taxi und wurde erfolgreich abgesetzt, wieder
angefangen, einen Passagier am blauen Standort
abholen und so schnell wie
möglich nach Magenta abfahren . Das macht wirklich Spaß. Also wieder, wir holten einen Pastor a g, und jetzt werden wir ihn da unten abgesetzt. Warum begann? Es dauerte einen sehr schnellen Weg. Das scheint also tatsächlich zu funktionieren. Leute, wie cool ist das? Also haben wir tatsächlich ein virtuelles Taxi geschult, wie man den schnellsten Weg zwischen zwei
beliebigen Punkten findet , um einen Passagier abzuholen und ihn an einem bestimmten Ort abzulegen. So lustiges Zeug. Wir haben ein kleines virtuelles Fahrzeug beigebracht, wie man diese Welt alleine durchführt. Das ist lustiges Zeug, Leute. Du kannst dir das einfach für immer ansehen. Aber wie auch immer, wenn Sie damit spielen wollen, Samora auf jeden Fall fordern Sie dies zu tun. Eso versuchen Sie, diesen kleinen experimentellen Block hier oben zu ändern, um die Gesamtzahl
der Male zu verfolgen , die Schritte, die es braucht, um tatsächlich durch alle 10 Reisen zu bekommen. Und das wird eigentlich eine nützliche Metrik sein, wie gut unser System im Grunde ist, wenn es diese 10 Reisen in der minimalen Menge an Zeit
durchkommt , das bedeutet, dass es wirklich gute Arbeit macht, richtig? Wenn Sie also tatsächlich eine größere Anzahl von Fahrten testen möchten, können
Sie diese Schlaffunktion dort entfernen, damit sie schneller ausgeführt werden kann, und das ermöglicht es Ihnen, mehr Samples schneller auszuführen. Sobald Sie also diese Metrik anstelle von wie vielen Schritten es braucht, um diese Reisen zu durchlaufen , könnten
Sie anfangen, mit diesen Hyper-Parametern zu spielen. Versuchen Sie also zu sehen, wie niedrig Sie die Anzahl der F-Box gehen lassen können, bevor das Modell beginnt zu leiden . Brauche ich wirklich 10.000 Trainingsschritte? Können Sie ein besseres Tal für die Lernrate oder den Rabattfaktor oder die Ablauffaktoren finden, um das Training noch effizienter zu machen? Können diese Faktoren beeinflussen, wie maney Epochen? Sie müssen tatsächlich ein gutes Ergebnis erzielen. Also diese Luft gute Dinge, um ein intuitives Gefühl zu bekommen und zu sehen, wie diese Werte
Ihr resultierendes Modell beeinflussen . Insbesondere die Explorationsrate wird interessant sein, mit der man experimentieren kann. Also, wenn Sie nur Zeit haben, mit einem Wert zu spielen. Ich würde das empfehlen. Das ist ein lustiges kleines Beispiel, was? So das ist que Lernen in Aktion Training ein virtuelles Taxi. Und Sie haben jetzt tatsächlich das Verstärkungslernen an einem echten Beispiel angewendet.
56. Eine Confusion verstehen: Etwas, dem Sie begegnen könnten, ist das Konzept der Verwirrungsmatrizen. Also lasst uns in das eintauchen, worum es bei diesen geht. Wozu dient die Verwirrungsmatrix? Nun, die Sache ist, manchmal erzählt Genauigkeit nicht die ganze Geschichte und eine Verwirrungsmatrix kann
Ihnen helfen , die differenzierteren Ergebnisse Ihres Modells zu verstehen. Zum Beispiel könnte ein Test für eine seltene Krankheit 99,9% genau sein, indem ich nur raten,
nein, die ganze Zeit, die ich sage, dass Sie es nicht haben. Ein Modell, das das tut, würde auf dem Papier eine sehr hohe Genauigkeit haben, aber in Wirklichkeit ist es schlimmer als nutzlos, oder? Sie müssen also mit einem Fall wie diesem verstehen,
wie wichtig ein echtes positives oder echtes Negativ ist. Wie wichtig ein falsch-positives oder falsches Negativ für das ist, was Sie erreichen wollen. Und in der Lage zu messen, wie gut Ihr Modell ist, dass jeder dieser Fälle. Und eine Verwirrungsmatrix ist nur eine Möglichkeit,
diese Nuancen in der Genauigkeit Ihres Modells zu veranschaulichen . Man könnte so aussehen. Dies ist das allgemeine Format davon. Stellen Sie sich vor, wir haben eine binäre Situation, in der wir nur Ja oder Nein vorhersagen. Als ob ich diese Krankheit habe, oder ich habe
diese ID-Krankheit nicht oder ich prüfe positiv auf dieses Medikament, oder? Testen Sie nicht positiv auf dieses Medikament. Dieses Bild hat eine Ablage oder dieses Bild hat keine Ablage. Dies ist das Format dessen, wie es aussehen würde. Sie sehen also, dass wir in den Zeilen
Werte vorhergesagt haben und in den Spalten tatsächliche Werte haben. Also geh es durch. Wenn wir vorhersagen, dass etwas wahr ist und es wirklich ist, dann ist das ein wirklich positives. Wenn wir ja vorhergesagt haben, aber es ist eigentlich nein, eigentlich negativ. Das wird falsch positiv sein, wenn wir es vorhersagen, nein, aber es ist ja und das ist ein falsches Negativ. Und wenn wir Nein vorhersagen und es ist eigentlich nein, das ist ein echtes Negativ. Ich meine, es wird ein wenig verwirrend, aber wenn du überlegst, was das alles Sinn macht, richtig? Eine tatsächliche Verwirrungsmatrix, diese Zellen enthalten tatsächliche Zahlen, wie oft das Modell tatsächlich in seinem Test-Dataset getan hat. Denken Sie also auch daran, dass Sie auf die Etiketten achten müssen. Es gibt keine wirkliche Konvention, wie das bestellt wird. Manchmal sehen Sie hier oben Vorhersagen und die tatsächlichen Werte hier drüben. Springen Sie nicht einfach in der Annahme, dass eine gegebene Verwirrungsmatrix ein bestimmtes Format hat. Achten Sie darauf, wie es gekennzeichnet ist, und stellen Sie sicher, dass Sie verstehen, was es Ihnen
sagt, bevor Sie Schlussfolgerungen daraus ziehen. Etwas anderes erwähnenswert ist, dass Sie taub normalerweise die meisten Ihrer Werte hier und hier haben wollen, richtig? Also die Diagonale hier, wenn Ihre Verwirrungsmatrix dort ist, wo die meisten Ihrer Ergebnisse sein sollten, ist
dies, wo Genauigkeit lebt, oder? Hier habe ich also ein wahres Positives. Hier habe ich ein echtes Negativ. Sie wollen, dass diese schöne große Zahlen und falsche Negative und falsche Positive sind, um hoffentlich vergleichbar niedrige Zahlen, oder? So würde ein genaues Modell hier hohe Zahlen entlang dieses Diagonalwerts haben. Lassen Sie uns einige tatsächliche Zahlen einstecken, um zu sehen, wie das aussehen könnte. Also sagen wir, ich habe ein maschinelles Lernmodell, das versucht herauszufinden, ob ein Bild ein Bild einer Katze enthält oder nicht. Wenn wir vorhergesagt haben, dass ein eine Katze hatte und es wirklich eine Katze hatte, die 50 Mal in meinem Testset gewesen war. Aber manchmal sagte ich voraus, dass es eine Hauptstadt
war, keine Katze war, er war ein Hund oder ein Fisch oder so. Und das haben nicht 5 Mal, sie sagten voraus, dass das kein Konto war, aber es war wirklich keine Katze. Das war 10 Mal dieses Beispiel gewesen. Und wenn ich sagte, es war keine Katze in, es war wirklich keine Katze, die ein 100 Mal in diesem Fall gewesen. So interpretieren Sie also eine Verwirrungsmatrix. Und wir werden darüber sprechen, wie man Metriken aus diesen Daten herstellt, die für die Analyse nützlicher sind. In Kürze. Manchmal werden Sie Verwirrungsmatrizen in
einem anderen Format sehen , in dem wir tatsächlich Dinge in jeder Zeile und Spalte addieren. Das ist also etwas, das Sie ab und zu sehen haben. Alles, was ist, dass es addiert, wie viele tatsächliche Knoten wir haben, wie viele tatsächliche Ja wir haben, wie viele Nein vorhergesagt haben wir und wie er ja vorhergesagt hat, wie wir insgesamt haben. Also, nur damit Sie dieses Format schon einmal gesehen haben, so sieht das aus. Der innere Teil davon ist jedoch genau die gleiche Verwirrungsmatrix, die wir uns vorher angesehen haben. Und noch einmal, denken Sie daran, dass die Dinge
so weit gekippt werden können , wo die vorhergesagten Werte und die tatsächlichen Werte sind. Stellen Sie also sicher, dass Sie auf die Etiketten auf diesen Dingen achten. Und weißt du, was soll ich sagen? Verwirrungsmatrizen können verwirrend sein. Manchmal werden Sie sie auch in dieser Art von Format sehen. Vielleicht haben wir hier ein Mehrklassenklassifizierungsmodell, um sich vorzustellen, dass wir ein Handschrifterkennungssystem
haben, das versucht, jemanden zu identifizieren, der die Werte 0 bis neun schreibt. Eine kompliziertere Verwirrungsmatrix könnte also so aussehen, wo anstelle von nur Ja keine Antwort ist, dass wir tatsächlich mehrere Klassifizierungen haben, aber es funktioniert auf die gleiche Weise. Also hier haben wir Etiketten auf dieser Achse und echte Beschriftungen auf dieser Achse vorhergesagt. Also sagen wir, wenn ich vorhersage, dass etwas eine Fünf war und es wirklich eine Fünf war,
nun, dass der Blauton einer Zahl hier entspricht. Also zwei Dinge, die in diesem Beispiel unterschiedlich sind. Zunächst einmal haben wir mehr als ja, keine Optionen hier haben wir mehrere Klassifizierung, so dass unsere Verwirrungsmatrix größer ist. Lassen Sie uns in ein anderes Beispiel eintauchen, nur um das nach Hause zu fahren. Also manchmal sagte ich voraus, dass es eine Eins war, aber es war wirklich eine Acht, die eine Art helleres Blau dort hat. Vielleicht ist das in diesem Beispiel 20 oder so mal passiert. Und wir verwenden auch eine sogenannte Heatmap. Anstatt nur Zahlen in diesen einzelnen Zellen anzuzeigen, ordnen
wir diese Zahlen Spalten zu, in denen
die Dunkelheit dieser Farbe der Höhe einer Zahl entspricht. Man würde erwarten, dass hier eine dunkle Linie die Diagonale hinuntergeht die eine gute Genauigkeit bei echten Positiven und wahren Negativen darstellt. Und einige spärlichere, hellere Farben hier im Idealfall. Aber diese Farbe wird einem tatsächlichen Wert zugeordnet und es macht es einfach zu visualisieren, wie Ihre Verwirrungsmatrix angelegt ist. Alles klar, ergibt Sinn, Leute, darum geht es bei einer Verwirrungsmatrix. Und es kann ein wenig verwirrend sein, aber starren Sie einfach auf diese Beispiele ein wenig und es sollte für Sie Sinn machen.
57. Die Klassiker (Präzision, Recall, F1, ROC, AUC): Lassen Sie uns über einige Metriken sprechen, die Sie aus einer Verwirrungsmatrix ableiten können. Also lassen Sie uns unseren Freund die Verwirrungsmatrix erneut besuchen, in diesem speziellen Beispiel von einem,
wir haben tatsächliche Werte, die die Spalten hinunter und vorhergesagte Werte über die Zeilen hinuntergehen. Das kann anders sein. Aber in diesem Format haben wir die Anzahl der wahren Positiven in der oberen linken Ecke. Die Anzahl der wahren Negative in der unteren rechten Ecke, die Anzahl der falschen Negative in der linken unteren Ecke und die Anzahl der Fehlalarme in der oberen rechten Ecke. Ok? Stellen Sie also sicher, dass Sie verstehen, wo Ihre wahren Positive und Negative sind, wo Ihre falschen positiven und negativen sind, wenn Sie beginnen, eine Verwirrungsmatrix zu betrachten. Und wieder, kann basierend auf dem Layout der Verwirrungsmatrix selbst variieren. Fangen wir mit dem Rückruf an. Also Rückruf wird als die wahren Positive über wahre Positive plus die falschen Negative berechnet. Sie sollten sich das ernsthaft auswendig lernen. Du musst das wissen. Es geht auch unter anderen Namen, nur um die Dinge verwirrend zu machen. So ist es auch als Sensibilität,
echte positive Rate und Vollständigkeit bekannt . Und Vollständigkeit Art von hört
auf seine ursprüngliche Verwendung in der Welt der Informationsabruf zurück . Es ist also eine gute Wahl der Metrik, wenn man sich sehr um falsche Negative kümmert, okay, also ist die Betrugserkennung ein großartiges Beispiel dafür, wo man sich auf Rückruf konzentrieren könnte, denn ein falsches Negativ in der Welt des Betrugs bedeutet, dass etwas Betrug war, aber Sie können es nicht als Betrug identifizieren. Sie hatten eine betrügerische Transaktion, die als vollkommen okay gekennzeichnet wurde, das ist das schlimmste mögliche Ergebnis in seinem System, das Betrug aufdecken sollte, richtig? Sie wollen auf der Seite von falschen Positiven und falschen Negativen in diesem Fall irren. Also erinnern, gute Wahl symmetrisch, wenn Sie über falsche Negative kümmern. Betrugserkennung ist ein Beispiel dafür, ist wahr positiv über echte Positive plus falsche Negative. Lassen Sie es uns an einem Beispiel hier realisieren. Also in diesem speziellen Beispiel einer Verwirrungsmatrix, wieder, Rückruf ist wahr positiv über wahre Positive plus falsche Negative. Wir stecken nur die Werte aus dieser Verwirrungsmatrix. In diesem speziellen Layout werden
zwei positive fünf sein, falsche Negative werden 10. Also sagen wir einfach 5 über 5 plus 10, das ist 5 über 15 oder 1 Drittel oder 33,3, 33, 33 Prozent, richtig? Also, das ist Rückruf. Erinnert sich an einen Partner in Kriminalität ist Präzision, und Präzision wird als wahre Positive über True Positives plus False Positives berechnet. Dies geht auch unter anderen Namen, einschließlich der korrekten positiven Rate oder der Prozentsatz der relevanten Ergebnisse. Dies ist also ein Maß an Relevanz in der Welt des Informationsabrufs. Wann sollten Sie sich um Präzision kümmern? Nun, es ist eine wichtige Metrik, wenn man sich um falsche Positive kümmert. Einige Beispiele wären medizinisches Screening oder Medikamentententests. Du willst nicht sagen, dass jemand, du weißt schon, auf Kokain oder so was, wenn sie nicht sind, das hätte wirklich schlechte Auswirkungen auf ihr Leben, ihre Karriere und so, richtig? Also noch einmal, Präzision, wenn Sie sich um falsche Positive kümmern, mehr als falsche Negative. Drogentests sind ein klassisches Beispiel dafür. Auch hier wird es als wahre Positive über True Positives plus False Positives berechnet. Und wieder werden wir hier in ein Beispiel eintauchen. In dieser speziellen Verwirrungsmatrix die wahren Positive fünf, die Falsch-Positive in diesem Beispiel oder 20. So wird die Genauigkeit als fünf über 25 berechnet, das ist 20 Prozent. Es gibt auch andere Metriken. Zum Beispiel, Spezifität, die
die wahren Negative über echte Negative plus falsch positiv ist. Auch bekannt als die wahre negative Rate. Auch F1 Score ist eine sehr häufige Sache, die verwendet wird. Das ist das zweifache der wahren Positive über 2-fache wahre Positive plus falsche Positive plus falsche Negative. Sie können es auch berechnen, wie die zweifache Genauigkeit der Zeiten über 2 abrufen, über die Genauigkeit. Erinnern Sie sich an oder so funktioniert. Mathematisch ist es das harmonische Mittel von Präzision und Empfindlichkeit. Also, wenn Sie sich um Präzision und Rückruf kümmern, denken Sie daran, Rückruf und Sensibilität sind die gleiche Sache. F1 Score ist eine Metrik, die die beiden ausbalanciert. Wenn Sie wissen, dass sich Ihr Modell nicht nur um
Genauigkeit allein kümmert und Sie sowohl Präzision als auch Rückruf erfassen möchten. F1 Score kann ein Weg sein, dies zu tun. Aber in der realen Welt Sie sich wahrscheinlich um Präzision kümmern oder sich mehr erinnern als die andere. Es lohnt sich also wirklich, darüber nachzudenken, was Ihnen mehr wichtig ist. Verwendung von F1-Score
ist meiner Meinung nach ein bisschen eine Abkürzung, ein wenig Faulheit. Auch RMSE wird oft als Metrik verwendet. Es ist nur ein geradliniges Maß für die Genauigkeit und es ist genau so, wie es klingt, der Wurzelmittel-Quadratfehler. Also addieren Sie einfach alle quadrierten Fehler jeder Vorhersage aus ihrem tatsächlichen wahren Wert und nehmen die Quadratwurzel davon. Das war's. Es kümmert sich also nur um richtige und falsche Antworten. Es kommt nicht in die Nuancen von Präzision und Rückruf. Wenn Sie also nur Genauigkeit interessieren, ist RMSE eine übliche Metrik, die dafür verwendet wird. Eine andere Möglichkeit, Ihre Modelle zu bewerten, ist die ROC-Kurve, für
die Betriebscharakteristikkurve des Empfängers steht. Und was es tut, ist, Ihre wahre positive Rate oder Ihren Rückruf im Vergleich zu
Ihrer falsch positiven Rate bei verschiedenen Schwellenwerten in Ihrem Modell zu plotten . Also, wenn Sie verschiedene Schwellenwerte für die Wahl zwischen wahr und falsch wählen, war diese Kurve so aussehen? Im Grunde ist die Art, eine ROC-Kurve zu interpretieren, dass Sie möchten, dass sie dort oberhalb der diagonalen Linie liegt. Die ideale Kurve wäre also nur ein einzelner Punkt in der oberen linken Ecke, nur ein großer rechter Winkel,
wo sich das Ganze in der oberen linken Seite des Diagramms befindet, wenn Sie so wollen, links von dieser diagonalen Linie. Je mehr gebogen oder ROC-Kurve in Richtung der oberen linken Ecke ist, desto besser. So interpretieren Sie diese Dinger. Wir können auch über die Fläche unter der Kurve sprechen, die die Fläche unter der ROC-Kurve ist, genau wie es klingt. Sie können diesen Wert also tatsächlich als die Wahrscheinlichkeit interpretieren, dass ein Klassifikator eine zufällig gewählte positive Instanz höher als eine zufällig gewählte negative
einstuft. Eine AUC von 0,5 wäre also das, was du
erwarten würdest , wenn du an dieser diagonalen Linie wärst, richtig? Also, wenn Sie tatsächlich den Bereich unter
dieser diagonalen Linie hatten , wo die Dinge nicht besser als zufällig sind. Das stellt sich heraus, dass es sich um eine Fläche von 0,5 handelt, oder? Das ergibt also Sinn. Wenn Sie also eine AUC von 0.5 oder darunter sehen, Das ist nutzlos oder schlimmer als nutzlos. Der perfekte Klassifikator würde eine Fläche unter der Kurve und AUC von 1 haben. Das wäre wieder der perfekte Fall, wo die Kurve genau so richtig ist, ein rechter Winkel mit einer 1 bei 01 dort oben in der oberen linken Ecke. Das würde die gesamte Fläche umfassen, die gesamte Grafik, die zu einem funktioniert. AUC kann also eine nützliche Metrik sein, um verschiedene Klassifikatoren miteinander zu vergleichen. Wo sind je höher der Wert, desto besser? Also da hast du es. Einige gebräuchliche Metriken für die Bewertung von Klassifikatoren Präzisionsrückruf, F1 Score, ROC und AUC sind die wichtigsten, die man sich merken sollte.
58. Vorstellung / Variance: in diesem nächsten Abschnitt werden
wir über die Herausforderungen im Umgang mit den realen Daten und einige
der Macken sprechen , denen Sie vielleicht begegnen. Beginnen wir damit, über die Voreingenommenheit von Varianten zu sprechen. Tradeoff Nur eine Art prinzipiellere Art, über die verschiedenen Möglichkeiten zu sprechen, die Sie möglicherweise in unter Fit-Daten passen und wie alles in Beziehung zueinander steht. Werfen wir einen Blick. Eine der grundlegenden Herausforderungen, denen wir beim Umgang mit realen Daten
gegenüberstehen, besteht also Ihre Regressionen an diese Daten oder Ihre Modelle Ihrer
Vorhersagen anzupassen . Und wenn wir über unter Fitting und Over Fitting sprechen, können
wir oft darüber im Kontext von Bias und Varianz und den
Kompromissen von Bias Varianz sprechen. Also lassen Sie uns darüber reden, was das bedeutet. Also konzeptuell Bias und Varianz Luft ziemlich einfache Vorurteile, wie weit Sie von
den richtigen Werten entfernt sind . Also, wie gut Ihre Vorhersagen insgesamt bei der Vorhersage des richtigen Gesamtwerts, um den Mittelwert
aller Vorhersagen zu nehmen ? Sind sie mehr oder weniger der richtige Platz? Oder sind Ihre Fehler alle konsequent in die eine oder andere Richtung verzerrt? Wenn So, dann Ihre Vorhersagen Luft in eine bestimmte Richtung voreingenommen. Varianz ist nur ein Maß dafür, wie verteilt sich Ihre Vorhersagen sind. Also, wenn Ihre Vorhersagen überall Luft, das ist eine hohe Varianz. Aber wenn sie sich sehr genau darauf konzentrieren, was die richtigen Werte sind, oder sogar falschen Wert im Falle einer hohen Verzerrung, ist Ihre Varianz klein. Schauen wir uns diese Beispiele hier an. Stellen wir uns vor, dass diese Dartscheibe stellt eine Reihe von Vorhersagen wurden, wo der reale Wert, den wir versuchen, vorherzusagen, ist in der Mitte des Bullenauges. Also, beginnend in der oberen linken Ecke, können
Sie sehen, dass unsere Punkte alle über die Mitte verstreut sind. Insgesamt kennen Sie also die Bedeutung. Irrtum kommt heraus,
Sie wissen schon,
ziemlich nah an der Realität zu sein Sie wissen schon, . Unsere Voreingenommenheit. Es ist eigentlich sehr niedrig, weil unsere Vorhersagen rund um den gleichen richtigen Punkt liegen. jedoch Wir habenjedocheine sehr hohe Varianz, da diese Punkte über den ganzen Ort verteilt sind. Dies ist also ein Beispiel für niedrige Bias und hohe Varianz. Wenn wir zu diesem in die obere rechte Ecke gehen, sehen
wir hier, dass Punkte sind, sie sind alle konsequent verzerrt, von wo sie im Nordwesten hier sein sollten. Dies ist also ein Beispiel für eine hohe Verzerrung in unseren Vorhersagen, bei denen sie konsequent um eine
bestimmte Menge weg sind, und wir haben eine geringe Varianz, weil sie alle eng um diesen falschen Punkt gruppiert sind. Aber wenigstens sind sie eng beieinander, also sind wir konsequent. Unsere Vorhersagen und das ist eine geringe Varianz. Aber die Vorurteile hoch, so wieder, das ist eine hohe Vorspannung. Geringe Varianz in diesem Beispiel. In der unteren linken Ecke sehen
Sie, dass unsere Vorhersagen um den falschen Mittelwert verteilt sind. Also haben wir hohe Voreingenommenheit, alles verzerrt zu irgendeinem Ort, wo nicht sein sollte. Aber unsere Varianz ist auch hoch, also ist das irgendwie das Schlimmste beider Welten. Hier haben wir eine hohe Bias und eine hohe Varianz in diesem Beispiel. Und schließlich, in einer wunderbaren, perfekten Welt, hätten
wir ein Beispiel, wie das untere rechte Bild hier, wo wir eine geringe Verzerrung haben, wo alles zentriert ist, wo es sein sollte und geringe Varianz, wo die Dinge alle ziemlich dicht herum gruppiert sind, wo sie sein sollten. Also, in einer perfekten Welt, das ist es, was Sie am Ende haben. Aber in Wirklichkeit müssen
Sie oft zwischen dem einen oder dem anderen wählen Also werfen wir einen Blick auf dieses Beispiel ein
bisschen eine andere Art des Denkens von Bias und Varianz hier. Also hier haben wir eine gerade Linie und Sie können sich vorstellen, dass eine sehr niedrige Varianten relativ zu diesen Beobachtungen. Okay, also gibt es nicht viele Varianten in dieser Linie geringe Varianz für die Verzerrung. Wissen Sie, der Fehler von jedem einzelnen Punkt. Es ist eigentlich hoch. Okay, jetzt kontrastieren Sie das zu diesen über angepassten Daten hier, wo wir irgendwie aus dem Weg gegangen sind, um
diese Beobachtungen anzupassen . Diese Linie hat eine hohe Varianz, aber eine geringe Verzerrung, da jeder einzelne Punkt ziemlich nahe an
dem Ort liegt, an dem er sein sollte. Dies ist ein Beispiel dafür, wo wir es abtauschen, Varianz für Bias. Nun, am Ende des Tages, sind
Sie nicht darauf, nur die Vorspannung zu reduzieren oder einfach nur Varianten zu reduzieren. Du willst Fehler reduzieren, oder? Das ist es, was wirklich wichtig ist. Und es stellt sich heraus, dass Sie Fehler als Funktion von Bias und Varianz ausdrücken können, so dass Fehler gleich ist, um ein Quadrat plus Varianten zu kaufen. Also diese 10 Dinge tragen beide zum Gesamtfehler bei, wobei Bias tatsächlich
mehr beitragen , aber bedenken Sie, es ist Bereich, den Sie wirklich minimieren möchten, nicht die Bias oder die Variante spezifisch und übermäßig komplex. Das Modell wird wahrscheinlich eine hohe Varianz und niedrige Bias haben, während ein zwei einfaches Modell eine geringe Varianz und eine hohe, aber Vorspannung aufweisen wird. Aber beide könnten am Ende des Tages ähnliche Fehlerbedingungen haben. Sie müssen also nur das richtige glückliche Medium dieser beiden Dinge finden, wenn Sie versuchen Ihre Daten
anzupassen, und wir werden über einige weitere grundsätzliche Möglichkeiten sprechen, um tatsächlich
zu vermeiden , dass wir in unseren kommenden Vorträgen passen. Aber es ist nur das Konzept von Bias und Varianz, das ich überlegen möchte, weil Leute darüber
reden. Sie werden erwartet, dass Sie wissen, was es bedeutet, wenn wir das an ein paar frühere Konzepte binden . In diesem Kurs. beispielsweise in K nächsten Nachbarn den Wert von K erhöhen, Wenn wirbeispielsweise
in K nächsten Nachbarn den Wert von K erhöhen,beginnen
wir, unsere Nachbarschaft auszubreiten, die den Mittelwert übermittelten, um eine größere Fläche zu alarmieren . Das hat also den Effekt von abnehmenden Varianten, weil wir Dinge
über einen größeren Raum glätten , aber unsere Verzerrung erhöhen könnten, weil wir eine größere Population aufnehmen werden
, die den Punkt weniger relevant ist wir haben angefangen von. Indem wir Dose und über eine größere Anzahl von Nachbarn glätten, können
wir die Varianz verringern, da wir Dinge über mehr Werte glätten. Aber wir könnten Voreingenommenheit einführen, weil wir immer mehr Punkte einführen, die
weniger sind, es sei denn, dass wir mit Entscheidungsbäumen und anderen Beispielen begonnen haben. Wir wissen also, dass eine einzige Entscheidung proto über Anpassung bäumt, so dass dies bedeuten könnte, dass es eine hohe Varianz hat. Aber zufällige Wälder versuchen, einen Teil dieser Varianz gegen die Verzerrung der Bias auszuhandeln. Und es tut das, indem es mehrere Bäume hat, die zufällig Variante sind und durchschnittlich alle dort Lösungen zusammen. So wie, wenn wir die Dinge durchmachen. Indem wir K und K und N erhöhen, können
wir die Ergebnisse eines Entscheidungsbaums auswerten, indem wir mehr als einen Entscheidungsbaum verwenden, der zufällige Wälder verwendet. Ähnliche Idee. Das ist also die Grundidee der Biasvarianz im Kompromiss der Biasvarianz. Ich hoffe, es ergibt wenig Sinn. Lasst uns weitermachen. Das ist also voreingenommen. Verschiedene Abhandlungen, Wissen
Sie, wieder, es gibt manchmal die Entscheidung, die Sie treffen müssen zwischen wie insgesamt genau Ihre Werte sind und wie verteilt oder wie eng gruppiert sie sind. Das ist also der Biasvarianzhandel und beide tragen zum Gesamtfehler bei, was Ihnen wirklich wichtig ist, zu minimieren, also bedenken Sie diese Begriffe im Hinterkopf.
59. K-Fold Cross Validierung: Früher im Kurs sprachen wir über Zugtests
als eine gute Möglichkeit, Überanpassung zu verhindern und tatsächlich vorherzusagen, um zu
messen, wie gut Ihr Modell auf Daten funktionieren kann. Es wurde noch nie zuvor gesehen. Wir können das auf die nächste Ebene bringen mit einer Technik namens k-fold Cross-Validierung. Und wir werden darüber sprechen, dass als nächstes ein wichtiges Werkzeug in
Ihrer Werkzeugkiste ist , um Überanpassungen zu bekämpfen. Lassen Sie uns also über ein weiteres mächtiges Werkzeug in Ihrem Arsenal sprechen um Überanpassungen zu bekämpfen, K-fach Kreuzvalidierung. Und Sie erinnern sich vielleicht, dass wir
früher in diesem Kurs über Zugtests gesprochen haben , über eine gute Möglichkeit, auch um die Anpassung zu kämpfen. K-Falt-Kreuzvalidierung macht den Zugtest noch besser. Also lasst uns lernen, wie das funktioniert. Wenn Sie sich also vom Zugtest erinnern, bestand
die Idee darin, dass wir alle unsere Daten, aus denen wir
ein maschinelles Lernmodell erstellen, in zwei Segmente aufteilen ein maschinelles Lernmodell erstellen, in zwei Segmente aufteilen einen Trainings-Dataset und einen Testdatensatz. Die Idee ist, dass wir unser Modell nur mit den Daten in unserem Trainingsdatensatz trainieren. Und dann bewerten wir seine Leistung anhand der Daten, die wir für ein Test-Dataset
reserviert haben, das
uns daran hindert , zu übermäßig an die Daten anzupassen, die wir haben,
weil wir das Modell anhand von Daten testen, die es noch nie gesehen hat. Allerdings hat ausgebildete noch seine Grenzen. Du könntest immer noch über die Anpassung an deinen spezifischen Zugtest Split enden. Vielleicht ist Ihr Trainings-Dataset nicht wirklich repräsentativ für das gesamte Dataset und zu viele Dinge landeten in Ihrem Trainings-Dataset, die Dinge verzerren. Das ist also, wo k-fold Cross-Validierung ins Spiel kommt. Es dauert Zugtest und schaltet es eine Kerbe hoch. Also die Idee, obwohl es kompliziert klingt, ist es ziemlich einfach. Anstatt unsere Daten in zwei Eimer zu teilen, einen für Training und einen für Tests. Wir teilen es in k Eimer. Für jeden Bucket verwenden wir diesen Bucket als Test-Dataset und wir verwenden die verbleibenden Daten als Trainingsdaten. Wir messen dann den resultierenden r quadrierten Fehlerwert, indem wir diesen Bucket als Testdaten verwenden. Dann gehen wir zum nächsten unserer K-Buckets über und verwenden sie als Testdaten und die restlichen k minus 1 Eimer als Trainingsdaten und messen den Fehler erneut. Wir tun dies weiter, bis wir versucht haben, alle k Buckets als Testset zu verwenden. Und wir messen nur alle R-Quadrat-Werte, die wir am Ende um ein robusteres Maß für die Genauigkeit unseres Modells zu erhalten. Und das ist alles, was es ist. K-Falt-Kreuzvalidierung ist eine robustere Methode, Zugtests durchzuführen, und das ist eine Möglichkeit, dies zu tun. Es gibt andere Variationen dazu. Beispielsweise könnten Sie einen Bucket als Testdaten reservieren und dann gegen die verbleibenden einzelnen Buckets trainieren und diese Punktewerte zusammen berechnen. Aber die Technik, die in dieser Folie beschrieben wird, ist, wie scikit-learn es macht, und das ist, was wir als nächstes spielen werden. Zum Glück macht scikit-learn dies sehr einfach und es ist sogar einfacher als normale Zugtests. Es ist extrem einfach, k-fold Cross-Validierung durchzuführen, so dass Sie es genauso gut tun können. Nun, wie dies alles in Praktiken funktioniert, haben
Sie ein Modell, das Sie optimieren möchten, und Sie haben verschiedene Variationen dieses Modells oder verschiedene Parameter, die Sie möglicherweise daran anpassen möchten. Zum Beispiel der Polynomgrad für eine Polynomanpassung. Die Idee besteht also darin, verschiedene Werte Ihres Modells auszuprobieren. Verschiedene Variationen, messen Sie sie alle mit K-Falt-Kreuzvalidierung und finden Sie diejenige, die Fehler gegen Ihr Test-Dataset minimiert. Und das ist irgendwie dein Sweet Spot dort. In der Praxis möchten Sie die
K-Falt-Kreuzvalidierung verwenden , um die Genauigkeit Ihres Modells mit einem Test-Dataset zu messen. Und verfeinern Sie das Modell einfach weiter. Versuchen Sie weiter verschiedene Werte darin, versuchen
Sie weiter verschiedene Variationen dieses Modells oder vielleicht sogar verschiedene Modelle vollständig, bis Sie die Technik
finden, die den Fehler der am meisten verwendeten K-Falt-Kreuzvalidierung reduziert. Lassen Sie uns in ein Beispiel eintauchen und sehen, wie es funktioniert. Wir werden dies erneut auf unser Iris-Dataset anwenden, indem wir SVC erneut aufrufen. Und wir werden mit k-fold Cross-Validierung spielen und sehen, wie einfach es ist. Lassen Sie uns hier tatsächlich k-fold Cross-Validierung und Train-Test in die Praxis umsetzen, mit einem echten Python Code, werden
Sie sehen, dass es tatsächlich sehr einfach zu bedienen ist, was eine gute Sache ist, weil dies eine Technik ist,
die Sie verwenden, um die Genauigkeit, die Effektivität Ihrer Modelle und überwachtes Lernen zu messen. Also gehen Sie voran und öffnen Sie die k-fold Kreuzvalidierung kein Buch und folgen Sie, wenn Sie wollen. Und wir werden uns das Iris-Dataset nochmal ansehen. Denken Sie daran, dass wir dies eingeführt haben, als wir über die Reduzierung der Dimensionalität sprachen. Und nur um Ihren Speicher zu aktualisieren, enthält
das Iris-Dataset eine Reihe von 150 Iris-Blumenmessungen. Jede Blume hat eine Länge und Breite ihres Pedals und eine Länge und Breite ihres Kelchblattes. Und dann wissen wir auch, zu welcher von drei verschiedenen Arten von Iris jede Blume gehört. Die Herausforderung hier besteht also darin, ein Modell zu erstellen, das die Art der Iris Blume nur angesichts
der Länge und Breite seines Blütenblattes und Kelchblatt erfolgreich vorhersagen kann . Ok. Also lasst uns weitermachen und das tun. Wir werden das SVC-Modell verwenden. Wenn Sie sich wieder erinnern, ist
das nur eine Möglichkeit, Daten zu klassifizieren Das ist ziemlich robust. Es gibt einen Vortrag darüber, wenn du deine Erinnerung auffrischen musst. Was wir also tun werden, ist die Cross-Validierungs-Bibliothek von scikit-learn zu verwenden. Und wir werden damit beginnen, nur eine konventionelle Zugversuchspaltung zu machen. Nur ein einziger Zug Test Split und sehen, wie das funktionieren wird. Um dies zu tun, haben wir eine Zug-Test-Split-Funktion, die es ziemlich einfach macht. Die Art und Weise, wie dies funktioniert, ist, dass wir Feed, Training ,
Test, Split, eine Reihe von Feature-Daten. Iris-Punktdaten enthalten nur alle tatsächlichen Maße jeder Blume. Und Iris Dot Target, was im Grunde das ist, was wir vorhersagen wollen. In diesem Fall enthält es alle Arten für jede Blume. Und unsere Testgröße hier steht, welchen Prozentsatz wollen wir gegen Tests trainieren. 0,4 bedeutet also, dass wir 40% dieser Daten zufällig
für Testzwecke extrahieren und Sie 60% für Schulungszwecke. Und was uns das gibt, ist für Datensätze, im Grunde ein Training zu
einem Trainings-Dataset und ein Test-Dataset für die Feature-Daten und die Zieldaten. So enthält x Zug 60% unserer Blendenmessungen und X Test enthält 40% der Messungen, die für die Prüfung der Ergebnisse unseres Modells verwendet werden. Und y Zug und y Test enthalten die tatsächlichen Arten für jedes dieser Segmente. Also werden wir weitermachen und ein SVC-Modell für die
Vorhersage von Iris-Arten aufgrund ihrer Messungen hier erstellen . Und Sie werden sehen, dass wir das nur mit den Trainingsdaten erstellen. Daher werden wir dieses SVC-Modell mit einem linearen Kernel anpassen der nur die Trainingsdaten und die Zieldaten der Trainingsarten
verwendet. Und wir werden das Modell CLF nennen. Jetzt können wir die Score-Funktion auf
CLF aufrufen , um nur die Leistung mit unserem Testdatensatz zu messen. Also werden wir dieses Modell mit den Testdaten bewerten, die wir für die Iris-Messungen und die Test-Iris-Arten
reserviert haben und sehen, wie gut es funktioniert. Und es stellt sich heraus, dass es wirklich gut geht. Über 96% der Zeit ist unser Modell in der Lage, die Art einer Iris, die es noch nie gesehen hatte, korrekt vorherzusagen, nur basierend auf den Messungen der Iris. Das ist also ziemlich cool. Aber das ist ein ziemlich kleiner Datensatz, ein 150 Blumen, wenn ich mich richtig erinnere, Also verwenden wir nur 60% einer 150 Blumen für Training und nur 40% einer 150 Blumen zum Testen. Das sind immer noch ziemlich kleine Zahlen, also. Wir könnten immer noch zu unserem speziellen Zugtest Split, den wir gemacht haben, überpassen. Lassen Sie uns also k-fold Cross-Validierung verwenden, um davor zu schützen. Und es stellt sich heraus, dass die Verwendung von k-fold Cross-Validierung, obwohl es eine robustere Technik
ist, tatsächlich noch einfacher zu bedienen ist als Zugtest. Das ist also ziemlich cool. Mal sehen, wie das funktioniert. Wir haben also bereits ein Modell, das SVC-Modell, das wir für diese Vorhersage definiert haben. Und alles, was Sie tun müssen, ist Cross Val Score auf dem Cross-Validierungspaket aufzurufen. Sie übergeben es also in einem Modell eines bestimmten Typs und dem gesamten Dataset, das Sie haben. Das sind also alle meine Feature-Daten und alle meine Zieldaten, alle Messungen, alle Arten. Und wir werden sagen, ich will eine Kreuzvalidierung Falten von fünf. Und das bedeutet, dass es tatsächlich fünf verschiedene Trainingsdatensätze verwenden wird, okay? Während man einen zum Testen reserviert. Im Grunde wird es fünf Mal laufen. Und das ist alles, was wir tun müssen, das unser Modell automatisch mit dem gesamten Datensatz
auswertet, fünf verschiedene Wege
aufteilt und uns die einzelnen Ergebnisse zurückgibt. Wenn wir also die Ausgabe davon zurückdrucken, gibt
es uns eine Liste der tatsächlichen Fehlermetrik aus jeder dieser Iterationen, jede dieser Falten. Und wir können diese zusammen bewerten, um eine allgemeine Fehlermetrik basierend auf K-fach Kreuzvalidierung zu erhalten. Und wenn wir das über fünf Falten machen, können
wir sehen, dass unsere Ergebnisse sogar besser sind, als wir dachten, 98 Prozent Genauigkeit. Das ist also ziemlich cool. In der Tat hatten wir in ein paar Läufen perfekte Genauigkeit. So ziemlich erstaunliches Zeug. Mal sehen, ob wir es noch besser machen können. Wir verwenden hier einen linearen Kernel. Was ist, wenn wir einen Polynom-Kernel verwenden? Und Gott, noch schicker, wird das überpassen oder passt es besser zu den Daten, die wir haben? Irgendwie hängt es davon ab, ob es tatsächlich eine lineare Beziehung oder eine polynome Beziehung zwischen diesen Blütenblättern und der tatsächlichen Spezies gibt oder nicht. Also lasst uns das ausprobieren. Wir werden das alles wieder mit der gleichen Technik ausführen, aber dieses Mal werden wir einen Polynom-Kernel verwenden und das Gleiche tun, wird das zu unserem Trainingsdatensatz passen. Und spielt es wirklich eine Rolle? Wir passen es Ihnen in diesem Fall an, denn Cross Val Score wird es einfach für Sie erneut ausführen. Und es stellt sich heraus, dass Filme ein Polynom passen, wir am Ende mit einer Gesamtnote, die noch niedriger ist als unsere ursprünglichen Läufe. Das sagt uns also, dass der Polynomkern wahrscheinlich überpasst. Wenn wir k-fold Cross-Validierung verwenden, zeigt
sich die Revolte bei einer tatsächlich niedrigeren Punktzahl als bei unserem linearen Kernel. Und der wichtige Punkt hier ist, dass, wenn wir nur einen einzigen Zugtest Split verwenden, wir haben erkannt, dass wir tatsächlich das gleiche Ergebnis erhalten hätten,
wenn wir hier nur einen einzigen Zugtest gemacht haben , wie wir es auf dem linearen Kernel getan haben. Daher könnten wir unsere Daten dort unbeabsichtigt überpassen und nicht
einmal gewusst haben , wenn wir keine k-fold Cross-Validierung verwenden. Also gutes Beispiel hier, wo k-fold zur Rettung kommt und warnt, dass Sie überpassen haben, wo ein einzelner Mieter Zugtest Split das vielleicht nicht gefangen hat. Also behalte das in deiner Werkzeugkiste. Du willst mit diesem etwas mehr herumspielen. Gehen Sie voran und versuchen Sie verschiedene Abschlüsse. Also haben wir es versucht. Sie können tatsächlich eine andere Gradzahl angeben. Der Standardwert beträgt drei Grad für den Polynomkern. Aber Sie können anders versuchen, können Sie versuchen,. Geht das besser? Wenn Sie zu einer gehen, die sich im Grunde zu einem linearen Kernel abbaut, richtig? Vielleicht gibt es noch eine Polynombeziehung und vielleicht ist es nur ein Polynom zweiten Grades. Also finden Sie es heraus, probieren Sie es aus und sehen Sie, was Sie zurückbekommen. Also geh und spiel damit herum. Das ist k-fach Kreuzvalidierung. Das ist k-fach Kreuzvalidierung. Wie Sie sehen können, ist es dank scikit-learn sehr einfach zu bedienen. Also benutze es. Es ist ein wichtiger Weg, um zu messen, wie gut Ihr Modell auf eine sehr robuste Art und Weise ist.
60. Datenreinigung und Normalisierung: Nun, dies ist eine der einfachsten, aber dennoch könnte es die wichtigste Vorlesung in diesem ganzen Kurs sein. Wir werden darüber sprechen, Ihre Eingabedaten zu bereinigen, was Sie viel Zeit damit verbringen werden, und wie gut Sie Ihre Eingabedaten bereinigen und verstehen, dass Ihre rohen Eingabedaten einen großen Einfluss auf die Qualität Ihrer
Ergebnisse haben werden. vielleicht sogar noch mehr als welches Modell Sie wählen oder wie gut Sie Ihre Modelle abstimmen. Also achte auf. Das ist ein wichtiges Zeug. Lassen Sie uns also über eine unbequeme Wahrheit der Datenwissenschaft sprechen. Und das ist es,
was Sie die meiste Zeit damit verbringen , Ihre Daten zu säubern und vorzubereiten und tatsächlich relativ wenig davon zu analysieren und neue Algorithmen
auszuprobieren. Es ist also nicht ganz so glamourös, wie die Leute es schaffen, die ganze Zeit zu sein. Aber das ist eine äußerst wichtige Sache, auf die Sie achten müssen, also gibt es viele verschiedene Dinge, die Sie in Rohdatendaten finden könnten, die in
Sie kommen, nur Rohdaten werden sehr schmutzig sein. Es wird im Mai auf unterschiedliche Weise verschmutzt werden. Und wenn Sie sich nicht damit befassen. Es wird Ihre Ergebnisse verzerren, und es wird letztendlich in Ihrem Unternehmen die falschen Entscheidungen treffen. Und wenn Sie wissen, was zurückkommt, dass Sie einen Fehler gemacht haben, bei dem Sie eine Reihe von schlechten
Daten aufgenommen und nicht berücksichtigt haben, haben Sie diese Daten nicht bereinigt. Und was Sie Ihrem Unternehmen gesagt haben, war, etwas zu tun, basierend auf diesen Ergebnissen, die sich später als völlig falsch
herausstellen . Du wirst eine Menge Ärger haben, also achte auf. Es gibt viele verschiedene Arten von Problemen Indien, auf die Sie achten müssen. Einer ist aus Lügnern. Vielleicht haben Sie also Leute, die sich merkwürdig in Ihren Daten verhalten. Und wenn Sie sich mit ihnen ,
stellen
sie sich heraus , dass Daten sind, die Sie überhaupt nicht ansehen sollten. Ein gutes Beispiel wäre, wenn Sie sich Webprotokolldaten ansehen und eine Sitzung sehen , die immer und
immer wieder zurückkommt, etwas mit einer lächerlichen Geschwindigkeit tut, die ein Mensch nie tun könnte. Aber Sie sehen wahrscheinlich, dass es einen Roboter gibt, wissen
Sie, ein Skript, das irgendwo ausgeführt wird, um Ihre Website tatsächlich zu kratzen, oder es könnte sogar eine Art böswilliger Angriff sein. Aber jedenfalls möchten
Sie nicht, dass diese Verhaltensdaten Ihre Modelle informieren, die das
Verhalten von echten Menschen voraussagen sollen , die Ihre Website verwenden. Suche nach Ausreißern ist also eine Möglichkeit, Datentypen zu identifizieren, die Sie möglicherweise entfernen
möchten ,
wenn Ihr Modell, wenn Sie fehlende Daten erstellen, was tun Sie, wenn das Datum einfach nicht da ist? Zurück zum Beispiel eines Weblogs? Möglicherweise haben Sie einen Verweis in dieser Zeile oder nicht. Was machst du, wenn es nicht da ist? Erstellen Sie eine neue A neue Klassifizierungen für fehlende oder nicht angegeben? Oder wirfst du diese Linie komplett raus? Sie müssen darüber nachdenken, was das Richtige zu tun ist. Gibt es bösartige Daten, über die wir gesprochen haben? Es könnte Leute geben, die versuchen, Ihr System zu spielen. Es könnte Leute geben, die versuchen, das System zu betrügen, und du willst nicht, dass diese Leute damit davonkommen. Nehmen wir an, Sie machen ein Empfehlungssystem. Es könnte Leute da draußen geben, die versuchen, Verhaltensdaten in oder einfach nur um
ihre neuen Artikel zu bewerben . Richtig? Also müssen Sie auf der Suche nach einer solchen Sache sein und sicherstellen, dass Sie diese Beschussangriffe oder andere Arten von Angriffen auf Ihre Eingabedaten
identifizieren und sie aus den Ergebnissen
herausfiltern. Und lassen Sie sie nicht zu, fehlerhafte Daten zu gewinnen. Was ist, wenn es eine Software gibt? Aber irgendwo in einem System schreibt
das nur die falschen Werte in einigen Situationen aus. Es kann passieren, leider, ist kein guter Weg für Sie, darüber zu wissen, Aber wenn Sie Daten sehen, die nur fischig aussehen oder die Ergebnisse für Sie keinen Sinn ergeben, kann das
Graben tief genug manchmal einen zugrunde liegenden Fehler, der dazu führt, dass die falschen
Daten überhaupt geschrieben werden. Vielleicht werden die Dinge irgendwann nicht richtig kombiniert. Vielleicht werden Sitzungen nicht während der gesamten Sitzung abgehalten. Die Leute könnten ihre Sitzung i D fallen lassen und neue Session-Ideen erhalten, wie sie durch
eine Website gehen , zum Beispiel irrelevante Daten. Weißt du, sehr einfach. Einer hier könnte Ihr einziges Interesse an Daten von New York City Menschen oder so sein. Aus irgendeinem Grund. In diesem Fall sind alle Daten von Menschen aus dem Rest der Welt irrelevant. Was Sie herausfinden möchten, und das erste, was Sie wollten, war, dass Sie all diese Daten
Weg werfen und Ihre Daten einschränken. Whittle es auf die Daten, die Sie wirklich interessieren. Inkonsistente Daten. Das ist ein riesiges Problem. Okay. Zum Beispiel in Adressen können
Menschen
in Adressendie gleiche Adresse auf viele verschiedene Arten schreiben. Sie können Straße abkürzen oder Street nicht abkürzen. Sie könnten die Straße gar nicht am Ende des Straßennamens setzen. Sie können Linien auf unterschiedliche Weise miteinander kombinieren. Sie könnten Dinge anders buchstabieren. Sie könnten eine Postleitzahl in den USA verwenden oder eine Postleitzahl plus vier Code in den USA Sie haben vielleicht ein Land drauf. Vielleicht haben sie kein Land drauf. Sie müssen irgendwie herausfinden, was sind die Variationen, die Sie sehen, und wie kann ich sie alle zusammen normalisieren? Vielleicht schaue ich mir Daten über Filme an und ein Film könnte unterschiedliche Namen in verschiedenen Ländern haben oder ein Buch könnte unterschiedliche Namen in verschiedenen Ländern haben, aber sie bedeuten dasselbe. Sie müssen also feststellen, dass Sie auf diese Dinge achten müssen, bei denen Sie Ihre
Daten normalisieren müssen , wo die gleichen Daten auf viele verschiedene Arten dargestellt werden können, und Sie müssen sie miteinander kombinieren, um die richtigen Ergebnisse zu erhalten. Okay, Formatierung, die auch ein Problem sein kann. Dinge könnten inkonsistent formatiert werden. Nehmen wir das Beispiel von Daten in den USA tun wir immer Monat, Tag Jahr. Aber in anderen Ländern könnten sie Tag, Monat, Jahr, wer weiß? Aber Sie müssen sich bewusst sein, dass diese Formatierungsunterschiede Telefonnummern sein können. Haben Sie Klammern um die Vorwahl. Vielleicht tun sie es nicht. Vielleicht haben sie Bindestriche zwischen jedem Abschnitt der Zahlen. Vielleicht tun sie es nicht. Vielleicht haben Sozialversicherungsnummern Bindestriche. Vielleicht tun sie es nicht. Das sind alles Dinge, auf die du achten musst. Und Sie müssen sicherstellen, dass Variationen in der Formatierung während der Verarbeitung nicht als verschiedene
Entitäten oder verschiedene Klassifizierungen behandelt werden. So viele Dinge, auf die man achten muss. Und das ist nur ah, das sind nur die wichtigsten, die man sich bewusst sein muss. Okay, erinnere dich an Müll im Müll. Ihr Modell ist nur so gut wie der Tag, den Sie ihm geben, und das ist extrem, extrem wahr. Sie wissen, dass Sie ein sehr einfaches Modell haben könnten, das sehr gut funktioniert, wenn Sie ihm eine große
Menge an sauberen Daten geben und tatsächlich ein komplexes Modell für einen schmutzigeren
Datensatz übertreffen könnte . Also, wissen
Sie,
sicherzustellen, dass Sie genügend Daten und qualitativ hochwertige Daten haben, ist oft der größte Teil des Kampfes. Sie wären überrascht, wie einfach einige der erfolgreichsten Algorithmen, die in der realen Welt verwendet sind. Und es ist nur durch die Qualität der Daten, die in sie gehen und die
Menge der Daten, die in sie gehen, erfolgreich . Du
brauchst nicht immer ausgefallene Techniken, um gute Ergebnisse zu erzielen. Häufig zählt
die Qualität und Quantität Ihrer Daten genauso viel wie alles andere. Und hinterfragen Sie immer Ihre Ergebnisse. Weißt du, du willst nicht wieder hineingehen, nach Anomalien und deinen Eingabedaten suchen. Gerade wenn Sie ein Ergebnis erhalten, das Ihnen nicht gefällt, wissen
Sie, dass dies eine unbeabsichtigte Voreingenommenheit in Ihre Ergebnisse einführt, wo Ihre führenden Ergebnisse, die Sie mögen oder erwarten, unbestritten
durchlaufen, ? Sie möchten die Dinge die ganze Zeit in Frage stellen, um sicherzustellen, dass Sie immer auf
diese Dinge achten , denn selbst wenn Sie ein Ergebnis finden, das Sie mögen. Wenn es sich als falsch herausstellt, ist
es immer noch falsch. Es wird immer noch Ihre Firma in die falsche Richtung informieren, und das könnte später zurückkommen, um Sie zu beißen. Als Beispiel
habe ich eine Website namens No Hate News. Es ist kein Gewinn, also versuche ich nicht, Geld zu verdienen, indem ich dir davon erzähle. Aber sagen wir, ich möchte nur die beliebtesten Seiten auf dieser Website finden, die ich besitze. Das klingt nach einem ziemlich einfachen Problem, nicht wahr? Ich sollte nur in der Lage sein, durch meine Webprotokolle zu gehen und zu zählen, wie viele Treffer jede Seite hat und sie richtig zu sortieren. Wie schwer kann es sein? Nun, stellte sich heraus, es ist wirklich schwer. Lassen Sie uns also in dieses Beispiel eintauchen und sehen, warum und sehen Sie einige Beispiele der realen
Datenbereinigung , die passieren muss. Mal sehen, wie wichtig Datenbereinigung sein kann. Wir haben eine sehr einfache Aufgabe vor uns. Finden Sie die Top-Seiten auf einer sehr kleinen Website. Wie schwer kann es sein? Nun, wir tauchen als nächstes ein und sehen, wie schwer es ist
61. Cleaning löschen: Wir werden also zeigen, wie wichtig es ist, Ihre Daten zu bereinigen. Haben Sie einige Webprotokolldaten von einer kleinen Website, die ich besitze, und wir werden nur versuchen, die am häufigsten angesehenen Seiten auf dieser Website zu finden. Klingt ziemlich einfach, aber wie Sie sehen werden, ist
es eigentlich ziemlich anspruchsvoll. Lassen Sie uns also ein einfaches Beispiel durchlaufen. Eigentlich ist
es nicht so einfach, wo ich nur herausfinden will, die am besten angesehenen Webseiten auf meiner Website. Klingt ziemlich einfach, nicht wahr? Nun, mal sehen. Also, wenn Sie entlang der obersten Seiten folgen möchten, ist Python Notizbuch derjenige, den wir von hier aus
arbeiten. Und lassen Sie uns anfangen, so haben tatsächlich ein Zugangsprotokoll, das ich von meiner tatsächlichen Website genommen habe. Es ist ein riel http-Zugriffsprotokoll von Apache, und das ist in Ihren Kursmaterialien. Also ging ich und bekam dieses kleine Code-Snippet aus dem Internet, das eine
Apache-Zugangslogline in eine Reihe von Feldern analysiert . Es enthält also Dinge wie den Host und den Benutzer und die Zeit und die eigentliche Seitenanfragen und Status,
und sie beziehen sich auf, und den User-Agent, was
bedeutet, welcher Browser tatsächlich verwendet wurde, um diese Seite anzuzeigen. Also dieser Aufbau wurde ein regulärer Ausdruck genannt, und wir verwenden die Ari Bibliothek, um es zu verwenden. Und das ist im Grunde eine sehr leistungsfähige Sprache, um Musterabgleich auf einer großen Zeichenfolge durchzuführen. Durch die Verwendung dieses regulären Ausdrucks können
wir das tatsächlich auf jede Zeile unseres Zugriffsprotokolls anwenden und automatisch dieDatenbits
,
die Informationsbits in dieser Zugriffslogzeile in diese verschiedenen Felder gruppieren Datenbits
, . Okay, wenn Sie
also hier mitspielen möchten,
stellen Sie sicher, dass Sie den Pfad aktualisieren, um das Zugriffsprotokoll dorthin zu verschieben, wo Sie die
Kursmaterialien für diesen Kurs gespeichert haben , und lassen Sie uns diesen Vorgang ausführen. In Ordnung, also haben wir einen Pfad zu unserer Datendatei. Also die offensichtliche Sache hier zu tun, lasst uns einfach ein kleines Skript aufschlagen, das jedes zählt. Sie sind l, dass wir begegnen, die angefordert wurde und hält Zählung, wie oft es
angefordert wurde . Dann können wir die Liste sortieren und unsere Top-Seiten richtig bekommen? Klingt einfach genug. Also werden wir hier ein kleines Python-Wörterbuch erstellen, das Ihre Konten genannt wird, und wir werden unsere Protokolldatei öffnen und für jede Zeile werden
wir unseren regulären Ausdruck anwenden. Und wenn es tatsächlich mit einer erfolgreichen Übereinstimmung für das Muster zurückkommt, das wir
vergleichen wollen ,
wird sagen, OK, OK, das sieht aus wie eine anständige Zeile in unserem Zugangsprotokoll. Lassen Sie uns das Anforderungsfeld daraus extrahieren, das die eigentliche HTTP-Anfrage ist. Welche Seite tatsächlich vom Browser angefordert wird, teilt das in seine drei
Komponenten auf . Ein Wettbewerb besteht aus, ah, Aktion wie bekommen unsere Post, das tatsächliche Jahr L angefordert und das Protokoll verwendet wird. Also, da die Informationen ausgeteilt werden, können
wir dann nur sehen, ob das Sie sind l bereits in meinem Wörterbuch existiert. Wenn ja, werde
ich die Zählung erhöhen, wie oft Europa von einem begegnet ist. Andernfalls werde
ich einen neuen Wörterbucheintrag einführen. Dafür initialisiert
Ihre Ellen es auf den Wert von eins. Ich mache das für jede Zeile im Protokoll, sortiere die Ergebnisse umgekehrt, sortiere numerisch und drucke sie aus. Also lasst uns weitermachen und das laufen. Hoppla. Wir enden mit diesem großen alten Fehler hier, und es sagt uns, dass wir mehr als einen Wert brauchen, um Auswirkungen zu haben. Anscheinend bekommen wir einige Anforderungsfelder, die keine Aktion pro Jahr auf einem
Protokoll enthalten . Es enthält etwas anderes. Mal sehen, was da los ist. Wenn wir also alle Anfragen ausdrucken, die keine drei Elemente enthalten, können
wir sehen, was hier tatsächlich angezeigt wird. Also werden wir tun, hier ist ein ähnliches kleines Code-Snippet, aber wir werden das tatsächlich tun. Teilen Sie das Anforderungsfeld auf und drucken Sie Fälle aus, in denen wir nicht die erwarteten drei Felder erhalten und sehen, was tatsächlich drin ist. Ich meine, also ein paar leere Felder, das ist unser erstes Problem. Aber dann haben wir das Gefühl folgen, nur Müll. Weißt du, wer weiß, woher das kommt. Es sind eindeutig fehlerhafte Daten, also okay, gut. Lassen Sie uns unser Skript ändern, wird tatsächlich nur alle Zeilen auswerfen, die nicht die erwarteten
drei Felder in der Anfrage haben . Und das scheint eine legitime Sache zu sein, weil dies tatsächlich völlig nutzlose Daten darin enthält. Es ist nicht so, als würden wir hier etwas verpassen, indem wir dieses so gut Modifikator-Skript tun. Um dies zu tun, haben
wir dies eingeführt, wenn Leihfelder gleich drei Löwen sind, bevor es tatsächlich versucht,
es zu verarbeiten , und wir werden das ausführen Hey, wir haben ein Ergebnis, aber das sieht nicht wirklich aus wie die Spitze Seiten auf meiner Website. Denken Sie daran, dies ist eine Nachrichtenseite. Also bekommen wir viel von PHP-Datei-Hits. Das sind, weißt
du, PERL-Skripte. Was ist los? Es gibt Top-Ergebnis Ist dieses xml rpc dot PHP-Skript und dann WP loggen Sie sich in dot PHP, gefolgt von der Homepage. Also nicht sehr nützlich Roboter Punkttext bei Bündel von XML-Dateien. Weißt du, als ich das später betrachtete, stellte
sich heraus, dass mein Leichte tatsächlich unter einem böswilligen Angriff stand. Jemand versuchte, darin einzubrechen, und dieses XML-RPC-Skript war die Art, wie sie versuchten, meine Passwörter zu erraten, und sie versuchten, sich mit dem Anmeldeskript anzumelden, und zum Glück habe ich sie vorher heruntergefahren sie könnten tatsächlich zu dieser Website durchkommen. Aber dies war ein Beispiel dafür, dass bösartige Daten in meinen Datenstrom eingeführt wurden, die ich herausfiltern
muss . Also, wissen
Sie, indem Sie sich das schwächen
ansehen, sehen Sie, dass nicht nur dieser bösartige Angriff war, wissen
Sie, Blick auf PHP-Dateien, sondern es hat auch versucht, Dinge auszuführen. Also war es nicht nur eine Get-Anfrage zu machen. Er machte eine Post-Anfrage für das Skript. Versuchen Sie tatsächlich, Code auf meiner Website auszuführen. Jetzt weiß ich, dass die Daten, die ich für Sie interessieren, wissen, im Geiste der Sache, die ich herausfinden will, Leute, die Webseiten von meiner Website bekommen. Also eine legitime Sache für mich zu tun ist, alles herauszufiltern, was keine Get-Anfrage
aus diesem Verlust ist. Lass uns das Nest machen. Also werden wir noch einmal überprüfen, ob wir drei Felder in unserem Anforderungsfeld haben, und dann werden wir auch überprüfen, ob die Aktion erhalten ist. Und wenn nicht, werden
wir diese Linie einfach ganz ignorieren. Also sollten wir näher an das kommen, was wir wollen. Und
ja, ja, das sieht jetzt vernünftiger aus,
aber es besteht immer noch nicht wirklich einen sandigen Scheck. Dies ist eine Nachrichten-Website. Die Leute gehen zu ihm, um Nachrichten zu lesen, und lesen sie wirklich meinen kleinen Blogger drauf? Das hat nur ein paar Artikel? Das glaube ich nicht. Das scheint ein bisschen fischig zu sein, also lasst uns ein wenig eintauchen und sehen, wer diese Blawg-Seiten tatsächlich ansieht. Wenn Sie tatsächlich in diese Datei gehen und sie von Hand untersuchen würden, würden
Sie sehen, dass viele dieser Blawg-Anfragen keinen User-Agent auf TEM haben . Sie haben nur einen Benutzer. Agent of Dash, was wegen eines echten Menschen mit einem echten Browser sehr ungewöhnlich ist,
versuchte, diese Seite zu bekommen. Es würde so etwas wie Mozilla oder Internet Explorer oder so etwas sagen, richtig? Oder Chrom? So scheint es, dass dies diese Anfragen Luft kommt von einer Art von einem Schaber wieder, potenziell bösartigen Verkehr, der nicht identifiziert, wer es ISS. Also OK, vielleicht sollten wir uns die Benutzeragenten ansehen, um zu sehen, ob es sich um echte Menschen handelt, die
Anfragen stellen oder nicht. Lassen Sie uns fortfahren und drucken Sie alle verschiedenen Benutzeragenten, die begegneten. Also im gleichen Geist des Codes, der tatsächlich die verschiedenen Sie zusammenfasst oder wir sehen. Wir können all die verschiedenen Benutzeragenten betrachten, die wir gesehen haben, und sie nach den
beliebtesten Benutzeragenten Zeichenfolgen in diesem Protokoll sortieren und Sie können sehen, dass das meiste davon legitim aussieht, also wissen Sie, dass es zumindest ist, wenn es sich um einen Scraper handelt, und in diesem war
es eigentlich kein böswilliger Angriff, aber sie taten tatsächlich vor, ein legitimer Browser zu sein. Aber dieser Dash-User-Agent erscheint viel zu, also weiß ich nicht, was das ist, aber ich weiß, dass es kein natürlicher Browser ist. Ein echter Browser, weißt
du, würde etwas mehr so aussehen. Die andere Sache, die ich sehe, ist ein Großteil des Traffics von Spinnen aus Webcrawler. So durch tun ist eine Suchmaschine in China. Google kaufte Sie bemerken, Crawling der Seite. , Weißt
du,
ich glaube, ich habe Yandex hier gesehen, um, du weißt schon, russische Suchmaschine zu finden. So werden unsere Daten von vielen Crawlern verschmutzt, die nur versuchen, unsere Website
für Suchmaschinen-Zwecke zu minen . Und wieder sollte dieser Verkehr nicht auf den beabsichtigten Zweck meiner
Analyse zählen , zu sehen, welche Seiten tatsächlich Menschen auf meiner Website betrachten. Dies sind alle automatisierten Skripte. Alles klar, also wird das ein bisschen knifflig. Wissen Sie, es gibt keine gute Möglichkeit, Spinnen oder Roboter nur basierend auf der Benutzerzeichenfolge
zu identifizieren , aber wir können wenigstens einen legitimen Riss darauf nehmen und alles herausfiltern, was das Wort Botnet oder irgendetwas von meinem Einlösungsstecker in das könnte Seiten im Voraus anfragen. Und wir werden auch unseren Freund einzelne Bindestrich ausziehen. So werden wir noch einmal unser Skript verfeinern,
zusätzlich zu allem anderen Strip out und ein User Agents, die fischig aussah und was wir bekommen. In Ordnung, also hier sind wir Oh ho, das fängt an, vernünftiger für die ersten 2 Einträge zu suchen. Die Startseite ist am beliebtesten, was erwartet werden würde. Orlando Headlines ist auch beliebt, weil ich diese Website mehr als jeder andere benutze, und ich lebe in Orlando. Aber dann haben wir ein paar Sachen, die überhaupt keine weißen Seiten sind. Bündel von Skripten von vielen CSS-Dateien. Das sind keine Webseiten. Also wieder, ich könnte nur einige Kenntnisse über meine Website anwenden, wo ich zufällig wissen, dass alle legitimen Seiten auf meiner Website Justin mit einem Schrägstrich in ihrem Euro. Gehen wir also weiter und modifizieren Sie dies erneut, um alles zu entfernen, was nicht mit einem Schrägstrich endet . Schließlich erhalten
wir einige Ergebnisse, die Sinn zu ergeben scheinen. sieht es so aus, als ob die obere Seite von tatsächlichen Menschen auf meiner kleinen No Hass
Nachrichtenseite angefordert ist die Startseite, gefolgt von Orlando Schlagzeilen gefolgt von World News, gefolgt von den Comics als das Wetter in der über Bildschirm. Das fängt also an, legitimer auszusehen. Wenn Sie
jedoch noch tiefer graben würden, sehen
Sie, dass es immer noch Probleme mit dieser Analyse gibt. Zum Beispiel, diese Feed-Seiten Luft immer noch von Robotern kommen nur versuchen X RSS-Daten von meiner Website zu bekommen . Dies ist also ein großes Gleichnis und wie eine scheinbar einfache Analyse eine große Menge an
Vorverarbeitung und Reinigung der Quelldaten erfordert , bevor Sie Ergebnisse erhalten, die irgendeinen Sinn machen. Und wieder, stellen Sie sicher, dass die Dinge, die Sie tun, um Ihre Daten auf dem Weg oder prinzipiell zu bereinigen, und Sie sind nicht nur Kirsche Kommissionierung Probleme, die nicht mit Ihren vorgefassten Vorstellungen übereinstimmen. Also hinterfragen Sie immer Ihre Ergebnisse. Schauen Sie sich immer Ihre Quelldaten an und suchen Sie nach seltsamen Dingen, die darin enthalten sind. In Ordnung. Wenn Sie dies etwas mehr
nachrichten möchten , können
Sie diesesFeedproblem lösen. , können
Sie dieses Gehen Sie voran und entfernen Sie Dinge, die Feed enthalten, weil wir wissen, dass das keine echte Webseite ist und nur um etwas Vertrautheit mit dem Code zu bekommen oder schauen Sie sich das Gesetz ein wenig genauer an, wissen
Sie, gewinnen Sie einige zu verstehen, woher diese Feed-Seiten tatsächlich kommen. Und vielleicht gibt es eine noch bessere und robustere Möglichkeit, diesen Datenverkehr als
größere Klasse zu identifizieren . Also fühlen Sie sich frei, um damit herum zu verwirren. Aber ich hoffe, du hast deine Lektion gelernt. Datenbereinigung enorm wichtig, und es wird viel Zeit in Anspruch nehmen. Es ist also ziemlich überraschend, wie schwer es war, einige vernünftige Ergebnisse auf der einfachen
Frage zu erhalten , wie Was sind die Top paar Seiten auf meiner Website? Und Sie können sich vorstellen, ob so viel Arbeit in die Reinigung der Daten für ein so einfaches
Problem gehen musste . Denken Sie an all die nuancierten Möglichkeiten, die schmutzige Daten tatsächlich die Ergebnisse
komplexerer Probleme und komplexer Algorithmen beeinflussen könnten . Sehr wichtig, um Ihre Quelldaten zu verstehen. Sieh es dir an. Schauen Sie sich eine repräsentative Probe davon an. Stellen Sie sicher, dass Sie verstehen, was in Ihr System kommt, und stellen Sie immer Ihre Ergebnisse in Frage und binden Sie sie an die ursprünglichen Quelldaten zurück, um zu sehen, woher fragwürdige Ergebnisse
kommen kommen
62. Numerische Daten normalisieren: Dies ist eine sehr schnelle Vorlesung. Ich möchte Sie nur daran erinnern, dass Sie manchmal in Ihren Daten normalisieren oder weiß werden müssen,
die in einen Algorithmus gehen . So halten Sie das einfach in den Hinterkopf, denn manchmal wird es die Qualität
Ihrer Ergebnisse beeinflussen . Wenn Sie nicht so schnell Vortrag hier. Ich möchte Sie nur daran erinnern, wie wichtig es ist, Ihre Daten manchmal zu normalisieren, indem Sie sicherstellen, dass Ihre verschiedenen Eingabe-Feature-Daten im gleichen Maßstab sind und vergleichbar sind. Und manchmal ist es wichtig, und manchmal nicht. Aber man muss nur wissen, wann es der Fall ist. Manchmal werden Einkaufszentren auf mehreren verschiedenen numerischen Attributen basieren. Denken Sie daran, wie Multi-Varianten-Modelle. Wissen Sie, wir haben vielleicht verschiedene Eigenschaften eines Autos, das wir betrachten, und es sind vielleicht nicht direkt vergleichbare Messungen oder zum Beispiel, wenn wir Beziehungen zwischen Alter und Einkommen betrachten. Altersgruppen können zwischen 0 und 100 liegen, aber Einkommen und Dollar können zwischen null und Milliarden liegen, und je nach Währung könnte
es ein noch größerer Bereich sein. Einige Modelle sind damit in Ordnung. Weißt du, wenn du wie eine Regression machst, ist das
normalerweise keine große Sache, aber andere Modelle funktionieren nicht so gut, es sei denn, diese Werte werden für uns auf einen gemeinsamen Maßstab skaliert. Wenn Sie also nicht vorsichtig sind, können
Sie mit einigen Attributen mehr zählen als andere. Vielleicht würde das Einkommen am Ende viel mehr zählen als das Alter, wenn Sie versuchen würden,
diese beiden Werte als vergleichbare Werte in Ihrem Modell zu behandeln , so dass auch eine Verzerrung und die Attribute ausgeben kann, die auch ein Problem sein können. Also vielleicht ist ein Satz Ihrer Daten verzerrt. Weißt du, manchmal musst du Dinge normalisieren im Vergleich zu dem tatsächlichen Bereich, der für diesen Satz von Werten gesehen , und nicht nur auf,
ah, ah, Null auf was auch immer das Maximum ist Skalierung. Und Sie wissen, dass es keine festgelegte Regel gibt, wann Sie nicht tun sollten, sollte diese Art
von Normalisierung nicht tun . Aber alles, was ich sagen kann, ist, lesen Sie
immer die Dokumentation für jede Technik, die Sie verwenden. So, zum Beispiel, in der Psych, es erfahren, dass ihre PC-Implementierung eine weiße und Option hat, die automatisch
Ihre Daten für Sie normalisiert . Sie sollten das wahrscheinlich verwenden, und es hat auch einige Vorverarbeitungsmodule zur Verfügung, die automatisch normalisieren und skalieren von Dingen für Sie. Ein Schwung, weißt
du. Beachten Sie auch Textdaten, die tatsächlich numerisch geordnet dargestellt werden sollten. Wenn Sie also Ja-oder Nein-Daten haben, müssen
Sie diese Zehe eins oder Null konvertieren und dies in einer konsistenten Angelegenheit tun. Also noch einmal, lesen Sie
einfach die Dokumentation. Die meisten Techniken funktionieren gut mit rohen, normalisierten Daten. Aber bevor Sie beginnen, neue Daten zu verwenden, eine neue Technik zum ersten Mal, lesen Sie
einfach die Dokumentation und verstehen Sie, ob die Eingaben sollten skaliert oder normalisiert oder aufhellt werden, und wenn ja, säkulare wird es wahrscheinlich sehr einfach für Sie zu tun, so müssen Sie nur daran denken, es zu tun . Vergessen Sie nicht, Scalea-Ergebnisse wieder, wenn Sie fertig sind, wenn Sie die Eingabedaten skalieren. Wenn Sie also in der Lage sein möchten, die Ergebnisse zu interpretieren, müssen Sie sie
manchmal wieder auf ihren ursprünglichen Bereich skalieren, nachdem Sie fertig sind. Wenn Sie also Dinge skalieren und sie vielleicht sogar auf einen bestimmten Betrag verzerren, bevor Sie sie in ein Modell
eingeben,
stellen Sie sicher, dass Sie sie ungelerntet und unvoreingenommen haben, bevor Sie diese
Ergebnisse tatsächlich jemandem oder anderen präsentieren wird keinen Sinn ergeben. Okay, also nur eine kleine Erinnerung. Ein bisschen wie ein Gleichnis, wenn Sie immer überprüfen, ob Sie sie normalisieren sollten. Bleichen Sie Ihre Daten, bevor Sie sie in ein bestimmtes Modell übergeben. Also keine Übung, die mit diesem Vortrag verbunden ist, ist nur etwas, was ich möchte, dass Sie sich erinnern. Ich versuche nur, den Punkt nach Hause zu fahren. Einige Algorithmen erfordern die Aufhellung einer Normalisierung. Manche lesen nicht immer die Dokumentation. Wenn Sie die Daten normalisieren müssen, die in einen Algorithmus gehen, wird
es Ihnen normalerweise sagen und wird es sehr einfach machen, dies zu tun. Also seien Sie sich dessen bewusst.
63. Die Entstehung von Aushebungen: Manchmal enthalten Ihre realen Daten Ausreißer, und sie könnten legitime Ausreißer sein. Sie könnten durch echte Menschen verursacht werden, und nicht durch irgendeine Art von böswilligen Verkehr oder gefälschte Daten, und Sie müssen entscheiden, wie Sie mit ihnen umgehen. Manchmal ist es angebracht, sie zu entfernen. Manchmal ist es nicht. Stellen Sie sicher, dass Sie diese Entscheidung verantwortungsvoll treffen. Also, zum Beispiel, wenn ich kollaborative Filterung mache und ich versuche, Filmeempfehlungen oder so
etwas zu machen , haben
Sie vielleicht ein paar Power-User, die jeden Film jemals gemacht und bewertet haben Film, der jemals gemacht wurde. Und sie könnten am Ende einen übermäßigen Einfluss auf die Empfehlungen für alle
anderen haben . Und Sie wollen nicht wirklich, dass eine Handvoll Leute so viel Macht in Ihrem System haben. Das könnte also ein Beispiel dafür sein, wo es eine legitime Sache wäre, einen
Ausreißer herauszufiltern und sie dadurch zu identifizieren, wie Maney-Bewertungen sie tatsächlich in das System eingebracht haben. Oder vielleicht wäre ein Ausreißer jemand, der nicht genug Bewertungen hat. Oder wir betrachten Webprotokolldaten, wie wir es in unserem Beispiel gesehen haben, wo wir Datenbereinigungsausreißer tun könnten Ihnen sagen, dass etwas sehr
falsch mit Ihren Daten ist . Es könnte böswilliger Verkehr sein. Es könnte Bots oder andere Agenten sein, die verworfen werden sollten, die keine tatsächlichen
Menschen darstellen , die Sie zu modellieren versuchen. Aber wenn jemand wirklich wollte, sagen Sie das mittlere Durchschnittseinkommen in den Vereinigten Staaten und nicht das Medium, sie wollen ausdrücklich den Mittelwert. Du solltest die Milliardäre nicht einfach rauswerfen, nur weil du
sie nicht magst . Tatsache ist, dass Milliarden von Dollar diesen Mittelwert erhöhen werden,
auch wenn er den Median nicht viel übersteigt . Also mach deine Zahlen nicht, indem du Lügner rausschmeißt, sondern Lügner. Wenn es nicht mit dem übereinstimmt, was Sie jetzt in erster Linie modellieren wollen, wie identifizieren wir Lügner? Nun, erinnern Sie sich an unseren alten Freund Standardabweichung? haben wir schon sehr früh in diesem Kurs behandelt. Es ist ein sehr nützliches Werkzeug, um Ausreißer in einer sehr prinzipiellen Weise zu erkennen. Es berechnet die Standardabweichung eines Datensatzes, der eine mehr oder weniger
Normalverteilung haben sollte . Und wenn Sie einen Datenpunkt sehen, der außerhalb einer oder zwei Standardabweichungen liegt, haben Sie
dort einen Ausreißer. Denken Sie daran, wir sprachen mit über die Box und Whisker Diagramme, und diese haben auch eine eingebaute Art und Weise, Lügner zu erkennen und zu visualisieren. Und diese definieren Ausreißer als außerhalb von 1,5 des Quartilbereichs. Also, was für ein Vielfaches wählst du? Nun, Sie müssen irgendwie gesunden Menschenverstand verwenden. Es gibt keine harte und schnelle Regel darüber, was ein Ausreißer ist. Sie müssen sich Ihre Daten ansehen und irgendwie Augapfel es. Sieh dir die Verteilung an. Sieh dir die Geschichte an, Graham. Sehen Sie, ob es tatsächliche Dinge gibt, die Ihnen auffallen, ist offensichtliche Ausreißer und verstehen, was sie sind, bevor Sie sie einfach wegwerfen. Schauen wir uns also einen Beispielcode an und sehen, wie Sie das in der Praxis tun könnten. Wenn Sie mitmachen möchten, gehen Sie zurück zum Ausreißer-Notizbuch in Ihrem Kursmaterial und wir werden unser
Beispiel für Einkommensverteilungsdaten nochmals besuchen . So wie zuvor werden
wir n p dot zufällig verwenden, um eine normale Verteilung zu erstellen, zentriert um $27.000 pro Jahr mit einer Standardabweichung von $15.000 wird 10.000 dieser normal verteilten Einkommen und jetzt nur ein Chaos. Dinge sind ein bisschen gut, durch einen Milliardär in den Mix. Möge Jeff Bezos, wer auch immer Sie sich vorstellen möchten, dass nur von der Liste der Einkommensdaten abhängt, die
wir haben Jetzt können Sie sehen, dass dies die Dinge ziemlich schnell durcheinander bringt , auch nur versuchen, diese Daten zu visualisieren. Also sind es Studenten. Wir versuchen, eine Geschichte Graham dieser Daten zu plotten. Wir sehen, dass all die so genannten Sie kennen, normale Leute, die hier unten rund 27.000 Dollar pro Jahr verdienen, in dieser großen Spitze hier undhier
draußen,eine hier
draußen, Milliarde Dollar. Wir haben einen einzigen Datenpunkt, den Sie nicht einmal sehen können, aber es ist bereits vermasselt unsere Fähigkeit, diese Daten sogar zu visualisieren, so dass ein Milliardär am Ende alle anderen in diese einzige winzige Zeile in unserer Geschichte zusammenquetscht. Graham und es hat auch unsere Mitte ziemlich deutlich verzerrt. Gehen wir also voran und führen Sie das aus, um die Daten hier in das System zu bekommen. Wenn Sie den Mittelwert berechnen, werden
wir sehen, dass es überhaupt nicht 27.000 Dollar sind. Es ist mehr wie $127.000, nur wegen diesem einen Ausreißer. Also ist es in diesem Fall sehr wichtig, im Schlepptau zu graben, was Ihre Ausreißer verursacht und zu verstehen, woher sie kommen? Sie möchten sicherstellen, dass, wenn Sie Daten wegwerfen, dies gerechtfertigt ist. Es basiert auf etwas Prinzipienem, oder? Also, wenn der Zweck dieser Analyse war, wirklich zu verstehen, die Einkommen von Zitat unquote typische Amerikaner, Filtern Sie heraus, dass eine Handvoll Milliardäre scheint wie eine legitime Sache zu tun, Sie wollen nur sicherstellen, dass Sie transparent, dass Sie das getan haben, wenn Sie Ihre Daten präsentieren Jetzt gibt es etwas
robusteres , das Sie in das bloße Sprichwort tun könnten, wenn Sie ein Milliardär sind, werde
ich Sie rauswerfen. Wir könnten
zum Beispiel sagen, dass alles, was über zwei Standardabweichungen des Medianwerts im Datensatz hinausgeht,
als Ausreißer definiert wird , und wir können wählen, welchen Standardabweichungswert wir dort wollen. Hier ist also eine kleine Funktion, die das für uns herausfindet. Ich nannte es Ausreißer ablehnen. Es beginnt mit der Berechnung des Median eines Datensatzes und der Standardabweichung dieses Datensatzes , und diese kleine Codezeile überprüft hier nur, ob oder nicht, wo Blow zwei
Standardabweichungen des Medians oder über zwei Standard Abweichungen des Medians und gibt den Filterdatensatz zurück, der sie alle auswirft. Dann rufen wir Filtered equals auf, lehnen Ausreißer Einkommen ab, und das wendet nur diese Filterfunktion auf den gesamten Datensatz an und gibt den gefilterten
Satz an seiner Stelle zurück . Wir könnten dann diesen Filterdatensatz plotten, und wir werden sehen, ob es funktioniert. Sicher genug, tut
es. Und das Schöne hier ist, dass es mich durch eine ganze Menge Daten nicht mag, richtig? Also haben wir immer noch eine nette, saubere kleine Glocke Kurve hier, aber unser Milliardär ist weg, ohne eine spezielle Logik schreiben zu müssen, die besagt, wenn Sie mehr als $1.000.000.000 wert, Sie zu werfen, stattdessen ist
es basierend auf einem Vielfaches von Standardabweichungen, was ein bisschen mehr von einer
prinzipiellenSache für Dio ist und unser Mittelwert jetzt auch sinnvoller sein wird prinzipiellen . Gehen wir weiter und machen das, bevor ich es vergesse. Wenn wir also jetzt den Mittelwert des gefilterten Datensatzes berechnen, der in der Nähe von $27.000 liegt, werden Ihre Ergebnisse aufgrund der Zufälligkeit etwas anders sein. Aber wir haben erfolgreich herausgefiltert sind Milliardäre, ohne einen speziellen
Fall für sie hart codieren zu müssen. Wir sind nur sehr prinzipienweise, die Ausreißer jenseits von zwei Standardabweichungen des
Medians ablehnen . Das ist, ah, vernünftig zu tun. Also hier ist die Aktivität, denn wenn Sie mit diesem etwas mehr anstelle eines einzigen Milliardärverbündeten spielen möchten, oder fügen Sie mehrere zufällig generierte Lügner zu den Daten hinzu,wissen
Sie,
wählen Sie dort einen Wertebereich aus wissen
Sie, und einfach Wirf sie da rein. Experimentieren Sie mit verschiedenen Werten des Vielfachen, der Standardabweichung, um diese Ausreißer zu identifizieren und zu sehen, welche Auswirkungen sie auf die
Endergebnisse hat . Es ist nur, ah,
Gelegenheit, das in die Hände zu bekommen und ein bisschen direkter herumzuspielen, wenn Sie so wollen. Also gib das eine Chance, wenn du willst, und dann gehen wir weiter
64. Charakteristik und der Fluch der Dimensionalität: Tauchen wir ein in die Welt des Feature-Engineering, in die Welt des maschinellen Lernens. Was ist Feature-Engineering überhaupt? Nun, im Grunde ist es der Prozess der Anwendung, was Sie über Ihre Daten wissen, um Funktionen, die Sie verwenden, zu
kürzen oder vielleicht
neue Features zu erstellen oder die Funktionen, die Sie haben, zu transformieren. Was ich auch mit Feature meine. Dies sind die Attribute Ihrer Trainingsdaten , die die Dinge, die Sie trainieren, Ihre Modellbreite. Nehmen wir ein Beispiel. Nehmen wir an, wir versuchen vorherzusagen, wie viel Geld die Menschen verdienen, basierend auf verschiedenen Attributen der Menschen. Also könnten Ihre Funktionen in diesem Fall das Alter einer Person sein, ihre Größe, ihr Gewicht, ihre Adresse, welche Art von Auto sie fahren, beliebig viele Dinge, richtig? Einige dieser Dinge werden relevant sein für die Dinge, die Sie vorhersagen wollen, und einige von ihnen werden es nicht sein. So ist der Prozess des Feature-Engineering teilweise, nur die Auswahl, welche Features wichtig für das, was ich vorhersagen
möchte , und die Auswahl dieser Features mit Bedacht. Viele Male müssen Sie diese Features auch in irgendeiner Weise transformieren. Vielleicht sind die Rohdaten für dieses spezifische Modell, das Sie verwenden, nicht nützlich. Vielleicht müssen Dinge in irgendeiner Weise normalisiert oder skaliert
werden, sind auf bestimmte Weise codiert. Oft haben Sie Dinge wie fehlende Daten. In der realen Welt verfügen Sie oft nicht über vollständige Daten für jeden einzelnen Datenpunkt. Und die Art und Weise, wie Sie sich dafür entscheiden, kann die Qualität des resultierenden Modells, das Sie haben,
stark beeinflussen. Manchmal möchten Sie auch neue Features aus den vorhandenen Features erstellen, die Sie haben. Vielleicht werden die numerischen Trends in den Daten , die Sie für ein bestimmtes Feature haben, besser dargestellt, indem Sie das Protokoll von dort, das Quadrat davon oder so etwas nehmen. Oder vielleicht sind Sie besser dran, mehrere Features zu nehmen und
sie mathematisch zu einem zu kombinieren , um Ihre Dimensionalität zu reduzieren. Das ist alles, worum es bei Feature-Engineering geht. Sie können nicht einfach alle Daten, die Sie haben, nehmen und sie in
diesen großen Machine Learning Trichter werfen und erwarten, dass gute Dinge am anderen Ende herauskommen. Das ist wirklich die Kunst des maschinellen Lernens. Hier wird Ihre Expertise angewendet, um tatsächlich gute Ergebnisse daraus zu erzielen. Es ist nicht nur ein mechanischer Prozess, bei dem Sie diese Schritte ausführen, alle Daten, die Sie haben, in diesen Algorithmus
werfen und sehen, welche Vorhersagen Sie machen. Das ist es, was die guten Machine Learning Praktiker von den schlechten unterscheidet. Diejenigen, die tatsächlich Feature-Engineering durchführen können, sind natürlich diejenigen, die am erfolgreichsten und wertvollsten auf dem Jobmarkt sind. Und das ist kein Zeug, das allgemein gelehrt wird, oder? Das ist also größtenteils eine Menge Dinge, die durch Erfahrung gelernt werden und tatsächlich dort draußen in der realen Welt zu sein und maschinelles Lernen zu praktizieren. Warum ist Feature-Engineering in erster Linie wichtig? Nun, es geht um den Fluch der Dimensionalität. Was meinen wir damit? Nun, wie ich schon sagte, man kann nicht einfach jede Funktion, die man hat, in
die Maschine werfen und erwarten, dass gute Dinge passieren. Zu viele Funktionen können aus verschiedenen Gründen tatsächlich sehr problematisch sein. Erstens ist, dass mindestens eine spärliche Daten. Also wieder, kommen Sie zurück zum Beispiel zu versuchen, ein Modell auf Attributen von Menschen zu trainieren. Es gibt Hunderte von Attributen für eine Person, die du finden könntest, richtig? Wie gesagt, Alter, Größe, Gewicht, welches Auto fahren Sie? Wie viel Geld verdienen Sie? Wo wohnst du? Wer weiß es? Wo bist du auf das College gegangen? Die Liste geht weiter und weiter und weiter. Und man kann sich jede Person tatsächlich
als Vektor im dimensionalen Raum all dieser Merkmale vorstellen . Okay, also bleib hier bei mir. Stellen Sie sich zum Beispiel vor, dass das einzige Merkmal, das wir haben, das Alter einer Person ist. Sie könnten eine Person durch einen Vektor entlang einer einzelnen Altersachse darstellen, rechts, von 0 zu 100 oder was auch immer. Jetzt werfen wir eine andere Dimension, sagen ihre Höhe. Wir haben eine andere Dimension und andere Achse, auf die wir diesen Vektor zeigen, dass sowohl ihr Alter auf einer Achse als auch ihre Höhe auf einer anderen kodiert, oder? Also jetzt haben wir einen zweidimensionalen Vektor geworfen eine dritte Dimension dort,
sagen, wie viel Geld sie verdienen. Jetzt haben wir einen Vektor in drei Dimensionen, wo eine Dimension ihr Alter ist, eine Dimension ist ihre Höhe, eine Dimension ist, wie viel Geld sie verdienen. Und wenn wir immer mehr Dimensionen hinzufügen, explodiert
der verfügbare Raum, mit dem wir arbeiten müssen, einfach immer weiter, oder? Das nennen wir den Fluch der Dimensionalität. Je mehr Funktionen Sie haben, desto größer ist der Raum, in dem wir eine Lösung finden können. Und einen großen Raum zu haben, um zu versuchen, die richtige Lösung
zu finden macht es viel schwieriger, diese optimale Lösung zu finden. Je mehr Funktionen Sie haben, desto spärlicher werden Ihre Daten innerhalb dieses Lösungsbereichs. Und je schwieriger es ist, die beste Lösung zu finden. Sie sind also besser dran, diese Funktionen auf diejenigen zu kochen, die am wichtigsten sind, was Ihnen weniger spärliche Daten und es viel einfacher macht, die richtige Lösung zu finden. Sie sich auch aus Performance-Sicht vor, StellenSie sich auch aus Performance-Sicht vor,ein neuronales Netzwerk zu erstellen, das Eingaben für jedes
dieser Funktionen hat , die auf welche Weise kodiert sind, richtig? Dieses neuronale Netzwerk müsste massiv sein, extrem breit unten, wahrscheinlich auch extrem tief, um tatsächlich alle Beziehungen zwischen diesen vielen Merkmalen zu finden . Und es wird einfach lächerlich schwer sein, das auf irgendetwas zu konvergieren. Ein großer Teil des Erfolgs beim maschinellen Lernen besteht also nicht nur darin, den Algorithmus zu verwenden ,
sondern
nicht nur die Daten zu säubern, sondern auch die Daten auszuwählen, die Sie verwenden. Und darum geht es bei Feature-Engineering. Wieder kommt es darauf an, Domain-Wissen und Art der Verwendung Ihres gesunden Menschenverstandes darüber, was funktionieren wird und was man zur
Verbesserung Ihres Modells und einfach nur mit verschiedenen Dingen experimentieren würde . Was macht einen Effekt und was nicht, was hilft, was tut den Dingen weh? Also viel davon geht einfach hin und her mit hilft diese Funktion den Dingen? Nein. Ok. Wir werden es nicht benutzen. Es tut diese Funktion hilft Dinge? Nein. Ok. Versuchen Sie etwas anderes. Jetzt müssen Sie nicht immer erraten, um fair zu sein, es gibt einige prinzipiellere Möglichkeiten, Dimensionalitätsreduktion durchzuführen. Einer von ihnen heißt PCA Principal Component Analysis. Pca ist eine Möglichkeit, all diese höheren Dimensionen,
all die verschiedenen Funktionen, die Sie haben, zu übernehmen und sie in
eine kleinere Anzahl von Features zu einer kleineren Anzahl von Dimensionen zu destillieren . Und es versucht, dies auf eine Weise zu tun, die Informationen so gut wie möglich bewahrt. Also, ich meine, wenn Sie genug Rechenleistung haben, um PCA tatsächlich für
eine große Reihe von Funktionen zu verwenden, ist das
eine prinzipiellere Art, es auf eine große Reihe von Funktionen zu verwenden, ist das die Funktionen zu destillieren, die tatsächlich wichtig sind. Und die Funktionen, die Sie am Ende haben, sind nicht wirklich Dinge, die Sie ein Etikett aufsetzen können. Es sind nur künstlich erstellte Funktionen, die die Essenz der Funktionen
erfassen, mit denen Sie begonnen haben. K-Means Clustering ist eine weitere Möglichkeit, dies zu tun. Was schön ist, ist, dass dies beide unbeaufsichtigte Techniken sind, so dass Sie diese nicht wirklich auf irgendetwas trainieren müssen. Sie können einfach die Feature-Daten werfen, die Sie einen
dieser Algorithmen haben , und es wird auskochen, wenn Sie so wollen, eine kleinere Menge von Dimensionen, die genauso gut funktionieren, hoffentlich auch eng. Aber wieder, mehr Funktionen sind nicht besser. Das führt zu dem, was wir den Fluch der Dimensionalität nennen. Und das ist einer der Hauptgründe, warum wir Feature-Engineering betreiben wollen. Und eines der wichtigsten Dinge, die Sie in diesem Prozess tun werden.
65. Imputation zum Fehlen von Daten: Ein großer Teil des Feature-Engineering ist also die Imputation fehlender Daten. Was tun Sie, wenn in Ihren Daten keine Datenelemente vorhanden sind? Das ist es, was in der realen Welt passiert. Für jede Beobachtung, die Sie haben, wird
es einige fehlende Datenpunkte mehr als wahrscheinlich geben. Nun, es ist eine einfache Lösung wird nur als mittlerer Ersatz bezeichnet. Die Idee ist, dass, wenn Sie fehlende Attribute oder Features in einer der Zeilen Ihrer Daten haben , ersetzen Sie sie
einfach durch den Mittelwert aus der gesamten Spalte. Und denken Sie daran, wir sprechen von Spalten, nicht von Zeilen hier. Sie möchten den Mittelwert aller anderen Beobachtungen desselben Features verwenden, es macht nicht wirklich Sinn, den Mittelwert
aller anderen Features für diese Zeile zu nehmen , richtig? Ersetzung geht es also darum, den Mittelwert
dieser Spalte zu nehmen und alle leeren Werte durch diesen Mittelwert zu ersetzen. So ist es einfach fasziniert. sind einige der positiven Ergebnisse dieses Ansatzes. Es wirkt sich auch nicht auf den Mittelwert oder die Stichprobengröße
Ihres gesamten Datasets aus, da Sie nur fehlende Daten durch den Mittelwert ersetzen. Es wirkt sich nicht auf den Gesamtmittelwert des gesamten Datasets aus, was nett sein kann. Nun, eine Nuance ist, dass, wenn Sie viele Ausreißer in Ihrem Dataset haben, das ist auch etwas, mit dem Sie sich bei der Vorbereitung Ihrer Daten beschäftigen müssen. Sie könnten feststellen, dass Median tatsächlich eine bessere Wahl als der Mittelwert ist. Also, wenn Sie einen Datensatz von einem Haufen Leute und vielleicht eine dieser Spalten als Einkommen haben. Und manche Leute melden ihr Einkommen nicht, weil sie denken, dass es empfindlich ist. Möglicherweise haben Sie Ihren Mittelwert von einer Reihe
von Millionären und Milliardären in Ihrem Datensatz verzerrt . Also, wenn Sie imputation meinen und das ist eine Situation, in der Sie Ausreißer haben. Sie können am Ende einen zu hohen oder zu niedrigen Wert haben
, den Sie für den Ersatz verwenden. Wenn Sie also Ausreißer haben, die Ihren Mittelwert verzerren, sollten
Sie stattdessen darüber nachdenken, Median zu verwenden. Das wird weniger empfindlich auf diese Ausreißer sein. Aber im Allgemeinen ist es nicht die beste Wahl für die Imputation. Zuallererst funktioniert es nur auf Spaltenebene. Wenn also Korrelationen zwischen anderen Features in Ihrem Dataset vorhanden sind, werden diese nicht berücksichtigt. Wenn es also eine Beziehung zwischen sagen wir, Alter und Einkommen gibt, wird diese Beziehung völlig vermisst werden. Sie können also sagen, dass ein 10-Jähriger
50.000 Dollar pro Jahr verdient, weil das der Mittelwert Ihres Datensatzes ist, aber es ergibt wirklich keinen Sinn, richtig? Ich meine, ein 15-Jähriger würde noch nicht so viel Geld verdienen. Von diesem Standpunkt aus ist es also ein sehr naiver Ansatz. Das andere Problem ist, dass Sie es nicht wirklich für kategoriale Funktionen verwenden können. Wie nehmen Sie den Mittelwert einer kategorischen Datenmenge, die einfach keinen Sinn ergibt, oder? Obwohl Sie den häufigsten Wert verwenden könnten,
der scheint, dass die am häufigsten gesehene Kategorie eine vernünftige Sache wäre, in diesem Fall zu tun, ist
es irgendwie im gleichen Geist ein gemeinsamer Ersatz, aber nicht wirklich das Gleiche. Insgesamt wird es jedoch keine sehr genaue Methode sein. Es ist ein sehr schinkenübergebener Versuch, eine Imputation zu machen. Also, obwohl es schnell und einfach ist und einige Vorteile in der Praxis hat. Wenn jemand dich bei einer Zertifizierungsprüfung fragt, was ist der beste Weg, um Datenimputation durchzuführen? Meinen Ersatz ist es wahrscheinlich nicht? Es wird wahrscheinlich auch nicht nur die fehlenden Zeilen fallen lassen. Obwohl, wie wir manchmal gesehen haben, ist das eine vernünftige Sache zu tun. Wenn Sie genügend Daten haben, so dass das Löschen einiger Zeilen keine Rolle spielt, wenn Sie nicht zu viele Zeilen haben, die fehlende Daten enthalten. Nun, klingt das nicht unvernünftig. Die andere Sache ist auch, dass Sie sicherstellen möchten, dass das Löschen der Rosetta fehlende Daten Ihr Dataset nicht verzerrt. Und einige, irgendwie, was ist, wenn es eine tatsächliche Beziehung zwischen den Zeilen fehlt Daten und einem anderen Attribut dieser Beobachtungen gibt. Nehmen wir zum Beispiel an, dass wir auf Einkommen suchen. Wieder. Es könnte eine Situation geben, in der Menschen sehr hohem oder sehr niedrigem Einkommen eher nicht darüber berichten. Indem Sie also all diese Beobachtungen entfernen oder fallen lassen, entfernen
Sie tatsächlich eine Menge Leute, die
sehr hohe oder niedrige Einkommen aus Ihrem Modell haben . Und das könnte einen sehr schlechten Einfluss auf die Genauigkeit des Modells haben, das Sie am Ende haben. Sie möchten also sicherstellen, dass, wenn Sie Daten löschen möchten, das Dataset nicht in irgendeiner Weise als Nebenprodukt verzerrt wird, richtig? So ist es eine sehr schnelle und einfache Sache zu tun. Wahrscheinlich das schnellste und einfachste, was zu tun ist. Sie können dies buchstäblich in einer Codezeile in Python tun, aber es wird wahrscheinlich nie der beste Ansatz sein. Also nochmal, wenn eine Prüfung Sie fragt, was ist der beste Weg, um fehlende Daten zuzuschreiben? Löschen von Daten ist wahrscheinlich nicht die richtige Antwort. Fast alles wird besser werden. Vielleicht könntest du einfach ein ähnliches Feld ersetzen, oder? Ich meine, das wäre auch eine einfache Art, es zu tun. Zum Beispiel könnte ich einen Datensatz von Kundenrezensionen in Filmen haben, oder? Vielleicht wäre
es sinnvoller, wenn ich eine Rezension und eine Volltextübersicht habe, nur die Zusammenfassung der Rezension zu nehmen und
diese in den Volltext für Leute zu kopieren , die den Volltext leer gelassen haben. Als Beispiel ist fast alles besser, als nur Daten zu löschen. Aber in der realen Welt, wenn Sie nur versuchen, etwas schnell und schmutzig zu machen und so wie fangen Sie an, mit einigen Daten zu experimentieren, nur um damit zu spielen. Es kann eine vernünftige Sache sein, zu tun. Ich würde das einfach nicht zwangsläufig für die Produktion belassen. was Sie wahrscheinlich wirklich in der Produktion tun möchten, ist, indem maschinelles Lernen selbst verwenden, um Ihnen fehlende Daten in Ihrem maschinellen Lerntraining zuzuschreiben. Also ist es eine Art Meta-Sache. Es gibt verschiedene Möglichkeiten, dies zu tun. Man nennt sich KNN, das steht für k nächste Nachbarn. Und wenn Sie Erfahrung mit maschinellem Lernen haben, wissen
Sie wahrscheinlich, was das bereits ist. Die allgemeine Idee ist, das k zu finden, wo k eine Anzahl der ähnlichsten Rose ist , die Sie betrachten, die fehlende Daten hat und nur die Werte aus diesen ähnlichsten Zeilen
gemittelt hat. Sie können sich also vorstellen, dass Sie eine Art Distanzmetrik zwischen jeder Zeile haben. Vielleicht ist es nur der euklidische Abstand zwischen den normalisierten Features in jeder Zeile oder so etwas. Und wenn Sie die, sagen wir,
10 nächsten Zeilen finden , die am ähnlichsten sind denen, die Daten fehlen. Sie können einfach den Durchschnitt dieses Features aus den zehn
ähnlichsten Zeilen nehmen und den Wert daraus zuschreiben. Das nutzt also die Beziehungen zwischen
den anderen Features Ihres Datasets, was eine gute Sache ist. Ein Problem dabei
ist jedoch, dass diese Idee davon ausgeht, dass Sie
numerische Daten haben , die Sie zuschreiben möchten, und nicht kategoriale Daten. Es ist schwierig, den Durchschnitt einer Kategorie zu nehmen, aber es gibt Möglichkeiten, dies mit den Techniken wie Hamming Distanz zu tun. Aber N ist im Allgemeinen besser geeignet für numerische Daten, nicht für kategorische Daten. Wenn Sie kategoriale Daten haben, sind
Sie wahrscheinlich besser bedient, indem Sie tatsächlich ein Deep-Learning-Modell entwickeln. Neuronale Netzwerke sind großartig darin, Kategorisierungsprobleme zu machen. Die Idee wäre also, tatsächlich
ein maschinelles Lernmodell zu erstellen , um die Daten für Ihr maschinelles Lernmodell zuzuschreiben, oder? Es ist irgendwie ein Zyklus dort. Und das funktioniert wirklich gut für kategoriale Daten. Es ist wirklich gut, es ist schwer, Deep Learning in diesen Tagen zu sein. Aber natürlich ist es kompliziert. Es ist auch viel Code in viel Tuning involviert. Aber es ist schwierig, die Ergebnisse zu sein, wenn Sie tatsächlich ein Deep-Learning-Modell haben, das
versucht, vorherzusagen, was ein fehlendes Feature auf anderen Features in Ihrem Dataset basiert. Das wird klappen. Viel Arbeit, viel Rechenaufwand, aber es wird Ihnen die besten Ergebnisse geben. Sie können auch für die anderen Features, die sich in Ihrem Dataset befinden, eine mehrfache Regression
durchführen . Das ist auch eine völlig vernünftige Sache zu tun. drei Regressionen können Sie lineare oder nicht-lineare Beziehungen zwischen
dem fehlenden Feature und den anderen Features im Dataset finden. Und es gibt eine sehr fortschrittliche Technik entlang dieser Linien genannt Mäuse, die für eine Mehrfachimputation durch verkettete Gleichungen steht. Es ist ein gewisser Stand der Technik in diesem Raum, weil fehlende Daten angerechnet werden. Also, in Ordnung, und schließlich, wahrscheinlich ist der beste Weg, um mit fehlenden Daten umzugehen, nur mehr Daten zu bekommen. Wenn Sie also eine Reihe von Zeilen haben, die fehlende Daten haben, Sie
vielleicht nur noch schwieriger versuchen, vollständigere Daten von Menschen zu erhalten. Und es ist schwer, nur mehr echte Daten zu bekommen
, so dass Sie sich nicht um alle Straßen kümmern müssen, die fehlende Daten hatten. Auch hier möchten Sie darauf achten, dass Sie Ihr Dataset nicht in irgendeiner Weise verzerrt haben,
wenn Sie Daten löschen. Aber wirklich der beste Weg, um mit nicht genügend Daten
umzugehen, ist, da Sie nur mehr davon bekommen, manchmal müssen Sie nur zurückgehen und herausfinden, woher diese Daten stammen und bessere Daten sammeln. Und je eine bessere Qualität der Daten Sie in Ihr System gelangen,
desto besser werden die Ergebnisse erhalten Sie. Und während Imputationstechniken eine Möglichkeit sind,
Probleme zu vertuschen , bei denen Sie einfach nicht genug Daten haben und Sie nicht mehr davon bekommen können. Es ist immer eine gute Idee, nur mehr und bessere Daten zu erhalten, wenn Sie können.
66. Unausgeglichene Daten für Data: Undersampling, und SMOTE: Ein weiteres Problem in der Welt des Feature-Engineering ist der Umgang mit unausgeglichenen Daten. Was meinen wir damit? Nun, nehmen wir an, wir haben eine große Diskrepanz zwischen unseren positiven und negativen Fällen in unseren Trainingsdaten. Ein häufiges Beispiel ist in der Welt der Betrugserkennung. Tatsächlicher Betrug ist ziemlich selten, oder? Daher werden die meisten Ihrer Trainingsdaten Trainingszeilen enthalten, die nicht betrügerisch sind. Dies kann zu Schwierigkeiten bei
der Erstellung eines Modells führen , das Betrug identifizieren kann, da es
so wenige Datenpunkte hatte , von denen man im Vergleich zu allen nicht betrügerischen Datenpunkten lernen konnte. Es ist also sehr einfach für ein Modell zu sagen, okay, nun, da Betrug tatsächlich nur etwa 0,01% der Zeit passiert, werde
ich nur voraussagen, dass es nicht ständig Betrug ist. Und hey, meine Genauigkeit ist jetzt genial, oder? Wenn Sie also ein unausgeglichenes Dataset haben, können
Sie in einer Situation wie der enden, in der Sie
ein maschinelles Lernmodell haben , das aussieht, als hätte es eine hohe Genauigkeit, aber es rät nur Nein jedes Mal. Und das ist nicht hilfreich, oder? Es gibt also Möglichkeiten, damit im Feature-Engineering umzugehen. Lassen Sie sich von der Terminologie nicht verwirren. Das ist eigentlich etwas, das ich
anfangs viel aufgehängt habe , wenn ich positive und negative Fälle sage, ich spreche nicht über gut und schlecht, also vermischen Sie sich nicht positiv und negativ mit einem positiven, negativen Ergebnis. Positiv bedeutet einfach, ist das die Sache, auf die ich teste? Ist es das, was passiert ist? Das könnte also Betrug sein, oder? Wenn ich also, wenn mein Modell versucht, Betrug zu erkennen, dann ist Betrug der positive Fall. Auch wenn Betrug eine sehr negative Sache ist. Denken Sie daran, positiv ist genau das, was Sie zu erkennen versuchen, was auch immer das ist. Also schlagen Sie das in Ihren Kopf, denn wenn Sie weiterhin positive und negative mit moralischen Urteilen vermischen. Nun, worum es
in diesem Zusammenhang geht , ist dies übrigens hauptsächlich ein Problem mit neuronalen Netzen. Es ist also ein echtes Problem, dass, wenn Sie einen unausgeglichenen Datensatz wie diesen haben, es wahrscheinlich nicht das Richtige lernen wird und wir irgendwie damit umgehen müssen. Was ist eine Möglichkeit, damit umzugehen? Nur Oversampling ist eine einfache Lösung. Also nehmen Sie einfach Proben aus Ihrer Minderheitenklasse. In diesem Beispiel von Betrug, nehmen Sie
einfach mehr von den Proben, die
bekanntermaßen Betrug sind , und kopieren Sie sie immer und immer wieder. Machen Sie eine Armee von Klonen, wenn Sie so wollen, aus Ihren betrügerischen Testfällen. Und das kannst du zufällig machen. Man würde denken, dass das nicht wirklich helfen würde, aber es tut mit einem neuronalen Netzwerk. Also, das ist eine sehr einfache Sache, die Sie tun können. einfach mehr von Ihrem Minderheitenfall her, indem Kopien von anderen Proben aus diesem Minderheitenfall machen. Die andere Art und Weise können Sie als Undersampling gehen. Statt mehr Ihrer Minderheitenfälle zu erstellen, entfernen Sie die Mehrheit. Im Falle von Betrug würden wir darüber reden, nur einige
dieser nicht betrügerischen Fälle zu entfernen , um es ein bisschen mehr auszugleichen. Allerdings ist das Wegwerfen von Daten in der Regel nicht die richtige Antwort. Ich meine, warum würdest du das jemals tun wollen? Du verwerfst Informationen, richtig? Das einzige Mal, wenn Undersampling sinnvoll sein könnte, ist, wenn Sie speziell versuchen, einige Skalierungsprobleme mit Ihrem Training zu vermeiden, richtig? Vielleicht haben Sie nur mehr Daten, als Sie handhaben können und die Hardware, die Sie erhalten. Und wenn Sie zu viele Daten haben, um tatsächlich zu verarbeiten und zu handhaben, gut, werfen Sie einige der Mehrheitsfälle weg, könnte ich eine vernünftige Sache zu tun sein, aber die bessere Lösung wäre, mehr Rechenleistung zu erhalten, oder? Und tatsächlich skalieren Sie das auf einem Cluster oder so. Also Undersampling, in der Regel nicht der beste Ansatz. Etwas, das noch besser ist als Undersampling oder Oversampling, ist etwas, das als geräuchert bezeichnet wird. Und das ist etwas, was man sehen könnte, steht für eine synthetische Minderheit Oversampling-Technik, eine
Art kreatives Akronym. Was es tut, ist, dass es künstlich
neue Samples der Minderheitenklasse mit nächstgelegenen Nachbarn generiert . So wie wir darüber gesprochen haben, KNN für die Imputation zu verwenden, die gleiche Idee hier. Wir betreiben k-nächste Nachbarn für jede Stichprobe der Minderheitenklasse. Und dann erstellen wir neue Stichproben aus diesen KNN-Ergebnissen, indem wir den Mittelwert dieser Nachbarn nehmen. Anstatt nur, weißt du, naiv Kopien anderer Testfälle für die Minderheitenklasse zu machen. Wir fertigen tatsächlich neue, basierend auf Durchschnittswerten aus anderen Proben und fertigen sie auf diese Weise ziemlich gut. Es erzeugt also beide neue Samples. Und unter Proben der Mist Mehrheitsklasse, was gut ist. Dies ist also besser als nur Oversampling, indem Kopien erstellt werden, weil es
tatsächlich neue Datenpunkte erzeugt, die in der Realität noch eine Grundlage haben. Also denken Sie daran, wenn Sie mit unausgeglichenen Daten zu tun haben, ist
geräuchert eine sehr gute Wahl. Ein einfacherer Ansatz besteht darin, nur die Schwellenwerte anzupassen, wenn Sie tatsächlich Schlussfolgerungen ziehen und Ihr Modell tatsächlich auf die Daten anwenden, die Sie haben. Wenn Sie also Vorhersagen für eine Klassifizierung machen, sagen wir Betrug oder nicht Betrug, werden
Sie eine Art Schwellenwahrscheinlichkeit haben, mit der Sie sagen, Okay, das ist wahrscheinlich Betrug. Die meisten maschinellen Lernmodelle, also geben Sie einfach einen Betrug aus oder nicht Betrug. Es wird Ihnen tatsächlich eine Art Wahrscheinlichkeit geben, dass es Betrug ist oder nicht Betrug. Und Sie müssen eine Wahrscheinlichkeitsschwelle wählen, bei der Sie sagen, Okay, das ist wahrscheinlich Betrug, es verdient eine Untersuchung. Wenn Sie also zu viele Fehlalarme haben, wenn wir das beheben, dann erhöhen Sie einfach diese Schwelle, richtig? Das ist garantiert, um Ihre falsch positive Rate zu reduzieren, aber es kommt auf Kosten von mehr falschen Negativen. Also, bevor Sie so etwas tun, müssen
Sie über die Auswirkungen dieser Schwelle nachdenken wird. Wenn ich also meine Schwelle anhebe, bedeutet
das, dass ich weniger tatsächliche Dinge haben werde, die als Betrug gekennzeichnet sind, das bedeutet, dass ich eine tatsächliche betrügerische Transaktion sehr vermisse, aber ich werde meine Kunden nicht so sehr belästigen, sagen: Hey, ich fliege das als Betrüger, ich schließe deine Kreditkarte ab. Vielleicht wollen Sie tatsächlich den gegenteiligen Effekt, oder? Vielleicht möchte ich noch liberaler sein und wenn ich als Betrug markiere, also würde ich diese Schwelle senken, um tatsächlich mehr Betrugsfälle zu bekommen, die gekennzeichnet sind. Und Betrug könnte ein Fall sein, in dem man besser
falsch erraten kann, wenn es kein Betrug ist, als umgekehrt, richtig? Sie müssen also über die Kosten eines falschen Positivs im Vergleich zu einem
falschen Negativ nachdenken und Ihre Schwellenwerte entsprechend auswählen.
67. Binning, Transformieren, codieren, skizzieren und Shuffling: Lassen Sie uns schnell einige andere Techniken durchlaufen, die Sie im Prozess des Feature-Engineering verwenden
könnten. Man nennt sich binning. Die ID hier ist nur, um Ihre numerischen Daten zu nehmen und sie in
kategoriale Daten zu transformieren , indem sie diese Werte basierend auf Wertebereichen zusammenbinden. Als Beispiel habe ich vielleicht das Alter von Menschen in meinem Datensatz. Ich könnte jeden in ihren 20ern in einen Eimer stecken, jeder seine 30er in einen anderen Eimer und so weiter und so weiter. Das wäre ein Beispiel für das Binning, wo ich nur
jeden in einem bestimmten Bereich in eine bestimmte Kategorie lege. Anstatt zu sagen, dass wir trainieren müssen, basierend auf der Tatsache, dass Sie 22 und 3 Monate alt sind. Ich werde dich nur in das Verbot von 20-Jährigen bringen, richtig. Also habe ich diese Zahl von 22,
was auch immer es ist, in eine Kategorie von 20 irgendwas geändert . Also, das ist alles Gebot ist. Warum würdest du das tun wollen? Nun, es gibt ein paar Gründe. Eins ist, dass du manchmal bist, du hast gewisse Unsicherheit in deinen Messungen. Vielleicht sind Ihre Messungen nicht genau
genau und Sie fügen keine Informationen hinzu,
indem Sie sagen, dass diese Person 22,37 Jahre alt ist im Vergleich zu 22,38 Jahre alt ist. Vielleicht erinnern sich einige Leute an den falschen Geburtstag oder so, oder Sie fragen sie an verschiedenen Tagen und Sie haben unterschiedliche Werte als Ergebnis. So ist Binning eine Möglichkeit, in Ihren Messungen präzise zu vertuschen. Das ist eine Art und Weise Sie, das ist ein Grund. Ein weiterer Grund könnte sein, dass Sie nur wirklich ein Modell verwenden möchten , das auf kategorialen Daten anstelle von numerischen Daten arbeitet. Das ist eine Art fragwürdige Sache zu tun, weil Sie im Grunde ein paar Informationen wegwerfen, indem Sie binning, richtig? Also, wenn du das tust, solltest
du darüber nachdenken, warum du das tust. Der einzige wirklich legitime Grund, dies zu tun, ist, wenn es Unsicherheit oder Fehler in Ihren tatsächlichen zugrunde liegenden Messungen gibt, die Sie loswerden wollen. Jetzt gibt es auch etwas, das man Quantile Binning nennt, das man verstehen sollte. Das Schöne an Quantile Binning ist, dass ein Ihre Daten nach ihrem Platz in der Datenverteilung
kategorisiert. So stellt es sicher, dass jeder Ihrer Behälter eine gleiche Anzahl von Proben in ihnen hat. Also mit Quantilen Biegen, Ich stelle sicher, dass ich meine Daten
so verteilt habe, dass ich die gleiche Anzahl von Proben in jedem resultierenden gewesen. Manchmal ist das eine nützliche Sache, dies zu tun, denken Sie daran, Quantile Binning sogar Größen in jedem Bin haben. Eine andere Sache, die wir tun könnten, ist die Umwandlung unserer Daten. Anwendung einer Funktion auf unsere Funktion ist es, sie besser für unsere Algorithmen geeignet zu machen. Wenn Sie beispielsweise Feature-Daten haben, die einen exponentiellen Trend enthalten, könnte
dies von
einer logarithmischen Transformation profitieren , um diese Daten linearer aussehen zu lassen. Das könnte Ihrem Modell helfen und tatsächlich echte Trends darin finden. Manchmal haben Modelle Schwierigkeiten mit nichtlinearen Daten. Ein Beispiel aus der Praxis ist YouTube. Sie veröffentlichten ein Papier darüber, wie ihre Empfehlungen funktionieren, was übrigens großartig ist, es gibt einen Hinweis darauf in der Folie hier. Sie haben dort einen ganzen Abschnitt über Feature-Engineering, den Sie möglicherweise nützlich finden. Und eine Sache, die sie tun, ist für jeden numerischen Feature-Ausgang, den sie haben , wissen
Sie, zum Beispiel, wie lange ist es her, seit Sie das Video gesehen haben? Sie ernähren sich auch im Quadrat davon und der Quadratwurzel davon. Und die Idee dort ist, dass sie
super- und sublineare Funktionen in den zugrunde liegenden Daten auf diese Weise lernen können . Also sie werfen nicht nur in, rohe Werte werfen auch in das Quadrat und die Quadratwurzel,
nur um vorsichtig zu sein und zu sehen, ob sie tatsächlich nicht-lineare Trends
sind, die sie aufgreifen sollten. Sie fanden heraus, dass, dass tatsächlich verbessern ihre Ergebnisse. Das ist also ein Beispiel für die Transformation von Daten. Es ist nicht notwendigerweise, Daten durch eine Transformation zu ersetzen. Manchmal erstellen Sie tatsächlich ein neues Feature, indem Sie ein vorhandenes Objekt transformieren. Das ist es, was hier vor sich geht. Sie füttern also sowohl das ursprüngliche Feature x und x quadriert als auch die Quadratwurzel von x ein. Sie können in diesem Diagramm hier sehen, warum Sie das vielleicht tun möchten. Wenn ich also mit einer Funktion von x hier und der grünen Linie beginne, kann
man sehen, dass ich, indem
ich den LN, den Logarithmus davon, mit einer linearen Beziehung lande, die für Meilen leichter ist, aufzuheben. Ich könnte das auch zu einer höheren Macht löschen, was die Dinge in diesem Fall tatsächlich verschlimmern würde, aber manchmal sind mehr Daten besser. Wieder sprechen wir über den Fluch der Dimensionalität, also gibt es eine Grenze, aber darum geht es bei Feature Engineering. Der Versuch, dieses Gleichgewicht zwischen
gerade genug Informationen und zu vielen Informationen zu finden. Eine weitere sehr häufige Sache, die Sie bei der Vorbereitung Ihrer Daten tun werden, ist die Codierung. Und das sieht man sehr viel in der Welt des Deep Learning. Daher erfordert Ihr Modell oft eine sehr spezifische Art von Eingabe und Sie müssen Ihre Daten transformieren und sie in das Format codieren, das Ihr Modell benötigt. Ein sehr häufiges Beispiel wird als One-Hot-Codierung bezeichnet. Okay, stellen Sie sicher, dass Sie verstehen, wie das funktioniert. Die Idee ist, dass es einen Bucket für jede Kategorie erstellt hat, die ich habe. Und im Grunde habe ich eine, die das repräsentiert, diese Kategorie existiert und 0 ist, die darstellt, dass es nicht diese Kategorie ist. Schauen wir uns dieses Bild als Beispiel an. Nehmen wir an, ich baue ein Deep-Learning-Modell, das versucht, die
Handschrifterkennung auf Menschen zu machen , die die Zahlen 0 bis neun zeichnen. Dies ist ein sehr häufiges Beispiel, das wir später genauer betrachten werden. Also, um diese Informationen ein-Hot zu codieren. Ich weiß, dass dieses Ding die Zahl acht darstellt und um das in einer ein-heißen codierten Art und Weise darzustellen, habe ich
im Grunde 10 verschiedene Buckets für jede mögliche Ziffer,
die 0, 1, 2,
3, 4, 5, 6 darstellen könnte 7, 8 oder 9. Jetzt fange ich normalerweise an, hier bei 0 zu zählen. So können Sie hier sehen, dass es im neunten Schlitz
dort einen gibt, der die Zahl acht repräsentiert. Und jeder andere Schlitz dort hat eine 0, die darstellt, dass es nicht diese Kategorie ist. Das ist alles One-Hot-Codierung ist. Also wieder, wenn ich einen in diesem ersten Slot hätte, würde
das die Zahl 0 darstellen. Wenn ich einen im zweiten Schlitz hätte, der die Nummer eins darstellt und so weiter und so weiter. Wir tun dies, weil in Deep Learning Neuronen in der Regel entweder ein- oder ausgeschaltet sind, sie sind aktiviert oder sie werden nicht aktiviert. Also kann ich nicht einfach die Nummer acht einspeisen, die Nummer
eins in ein Eingabe-Neuron sind und erwarten, dass es funktioniert. So funktionieren diese Dinger nicht. Stattdessen muss ich dieses One-Hot-Codierungsschema haben ,
bei dem jeder einzelne Trainingswert dieses Etiketts tatsächlich in
10 verschiedene Eingabe-Neuronen eingespeist wird , waren nur einer von ihnen die eigentliche Kategorie darstellt, die ich habe. Wir können Ihnen auch über die Skalierung bei der Normalisierung Ihrer Daten erzählen. Wieder, so ziemlich jedes Modell erfordert dies auch. Viele Modelle bevorzugen, dass ihre Feature-Daten normalerweise um 0 verteilt werden. Und das gilt auch für die meisten Deep Learning und neuronalen Netzwerke. Zumindest erfordern
die meisten Modelle, dass die Feature-Daten zumindest auf vergleichbare Werte skaliert werden. Ich meine, es gibt Modelle, die sich nicht so sehr interessieren, wie Entscheidungsbäume, aber die meisten von ihnen werden empfindlich auf den Umfang Ihrer Eingabedaten reagieren. Andernfalls haben Sie, wenn Sie Features mit
größeren Größen haben , immer noch mehr Gewicht auf Ihrem Modell, als sie sollten. Zurück zum Beispiel von Menschen, wenn ich versuche, ein System basierend auf ihrem Einkommen zu trainieren, das eine sehr große Zahl wie, wissen Sie, 50000 und auch ihr Alter, das eine relativ kleine Zahl wie 30 oder 40. Ich normalisierte diese Daten nicht bis auf vergleichbare Bereiche, bevor ich darauf trainierte, dass Einkommen einen viel höheren Einfluss auf das Modell haben würde als ihr Alter. Und das wird zu einem Modell führen, das keinen sehr guten Job macht. Jetzt ist es sehr einfach, dies zu tun, besonders mit scikit-learn in Python, es hat ein Präprozessormodul, das Ihnen bei dieser Art von Sache hilft. Es hat etwas namens Minmax scalar, das es für Sie sehr leicht tun wird. Sie müssen nur daran denken,
die Ergebnisse wieder nach oben zu skalieren , wenn das, was Sie vorhersagen, es sind nicht nur Kategorien und tatsächliche numerische Daten. Wenn Sie also etwas vorhersagen, müssen
Sie sicherstellen, dass Sie diese Skalierung erneut anwenden und umgekehrt um am Ende des Tages tatsächlich ein aussagekräftiges Ergebnis aus Ihrem Modell zu erhalten. Schließlich werden wir über das Mischen sprechen. Viele Algorithmen profitieren vom Mischen Ihrer Trainingsdaten. Andernfalls gibt es manchmal eine Art Restsignal in Ihren Trainingsdaten, das sich aus der Reihenfolge ergibt, in der diese Daten gesammelt wurden. Sie möchten also sicherstellen, dass Sie alle Nebenprodukte
davon eliminieren , wie die Daten tatsächlich gesammelt wurden, indem Sie
sie mischen und nur die Reihenfolge, die in Ihr Modell eingespeist wird, randomisieren. So oft macht das auch einen Unterschied in der Qualität. Es gibt viele Geschichten, die ich gesehen habe, wo jemand ein wirklich schlechtes Ergebnis aus seinem maschinellen Lernmodell bekam, aber indem ich nur die Eingabe mischte und die Dinge viel besser wurden. Also vergiss nicht, das auch zu tun. Und das ist die Welt des Feature-Engineering auf den Punkt gebracht.
68. Wichtige Spark: Art und Weise. - keinen Auf
keinen
Fall, auf Auf
keinen
Fall,
auf
keinen Fall.
69. Spark installieren Teil: bisher in diesem Kurs haben
wir über viele allgemeine Data Mining und Machine Learning Techniken gesprochen, die Sie mit Ihrer Data Science Karriere nutzen
können. Aber sie laufen alle auf Ihrem Desktop. Und als solche, wissen
Sie, können
Sie nur so viele Daten ausführen, wie eine einzelne Maschine verarbeiten kann mit einigen dieser Techniken mit Python und psychischem Lernen und was nicht jetzt jeder über Big Data spricht, und Sie wissen, was es ist. Sie könnten für ein Unternehmen arbeiten, das in der Tat Big Data
hat, um Big Data zu verarbeiten,
was bedeutet, dass Sie nicht wirklich alles kontrollieren können. Sie können nicht wirklich alles auf nur einem System zerstreuen, das Sie tatsächlich berechnen müssen. Die Verwendung dieser Ressource erfolgt aus einer ganzen Cloud. Ein Cluster von Computing-Ressource ist, und das ist, wo Apache Spark kommt ins Spiel. In diesem nächsten Abschnitt werde
ich darauf einstellen, dass Sie mit Apache Spark einrichten und Ihnen einige Beispiele zeigen, wie Sie Apache Spark
tatsächlich verwenden, um einige der gleichen Probleme zu lösen, die wir in der Vergangenheit mit einem einzigen Computer in diesem natürlich. Aber das erste, was wir tun müssen, ist, Funken auf Ihrem Computer einzurichten, also werden wir Sie durch, wie das geht. Die nächsten Vorlesungen. Es ist ziemlich unkompliziert, aber es gibt ein paar Gouaches, also überspringen Sie nicht einfach diese Vorträge. Es gibt ein paar Dinge, auf die Sie besonders achten müssen, um Funke
erfolgreich laufen zu lassen, vor allem auf einem Fenstersystem. Und wieder, wir werden diese Beispiele nur mit Ihrem eigenen Computer entwickeln. Die gleichen Beispiele können jedoch skaliert werden, um später auf einem Hadoop-Cluster ausgeführt zu werden, wenn Sie möchten. Also lasst uns anfangen. Alles klar, lassen Sie uns den Apache Funke auf Ihrem System einrichten, damit Sie tatsächlich eintauchen und
damit anfangen können . Ein sehr leistungsfähiges Werkzeug für die Verwaltung von Big Data und Machine Learning auf großen Datensätzen. Jetzt werden wir dies nur auf Ihrem eigenen Desktop für jetzt während dieses Kurses ausführen, aber die gleichen Programme, die in diesem Abschnitt schreiben würden, könnten auf einem tatsächlichen
Hadoop-Cluster ausgeführt werden . Wenn Sie also dieselben Skripte nehmen, die lokal auf Ihrem Desktop geschrieben und ausgeführt wurden
und Standalone-Modus ausführten, können
Sie dieselben Skripte verwenden und sie tatsächlich vom Master-Knoten eines tatsächlichen Clusters
ausführen und dann skalieren lassen bis zur gesamten Leistung eines Hadoop-Clusters und Prozesses. Massive Datensätze auf diese Weise. Obwohl wir die Dinge so einrichten, dass sie lokal auf Ihrem eigenen Computer ausgeführt werden, Sie daran, dass die gleichen Konzepte, die wir tun,
auch auf einem Cluster skalieren werden . Jetzt Funke installiert auf Windows beinhaltet mehrere Schritte, die Sie durch
hier führen . Und ich gehe davon aus, dass du unter Windows bist, weil die meisten Leute diesen Kurs zu Hause nehmen. Wir werden in einem Moment ein wenig über den Umgang mit anderen Betriebssystemen sprechen. Aber hier, die grundlegenden Schritte. Wenn Sie also bereits vertraut sind mit der
Installation von Dingen und dem Umgang mit Umgebungsvariablen auf Ihrem Computer,
dann können Sie einfach diesen kleinen Spickzettel nehmen und losgehen und es tun. Installation von Dingen und dem Umgang mit Umgebungsvariablen auf Ihrem Computer, Aber ich werde dich einen Schritt nach dem anderen durchführen. In den kommenden Videos,
Dinge, die Sie tun müssen, müssen Sie zuerst auf J.
D.
K installieren D. . Das ist ein Job,
ein Entwicklungskit, so
dass Sie einfach gehen Dio Sons Website und nicht herunterladen können, dass und installiert, wenn Sie müssen. Wir brauchen den J. D. K, denn obwohl wir in diesem Kurs entwickeln und Python entwickeln werden, der unter der Haube in Scalia Code
übersetzt wird , was Funke in nativ und Scalia entwickelt wird, wiederum läuft auf dem Java-Interpreter. Um Python-Code auszuführen, benötigen
Sie ein Scala-System, das standardmäßig mit dem besten Teil von Smarck installiert wird. Und auch wir brauchen Java. Job ist Dolmetscher, um diesen Gelehrten Code tatsächlich auszuführen. So ist es wie dieser Technologie-Layer-Kuchen. Offensichtlich sind Sie nur Python, Aber wenn Sie zu diesem Punkt im Kurs gegangen sind, haben
Sie bereits eine Python-Umgebung eingerichtet. Und zum Glück, Funken. Die Apache-Website stellt vorgefertigte Versionen von Spark zur Verfügung, die nur aus
der Box laufen , die für die Damen kompiliert sind, um Version zu tun, so dass Sie
nichts bauen müssen . Sie können einfach herunterladen, dass auf Ihren Computer und stecken Sie es an der richtigen Stelle und gut sein, um zum größten Teil
gehen. Dann müssen wir uns um ein paar Konfigurationsaufgaben kümmern. Also eine Sache, die wir tun wollen, ist, unsere Warnstufe anzupassen, so dass wir keine Reihe von Warnungen erhalten, wenn wir unsere Jobs ausführen, und wir werden durch, wie wir das
tun . Grundsätzlich müssen
Sie eine der Eigenschaftendateien umbenennen und dann den Fehler anpassen, indem Sie ihn darin festlegen. Und dann entscheiden wir einige Umgebungsvariablen, um sicherzustellen, dass Sie Funke
von überall aus von jedem Pfad ausführen können , den Sie haben könnten. Also werden wir eine Funken-Home-Umgebung hinzufügen, Variable zeigt, wo Sie Funken installiert, und dann werden wir Spark home Slash zu Ihrem Systempfad hinzufügen, so dass, wenn Sie laufen Funken , senden oder Kuchen Funken oder was auch immer Funkenbefehl Sie brauchen, wir wissen, wo es zu finden ist. Schließlich, unter Windows, gibt es noch eine Sache, die wir tun müssen. Wir müssen Hadoop Home Variable studieren. Es ist gut, denn es wird erwarten, ein kleines bisschen Hadoop zu finden, auch wenn Sie nicht Hadoop auf Ihrem eigenständigen System verwenden, und dann müssen wir eine Datei namens Win You tills dot eggs e zu diesem Pfad installieren, und es gibt einen Link zu gewinnen. Du tills dot xy innerhalb der Ressource ist für diesen Vortrag, damit ich das dort bekommen kann. Also, wenn Sie es genauer durchlaufen wollen, können
wir diese schnelle Notiz über die Installation von Spark auf anderen Betriebssystemen machen, so dass die gleichen Schritte grundsätzlich gelten. Der Hauptunterschied besteht darin, wie Sie Umgebungsvariablen auf Ihrem System
so einstellen , dass sie automatisch angewendet werden, wenn Sie sich anmelden. Das ist also irgendwie von O esto s. Mac OS unterscheidet sich nicht von verschiedenen Geschmacksrichtungen von Linux. Sie müssen also zumindest ein wenig mit der Verwendung einer
UNIX-Terminal-Eingabeaufforderung vertraut sein und wie Sie Ihre Umgebung dazu manipulieren können. Aber weißt du, die meisten Mac OS- oder Lennox-Benutzer, die Entwicklung machten, haben diese Grundlagen bereits unter dem Gurt. Und natürlich wirst
du nicht brauchen, wenn du dot-Eier e kippst, wenn du nicht unter Windows bist. Also das sind die Hauptunterschiede für die Installation auf verschiedenen Betriebssystemen ist in Ordnung, lassen Sie uns beginnen, indem Sie tatsächlich ein J.
D.
K installieren D. . Also werde ich Sie durch das wirklich schnell und dann in unserer nächsten Vorlesung, wird durch alle anderen Details gehen, mit Funken eingerichtet zu werden. Also, wie ich bereits erwähnt habe, läuft Funke auf Jakobsmuschel, die wiederum auf der Java-Umgebung läuft. Also, wenn Sie nicht bereits einen Job ein Entwicklungs-Kit auf Ihrem System installiert haben, müssen
Sie gehen und einfach nur durch das wirklich schnell gehen. Gehen Sie einfach zu Ihrer Lieblings-Suchmaschine und suchen Sie nach J. D. K. sollte kommen. Nehmen Sie einfach die neueste, die Sie beschränkt haben, und das sollte Sie zu Ihnen,
der Oracle-Website, umleiten . Und Sie möchten nur die Version auswählen, die für Ihr System geeignet ist. Also unter Windows, werde
ich die Lizenzvereinbarung akzeptieren. Ich werde in meinem Beispiel nach der Windows X 64-Version suchen. Also verwende ich eine 64-Bit-Version von Windows. Geh weiter und nimm das runter. Es kommt und 100 87 Megabyte später. Wir sollten etwas haben, das wir installieren können, also nichts Besonderes hier. Sie wissen, dass es nur Ihr Standard-Installationsprogramm ist, aber das ist Schritt eins, um Java zu vergessen Funken in oben auf Ihrem
System installiert zu bekommen. Jetzt in unserem nächsten Vortrag geht weiter und spricht über die verbleibenden Schritte, die Spark selbst
installieren und dann alle zugehörigen Konfigurationsdateien und auch ein wenig extra gotcha und Windows. Die, wenn Sie die Punkt-Exit-Datei abwerfen, die an einem speziellen Ort installiert werden muss. Also kommen wir dorthin, und dieser Download kommt auch dorthin. Du klickst darauf. Sie führt Sie einfach durch einen Standard-Installer für das Java SC Development Kit. Also geh einfach voran und wahrscheinlich okay. Er nahm einfach alle Standardwerte an und ließ es seine Sache tun, und das ist alles, was es gibt. Gehen wir also zu den nächsten Schritten über. In Ordnung, wir sind auf dem Weg, Funken auf Ihrem Computer aufzurichten. Wir haben einen J. D. K eingerichtet. Das ist Schritt eins. Gehen wir also zu den verbleibenden Schritten in der nächsten Vorlesung über.
70. Spark installieren Teil: Alles klar. Es gibt eine Reihe von kleinen Niggly Details, die wir ausarbeiten müssen, um Funken tatsächlich auf Ihrem Desktop im Stand-Alone-Modus laufen zu lassen. Also lasst uns einfach alle durchgehen und ihn aus dem Weg bringen. Bisherhaben
wir Python installiert. Bisher Wir haben Java nächste Woche installiert, um Spark selbst zu installieren. Also zurück zu einem neuen Browser-Tab hier nur gesagt, um Punkt Apache Punkt oder GTA zu Funken und klicken Sie auf den großen freundlichen Download Funken-Button. Okay, jetzt, dieser Kurs wurde mit Funken 2,1 Punkt eins getestet. Also, wissen
Sie, angesichts der Wahl etwas über 2.0 hinaus, sollte gut funktionieren. Aber das ist, wo wir heute sind. Stellen Sie sicher, dass Sie eine vorgefertigte Version erhalten, okay? Und wir werden einfach einen direkten Download machen. Also alle diese Standardwerte Luft perfekt. Gehen Sie weiter und laden Sie das Paket herunter. jetzt heruntergeladen wird, Wasjetzt heruntergeladen wird,ist eine T GZ-Datei, die für Teer und Jesus klingt. Also wieder, Funken, Weißt
du, Fenster sind irgendwie ein Nachdenken mit Funken, ganz ehrlich. Und unter Windows werden
Sie kein integriertes Dienstprogramm haben, um die t gz-Datei tatsächlich zu dekomprimieren. Daher müssen Sie möglicherweise eine installieren. Wenn Sie noch keinen haben, wird
der, den ich benutze, ein Windbrüllen genannt. Und Sie können das von einer Website namens Raw oder unseren Labs dot com genau so abholen. Und gehen Sie einfach auf die Download-Seite, wenn Sie es brauchen und laden Sie das Installationsprogramm für Wind rar 32 Bit oder 64 Bit herunter, abhängig von Ihrem Betriebssystem, und das wird Ihnen erlauben, tatsächlich zu dekomprimieren. Teague Easy Dateien unter Windows, wenn Sie es brauchen. Also drücken, pausieren und installieren, wenn nötig. Wenn nicht, schauen wir uns unseren Apache Funke-Download an. Hier. Sieht aus, als wäre es runtergekommen. Also werde ich voran gehen und zeigen, dass in meinem Downloads-Ordner und lassen Sie uns voran und
klicken Sie mit der rechten Maustaste darauf und extrahieren Sie es in einen Ordner meiner Wahl Wieder. Winrow macht das zu diesem Zeitpunkt für mich,
okay, okay, also sollte ich jetzt einen Ordner haben, der mit diesem Paket verknüpft ist. Sicher genug, da ist es. Lasst uns das aufmachen, in Ordnung. Und es gibt Funken selbst, also muss ich das irgendwo installieren, wo ich mich daran erinnern werde. Sie wollen es
natürlich nicht in Ihrem Download-Ordner lassen . Also gehen wir weiter und öffnen Sie hier ein neues Datei-Explorer-Fenster, und ich werde zu meinem C-Laufwerk gehen und ich werde einen neuen Ordner erstellen und nennen es einfach Funken. Also meine Funkeninstallation wird unter C Doppelpunkt Backs letzten Funken wieder leben. Schön und leicht zu merken. Öffnen Sie das. Ich werde in Kontrolle A gehen, um alles in der Funkenverteilungssteuerung auszuwählen. Sehen Sie, um es wieder dorthin zu kopieren, wo ich es hineinbringen möchte, siehe Funken und Kontrolle V, um es einzufügen. Alles klar, jetzt, eine kleine Sache, die wir hier tun müssen. Öffnen Sie den con-Ordner, in dem wir Sparked installiert haben und umbenannt Log für Jadot Eigenschaften Punktvorlage, so dass Sie einfach die Vorlage entfernen. Es sollte also stattdessen nur für Jadot-Eigenschaften protokolliert werden. Ja, ich bin sicher, ich will es ändern. Und jetzt kann ich das öffnen, wenn du es brauchst. Rechts, klicken Sie dort und sagen Sie öffnen mit und wählen Sie Word Pad. Und was ich tun möchte, ist diese Zeile hier zu ändern, wo es Route Kategorie Info sagt. Ich möchte das in Irrtum ändern. Und das wird nur das Unordnung von all dem Gesetz zu entfernen, das ausgedruckt wird, wenn ich Sachen
führe . Ändern Sie das also von Fotofehlern. Speichern Sie es und schließen Sie aus Ihrem Editor. Okay, wo sind wir jetzt? Das ist irgendwie anstrengend. Wir haben Python installiert. Wir haben Java installiert. Wir haben Funken installiert. Nun, das nächste, was wir tun müssen, ist etwas zu installieren, das Ihren PC dazu verleitet, zu denken , dass ihre Dupie existiert. Und wieder ist
dieser Schritt nur bei Fenstern notwendig. So können Sie diesen Schritt überspringen, wenn Sie auf Makrele Lennix sind. Aber für die wenigen Fenster Leute, ich möchte, dass Sie zu diesem Link hier gehen. Sie sollten uns in finden. Die Ressource ist mit diesem Vortrag auf Plattformen verbunden, die so etwas hat. Aber wenn Sie wollen, können
Sie diesen Link einfach von Hand in sich selbst eingeben, okay? Und wenn Sie das herunterladen, das wird Ihnen eine Kopie von ah geben, kleine Schnipsel Ofen ausführen Kräuter. Das könnte verwendet werden, um Funken dazu zu bringen, zu denken, dass Sie tatsächlich Hadoop haben. Nun, da wir unsere Skripte nur lokal auf unserem Desktop ausführen, ist
es keine große Sache. Wir müssen keine Dupe für echte installiert haben. Es ist nur wieder herumkommt noch eine weitere Eigenart des Laufens Funken auf Windows. Also, jetzt, da wir das haben, zeigen wir das Steuerelement, Sehen, um es aus meinem Download-Ordner zu kopieren und gehen wir zu unserem C-Laufwerk und schaffen einen Platz für es zu leben. Also werde ich wieder einen neuen Ordner erstellen. Wir werden es gewinnen nennen,
ihr Kills, und ich werde das öffnen, wenn ihr den Ordner ablegt, den ich erstellt habe, und einen weiteren Ordner darin
namens Been anlegt. Und in diesem bin-Ordner werde ich die Datei einfügen, die ich gerade heruntergeladen habe. Okay, dieser nächste Schritt ist nur auf einigen Systemen erforderlich, aber nur um sicher zu sein, öffnen Sie eine Eingabeaufforderung in Windows, damit Sie dies tun können, indem Sie in Ihr Startmenü
gehen und zum Windows Windows Systembefehl gehen Eingabeaufforderung. Und von hier aus möchte
ich, dass Sie CD C Doppelpunkt Backslash Win eingeben. Sie tills Schrägstrich Backslash gewesen war, die ist, wo wir stecken unsere Wind util gestoppt E X-Dateien Wenn Sie ein d i r tun. Sie sollten sehen, dass es und jetzt geben Sie im folgenden, wenn Sie Punkt t X, c h m o d Raum 777 Raum, Backslash TMP Backslash hive und das Stellen Sie einfach sicher, dass alle Dateiberechtigungen, die Sie benötigen, um Spark erfolgreich auszuführen, ohne Fehler vorhanden sind. So können Sie diese Eingabeaufforderung schließen Jetzt, da Sie mit diesem Schritt fertig sind. Wow, wir sind fast fertig, geglaubt oder nicht. Jetzt ist das letzte, was wir brauchen, um eine Umgebungsvariable einzurichten. Also weiß die ganze Software, wo sie sich finden. Um das zu tun, ist
es in der Nähe von diesem Browser. Holen Sie sich aus all diesem Zeug werde ich mit der rechten Maustaste auf mein Windows-Symbol und wieder auf verschiedene Betriebssysteme klicken. Sie werden Umgebungsvariablen auf verschiedene Arten festlegen, aber unter Windows tun Sie es über Ihre Systemsteuerung und durch Klicken auf System und
Sicherheitssystem und dann erweiterte Systemeinstellungen. Und von hier aus klicken Sie auf Umgebungsvariablen. Also müssen wir hier ein paar einrichten. Fangen wir an. Also werde ich die neue Schaltfläche für meine Benutzerumgebungsvariablen drücken, und ich werde damit beginnen, eine für einen Funkenunterstrich zu Hause zu definieren. Und das wird das Verzeichnis installiert Funken sein, in das C Doppelpunkt Backslash Funken ist. Okay, als nächstes erstelle einen anderen. Dieser hier wird Java-Unterstrich zu Hause genannt. Und da habe ich den J.
D.
K.installiert D. K. und das wird C-Doppelpunkt Backslash J d k. Und schließlich muss
ich ein Dupe Home einrichten. Das wäre, wo ich die Win Util Studie, siehe Datei. Und das wird nur C-Doppelpunkt sein. Backslash gewinnen Sie Kills einfach so. Und ich muss endlich meinen Weg aktualisieren. Also werde ich auf die Pfadumgebungsvariable klicken, bearbeiten und ich werde einen neuen Pfad hinzufügen. Es wird Prozent-Zeichen sein, Funken-Unterstrich Home Prozent Zeichen Backslash gewesen ich werde ein weiteres Prozentzeichen
Java-Unterstrich hinzufügen Home Prozent Sign Back Slash war in Ordnung. Wer? Ich glaube, das war's.
71. Spark: Beginnen wir mit einem umfassenden Überblick über Apache Spark und worum es geht, was gut dafür ist, wie es funktioniert. Lasst uns eintauchen. Lassen Sie mich Ihnen einen kurzen, hochrangigen Überblick darüber geben, worum es bei Apache Funken geht. Bürgerliche Einführung des gesamten Konzepts. Also, was ist Funke? Nun, wenn Sie auf die Funken-Website gehen, geben
sie Ihnen eine sehr hohe Hand gewellte Antwort. Ein schneller und allgemeiner Motor für die Verarbeitung großer Datenmengen. Es schneidet sich in Scheiben. Es würfelt. Es macht Ihre Wäsche. Nun, nicht wirklich, aber es ist ein Framework zum Schreiben von Jobs oder Skripten, die sehr große
Datenmengen verarbeiten können . Und es verwaltet die Verteilung dieser Verarbeitung über einen Cluster von Computing für Sie so im Grunde Funken funktioniert, indem Sie Ihre Daten in diese großen Objekte laden, die als
resilient Distributed Data Stores RTGs bezeichnet werden, und es kann automatisch Operationen ausführen, die Transformieren und erstellen Sie Aktionen basierend auf diesen RTGs, die Sie sich vorstellen könnten. Es ist
im Grunde wie große Datenrahmen, im Grunde wie große Datenrahmen, und das Schöne daran ist, dass Funke diese Verarbeitung
automatisch und optimal auf einen ganzen Cluster von Computern verteilt . Wenn Sie eine zur Verfügung haben, so dass Sie nicht mehr beschränkt auf das, was Sie auf einer einzelnen
Maschine oder einem Speicher einer einzelnen Maschine tun können . Sie können das tatsächlich auf alle Verarbeitungsfunktionen und den Speicher verteilen, der einem Cluster von Maschinen
zur Verfügung steht. Und in dieser Zeit ist
Computing ziemlich billig. Sie können tatsächlich Zeit auf einem Cluster durch Dinge wie die elastische Karte von Amazon mieten, den Service
reduzieren und einfach einige Zeit auf einem ganzen Cluster von Computern für nur ein paar Dollar mieten und Ihren Job ausführen, den Sie nicht auf Ihrem eigenen Desktop ausführen konnten. Wie ist es also skalierbar? Nun, es ist ein bisschen spezifischer hier und wie alles funktioniert. Die Art und Weise, wie es funktioniert, ist, dass Sie ein Treiberprogramm schreiben. Es ist nur ein kleines Skript, das genau wie jedes andere Python-Skript aussieht, , und es benutzt die Funken-Bibliothek, um tatsächlich richtig zu machen. Sie sind Ihr Skript mit und innerhalb dieser Bibliothek, die Sie definieren, wurde ein Funkenkontext genannt, der eine Art Routenobjekt ist, in dem Sie arbeiten, wenn Sie sich entwickeln
und Funken, und von dort übernimmt
das Funken-Framework Art und verteilt Dinge für Sie. Also, wenn Sie im Standalone-Modus auf Ihrem eigenen Computer laufen, wie wir es in
diesen kommenden Vorträgen tun werden . Es bleibt alles auf Ihrem Computer, offensichtlich. Aber wenn Sie auf einem Cluster-Manager-Funken laufen und das herausfinden und automatisch davon
profitieren, hat
Spark tatsächlich eigene integrierte Cluster-Manager. Sie können es tatsächlich selbst verwenden, ohne auch nur ein Dupe installiert zu haben. Aber wenn Sie einen Hadoop-Cluster für Sie haben, kann
er das auch verwenden. Also Hadoop ist mehr als Karte Reduzierer, eigentlich eine Komponente eines do ein Garn genannt, das nur trennt. Das gesamte Cluster-Management Stück von Hadoop und Spark eine Schnittstelle mit Yard tatsächlich verwendet, um optimal zu verteilen. Die Komponenten Ihrer Verarbeitung zwischen der Ressource stehen diesem Hadoop-Cluster zur . Daher innerhalb eines Clusters können Sie
innerhalb eines Clusterseinzelne Executor-Tasks haben, die ausgeführt werden, und diese können auf verschiedenen Computern ausgeführt werden. Sie laufen möglicherweise auf verschiedenen Kernen desselben Computers, und sie einander auf individuellen Bargeld und ihre eigenen individuellen Aufgaben, die sie ausführen, und das Treiberprogramm, das Kontext im Cluster-Manager auslöst, arbeiten zusammen, um alle diese Anstrengung und geben Sie das Endergebnis zurück an Sie. Das Schöne daran ist. Alles, was Sie tun müssen, ist dieses kleine Skript hier zu schreiben, das einen Funkenkontext verwendet, um auf hoher Ebene die Verarbeitung zu beschreiben , die Sie mit diesen Daten durchführen möchten, und Funken zusammen mit dem Cluster-Manager, den Sie verwenden, herauszufinden, wie , um das zu verbreiten und zu verteilen, damit Sie sich nicht um all diese Details kümmern müssen, bis es nicht funktioniert. Offensichtlich müssen
Sie möglicherweise einige Probleme beheben, um herauszufinden, ob Sie genügend Ressourcen für den vorliegenden Vorgang
zur Verfügung haben. Aber theoretisch ist
es alles nur Magie. Jetzt. Was ist die große Sache an Spark? Ich meine, es gibt ähnliche Technologien wie Map Reduce, die es schon länger gibt. Smart ist
jedoch schnell, jedoch schnell, und auf der Website behaupten sie, dass Funken bis zu 100-mal schneller ist als Kartenreduzierung, wenn ein Job im Speicher
ausgeführt wird, oder 10-mal schneller auf der Festplatte. Natürlich sind
die Schlüsselwörter hier bis zu Ihrer Kilometerleistung können variieren. Ich glaube nicht, dass ich jemals gesehen habe, dass etwas tatsächlich so viel schneller läuft als das produziert seit, ähm, gut gestaltete Karte hübties co. Kann eigentlich immer noch ziemlich effizient sein. Aber ich werde sagen, dass Spark viele gemeinsame Operationen einfacher macht. Wissen Sie, Karte reduzieren zwingt Sie, die Dinge wirklich in Mapper und Reduzierer zu zerlegen. Wo es ausgelöst hat, ist ein wenig höheres Level, so dass Sie nicht immer so viel nachdenken müssen, um das Richtige mit Spark zu tun. Und ein Teil davon führt zu einem anderen Grund, warum Funken Markt so schnell. Es hat einen Dag-Ingenieur gerichtet einen Radfahrer-Schrott. Das ist schwer zu sagen. Ein gerichteter zyklischer Graph. Sagen Sie das 10 Mal schnell. Und obwohl das ein anderes schickes Wort
ist, was bedeutet es? Was es bedeutet, ist, dass die Art und Weise Spark funktioniert ist, dass Sie ein Skript schreiben, das beschreibt, Ihre Daten
verarbeiten und Sie möglicherweise auf RTD haben. Das ist im Grunde wie ein Datenrahmen, und Sie könnten eine Art Transformation darauf durchführen oder irgendeine Art von Aktion darauf. Aber nichts passiert tatsächlich, bis Sie diese Daten tatsächlich in Aktion ausführen. Was also an diesem Punkt passiert, ist Funke wird OK sagen, also ist dies das Endergebnis, das Sie auf diesen Daten wollen. Was sind all die anderen Dinge, die ich tun musste, um bis zu diesem Punkt zu kommen, und was ist der optimale Weg Zehe? Legen Sie die Strategie fest, um zu diesem Punkt zu kommen. Unter der Haube wird es also den besten Weg finden, diese Verarbeitung aufzuteilen und diese Informationen zu
verteilen, um das Endergebnis zu erhalten, das Sie suchen. Die Schlüsseleinsicht hier ist also, dass Funken wartet, bis Sie ihm sagen, dass er tatsächlich ein Ergebnis produzieren . Und erst an diesem Punkt geht es tatsächlich um herauszufinden, wie man dieses Ergebnis produziert. Also ist es irgendwie, Ah, cooles Konzept da, und das ist der Schlüssel zu einer Menge seiner Effizienz. Intelligente, sehr heiße Technologie, relativ jung. So ist es immer noch sehr stark auftauchend und verändert sich schnell. Aber viele große Leute benutzen es. So
wird Amazon zum Beispiel behauptet, zum Beispiel behauptet,dass sie bei eBay, NASA Jet Propulsion Laboratories Gruppe auf Reiseberater Yahoo und vielen, vielen anderen verwenden. Ich bin mir sicher, dass es eine Menge benutzt, die es nicht verwirrt. Aber wenn Sie hier zur Spark Apache Wiki-Seite gehen, ist
das eigentlich eine Liste, die Sie nach bekannten großen Unternehmen suchen können, die Funken verwenden, um
reale Datenprobleme zu lösen . Also, wenn du dir Sorgen machst, dass du hier in die blutende Kante kommst. Fürchte dich nicht. Sie sind in sehr guter Gesellschaft mit einigen sehr großen Leuten, die Funken in der Produktion
verwenden echte Probleme zu lösen, und es ist ziemlich stabile Sachen an dieser Stelle. Es ist auch nicht so schwer. Sie haben Ihre Wahl, in Python,
Java oder Scalia zu programmieren , und sie basieren alle auf dem gleichen Konzept, das ich gerade beschrieben habe. Die widerstandsfähig zu verteilten Daten RTD kurz, und wir werden darüber in den kommenden Vorträgen viel detaillierter sprechen. Spark hat tatsächlich viele verschiedene Komponenten, die aufgebaut ist, also gibt es einen Funkenkern , mit dem Sie viel tun können. Wissen Sie, Sie können so ziemlich alles tun, was Sie sich nur mit Funkenkernfunktionen allein erträumen können. Ich meine, ich habe einen Kurs, in dem ich ein ganzes Empfehlungssystem mache, nur mit Funken oder aber es
gibt diese anderen Dinge, die auf Funken gebaut sind, die auch nützlich sind. Zum Beispiel ist
Spark Streaming eine Bibliothek, mit der Sie Daten tatsächlich in Echtzeit verarbeiten
können, damit Daten in einen Server fließen können, sagen wir
kontinuierlich von Weblogs, und Spark-Streaming kann Ihnen helfen, diese Daten in Echtzeit, wie Sie für immer Sparks gleich gehen, können Sie Daten als Fortsetzungsdatenbank behandeln und tatsächlich Nachfolge-Abfragen darauf ausgeben. Was ist irgendwie cool, wenn Sie mit Fortsetzung vertraut sind bereits Ml Live ist, wo wir uns auf in diesem Abschnitt konzentrieren
werden. Das ist eigentlich eine Bibliothek für maschinelles Lernen, mit der Sie gängige Algorithmen für
maschinelles Lernen mit Funken unter der Haube durchführen können , um diese Verarbeitung tatsächlich
über einen Cluster zu verteilen , damit Sie maschinelles Lernen auf viel größeren Datensätzen durchführen können. als du sonst
hättest. Und schließlich, Grafik. Das ist nicht dafür, Sie kennenzulernen, hübsche Diagramme und Grafiken, die sich auf Graphen im,
Sie wissen schon,
Netzwerktheorie-Sinn beziehen Sie wissen schon, . Denken Sie zum Beispiel an ein soziales Netzwerk . Das ist ein Beispiel für einen Graphen. Und Grafik hat nur ein paar Funktionen, die dazu führten, die Eigenschaften eines Diagramms von
Informationen zu analysieren . Jetzt bekomme ich etwas Flak, manchmal über die Verwendung von Python, wenn ich Leuten über Apache Spark unterrichte. Aber es gibt jetzt eine Methode für meinen Wahnsinn. Es ist wahr, dass viele Leute Kala verwenden, wenn sie Funkencode schreiben, weil das ist, was Funke in nativ entwickelt wird. Sie entstehen also ein wenig Overhead durch einen erzwungenen Funken, um Ihren
Python-Code in Scala zu übersetzen und dann am Ende des Tages in Java-Interpreter-Befehle zu übersetzen,
aber Pythons viel einfacher, Java-Interpreter-Befehle zu übersetzen, aber Pythons viel einfacher, und Sie müssen keine Dinge kompilieren. Verwalten von Abhängigkeiten ist viel einfacher, so dass Sie Ihre Zeit auf die Algorithmen und was Sie tun, und weniger auf
die Minutia konzentrieren können, um es tatsächlich in Ausführen und Kompilieren und all diesen Unsinn eingebaut zu bekommen. Außerdem hat
sich dieser Kurs bisher auf Python konzentriert, und es macht Sinn, das Gelernte weiter zu verwenden und mit Python zu bleiben. Während dieser Vorträge, Jedoch, Ich werde sagen, dass, wenn Sie einige Funken-Programmierung in der realen Welt zu tun, gibt es eine gute Chance, die Menschen mit Scalia. jedoch keine Sorgen darüber zu viel, denn in Pie in Spark Python und Jakobsmuschel-Code und einige sehen sehr ähnlich aus, weil es sich um das gleiche RTD-Konzept handelt. Die Syntax ist sehr leicht anders, aber es ist nicht so anders. Also wissen Sie, wenn Sie herausfinden können, wie Sie mit Python funken können, ist das
Lernen, wie man es in Scala benutzt,
wirklich nicht so groß ? Also schauen wir uns einige Beispiele an und tauchen ein. Das sind also die grundlegenden Konzepte von Spark selbst und warum es so eine große Sache ist und wie es so
mächtig ist , dass Sie maschinelle Lernalgorithmen auf sehr großen Datensätzen oder einem
Algorithmus ausführen können , wirklich? Lassen Sie uns also ein wenig mehr Details darüber sprechen, wie es das macht und den robusten verteilten Datenspeicher als nächstes.
72. Spark und der widerstandsfähige verteilte Datensatz (RDD): Lassen Sie uns ein wenig tiefer in die Funktionsweise von Spark eingehen. Wir werden über den widerstandsfähigen zu verteilten Datenspeicher sprechen, der als unser DDS bekannt ist. Es ist eine Art Kern, den Sie einmal Programmierung und Funken verwenden, und wir werden ein paar Code-Snippets haben, um zu versuchen, es real zu machen. Also schauen wir uns mal an. Also geben wir Ihnen hier einen Crashkurs in Apache Spark. Es gibt viel mehr Tiefe als das, was wir in den nächsten Vorträgen behandeln werden, aber ich werde Ihnen nur die Grundlagen geben. Sie müssen tatsächlich verstehen, was in diesen Beispielen vor sich geht und hoffentlich Sie
loslegen und in die richtige Richtung zeigen. Das grundlegendste Stück Funken wird also als widerstandsfähig gegenüber verteilten Datensätzen in
unserem
D. D.bezeichnet unserem
D. D. D. D. und dies wird das Objekt sein, das Sie verwenden, um tatsächlich zu laden und zu transformieren und die
Antworten zu erhalten , die Sie aus dem -Daten, die Sie verarbeiten möchten. Es ist also sehr wichtig, es zu verstehen, dass es für einen widerstandsfähigen,
verteilten Datensatz steht , also ist es ein Datensatz. Am Ende des Tages. Es ist nur eine Reihe von Zeilen von Informationen, die so ziemlich alles enthalten können. Aber der Schlüssel ist die sind in der ersten D, so ist es belastbar in diesem Funken. Stellen Sie sicher, dass, wenn Sie dies auf einem Cluster ausführen und einer dieser Cluster ausfällt, automatisch wiederhergestellt werden kann und
es erneut versuchen kann. Nun, da die Ausfallsicherheit nur so weit geht, erinnern Sie Sie daran, wenn Sie nicht über genügend Ressourcen verfügen , die für den Auftrag
verfügbar sind, den Sie ausführen möchten. Es wird immer noch scheitern, weißt
du, und du wirst auf mehr laufen müssen. Ressource ist es, und es gibt nur so viele Dinge, von denen sich erholen können. Ich meine, es gibt eine Grenze, wie oft es eine bestimmte Aufgabe wiederholen wird, aber es bemüht sich, sicherzustellen, dass
es angesichts eines instabilen oder instabilen Clusters oder eines instabilen Netzwerks Clusters oder eines instabilen Netzwerksimmer noch versuchen, sein Bestes, bis zur Fertigstellung durchlaufen. Und offensichtlich wird es verteilt. Der ganze Sinn der Verwendung von spark ist, dass Sie es für Big-Data-Probleme verwenden können, bei denen Sie die Verarbeitung
tatsächlich über die gesamte CPU und die Speicherkapazität eines Clusters von
Computern verteilen können, und das könnte horizontal verteilt werden. Suche nach war viele Computer. Wie Sie ein gegebenes Problem wollen. Je größer das Problem, desto mehr Computer Es gibt wirklich keine obere Grenze Zehe, was Sie tun können, jetzt
starten Sie immer Ihre Funken-Skripte, indem Sie ein Funkenkontextobjekt bekommen, und das ist das Objekt, das irgendwie den Mut von Funken verkörpert. Es ist, was Ihnen Ihre rgds geben wird, um auf zu verarbeiten. Es ist also, was die Objekte generiert, die Sie in Ihrer Verarbeitung verwenden. Wissen Sie, Sie denken nicht wirklich sehr an den Funkenkontext, wenn Sie tatsächlich
Funkenprogramme schreiben , aber es ist eine Art Substrat, das sie für Sie unter der Haube läuft. Wenn Sie interaktiv in der Spark Shell laufen, steht Ihnen bereits ein SC-Objekt zur Verfügung, das Sie zum Erstellen von RTGs usw. verwenden können. Aber in einem eigenständigen Skript müssen
Sie diesen Funkenkontext explizit erstellen, und Sie müssen auf die Parameter achten, die Sie verwenden, da Sie dem Spark-Kontext tatsächlich
mitteilen können , wie Sie möchten, dass dieser verteilt werden soll. Sollte ich jeden Kern nutzen, den ich zur Verfügung habe, sollte ich auf einem
Cluster laufen oder einfach allein auf meinem lokalen Computer stehen? Das ist, wo Sie eine Art der grundlegenden Einstellungen einrichten, wie funkeln funktioniert. Schauen wir uns also einige kleine Code-Snippets an, um RTGs tatsächlich zu erstellen, und ich denke, es wird ein wenig mehr Sinn machen. Also hier ist ein sehr einfaches Beispiel. Wenn ich nur eine RTD aus einer Ebene alten Python Liste machen möchte, kann
ich die Paralyzed Function und Spark aufrufen, und das wird eine Liste von Sachen in diesem Fall konvertieren, nur Nummern 1234 in ein RTD-Objekt namens taubs, so dass es das einfachste ist eine RDD nur aus zu
erstellen, sind hartcodierte Liste von Sachen und das konnte von
überall kommen . Es muss auch nicht hart codiert sein. Aber Sie wissen, dass diese Art den Zweck von Big Data besiegt, oder? Ich meine, wenn ich den gesamten Datensatz in den Speicher laden muss, bevor ich ein bereits d daraus erstellen kann , was ist der Sinn? So kann ich auch eine rdd aus einer Textdatei laden, und das könnte überall sein. In diesem Beispiel habe ich
vielleicht eine riesige Textdatei. Das ist, weißt
du, die gesamte Enzyklopädie oder so. Und ich lese das von meiner lokalen Festplatte in diesem Beispiel, aber das wird tatsächlich jede Zeile dieser Textdatei in eine eigene Zeile in einem r d d konvertieren So können
Sie sich vorstellen, dass RTD eine Datenbank von Rose ist, und in diesem Beispiel Es wird meine Textdatei in eine RTD laden, wo jede Zeile, jede Zeile eine Textzeile enthält, und ich kann dann diese RTD weiter verarbeiten, um zu analysieren oder, wissen
Sie, die Begrenzung er in diesen Daten zu
brechen. Aber da fange ich an. Denken Sie daran, als wir über E T l und E L t gesprochen haben. Dies ist
also ein gutes Beispiel dafür, wo Sie tatsächlich Rohdaten in ein System laden und die Transformation auf dem System selbst
durchführen, die Sie verwendet haben, um Ihre Daten abzufragen, damit Sie rohe Textdateien, die noch nicht alle verarbeitet wurden und die Macht von spark nutzen. Es transformiert diese in strukturiertere Daten. Es kann auch mit Dingen wie Bienenstöcken sprechen. Wenn Sie also,wissen
Sie,
ein vorhandenes High an Datenbank in Ihrem Unternehmen eingerichtet haben wissen
Sie, , können
Sie einen hohen Kontext erstellen, der auf Ihrem Funkenkontext basiert. Und wie cool ist das? Sie können tatsächlich eine RTD in diesem Fall namens Rose erstellen, die generiert wird, indem Sie tatsächlich eine Fortsetzungsanfrage in Ihrer Hive-Datenbank
ausführen. Das ist also ein Beispiel für die Erstellung einer RDD. Und es gibt mehr Möglichkeiten, RTGs zu erstellen. Sie können sie aus J.
D.
BC-Verbindungen erstellen D. . Also, im Grunde kann
jede Datenbank, die J DBC unterstützt, auch sprechen, funken und RGDs daraus erstellen lassen. Cassandra
H.-Basis . Die letzte Suche auch Dateien im Jason-Format. Sehen Sie SV-Format Sequenzdateien, Objektdateien und eine Reihe von anderen komprimierten Dateien wie Orc oder was haben Sie. Ich will nicht auf die Details all derer
eingehen, die du kannst, du weißt schon, du weißt schon,ein Buch holen und diese nachsehen, wenn du es brauchst. Aber der Punkt ist, es ist sehr einfach, ein bereits D aus Daten zu erstellen, wo immer es sein mag. Ob es sich um ein lokales Dateisystem oder einen verteilten Datenspeicher handelt, ist es
erneut darauf aufmerksam zu machen . Anscheinend lade ich aus einer lokalen Datei mit dem File Earl-System, aber ich könnte auch s drei verwenden. Und wenn ich möchte, dass eine Hostess es auf einem verteilten Amazon s drei Bucket oder H DFS ablegt, wenn ich auf Daten verweisen
möchte , die auf einem verteilten H DFS-Cluster gespeichert sind, das für Hadoop
verteiltes Dateisystem steht . Wenn Sie mit H DFS nicht vertraut sind, wenn Sie mit Big Data zu tun haben und mit einem Hadoop-Cluster arbeiten, werden Ihre Daten
normalerweise dort gespeichert. Also wieder, RTD nur eine Möglichkeit, sehr große Datenmengen zu laden und zu pflegen und
alles auf einmal zu verfolgen , aber konzeptionell innerhalb Ihres Skripts. Und RTD ist nur ein Objekt, das eine Reihe von Daten enthält. Und du musst über die Skala nachdenken, weil Spark das für dich tut. Jetzt gibt es zwei verschiedene Arten von Klassen von Dingen, die Sie auf unserem DDS tun können. Sobald Sie sie haben, können
Sie Transformationen durchführen, und Sie können Aktionen ausführen. Lassen Sie uns zuerst über Transformationen sprechen, also Transformationen sind genau das, wonach es sich anhört. Es ist eine Möglichkeit, eine rdd zu nehmen und jede Zeile in dieser RTD in einen neuen Wert zu transformieren, basierend auf einer Funktion, die Sie bereitstellen, so dass Karte und Flat Map diejenigen sind, die Sie am häufigsten sehen werden. Beide werden jede Funktion nehmen, die Sie träumen können, die seine Eingabe eine roven
RTD nehmen wird , und es wird eine transformierte Zeile ausgeben. So
können Sie
beispielsweise beispielsweise Roheingaben aus einer Siehe SV-Datei übernehmen und Sie sind Kartenoperation diese
Eingabe annehmen und sie in einzelne Felder aufteilen, die auf dem gemeinsamen Limiter basieren und eine Python-Liste
zurückgeben , zum Beispiel, dass diese Daten in einem strukturierteren Format, an dem Sie eine weitere Verarbeitung durchführen können. Und Sie können Kartenoperationen miteinander verketten, so dass die Ausgabe einer Karte am Ende eine
neue RTD erstellt , die Sie dann eine weitere Transformation durchführen und so weiter und so weiter und so weiter. Der Schlüssel besteht darin, diese Transformationen über den Cluster zu verteilen, so dass es
Teil Ihrer RTD sein könnte und sie auf einer Maschine und einem anderen Teil von Ihnen transformiert, um sich bereits auf einem anderen zu
transformieren. Wie ich schon sagte, Karte und flache Karte sind die häufigste Transformation zu sehen. Der einzige Unterschied besteht darin, dass sie sich dadurch unterscheiden, dass Sie nur einen Wert
für jede Zeile ausgeben können , in der er flach ist. Map lässt die tatsächliche Ausgabe mehrere neue Rose für eine gegebene Rose, so dass Sie tatsächlich eine größere RTD oder eine kleinere RTD erstellen können, als Sie mit der Verwendung von flacher
Karte begonnen haben . Außerdem kann
Filter verwendet werden, wenn das, was Sie tun möchten, nur eine boolesche Funktion erstellen, die besagt, sollte dieser Roby beibehalten werden oder nicht? Ja oder nein? Und es gab auch einige weniger häufig verwendete Transformationen, wie Distinct, die nur wieder zu stinkenden Werten innerhalb Ihrer RTD-Probe zurückkehren, die Sie eine zufällige
Stichprobe daraus nehmen . Und dann können Sie Kreuzungsoperationen wie Einheit Ein Schnittpunkt durchführen, jede kartesische Kombination, die innerhalb einer RTD existiert,
subtrahieren oder sogar erzeugen. Hier ist ein kleines Beispiel dafür, wie es funktionieren könnte. Nehmen wir also an, ich habe eine RDD nur aus der Liste erstellt. 1234 Ich kann dann RTD-Punktkarte mit einer Lambda-Funktion von X aufrufen, die in jeder Zeile jeden
Wert dieser RTD annimmt , ruft es X auf, und dann gilt es für die Funktion. X mal x zwei Quadrat es Also die Ausgabe von diesem, wenn ich dann sammeln würde die Ausgabe dieser RTD wäre 149 und sechs, weil es jeden einzelnen Eintrag nehmen würde, dass RTD und Quadrat es und setzen, dass in eine neue FTE. Okay, macht jetzt Sinn, wenn Sie sich nicht erinnern, was Lambda-Funktionen sind. Wir haben in diesem Kurs etwas früher darüber gesprochen, aber als Auffrischung ist
die Lambda-Funktion nur eine Kürzel, um eine Funktion in Zeile zu definieren. Also Lambda X Colon X Times X ist genau das gleiche wie die Definition einer separaten Funktion, die wir genannt Square It, die X Times X zurückgibt und sagt, dass rdd dot map quadrat es. Es ist also nur eine kurze Hand für sehr einfache Funktionen, die Sie übergeben möchten. Es ist eine Transformation eliminiert die Notwendigkeit, dies tatsächlich als eigene benannte
Funktion zu deklarieren . Und du weißt, dass das die ganze Funktion von Ah ist, das ist die ganze Idee der funktionalen Programmierung. Sie könnten also sagen, dass Sie jetzt die funktionale Programmierung verstehen, übrigens. Aber wirklich, es ist nur eine Kurzschrift, um eine Funktion in der Linie als Teil der Parameter für eine
Kartenfunktion oder eine Transformation zu definieren , für diese Angelegenheit. Sie können auch Aktionen in RTD ausführen Wenn Sie
also tatsächlich Ergebnisse erhalten möchten, können
Sie sammeln auf einer R D D aufrufen und das gibt Ihnen ein einfaches altes Python-Objekt zurück, das Sie können, dann wird es durcheinander und ausdrucken die Ergebnisse, oder speichern Sie sie in einer Datei oder was auch immer Sie tun möchten. Sie können auch Count aufrufen, wodurch es gezwungen wird, tatsächlich zu zählen. Wie viele Einträge? Aaron, die FTE an diesem Punkt, zählt nach Wert wird Ihnen eine Aufschlüsselung geben, wie oft jeder einzelne Wert innerhalb, bereits auftritt. Und Sie können auch von den Arditti mit take, die Sie wissen,
einige zufällige Anzahl von Einträgen aus der Arktis an Ihre Spitze nehmen , die Ihnen die ersten paar Einträge in, dass bereits geben wird. Wenn Sie nur einen kleinen Einblick in das bekommen möchten, was für Debugging-Zwecke drin ist, wird
die leistungsfähigere Aktion reduziert, und das ermöglicht Ihnen tatsächlich, Werte für den gleichen gemeinsamen Schlüsselwert zu kombinieren. So können Sie RTGs auch im Kontext von Schlüsselwertdaten verwenden, und mit der reduzierten Funktion können Sie eine Möglichkeit definieren, alle Werte für
einen bestimmten Schlüssel zu kombinieren . So sehr ähnlich und Geist eine Karte produzieren. Sie also reduzieren reduzieren, wissen
Sie im Grunde die analoge Operation zu einem Reducer und Map Reducer und Map ist
analog zu Mappern , so dass es oft sehr einfach ist, eine Karte tatsächlich zu nehmen, Job zu
reduzieren und mit diesen Funktionen in Funken umgewandelt. Denken Sie auch daran, dass nichts in Funken passiert, bis Sie eine Aktion aufrufen. Wenn Sie also eine dieser Aktionsmethoden aufrufen
, erlischt Spark und macht seine Magie mit gerichteten zyklischen Graphen und
berechnet tatsächlich den optimalen Weg, um die gewünschte Antwort zu erhalten. Aber denken Sie daran, dass
nichts wirklich passiert, bis diese Aktion passiert. Das kann Sie manchmal beim Schreiben von Sparks-Skripten auslösen, da Sie möglicherweise
eine kleine Druckanweisung darin haben und Sie vielleicht erwarten, dass Sie dort eine Antwort erhalten, aber sie erscheint erst dann, wenn die Aktion tatsächlich ausgeführt wird. Also lasst uns in einige gehen. Lassen Sie uns ein wenig mehr über Ml lib als nächstes sprechen, und um mehr Details darüber zu erfahren, wie das konzeptionell funktioniert, also das ist Funken eins, eins in Kürze. Das sind die Grundlagen, die Sie für die Funkenprogrammierung benötigen. Grundsätzlich, was ist ein rdd und eines der Dinge, die Sie mit einer RTD tun können und Sobald Sie diese Konzepte bekommen , die und Sie können einige Teile Funkencode schreiben. Als nächstes werden
wir über ML lib und einige spezifische Funktionen und Funke sprechen, mit denen Sie
maschinelles Lernen Algorithmen mit Spark durchführen können .
73. MLLib präsentieren: Also, zum Glück, müssen
Sie Dinge nicht auf die harte Art und Weise tun und Funken, wenn Sie maschinelles Lernen machen. Es verfügt über eine eingebaute Komponente namens ml lib, die auf dem Funkenkern lebt, und dies macht es sehr einfach, komplexe maschinelle Lernalgorithmen mit massiven
Datensätzen durchzuführen und diese Verarbeitung über einen ganzen Cluster von Computern zu verteilen. So sehr aufregendes Zeug. Lassen Sie uns mehr darüber erfahren, was es tun kann. Noch eine Sache, die ich abdecken muss, bevor wir anfangen, in einen echten Code einzutauchen. Und an diesem Punkt ist
Dinge wie viel mehr Sinn ml ebb,
und das ist eine Komponente, die auf Funken für maschinelles Lernen,
der maschinellen Lernbibliothek, aufbaut . Das ist also offensichtlich sehr relevant für diesen Kurs. Also, wo einige der Dinge, die ml lib gut tun kann, ist
eine Feature-Extraktion, also eine Sache, die es im Maßstab tun kann, ist Termfrequenz und inverse Dokumentfrequenzen Zeug, und das ist nützlich für die Erstellung, zum Beispiel Suchindizes. Und wir werden ein Beispiel dafür in ein paar Vorlesungen von jetzt an durchgehen. Der Schlüssel ist also wieder, dass es dies im gesamten Cluster mit massiven Datensätzen tun kann, damit Sie wissen, Sie Ihre eigene Suchmaschine für das Web mit diesem potenziell erstellen können, es bietet auch, Sie wissen, Ihre grundlegende Statistiken Funktionen Chai Square Tests, Pearson oder Spearman, Korrelation und einige einfachere Dinge wie Männer und Max, Mittelwert und Varianz dieser Luft schrecklich aufregend in und für sich selbst. Aber was aufregend ist, ist, dass Sie tatsächlich die Varianten oder den Mittelwert oder
was auch immer
oder den Korrelationswert über einen massiven Datensatz berechnen was auch immer und diese Daten in verschiedene Blöcke
aufteilen können, die über einen gesamten Cluster laufen der notwendigen. Also, selbst wenn einige dieser Operationen nicht furchtbar sexy sind, was sexy daran ist, ist eine Skala, in der es operieren kann. Es kann auch Dinge wie lineare Regression und logistische Regression unterstützen. Wenn Sie also eine Funktion an einen massiven Satz von Daten anpassen und diese für Vorhersagen verwenden müssen, können
Sie das auch tun. Es unterstützt auch Unterstützung Vektor-Maschine, Also sind wir in einige der mehr ah Phantasie Algorithmen hier bekommen. Einige der fortgeschritteneren Dinge darin, dass zwei bis zu massiven Datensätzen mit Funken skalieren können , ein l lib. Es gab einen naiven Bayes-Klassifikator, der in Emma Lippen gebaut wurde. Erinnerst du dich an den Spam-Klassifikator, den wir vor ein paar Vorträgen erstellt haben? Sie könnten das tatsächlich für ein ganzes E-Mail-System mit Funken tun und skalieren, dass so weit wie Sie wollen, um Entscheidungsbäume, eine meiner Lieblingsdinge im maschinellen Lernen, die auch von Funke in Willen tatsächlich unterstützt
wird haben ein Beispiel dafür später. In diesem Kurs bedeutet
K Clustering. Führen Sie ein Beispiel dafür später im Kurs aus,
und Sie können Clustering durchführen. Führen Sie ein Beispiel dafür später im Kurs aus, Mit K bedeutet die Verwendung von massiven Datensätzen mit Funken eine ML lib, sogar Hauptkomponente Out-Analyse und S VD. Wir können das auch mit Funken machen, und wir werden
auch ein Beispiel dafür haben . Und schließlich gibt es einen eingebauten Empfehlungsalgorithmus namens abwechselnd kleinste Quadrate, der
in NL lib integriert ist . Persönlich hatte
ich irgendwie gemischte Ergebnisse damit. Weißt du, es ist ein bisschen zu viel von einer Blackbox für meinen Geschmack, aber ich bin irgendwie ein empfehlen ihr System Snob. Also nimm das mit einem Körnchen Salz. Die Verwendung von ML Live ist normalerweise ziemlich unkompliziert. Wissen Sie, es gibt nur einige Bibliotheksfunktionen, die Sie aufrufen müssen. Es führt
jedoch ein paar neue Datentypen ein,
die Sie wissen müssen, dass man ein Vektor und ein Beispiel für einen Vektor ist. Erinnerst du dich, als wir Film-Ähnlichkeiten und Filmempfehlungen gemacht haben? beispielsweise Ein Vektor könntebeispielsweiseeine Liste aller Filme bei einem bestimmten Benutzer sein, die in Ordnung bewertet wurden, und die Differenz zwischen einem spärlichen Faktor in einem dichten Vektor. Nehmen wir an, wir haben uns daran erinnert, dass viele,
viele Filme auf der Welt
gibt , und ein dichter Vektor würde tatsächlich Daten für jeden einzelnen Film darstellen, den dieser Benutzer angesehen hat,
unabhängig davon, ob er tatsächlich beobachtete die So, zum Beispiel, sagen
wir, ich habe einen Benutzer, der Toy Story beobachten. Offensichtlich würde
ich ihre Bewertung für Toy Story speichern, aber wenn sie nicht den Film Star Wars sehen, würde
ich tatsächlich die Tatsache speichern, dass es keine Nummer. Du weißt, dass es keinen Wert gibt. Es fehlen dort Daten für Star Wars, so dass wir am Ende Platz für all diese fehlenden Datenpunkte mit einem dichten Vektor,
einem spärlichen Faktor, einnehmen . Onley speichert die Daten, die vorhanden sind,
so dass es keinen Speicherplatz auf fehlende Daten verschwendet. OK, also ist es eine kompaktere Form, einen Vektor intern darzustellen, aber offensichtlich
führt das zu einer gewissen Komplexität während der Verarbeitung. Es ist also eine gute Möglichkeit, Speicher zu sparen, wenn Sie wissen, dass Ihre Vektoren viele
fehlende Daten in ihnen haben werden . Es gibt auch einen beschrifteten Punktdatentyp, der angezeigt wird. Und genau so klingt es,
ein Punkt, der eine Art Etikett mit ihm verbunden ist, das die Bedeutung dieser
Daten in menschlich lesbaren Begriffen vermittelt . Und es gibt einen Rating-Datentyp, den Sie treffen werden, wenn Sie Empfehlungen mit
ML-Lippe verwenden . So wissen Sie, dass tatsächlich in einer Bewertung, die eine 1 bis 5 oder 1 bis 10 darstellt, was Sterne lesen eine Person haben könnte, und verwenden, um Produktempfehlungen
automatisch zu informieren . Also denke ich, du hast endlich alles, was du brauchst, um hier anzufangen. Lassen Sie uns eintauchen und tatsächlich einen riel ml lib Code betrachten und ihn ausführen. Und dann wird es viel mehr Sinn machen. Das ist ml lib macht es sehr einfach, komplizierte maschinelle Lernalgorithmen
möglicherweise auf sehr großen Datensätzen durchzuführen und diese Verarbeitung über einen gesamten Cluster zu verteilen . Wie ich bereits sagte, Funken ist immer noch jung und es wächst jeden Tag, Also erwarte ich, dass diese Fähigkeiten im Laufe der Zeit weiter expandieren und weiterentwickeln. Cooles Zeug. Lass uns wirklich Ah
bekommen, unsere Hände schmutzig machen und auf den Mellow-Code schreiben und tatsächlich ein echtes
maschinelles Lernen mit Funken als nächstes machen .
74. Entscheidungsbäume in Spark: Also lassen Sie uns das real machen. Schauen wir uns einen tatsächlichen Funkencode an, um einen Entscheidungsbaum mit ML live zu machen, der
tatsächlich auf einen Cluster skaliert werden kann , wenn Sie möchten. Es ist eigentlich ziemlich einfach. Werfen wir einen Blick. Also lasst uns mit Funken ein ml lib herumspielen. Öffnen Sie Ihre Anaconda Prompter Ihr Terminal abhängig von Ihrem Betriebssystem. Und übrigens, wenn Sie das taten, installieren Sie
einfach einen Funken. Denken Sie daran, wir einige Umgebungsvariablen festlegen, so dass Sie Ihre Anaconda-Eingabeaufforderung schließen und erneut öffnen müssen, wenn Sie bereits eine geöffnet haben, um diese
aufzunehmen. In Ordnung, also lassen Sie uns die in unseren Kursmaterialien Ordner sehen, wie wir es immer tun. Und hier drin gibt es ein paar Python -Skripte, die wir mit spark verwenden können. Nun, anders als zuvor, können
wir das in einem Notizbuch ausführen. Eso waren anstatt einfach zu verwenden, was auch immer ein Texteditor, wir müssen uns diese Dateien ansehen und irgendwie durchgehen, was sie tun. Wir können auch Spider verwenden Das ist der Python Editor, der mit Anaconda kommt. Also gehen Sie einfach voran und tippen Sie Spinne mit warum und wir für das zu kommen und hier sind wir. Gehen Sie also voran, drücken Sie das Symbol „Öffnen“ und navigieren Sie zu Ihrem Kursmaterial CNL-Kurs. Und wir wollen das Skript Funken Entscheidungsbaum Punkt p y Alles klar, Also lasst uns durch das gehen, was hier vor sich geht? Sollen wir? Nun, wieder, wir verwenden diesmal kein Auge Python-Notizbuch. Wir verwenden eigentlich nur ein eigenständiges Python-Skript. Daher ist die dot p y Erweiterung anstelle von i p y N b. Es ist tatsächlich möglich, Funkencode innerhalb eines Notebooks auszuführen, aber es beinhaltet noch mehr Einrichtungsschritte. Und ich denke, wir haben genug davon getan, nur für ein paar Funkenbeispiele hier. Also lassen Sie uns das einfach als eigenständiges Skript in der realen Welt behalten. Die Art und Weise, wie Sie dies auf einem Cluster ausführen werden, ist in der Regel. Sie kopieren das Skript in die Master-Notiz dieses Clusters, und es gibt ein Skript namens Spark Dash Submit, das mit Spark geliefert wird, dass es tatsächlich dieses Skript interpretiert und es im Rest des
Clusters für Sie zerstört . Also, das ist wirklich die Art, wie Sie es in der realen Welt tun wollen sowieso, Sie Es ist möglich, es mit einem Notebook zu starten, aber es ist nur ein bisschen mehr Ärger, als ich gerade mit tun will. Wie auch immer, lassen Sie uns durch, was dieses Skript tut. Es ist einfach genug eso. Das ist vielleicht neu für dich, also werde ich das alles ein bisschen langsam durchmachen. Wir beginnen damit, alle Pakete zu importieren, die wir brauchen, natürlich, und wir brauchen ein paar Sachen von M l live. Offensichtlich, wenn wir M l Love Code machen wollen, brauchen
wir einen etwas namens Labeled Point und den Entscheidungsbaum selbst von Emma Live, von dem wir
beide vorhin gesprochen haben. Und so ziemlich jedes Spark-Skript wird auch den Funkenkonferenz-Park-Kontext importieren . Wir gehen auch zu wichtigen Array von num pie, die es erlaubt, taub pie Rennen zu verwenden, wie wir unsere Daten manipulieren und es hier vorbereiten. Nun, denken Sie daran, dass Funke nicht auf magische Weise alles aus keiner Kuchen und Psych es lernen, eine verteilbare und gelähmt über einen Cluster. Wenn Sie Taub Scheiterhaufen,
psychische Lernfunktionen innerhalb dieses Skripts aufrufen , wird es es nur innerhalb des spezifischen Wissens ausführen, dass dies ausgeführt
wird, damit es diese Arbeit nicht automatisch für Sie über Ihren Cluster verteilen wird. Sie müssen die tatsächlichen Funktionen in ml live verwenden, damit dies geschieht. Also bedenken Sie das. Ja, Sie können immer noch taub Kuchen verwenden. Es ist, als würde es hier lernen, aber diese Methoden werden nicht verteilt werden. Wenn Sie verteiltes maschinelles Lernen wollen, müssen
Sie bei dem bleiben, was in em ist. Ich lebe. In Ordnung. Um also ein Funken-Skript für uns zu starten, müssen
wir einen Funkenkontext einrichten, der
die Umgebung ist, in der wir Funke laufen. Und das kümmert sich im Grunde um all die niggly Details, wie man dieses
Zeug tatsächlich verteilt und wie man die Reihenfolge organisiert, in der die Dinge wieder
zusammen über den Cluster laufen . Die Schönheit des Funkens ist, dass es all das Denken für Sie tut. Das musst du dir keine Sorgen machen. Ein Teil davon hat einen Funkenkontext eingerichtet. Allerdings benötigen
wir zuerst ein Konfigurationsobjekt. Und was hier los ist, ist, dass wir das neue Funken-con-Objektsatz Master local senden
, bedeutet , dass wir es nur auf unserem lokalen PC für dieses Beispiel ausführen, weil ich keinen Cluster handlich
habe. Wenn Sie auf einem echten Cluster laufen würden, würden
Sie das in etwas anderes ändern. Und wir werden auch einen Anwendungsnamen festlegen, so dass, wenn Sie dies und die
Spark-Konsole anzeigen , wenn wir eine laufen, würden Sie sehen, dass es sich um diesen Namen handelt. Damit richten
wir unseren Funkenkontext ein und wir werden diese Funktionen für jetzt überspringen, wir werden zu ihnen zurückkommen und wenn wir sie tatsächlich aufrufen und wenn wir unter diese
Funktionen gehen , fangen
Sie an, zu den tatsächlichen Zeilen zu gelangen von Code, der tatsächlich hier ausgeführt wird. Also beginnen wir damit, unsere Rohdaten aus der Vergangenheit zu laden. Höhere Start-CSP-Datei. Das haben wir früher in unserem Entscheidungsbaum-Beispiel gesehen. Gehen wir weiter und öffnen Sie das, um uns zu erfrischen, wie es aussieht. Also, wenn Sie zwei Kursmaterialien sind, sollten
wir es hier finden, vorbei Reifen bei CSB. Lassen Sie uns das öffnen und das wird sich in Excel für mich öffnen. Es wird also alles wie eine hübsche Tabelle aussehen lassen, obwohl es nur eine durch Komma getrennte Wertdatei ist. Also wieder, wir haben unsere Struktur. Hier ist die erste Zeile ist die Überschriften für die tatsächlichen Spalten hier. Unsere erste Reihe sagt uns, was diese Spalten bedeuten. Jahrelange Erfahrung, egal ob sie angestellt sind oder nicht. Frühere Zahl der Arbeitgeber, Bildungsniveau. So weiter und so weiter. Und nach wie vor haben
wir hier viele Daten, die in numerische Daten umgewandelt werden müssen. Genau wie jeder Algorithmus für maschinelles Lernen. Es geht besser mit Zahlen und Buchstaben. Also müssen wir diese Weisen und Enden in Einsen und Nullen verwandeln. Und diese Bs Ph. D. und M s Bildungsniveaus müssen in ein neues Wunder umgewandelt werden. Orginale Daten stattdessen. Damit haben wir es hier zu tun. Gehen wir zurück zu unserem Drehbuch. Alles klar, das erste, was wir tun müssen, ist, diesen Hetero abzustreifen, denn das sind eigentlich keine nützlichen Informationen für die Algorithmen. Richtig. zu tun, der Trick, den wir tun, das. Wir sagen, Kopf r entspricht Rohdaten Punkt zuerst. Also, was passiert ist, wenn wir es s C Punkt Textdatei nennen. Ist es jede einzelne Zeile davon geladen? Siehe SV-Datei in eine rdd namens raw data. Okay, jetzt haben wir eine bereits genannte Rohdaten, die nur die rohen,
kommagetrennten Strings jeder Zeile dieser Daten enthält . Was wir hier tun, ist das Extrahieren der ersten Zeile dieser Daten, die unser Hetero sein wird, der nur die Namen der Spalten enthält. Und dann können wir die Filterfunktion auf unseren Rohdaten schon d mit einer Lambda-Funktion
wieder aufrufen . Dies ist eine In-Line-Funktion. Grundsätzlich
heißt das, solange die gegebene Straße nicht gleich ist, wird
der Hetero sie bewahren. Indem wir dies tun, erstellen
wir im Grunde eine Kopie von Rohdaten, die tatsächlich diesen ersten Hetero herausfiltert. Und wir sagen, dass in eine neue Rohdaten. Also im Grunde haben
wir eine Rohdaten bereits an diesem Punkt, wo das erste hatte eine Zeile herausgefiltert wurde. Nun, dies ist eine gute Zeit wie jeder andere zu erwähnen, dass es im modernen Spark-Code etwas
gibt, das als Datensatz anstelle eines RDD bezeichnet wird, und das tendenziell häufiger verwendet wird, da es eine etwas bessere Leistung hat in einigen Fällen, na ja, es hat eine viel bessere Leistung in irgendeinem Fall Es hängt davon ab. Wie benutzen Sie es? Und es ermöglicht Ihnen auch, Sequel gegen die Daten direkt an Ort und Stelle auszuführen. Aufgrund dieser Bequemlichkeiten migrieren die
Leute mawr zur Verwendung von Datensätzen anstelle von bereits DS. Es ist im Grunde eine höhere Struktur, aber in diesem Fall macht
es keinen großen Unterschied. So können wir unsere DDS ml liberale Arbeit grundsätzlich auf die gleiche Weise damit verwenden. Ähm, also werden wir vorerst bei RTGs bleiben. Es Meine Art, es zu betrachten, ist, wenn Sie eine einfache Lösung und eine kompliziertere Lösung haben und es keinen großen
Leistungsunterschied gibt , halten Sie sich an die einfache Lösung. Also werde ich hier bei Rgds bleiben. Aber nur damit du es weißt, wenn du heute mit Leuten über Funken sprichst, werden
sie wahrscheinlich mit Datensätzen oder Datenrahmen anstelle von RGDs arbeiten. gleiche allgemeine Konzept hat nur mehr Funktionalität. Alles klar, jetzt müssen wir unsere kommagetrennten Werte in tatsächliche Felder aufteilen. Und um das zu tun, werden
wir eine Kartenfunktion aufrufen und wir werden
hier nur wieder eine kleine Lambda-Funktion aufrufen,
die Split in hier nur wieder eine kleine Lambda-Funktion aufrufen, der eigentlichen Zeile mit dem Komma aufruft, das jede Zeile von Daten nimmt und sie
aufteilt basierend auf den Kommentaren in einzelne Felder in der Liste. Wir haben also eine neue FTE namens Siehe SV Data, wo wir diese Daten tatsächlich etwas strukturiert haben. Wir haben tatsächlich die Kommas anstelle von nur einem Wert, der ein großes Komma,
getrennte Liste von Sachen enthält, herausgenommen. Wir haben eine Straße, die einzelne Felder enthält, die interessiert waren. Jetzt müssen wir diese Felder tatsächlich in das konvertieren, was wir wollen, also rufen wir eine Karte mit einer tatsächlichen Funktion an dieser Stelle namens Create Labeled Points. Lassen Sie uns also zu dieser Funktion gehen und sehen, was sie tut. Ordnung, InOrdnung,
So erstellen Sie Labelpunkte nimmt eine Liste von Feldern, die aus RCs V-Daten kamen, nachdem basierend auf den Kommentaren
getrennt wurden, und es wandelt sie in das Format um, das wir tatsächlich brauchen, um unseren Entscheidungsbaum zu trainieren. Das erste, was wir tun, ist die Umwandlung der ersten Felder, die drei Jahre Erfahrung in eine ganze Zahl darstellt. Anstelle einer Zeichenfolge werden
wir das angewendete Feld nehmen und unsere binäre Funktion darauf aufrufen, so dass Felder man ein Gefühl sein wird, das entweder den späteren Buchstaben Warum enthält oder das Ende rechts kommuniziert, wo sie nicht sind. Sie sind momentan beschäftigt. Die binäre Funktion sagt nur, Wenn es eine Lüge ist, geben Sie eine andere zurück. Gibt Null zurück. Diese Funktion wird also jedes Mal in jeder Zeile aufgerufen, um das zu konvertieren. Warum, zu einem Eins oder einem Ende einer Null? Aber Fall denken Sie daran, maschinelles Lernen will im Allgemeinen Zahlen, keine Strings oder Buchstaben. Wann immer möglich, werden
wir die vorherige Anzahl von Arbeitgebern in eine ganze Zahl aus einer Zeichenfolge der
Bildungsstufe konvertieren . Wir werden diese Karte Bildungsfunktion auf diesem Feld nennen und die nur B S,
M s und PH umwandelt . D auf die orginalen Werte 12 und drei. Und wir werden einfach die binäre Funktion wieder aufrufen, um mit weise zu unterhalten und endet, ob sie von einer obersten Schule kamen, wo sie ein früheres Praktikum hatten und die endgültigen
Labeldaten , ob sie angestellt wurden oder nicht von weise und endet zwei Nullen und Einsen. Und wie Sie sich vielleicht erinnern, möchte
Ml Lib beschriftete Punkte als Eingabe. Wir werden also eine beschriftete Punktstruktur zurückgeben, die mit Label enthält, das ist das höhere Feld, gefolgt von allen Feature-Daten, die ein Array sein wird, das die jahrelange Erfahrung enthält, wo sie nicht sind, sie werden verwendet früheren Arbeitgebern, so weiter und so weiter. Der Beschriftungspunkt enthält also
das Etikett, das ist die Sache, die wir zu entdecken versuchen, ob sie eingestellt werden sollten oder nicht, und dann die Funktionen, die alle verschiedenen Merkmale jeder Person sind, die beeinflussen können, ob oder nicht würden sie angeheuert werden oder nicht. Ordnung, also an diesem Punkt, wenn Sie wieder hinuntergehen, wo dies genannt wurde, haben
wir eine neue RTD namens Trainingsdaten, die alle unsere Handelsdaten enthält, in numerische Daten umgewandelt und letztendlich in beschriftet Punkte, was NL es erwartet. So genial. Jetzt können wir anfangen, mit ml lib zu spielen. Lassen Sie uns also eine Reihe von Testkandidaten erstellen, um dies tatsächlich auszuprobieren, und dieses Beispiel wird nur eine Person hier einrichten. Wir werden also ein Array einrichten, das Informationen enthält, die 10 Jahre Erfahrung in der
Vergangenheit darstellen . Sie sind derzeit beschäftigt. Sie hatten drei frühere Arbeitgeber, die derzeit einen B s Abschluss haben. Sie sind nicht von einer hochstufigen Schule und haben kein Praktikum gemacht. Okay, also haben wir diesen gefälschten Testkandidaten eingerichtet, um zu sehen, ob wir tatsächlich eine
Vorhersage über diese neue Person machen können , die wir noch nicht gesehen haben. Sobald unser Entscheidungsbaum erstellt wurde, und dann nehmen wir diesen Testkandidaten und erstellen eine RDD daraus, so dass wir es tatsächlich
in Funken mit der gelähmten Funktion füttern können , die nur dieses Array von Testkandidaten konvertiert, die wirklich nur ein Kandidat in eine RTD namens Testdaten. Als nächstes werden
wir tatsächlich unsere Entscheidung treffen. Baumklassifikator wird es Modell nennen. Und wir können einfach Decision Tree aufrufen, der aus dem ml Lib-Bibliothek Zug Klassifikator kommt in unseren Trainingsdaten bereits D
vorbeigeht, die alle beschrifteten Trainingsdaten und eine
Reihe von Hyperparametern enthält . Hier. NUM-Klassen zeigt an, dass wir nur zwei Klassen haben, in denen wir versuchen, Leute zu sortieren ob sie eingestellt werden, ja oder nein. Das sind zwei verschiedene Klassen. Wir müssen auch in einem Array übergeben, um zu finden, welche von sind Merkmale Luft kategorisch in der Natur . Und dann können wir angeben, wie der eigentliche Entscheidungsbaum selbst mit welcher
Verunreinigungsfunktion,
seiner maximalen Tiefe und der maximalen Anzahl von Ben konstruiert Verunreinigungsfunktion, wird. In Ordnung. Sobald wir dieses Modell geschult haben, können
wir es tatsächlich nutzen, um Vorhersagen zu machen. Also werden wir das tun. Wir werden nur Modell Doc Predict nennen, angesichts unserer Testdaten RTD, die unseren Testkandidaten enthält, und wir werden die Ergebnisse davon ausdrucken. Wir werden nur das tatsächliche Ergebnis dieser Vorhersage ausdrucken. Und hier ist der wichtige Punkt hier. Also an diesem Punkt sagen
wir eigentlich, ich möchte Vorhersagen Punkt sammeln nennen. Ich möchte tatsächlich etwas von Spark zurückbekommen, das mir eine Antwort gibt. Erst zu diesem Punkt macht Funke tatsächlich etwas. Alles, was bis zu diesem Punkt passiert ist, ist, dass ein gerichteter zyklischer Graph aus all dem Zeug konstruiert wurde , das Funken tun muss, um dies zu erzeugen. Diese Antwort im großen Maßstab. Wenn ich einmal gesagt habe, dass ich ein Ergebnis möchte, möchte
ich eine Antwort. Es wird zurückgehen und
anweisen, wie, die optimale Art und Weise, alles zusammen zu setzen und die optimale Art, es zu verteilen . Wenn ich auf einem Cluster war und an diesem Punkt losgehen und anfangen, wegzuwirbeln und
eine Antwort für mich zu produzieren , so wird tatsächlich unsere ultimative höhere Vorhersage ausdrucken, und wir drucken auch das Modell selbst aus. Es gibt eine praktische String-Methode für das Entscheidungsbaum-Modell zu debuggen, mit der wir
irgendwie verstehen können , was innerhalb des Entscheidungsbaums vor sich geht und welche Entscheidungen es basierend auf welchen Kriterien trifft. Damit können
wir es jetzt noch einmal versuchen, mit Funken müssen wir das tatsächlich innerhalb der Funkenumgebung selbst ausführen. Ich kann das nicht einfach von Spider aus ausführen, zumindest nicht ohne ein paar zusätzliche Einrichtungsschritte zu machen. Also lassen Sie uns eine Spinne schließen oder zumindest minimieren dies vorerst. Und wenn wir zurück zu unserer Anaconda Prompt gehen, ist
es tatsächlich ein neues eröffnet, was? Zurück zu Anaconda Anaconda. Eingabeaufforderung. Dies wird sicherstellen, dass, wo wir Anacondas Python-Umgebung zur Verfügung haben,
wieder auf unsere Kursmaterialien CD. Und jetzt, was wir tun können, ist das Eingeben von Funken dash submit ,
gefolgt von diesem Skript-Namen , der Entscheidungsbaum Punkt p y ausgelöst wurde . Dies ist, was tatsächlich nimmt das Skript in entscheidet, wie es verteilt und tatsächlich
in die Funken-Engine einspeist . Was ist es? Geben Sie ein und sehen Sie, was passiert. Also, wenn Sie Sparks erfolgreich installiert haben, sollte
er so etwas sehen. Und da haben wir es. In Ordnung, also für unseren Testbenutzer dort haben wir tatsächlich vorhergesagt, dass wir diese Person einstellen würden. Und wir haben hier auch den eigentlichen Entscheidungsbaum selbst ausgedruckt. Nun, wir können natürlich keine nette,
hübsche grafische Darstellung machen, wie wir es vorher getan haben, weil wir hier nur in einer Befehlskonsole sind, aber Sie können das immer noch interpretieren. Also im Grunde, es sagt, ob Feature eins in Null. Der Weg, das zu interpretieren, ist, wenn wir hier auf unsere Quelldaten zurückblicken, wenn wir anfangen, bei Null zu zählen, würde
101 verwendet werden. Okay? Und denken Sie daran, wir konvertierten. Warum? Ein Ende Zehe eins und Null. Also sagt es, im Grunde, wenn Sie nicht beschäftigt sind, wenn Feature eins, das verwendet wird, in der Menge Null ist, die einen einzelnen Wert von Null enthält. Für kategoriale Daten sehen
Sie diese Syntax in sehen
Sie diese Syntax in
geschweiften Klammern und was auch immer die Kategorien sind. Also, wenn du nicht angestellt bist, und wenn Feature fünf auch Null ist. Also 012345 Das ist ein Praktikum. Also, wenn Sie arbeitslos sind, haben
Sie kein Praktikum gemacht. Und, ah, das heißt, wenn Sie weniger als ein halbes Jahr Erfahrung haben, haben Sie
im Grunde keine Erfahrung und Sie haben nur einen Bachelor of Science Abschluss. Wir werden Sie nicht einstellen. Es ist, was die Vorhersage ist, und Sie können den Rest der Struktur hier herausfinden, wenn Sie wollen. Aber so lest du das Zeug. Grundsätzlich cool. Also dort haben Sie es, einen tatsächlichen Entscheidungsbaum, der innerhalb von Apache Spark läuft. Und obwohl das wie eine verschlungene Art scheint, Dinge auf einem einzigen Computer zu tun meine
ich
,es ist die Schönheit ist, dass, wenn Sie dies tatsächlich auf der Master-Note eines
echten Hadoop-Clusters oder eines echten Funken-Clusters ausführen , würden, es würde einfach funktionieren. Es würde diese Arbeit tatsächlich über den gesamten Cluster verteilen. Wie cool ist das? So könnten Sie tatsächlich einen massiven Datensatz von Trainingsdaten und eine riesige Gruppe von
Personen einspeisen , für die Sie Vorhersagen machen möchten, und es könnte diese über einen gesamten Cluster verteilen und Ihnen Ergebnisse liefern, egal wie groß, dass der Datensatz sein könnte. Das ist also, was wirklich aufregend daran ist. Weißt du, du könntest dir eine Welt vorstellen, in der du für eine riesige Firma oder ein Unternehmen
arbeitest, das Software für die Rekrutierung von Software
herstellt arbeitest , und du könntest das tatsächlich bei
massiven Maßstab über eine massive Anzahl von Menschen. Ich werde die ethischen Bedenken beiseite lassen, so etwas in der realen
Welt zu tun , wo man nur versucht, Menschen in eine Reihe zu kochen und sie in ein Modell zu füttern. Ich meine, offensichtlich würde
ich nicht wirklich wollen, dass die Rial-Einstellungsentscheidungen allein darauf basieren. Das wäre keine Welt, in der ich leben möchte. Aber aus Gründen der Illustration,
das ist, wie es funktionieren würde, so dass wir eine Entscheidung Bäume in Funke laufen für echte. Und dort haben Sie einen tatsächlichen Entscheidungsbaum, der mit Funken einer ML lib erstellt wurde, die tatsächlich
funktioniert und tatsächlich ziemlich genial Sachen Sinn macht, so dass Sie sehen können, dass es ziemlich einfach ist, und Sie können es so groß wie ein Datensatz skalieren, wie Sie sich vorstellen können, wenn Sie haben einen ausreichend großen Cluster, so dass Sie es
75. K-Means Clustering in Spark: als Nächstes. Nehmen wir unser K bedeutet Clustering-Beispiel, das wir früher in diesem Kurs verwendet haben, und lösen es dieses Mal mit Spark und ml lib und Sie werden sehen, es ist nur ein ZZ, vielleicht sogar noch einfacher. Also wieder von Spider, lassen Sie uns hier eine Datei öffnen, und unsere Kursmaterialien dieses Mal werden zu unserem Kursmaterial Ort navigieren, natürlich, unter CML-Kurs, und dieses Mal wollen wir das Skript. Spark K bedeutet nicht p klug, voranzugehen und das zu öffnen. Und wie zuvor werden
wir ein Beispiel nehmen, das wir früher im Kurs auf einem einzigen PC gemacht haben, indem wir nur
psychisches Lernen verwenden und tatsächlich dasselbe mit Apache Spark tun, also könnten wir dies tatsächlich auf einen ganzen Cluster
skalieren. Also lasst uns diesen Code durchlaufen. Ordnung, also nochmal, einige Boilerplate-Zeug, die wir das K-Mittel-Paket aus dem
Clustering-ml-Bib-Paket importieren werden. Wir gehen zu wichtigen ray und zufällig von num pie, weil wir wieder frei sind, zu verwenden was Sie wollen. Dies ist ein Python-Skript am Ende des Tages, und Emma live benötigt oft keinen Kuchen. Kein Schiedsrichter als Eingabe ausgelöst. Wir werden die Quadratwurzel-Funktion und das übliche Standardmaterial importieren, das wir brauchen, um Konferenz-Spark-Kontext so ziemlich jedes Mal von Pie Spark zu lösen. Wir werden auch die Skalierungsfunktion aus Psych importieren. Es lernt so wieder. OK, machst du es gelernt, solange du sicherstellst, dass es auf jedem Computer installiert ist, auf dem du
diesen Job ausführen wirst . Und nehmen Sie auch nicht an, dass psychische Gelernte sich magisch skalieren wird, nur weil Sie es auf Funken laufen. Aber da ich es nur für die Skalierungsfunktion verwende, ist
es OK. Alles klar, lassen Sie uns die Dinge aufstellen, also schicke ich eine globale Variable K 25, damit ich rennen werde. K bedeutet, in diesem Beispiel mit einer k A fünf mit fünf verschiedenen Clustern zu gruppieren, und ich werde voran gehen und einen lokalen Funkenhusten einrichten, der gerade auf meinem eigenen Desktop von
Gott läuft . Setzen Sie den Namen meiner Anwendung auf Funken K bedeutet und erstellen Sie ein Spark-Kontextobjekt, das ich dann verwenden
kann, um rtgs zu erstellen, die auf meinem lokalen Computer ausgeführt werden. Wir werden diese Funktion vorerst überspringen, gehen Sie zur ersten Codezeile, die ausgeführt wird. Das erste, was wir tun werden, ist die Erstellung von RTD durch Lähmung in einigen gefälschten Daten, die ich erstelle. Und das ist, was diese Funktion zu erstellen Clustered Data Funktion tut. Im Grunde sage
ich es, 100 Datenpunkte zu erstellen, die um K Central Lloyds gruppiert sind, und das ist ziemlich identisch mit dem Code, den wir uns angesehen haben, als wir mit K gespielt haben, bedeutet Clustering früher im Kurs. Wenn Sie also eine Auffrischung wünschen, gehen Sie zurück und schauen Sie sich diesen Vortrag an. Aber im Grunde, was wir tun werden, ist eine Reihe von zufälligen Centrowitz zu schaffen, um die wir normalerweise einige Alters- und Einkommensdaten verteilen. Was wir also tun, ist, Menschen basierend auf ihrem Alter und Einkommen zu gruppieren, und wir erstellen einige Datenpunkte, um das zu tun. Alles klar, so dass ein taub Tortenarray unserer gefälschten Daten zurückgibt. Jetzt die andere Sache, die wir tun, also sobald dieses Ergebnis von der Erstellung von gruppierten Daten zurückkommt, rufe
ich Skalierung auf, und das wird sicherstellen, dass mein Alter und Einkommen auf vergleichbaren Skalen liegen. Denken Sie daran, mein Vortrag sagt, dass Sie sich an die Normalisierung der Daten erinnern müssen. Dies ist eines dieser Beispiele, wo es wichtig ist. Also normalisieren wir diese Daten mit Skalierung, so dass wir gute Ergebnisse von K-Mitteln erhalten. Und schließlich lähmen wir die resultierende Liste von Arrays in eine r d d d mit gelähmten. Nun enthält unsere Daten RTD alle unsere gefälschten Daten. Alles, was wir tun müssen, ist noch einfacher als ein Entscheidungsbaum-Aufruf k bedeutet Punkt Zug auf unseren Trainingsdaten, Übergeben der Anzahl der Cluster wollen wir unser K-Wert paar Parameter, die eine
Obergrenze darauf setzen , wie viel Verarbeitung es tun. Sagen Sie es, den Standardinitialisierungsmodus von K zu verwenden bedeutet, wo wir nur zufällig unsere
anfänglichen zentralen Roids für unsere Cluster auswählen , bevor wir mit ihnen anfangen zu iterieren. Und zurück kommt das Modell, das wir verwenden können. Wir werden den Cluster anrufen. Alles klar, jetzt können wir damit spielen. Lassen Sie uns damit beginnen, die Clusterzuweisungen für jeden unserer Punkte auszudrucken. Also werden wir unsere ursprünglichen Daten nehmen und sie zuordnen, das heißt, transformieren sie mit dieser Lambda-Funktion. Diese Funktion wird nur jeden Punkt in die Clusternummer verwandeln, die aus unserem Modell
vorhergesagt wird . Okay, so nochmal. Wir nehmen nur unsere FTE von Datenpunkten. Wir rufen Cluster aus. Vorhersagen, um herauszufinden, welcher Cluster Arkan bedeutet, dass Modell sie zuweist. Und wir werden nur die Ergebnisse in unser Ergebnis rdd setzen. Nun, eine Sache, die ich hier erwähnen möchte, ist dieser Baranruf hier. Also eine wichtige Sache, wenn Sie Spark tun, ist zu jeder Zeit, die Sie beruhigen werden oder als eine Aktion auf RTD, es ist wichtig, es zuerst zu bezahlen, weil denken Sie daran, wenn Sie in Aktion auf RTD anrufen, Funken geht weg und Zahlen aus der DAG vorwärts und wie Zehe optimal zu diesem Ergebnis kommen und losgehen und tatsächlich alles ausführen, um dieses Ergebnis zu erhalten. Wenn ich also verschiedene Aktionen für die gleiche FTE aufrufe, wird letztendlich diese FTE
zweimal evaluieren . Und wenn Sie all diese zusätzliche Arbeit vermeiden möchten, können
Sie Ihre FTE einlösen, um sicherzustellen, dass sie nicht mehr als einmal berechnet. Indem wir das tun, stellen
wir sicher, dass diese beiden nachfolgenden Operationen das Richtige tun. Also, um ein tatsächliches Ergebnis dieses Ergebnisses zu erhalten, wurde
RTD oder Burgund Zählung nach Wert verwendet und Was das tun wird, ist uns eine rdd, die wie viele Punkte
hat, Aaron jeder Cluster. OK, also denken Sie daran, dass das Ergebnis RTD jeden einzelnen Punkt dem Cluster zugeordnet hat, mit dem es endete. Also, jetzt können wir Anzahl für Wert verwenden, um einfach zu zählen, wie viele Werte wir für jeden gegebenen
Cluster I d sehen , und wir können diese Liste ausdrucken und wir können tatsächlich die rohen Ergebnisse betrachten , die mühsam sind. Nun, dieser Anruf sammelt es und das wird mir jede einzelne
Punkte-Cluster-Zuweisung zurückgeben und wir können sie alle ausdrucken. Nun, wie messen wir? Wie gut sind Cluster? Nun, eine Metrik dafür wird aufgerufen, aber innerhalb der festgelegten Summe der quadrierten Fehler. Wow, das klingt schick. Es ist so ein großer Begriff. Wir brauchen eine Abkürzung dafür. Ws SSC Alles, was es ist, würden
wir uns die Entfernung von jedem Punkt zu seiner zentral das endgültige zentral in jedem
Cluster betrachten Nehmen Sie das Quadrat dieses Fehlers und summieren Sie es für den gesamten Datensatz. Okay, also ist es nur ein Maß dafür, wie weit jeder Punkt von seiner zentralen OID entfernt ist. Offensichtlich. Wissen Sie, wenn es eine Menge Fehler in unserem Modell gibt, dann werden sie tendenziell weit von der zentralen entfernt sein. Das könnte bedeuten, dass wir zum Beispiel einen höheren Wert von K benötigen . Also werden wir voran gehen und berechnen, dass Valium es ausdruckt. Wie macht man das? Wir definieren diese Fehlerfunktion, die den quadrierten Fehler für jeden Punkt berechnet. Es nimmt nur den Abstand vom Punkt zum zentralen OID-Zentrum jedes Clusters und fasst ihn zusammen. Um dies zu tun, nehmen
wir unsere Quelldaten, die diese Lambda-Funktion aufrufen, die tatsächlich die
Luft von ihrem zentralen Mittelpunkt berechnet . Und dann können wir hier verschiedene Operationen miteinander verketten. Also rufen wir die Karte auf, um zuerst die Luft für jeden Punkt zu berechnen. Okay, und dann, um eine endgültige Summe zu erhalten, die den gesamten Datensatz darstellt, wurden reduziert für
dieses Ergebnis aufgerufen . Also machen wir Datenpunktkarte, um die Luft für jeden Punkt zu berechnen und dann Punkt reduziert, um
alle diese Fehler zu nehmen und sie alle zusammen hinzuzufügen. Und das ist es, was dieses kleine reduzierte Land eine Funktion tut. Dies ist im Grunde eine ausgefallene Art zu sagen, ich möchte, dass Sie alles in dieser FTE zu
einem Endergebnis zusammenfassen . Okay, also reduzieren. Wir nehmen die gesamte rdd zwei Dinge auf einmal und kombinieren sie mit jeder Funktion, die Sie bereitstellen. Also die Funktion, die ich hier bereitstelle, ist, die beiden Straßen zu nehmen, die ich zusammen kombiniere und sie
einfach zusammenaddieren. Und wenn wir das bei jedem Eintrag der FTE tun, hatten
wir mit der endgültigen Summe zusammengefasst, es könnte wie ein bisschen ein verschlungener Weg erscheinen, nur eine Reihe von Werten zusammenzufassen. Aber indem wir es so machen, sind
wir in der Lage, sicherzustellen, dass wir diese Operation tatsächlich verteilen können, wenn nötig. Weißt du, wir könnten tatsächlich die Summe dieses Stückes der Daten hier auf dieser
Maschine berechnen und eine Summe aus einem anderen Stück auf dieser anderen Maschine. Und dann nehmen Sie diese beiden Summen und kombinieren Sie sie zu einem Endergebnis. Richtig, also siehst du, wie das funktioniert? Diese reduzierte Funktion sagt, Wie nehme ich alle auf Werte, Sie wissen, Zwischenergebnisse aus dieser Operation und kombinieren sie zusammen. In Ordnung. Also wieder, fühlen Sie sich frei, einen Moment zu nehmen und auf dies ein wenig länger zu starren, wenn Sie in sinken wollen. geht nichts wirklich Lust vor sich. Aber es gibt ein paar wichtige Punkte. Wir haben die Verwendung von Bargeld eingeführt. Wenn Sie sicherstellen möchten, dass Sie nicht unnötige Re-Berechnungen auf RTD machen, die Siemehr als einmal verwenden
werden,haben
wir die Verwendung der reduzierten Funktion eingeführt,
und wir haben ein paar interessante Mapper-Funktionen mehr als einmal verwenden
werden, wir die Verwendung der reduzierten Funktion eingeführt, . Ein Schwung hier. Also gibt es in diesem Beispiel viel zu lernen, aber am Ende des Tages wird
es nur u K bedeutet Clustering. Also lassen Sie uns voran und führen Sie es so wie zuvor öffnet sich in Anaconda fordert Sie oder Ihr Terminal auf anderen Plattformen. Wir werden CD zu unserem Kurs. Materialien sind und lassen Sie uns in Funkenarsch eingeben Submit Funken K bedeutet stoppen ey und lassen Sie einfach, dass laufen und sehen, was passiert. Und wir haben ein Ergebnis. Sehr cool. In Ordnung, also ist es, als hätten wir zuerst eine Zählung nach Wert hier, wo es nur zeigt, wie viele von jedem Punkt jedem Cluster zugewiesen wurden, und diese scheinen ziemlich gleichmäßig verteilt zu sein. Wir hatten 20 Punkte, kategorisiert Cluster zwei und 20 0 23 20 und 17. Das ist also ein gutes Zeichen, denn wir haben eine gerade Anzahl verschiedener Punkte in unseren erstellten Daten erstellt, gegen die wir trainieren
wollten . Richtig? Und wenn Sie sich die tatsächlichen Clusterzuweisungen noch einmal ansehen, wenn Sie sich erinnern, wie wir die Daten erstellt haben, haben
wir tatsächlich einen Cluster nach dem anderen generiert. Es ist also ein gutes Zeichen dafür, dass wir alle zwei haben, alle Nullen, alle Einsen, alle drei. Und, weißt
du, es beginnt ein wenig zu verwechseln mit den Kräften eines, der in der Mitte geworfen wird. Ein paar mal mehr da drin, also hat es nicht immer richtig verstanden. Einige dieser Cluster waren ein wenig überlappend, so scheint
es. Und schließlich haben wir eine W s s S e Metrik, tatsächlich berechnen, wie gut es von 20.3 ist. Cool. Also hat es funktioniert. Wir haben es tatsächlich getan. K bedeutet Clustering mit Apache Spark, der potenziell über einen Cluster verteilt ist, wenn wir
einen so sehr cool hatten . Und wenn Sie für sich selbst herausfordern wollen, noch tiefer einzutauchen, gibt es hier ein paar Dinge. Sie können versuchen, dass wir versuchen, den Wert von K zu erhöhen oder zu verringern. Eine der großen Herausforderungen und K bedeutet Clustering ist die Wahl des richtigen Wertes. Okay, also sieh mal, welche Auswirkungen das hat. Offensichtlich
gibt es hier einen echten Wert von K, mit dem wir die Daten generiert haben, und es wird informativ sein zu sehen, was der falsche Wert von K zu Ihren Ergebnissen führt. auch, Was passiertauch,wenn Sie die Eingabedaten nicht normalisieren, bevor Sie sie clustern? Beeinflusst das die Qualität dieses Algorithmus? Und was passiert, wenn Sie Theme-Beschleunigungen oder Ausführungsparameter ändern? Die Hyper-Primärwerte, wenn Sie so wollen, auf dem kam und Mittel Algorithmus selbst. Also gehen herumspielen, dass diese Dinge zu versuchen und zu sehen, dass Sie kommen mit. Da hast du es. K bedeutet Clustering auf Funken ein ml lib Ziemlich einfache Sachen. Und das Schöne daran ist, dass man tatsächlich durch einen großen,
massiven,
realen Datensatz dran könnte massiven, . Und wenn Sie das auf einem Cluster ausführen würden, würde
es es tatsächlich für Sie schnitzen und die gesamte Verarbeitung automatisch verteilen. Und es würde immer noch gut funktionieren. Ziemlich genial. Gehen wir zu einem noch kühleren Beispiel
76. TF / IDF: Unser letztes Beispiel für ML live wird also etwas verwenden, das Begriff Frequenz inverse Dokument Frequenz oder T F I D E F, das ist der grundlegende Baustein vieler Suchalgorithmen. zunächst Lassen Sie unszunächstüber die Konzepte von T F I D E f. sprechen und wie wir damit umgehen könnten, um ein Suchproblem zu lösen. Unsere letzte Übung mit Apache Spark ein ML Live wird über Termfrequenz inverse Dokumentfrequenz sein. Das ist es, was t F I D F steht wie üblich. Es klingt kompliziert, aber es ist nicht so kompliziert, wie es klingt und was wir eigentlich mit T f I.
D.
F.tun D. F. ist eine rudimentäre Suchmaschine für Wikipedia mit Apache Spark und ML live zu erstellen. Wie genial ist das? Also lasst uns anfangen. T f i D E f steht Rücklauffrequenz und inverse Dokumentfrequenz. Und das sind im Grunde zwei Metriken, die eng miteinander verknüpft sind, um die Suche durchzuführen und die Relevanz eines bestimmten Wortes für ein Dokument mit einem größeren Körper von Dokumenten
herauszufinden. So, zum Beispiel, jeder Artikel auf Wikipedia könnte eine Begrifffrequenz mit ihm jede Seite auf der
Inter verbunden sein. Welches Internet könnte eine Begriffshäufigkeit damit verbunden sein? Für jedes Wort, das in diesem Dokument erscheint? Klingt schick. Aber wie Sie sehen werden, ist
es ein ziemlich einfaches Konzept. Alle Termfrequenz bedeutet, wie oft ein bestimmtes Wort in einem bestimmten Dokument vorkommt. Also innerhalb einer Webseite innerhalb eines Wikipedia-Artikels in einem was auch immer, wie üblich ist ein gegebenes Wort innerhalb dieses Dokuments? Wissen Sie, wie hoch ist das Verhältnis dieser Wörter die Vorkommensrate in allen Wörtern in diesem Dokument? Das war's. Das ist alles. Termfrequenz ist Dokument-Frequenz, gleiche Idee genannt wenig verwirrend. Aber alles, was es ist, ist die Häufigkeit dieses Wortes über das gesamte Korpus von Dokumenten. Also, wie oft tritt dieses Wort in allen Dokumenten, die ich habe alle Webseiten, alle Artikel auf Wikipedia. Okay, also wissen Sie, zum Beispiel, gemeinsame Wörter wie ein oder die würden eine sehr hohe Dokumentenfrequenz haben, und ich würde erwarten, dass sie auch eine sehr hohe Termfrequenz haben. Aber das bedeutet nicht unbedingt, dass sie für ein bestimmtes Dokument relevant sind. Du könntest sehen, wohin wir damit hingehen. Nehmen wir an, wir haben eine sehr hohe Termfrequenz und eine sehr niedrige Dokumentenfrequenz für ein bestimmtes Wort. Das Verhältnis dieser beiden Dinge kann mir ein Maß für die Relevanz dieses Wortes für das Dokument geben. Wenn ich also ein Wort sehe, das sehr oft in einem bestimmten Dokument vorkommt, aber nicht sehr oft im Gesamtraum von Dokumenten, die ich weiß, dass dieses Wort wahrscheinlich besondere Bedeutung zu diesem speziellen Dokument
vermittelt, könnte
es wieder vermitteln, was in diesem Dokument geht es eigentlich um. Das ist also eine TF-Idee. Es steht nur für Term Frequenz Zeiten inverse Dokumentfrequenz, die nur eine ausgefallene Möglichkeit ist, Termfrequenz über Dokumentfrequenz zu sagen, was nur eine freak Phantasie Art zu sagen ist, wie oft dieses Wort in diesem Dokument vorkommt im Vergleich zu, wie oft es in den gesamten Körper von Dokumenten auftritt? Das ist alles. T f I D f. Bedeutet, dass es so einfach ist. Also in der Praxis gibt es ein paar kleine neue Wünsche ist, wie wir dies verwenden. Zum Beispiel haben wir das tatsächliche Protokoll der inversen Dokumentfrequenz anstelle des Rohwerts verwendet,
und das liegt daran, dass Wortfrequenzen in Wirklichkeit tendenziell exponentiell verteilt werden. Also, indem wir das Protokoll nehmen, enden
wir mit einem etwas besseren Warten auf Worte, angesichts ihrer allgemeinen Popularität und sind einige Einschränkungen für diesen Ansatz. Offensichtlich ist
eine, dass wir im Grunde davon ausgehen, dass ein Dokument nichts anderes ist als eine Tasche voller Worte. Wir gehen davon aus, dass es keine Beziehungen zwischen den Wörtern selbst gibt. Und das ist natürlich nicht immer der Fall. Und sie tatsächlich zu analysieren, kann ein guter Teil der Arbeit sein, weil man sich mit Dingen wie Synonymen und verschiedenen Wortformen auseinandersetzen muss. Abkürzungen, Groß- und Kleinschreibung, Rechtschreibfehler. Wissen Sie, das geht auf die Idee zurück, Ihre Daten zu bereinigen. Ein großer Teil Ihrer Arbeit zu sein, sind die Datenwissenschaftler, und es gilt vor allem, wenn Sie mit natürlichen Sprachverarbeitungsmaterial zu tun haben. Glücklicherweise gibt es einige Bibliotheksbibliotheken, die Ihnen dabei helfen können, aber es ist ein echtes Problem, und es wird sich auf die Qualität Ihrer Ergebnisse auswirken. Ein weiterer Implementierungstrick, den wir mit T F I.
D.
F.verwenden D. F. ist, anstatt tatsächlich tatsächliche Zeichenfolgenwörter mit ihren Termfrequenzen und inverse Dokumentfrequenzen zu speichern, um Platz zu sparen und die Dinge effizienter zu machen, Wir ordnen tatsächlich jedes Wort einem numerischen Wert einen Hash-Wert zu, nennen
wir es. Die Idee ist also, dass wir eine Funktion haben, die jedes Wort annehmen kann, wie man sich seine Buchstaben anschaut und das auf eine ziemlich gut verteilte Weise
einer Reihe von Zahlen in irgendeinem Bereich zuweist . Auf diese Weise, anstelle von Aufruf, wissen
Sie, mit dem Wort dargestellt, das einen Hash-Wert von 10 haben könnte. Und wir können von nun an auf das Wort Vertreter 10 verweisen. Nun, wenn der Platz Ihrer Hash-Werte nicht groß genug ist, könnten
Sie mit verschiedenen Wörtern durch die gleiche Zahl dargestellt werden, was schlimmer klingt als ISS. Aberwissen
Sie, wissen
Sie, Sie möchten sicherstellen, dass Sie einen ziemlich großen Hash-Raum haben, so dass dies unwahrscheinlich ist. Diese werden als Hash-Kollisionen bezeichnet. Sie können Probleme verursachen. Aber in Wirklichkeit
gibt es nur so viele Wörter,die Leute häufig in der englischen Sprache verwenden,
so dass Sie mit 100.000 oder so davonkommen und gut gehen können. in Wirklichkeit
gibt es nur so viele Wörter, die Leute häufig in der englischen Sprache verwenden, so dass Sie mit 100.000 oder so davonkommen und gut gehen können in Wirklichkeit
gibt es nur so viele Wörter,die Leute häufig in der englischen Sprache verwenden,
so dass Sie mit 100.000 oder so davonkommen und gut gehen können. und es offensichtlich zu tun. Diese Skala ist der schwierige Teil. Weißt du, wenn du das über ganz Wikipedia machen willst, dann musst du das auf einem Cluster laufen. Aber um des Arguments willen, wir werden dies nur auf unserem eigenen Desktop ausführen, mit einer kleinen Probe von Wikipedia-Daten. Wie machen wir das in ein tatsächliches Suchproblem? Also, sobald wir t f i D E f haben, haben
wir dieses Maß für jedes Wort Relevanz für jedes Dokument. Was machen wir damit? Nun, eine Sache, die Sie tun könnten, ist TF-Idee für jedes Wort zu berechnen, das wir im gesamten
Körper von Dokumenten begegnen , die wir haben. Und dann sagen wir, wir wollen nach einem bestimmten Begriff bestimmten Wort suchen. Nehmen wir an, wir wollen nach dem Wikipedia-Artikel in meinem Satz von Wikipedia-Artikeln suchen, der für Gettysburg
am relevantesten ist . Ich könnte alle Dokumente nach ihrem T f I.
D F Punktzahl für Gettysburg sortieren und einfach die Top-Ergebnisse nehmen. Und das sind meine Suchergebnisse für Gettysburg. Das war's. Suchen Sie einfach. Nimm dein Suchwort. Berechnen. T f I D f. Nehmen Sie die Top-Ergebnisse. Welche Dokumente haben die höchste T f I D F Punktzahl. Das war's. Offensichtlich in der realen Welt gibt es
in der realen Weltviel mehr zu suchen als das. Google, offensichtlich als Armeen von Menschen, die an diesem Problem arbeiten, und es ist viel komplizierter in der Praxis. Aber das wird Ihnen tatsächlich einen funktionierenden Suchmaschinen-Algorithmus geben, der tatsächlich
vernünftige Ergebnisse liefert . Also lasst uns voran gehen und eintauchen und sehen, wie alles funktioniert. Da haben Sie also die Konzepte von T F I D E f. Ein anderes von diesen Dingen, das wirklich schick klingt, aber wenn man es versteht, ist
es eigentlich ganz einfach. Also lassen Sie uns voran und drehen Sie das in tatsächlichen Quellcode und einen Lauf es in unserer nächsten Vorlesung.
77. Die Wikipedia mit Spark durchsuchen: Das könnte das Coolste sein, was wir in diesem ganzen Kurs machen. Wir werden einen tatsächlich funktionierenden Suchalgorithmus für ein Stück Wikipedia mit
Apache Spark und ML lib erstellen , und wir werden alles in weniger als 50 Zeilen Code tun. Ziemlich genial. Also lassen Sie uns voran und öffnen Sie dies in Spider oder was auch immer Text Senator Sie verwenden möchten, wirklich, und wir gehen zu unserem Kursmaterialordner und öffnen das T f I D e f dot p y Skript. Und lassen Sie uns darüber reden und hier haben wir es jetzt für einen Moment zurücktreten und lassen Sie es einsinken , dass tatsächlich einen funktionierenden Suchalgorithmus erstellt wurden, zusammen mit ein paar Beispielen für die Verwendung in weniger als 50 Codezeilen hier. Und es ist skalierbar. Ich könnte das auf einem Cluster laufen. Es ist irgendwie erstaunlich. In Ordnung, also lasst uns das durchgehen. Es ist eigentlich ziemlich unkompliziert, Ordnung. Wir werden damit beginnen, die Kontext-Bibliotheken der Spark-Konferenzleiste zu importieren, die wir für jedes
Spark-Skript benötigen , das wir in Python ausführen. Und dann werden wir Hashing TF und I D.
F.importieren F. Also das ist, was die Termfrequenzen und inverse Dokumentfrequenzen berechnet. In unseren Dokumenten beginnen
wir mit unserem Boilerplate Spark Zeug, das eine lokale Funken-Konfiguration und einen Funken-Kontext erstellt, aus dem wir dann unsere erste RTD eine Runde
zu spar Kontext erstellen können , um eine RTD zu erstellen von Teilmenge Bindestrich kleine Schulden Punkt tsv Also dies ist tabulatorgetrennte Werte und es stellt eine kleine Probe von Wikipedia-Artikeln. Das gibt mir also eine FTE zurück, bei der sich jedes Dokument in jeder Zeile der FTE befindet. Diese TSV-Datei enthält also ein ganzes Wikipedia-Dokument in jeder Zeile, und ich weiß, dass jedes dieser Dokumente in tabellarische Felder aufgeteilt wurde, die
verschiedene Metadatenbits zu jedem Artikel haben . Das nächste, was ich tun werde, ist, die aufzuteilen. Also werde ich jedes Art H-Dokument basierend auf ihren tabulatorgetrennten ERs in eine
Python-Liste aufteilen und eine neue Felder-RTD erstellen, die anstelle von rohen Eingabedaten jetzt Python-Listen jedes Feldes in diesen Eingabedaten enthält. Und schließlich, sieh dir an, was hier vor sich geht. Sanel, ich werde diese Daten in jeder Liste von Feldern extrahieren Feld Nummer drei, was ich zufällig weiß, ist der Körper des Artikels selbst. Der eigentliche Artikeltext und ich werde wiederum das basierend auf Leerzeichen teilen. Also, was das tut, ist, den Textkörper aus jedem Wikipedia-Artikel zu extrahieren und ihn in eine Liste von Wörtern
aufzuteilen. Okay, meine neuen Dokumente RDD hat
also einen Eintrag für jedes Dokument und jeder Eintrag in dieser RTD enthält eine Liste von Wörtern, die jetzt in diesem Dokument erscheinen. Also wissen wir eigentlich, wie wir diese Dokumente später nennen Wenn wir die Ergebnisse bewerten, werde
ich auch eine neue RTD erstellen, die die Dokumentnamen speichert. Und alles, was tut, ist, die gleichen Felder rdd zu nehmen und die Snap-Funktion verwendet, um den
Dokumentnamen zu extrahieren , den ich zufällig kenne, ist Infield Nummer eins. Also muss ich rtgs Dokumente, die Listen von Wörtern enthält, die in jedem Dokument und
Dokumentnamen erscheinen , die den Namen jedes Dokuments enthält. Und ich weiß, dass diese in der gleichen Reihenfolge sind, also kann ich diese später kombinieren, um den Namen für ein bestimmtes Dokument zu suchen . Jetzt passiert die Magie, also zuerst, was wir tun werden, ist ein Hash-TF-Objekt zu erstellen, und wir werden einen Parameter von 100.000 übergeben. Dies bedeutet, dass ich jedes Wort in einen von 100.000 numerischen Werten hash werde. Anstatt Wörter intern als Strings darzustellen, was sehr ineffizient ist, wird
es Teoh so gleichmäßig wie möglich versuchen, jedes Wort auf einen eindeutigen Hash-Wert
verteilen, und ich gebe es bis zu 100.000 Hash-Werte zur Auswahl. Also im Grunde ist
das Mapping von Wörtern zwei Zahlen am Ende des Tages, okay? Und ich werde transformieren auf Hashing TF mit meiner tatsächlichen RTD von Dokumenten aufrufen. Also, was das tun wird, ist meine Liste von Wörtern in jedem Dokument zu nehmen und sie in eine
Liste von Hash-Werten zu konvertieren , eine Liste von Zahlen, die stattdessen jedes Wort darstellen. Okay, und das wird an dieser Stelle tatsächlich als spärlicher Vektor dargestellt, um noch mehr Platz zu sparen. Also haben wir nicht nur alle unsere Wörter zwei Zahlen konvertiert, sondern wir haben auch alle fehlenden Daten entfernt. Für den Fall, dass ein Wort nicht in einem Dokument erscheint, in dem Sie nicht die Tatsache speichern , dass dieses Wort nicht explizit erscheint, spart es jetzt noch mehr Platz, um tatsächlich die T f I D F Partitur für jedes Wort in jedem Dokument zu
berechnen. Das erste Bargeld dieser TF rdd, weil wir wissen, dass wir es mehr als einmal verwenden werden. Und wir benutzen I d. F mit einer min doc Frequenz von zwei. Das bedeutet, dass wir jedes Wort, das nicht mindestens zweimal erscheint, ignorieren und dann auf t f transformieren. Und was wir hier enden, ist ein Arty de des T f I D E f Partitur für jedes Wort in jedem Dokument. Okay, also lasst uns versuchen, das zu benutzen. Lasst uns
versuchen, den besten Artikel für das Wort Gettysburg zu suchen. Wenn Sie mit uns Geschichte nicht vertraut sind
, dann hielt Abraham Lincoln eine berühmte Rede, damit wir das Wort Gettysburg
in seinen Hashwert verwandeln können . Okay, das ist es, was dieser Code tut. Wir werden dann eine T f i.
D f Punktzahl für diesen Hash-Wert in eine neue RTD für jedes Dokument extrahieren . Also, was das tut, ist die T f i.
D f Punktzahl für Gettysburg aus dem Hash-Wert zu extrahieren , der für jedes Dokument abbildet und diese in
diesem Gettysburg Relevanz rdd speichert . Wir haben das dann mit dem Dokumentnamen kombiniert, damit wir die Ergebnisse sehen und die
Antwort ausdrucken können. Also lasst uns das laufen und sehen, was passiert. Okay,
also, um dies zu laufen, müssen
wir eine weitere anaconda Requisiten zu tun und wir werden CD zu unseren Kursmaterialien sind und schreiben Sie einfach Typ in Funkenstrich Submit T f I d f dot p y und lassen Sie uns diese chug weg. Also, ja, Moment wird
es tatsächlich eine Teilmenge von Wikipedia-Daten analysieren,
und es wird versuchen, die beste Dokumentenübereinstimmung für den Suchbegriff Gettysburg zu finden. Es kommt schon eine Antwort, und es ist schon fertig. Und die Antwort ist, dass Abraham Lincoln tatsächlich arbeitet. Leute, das ist fantastisch. Also, ja, ich meine, T f ich d f f in Aktion dort. Wir haben hier tatsächlich unsere eigene kleine Mini-Suchmaschine mit
weniger und 50 Zeilen Code erstellt . Die meisten dieser Luftkommentare, wohlgemerkt, ich meine, der eigentliche Code selbst war wie vielleicht 20 Zeilen und mit nur diesem kleinen bisschen Code ist ml
Live so mächtig, dass es in der Lage war, eine ganze Suchmaschine zu konstruieren, die , dass der Artikel für Abraham Lincoln ist die beste Übereinstimmung für jemanden auf der Suche nach Informationen über Gettysburg, Zumindest in der Teilmenge von Wikipedia, die wir gab es. Ich denke, das ist irgendwie genial. Also, ja, ich meine. Und was noch cooler ist, ist, dass ich,
wenn ich das gesamte Korpus von Wikipedia hätte, mit sehr wenigen Modifikationen, das gleiche genaue Skript auf einem Cluster
ausführen und Ergebnisse über den gesamten
Wikipedia-Datensatz erhalten könnte. Wissen Sie, es ist in diesem Maße skalierbar. So ziemlich coole Sachen. T F I D E f Untätigkeit im Funken. Und wir haben unsere eigene kleine Suchmaschine wirklich einfach gemacht. Das ist fantastisch. Und da haben Sie es, einen tatsächlichen funktionierenden Suchalgorithmus für ein kleines Stück Wikipedia mit Spark und ml lib und T f I. D E f. Und die Schönheit ist, dass wir tatsächlich auf alle Wikipedia skalieren könnten, wenn wir wollten zu. Wenn wir einen Cluster groß genug hatten, um es auszuführen Jetzt haben wir nur einige der
Funktionen von Apache Spark berührt . Ich bin sicher, Sie haben viele Fragen. Es gibt noch
viel, viel mehr. In der Tat habe ich einen ganzen Kurs über Apache Spark, also gibt es eine Menge, über die wir reden können. Wenn Sie mehr über Apache Funke erfahren möchten, zu
den letzten paar Vorlesungen in diesem Kurs, wo wir darüber sprechen, wo Sie mawr lernen , wohin Sie als nächstes gehen und es gibt ein paar Sprünge von Ort. Gibt es für Sie zu gehen erkunden und mehr über Funken zu erfahren, weil es ein großes Thema ist. Aber hoffentlich haben wir Ihr Interesse dort oben geweckt
und Sie können sehen, wie es angewendet werden könnte, um zu lösen, können aber ziemlich komplizierte maschinelle
Lernprobleme auf verteilte Weise sein . Es ist also ein sehr wichtiges Werkzeug, und ich möchte sicherstellen, dass Sie diesen Kurs über Data Science nicht durchlaufen, zumindest ohne zumindest die Konzepte zu kennen, wie Funken auf
Big-Data-Probleme angewendet werden kann . Wenn Sie also über das hinausgehen müssen, was ein Computer tun kann, denken Sie daran, Funken steht Ihnen zur Verfügung
78. Verwendung der Spark 2 DataFrame API für MLLib: So im Juli 2016 Funkenfreigabe hat zwei Punkte ausgelöst. Oh, und lassen Sie uns darüber reden, was neu ist und welche neuen Fähigkeiten in ml leben jetzt. So wurde die Hauptsache 2.0 ausgelöst,
ist, dass sie Menschen mehr und mehr zu Datenrahmen und Datensätzen,
Datensätzen und Datenrahmen bewegen . Luft irgendwie austauschbar irgendwann verwendet. Technisch gesehen ist
ein Datenrahmen ein Datensatz von Roe-Objekten. Sie sind irgendwie wie RGDs. Aber der einzige Unterschied ist, dass, während eine RTD nur unstrukturierte Daten enthält, jedes Roven Rdd so ziemlich alles enthalten kann. Ein Datensatz hat ein definiertes Schema. Ein Datensatz weiß also im Voraus genau, welche Informationsspalten in jeder Rove
dieser kleinen RTD dieses Datensatzes vorhanden sind und welche Typen diese sind. Da es also über die tatsächliche Struktur dieser Daten kennt, die im Voraus gesagt wurden, kann
es die Dinge effizienter optimieren. Es lässt uns auch den Inhalt dieses Datensatzes als kleine Mini-Datenbank betrachten. Nun, eigentlich eine sehr große Datenbank. Wenn es auf einem Cluster rechts ist, und das bedeutet, dass wir Dinge wie Probleme Sequel Abfragen darauf tun können, so dass dies eine höhere
Ebene AP I erstellt , mit der wir große,
massive Datensätze in einem Spark-Cluster abfragen und analysieren können . Es ist also ziemlich cooles Zeug. Es ist schneller. Es hat mehr Möglichkeiten zur Optimierung und es hat ein höheres Niveau. AP I. Das ist oft einfacher zu arbeiten, jetzt geht weiter und löste 2.0 ML Grenzen, die
Datenrahmen als primäres a p Ischieben Datenrahmen als primäres a p I Das ist
also der Weg der Zukunft hier. Werfen wir einen Blick darauf, wie es funktioniert. Also habe ich vorangegangen und die Funken Linear Regression P Y-Datei geöffnet. Lasst uns hier ein bisschen durchgehen. So sehen Sie, zum einen verwenden
wir ML anstelle von ml live, und das sind die neuen Datenrahmen-basierten AP-Augen dort drin. In diesem Beispiel ist also, wo wir lineare Regression und lineare Regression verwenden werden, nur eine Möglichkeit eine Linie an einen Satz von Daten
anzupassen. Also, was wir diese Übung machen werden, ist eine Reihe von hergestellten Daten zu nehmen, die wir in zwei
Dimensionen haben , und versuchen, eine Linie an ein lineares Modell anzupassen, und was wir tun werden, ist unsere Daten in zwei Sätze zu
trennen, einen für den Aufbau der -Modell und eines für die Auswertung des Modells. Und wir werden vergleichen, wie gut dieses lineare Modell funktioniert, tatsächlich reale Werte vorhersagen. Um das zu tun, zunächst Sie
zunächstein Funken-Sitzungsobjekt anstelle eines Funkenkontexts verwenden, wenn
Sie Dinge mit der Spark Sequel-Schnittstelle machen und
Datensätze , wenn
Sie Dinge mit der Spark Sequel-Schnittstelle machen und
Datensätze müssenSie
zunächstein Funken-Sitzungsobjekt anstelle eines Funkenkontexts verwenden, wenn
Sie Dinge mit der Spark Sequel-Schnittstelle machen und
Datensätzeverwenden. Also, um einen einzurichten, tun
Sie so etwas, können
Sie sagen, Funken. Das wird der Name unserer Spark Session Builder-Konfiguration sein. Nun, dieses Bit ist nur auf Windows in Funken 2.0 notwendig, irgendwie funktioniert um einen kleinen Fehler, den sie ehrlich sein müssen. Wenn Sie also unter Windows sind, stellen Sie sicher, dass Sie einen C temp Ordner haben. Wenn Sie dies ausführen möchten, erstellen
Sie das jetzt, wenn Sie müssen. Wenn Sie nicht unter Windows sind, können
Sie das ganze Bit hier löschen, das ich OK hervorgehoben habe, weil es nicht notwendig sein wird und es nicht funktionieren wird, wenn App, Name und get oder create. Nun, das ist interessant, weil, wenn Sie eine Spark-Sitzung erstellen, wenn sie unerwartet beendet wird, tatsächlich davon erholen
kann, dass das nächste Mal, dass Sie es ausführen. Wenn wir also einen Checkpoint-Director haben, können
Sie tatsächlich dort neu starten, wo er aufgehört hat, mit,
abrufen oder erstellen. Ordnung, jetzt werden wir diese Regressions-Punkt-Textdatei verwenden, die ich in den
Kursmaterialien enthalten habe , und alles, was ist, ist eine Textdatei, die gemeinsame,
begrenzte Werte von zwei Spalten hat , und sie sind nur zwei Spalten von mehr oder weniger zufällig linear korrelierte Daten, und sie können darstellen, wann immer Sie möchten. Stellen wir uns vor, dass es zum Beispiel Höhen und
Gewichte darstellt . Also die erste Spalte repräsentiere ich Höhen. Die zweite Spalte kann Gewichtungen darstellen. In der Lingle des maschinellen Lernens sprechen
wir also über Etiketten und Funktionen, in denen Etiketten auftauchen. Normalerweise sind die Sache, die Sie zu prognostizieren versuchen und Features eine Reihe von bekannten Attributen der Daten, die verwendet, um eine Vorhersage von So in diesem Beispiel, vielleicht Höhen oder die Beschriftungen und die Features sind die Gewichtungen Mai. Wir versuchen, Höhen basierend auf Ihrem Gewicht vorherzusagen. Es könnte alles sein. Es spielt keine Rolle. Dies ist alles normalisiert, um Daten zwischen negativem eins und eins zu mögen, so dass es keine echte Bedeutung für die Skalierung der Daten irgendwo gibt. Du kannst so tun, als würde es alles bedeuten, was du willst. Wirklich? Um dies zu tun, um dies mit ml zu verwenden, die wir brauchen, um unsere Daten in die formatierten Erwartungen zu transformieren. Das erste, was wir tun werden, ist, diese Daten mit dieser Kartenfunktion aufzuteilen,
die jede Zeile in zwei unterschiedliche Werte in einer Liste aufteilt. Und dann werden wir das dem Format zuordnen, das ich erwarten würde. Das wird also eine Gleitkomma-Label und dann ein dichter Vektor der Feature-Daten sein. Nun, in diesem Fall haben
wir nur ein Bit Feature-Datum des Gewichts. Also haben wir einen Vektor, der nur eine Sache darin hat. Aber selbst wenn es nur eine Sache ist, benötigt
das M l Lib lineare Regressionsmodell dort einen dichten Vektor. Okay, das ist wie ein beschrifteter Punkt in der älteren AP I, aber du musst es irgendwie auf den harten Weg
hier machen . Nun, als nächstes müssen wir tatsächlich Namen zu diesen Spalten zuweisen. Also hier ist die Syntax dafür. Wir werden ml live sagen, dass diese beiden Spalten in meiner resultierenden RTD tatsächlich dem Elite-Label und den Features entsprechen. Und dann kann ich diese RTD in ein Datenrahmenobjekt konvertieren. An dieser Stelle
habe ich einen tatsächlichen Datenrahmen oder,
wenn Sie so wollen, einen Datensatz, der zwei Spalten,
Beschriftungen und Features enthält, bei denen die Beschriftung eine Fließkommahöhe ist und die Feature-Spalte eine dichten Vektor von Gleitkommagewichten. Und das ist das Format, das von ml,
lib und ML benötigt wird. Es könnte ziemlich wählerisch bei diesem Zeug sein. Daher ist es wichtig, dass Sie auf diese Formate achten. Alles klar, jetzt, wie ich schon sagte, wir werden unsere Daten teilen und 1/2, damit wir 50 zwischen Trainingsdaten
und Testdaten aufteilen . Das kehrt also zu Datenrahmen zurück,
einen, den ich verwenden werde, um mein Modell tatsächlich auf einem von dem ich verwenden werde, um
mein Modell zu bewerten . Ich werde als nächstes mein tatsächliches lineares Regressionsmodell mit einigen Standardparametern erstellen
, die ich festgelegt habe. Wir nennen das lineare Regression,
und dann werde ich das Modell an die Datenmenge anpassen, die ich für die Ausbildung des
Handelsdatenrahmens beiseite gehalten habe . Und das gibt mir ein Modell zurück, das ich verwenden kann, um Vorhersagen zu machen. Also lasst uns weitermachen und das tun. Ich werde modellpunkttransformierte Punkttests mit testy F aufrufen und wann das tun wird, ist die Höhen basierend auf den Gewichten in meinen Testdaten
vorherzusagen. Okay, also der Testdatensatz, ich habe tatsächlich die keine Beschriftungen, die tatsächlichen korrekten Höhen, und dies wird diesem Datenrahmen eine neue Spalte hinzufügen, die als Vorhersagen bezeichnet wird, die die prädiktive Werte basierend auf diesem linearen Modell, werde
ich ein paar Dinge damit machen, also werde ich die Ergebnisse einzahlen, und jetzt könnte ich sie einfach extrahieren und sie miteinander vergleichen. Lassen Sie uns also die Prognosespalte nur mit Punkt Select herausziehen, genau wie Sie es nicht fortsetzen würden. Und dann werde ich diesen Datenrahmen tatsächlich transformieren und die RTD daraus herausziehen und
diese verwenden , um sie nur einem einfachen alten zuzuordnen, bereits de voller Fließkommahöhen und 40 Punkthöhen, in diesem Fall, richtig? Das sind also die vorhergesagten Höhen, und dann kommen wir zu den tatsächlichen Höhen von der Etikettenspalte, und dann können wir ihn wieder zusammensetzen und sie einfach nebeneinander ausdrucken und sehen, wie gut es jetzt geht, Wohlgemerkt, das ist eine Art gewundene Art, es zu tun. Ich tat dies, um konsistenter mit dem vorherigen Beispiel zu sein, aber ein einfacherer Ansatz wäre, nur Vorhersage und Beschriftung zusammen zu
einer einzigen RTD auszuwählen , die diese beiden Spalten zusammen abbildet. Und dann besuche ich sie nicht. Aber so oder so funktioniert. Mal sehen, ob es funktioniert, so dass dies erneut ausgeführt wird, öffnet eine Anaconda Eingabeaufforderung zu tun, und wir werden die zu unserem Kurs Materialordner sehen und lassen Sie uns eingeben. Funken Sie als submittiert linearer Regressionspunkt p y und lassen Sie es sein Ding tun. Also wieder verwenden wir die neue ML-Schnittstelle. Das ist Datenrahmenbasiert, und übrigens,
für die Verwendung von Scalia anstelle von Python, würden
Sie wahrscheinlich Datensätze anstelle von Datenrahmen verwenden, nur eine andere Terminologie dort und dort haben wir die Ergebnisse. Also haben wir hier Jedes Ergebnis hier ist der prädiktive Wert, gefolgt von dem tatsächlichen Wert. Das sieht man im Großen und Ganzen, sie sind ziemlich nah dran. Ich meine, es ist nicht perfekt, aber das Modell hat wenigstens etwas Vernünftiges getan, also das war's. Das ist cool. Also, ja, wir haben gerade eine lineare Regression mit Funken New M L A p. Ich werde relativ neu oder 2016. Es ist Ah, weißt
du, seitdem sind
mehrere Jahre vergangen, aber das ist immer noch die Art und Weise, wie die Zukunft, in der sie die Menschen wieder auf die FTE drängen funktioniert
immer noch. Aber, ähm, der Datenrahmen-basierte E p. I ist irgendwie dort, wo sie heutzutage ihre Bemühungen konzentrieren, also lohnt es sich, es zu verstehen. Da hast du es. ML Untätigkeit in Funken.
79. Die Bereitstellung von Models in der Produktion: Die Frage, die ich oft bekomme, ist, dass es gut und gut ist, diese Modelle zu trainieren und sie
in einem Jupiter und Notebook einzusetzen . Aber wie würde ich diese Modelle in der realen Welt verwenden, um die Ausgabe
dieser Modelle dieser Machine Learning-Modelle tatsächlich mit einer echten Anwendung zu verbinden , wie eine Handy-App oder eine Website oder so etwas? Nun, das ist die ganze Welt von sich. Wissen Sie, wir kommen in die Welt des Entwerfens größerer Systeme hier, aber ich gebe Ihnen sowieso eine hochrangige Anleitung. Nun, offensichtlich sind Sie externe Anwendungen werden nicht Jupiter-Notebooks ausführen und ihre Ergebnisse auf diese Weise
erhalten. Vor Ort müssen
wir den Prozess des Trainings und der Abstimmung unseres Modells von dem
Prozess trennen , tatsächlich Vorhersagen basierend auf diesem Modell zu machen. Also der Trainingspark und ich werden off line gemacht, richtig schwächen, tun das in unserem Notizbuch. Oder wir können ein eigenständiges Python -Skript exportieren, das regelmäßig ausgeführt wird, um
vielleicht neue Trainingsdaten aufzunehmen, sobald es eingeht. Vielleicht läuft es sogar in einer Art Streaming-Umgebung, aber das kann alles auf dem Backend passieren, wissen
Sie, Sie können immer noch Ihre neuen Buch-Notizbücher dafür verwenden, wenn Sie es verfeinern möchten. Aber dann, wenn Sie tatsächlich ein ausgebildetes Modell haben, denken Sie daran ,
wir haben nur ah, Modell wie ein Klassifikator, der dort sitzt in psychischen gelernt, dass Punkt, und alles, was wir tun müssen, ist, vorherzusagen, um tatsächlich eine Ergebnis. Es ist also möglich, dieses Modell tatsächlich in eine Datei zu exportieren und dieses Modell auf einem
Webdienst auszuführen . Die Idee wäre also, das Modell in eine Web-Service-Flotte zu schieben. Weißt du, das könnte wie etwas in der Cloud sein, wo es gerade läuft. Ein verteilter Satz von Diensten waren, Hoffentlich müssen Sie sich nicht um die tatsächlichen Server selbst kümmern,
und alles, was Service tut, ist auf Web-Service-Anfragen über Verhaftung oder eine andere
Schnittstelle zu reagieren . heißt, Dasheißt,
Hier sind die Feature-Daten, die ich eine Vorhersage für Geben Sie mir eine Vorhersage und das
vortrainierte Modell, das auf diesem gesamten Web-Service bereitgestellt wird, kann dann schnell dieses
Ergebnis in großem Maßstab und hoffentlich niedrig liefern Latenz und hohe Transaktionsraten zuverlässig . Ihre App würde also den Webdienst aufrufen, der tatsächlich nur Vorhersagen basierend auf
dem Modell generiert , aber das Modell selbst wird off-line erstellt, und dann sind die Ergebnisse dieses Modells, das Modell selbst, aber das Modell selbst wird off-line erstellt,
und dann sind die Ergebnisse dieses Modells,
das Modell selbst,
an den Webdienst gepusht. Lassen Sie uns hier über einige spezifischere Beispiele sprechen, um es riel zu machen. Nehmen wir an, Sie verwenden Google Cloud Services auf eine Weise, wie Sie dies sehr einfach tun können. Es ist nur, die SK gelernt externals Job lib Methode hier zu verwenden. Damit können
Sie einfach Job lib dot dump mit was auch immer Ihr Modell ist sagen. Du kennst einen Klassifikator
, der alles sein könnte, oder? Ah, K bedeutet,
dass du sogar K bedeutet,
dass du sogareinen Deep Learning Klassifikator da drin
haben kannst. Wenn du uns gut und psychisch gelernt willst, kann das in eine Akte werfen, nachdem es trainiert wurde . Du gibst ihm nur einen Dateinamen. Und für Google Cloud, es will, dass es Modell Dot Job Lippe genannt wird. Sie laden dann das resultierende Modell dot Job Live, das das Modell selbst in Google Cloud-Speicher enthält, und von dort könnte er einfach sagen, dass dies innerhalb des psychischen Lernrahmens ausgeführt wird, und es wird wissen, was damit zu tun ist. An diesem Punkt können
Sie einfach eine Cloud ml Engine in sie binden. Die Google-Cloud. Mm L Motor. Und das wird festsetzen ein p I, das Sie anrufen können, um Vorhersagen in Echtzeit basierend
auf diesem Modell zu machen , das Sie in die Google Cloud hochgeladen haben. Sehen Sie, wie das funktioniert. Also im Grunde würden
Sie Ihren Klassifikator offline in einem Notebook oder was auch immer trainieren, Sie es tun möchten. Exportieren Sie diesen Klassifikator in eine Datei, laden Sie diese Datei in Google Cloud-Speicher hoch, und dann könnte Google Cloud-ML-Engine tatsächlich mit, dass mit Ihren Anwendungen
über Verhaftung interagieren , a p I. und dann könnte Google Cloud-ML-Engine tatsächlich mit, dass mit Ihren Anwendungen
über Verhaftung interagieren,
a p I.
weiß nicht, was ein P I ist, es ist im Grunde das gleiche Protokoll, das Sie für die Suche auf Websites verwenden. Also, wenn Sie zu Ihrem Web-Browser gehen und sagen, ich möchte auf dieses Mädchen schauen, das eine Ruhe bekommen Anfrage an einen Server irgendwo sendet sagt, ich möchte die Ergebnisse dieses Mädchens bekommen und es gibt es in der gleichen exakten Art und Weise zurück Anwendung würde sagen, ich möchte eine Vorhersage für diese Reihe von Funktionen erhalten und es mir zurückgeben, bitte. Gleicher exakter Mechanismus. Sie könnten viel komplizierter werden, Nehmen wir an, dass die Verwendung von Amazon Web Services und Sie möchten ein ganzes End-to-End-System erstellen, das Produktempfehlungen macht. Eine Möglichkeit, dies in AWS zu tun, wäre, wenn Sie über eine Flotte von Servern verfügen, die
Auftragsdaten generieren . Wissen Sie, wenn Sie tatsächlich die Server überwachen, auf denen die Leute Aufträge aufgeben, könnten
wir einen Dienst namens Kinesis-Daten-Firehose auf diesen Servern laufen lassen,die , diese Protokolldaten
füttern Informationen in Amazon verfügt über drei Speicher. Und von dort, Amazons elastische Karte produzieren einen Service könnte diese Gesetzesdaten von s drei konsumieren. Vielleicht enthält das alle Kaufinformationen oder alle Informationen zur Ansicht oder alle Bewertungen Informationen für die Dinge, die wir empfehlen möchten. Und auf Amazon elastische Karte reduzieren. Wir könnten Apache Funke über einen gesamten Cluster ausführen, der diese Daten von S
3 verbraucht und Prognosen erstellen, die Empfehlungen basierend auf diesen Daten erstellen. Nun, in diesem Fall werde
ich das eigentliche Modell nicht selbst zu Ah,
einem Web-Service schieben . Ich werde nur die Ergebnisse davon rausschieben. Was ich also tun könnte, ist vorab Empfehlungen für jeden Benutzer im Voraus zu generieren. Also nach dem Konsumieren aller neuesten Daten von S drei alle neuesten Kaufdaten oder Rating-Zustand oder was auch immer Sie zu arbeiten haben. Ich kann losgehen und Apache Spark verwenden, um vorhergesagte empfohlene Elemente zu generieren, die Leute für jeden Benutzer in meinem System
mögen könnten . Ich könnte das dann in etwas wie Amazon Dynamodb veröffentlichen, die nur eine No-Folge-Datenbank ist, mit der ich sehr schnell eine Liste von
Element-IDs mit einer Liste von Benutzer-IDs verknüpfen kann, und das wird eine sehr schnelle Art, nach oben zu schauen. Welche Artikel sollte ich für einen bestimmten Benutzer empfehlen? Also nehme ich die Ausgabe des Modells und veröffentlichte die Ausgabe auf etwas skalierbareres. Wie Dynamodb. Dynamodb ist horizontal skalierbar, sodass es sehr hohe Transaktionsraten bei sehr niedriger
Latenz verarbeiten kann . Um das der Außenwelt zugänglich zu machen,könnte
ich etwas wie AWS Lambda verwenden,
die ihre Server-Lis-Funktionalität ist, mit der Sie nur sehr einfache Funktionen schreiben können,
dieauf diese Dynamodb-Datenbank zugreifen Um das der Außenwelt zugänglich zu machen, könnte
ich etwas wie AWS Lambda verwenden, die ihre Server-Lis-Funktionalität ist, mit der Sie nur sehr einfache Funktionen schreiben können,
die vergeben Benutzer und rufen Sie die Ergebnisse für eine Anwendung zurück. Und es ist nicht so, dass Sie sich keine Sorgen über die Bereitstellung von
Serverkapazität machen müssen , um ausgeführt zu werden. Das AWS kümmert sich um all das für Sie. Vor dem haben
Sie vielleicht etwas namens Amazon e p I-Gateway, das tatsächlich
die restliche Schnittstelle zur Verfügung stellen würde, mit der Ihr Mobiltelefon verfällt oder Websites
tatsächlich sprechen würden , um diese Daten abzurufen. also esalsoaus der anderen Richtung
betrachten, könnte
Ihre Client-Anwendung sagen, dass ich Empfehlungen für diesen Benutzer erhalten möchte. Ich d. es würde sagen, okay. Amazon E P I Gateway, geben Sie mir Empfehlungen für diesen Benutzer. Ich habe eine Ruheabfrage hinter den Kulissen durchlaufen, die diese Anfrage an aws
Lambda übertragen würde , was wiederum skalierbar sein muss. Lambda würde sagen, Okay, ich werde das nehmen und ein bisschen JavaScript-Code ausführen oder so. Abrufen der tatsächlichen Artikelideen und Dynamodb für diesen Benutzer i D. Und das wurde alles von Apache Spark auf EMR erstellt, die Empfehlungen
von Amazon erstellt haben, hat drei. Das ist also eine kompliziertere Art und Weise, dass es eher ein Beispiel für Dinge ist, die man in der realen Welt sehen
könnte. Wissen Sie, diese Systeme neigen dazu, ziemlich kompliziert zu werden, weil es scheint, dass Sie sich mit
massivem Maßstab beschäftigen . Sie müssen sich irgendwann mit einer Cloud beschäftigen, und Sie müssen sich mit Technologien wie Apache Spark beschäftigen, die bis zu massiven
Datensätzen skalieren können . Das ist also,
was für ein
fortgeschritteneres Beispiel,
wenn Sie so wollen,
aber ein sehr reales Beispiel, wie Sie so etwas tatsächlich in der realen
Welt wieder implementieren könnten. fortgeschritteneres Beispiel, wenn Sie so wollen, aber ein sehr reales Beispiel, wie Sie so etwas tatsächlich in der realen
Welt wieder implementieren könnten Der Schlüssel ist, dass die tatsächliche Generierung des Modells vom Verkauf der Daten getrennt ist , die daraus resultierenden Ergebnisse. der obersten Reihe gibt es also den Prozess, die Empfehlungen selbst zu erstellen. Aber dann haben wir die eigentlichen Empfehlungen auf etwas
gesenkt, das für
Dynamodb skalierbarer ist, mit Lambda, dem letztlich Amazon E P I Gateway gegenübersteht. Und dann haben wir ein End-to-End-System, das die Entlüftung der Ergebnisse unseres
Modells in großem Maßstab bewältigen kann . Es gibt auch andere Möglichkeiten, es zu tun. Sie könnten einfach Ihren eigenen Web-Service schreiben, wenn Sie Flask oder etwas verwenden möchten,
oder was auch immer Web-Service-Framework, das Sie mögen. Sie müssten dann natürlich Ihre eigenen Server bereitstellen und warten, was nicht viel Spaß macht. Ich meine, deshalb nutzen Menschen heutzutage Dienste wie AWS und Google Cloud und Azure. Ähm, auch, Sie können alle mit einer Plattform reingehen. Alle diese Cloud-Anbieter neigen dazu, ihre eigenen Systeme und Technologien für
maschinelles Lernen in diesen Tagen zu haben , so unten ist wie eine teilweise Liste der AWS-Services, die derzeit im Bereich maschinelles Lernen
verfügbar sind , für -Beispiel. Also, wissen
Sie, wenn Sie nur Spracherkennung oder Bilderkennung durchführen möchten, haben
sie Dienste, die vom Regal verfügbar sind. Das wird nur für dich tun. Und Sie können diese natürlich sehr einfach in andere AWS-Services integrieren, um größere
Systeme zu bauen , wie die, die wir hier gesehen haben, so etwas zu berücksichtigen, auch wenn es immer eine gute Idee ist, neue Ideen zu erstellen off line in einem Notizbuch oder so etwas. Aber letztendlich könnte
die Art und Weise, wie Sie sie für ein größeres System implementieren, sehr unterschiedlich sein. Also hoffe ich, das gibt Ihnen eine Art, ah, hochrangige Vorstellung davon, wie Sie Ihre Modelle tatsächlich einem realen
System aussetzen könnten . Die wichtigste Erkenntnis besteht darin, die Generierung des Modells selbst in seinen Ergebnissen vom
Problem zu trennen , dass diese Ergebnisse tatsächlich einer riesigen Flotte von Verbrauchern dieser Daten bereitgestellt werden,
unabhängig davon, ob Sie mit AWS oder Google Cloud Services arbeiten oder Ihre eigenen oder Microsoft Azure, ich meine, das
sind alle Themen ganzer Kurse ihrer eigenen. Als ob ich das und eine ganze Menge Tiefe im Moment nicht abdecken kann. Aber zumindest gibt Ihnen das einen Ausgangspunkt, wo Sie erkunden können, wenn Sie in
der Lage sind, diese Ergebnisse an einem echten Ort bereitzustellen.
80. A/B: Wenn Sie als Data Scientists bei einem Webunternehmen arbeiten, werden
Sie wahrscheinlich aufgefordert, einige Zeit mit der Analyse der Ergebnisse eines B-Tests zu verbringen. Dies sind grundsätzlich kontrollierte Experimente auf einer Website, um die Auswirkungen einer bestimmten
Änderung zu messen . Lassen Sie uns also darüber sprechen, was ein B-Test sind und wie sie funktionieren. Lassen Sie uns über einen B-Test sprechen. Wenn Sie ein Data Scientist bei einem großen Tech-Webunternehmen sein werden, ist
dies etwas, an dem Sie definitiv beteiligt sein werden, weil Leute
Experimente durchführen müssen , um verschiedene Dinge auf einer Website auszuprobieren und die Ergebnisse davon zu messen. Und das ist eigentlich nicht unkompliziert, wie die meisten Leute denken, es ist. Lassen Sie uns also darüber sprechen, was ein B-Test sind und was sind die Herausforderungen um sie herum. Was ist also ein A-B-Test? Nun, es ist ein kontrolliertes Experiment, dass Sie normalerweise eine Website betreiben. Ich meine, es könnte auch auf andere Kontexte angewendet werden, aber normalerweise sprechen wir von einer Website, und was wir versuchen zu tun, ist, die Leistung einer Änderung dieser Website im Vergleich zu
der Art, wie sie vorher war zu testen . Sie haben also im Grunde eine Kontrollgruppe von Personen, die die alte Website sehen und eine Testgruppe von Personen, die die Änderung auf der Website sehen. Und die Idee ist, den Unterschied im Verhalten zwischen diesen beiden Gruppen zu messen und diese
Daten tatsächlich zu verwenden, um zu entscheiden, ob diese Änderung von Vorteil war oder nicht. Also, zum Beispiel, ich besitze ein Unternehmen, das eine Website hat. Wir lizenzierten Software für Menschen, und im Moment habe ich eine schöne, freundliche orangefarbene Taste, dass die Leute auf klicken, wo sie eine Lizenz kaufen wollen. Vielleicht wäre Blue besser. Woher weiß ich das? Ich meine intuitiv. Vielleicht könnte das die Aufmerksamkeit ihrer Leute mehr oder intuitiv erregen. Vielleicht sind die Leute eher daran gewöhnt, Orangen-Buttons zu sehen, und ich war schnell wahrscheinlich darauf zu klicken. Ich könnte das so oder so ausgeben, ? Meine eigenen internen Vorurteile oder Vorurteile sind also nicht wirklich wichtig. Was zählt, ist, wie die Leute tatsächlich auf diese Veränderung auf meiner eigentlichen Website reagieren, und das ist, was ein Navy-Test bewirkt. Es wird tatsächlich Leute in einige Leute aufteilen, sehen Sie den orangefarbenen Knopf. Einige Leute sehen den blauen Knopf, und ich kann dann das Verhalten zwischen diesen beiden Gruppen messen und wie sie sich unterscheiden können und meine Entscheidung über welche Farbe
treffen. Meine Schaltflächen sollten auf diesen Daten basieren. Sie könnten alle möglichen Dinge innerhalb eines B-Tests testen. Wir sprechen über Designänderungen, so dass Sie die Farbe einer Schaltfläche, die Platzierung einer Schaltfläche, das Layout einer Seite kennen. Was haben Sie? Es könnte ein ganzer U Y Fluss sein. Vielleicht ändern Sie also tatsächlich die Art und Weise, wie Ihre Kauf-Pipeline funktioniert und wie Leute auf Ihrer Website
auschecken, und Sie können tatsächlich die Wirkung dieser algorithmischen Änderungen messen. Gehen wir zurück zum Beispiel, wie wir Filmempfehlungen machen. Vielleicht möchte ich einen Algorithmus gegen einen anderen testen. Und anstatt sich auf Fehlermetriken und meine Fähigkeit zu verlassen, Zugtests zu machen, wissen
Sie, was mir wirklich wichtig ist, ist das Fahren von Einkäufen oder Mieten oder was auch immer es auf dieser
Website ist . Und vielleicht könnte Test mich direkt anrufen mich direkt messen die Auswirkungen dieses Algorithmus auf das Endergebnis, das mir eigentlich wichtig ist, und nicht nur meine Fähigkeit, Filme vorherzusagen, die andere Leute bereits gesehen haben. Preisänderungen. Dieser wird ein bisschen umstritten. Wissen Sie, theoretisch können
Sie tatsächlich mit verschiedenen Preispunkten experimentieren, indem Sie einen A-B-Test verwenden und sehen, ob er tatsächlich das Volumen erhöht, um die Preisdifferenz oder was auch immer auszugleichen. Aber benutze das mit Vorsicht. Wenn Kunden gewinnen gewinnen, dass andere Menschen bekommen bessere Preise und sie sind ohne guten Grund. Sie werden nicht sehr glücklich mit dir sein. Denken Sie also
daran, dass Preisexperimente eine negative Gegenreaktion haben können, und Sie möchten nicht in dieser Situation sein. Alles andere, was du träumen könntest. Wirklich. Jede Änderung, die sich auf die Interaktion von Benutzern mit Ihrer Website auswirkt, ist es wert, zu testen. Vielleicht ist es sogar, wissen
Sie, die Website schneller
zu machen oder könnte alles sein. Das erste, was Sie herausfinden müssen, wenn Sie ein Experiment auf einer Website entwerfen ist, wofür versuchen Sie zu optimieren? Was ist es, dass Sie wirklich mit dieser Änderung fahren wollen? Und das ist nicht immer eine sehr offensichtliche Sache, oder? Vielleicht ist es der Betrag, den die Leute die Höhe der Einnahmen ausgeben. OK, nun, wir sprachen über die Probleme mit Varianten bei der Verwendung der ausgegebenen Menge, aber wenn Sie genug Daten haben, können
Sie immer noch eine Konvergenz auf dieser Metrik erreichen. Es wissen Sie, viele Male, aber vielleicht ist das nicht das, wofür Sie eigentlich optimieren wollen? Vielleicht sind Sie tatsächlich verkaufen einige Artikel, die ein Verlust absichtlich, nur um
Marktanteile zu erfassen . Oder, wissen
Sie, es gibt mehr Komplexität, die in Ihre Preisstrategie eingeht als nur
Top-Line-Umsatz . Vielleicht ist das, was Sie wirklich messen wollen, Profit. Und das könnte eine sehr knifflige Sache zu messen sein, weil eine Menge Dinge schneiden in, wie viel Geld ein bestimmtes Produkt machen könnte. Und diese Dinge sind vielleicht nicht immer offensichtlich. Und wieder, wenn Sie Führer verloren haben, wird
dieses Experiment die Wirkung, die diese Luft haben soll, diskontieren. Also, Strich, müssen
Sie mit den Geschäftseigentümern der Gegend sprechen, die getestet wird, und herausfinden, was sie versuchen, für das zu optimieren, woran sie gemessen werden? Was ist ihr Erfolg gemessen an der Luft Dort, wissen
Sie, Schlüssel-Leistungsindikatoren oder wie auch immer die NBA es nennen wollen, und stellen Sie sicher, dass wir die Sache
messen, die ihnen wirklich wichtig ist. Okay, vielleicht kümmern Sie sich einfach darum, Anzeigenklicks auf Ihrer Website zu steuern oder Mengen zu bestellen, um
Varianten zu reduzieren . Vielleicht sind die Leute damit einverstanden,
und Sie wissen, dass Sie mehr als eine Sache auf einmal messen können, müssen Sie nicht eine auswählen. Sie können tatsächlich über die Auswirkungen von vielen verschiedenen Dingen berichten. Umsatz, Gewinnklicks, Anzeigenansichten Und wenn sich diese Dinge zusammen in die richtige Richtung bewegen, ist
das ein sehr starkes Zeichen dafür, dass sich diese Veränderung in mehr als einer Hinsicht positiv auswirkte, oder? Warum also beschränken Sie sich auf eine Metrik? Stellen Sie einfach sicher, dass Sie wissen, welche am wichtigsten ist und was Ihre Kriterien für den
Erfolg dieses Experiments im Voraus sein wird. Eine andere Sache zu achten, für uns Zuordnung Conversions zu einer Änderung flussabwärts. Wenn also die Aktion, die Sie versuchen zu fahren, nicht sofort passiert, wenn der Benutzer das Ding
erlebt, das Sie testen, Dinge ein wenig zwielig. Nehmen wir an, ich ändere die Farbe der Schaltfläche auf der Seite. Ein Benutzer geht dann auf Seite B und tut etwas anderes und letztendlich etwas von bezahlten kaufen. Siehst du gut, wer bekommt Kredit für den Kauf? Ist es Seite A oder Seite B oder so? Dazwischen? Ermäßigte ich die Gutschrift für diese Umwandlung? Abhängig davon, wie viele Klicks diese Person nahm, um zur Konvertierungsaktion zu gelangen? Werde ich nur eine Umwandlung verwerfen, halbe Aktion. Das passiert nicht sofort, nachdem wir diese Veränderung gesehen haben. Das sind komplizierte Dinge. Undwissen
Sie, wissen
Sie, es ist sehr einfach, irreführende Ergebnisse zu erzielen, indem Sie die verschiedenen
Entfernungen zwischen der Umwandlung und der Änderung, die Sie messen, berücksichtigen . Also bedenken Sie das auch. Eine andere Sache, die du wirklich verinnerlichen musst, ist, dass Varianz dein Feind ist, wenn du einen A-B-Test durchführst. Ein sehr häufiger Fehler machen Leute, die nicht wissen, was sie mit Data Science zu tun ist, dass sie einen Test auf einer Webseite aufstellen werden. Du weißt schon, blauer Knopf gegen orangefarbene Taste, was auch immer es ist, führe es für eine Woche und nimm den mittleren Betrag, der von jeder dieser Gruppen ausgegeben wird. Und sie sagen: Übersehen Sie die Menschen mit dem blauen Knopf im Durchschnitt, verbrachte einen Dollar mehr als die Menschen mit dem orangefarbenen Knopf. Blau ist genial. Ich liebe Blau. Ich werde jetzt auf der ganzen Website blau setzen,
aber in der Tat, alles, was sie gesehen haben könnten, war nur zufällige Variationen bei den Käufen. Weißt du, sie hatten keine große Probe, weil die Leute nicht dazu neigen, viel zu kaufen. Sie wissen, dass sie viel Nutzen haben, aber Sie haben wahrscheinlich eine Menge Einkäufe auf Ihrer Website im Vergleich. Und es ist wahrscheinlich eine große Abweichung in diesen Einkaufsbeträgen, weil verschiedene Produkte unterschiedliche Beträge
kosten, so dass Sie sehr leicht am Ende die falsche Entscheidung treffen könnten, die Ihr Unternehmen auf lange Sicht
Geld kostet anstatt Ihr Firmengeld zu verdienen. Wenn Sie die Auswirkungen von Varianten auf diese Ergebnisse nicht verstehen, und in Kürze werden wir über einige grundlegende Möglichkeiten der Messung und Abrechnung sprechen. Und stellen Sie sicher, dass Sie sicherstellen müssen, dass Ihre Geschäftsinhaber verstehen, dass dies ein
wichtiger Effekt ist , den Sie quantifizieren und verstehen müssen, bevor Sie geschäftliche Entscheidungen nach einem A-B-Test oder einem Experiment treffen, das Sie jetzt im Web ausführen, manchmal müssen Sie eine Konvertierungsmetrik wählen, die eine geringere Varianz aufweist. Wissen Sie, es könnte sein, dass die Zahlen auf Ihrer Website nur bedeuten, dass Sie ein
Experiment für Jahre durchführen müssten , um eine signifikante Ergebnisse basierend auf etwas wie Umsatz
oder Menge ausgegeben zu erhalten . Also manchmal, wenn Sie mehr als eine Metrik wie Bestellung, Betrag, Bestellung,
Menge, die weniger Abweichung zugeordnet ist. Und so sehen Sie vielleicht ein Signal für die Bestellmenge, bevor Sie
zum Beispiel ein Signal auf den Umsatz sehen , und am Ende des Tages, es endet ein Urteil Anruf. Wissen Sie, wenn Sie einen signifikanten Anstieg der Bestellmengen und vielleicht eine nicht so bedeutende
Umsatzliste sehen , dann müssen Sie sagen:
Nun, ich denke, es könnte etwas Reales geben, das von Vorteil ist hier los. Aber am Ende des Tages,
das einzige, was Statistiken und Datengröße Comptel Sie Wahrscheinlichkeiten sind, dass, in der Tat, Israel , wissen
Sie, es ist wirklich an Ihnen zu entscheiden, ob es wirklich am Ende des Tages. Lassen Sie uns also genauer darüber sprechen, wie man dies macht. Das ist also eine Einführung in einen B-Test. Der Schlüssel wegnehmen dort ist nur die Unterschiede zu betrachten, und Mittel sind nicht genug. Wenn Sie versuchen, die Ergebnisse eines Experiments zu bewerten, müssen
Sie auch die Varianten berücksichtigen. Lassen Sie uns also auf einige Beispiele in unserer nächsten Vorlesung gehen, wie Sie tatsächlich die Auswirkungen
der Varianz mit den Metriken T-Statistik und P-Wertmessen der Varianz mit den Metriken T-Statistik und P-Wert
81. T-Tests und P-Werte: Woher weiß ich also, ob eine Änderung, die aus einem A-B-Test Israel resultiert, wenn es tatsächlich ein wirklich Ergebnis dessen ist, was ich geändert habe oder facistische zufällige Variation? Nun, es stehen ein paar statistische Werkzeuge zur Verfügung, die T-Statistik und
P-Wert genannt werden. Lassen Sie uns also mehr darüber erfahren, was diese sind und wie sie Ihnen helfen können, festzustellen, ob ein Experiment gut ist oder nicht. Also, wie ich in unserer vorherigen Vorlesung sagte Varianzen Ihren Feind, wenn Sie in einem B-Test laufen. Also, wie erklären wir das? Nun, es gibt einige statistische Werkzeuge zur Verfügung, genannt tes-Test für die T-Statistik genauer, und der P-Wert, der es ermöglicht, die Wirkung von Varianten auf unsere Ergebnisse zu quantifizieren und eine Entscheidung zu treffen, dass berücksichtigt diese Varianten. Der Punkt besteht also darin, herauszufinden, ob ein Ergebnis real ist oder nicht. War dies nur ein Ergebnis einer zufälligen Varianz, die den Daten selbst inhärent ist? Oder sehen wir eine tatsächliche, statistisch signifikante Veränderung des Verhaltens zwischen unserer Kontrollgruppe in unseren Testgruppen
T-Tests und P-Werten, oder eine Möglichkeit, dies zu berechnen und wieder daran zu erinnern. Statistisch signifikant hat nicht wirklich eine spezifische Bedeutung. Am Ende des Tages muss
es ein Urteilsruf sein. Sie müssen einen Wahrscheinlichkeitswert auswählen, den Sie akzeptieren, dass ein Ergebnis Riel ist oder nicht. Aber es wird immer eine Chance geben, dass es immer noch ein Ergebnis von zufälligen Variationen ist, und Sie müssen sicherstellen, dass Ihre Stakeholder das verstehen. Beginnen wir also mit der T-Statistik. Ellison war es. Ein T-Test ist im Grunde ein Maß für den Unterschied im Verhalten zwischen diesen beiden Sätzen zwischen Ihrer Kontroll- und Behandlungsgruppe, ausgedrückt in Einheiten von Standardfehlern. Es basiert also auf Standardfehlern, die Varianz berücksichtigt, die den Daten selbst innewohnt. Indem wir also alles durch diesen Standardfehler normalisieren, erhalten
wir ein gewisses Maß für die Verhaltensänderung zwischen diesen beiden Gruppen, die Varianz berücksichtigt. Die Art und Weise, eine T-Statistik zu interpretieren, ist bei einem hohen Tee-Wert bedeutet, dass es wahrscheinlich einen echten Unterschied zwischen diesen beiden Schrittsätzen gibt. Es gibt einen lo T Wert bedeutet nicht so viel. Also musst du dich entscheiden. Weißt du, was eine Schwelle ist, die du akzeptieren willst? Und das Vorzeichen der T-Statistik wird Ihnen sagen, ob es sich um eine positive oder eine negative Kette handelt. Wenn Sie also Ihre Kontrolle,
Ihre Behandlungsgruppe und Sie am Ende mit einer negativen T-Statistik vergleichen , bedeutet
das, dass dies eine schlechte Veränderung ist. Wenn dieser absolute Wert dieser T-Statistik groß ist, wie groß ist? Nun, das ist umstritten. Wir werden uns in Kürze einige Beispiele ansehen. Dies setzt voraus, dass Sie eine normale Verteilung des Verhaltens haben. Und wenn wir über Dinge wie die Menge sprechen, die Menschen auf einer Website ausgeben, ist
das normalerweise eine anständige Annahme. Es neigt dazu, eine normale Verteilung davon zu geben, wie viel Menschen ausgeben, jedoch ihren Arm oder raffinierte Versionen der T-Statistik, die Sie vielleicht für andere
spezifische Situationen betrachten möchten . Zum Beispiel
gibt es etwas, das Fisher's exakter Test genannt wird. Wenn Sie über sprechen, klicken Sie durch Preise E Test, wenn Sie über Transaktionen pro Benutzer sprechen, wie viele Webseiten haben sie gesehen? Und der Chai Quadrat Test
, der oft relevant ist, wenn Sie auf Bestellmengen suchen? Also manchmal werden Sie wollen, um alle diese Statistiken wurden Experiment gegeben und wählen Sie diejenige, die tatsächlich passt, was Sie versuchen, das Beste zu tun. Jetzt ist es viel einfacher, über P-Werte zu sprechen als T-Statistiken, da Sie nicht darüber nachdenken müssen, wie viele Standardabweichungen wir sprechen. Und was ist der tatsächliche Wert bedeuten? Der P-Wert ist ein wenig leichter für die Menschen zu verstehen, was es zu einem besseren Werkzeug für Sie macht, die Ergebnisse eines Experiments an die
Stakeholder in Ihrem Unternehmen zu kommunizieren . Der P-Wert ist also im Grunde die Wahrscheinlichkeit, dass dieses Experiment die
Nullhypothese erfüllt . Das ist die Wahrscheinlichkeit, dass es keinen wirklichen Unterschied zwischen der Kontrolle und dem
Behandlungsverhalten gibt. Ein niedriger P-Wert bedeutet also, dass es eine geringe Wahrscheinlichkeit gibt, dass es keine Wirkung hat, irgendwie ein doppeltes Negativ, das dort vorgeht. Es ist also ein wenig konterintuitiv, aber am Ende des Tages müssen
Sie nur verstehen, dass ein niedriger P-Wert bedeutet, dass es eine hohe Wahrscheinlichkeit gibt, dass Ihre Änderung eine echte Wirkung hatte. Also, was Sie sehen möchten, oder hohe Zähne Statistik und einen niedrigen p-Wert, und das wird eine signifikante Ergebnisse implizieren. Nun, bevor Sie Ihr Experiment beginnen, müssen
Sie entscheiden, wie Ihre Schwelle für den Erfolg sein wird, wissen
Sie,
entscheiden, dass mit den Verantwortlichen für das Geschäft. Welchen P-Wert sind Sie bereit, als Maß für Erfolg zu akzeptieren? Ist es 1%? Ist es 5%? Und wieder, dies ist im Grunde die Wahrscheinlichkeit, dass es keinen Riel-Effekt gibt, der nur ein Ergebnis von zufälliger Varianz ist. Es ist nur ein Urteilsruf am Ende des Tages. Viele Male verwenden Menschen 1%. Manchmal verwenden sie 5% ihres Gefühls ein bisschen riskanter. Aber es wird immer die Chance geben, dass Ihr Ergebnis nur falsche Zufallsdaten waren
, die hereinkamen. Aber Sie können die Wahrscheinlichkeit wählen, die Sie bereit sind zu akzeptieren, als wahrscheinlich genug , dass dies ein echter Effekt ist, der es wert ist, in die Produktion zu rollen. Wenn Ihr Experiment vorbei ist und wir darüber sprechen, wenn Sie ein Experiment für
vorbei erklären , möchten
Sie Ihren P-Wert messen. Wenn es kleiner ist als der Schwellenwert, für den Sie sich entscheiden, dann können Sie die Nullhypothese ablehnen und Sie können sagen, naja, es besteht eine hohe Wahrscheinlichkeit, dass diese Änderung zu einem Riel positiven oder negativen Ergebnis führte. Es ist ein positives Ergebnis, als Sie diese Änderung auf die gesamte Website rollen können, und es ist nicht mehr ein Experiment. Ist Teil Ihrer Website, die hoffentlich machen Sie mehr und mehr Geld, wie die Zeit geht weiter. Und wenn es ein negatives Ergebnis ist, wollen
Sie es loswerden, bevor es Sie mehr Geld kostet. Denken Sie daran, dies sind echte Kosten für die Ausführung in einem B-Test, wenn Ihr Experiment negative
Ergebnisse hat , also möchten Sie es nicht zu lange ausführen, weil es eine Chance gibt, dass Sie Geld verlieren könnten . Und deshalb möchten Sie die Ergebnisse eines Experiments täglich überwachen. Wenn es also frühe Anzeichen dafür gibt, dass eine Änderung einen schrecklichen Einfluss auf die Website hat
,gibt es vielleicht einen Fehler oder etwas, das schrecklich ist. , Sie können den Stecker bei Bedarf vorzeitig ziehen und den Schaden begrenzen. Lassen Sie uns also zu einem tatsächlichen Beispiel gehen und sehen, wie Sie T-Statistiken und P-Werte
mit Python als nächstes messen können. Das ist also der T-Test, die T-Statistik und der P-Wert nützliche Werkzeuge, um zu bestimmen, ob ein Ergebnis
tatsächlich oder ein Ergebnis einer zufälligen Variation ist . Lassen Sie uns als nächstes in einige echte Beispiele eintauchen und unsere Hände mit etwas Python-Code schmutzig machen und diese Dinge berechnen.
82. Praktische Anleitungen mit T-Tests: Lassen Sie uns einige experimentelle Daten erstellen und die T-Statistik und den P-Wert verwenden, um zu bestimmen ob ein gegebenes experimentelles Ergebnis ein echter Effekt ist oder nicht. Alles klar, lassen Sie uns unsere Hände schmutzig machen mit ein paar T-Tests, die tatsächlich einige gefälschte
experimentelle Daten herstellen und T-Statistiken und P-Täler auf ihnen ausführen und sehen, wie es funktioniert und wie
man es in Python berechnet. Lassen Sie uns damit beginnen, einige Daten hier zu erstellen. Stellen wir uns vor, dass wir einen A-B-Test auf einer Website durchführen und unsere
Benutzer zufällig in zwei Gruppen eingeteilt haben , Gruppe A und Gruppe B und Gruppe A werden Unsere Testpersonen sind Behandlungsgruppe und Gruppe B wird unsere Kontrolle sein. Grundsätzlich ist
die Art, wie die Website verwendet, um so in diesem Beispiel Behandlung Gruppe wird ein
zufällig verteiltes Kaufverhalten haben , wo sie im Durchschnitt $25 pro Transaktion ausgeben, widerstehen Abweichungen von fünf und 10.000 Proben. Wo ist die Art und Weise, wie die Website verwendet wurde, hatte einen Mittelwert von $26 pro Transaktion, mit der gleichen Standardabweichung und Stichprobengröße. Wir betrachten also im Grunde ein Experiment, das hier ein negatives Ergebnis hatte, und alles, was Sie tun
müssen, um die T-Statistik und den P-Wert herauszufinden, wird so praktisch verwendet. Dandy Stats Stock T Test End Methode von Sai Pie Es ist nur so einfach. Also, was Sie tun, ist, dass Sie es in Ihrer Behandlungsgruppe in Ihrer Kontrollgruppe übergeben und Ergebnisse Ihrer T-Statistik, die in diesem Fall negativ ist. 13. Das Negativ zeigt an, dass es sich um eine negative Änderung handelt. Das war eine schlechte Sache, und der P-Wert ist sehr, sehr klein. Das bedeutet also, dass es eine extrem geringe Wahrscheinlichkeit gibt, dass diese Änderung nur ein Ergebnis zufälliger
Zufälle ist . Also denken Sie
daran, um Bedeutung zu erklären, müssen
wir ah,
hohe Tee-Wert T Statistik und einen niedrigen P-Wert sehen . Und genau das sehen wir hier. Wir sehen negative 13, was ein sehr hoher absoluter Wert ist, die T-Statistik negativ, was
darauf hinweist, dass das eine schlechte Sache ist und ein extrem kleiner P-Wert uns sagt, dass es
praktisch keine Chance gibt , dass dies nur ein Ergebnis von zufälligen Variation. Wenn Sie also diese Ergebnisse in der realen Welt gesehen
haben, würden Sie so schnell wie möglich den Stecker an diesem Experiment ziehen. Okay, so ist nur ein sandiger Scheck. Lasst uns weitermachen und die Dinge ändern, so dass es tatsächlich keinen Unterschied zwischen diesen beiden Gruppen gibt. Also werde ich Gruppe B ändern. Die Kontrollgruppe in diesem Fall ist die gleiche wie eine Behandlung, bei der der Mittelwert 25 ist die Standardabweichung, die im Stichprobenumfang der Sonnenkette unverändert ist. Wenn Sie also voran gehen und das laufen, müssen Sie sehen, dass unser T-Test jetzt unter einem liegt . Also erinnern Sie sich daran, dass dies in Bezug auf die Standardabweichung ist, also bedeutet das,dass also bedeutet das, es dort wahrscheinlich keine echte Veränderung gibt. Es muss einen viel höheren P-Wert sowie über 30% haben. Nun, diese Luft immer noch relativ hohe ish Zahlen. Du weißt also, du kannst sehen, dass zufällige Variationen irgendwie eine heimtückische Sache sein können. diesem Grund müssen Sie sich im Voraus entscheiden. Was ist hier ein akzeptabler Grenzwert für den P-Wert? Weißt du, du könntest dir das nach der Tatsache ansehen und
sagen, dass es, weißt
du, das ist nicht so schlimm. können wir leben. Aber nein, ich meine in Wirklichkeit, in der Praxis wollen
Sie P Täler sehen, die unter 5% liegen, idealerweise unter 1% und ein Wert von 30% bedeutet, dass es tatsächlich nicht so stark von einem Ergebnis ist. Also rechtfertigen Sie es nicht nach der Tatsache. Gehen Sie in Ihr Experiment, um zu wissen, was Ihre Schwelle ist. Lassen Sie uns hier einige Änderungen vornehmen, und, wissen
Sie, wieder, wir erstellen diese Sets unter den gleichen Bedingungen. Mal sehen, ob wir tatsächlich einen Unterschied im Verhalten bekommen, indem wir den Stichprobenumfang erhöhen, also gehen wir von 210.000 Stichproben. Sie können hier sehen, dass tatsächlich der P-Wert etwas niedriger wurde und der T-Test ein
wenig größer, aber es muss immer noch keinen echten Unterschied deklarieren. Also weißt du, du würdest diesen Teoh erwarten. Es geht tatsächlich in die Richtung. Sie würden nicht erwarten, dass es richtig interessant ist, aber es gibt immer noch hohe Werte wieder. Es ist nur die effektive zufällige Varianz, und es könnte mehr Auswirkungen auf Sie erkennen, vor allem auf einer Website. Wenn Sie über Bestellbeträge sprechen. Lasst
uns Ach, gehen wir tatsächlich zu 1.000.000. Was ist das? Nun, jetzt sind wir wieder unter eins für die T-Statistik und unsere Werte um 35%. Also, ich meine, wir sehen diese Art von, wie ein wenig schwanken in beide Richtungen, wenn wir den Stichprobenumfang erhöhen. Das bedeutet, dass von 10.000 Proben, 200.000 auf 1.000.000 Ihr Ergebnis am Ende des Tages nicht ändern wird. Weißt du, das ist und das Ausführen von Experimenten wie diesem ist ein guter Weg, um ein gutes Bauchgefühl zu bekommen, wie lange Sie vielleicht brauchen, um ein Experiment durchzuführen, denn wie viele Probe dauert es tatsächlich, um ein signifikantes Ergebnis zu erzielen? Und wenn Sie etwas über die Verteilung Ihrer Daten im Voraus wissen, können
Sie tatsächlich diese Arten von Modellen ausführen. Nun, das ist eine Vernunft Check. Wenn wir das Set tatsächlich mit sich selbst vergleichen würden, wird
dies auf einem Test genannt, und wir werden später darüber sprechen. Wir sollten eine T-Statistik von Null und einen P-Wert von einem Punkt sehen. Oh, denn es gibt in der Tat keinen Unterschied zwischen diesen Sets. nun mit echten Website-Daten ausführen würden, Wenn Sie dasnun mit echten Website-Daten ausführen würden,bei denen Sie wissen, dass Sie
genau dieselben Personen betrachten und einen anderen Wert gesehen haben, der darauf hinweist, dass ein Problem im System
selbst vorliegt, das Ihre Tests ausführt. Richtig. In Ordnung. Also, weißt
du, am Ende des Tages, wie ich schon sagte, es ist alles ein Urteilsruf. Also mach voran und spiele damit. Sie wissen, was die Auswirkungen verschiedener Standardabweichungen auf die Anfangsdatensätze oder
unterschiedliche Mittelunterschiede haben und sich auf verschiedene Stichprobengrößen auswirken. Also möchte ich nur, dass Sie eintauchen, mit diesen verschiedenen Datensätzen
herumspielen und sie tatsächlich ausführen und sehen, was der Effekt
auf die T-Statistik im P-Wert ist . Und hoffentlich wird das Ihnen amore Bauchgefühl geben, wie man diese Ergebnisse interpretiert. Aber wieder, das Wichtige zu verstehen, dass Sie nach einer großen T-Statistik und einem kleinen
p-Wert P-Werte suchen , wird wahrscheinlich das sein, was Sie dem Unternehmen mitteilen möchten. Und denken Sie daran, niedriger ist besser für p-Wert. Sie wollen sehen, dass in den einstelligen Ziffern, wissen
Sie, idealerweise unter 1%, bevor Sie den Sieg erklären. Okay, reden
wir über einen B-Test und mehr in unserem nächsten Vortrag. Also, da hast du es CYP. Ich mache es wirklich einfach, T-Statistiken und P-Werte für einen bestimmten Satz von Daten zu berechnen, so dass Sie das Verhalten zwischen Ihren Kontroll- und Behandlungsgruppen sehr einfach vergleichen und
messen können , wie wahrscheinlich dieser Effekt Riel oder nur ein Ergebnis von zufällige Variation. Stellen Sie also sicher, dass Sie sich auf diese Metriken konzentrieren, und Sie messen die Konversionsmetrik, die Ihnen wichtig ist, wenn Sie diese
Vergleiche durchführen .
83. So zeigst du die Lang ein Experiment: Wie lange führen Sie ein Experiment durch? Wie lange dauert es, bis tatsächlich ein Ergebnis erzielt wird? An welchem Punkt gibst du auf? Lass uns als Nächstes darüber reden. Das wird eine sehr schnelle Vorlesung. Ich möchte nur ein paar Minuten damit verbringen, darüber zu reden, wie ich entscheiden kann, wann ein Experiment
vorbei ist . Also, wenn jemand in Ihrem Unternehmen hat ein neues Experiment eine neue Veränderung entwickelt, die sie
testen wollen , haben
sie ein persönliches Interesse daran, dass erfolgreich zu sehen. Weißt du, sie haben eine Menge Arbeit in die Zeit gesteckt, und sie wollen, dass es erfolgreich ist und vielleicht Wochen vergangen ist. Und Sie haben bei diesem Experiment immer noch kein signifikantes Ergebnis erreicht, positiv oder negativ, wissen
Sie, sie werden es so ziemlich unbegrenzt weiterführen wollen, in der Hoffnung, dass es
irgendwann eine positives Ergebnis. Es liegt an dir Zeh. Zeichnen Sie die Linie darauf, wie lange Sie bereit sind, dieses Experiment durchzuführen. Woher weiß ich, wann ich mit einem A-B-Test fertig bin? Ich meine, es ist nicht immer unkompliziert vorherzusagen, wie lange es dauern wird, bis Sie ein
signifikantes Ergebnis erzielen können , aber wenn Sie signifikante Ergebnisse erzielt haben, wissen
Sie Ihren P-Wert ist unter 1% oder 5% des Schwellenwerts, den Sie gewählt haben, gesunken . Und wissen Sie, an diesem Punkt können Sie den Stecker in das Experiment ziehen, entweder die Änderung
breiter ausrollen oder entfernen, weil es tatsächlich einen negativen Effekt hatte. Sie können den Leuten immer sagen, sie sollen zurückgehen und es erneut versuchen. Wissen Sie, was sie aus dem Experiment gelernt haben,
benutzt, um es vielleicht mit einigen Änderungen zu versuchen. Und du weißt, dass das in Ordnung ist. Erweichen Sie den Schlag ein wenig, aber die andere Sache, die passieren könnte, ist, dass es einfach keine Umwandlung überhaupt ist. Und wenn Sie im Laufe der Zeit keine Trends im P-Wert sehen, ist
es wahrscheinlich ein gutes Zeichen dafür, dass Sie diese Konverge nicht bald sehen werden. Das wird einfach nicht genug Einfluss auf das Verhalten haben, um sogar messbar zu sein, egal wie lange Sie es ausführen. Was Sie also tun möchten, ist ein tägliches Plot auf einem Diagramm verzeihten Experiment, den P-Wert , die T-Statistik, was auch immer Sie verwenden, um den Erfolg dieses Experiments zu messen, und wenn Sie sehen, wissen Sie etwas sieht vielversprechend aus. Sie werden sehen, dass P-Werte im Laufe der Zeit sinken. Je mehr Daten sie erhalten, desto bedeutender sollten Ihre Ergebnisse erhalten. Wenn Sie stattdessen eine flache Linie oder eine Linie sehen, die überall ist,sagt Ihnen
diese Art von, dass das P Valley nirgendwohin geht. Wenn Sie stattdessen eine flache Linie oder eine Linie sehen, die überall ist, Und es spielt keine Rolle, wie lange du dieses Experiment durchführst. Es wird einfach nicht passieren. Sie müssen also vorab zustimmen, dass in dem Fall, in dem Sie keine Trends in
P-Werten
sehen , die längste ist, für die Sie bereit sind, dieses Experiment durchzuführen? Sind es zwei Wochen? Ist es ein Monat? Denken Sie daran, dass mehr als ein Experiment gleichzeitig auf der Seite ausgeführt wird,
Ihre Ergebnisse zusammenfassen können . Zeit für Experimente ist also ein wertvolles Gut. Sie können nicht mehr Zeit in der Welt machen, so dass Sie nur wirklich seine vielen Experimente ausführen können, wie Sie Zeit haben, sie in mit dem gegebenen ein Jahr laufen zu lassen. Wenn Sie also zu viel Zeit damit verbringen, ein Experiment auszuführen, das wirklich keine Chance hat ein Ergebnis zu
konvergieren, ist
dies eine Gelegenheit, die Sie verpasst haben,
während dieser Zeit ein weiteres potenziell wertvolleres Experiment durchzuführen , das Sie mit Diese andere. Daher ist es wichtig, die Grenze zu den Experimentlängen zu ziehen, weil die Zeit ein sehr wertvolles
Gut ist . Wenn Sie einen B-Test auf einer Website ausführen, mindestens solange Sie mehr Ideen haben und Sie Zeit haben, was hoffentlich der Fall ist, und das war's. Weißt du, es ist ein kleines Gleichnis darüber, dass du mit vereinbarten Obergrenzen eingehst und wie lange du mit Tests und Experimenten verbringen wirst. Und wenn Sie keine Trends im P-Wert sehen, die ermutigend aussehen, ist
es an der Zeit, den Stecker zu diesem Zeitpunkt zu ziehen. Denk daran, die Zeit ist ein kostbares Gut. Wenn Sie auf einer Website experimentieren, können
Sie nur so viele Experimente auf einmal durchführen, normalerweise eine und die Zeit, die Sie verschwenden, um auf ein Ergebnis zu warten, das nie auf
ein Experiment kommen wird . Diesmal
hättest du damit verbringen können, ein Experiment auszuprobieren, das tatsächlich einen positiven Unterschied bewirkt hat. Wählen Sie also Ihre Fristen mit Bedacht aus.
84. A/B-Test Gotchas: ein wichtiger Punkt, den ich machen möchte, ist, dass die Ergebnisse eines A-B-Tests, auch wenn Sie sie prinzipiell messen. Die Verwendung von P-Werten ist kein Evangelium. Es gibt viele Effekte, die tatsächlich die Ergebnisse Ihres Experiments verzerren und dazu führen können
, dass Sie die falsche Entscheidung treffen. Also lasst uns ein paar davon durchgehen und euch wissen lassen, wie man auf sie aufpasst. Also lassen Sie uns über einige Gouaches mit einem B-Test sprechen. Weißt du, es klingt wirklich offiziell zu sagen, dass es einen P-Wert von 1% gibt, was bedeutet, dass es nur eine 1% Chance , dass ein bestimmtes Experiment auf falsche Ergebnisse oder zufällige Variationen zurückzuführen ist. Aber es ist immer noch nicht das alles und Ende der Messung des Erfolgs für ein Experiment. Es gibt viele Dinge, die Ihre Ergebnisse verzerren oder zusammenfassen können, die Sie beachten müssen. Also, selbst wenn Sie einen P-Wert sehen, der sehr ermutigend aussieht, Ihr Web, könnte Ihr Experiment Sie immer noch belügen, und Sie müssen die Dinge verstehen, die das passieren könnten, damit Sie nicht die falschen Entscheidungen treffen. Denken Sie daran, Korrelation bedeutet keine Ursache, auch mit einem gut gestalteten Experiment,
Alles, was Sie sagen können, ist es eine gewisse Wahrscheinlichkeit, dass dieser Effekt durch diese Änderung verursacht wurde, die Sie gemacht. Am Ende des Tages wird
es immer eine Chance geben, dass es keinen wirklichen Effekt gab, oder Sie könnten sogar den falschen Effekt
messen. Es könnte immer noch zufällig sein, dass etwas anderes los sein könnte. Es ist Ihre Pflicht, sicherzustellen, dass die Unternehmer verstehen, dass diese experimentellen Ergebnisse interpretiert werden müssen. Sie müssen ein Teil ihrer Entscheidung sein, richtig. Es kann nicht alles sein und all das beenden. Sie haben die Entscheidung zugrunde gelegt, weil es Raum für Fehler in den Ergebnissen gibt und es
Dinge gibt , die diese Ergebnisse am Ende des Tages verzerren können. Wenn es ein größeres Geschäftsziel für diese Veränderung gibt, wissen
Sie, nur die Förderung kurzfristiger Umsätze, die auch berücksichtigt werden müssen. Ein Problem sind Neuheitseffekte,
also ist die Art der Achillesferse eines A-B-Tests der kurze Zeitrahmen, über den sie dazu neigen, in Ordnung zu laufen, und dies verursacht ein paar Probleme. Erstens, wenn es längerfristige Auswirkungen auf diese Änderung gibt, werden
Sie diese nicht messen. Aber auch gibt es einen gewissen Effekt. Ist nur etwas anders auf der Website. Vielleicht sind Ihre Kunden daran gewöhnt, orange Knöpfe die ganze Zeit zu sehen, und dieser blaue Knopf erscheint und er zieht ihre Aufmerksamkeit auf sich, nur weil er anders ist. Aber da neue Kunden kommen, die Ihre Website noch nie gesehen haben, bemerken
sie nicht, dass in Überstunden anders ist. Sogar Ihre alten Kunden gewöhnen sich an den neuen blauen Knopf, und es könnte sehr gut sein, dass, wenn Sie den gleichen Test ein Jahr später machen würden, es keinen Unterschied geben würde. Oder vielleicht gibt es andersherum. Wissen Sie, ich konnte sehr leicht eine Situation sehen, in der Sie orange Taste gegen blauen Knopf testen, und in den ersten 2 Wochen gewinnt der blaue Knopf. Die Leute kaufen mehr, weil sie mehr davon angezogen wurden, weil es anders ist. Aber ein Jahr vergeht. Ich könnte wahrscheinlich ein anderes Web-Labor betreiben, das diesen blauen Knopf gegen einen orangefarbenen Knopf setzt, und der orangefarbene Knopf würde wieder gewinnen, einfach weil der orangefarbene Knopf anders ist und neu ist und die Leute nur aus diesem Grund allein auffängt. Also aus diesem Grund, wenn Sie haben, ah,
ändern, ist das etwas umstritten. Es empfiehlt sich, dieses Experiment später erneut auszuführen und zu sehen, ob Sie die Ergebnisse tatsächlich
replizieren können . Das ist wirklich der einzige Weg, den ich kenne, um Neuheitseffekte zu berücksichtigen. Man misst es tatsächlich wieder, wenn es nicht mehr neu ist, wenn es nicht mehr nur eine Veränderung ist, die Aufmerksamkeit meiner Fänger Leute einfach, weil es
anders ist und das ist, dass ich wirklich nicht untersagen kann, wie wichtig es ist, dies zu verstehen. Dies könnte wirklich viele Ergebnisse verzerren. Es verzerrt Sie, positive Veränderungen auf Dinge zuzuschreiben, die es nicht wirklich verdienen. Wissen Sie, in und für sich selbst anders zu
sein, ist keine Tugend, zumindest nicht in diesem Zusammenhang. Noch ein Problem. Saisonale Effekte. Sie also WennSie alsoüber Weihnachten ein Experiment durchführen, neigen die
Leute nicht dazu, sich während der Weihnachtszeit genauso zu verhalten, wie sie den Rest des Jahres tun. Weißt du, sie geben ihr Geld in dieser Saison definitiv anders aus, sie verbringen mehr Zeit mit ihren Familien zu Hause. Sie könnten ein wenig aus der Arbeit überprüft werden, so dass die Leute einen anderen Geist haben. Es könnte sogar mit dem Wetter verwickelt sein. Weißt du, während des Sommers verhalten sich die
Leute anders, weil es heiß ist. Weißt du, sie sind nett. Sie fühlen sich irgendwie von Lee, entweder im Urlaub öfter. Vielleicht, wenn Sie zufällig Ihr Experiment während der Zeit eines schrecklichen Sturms in einem stark besiedelten Gebiet machen, das Ihre Ergebnisse auch verzerren könnte. Also wieder, nur bewusst sein potenzielle saisonale Effekte Urlaub oder eine große zu beachten. Und nehmen Sie immer Ihre Erfahrung mit einem Salzkorn, wenn sie in einem Zeitraum ausgeführt werden, von bekannt ist,
dass sie Saisonalität haben, und Sie können dies quantitativ bestimmen, indem Sie sich die Metrik, die Sie messen
möchten , als Erfolg. Metrik, sei es Was auch immer Sie Ihre Conversion-Metrik nennen und sich ihr Verhalten im gleichen
Zeitraum des letzten Jahres ansehen , gibt es Schwankungen saisonale Schwankungen, die Sie jedes Jahr sehen? Und wenn ja, möchten
Sie versuchen, Ihr Experiment während eines dieser Gipfel oder Täler zu vermeiden. Ein weiteres potenzielles Problem, das Ski-Ergebnisse erzielen kann, ist die Auswahl Bias Daher ist es sehr wichtig, dass Kunden zufällig entweder Ihrer Kontrolle,
Ihren Behandlungsgruppen,
Sie sind eine oder Ihre B-Gruppe zugeordnet wurden Ihren Behandlungsgruppen, , richtig, Aber es gibt subtile Wege, auf denen diese Zufallszuweisung vielleicht nicht zufällig ist. zum Beispiel an, Nehmen wirzum Beispiel an,dass Sie Ihre Kundenideen Hashing, um sie in den einen oder anderen Bucket zu platzieren . Vielleicht gibt es eine subtile Vibe Bias zwischen der Art, wie diese Hash-Funktion Menschen mit
niedrigeren Kundenideen im Vergleich zu höheren Kundenideen beeinflusst . Und das könnte den Effekt haben, all Ihre langjährigen oder treuen Kunden in die
Kontrollgruppe und Ihre neueren Kunden, die Sie nicht so gut kennen, in Ihre
Behandlungsgruppezu bringen Kontrollgruppe und Ihre neueren Kunden, die Sie nicht so gut kennen, in Ihre
Behandlungsgruppe . Und was Sie am Ende messen, ist nur ein Unterschied im Verhalten zwischen alten Kunden und Neukunden als Ergebnis. Daher ist es sehr wichtig, Ihre Systeme zu überprüfen, um sicherzustellen, dass es keine Selektionsvoreingenommenheit in der tatsächlichen Zuordnung von Personen zur Kontrolle der Behandlungsgruppe gibt. Sie müssen auch sicherstellen, dass Simon klebrig ist Wenn Sie
also den Effekt einer Änderung über eine gesamte Sitzung messen, wissen
Sie, dass Sie messen möchten. Sie sahen eine Änderung auf Seite A, aber über unbezahlte sehen, sie haben tatsächlich eine Konvertierung durchgeführt. Sie müssen sicherstellen, dass sie keine Gruppen zwischen diesen Klicks wechseln, also müssen Sie sicherstellen, dass innerhalb einer bestimmten Sitzung Personen in der gleichen Gruppe bleiben
und wie eine Sitzung definiert wird, kann auch eine Art nebulös werden. Nun, sind alle Probleme, die mit einem etablierten off-the shelf Framework wie
Google-Experimente optimiert sind Lee oder einer dieser Jungs kann helfen. Sie wissen, dass Sie das Rad bei all diesen Problemen nicht neu erfinden, aber wenn Ihr Unternehmen,
ah,eine hauseigene Lösung hat ah, , weil sie nicht mit der Weitergabe dieser Daten an
externe Unternehmen vertraut sind , Sie wissen, dass es eine Prüfung wert ist. Ob es Auswahl, Voreingenommenheit oder nicht. Eine Möglichkeit, dies zu tun, ist das Ausführen, was bei einem Test genannt wird. Wenn Sie also tatsächlich ein Experiment durchführen, bei dem es keinen Unterschied zwischen der Behandlung und Kontrolle gibt, sollten
Sie keinen Unterschied im Endergebnis sehen, oder? Wissen Sie, es sollte keine Art von Verhaltensänderung geben, wenn Sie diese beiden Dinge vergleichen, so dass ein Test eine gute Möglichkeit sein könnte, zu testen. Sie sind ein B-Framework selbst, um sicherzustellen, dass es keine inhärente Voreingenommenheit oder andere Probleme gibt. Zum Beispiel, Session-Leckage und was? Nicht, dass du dich ansprechen musst. Ein weiteres großes Problem ist die Verschmutzung der Daten. Daher haben wir ausführlich über die Wichtigkeit der Säuberung Ihrer Eingabedaten gesprochen, und dies ist besonders wichtig im Zusammenhang mit einem Navy-Test. Was würde passieren, wenn Sie einen Roboter
haben, einen bösartigen Crawler, der ständig durch Ihre Website kriecht? Wissen Sie, eine unnatürliche Menge an Transaktionen zu
machen, und dieser Roboter wird entweder der Behandlung der Kontrolle zugewiesen. Diese eine Person, dieser ein Roboter, nicht einmal eine Person könnte die Ergebnisse Ihres Experiments verzerren. Daher ist es sehr wichtig, den Eingang in Ihre Waffe zu Ihrem Experiment zu studieren und nach Ausreißern zu
suchen und zu analysieren, was diese Ausreißer sind. Sollen sie ausgeschlossen werden? Lassen Sie tatsächlich einige Roboter in Ihre Messungen austreten? Und verzerren sie die Ergebnisse Ihres Experiments? Dies ist ein sehr, sehr häufiges Problem und etwas, das Sie wissen müssen. Es gibt bösartige Roboter da draußen, die Leute versuchen, sich in Ihre Website zu hacken. Es gibt, weißt
du, gutartige Schaber da draußen. Sie versuchen nur, Ihre Website für Suchmaschinen zu crawlen oder was nicht. Wissen Sie, es gibt allerlei seltsames Verhalten auf einer Website, und Sie müssen diese herausfiltern und wirklich die Leute bekommen, die wirklich Ihre Kunden sind und nicht diese automatisierten Skripte. Und das könnte
eigentlich ein sehr herausforderndes Problem sein. Noch ein weiterer Grund, off-the shelf Frameworks wie Google Analytics oder so zu verwenden, wenn Sie können. In Ordnung, und wir haben kurz über Attributionsfehler gesprochen. Sie WennSietatsächlich Downstream-Verhalten von einer Änderung verwenden, die in einen grauen Bereich gelangt , müssen
Sie verstehen, wie Sie diese Konvertierungen tatsächlich als Funktion der Entfernung von der Sache, die Sie geändert haben, und, Sie wissen, stimmen mit Ihren geschäftlichen Stakeholdern im Voraus überein, wie Sie diese
Effekte messen , die Sie auch beachten müssen. Wenn Sie mehrere Experimente ausführen, die einmal sind, werden sie miteinander in Konflikt geraten? Gibt es einen Seitenfluss, bei dem jemand tatsächlich zwei verschiedene Experimente
in derselben Sitzung treffen könnte ? Wenn ja, wird
das ein Problem sein, und Sie müssen im Grunde Ihr Urteil darüber anwenden, ob diese Änderungen tatsächlich auf einesinnvolle Weise miteinander
stören und das Verhalten der Kunden beeinflussenkönnten sinnvolle Weise miteinander
stören und das Verhalten der Kunden beeinflussen auf eine sinnvolle Weise. In Ordnung, also nochmal, sehr. Sie müssen diese Ergebnisse mit einem Salzkorn nehmen. Es gibt eine Menge Dinge, die Skiergebnisse könnte, und Sie müssen sich bewusst sein,
ähm, ähm, also seien Sie sich bewusst von ihnen und stellen Sie sicher, dass Ihre Geschäftseigentümer sich auch der
Einschränkungen eines B-Tests bewusst sind und Sie werden in Ordnung sein. Denken Sie also daran, die kurzfristige Natur eines A-B-Tests unterwirft es vielen Einschränkungen. Vielleicht sehen Sie nur Neuheitseffekte oder saisonale Effekte und was nicht. Wenn Sie also nicht in einer Position sind, in der Sie tatsächlich eine sehr lange Zeit
einem Experiment widmen können , müssen
Sie diese Ergebnisse mit einem Salzkorn nehmen und sie idealerweise später während
eines anderen Zeitraums erneut testen .