Python im algorithmischen Handel - Seite 21

 

Testen Sie Ihre Dollar-Cost-Average-Strategie ganz einfach in Python



Testen Sie Ihre Dollar-Cost-Average-Strategie ganz einfach in Python

In den nächsten etwa 20 Minuten werden wir eine Strategie zur Mittelung der Dollarkosten in Python implementieren. Mit dieser Strategie können Sie die Leistung der Mittelung der Dollarkosten für einen bestimmten Vermögenswert oder Index über einen bestimmten Zeitraum beurteilen. Zur Umsetzung dieser Strategie werden wir ein Tool namens backtesting.py verwenden. Backtesting.py ist ein benutzerfreundliches Framework in Python, das weniger einschüchternd ist als andere Bibliotheken wie Vectorbt oder Backtrader. Wenn Sie neu bei Python sind, ist dies eine großartige Option für Sie.

Die Strategie zur Mittelung der Dollarkosten, die wir implementieren werden, ist relativ einfach, aber ich werde Ihnen auch zeigen, wie Sie sie erweitern können. Unsere Strategie besteht darin, jeden Montag oder Dienstag einen festen Dollarbetrag eines bestimmten Vermögenswerts zu kaufen und diesen Vorgang zu wiederholen, bis uns die Daten ausgehen. Öffnen Sie zunächst ein Terminal und richten Sie eine neue virtuelle Umgebung ein, um eine saubere Umgebung für unsere Implementierung sicherzustellen. Sobald Sie die virtuelle Umgebung eingerichtet haben, installieren Sie das Backtesting-Paket mit pip:

Pip-Installations-Backtesting

Nach der Installation des Pakets können wir mit unserer Python-Datei fortfahren. Wir müssen einige notwendige Module und Daten importieren. Importieren Sie aus dem Backtesting die Backtest- und Strategiemodule. Importieren Sie außerdem einige Dummy-Daten von backtesting.test, insbesondere die Google-Daten. Für die Datenmanipulation benötigen wir außerdem das Pandas-Modul.

Definieren wir nun unsere Strategieklasse. Erstellen Sie eine Klasse namens DCA (Dollar Cost Average), die von der Strategieklasse erbt. Innerhalb dieser Klasse legen wir eine Klassenvariable namens amount_to_invest fest, die den festen Dollarbetrag darstellt, den wir investieren möchten. Stellen Sie den Wert zunächst auf 10 ein.

Als nächstes müssen wir zwei Funktionen innerhalb dieser Klasse definieren: __init__ und next. Die Funktion __init__ wird während der Initialisierung aufgerufen und zur Vorabberechnung aller Werte verwendet, die wir später möglicherweise benötigen. In unserem Fall erstellen wir einen Indikator, der uns den Wochentag anzeigt. Dazu verwenden wir die von backtesting.py bereitgestellte Methode self.indicator. Wir können unseren Indikator als self.day_of_week = self.indicator(lambda x: x, self.data.close.s.dt.dayofweek) definieren. Dieser Indikator gibt ein Array der Wochentagswerte (0-6, wobei Montag 0 und Sonntag 6 ist) für unsere Daten zurück.

Kommen wir nun zur nächsten Funktion, in der wir unsere Handelslogik implementieren. Diese Funktion wird für jeden Datenbalken aufgerufen und ermöglicht es uns, Entscheidungen auf Basis der aktuellen Daten zu treffen. In unserem Fall prüfen wir, ob der Wochentag gleich 1 (Dienstag) ist, indem wir if self.day_of_week == 1: verwenden. Wenn es Dienstag ist, werden wir ein Kaufsignal auslösen. Um den Kaufauftrag auszuführen, verwenden wir die von backtesting.py bereitgestellte Funktion self.buy. Wir können die Größe der Kauforder berechnen, indem wir den zu investierenden Betrag durch den aktuellen Schlusskurs des Vermögenswerts dividieren. Um sicherzustellen, dass wir eine ganze Anzahl Aktien kaufen, können wir das Ergebnis mit math.floor abrunden.

Um Bruchteile von Anteilen zu verarbeiten, können wir die Anteile aufteilen, indem wir den Vermögenswert mit einer kleinen Zahl multiplizieren, beispielsweise 10 ** -6. Dadurch werden die Aktien in Mikroaktien aufgeteilt, die später durch Division durch dieselbe kleine Zahl wieder in die tatsächliche Anzahl gekaufter Aktien umgewandelt werden können.

Schließlich müssen wir den Backtest ausführen und die Statistiken extrahieren. Dazu können wir bt.run() verwenden und das Ergebnis einer Variablen namens stats zuweisen. Wir können die Ergebnisse auch mit bt.plot() grafisch darstellen.

Da wir die Verkaufslogik noch nicht implementiert haben, erscheint der Plot als durchgehende Linie ohne Verkaufsargumente. Wir werden das bald beheben. Aber bevor wir das tun, extrahieren wir einige Statistiken aus den Backtest-Ergebnissen.

Dazu verwenden wir die zuvor definierte Statistikvariable. Wir können verschiedene Statistiken wie die Gesamtrendite, die jährliche Rendite, den maximalen Drawdown und mehr ausdrucken.

Fügen Sie gerne weitere Statistiken hinzu, wenn Sie weitere Leistungsmetriken untersuchen möchten.

Kommen wir nun zur Implementierung der Verkaufslogik. Da wir eine Strategie zur Mittelung der Dollarkosten verwenden, verkaufen wir jede Woche den gleichen festen Dollarbetrag. In unserem Fall verkaufen wir freitags.

Hier prüfen wir mithilfe des zuvor erstellten day_of_week-Indikators, ob der Wochentag 4 (Freitag) ist. Wenn es Freitag ist, verkaufen wir den gleichen Dollarbetrag, den wir zuvor gekauft haben, indem wir amount_to_invest durch den aktuellen Schlusskurs dividieren. Dadurch wird sichergestellt, dass wir die entsprechende Anzahl an Aktien verkaufen, die unserem Anlagebetrag entspricht.

Wenn wir nun den Backtest durchführen, sollten wir auf dem Plot Verkaufsargumente sehen, die auf die Freitage hinweisen, an denen wir unsere Position verkaufen.

Experimentieren Sie ruhig mit verschiedenen Variationen dieser Strategie, wie z. B. der Anpassung der Kauf-/Verkaufstage oder der Implementierung zusätzlicher Bedingungen basierend auf Preisbewegungen. Mit diesem Framework können Sie Ihre Strategie ganz einfach erweitern und an Ihre Anforderungen anpassen.

Denken Sie daran, die Variable amount_to_invest anzupassen und verschiedene Vermögensdaten zu untersuchen, um zu sehen, wie die Strategie funktioniert.

Ich hoffe, dies hilft Ihnen bei der Implementierung und Erkundung der Dollar-Cost-Averaging-Strategie mithilfe der backtesting.py-Bibliothek in Python. Lassen Sie mich wissen, wenn Sie weitere Fragen haben!

Backtest Your Dollar Cost Average Strategy easily in Python
Backtest Your Dollar Cost Average Strategy easily in Python
  • 2022.06.29
  • www.youtube.com
We backtest a simple dollar cost averaging strategy in backtesting.py. Backtesting.py is a super easy to use framework for beginners to python or to backtest...
 

Benutzerdefinierte Indikatoren in Backtesting.py – Python Deep Dive



Benutzerdefinierte Indikatoren in Backtesting.py – Python Deep Dive

In diesem Video werden wir den Prozess der Erstellung benutzerdefinierter Indikatoren in der backtesting.py-Bibliothek untersuchen. Diese Funktion ermöglicht es uns, jede Handelsstrategie einfach zu testen, indem wir Indikatoren erstellen und Python-Funktionen in ein Format übersetzen, das mit dem Backtesting.py-Ökosystem kompatibel ist.

Bevor wir uns mit den Details der Indikatorerstellung befassen, empfiehlt es sich, sich einen frei verfügbaren Kurs auf YouTube anzusehen, der die meisten Aspekte von backtesting.py abdeckt. Dieser Kurs vermittelt ein umfassendes Verständnis der Bibliothek, was bei der Erkundung der Indikatorerstellung in diesem Video von Vorteil sein wird.

In diesem Video konzentrieren wir uns auf drei verschiedene Beispiele, um verschiedene Indikatorideen abzudecken. Im ersten Beispiel geht es darum, in einem externen Python-Programm generierte Signale zu nutzen und in backtesting.py zu integrieren. Dieser Ansatz ist nützlich, wenn Sie bereits Kauf- und Verkaufssignale von einer externen Quelle haben und diese in Ihren Backtesting-Prozess integrieren möchten.

Das zweite Beispiel demonstriert die Verwendung der Pandas-ta-Bibliothek, um mehrere Werte für jeden Indikator zurückzugeben. Konkret werden wir mit dem Bollinger-Bänder-Indikator arbeiten und zeigen, wie man anstelle eines einfachen Numpy-Arrays einen Datenrahmen zurückgibt, der sowohl das untere als auch das obere Band enthält. Dieses Beispiel verdeutlicht die Vielseitigkeit der Erstellung von Indikatoren mit mehreren Werten.

Abschließend werden wir eine Momentum-Strategie von Hand programmieren, um zu demonstrieren, wie benutzerdefinierte Indikatoren mit reinem Python erstellt werden können. Dieses Beispiel zeigt die Flexibilität der Erstellung von Indikatoren mithilfe der Python-Programmierung und ermöglicht unbegrenzte Möglichkeiten beim Indikatordesign.

Um den Beispielen folgen zu können, stellen Sie sicher, dass Sie die erforderlichen Bibliotheken installiert haben, einschließlich Backtesting, Pandas und Pandas-ta. Nachdem Sie diese Bibliotheken installiert haben, erstellen Sie eine Python-Datei für die Codebeispiele.

Der erste Teil des Codes richtet das notwendige Grundgerüst für die Verwendung von backtesting.py ein. Es importiert die erforderlichen Klassen „Backtest“ und „Strategie“ und importiert Beispieldaten für Google-Aktien aus backtesting.py. Bei den importierten Daten handelt es sich um einen Pandas-Datenrahmen, der tägliche Preisdaten enthält, einschließlich Eröffnungs-, Höchst-, Tiefst-, Schluss- und Volumendaten, mit einem Datum-Uhrzeit-Index.

Für das erste Beispiel gehen wir davon aus, dass Sie bereits einige Signale in einem externen Programm generiert haben und diese an backtesting.py übertragen möchten. Um dies zu demonstrieren, erstellen wir mit Numpy Zufallssignale und fügen sie dem Google-Datenrahmen hinzu. Diese Signale könnten jeden Indikator darstellen, den Sie in Python programmiert haben, wobei -1 ein Verkaufssignal bedeutet, 0 keine Aktion anzeigt und 1 ein Kaufsignal darstellt.

Als Nächstes definieren wir eine Strategieklasse namens „SignalStrategy“, die von der zuvor importierten „Strategy“-Klasse erbt. Diese Klasse ist für die Implementierung der Kauf- und Verkaufslogik basierend auf den Signalen verantwortlich. Die Klasse umfasst die Initialisierungsfunktion „ init “ und die Funktion „next“.

In diesem speziellen Beispiel haben wir nicht viel mit der Funktion „ init “ zu tun, aber es empfiehlt sich, sie einzubeziehen. In der „nächsten“ Funktion wird die Kauf- und Verkaufslogik basierend auf den Signalen implementiert.

Um den Backtest auszuführen, erstellen wir eine Instanz der Backtest-Klasse und übergeben dabei den Google-Datenrahmen und die „SignalStrategy“-Klasse. Wir setzen auch den Cache-Wert auf 10.000. Anschließend führen wir den Backtest durch und speichern die Ergebnisse in der Variablen „stats“. Abschließend drucken wir die Statistiken aus, um die Leistung der Strategie zu sehen.

Das Ausführen des Codes zu diesem Zeitpunkt führt zu keinen Trades, da wir die Kauf- und Verkaufslogik noch nicht implementiert haben. Wir können jedoch auf die Signalwerte zugreifen, indem wir „self.data.signal“ innerhalb der „next“-Funktion verwenden, wodurch wir den neuesten Signalwert erhalten.

Zur Umsetzung der Kauf- und Verkaufslogik überprüfen wir den aktuellen Signalwert und die aktuelle Position. Wenn das Signal 1 ist (Kaufsignal) und keine Position vorhanden ist, führen wir eine Kauforder mit „self.buy“ aus. Wenn das Signal -1 (Verkaufssignal) ist und eine Long-Position besteht, führen wir mit „self.sell“ einen Verkaufsauftrag aus.

  1. Externe Signalstrategie:

    • Generieren Sie Zufallssignale oder beziehen Sie Signale von einem externen Programm.
    • Definieren Sie eine SignalStrategy-Klasse, die von Strategy erbt.
    • Implementieren Sie die nächste Methode, um Kauf- oder Verkaufsaufträge basierend auf den Signalen auszuführen.
    • Verwenden Sie die Methoden self.buy() und self.sell(), um die Aufträge auszuführen.
    • Instanziieren Sie ein Backtest-Objekt mit den Daten, der Strategie, dem Anfangskapital und der Provision.
    • Führen Sie den Backtest mit bt.run() durch und analysieren Sie die Ergebnisse.

  2. Pandas-ta für benutzerdefinierte Indikatoren verwenden:

    • Importieren Sie die pandas_ta-Bibliothek (installieren Sie sie mit pip install pandas_ta).
    • Verwenden Sie zur Berechnung des Indikators die gewünschte Indikatorfunktion von pandas_ta.
    • Hängen Sie den berechneten Indikator an den Datenrahmen an.
    • Definieren Sie eine Strategieklasse, die von Strategy erbt.
    • Implementieren Sie die nächste Methode, um Kauf- oder Verkaufsaufträge basierend auf den Indikatorwerten auszuführen.
    • Bestimmen Sie anhand der gewünschten Konditionen, wann Sie kaufen oder verkaufen sollten.
    • Instanziieren Sie ein Backtest-Objekt mit den Daten, der Strategie, dem Anfangskapital und der Provision.
    • Führen Sie den Backtest mit bt.run() durch und analysieren Sie die Ergebnisse.

Denken Sie daran, Platzhalter wie GOOG durch Ihre tatsächlichen Daten zu ersetzen und die Strategien an Ihre spezifischen Anforderungen anzupassen.

Custom Indicators In Backtesting.py - Python Deep Dive
Custom Indicators In Backtesting.py - Python Deep Dive
  • 2022.07.30
  • www.youtube.com
Learn how to make your own custom indicators in backtesting.py. We show how you can integrate libraries like pandas-ta, ta-lib, etc. as well as write your ow...
 

Stoppen Sie Verluste in Backtesting.py



Stoppen Sie Verluste in Backtesting.py

In diesem Video werden wir das Konzept der Stop-Losses in der Bibliothek „backtesting.py“ untersuchen. Das Video behandelt drei Beispiele zunehmender Komplexität und Tiefe und vermittelt ein umfassendes Verständnis der Stop-Losses in „backtesting.py“. Der Moderator setzt gewisse Vorkenntnisse zu „backtesting.py“ voraus und empfiehlt, sich einen kostenlosen Kurs auf YouTube für Anfänger anzusehen, bevor er sich mit diesem fortgeschrittenen Thema befasst.

Öffnen Sie zunächst ein Terminal und stellen Sie sicher, dass „backtesting.py“ installiert ist, indem Sie den Befehl „pip install backtesting“ ausführen. Dadurch werden alle erforderlichen Pakete installiert. Erstellen Sie dann eine neue Python-Datei, nennen wir sie „example.py“ und importieren Sie die erforderlichen Module: „backtest“ und „strategy“ aus „backtesting“ und „googledale“ aus „backtesting.test“. „googledale“ ist ein Testdatensatz, der mit „backtesting.py“ geliefert wird.

Als nächstes definieren Sie die Strategieklasse, indem Sie eine Klasse namens „Strats“ erstellen, die von der Klasse „strategy“ erbt. Implementieren Sie die beiden erforderlichen Funktionen: „ init “ und „next“. An diesem Punkt sind wir bereit, unseren Backtest durchzuführen. Initialisieren Sie ein neues Backtest-Objekt „bt“ mit der Funktion „backtest“. Übergeben Sie die „googledale“-Daten und die Strategieklasse, die wir gerade definiert haben. Legen Sie den anfänglichen Barwert auf 10.000 $ fest. Führen Sie abschließend den Backtest mit der Methode „bt.run“ durch und zeichnen Sie die Ergebnisse mit „bt.plot“ auf.

Die Strategieklasse führt zunächst keine Handelsaktionen durch. Um ein einfaches Stop-Loss-Beispiel zu demonstrieren, werden wir einige grundlegende Kauf- und Verkaufslogiken hinzufügen. Wenn wir eine bestehende Position haben, werden wir keine Maßnahmen ergreifen. Wenn wir jedoch keine Position haben, erteilen wir über die Methode „self.to_buy“ einen Kaufauftrag unter Angabe der Positionsgröße (z. B. 1 Aktie). Zusätzlich werden wir einen Stop-Loss und eine Gewinnmitnahme hinzufügen. Der Stop-Loss wird auf 10 Einheiten unter dem aktuellen Schlusskurs festgelegt, während der Take-Profit auf 20 Einheiten über dem aktuellen Schlusskurs festgelegt wird.

Durch die Durchführung des Backtests wird eine große Anzahl von Trades generiert. Sobald ein Trade geschlossen wird, wird beim nächsten Balken ein neuer Trade eröffnet, sofern kein Stop-Loss oder Take-Profit ausgelöst wird. Es ist wichtig zu verstehen, wie „backtesting.py“ mit Stop-Losses und Take-Profits umgeht. In Fällen, in denen sowohl der Stop-Loss als auch der Take-Profit im selben Balken ausgelöst werden, geht die Bibliothek davon aus, dass der Stop-Loss zuerst ausgelöst wird. Dieses Verhalten kann zu unerwarteten Ergebnissen führen, insbesondere wenn es um tägliche Daten geht, die erhebliche Lücken aufweisen können.

Um Stop-Losses effektiver zu verwalten, können wir die Strategieklasse erweitern und die von „backtesting.py“ bereitgestellte „Trailing-Strategie“ verwenden. Importieren Sie die erforderlichen Module, einschließlich „Crossover“ und „Trailing Strategy“ aus „backtesting.lib“. Erben Sie in der neuen Strategieklasse von der „Trailing Strategy“ anstelle der Basisklasse „Strategy“. Überschreiben Sie die Funktion „ init “, um die Funktion „ init “ der übergeordneten Klasse mit „super“ aufzurufen. Verwenden Sie dann die Funktion „set_trailing_stop_loss“ der übergeordneten Klasse, um einen Trailing-Stop-Loss-Wert festzulegen.

Im nächsten Abschnitt des Videos erklärt der Moderator genauer, wie die „Trailing-Strategie“ funktioniert und wie man sie an spezifische Anforderungen anpassen kann. In diesem Abschnitt liegt der Schwerpunkt jedoch auf der Verwendung der „Trailing-Strategie“ in unserem Code. Indem wir die Funktion „ init “ der übergeordneten Klasse aufrufen und die Funktion „set_trailing_stop_loss“ verwenden, können wir die Trailing-Stop-Loss-Funktionalität in unserem Backtest nutzen.

Insgesamt bietet das Video eine Schritt-für-Schritt-Erklärung zur Implementierung von Stop-Losses in „backtesting.py“. Es behandelt einfache Beispiele sowie fortgeschrittenere Konzepte wie das Nachlaufen eines Werts von 10, was bedeutet, dass unser Stop-Loss den Preis um 10 Einheiten hinterherhinkt.

Nachdem wir nun unsere Initialisierungsfunktion eingerichtet haben, fahren wir mit der nächsten Funktion fort. Hier wird der Großteil unserer Handelslogik implementiert. Innerhalb der next-Funktion rufen wir zunächst die next-Funktion der übergeordneten Klasse mit super().next() auf. Dadurch wird sichergestellt, dass die Trailing-Stop-Loss-Funktionalität zusammen mit der anderen Handelslogik ausgeführt wird.

Als Nächstes fügen wir Code hinzu, um unseren Trailing-Stop-Loss anzupassen. Wir verwenden eine bedingte Anweisung, um zu prüfen, ob wir eine offene Position haben (self.position ist nicht None). Wenn wir eine Position haben, aktualisieren wir den Trailing-Stop-Loss mit der Methode update_trailing_sl, die von der Klasse Trailing_Strategy bereitgestellt wird. Diese Methode nimmt den aktuellen Preis als Argument und aktualisiert den Stop-Loss entsprechend.

Stop Losses in Backtesting.py
Stop Losses in Backtesting.py
  • 2022.08.19
  • www.youtube.com
In this video we go in-depth on how to use stop-losses in backtesting.py. We cover both static and trailing stop losses and how backtesting.py executes them ...
 

Backtest-Validierung in Python (durch Zufälligkeit getäuscht)



Backtest-Validierung in Python (durch Zufälligkeit getäuscht)

Wir waren alle schon einmal in der Situation, dass wir eine Handelsstrategie entwickeln, sie einem Backtest unterziehen und als wir sie schließlich umsetzen, zeigt sie nicht die erwartete Leistung. Einer der Hauptgründe für diese Enttäuschung ist die übermäßige Anpassung der Strategie an einen bestimmten Satz historischer Daten, die im Backtest verwendet wurden. In diesem Video zeige ich eine Strategie zur Bekämpfung von Überanpassung und stelle sicher, dass Sie sich nicht auf Strategien verlassen, denen eine solide Grundlage fehlt, oder sich vom Zufall täuschen lassen.

Schauen wir uns ein konkretes Beispiel an. Ich habe einen Backtest einer einfachen RSI-basierten Strategie mit Bitcoin als Vermögenswert durchgeführt. Die Strategie besteht darin, zu verkaufen, wenn der RSI hoch ist, und zu kaufen, wenn der RSI niedrig ist. Die Backtest-Ergebnisse zeigten eine bescheidene Rendite von etwa drei Prozent, obwohl Bitcoin im Testzeitraum einen Rückgang von 15 Prozent verzeichnete. Auf den ersten Blick scheint es eine vielversprechende Strategie für Bärenmärkte zu sein.

Es ist jedoch von entscheidender Bedeutung, die Leistung der Strategie über verschiedene Zeiträume hinweg zu untersuchen, um festzustellen, ob sie konsistent profitable Gelegenheiten identifiziert oder ob sie beim Backtest einfach nur Glück mit den gewählten Parameterwerten hatte. Um dies zu erreichen, habe ich mehrere 30-Tage-Backtests durchgeführt, die sich über verschiedene Zeiträume im Laufe des Jahres erstreckten.

Indem wir die Verteilung der Erträge aus diesen Backtests grafisch darstellen, können wir Einblicke in die Wirksamkeit der Strategie gewinnen. Das Diagramm zeigt jedes 30-Tage-Fenster als Punkt und stellt die in diesem Zeitraum erzielten Renditen dar. Das zugehörige Boxplot zeigt die mittlere Rendite, die Quartile sowie die Maximal- und Minimalwerte an. Bei der Analyse des Diagramms wird deutlich, dass die mittlere Rendite über einen Zeitraum von 30 Tagen -8,5 Prozent beträgt. Darüber hinaus scheint die Verteilung der Renditen zufällig zu sein, ähnlich den Ergebnissen, die man von einem Zufallszahlengenerator zwischen -35 und 15 erwarten würde. Diese Ergebnisse weisen stark darauf hin, dass die Strategie über die spezifischen historischen Daten hinaus, die in verwendet werden, nicht eindeutig oder effektiv ist Backtest.

Um die Strategie zu validieren und den Einfluss der Überanpassung abzuschwächen, müssen wir Backtests für ein breiteres Datenspektrum durchführen. Zu diesem Zweck habe ich mehrere Datendateien heruntergeladen, die das gesamte Jahr abdecken, von Anfang 2022 bis Ende 2022. Ich habe diese Dateien in einer Master-CSV zusammengefasst, die einminütige Kerzendaten für den gesamten Zeitraum enthält.

Im Validierungscode habe ich einige kleinere Anpassungen vorgenommen, um den erweiterten Datensatz zu berücksichtigen. Die Kernstrategie bleibt dieselbe und konzentriert sich auf die RSI-basierte Handelslogik. Allerdings habe ich eine Schleife eingeführt, um Backtests in 30-Tage-Fenstern über die gesamten Daten hinweg durchzuführen. Bei jedem Backtest werden Renditen berechnet, die dann zur weiteren Analyse einer Liste hinzugefügt werden.

Durch die Erstellung eines Boxplots anhand der gesammelten Renditen können wir die Verteilung der Strategieleistung über verschiedene 30-Tage-Fenster hinweg visualisieren. Dieses Diagramm zeigt die Variabilität der Renditen und liefert ein klareres Bild der Leistung der Strategie über verschiedene Zeitintervalle. In diesem konkreten Beispiel zeigt das Diagramm für fast jeden Monat überwiegend negative Renditen an, was darauf hindeutet, dass es der Strategie an konsistenter Rentabilität mangelt.

Diese Techniken zur Validierung und Verifizierung von Handelsstrategien können auf jedes Backtesting-Framework Ihrer Wahl angewendet werden. Der bereitgestellte Code nutzt die Bibliothek backtesting.py, Sie können ihn jedoch an andere Bibliotheken wie vectorbt oder backtrader anpassen. Der Kerngedanke besteht darin, sicherzustellen, dass Ihre Strategie über verschiedene Zeiträume hinweg robust ist und nicht einfach das Ergebnis einer Überanpassung an einen bestimmten Satz historischer Daten ist.

Indem Sie diese Validierungsschritte befolgen, können Sie das Risiko verringern, sich auf Strategien zu verlassen, die nicht auf der Realität basieren, oder Opfer zufälliger Ergebnisse zu werden. Es ist wichtig, über die Backtest-Leistung hinauszugehen und die Wirksamkeit der Strategie unter verschiedenen Marktbedingungen zu berücksichtigen, um fundierte Entscheidungen bei der Umsetzung von Handelsstrategien zu treffen.

Nach der Analyse der Backtest-Ergebnisse und der Verteilung der Renditen über verschiedene Zeiträume stellten wir fest, dass die Leistung der Strategie im Wesentlichen zufällig war. Außerhalb des spezifischen Zeitraums, der für das Backtesting verwendet wurde, konnte keine konsistente Rentabilität erzielt werden. Dies deutet darauf hin, dass die Strategie unter einer Überanpassung litt und es ihr an Robustheit mangelte.

Um nicht in die Overfitting-Falle zu tappen und die Chancen auf die Entwicklung zuverlässiger Handelsstrategien zu erhöhen, hier ein paar Empfehlungen:

  1. Verwenden Sie ausreichend und vielfältige Daten: Stellen Sie sicher, dass Ihr Backtest eine erhebliche Menge historischer Daten umfasst, um verschiedene Marktbedingungen abzudecken. Dies trägt dazu bei, ein breiteres Spektrum an Szenarien zu erfassen und verringert die Wahrscheinlichkeit einer Überanpassung an bestimmte Marktbedingungen.

  2. Validierung über mehrere Zeitrahmen hinweg: Anstatt sich beim Backtesting ausschließlich auf einen einzigen Zeitraum zu verlassen, testen Sie Ihre Strategie über verschiedene Zeitrahmen hinweg. Dies liefert Einblicke in die Leistung unter verschiedenen Marktbedingungen und hilft festzustellen, ob die Strategie eine konsistente Rentabilität aufweist oder ob die beobachteten Ergebnisse auf Zufälligkeit zurückzuführen sind.

  3. Implementieren Sie Tests außerhalb der Stichprobe: Reservieren Sie einen Teil Ihrer historischen Daten für Tests außerhalb der Stichprobe. Nachdem Sie Ihren primären Backtest für den ursprünglichen Datensatz durchgeführt haben, validieren Sie die Strategie anhand der reservierten Daten, die das Modell zuvor noch nicht gesehen hat. Dies hilft bei der Beurteilung der Fähigkeit der Strategie, sich an unerwartete Marktbedingungen anzupassen, und ermöglicht eine realistischere Bewertung ihrer Leistung.

  4. Vorsicht bei der Kurvenanpassung: Vermeiden Sie übermäßige Optimierung oder Parameteroptimierung, um die Strategie zu genau an historische Daten anzupassen. Strategien, die zu sehr auf bestimmte Datenmuster zugeschnitten sind, scheitern im realen Handel eher. Streben Sie nach Robustheit, anstatt nur anhand historischer Daten eine außergewöhnliche Leistung zu erzielen.

  5. Ziehen Sie eine Walk-Forward-Analyse in Betracht: Anstatt sich ausschließlich auf statische Backtests zu verlassen, sollten Sie die Verwendung einer Walk-Forward-Analyse in Betracht ziehen. Dazu gehört die regelmäßige Neuoptimierung und erneute Prüfung Ihrer Strategie, sobald neue Daten verfügbar werden. Es ermöglicht Ihnen, Ihre Strategie kontinuierlich anzupassen und zu verfeinern und so ihre Leistung bei sich ändernden Marktbedingungen zu verbessern.

  6. Verwenden Sie statistische Signifikanztests: Wenden Sie statistische Tests an, um die Signifikanz der Leistung Ihrer Strategie zu bewerten. Dies hilft festzustellen, ob die beobachteten Ergebnisse statistisch aussagekräftig sind oder lediglich auf Zufall beruhen. Zu den gängigen statistischen Tests, die beim Backtesting verwendet werden, gehören T-Tests, Bootstrap-Tests und Monte-Carlo-Simulationen.

Indem Sie diese Richtlinien befolgen, können Sie das Risiko verringern, Strategien zu entwickeln, die zu sehr auf historische Daten abgestimmt sind, und die Wahrscheinlichkeit erhöhen, robuste und zuverlässige Handelsansätze zu entwickeln.

Denken Sie daran, dass das Ziel darin besteht, Handelsstrategien zu entwickeln, die unter verschiedenen Marktbedingungen eine konsistente Rentabilität aufweisen, und nicht darin, Strategien zu entwickeln, die lediglich anhand historischer Daten eine gute Leistung erbringen.

Backtest Validation in Python (Fooled By Randomness)
Backtest Validation in Python (Fooled By Randomness)
  • 2022.09.14
  • www.youtube.com
In this video we go through a method that I've found helpful for validating my backtests before I go live with a strategy. Looking at the distribution of ret...
 

Eine schnelle Einführung in Python für Ingenieure des maschinellen Lernens



Eine schnelle Einführung in Python für Ingenieure des maschinellen Lernens

Der Kursleiter stellt zunächst das Konzept der prädiktiven Modellierung und seine Bedeutung in der Branche vor. Der Schwerpunkt der prädiktiven Modellierung liegt auf der Entwicklung von Modellen, die genaue Vorhersagen treffen können, auch wenn sie möglicherweise keine Erklärung dafür liefern, warum diese Vorhersagen getroffen werden. Der Dozent betont, dass sich der Kurs speziell auf tabellarische Daten wie Tabellenkalkulationen oder Datenbanken konzentriert. Ziel ist es, die Studierenden von Entwicklern, die sich für maschinelles Lernen in Python interessieren, zu Experten im Umgang mit neuen Datensätzen, der Entwicklung von End-to-End-Vorhersagemodellen und der Nutzung von Python und der SCIPy-Bibliothek für maschinelle Lernaufgaben zu machen.

Zu Beginn bietet der Dozent einen Crashkurs in Python-Syntax an. Sie behandeln grundlegende Konzepte wie Variablen und Zuweisungen und verdeutlichen den Unterschied zwischen dem „Gleichheitszeichen“ für Zuweisungen und dem „doppelten Gleichheitszeichen“ für Gleichheitsvergleiche. Der Kursleiter demonstriert die Verwendung von Jupyter Notebook für die Python-Codierung und gibt Tipps zur Navigation, z. B. zum Erstellen eines neuen Notebooks, zum Verwenden von Aliasen für Bibliotheken, zum Ausführen von Zellen sowie zum Kopieren oder Verschieben von Zellen. Sie erklären auch die Funktion zum automatischen Speichern und das manuelle Speichern von Notizbüchern. Abschließend geht das Video kurz auf das Stoppen der Ausführung des Kernels ein.

Anschließend erklärt der Kursleiter, wie man die Symbolleiste in Jupyter Notebook für die Python-Engine-Navigation verwendet und wie man Notizbücher mit Markdown mit Anmerkungen versehen kann. Das Video behandelt wichtige Flusskontrollanweisungen, einschließlich if-then-else-Bedingungen, for-Schleifen und while-Schleifen. Diese Anweisungen ermöglichen die Entscheidungsfindung und Wiederholung innerhalb des Python-Codes. Anschließend stellt der Kursleiter drei wichtige Datenstrukturen für maschinelles Lernen vor: Tupel, Listen und Wörterbücher. Diese Datenstrukturen bieten effiziente Möglichkeiten zum Speichern und Bearbeiten von Daten. Darüber hinaus enthält das Video einen Crashkurs zu NumPy, einer Bibliothek, die numerische Operationen in Python ermöglicht. Es umfasst die Erstellung von Arrays, den Zugriff auf Daten und die Durchführung arithmetischer Operationen mit Arrays.

Im Video werden zwei wesentliche Bibliotheken besprochen: Matplotlib und Pandas, die häufig beim maschinellen Lernen zur Datenanalyse und -visualisierung verwendet werden. Mit Matplotlib können Benutzer verschiedene Diagramme und Diagramme erstellen und so die Datenvisualisierung erleichtern. Pandas hingegen stellt Datenstrukturen und Funktionen zur Datenmanipulation und -analyse bereit, insbesondere durch Serien- und Datenrahmenstrukturen. Das Video unterstreicht die Bedeutung der read_csv-Funktion von Pandas für das Laden von CSV-Dateien, dem gebräuchlichsten Format in Anwendungen für maschinelles Lernen. Es betont auch die Nützlichkeit der Pandas-Funktionen zum Zusammenfassen und Plotten von Daten, um Erkenntnisse zu gewinnen und Daten für maschinelle Lernaufgaben vorzubereiten. Beschreibende Statistiken in Python werden als entscheidendes Werkzeug zum Verständnis der Eigenschaften und der Natur von Daten genannt.

Das Video befasst sich mit spezifischen Datenvisualisierungstechniken, die die Datenanalyse unterstützen können, bevor Techniken des maschinellen Lernens angewendet werden. Histogramme, Dichtediagramme und Boxplots werden eingeführt, um die Verteilung von Attributen zu beobachten und potenzielle Ausreißer zu identifizieren. Korrelationsmatrizen und Streudiagrammmatrizen werden als Methoden zur Identifizierung von Beziehungen zwischen Attributpaaren vorgestellt. Das Video betont die Bedeutung der Neuskalierung, Standardisierung, Normalisierung und Binarisierung von Daten als notwendige Vorverarbeitungsschritte zur Vorbereitung von Daten für maschinelle Lernalgorithmen. Als gängiger Ansatz zur Datenvorverarbeitung wird die Fit-and-Transform-Methode erläutert.

Das nächste diskutierte Thema sind Datenvorverarbeitungstechniken beim maschinellen Lernen. Das Video behandelt Normalisierung und Standardisierung als zwei wichtige Techniken. Bei der Normalisierung werden Attribute neu skaliert, sodass sie die gleiche Skala haben, während bei der Standardisierung Attribute so transformiert werden, dass sie einen Mittelwert von Null und eine Standardabweichung von Eins haben. Außerdem wird die Binarisierung erläutert, bei der Daten mit Schwellenwerten versehen werden, um binäre Attribute oder eindeutige Werte zu erstellen. Die Bedeutung der Merkmalsauswahl wird betont, da irrelevante oder teilweise irrelevante Merkmale die Modellleistung negativ beeinflussen können. Das Video stellt die univariate Auswahl als einen statistischen Ansatz zur Merkmalsauswahl vor und hebt die Verwendung rekursiver Merkmalseliminierungs- und Merkmalswichtigkeitsmethoden hervor, die Entscheidungsbaumensembles wie zufällige Wälder oder zusätzliche Bäume verwenden. Die Hauptkomponentenanalyse (PCA) wird auch als Datenreduktionstechnik diskutiert, die den Datensatz mithilfe linearer Algebra in eine kleinere Anzahl von Dimensionen komprimieren kann.

Das Video betont die Bedeutung von Resampling-Methoden für die Bewertung der Leistung von Algorithmen für maschinelles Lernen anhand unsichtbarer Daten. Es wird davor gewarnt, Algorithmen anhand desselben Datensatzes auszuwerten, der auch für das Training verwendet wurde, da dies zu einer Überanpassung und einer schlechten Verallgemeinerung auf neue Daten führen kann. Techniken wie Train-Test-Split-Sets, k-fache Kreuzvalidierung, „Leave One Out“-Kreuzvalidierung und wiederholte zufällige Testaufteilungen werden als Möglichkeiten erläutert, zuverlässige Schätzungen der Algorithmusleistung zu erhalten. Das Video endet mit einer Diskussion verschiedener Leistungsmetriken für Algorithmen für maschinelles Lernen, wie z. B. Klassifizierungsgenauigkeit, logarithmischer Verlust, Fläche unter der Kurve, Verwirrungsmatrix und Klassifizierungsbericht.

Das Video befasst sich mit Leistungsmetriken, die zur Bewertung der Vorhersagen von Modellen des maschinellen Lernens verwendet werden. Es umfasst Klassifizierungsgenauigkeit, Log-Verlust (zur Bewertung von Wahrscheinlichkeiten), Fläche unter der ROC-Kurve (Receiver Operating Characteristic) (für binäre Klassifizierungsprobleme), Verwirrungsmatrix (zur Bewertung der Modellgenauigkeit mit mehreren Klassen) und den Klassifizierungsbericht (der Präzision liefert). , Rückruf, F1-Ergebnis und Unterstützung für jede Klasse). Darüber hinaus erläutert das Video drei gängige Regressionsmetriken: mittlerer absoluter Fehler, mittlerer quadratischer Fehler und R-Quadrat. Es werden praktische Beispiele gezeigt, die veranschaulichen, wie diese Metriken mit Python berechnet werden.

Der Referent stellt das Konzept der Stichprobenprüfung vor, um festzustellen, welche Algorithmen für maschinelles Lernen für ein bestimmtes Problem gut funktionieren. Bei der Stichprobenprüfung werden mehrere Algorithmen bewertet und ihre Leistung verglichen. Das Video demonstriert die Stichprobenprüfung für sechs verschiedene Modelle des maschinellen Lernens, einschließlich linearer und nichtlinearer Algorithmen, unter Verwendung von Python mit der scikit-learn-Bibliothek. Der Referent betont, dass die Ergebnisse aufgrund der stochastischen Natur der Modelle variieren können. Der Abschnitt endet mit einer Einführung in Regressionsmodelle für maschinelles Lernen und bereitet die Zuschauer auf den kommenden Abschnitt über die Stichprobenprüfung dieser Modelle vor.

Anschließend stellt der Referent lineare und nichtlineare Modelle des maschinellen Lernens am Beispiel des Bostoner Immobilienpreisdatensatzes vor. Ein Testsystem mit 10-facher Kreuzvalidierung wird verwendet, um zu demonstrieren, wie jedes Modell stichprobenartig überprüft wird, und der mittlere quadratische Fehler wird als Leistungsindikator verwendet (invertiert aufgrund einer Eigenart in der dateiübergreifenden Bewertungsfunktion). Das lineare Regressionsmodell, das eine Gauß-Verteilung für Eingabevariablen und deren Relevanz für die Ausgabevariable annimmt, wird diskutiert. Außerdem wird die Ridge-Regression erläutert, eine Modifikation der linearen Regression, die die Modellkomplexität minimiert. Der Redner betont, wie wichtig es ist, die Pipeline oder den Prozess zu verstehen, anstatt sich in dieser Phase auf die spezifische Code-Implementierung einzulassen.

Das Video untersucht den Prozess des Verstehens und Visualisierens von Eingabevariablen für ein maschinelles Lernproblem. Es wird empfohlen, univariate Diagramme wie Box- und Whisker-Diagramme und Histogramme zu verwenden, um die Verteilung der Eingabevariablen zu verstehen. Bei multivariaten Analysen können Streudiagramme dabei helfen, strukturelle Beziehungen zwischen Eingabevariablen zu identifizieren und hohe Korrelationen zwischen bestimmten Attributpaaren aufzudecken. Das Video erläutert auch den Evaluierungsprozess, bei dem ein Testsystem mit 10-facher Kreuzvalidierung zur Bewertung der Modellleistung verwendet wird. Es wird betont, wie wichtig es ist, einen Validierungsdatensatz zu erstellen, um die Genauigkeit des besten Modells unabhängig zu bewerten. Es werden sechs verschiedene Modelle des maschinellen Lernens bewertet und das genaueste Modell für die Erstellung von Vorhersagen ausgewählt. Der Klassifizierungsbericht, die Verwirrungsmatrix und die Genauigkeitsschätzung werden zur Bewertung der Vorhersagen verwendet. Abschließend geht das Video auf die Regularisierungsregression ein und beleuchtet die Konstruktion von Lasso- und Elastic-Net-Modellen zur Reduzierung der Komplexität von Regressionsmodellen.

Das Video stellt ein binäres Klassifizierungsproblem beim maschinellen Lernen vor, das darauf abzielt, Metall aus Gestein mithilfe des Sonar-Minen-gegen-Gesteins-Datensatzes vorherzusagen. Der Datensatz enthält 208 Instanzen mit 61 Attributen, einschließlich des Klassenattributs. Es werden deskriptive Statistiken analysiert, die darauf hinweisen, dass die Daten zwar im gleichen Bereich liegen, unterschiedliche Mittelwerte jedoch darauf hindeuten, dass eine Standardisierung der Daten von Vorteil sein könnte. Unimodale und multimodale Datenvisualisierungen wie Histogramme, Dichtediagramme und Korrelationsvisualisierungen werden untersucht, um Einblicke in die Daten zu gewinnen. Es wird ein Validierungsdatensatz erstellt und eine Basislinie für die Modellleistung durch Testen verschiedener Modelle erstellt, darunter lineare Regression, logistische Regression, lineare Diskriminanzanalyse, Klassifizierungsregressionsbäume, Support Vector Machines (SVM), naive Bayes und k-nächste Nachbarn ( KNN). Die Genauigkeit jedes Algorithmus wird mithilfe einer 10-fachen Kreuzvalidierung berechnet und verglichen.

Im folgenden Abschnitt wird im Video erläutert, wie verschiedene Algorithmen für maschinelles Lernen mithilfe standardisierter Daten und Optimierung bewertet werden können. Bei der Standardisierung werden die Daten transformiert, sodass jedes Attribut einen Mittelwert von 0 und eine Standardabweichung von 1 hat, was die Leistung bestimmter Modelle verbessern kann. Um Datenlecks während des Transformationsprozesses zu verhindern, wird eine Pipeline empfohlen, die die Daten standardisiert und das Modell für jede Falte im Kreuzvalidierungstestsystem erstellt. Das Video demonstriert Optimierungstechniken für k-Nearest Neighbors (KNN) und Support Vector Machines (SVM) mithilfe einer Rastersuche mit 10-facher Kreuzvalidierung auf der standardisierten Kopie des Trainingsdatensatzes. Die optimalen Konfigurationen für KNN und SVM werden identifiziert und die Genauigkeit der Modelle bewertet. Abschließend werden im Video kurz KNN, Entscheidungsbaumregression und SVM als nichtlineare Modelle für maschinelles Lernen erörtert.

  • 00:00:00 Der Kursleiter stellt das Konzept der prädiktiven Modellierung und seine Relevanz für die Branche vor. Im Gegensatz zur statistischen Modellierung, die versucht, Daten zu verstehen, konzentriert sich die prädiktive Modellierung auf die Entwicklung von Modellen, die genauere Vorhersagen treffen, auf Kosten der Erklärung, warum Vorhersagen gemacht werden. Der Schwerpunkt des Kurses liegt auf tabellarischen Daten wie Tabellenkalkulationen oder Datenbanken. Der Dozent führt die Schüler von Entwicklern, die sich für maschinelles Lernen in Python interessieren, zu Ressourcen und Fähigkeiten, um neue Datensätze durchgängig mit Python zu bearbeiten und genaue Vorhersagemodelle zu entwickeln. Die Studierenden lernen, wie sie alle Teilaufgaben eines prädiktiven Modellierungsproblems mit Python lösen, neue und unterschiedliche Techniken in Python und SCIPy integrieren, Python erlernen und Hilfe beim maschinellen Lernen erhalten. Die Vorlesung umfasst auch einen Crashkurs in Python, der wichtige Details zur Sprachsyntax hervorhebt, einschließlich Zuweisung, Flusskontrolle, Datenstrukturen und Funktionen.

  • 00:05:00 Das Video behandelt die grundlegende Syntax von Python, einschließlich Variablen und Zuweisungen, und erklärt den Unterschied zwischen „equals“ für Zuweisungen und „double equals“ für Gleichheit. Anschließend demonstriert der Dozent die Verwendung von Jupyter Notebook für die Python-Codierung und erklärt einige grundlegende Navigationstipps, z. B. wie man ein neues Notebook erstellt, Alias für Bibliotheken verwendet, Zellen ausführt und Zellen verschiebt oder kopiert. Der Dozent erklärt außerdem die Funktion zum automatischen Speichern und wie man das Notizbuch manuell speichert. Das Video endet mit einer kurzen Erklärung, wie Sie die Ausführung des Kernels stoppen können.

  • 00:10:00 Der Kursleiter erklärt, wie man mit der Symbolleiste durch die Python-Engine navigiert und wie man Notizbücher mit Markdown mit Anmerkungen versehen kann. Anschließend behandelt das Video Flusskontrollanweisungen wie If-Then-Else-Bedingungen, For-Schleifen und While-Schleifen. Anschließend erklärt der Kursleiter die drei wichtigsten Datenstrukturen, die für maschinelles Lernen erforderlich sind: Tupel, Listen und Wörterbücher. Abschließend bietet das Video einen Crashkurs zu NumPy, der das Erstellen von Arrays, den Zugriff auf Daten und die Verwendung von Arrays in der Arithmetik umfasst.

  • 00:15:00 Der Crashkurs zu Matplotlib und Pandas für maschinelles Lernen wird besprochen. Matplotlib ist eine Bibliothek, die zum Erstellen von Plots und Diagrammen verwendet werden kann. Pandas bieten Datenstrukturen und Funktionen zum Bearbeiten und Analysieren von Daten mithilfe von Serien- und Datenrahmen-Datenstrukturen. Diese sind wichtig zum Laden von CSV-Dateien, dem am häufigsten für Anwendungen des maschinellen Lernens verwendeten Format. Darüber hinaus können flexible Funktionen wie Pandas read_csv beim Laden von Daten und der Rückgabe eines Pandas-Datenrahmens zum Zusammenfassen und Plotten von Daten helfen, um Erkenntnisse zu gewinnen und Ideen für die Vorverarbeitung und Verarbeitung von Daten in maschinellen Lernaufgaben zu entwickeln. Schließlich kann die Gewinnung von Erkenntnissen aus Daten durch deskriptive Statistiken in Python nicht ersetzt werden und kann dazu beitragen, die Eigenschaften und die Natur der Daten besser zu verstehen.

  • 00:20:00 Pandas DataFrame erleichtert das Erstellen von Histogrammen mit der Funktion hist(). Eine weitere Möglichkeit, Daten zu visualisieren, ist die Verwendung von Dichtediagrammen, die mit der Funktion plot() erstellt werden können. Dichtediagramme zeigen die Wahrscheinlichkeitsdichtefunktion der Daten und können Aufschluss über die Form der Verteilung geben. Box- und Whisker-Plots sind auch nützlich, um die Verteilung von Daten zu visualisieren und Ausreißer zu identifizieren. Insgesamt ist die Datenvisualisierung ein wichtiger Schritt zum Verständnis der Eigenschaften eines Datensatzes und kann bei der Auswahl geeigneter Algorithmen für maschinelles Lernen hilfreich sein.

  • 00:25:00 Das Video erklärt verschiedene Diagramme und Diagramme, die für die Datenanalyse vor der Anwendung maschineller Lerntechniken nützlich sein können. Histogramme, Dichtediagramme und Boxplots werden verwendet, um die Verteilung von Attributen zu beobachten, während Korrelationsmatrizen und Streudiagrammmatrizen verwendet werden, um die Beziehung zwischen Attributpaaren zu identifizieren. Neuskalierung, Standardisierung, Normalisierung und Binarisierung von Daten werden ebenfalls als notwendige Vorverarbeitungsschritte zur Vorbereitung von Daten für Algorithmen für maschinelles Lernen erörtert, und das Video erklärt die Fit-and-Transformation-Methode als einen gängigen Ansatz für die Datenvorverarbeitung.

  • 00:30:00 Das Video diskutiert Techniken zur Vorverarbeitung von Daten beim maschinellen Lernen. Zunächst werden Normalisierungs- und Standardisierungstechniken erläutert. Bei der Normalisierung werden Attribute neu skaliert, sodass sie die gleiche Skala haben, und bei der Standardisierung werden Attribute so geändert, dass sie einen Mittelwert von Null und eine Standardabweichung von Eins haben. Binarisierung oder Schwellenwertbildung von Daten ist eine weitere diskutierte Technik, die nützlich sein kann, um neue binäre Attribute hinzuzufügen oder Wahrscheinlichkeiten in klare Werte umzuwandeln. Anschließend wird die Bedeutung der Funktionsauswahl erläutert, da irrelevante oder teilweise irrelevante Funktionen die Modellleistung negativ beeinflussen können. Die univariate Auswahl ist ein statistischer Ansatz zur Merkmalsauswahl, bei dem die Ergebnisse statistischer Tests verwendet werden. Rekursive Feature-Eliminations- und Feature-Wichtigkeitsmethoden, die Ensembles von Entscheidungsbäumen wie Random Forest oder Extra Trees verwenden, können ebenfalls für die Feature-Auswahl nützlich sein. Schließlich ist die Hauptkomponentenanalyse (PCA) eine Datenreduktionstechnik, die lineare Algebra nutzt, um den Datensatz in eine komprimierte Form mit einer geringeren Anzahl von Dimensionen umzuwandeln.

  • 00:35:00 Die Bedeutung von Resampling-Methoden zur Bewertung der Leistung von Algorithmen für maschinelles Lernen anhand unsichtbarer Daten wird erklärt. Es wird hervorgehoben, dass die Auswertung des Algorithmus anhand desselben Datensatzes, der für das Training verwendet wurde, zu einer Überanpassung führen kann, was zu einem perfekten Ergebnis für den Trainingsdatensatz, aber schlechten Vorhersagen für neue Daten führt. Anschließend werden Techniken wie Train-Test-Split-Sets, k-fache Kreuzvalidierung, „Leave One Out“-Kreuzvalidierung und wiederholte zufällige Testaufteilungen als Möglichkeiten vorgestellt, nützliche Schätzungen der Algorithmusleistung zu erstellen. Der Abschnitt endet mit einer Diskussion verschiedener Leistungsmetriken für maschinelle Lernalgorithmen, wie z. B. Klassifizierungsgenauigkeit, logarithmischer Verlust, Fläche unter der Kurve, Verwirrungsmatrix und Klassifizierungsbericht.

  • 00:40:00 Das Video behandelt mehrere Leistungsmetriken zur Bewertung der Vorhersagen eines maschinellen Lernmodells. Dazu gehören die Klassifizierungsgenauigkeit, der Log-Verlust zur Bewertung von Wahrscheinlichkeiten, die Fläche unter der ROC-Kurve für binäre Klassifizierungsprobleme, die Verwirrungsmatrix zur Bewertung der Modellgenauigkeit mit zwei oder mehr Klassen und der Klassifizierungsbericht zur Bewertung der Präzision, des Rückrufs, des F1-Scores und der Unterstützung für jede Klasse. Darüber hinaus behandelt das Video drei gängige Regressionsmetriken: mittlerer absoluter Fehler, mittlerer quadratischer Fehler und R-Quadrat und zeigt Beispiele für die Berechnung dieser Metriken mit Python.

  • 00:45:00 Der Referent erklärt das Konzept der Stichprobenprüfung, um herauszufinden, welche Algorithmen für maschinelles Lernen für ein bestimmtes Problem gut funktionieren. Er demonstriert die Stichprobenprüfung für sechs verschiedene Modelle des maschinellen Lernens, einschließlich linearer und nichtlinearer Algorithmen, unter Verwendung von Python mit der Scikit-Learn-Bibliothek. Er betont außerdem, dass die Ergebnisse aufgrund der stochastischen Natur des Modells variieren können. Abschließend stellt der Redner Regressionsmodelle für maschinelles Lernen vor und bereitet die Zuschauer auf den kommenden Abschnitt vor, in dem es darum geht, wie man diese Modelle stichprobenartig überprüft.

  • 00:50:00 Der Redner stellt lineare und nichtlineare Modelle des maschinellen Lernens anhand des Bostoner Immobilienpreisdatensatzes vor. Ein Testsystem mit 10-facher Kreuzvalidierung wird verwendet, um zu demonstrieren, wie jedes Modell blockiert werden kann, und mittlere quadratische Fehlerzahlen werden verwendet, um die Leistung anzuzeigen, die aufgrund einer Eigenart in der dateiübergreifenden Bewertungsfunktion invertiert werden. Das lineare Regressionsmodell geht von einer Gaußschen Verteilung für Eingabevariablen aus und geht davon aus, dass diese für die Ausgabevariable relevant und nicht stark miteinander korrelieren. Die Ridge-Regression, eine Modifikation der linearen Regression, minimiert die Komplexität des Modells, gemessen durch den Summenquadratwert der Koeffizientenwerte oder die L2-Norm. Der Redner legt Wert darauf, die Pipeline oder den Prozess zu verstehen und sich an dieser Stelle nicht mit dem Verständnis des Codes zu beschäftigen.

  • 00:55:00 Das Video erläutert den Prozess des Verstehens und Visualisierens der Eingabevariablen für ein maschinelles Lernproblem. Das Video schlägt die Verwendung univariater Diagramme wie Box- und Whisker-Diagramme und Histogramme vor, um die Verteilung der Eingabevariablen zu verstehen. Bei multivariaten Diagrammen können Streudiagramme dabei helfen, strukturelle Beziehungen zwischen den Eingabevariablen zu erkennen und eine hohe Korrelation zwischen bestimmten Attributpaaren zu identifizieren. Anschließend wird im Video der Prozess der Modellbewertung mithilfe einer Testumgebung mit 10-facher Kreuzvalidierung erläutert, bei der der Datensatz in 10 Teile aufgeteilt und in verschiedenen Teilbereichen trainiert und getestet wird. Das Video unterstreicht, wie wichtig es ist, einen Validierungsdatensatz zu erstellen, um eine zweite und unabhängige Vorstellung davon zu bekommen, wie genau das beste Modell sein könnte. Das Video bewertet sechs verschiedene Modelle für maschinelles Lernen und wählt das genaueste Modell für die Erstellung von Vorhersagen aus. Dabei werden die Vorhersagen anhand des Klassifizierungsberichts, der Verwirrungsmatrix und der Genauigkeitsschätzung bewertet. Der Abschnitt endet mit einer Diskussion über die Regularisierungsregression und die Konstruktion von Lasso- und Elastic-Net-Modellen, um die Komplexität des Regressionsmodells zu minimieren.

  • 01:00:00 Wir lernen ein binäres Klassifizierungsproblem beim maschinellen Lernen kennen, bei dem das Ziel darin besteht, Metall aus Gestein mithilfe des Sonar-Minen-gegen-Gesteins-Datensatzes vorherzusagen. Der Datensatz enthält 208 Instanzen mit 61 Attributen einschließlich des Klassenattributs. Nach der Analyse der Daten und der Betrachtung deskriptiver Statistiken stellen wir fest, dass die Daten im gleichen Bereich liegen, aber unterschiedliche Mittelwerte darauf hinweisen, dass eine Standardisierung der Daten von Vorteil sein könnte. Wir werfen auch einen Blick auf unimodale und multimodale Datenvisualisierungen, einschließlich Histogrammen, Dichtediagrammen und Visualisierungen der Korrelation zwischen Attributen. Anschließend bereiten wir einen Validierungsdatensatz vor und erstellen eine Basislinie für die Leistung verschiedener Modelle, einschließlich linearer Regression, logistischer Regression, linearer Diskriminanzanalyse, Klassifizierungsregressionsbäume, SVMs, naiver Bayes und k-nächster Nachbarn. Wir vergleichen die Genauigkeit jedes Algorithmus, der durch zehnfache Kreuzvalidierung berechnet wurde.

  • 01:05:00 Im Video wird erläutert, wie verschiedene Algorithmen für maschinelles Lernen mithilfe standardisierter Daten und Optimierung bewertet werden können. Durch die Standardisierung werden Daten so transformiert, dass jedes Attribut einen Mittelwert von 0 und eine Standardabweichung von 1 aufweist, was die Fähigkeiten einiger Modelle verbessern kann. Um Datenlecks während des Transformationsprozesses zu vermeiden, wird eine Pipeline empfohlen, die die Daten standardisiert und das Modell für jede Falte im Kreuzvalidierungstestsystem erstellt. Das Video zeigt, wie man k-nächste Nachbarn (KNN) optimiert und Vektormaschinen (SVM) unterstützt, indem man eine Rastersuche mit 10-facher Kreuzvalidierung auf der standardisierten Kopie des Trainingsdatensatzes durchführt. Die optimalen Konfigurationen für KNN und SVM werden identifiziert und die Genauigkeit der Modelle bewertet. Abschließend werden im Video kurz KNN, Entscheidungsbaumregression und SVM als nichtlineare Modelle für maschinelles Lernen erörtert.
A Fast Track Introduction to Python for Machine Learning Engineers
A Fast Track Introduction to Python for Machine Learning Engineers
  • 2022.03.23
  • www.youtube.com
Complete Course on Machine Learning with Python
 

Angewandte Statistik für Ingenieure des maschinellen Lernens


Angewandte Statistik für Ingenieure des maschinellen Lernens

Der Dozent im Video führt in das Gebiet der Statistik ein und beleuchtet deren Bedeutung für die Arbeit mit prädiktiven Modellierungsproblemen beim maschinellen Lernen. Sie erklären, dass die Statistik eine Reihe von Techniken bietet, angefangen von einfachen zusammenfassenden Statistiken bis hin zu Hypothesentests und Schätzstatistiken. Der Kurs soll eine schrittweise Einführung in statistische Methoden mit praktischen Beispielen in Python vermitteln. Es deckt sechs Kernaspekte der Statistik für maschinelles Lernen ab und konzentriert sich auf reale Anwendungen, sodass es für Ingenieure des maschinellen Lernens geeignet ist.

Der Dozent betont die enge Beziehung zwischen maschinellem Lernen und Statistik und schlägt vor, dass Programmierer von der Verbesserung ihrer statistischen Fähigkeiten durch diesen Kurs profitieren können. Sie klassifizieren das Gebiet der Statistik in zwei Kategorien: deskriptive Statistik und inferenzielle Statistik. Bei der beschreibenden Statistik werden Daten mithilfe von Messungen wie Durchschnittswerten und grafischen Darstellungen zusammengefasst und beschrieben. Inferenzstatistiken hingegen werden verwendet, um auf der Grundlage von Stichprobendaten Rückschlüsse auf eine größere Population zu ziehen.

Es wird auch die Bedeutung einer ordnungsgemäßen Datenverarbeitung hervorgehoben, einschließlich der Bekämpfung von Datenverlust, -beschädigung und -fehlern. Das Video befasst sich dann mit den verschiedenen Schritten der Datenaufbereitung für Modelle des maschinellen Lernens. Dazu gehören Datenbereinigung, Datenauswahl, Datenstichprobe und Datentransformation mithilfe statistischer Methoden wie Standardisierung und Normalisierung. Ein weiterer Schwerpunkt liegt auf der Datenauswertung, und im Video werden experimentelle Gestaltung, Resampling-Daten und Modellauswahl zur Einschätzung der Fähigkeiten eines Modells erörtert. Für die Vorhersage neuer Daten empfiehlt das Video die Verwendung von Schätzstatistiken.

Das Video erklärt die verschiedenen in der Statistik verwendeten Messskalen, nämlich Nominal-, Ordinal-, Intervall- und Verhältnisskalen. Es werden die statistischen Techniken besprochen, die auf jede Skala anwendbar sind, und wie sie beim maschinellen Lernen implementiert werden können. Es wird betont, wie wichtig es ist, Unsicherheiten bei der Modellierung zu verstehen und zu melden, insbesondere bei der Arbeit mit Stichprobensätzen. Das Video konzentriert sich dann auf die Normalverteilung, die häufig in verschiedenen Datensätzen beobachtet wird. Es zeigt, wie Sie Beispieldaten generieren und deren Anpassung an eine Gaußsche Verteilung mithilfe eines Histogramms visuell bewerten. Obwohl die meisten Datensätze keine perfekte Gauß-Verteilung aufweisen, weisen sie häufig Gauß-ähnliche Eigenschaften auf.

Es wird hervorgehoben, wie wichtig es ist, eine granulare Methode zur Datenaufteilung auszuwählen, um die zugrunde liegende Gaußsche Verteilung offenzulegen. Es werden Maßstäbe für die zentrale Tendenz wie Mittelwert und Median sowie Varianz und Standardabweichung als Maß für die Streuung der Verteilung untersucht. Zufälligkeit wird als wesentliches Werkzeug beim maschinellen Lernen diskutiert, das dazu beiträgt, Algorithmen robuster und genauer zu machen. Verschiedene Zufallsquellen, darunter Datenfehler und Rauschen, werden erläutert.

Das Video erklärt, dass Algorithmen für maschinelles Lernen häufig Zufälligkeiten nutzen, um eine bessere Leistung zu erzielen und optimalere Modelle zu generieren. Zufälligkeit ermöglicht es Algorithmen, verschiedene Möglichkeiten zu erkunden und bessere Datenzuordnungen zu finden. Es werden kontrollierbare und unkontrollierbare Zufälligkeitsquellen besprochen und die Verwendung der Seed-Funktion erläutert, um die Zufälligkeit innerhalb eines Modells konsistent zu machen. Das Video bietet ein Beispiel für die Verwendung des Python-Zufallsmoduls zum Generieren von Zufallszahlen und hebt den Unterschied zwischen dem Pseudozufallszahlengenerator der Numpy-Bibliothek und dem Pseudozufallszahlengenerator der Standardbibliothek hervor. Es werden auch zwei Fälle besprochen, wann der Zufallszahlengenerator gesät werden sollte, nämlich während der Datenvorbereitung und der Datenaufteilung.

Der Schwerpunkt liegt auf der konsequenten Aufteilung der Daten und der Verwendung von Pseudozufallszahlengeneratoren bei der Bewertung eines Algorithmus. Das Video empfiehlt, das Modell so zu bewerten, dass die gemessene Unsicherheit und die Leistung des Algorithmus berücksichtigt werden. Die Auswertung eines Algorithmus anhand mehrerer Datenaufteilungen liefert Einblicke in die Unterschiede seiner Leistung bei unterschiedlichen Trainings- und Testdaten. Die mehrmalige Evaluierung eines Algorithmus anhand derselben Datenaufteilungen hilft zu verstehen, wie seine Leistung von selbst variiert. Das Video stellt außerdem das Gesetz der großen Zahlen und den zentralen Grenzwertsatz vor und hebt hervor, dass mehr Daten die Leistung des Modells verbessern und dass sich die Verteilung des Mittelwerts mit zunehmender Stichprobengröße einer Gaußschen Verteilung annähert.

Das Video demonstriert den zentralen Grenzwertsatz mithilfe von Würfelwürfen und Code und zeigt, wie sich die Stichprobenmittel einer Gaußschen Verteilung annähern, wenn die Stichprobengröße zunimmt.

Das Video betont, wie wichtig es ist, Modelle für maschinelles Lernen zu evaluieren und die mit ihren Vorhersagen verbundene Unsicherheit zu verstehen. Es werden Bewertungsmetriken wie Genauigkeit, Präzision, Rückruf und F1-Score eingeführt, die häufig zur Bewertung der Leistung von Klassifizierungsmodellen verwendet werden. Das Video erklärt, dass die Genauigkeit die Gesamtkorrektheit von Vorhersagen misst, die Präzision den Anteil der wirklich positiven Vorhersagen an allen positiven Vorhersagen misst, der Rückruf den Anteil der wirklich positiven Vorhersagen an allen tatsächlichen positiven Instanzen misst und der F1-Score Präzision und Rückruf kombiniert eine einzelne Metrik. Außerdem wird das Konzept einer Verwirrungsmatrix erörtert, die einen detaillierteren Überblick über die Leistung eines Klassifizierungsmodells bietet, indem sie die Anzahl der wahr-positiven, wahr-negativen, falsch-positiven und falsch-negativen Vorhersagen anzeigt.

Der Referent demonstriert, wie diese Bewertungsmetriken mithilfe der Scikit-Learn-Bibliothek von Python berechnet werden. Es zeigt, wie Sie die erforderlichen Module importieren, die Daten in Trainings- und Testsätze aufteilen, ein Klassifizierungsmodell trainieren, Vorhersagen für den Testsatz treffen und die Leistung des Modells anhand von Genauigkeit, Präzision, Rückruf und F1-Score bewerten. Das Video unterstreicht die Bedeutung der Bewertung von Modellen anhand unsichtbarer Daten, um ihre Generalisierungsfähigkeit sicherzustellen.

Darüber hinaus stellt das Video das Konzept der ROC-Kurven (Receiver Operating Characteristic) und der AUC (Area Under the Curve) als Bewertungsmetriken für binäre Klassifizierungsmodelle vor. ROC-Kurven zeichnen die Richtig-Positiv-Rate gegenüber der Falsch-Positiv-Rate bei verschiedenen Klassifizierungsschwellenwerten auf und bieten eine visuelle Darstellung der Leistung des Modells über verschiedene Schwellenwerte hinweg. Die AUC stellt die Fläche unter der ROC-Kurve dar und bietet eine einzige Metrik zum Vergleich der Leistung verschiedener Modelle. Das Video erklärt, wie man mithilfe der Scikit-Learn-Bibliothek von Python eine ROC-Kurve zeichnet und die AUC berechnet.

Das Konzept der Überanpassung wird als ein häufiges Problem beim maschinellen Lernen diskutiert, bei dem ein Modell bei den Trainingsdaten gut funktioniert, sich aber nicht auf neue, unbekannte Daten verallgemeinern lässt. Das Video erklärt, dass eine Überanpassung auftritt, wenn ein Modell zu komplex wird und für die Trainingsdaten spezifische Muster lernt, die in der allgemeinen Bevölkerung nicht gelten. Das Video zeigt, wie Überanpassung durch den Vergleich der Trainings- und Testleistung eines Modells visualisiert werden kann. Es erklärt, dass ein Overfit-Modell einen geringen Trainingsfehler, aber einen hohen Testfehler aufweist, was auf eine schlechte Generalisierung hinweist. Das Video schlägt Regularisierungstechniken wie die Ridge-Regression und die Lasso-Regression vor, um eine Überanpassung durch Hinzufügen eines Strafterms zur Zielfunktion des Modells abzumildern.

Das Konzept der Kreuzvalidierung wird als Technik zur Bewertung der Leistung und Verallgemeinerung von Modellen des maschinellen Lernens eingeführt. Das Video erklärt, dass bei der Kreuzvalidierung die Daten in mehrere Teilmengen aufgeteilt, das Modell anhand eines Teils der Daten trainiert und seine Leistung anhand des verbleibenden Teils bewertet wird. Dieser Vorgang wird mehrmals wiederholt, wobei unterschiedliche Teilmengen für Training und Tests verwendet werden, und die Ergebnisse werden gemittelt, um eine Schätzung der Leistung des Modells zu erhalten. Das Video zeigt, wie eine Kreuzvalidierung mit der Scikit-Learn-Bibliothek von Python durchgeführt wird, insbesondere mit der K-Fold-Kreuzvalidierungsmethode.

Als nächstes diskutiert das Video das Konzept der Funktionsauswahl und deren Bedeutung beim maschinellen Lernen. Darin wird erklärt, dass es bei der Merkmalsauswahl darum geht, die relevantesten Merkmale oder Variablen zu identifizieren, die zur Leistung des Modells beitragen. Das Video unterstreicht die Bedeutung der Auswahl informativer Funktionen, um die Genauigkeit des Modells zu verbessern, Überanpassungen zu reduzieren und die Interpretierbarkeit zu verbessern. Es werden verschiedene Techniken zur Merkmalsauswahl vorgestellt, z. B. univariate Auswahl, rekursive Merkmalseliminierung und Merkmalswichtigkeitsbewertungen. Das Video zeigt, wie Sie die Funktionsauswahl mithilfe der Scikit-Learn-Bibliothek von Python implementieren.

Das Konzept der Dimensionsreduktion wird auch als eine Technik diskutiert, um den Fluch der Dimensionalität beim maschinellen Lernen zu bekämpfen. Das Video erklärt, dass bei der Dimensionsreduzierung die Anzahl der Features oder Variablen in einem Datensatz reduziert und gleichzeitig die meisten relevanten Informationen erhalten bleiben. Es führt die Hauptkomponentenanalyse (PCA) als eine häufig verwendete Technik zur Dimensionsreduktion ein. PCA zielt darauf ab, die Daten in einen niedrigerdimensionalen Raum umzuwandeln, indem die Richtungen maximaler Varianz in den Daten identifiziert werden. Das Video erklärt, dass PCA neue Features, sogenannte Hauptkomponenten, erstellt, bei denen es sich um lineare Kombinationen der ursprünglichen Features handelt. Diese Hauptkomponenten erfassen die wichtigsten Informationen in den Daten und können als Eingabe für Modelle des maschinellen Lernens verwendet werden.

Das Video zeigt, wie man PCA mit der Scikit-Learn-Bibliothek von Python durchführt. Es zeigt, wie man die erforderlichen Module importiert, die Daten standardisiert, ein PCA-Objekt initialisiert, das PCA-Modell an die Daten anpasst und die Daten in den niedrigerdimensionalen Raum transformiert. Das Video erklärt außerdem, wie man anhand des erläuterten Varianzverhältnisses die optimale Anzahl der beizubehaltenden Hauptkomponenten ermittelt.

Das Konzept des Ensemble-Lernens wird als Technik zur Verbesserung der Leistung von Modellen des maschinellen Lernens durch die Kombination mehrerer Einzelmodelle eingeführt. Das Video erklärt, dass Ensemble-Lernen die Weisheit von Massen nutzt, wobei jedes einzelne Modell seine eigenen Vorhersagen beisteuert und die endgültige Vorhersage auf der Grundlage eines Abstimmungs- oder Mittelungsmechanismus ermittelt wird. Das Video bespricht zwei beliebte Ensemble-Lernmethoden: Bagging und Boosting. Beim Bagging geht es darum, mehrere Modelle auf verschiedenen Teilmengen der Daten zu trainieren und ihre Vorhersagen zu aggregieren, während sich Boosting darauf konzentriert, die Modelle nacheinander zu trainieren, wobei jedes Modell Instanzen, die von vorherigen Modellen falsch klassifiziert wurden, mehr Bedeutung beimisst.

Das Video zeigt, wie Ensemble-Lernen mithilfe der Scikit-Learn-Bibliothek von Python implementiert wird. Es zeigt, wie man die notwendigen Module für Bagging und Boosting importiert, die Ensemble-Modelle initialisiert, sie an die Daten anpasst und mithilfe der Ensemble-Modelle Vorhersagen trifft. Das Video betont, dass Ensemble-Lernen häufig die Gesamtleistung und Robustheit von Modellen für maschinelles Lernen verbessern kann.

Abschließend geht das Video kurz auf fortgeschrittene Themen des maschinellen Lernens ein, beispielsweise Deep Learning und Natural Language Processing (NLP). Darin wird erwähnt, dass Deep Learning das Training tiefer neuronaler Netze mit mehreren Schichten umfasst, um komplexe Muster in Daten zu lernen. NLP konzentriert sich auf die Entwicklung von Modellen und Techniken zum Verstehen und Verarbeiten menschlicher Sprache und ermöglicht Anwendungen wie Textklassifizierung, Stimmungsanalyse und maschinelle Übersetzung. Das Video schließt mit der Hervorhebung, dass maschinelles Lernen ein riesiges und sich schnell entwickelndes Feld mit zahlreichen Anwendungen und Möglichkeiten zur weiteren Erforschung und zum Lernen ist.

Das Video bietet einen umfassenden Überblick über wesentliche Konzepte und Techniken des maschinellen Lernens, einschließlich Modellbewertung, Überanpassung, Regularisierung, Kreuzvalidierung, Merkmalsauswahl, Dimensionsreduktion, Ensemble-Lernen und eine Einführung in Deep Learning und NLP. Es demonstriert praktische Implementierungen mit Python und der Scikit-Learn-Bibliothek und ist damit eine wertvolle Ressource für Anfänger und diejenigen, die ihr Verständnis für maschinelles Lernen verbessern möchten.

  • 00:00:00 Der Dozent führt in das Gebiet der Statistik und seine Bedeutung für die Bearbeitung prädiktiver Modellierungsprobleme mit maschinellem Lernen ein. Er erläutert die Bandbreite der verfügbaren statistischen Techniken, von einfachen zusammenfassenden Statistiken bis hin zu Hypothesentests und Schätzstatistiken. Der Kurs soll eine schrittweise Grundlage für statistische Methoden mit ausführbaren Beispielen in Python vermitteln und sechs Kernaspekte der Statistik für maschinelles Lernen abdecken. Der Dozent betont außerdem, dass der Kurs anwendungsorientiert ist und Anwendungsbeispiele aus der Praxis bietet, sodass er für Ingenieure des maschinellen Lernens geeignet ist.

  • 00:05:00 Es wird betont, dass maschinelles Lernen eng mit Statistiken zusammenhängt, und der Kurs wird als eine gute Option für Programmierer dargestellt, die ihre statistischen Fähigkeiten verbessern möchten. Das Gebiet der Statistik wird in zwei Kategorien eingeteilt: Die erste ist die deskriptive Statistik und die zweite Kategorie ist die inferenzielle Statistik. Beschreibende Statistiken werden verwendet, um Daten mithilfe von Messungen wie Durchschnittswerten und grafischen Darstellungen zu beschreiben, während inferenzielle Statistiken verwendet werden, um Rückschlüsse aus Daten für eine größere Population zu ziehen. Abschließend wird die Bedeutung des Umgangs mit Daten, einschließlich Datenverlust, -beschädigung und -fehlern, betont.

  • 00:10:00 Das Video bespricht die verschiedenen Schritte bei der Datenaufbereitung für Modelle für maschinelles Lernen. Dazu gehören Datenbereinigung, Datenauswahl, Datenstichprobe und Datentransformation mithilfe statistischer Methoden wie Standardisierung und Normalisierung. Die Datenauswertung ist ebenfalls wichtig, und es muss ein experimenteller Entwurf, einschließlich Resampling-Daten und Modellauswahl, durchgeführt werden, um die Fähigkeiten eines Modells abzuschätzen. Für die Vorhersage neuer Daten empfiehlt das Video den Ansatz der Schätzungsstatistik. Darüber hinaus erklärt das Video verschiedene in der Statistik verwendete Messskalen und die Eigenschaften der Normalverteilung.

  • 00:15:00 Der Sprecher erklärt die verschiedenen Messskalen: Nominal, Ordinal, Intervall und Verhältnis. Anschließend diskutieren sie Statistiken, die auf jede Skala anwendbar sind, und wie sie in maschinelles Lernen implementiert werden können. Da wir fast immer mit Stichprobensätzen arbeiten, betont der Autor, dass wir die mit der Modellierung verbundenen Unsicherheiten verstehen und berichten müssen. Die Diskussion geht dann zu einer Stichprobennormalverteilung über, die in verschiedenen Datensätzen sehr häufig vorkommt. Abschließend zeigen sie, wie wir Beispieldaten generieren und auf ein Histogramm anwenden können, um zu sehen, ob sie zur Gaußschen Verteilung passen. Der Autor erklärt, dass die meisten Datensätze zwar keine perfekte Gauß-Verteilung aufweisen, aber Gauß-ähnliche Eigenschaften aufweisen.

  • 00:20:00 Es wird hervorgehoben, wie wichtig es ist, eine detailliertere Art der Datenaufteilung zu wählen, um die zugrunde liegende Gaußsche Verteilung besser darzustellen, und Maße der zentralen Tendenz wie Mittelwert und Median werden untersucht, wobei auch Varianz und Standardabweichung als a diskutiert werden Maß für die Ausbreitung der Verteilung. Zufälligkeit ist ein wesentliches Werkzeug beim maschinellen Lernen und wird verwendet, um Algorithmen robuster und genauer zu machen. Verschiedene Zufallsquellen wie Fehler in den Daten und Rauschen, die Zusammenhänge verschleiern können, werden erläutert.

  • 00:25:00 Es wird erklärt, dass Algorithmen für maschinelles Lernen oft Zufälligkeit nutzen, um eine leistungsfähigere Zuordnung von Daten zu erreichen. Durch Zufälligkeit können Algorithmen ein optimaleres Modell generieren. In diesem Abschnitt werden sowohl kontrollierbare als auch unkontrollierbare Zufälligkeitsquellen erörtert und wie die Verwendung der Seed-Funktion die Zufälligkeit in einem Modell konsistent machen kann. Als Beispiel wird das Python-Zufallsmodul zum Generieren von Zufallszahlen und die Numpy-Bibliothek zum effizienten Arbeiten mit Vektoren und Zahlenmatrizen verwendet. Der Numpy-Pseudozufallszahlengenerator unterscheidet sich vom Pseudozufallszahlengenerator der Python-Standardbibliothek und muss separat verwendet werden. Abschließend werden zwei Fälle besprochen, wann der Zufallszahlengenerator gesät werden sollte, einschließlich Datenvorbereitung und Datenaufteilung.

  • 00:30:00 Die Bedeutung einer konsistenten Aufteilung der Daten und der Verwendung von Pseudozufallszahlengeneratoren bei der Bewertung eines Algorithmus wird diskutiert. Es wird empfohlen, das Modell so zu bewerten, dass die gemeldete Leistung die gemessene Unsicherheit und die Leistung des Algorithmus umfasst. Die Evaluierung eines Algorithmus anhand mehrerer Datenaufteilungen gibt Aufschluss darüber, wie sich die Leistung des Algorithmus mit Änderungen an den Trainings- und Testdaten ändert, während die mehrmalige Bewertung eines Algorithmus in denselben Datenaufteilungen Aufschluss darüber gibt, wie sich die Leistung des Algorithmus allein ändert . Das Gesetz der großen Zahlen und der zentrale Grenzwertsatz werden ebenfalls besprochen, wobei hervorgehoben wird, dass die Leistung unseres Modells umso besser ist, je mehr Daten wir haben, und dass sich die Verteilung des Mittelwerts mit zunehmender Größe einer Stichprobe einer Gaußschen Verteilung annähert .

  • 00:35:00 Der zentrale Grenzwertsatz wird anhand von Würfelwürfen und Code demonstriert. Die Demonstration zeigt, dass sich die Stichprobenmittelwerte mit zunehmender Stichprobengröße einer Gaußschen Verteilung annähern. Die Dateninterpretation ist in der Statistik von entscheidender Bedeutung, um die Bedeutung zu ermitteln. Statistische Hypothesentests oder Signifikanztests werden beim maschinellen Lernen verwendet, um Aussagen über Datenverteilungen zu treffen oder zwei Stichproben zu vergleichen. Hypothese 0 oder Nullhypothese ist die Standardannahme, dass sich nichts geändert hat und ein statistischer Hypothesentest entweder einen p-Wert oder einen kritischen Wert zurückgeben kann. Der p-Wert ist eine Größe, die verwendet wird, um das Ergebnis eines Hypothesentests zu interpretieren und die Nullhypothese entweder abzulehnen oder nicht abzulehnen, während der kritische Wert verwendet wird, um die Teststatistik mit ihrer Stichprobenverteilung zu vergleichen, um festzustellen, ob genügend Beweise dafür vorliegen lehne die Nullhypothese ab.

  • 00:40:00 Das Konzept der Ablehnung der Nullhypothese wird klargestellt, wobei die Nullhypothese besagt, dass es keinen statistisch signifikanten Unterschied gibt. Wenn das Ergebnis eines statistischen Tests die Nullhypothese ablehnt, bedeutet dies, dass etwas statistisch signifikant ist. Besprochen wird auch die Gaußsche Verteilung, die die Gruppierung oder Dichte von Beobachtungen beschreibt und oft als Normalverteilung bezeichnet wird. Die Verteilung ist eine mathematische Funktion, die die Beziehung von Beobachtungen zu einem Stichprobenraum beschreibt. Dichtefunktionen, einschließlich Wahrscheinlichkeitsdichtefunktionen und kumulative Dichtefunktionen, werden verwendet, um die Wahrscheinlichkeit von Beobachtungen in einer Verteilung zu beschreiben. Abschließend wird betont, wie wichtig es ist, zu prüfen, ob eine Datenstichprobe zufällig ist, und es werden die Merkmale normalverteilter Stichproben angegeben.

  • 00:45:00 Der Redner diskutierte die Normalverteilung (Gaußverteilung), ihre Eigenschaften, einschließlich der Wahrscheinlichkeitsverteilungsfunktion (pdf) und der kumulativen Verteilungsfunktion (cdf), sowie die mit Standardabweichungen verbundenen 68-, 95- und 99,7-Regeln. Der Referent stellte auch die t-Verteilung vor, die der Normalverteilung ähnelt, aber für kleine Stichproben verwendet wird. Anschließend stellte der Artikel die Chi-Quadrat-Verteilung, ihre Verwendung für die Anpassungsgüte und ihre Beziehung zur t-Verteilung vor. Abschließend demonstrierte der Redner die Verwendung des Statistik-Chi-2-Moduls in Scipy zur Berechnung von Statistiken für eine Chi-Quadrat-Verteilung.

  • 00:50:00 Das Konzept der kritischen Werte beim Testen statistischer Hypothesen wird erklärt. Ein kritischer Wert ist ein Schwellenwert, der bestimmt, ob eine Nullhypothese akzeptiert oder abgelehnt wird. Es geht von einer Normal- oder Gaußverteilung aus und verfügt über einen Akzeptanzbereich und einen Ablehnungsbereich. Die Linie, die diese Regionen trennt, ist der kritische Wert. Einseitige Tests ermitteln, ob der Mittelwert größer oder kleiner als ein anderer Mittelwert ist, aber nicht beides, während zweiseitige Tests ermitteln, ob die beiden Mittelwerte voneinander abweichen. Der kritische Wert ermöglicht die Quantifizierung der Unsicherheit geschätzter Statistiken oder Intervalle, wie z. B. Konfidenz- und Toleranzintervalle.

  • 00:55:00 Diskutiert wird der Einsatz zweiseitiger Tests, die sowohl die positiven als auch die negativen Auswirkungen eines Produkts berücksichtigen. Das angeführte Beispiel ist das eines Generikums im Vergleich zu einem Markenprodukt, wobei ein zweiseitiger Test feststellen kann, ob das Generikum dem Markenprodukt gleichwertig oder schlechter ist. Die Verwendung von Prozentpunktfunktionen oder Quantilfunktionen wird außerdem anhand von Beispielen anhand von drei häufig verwendeten Verteilungen erklärt und demonstriert: der Standard-Gauß-Verteilung, der Standard-Student-t-Verteilung und der Standard-Chi-Quadrat-Verteilung. Abschließend wird das Konzept der Korrelation und seine Bedeutung für die Bestimmung der Beziehung zwischen zwei Variablen sowie das potenzielle Problem der Multikollinearität und deren Auswirkungen auf die Algorithmusleistung erörtert.

  • 01:00:00 Das Video zeigt eine kurze Demo, um eine starke positive Korrelation zwischen zwei Variablen mithilfe eines künstlichen Datensatzes zu zeigen, wobei jede Variable aus einer Gaußschen Verteilung stammt und linear korreliert. Die Demo berechnet und druckt die Kovarianzmatrix und zeigt eine positive Kovarianz zwischen den beiden Variablen, was darauf hindeutet, dass sie sich in die gleiche Richtung ändern. Ein Problem bei der Kovarianz allein als statistischem Instrument besteht jedoch darin, dass sie schwierig zu interpretieren ist, was zum Korrelationskoeffizienten nach Pearson führt. Das Video erklärt, wie der Korrelationskoeffizient r nach Pearson die Stärke der linearen Beziehung zwischen zwei Datenstichproben zusammenfassen kann, indem er die Kovarianz der beiden Variablen dividiert durch das Produkt der Standardabweichung jeder Stichprobe berechnet, und dass der Korrelationskoeffizient zur Auswertung verwendet werden kann die Beziehung zwischen mehr als zwei Variablen.

  • 01:05:00 Das Video diskutiert die Verwendung parametrischer statistischer Signifikanztests, bei denen davon ausgegangen wird, dass die Daten aus einer Gaußschen Verteilung mit demselben Mittelwert und derselben Standardabweichung stammen. Ein Testdatensatz wird definiert und verwendet, um den Student-t-Test für unabhängige und gepaarte Stichproben sowie den Varianzanalysetest zu demonstrieren. Das Video zeigt, wie diese Tests mit den entsprechenden Scipy-Funktionen in Python umgesetzt werden können. Die Beispiele veranschaulichen, wie diese Tests verwendet werden können, um festzustellen, ob verschiedene Datenstichproben dieselbe Verteilung aufweisen.

  • 01:10:00 Das Konzept der Effektgröße in der Statistik wird als eine Möglichkeit zur Quantifizierung des Ausmaßes von Unterschieden zwischen Gruppen oder Assoziationen zwischen Variablen diskutiert, die die Ergebnisse statistischer Hypothesentests ergänzen kann. Die Effektgrößenmethoden sind in Assoziations- und Differenzmethoden unterteilt und können je nach Interpretationszweck und verwendetem statistischen Maß standardisiert, originaleinheitlich oder einheitenfrei sein. Der Pearson-Korrelationskoeffizient ist ein häufig verwendetes standardisiertes Maß zur Bestimmung linearer Assoziationen, das einheitenfrei ist und mit der Funktion „pearsonr()“ von Python berechnet werden kann. Die statistische Aussagekraft, die von der Effektgröße, der Stichprobengröße, der Signifikanz und der Aussagekraft beeinflusst wird, wird ebenfalls als entscheidender Faktor bei der Versuchsplanung erklärt und kann durch eine Aussagekraftanalyse geschätzt werden, um die für ein Experiment erforderliche Mindeststichprobengröße zu bestimmen.

  • 01:15:00 Das Video erörtert die Bedeutung von Datenstichproben und Daten-Resampling bei der Vorhersagemodellierung und erklärt, dass bei der Stichprobenziehung eine Teilmenge einer Grundgesamtheit ausgewählt wird, während bei der Neustichprobe Populationsparameter mehrmals aus einer Datenstichprobe geschätzt werden, um die Genauigkeit zu verbessern und die Unsicherheit zu quantifizieren. Das Video beschreibt gängige Stichprobenmethoden, die entweder als Wahrscheinlichkeitsstichprobe oder Nichtwahrscheinlichkeitsstichprobe kategorisiert werden, und hebt drei Arten von Stichproben hervor, denen Ingenieure des maschinellen Lernens wahrscheinlich begegnen: einfache Zufallsstichprobe, systemische Stichprobe und geschichtete Stichprobe. Darüber hinaus warnt das Video vor möglichen Fehlern, die im Stichprobenverfahren auftreten können, und betont die Notwendigkeit statistischer Schlussfolgerungen und Sorgfalt beim Ziehen von Schlussfolgerungen über eine Population. Das Video erläutert weiterhin die häufig verwendeten Stichprobenmethoden beim maschinellen Lernen, nämlich k-fache Kreuzvalidierung und Bootstrap, wobei letzteres zwar rechenintensiv ist, aber robuste Schätzungen der Grundgesamtheit liefert.

  • 01:20:00 Die Bootstrap-Methode wird als Werkzeug zur Schätzung von Mengen über eine Population durch Mittelung von Schätzungen aus mehreren kleinen Datenstichproben diskutiert. Die Stichproben werden erstellt, indem nacheinander Beobachtungen aus großen Datensätzen gezogen und nach der Auswahl wieder in die ursprüngliche Stichprobe zurückgeführt werden. Dieser Ansatz wird als Probenahme mit Ersatz bezeichnet. Die in der SciPy-Bibliothek bereitgestellte Resample-Funktion kann zum Erstellen eines einzelnen Bootstrap-Beispiels verwendet werden. Obwohl sie keinen Mechanismus zum einfachen Sammeln von Out-of-Bag-Beobachtungen enthält, die zur Bewertung von Fit-Modellen verwendet werden könnten, sind Out-of-Bag-Beobachtungen nicht enthalten. Taschenbeobachtungen können weiterhin mithilfe des Python-Listenverständnisses erfasst werden. Darüber hinaus wird der Prozess der k-fachen Kreuzvalidierung erläutert, da es sich um ein Resampling-Verfahren handelt, das zur Bewertung von Modellen für maschinelles Lernen auf begrenzten Daten verwendet wird. Für dieses Verfahren kann die K-fach-Zyklus-Lernklasse verwendet werden, und es werden vier häufig verwendete Varianten der k-fach-Kreuzvalidierung erwähnt.

  • 01:25:00 Der Redner diskutiert zwei Ansätze für Resampling beim maschinellen Lernen: k-fache Kreuzvalidierung und Train-Test-Split. Während die k-fache Kreuzvalidierung der Goldstandard ist, ist die Aufteilung in Zugtests möglicherweise einfacher zu verstehen und zu implementieren. Der Redner demonstriert die Verwendung des Train-Test-Split-Ansatzes in Python und erwähnt auch die Verwendung von Schätzstatistiken, die darauf abzielen, die Größe und Unsicherheit eines Ergebnisses zu quantifizieren und in der Forschungsliteratur immer beliebter werden. Zu den drei Hauptklassen der Schätzstatistik gehören Effektgröße, Intervallschätzung und Metaanalyse. Der Übergang zur Schätzstatistik erfolgt, weil diese im Kontext von Forschungsfragen einfacher zu analysieren und zu interpretieren ist.

  • 01:30:00 Die verschiedenen Methoden zur Messung der Effektgröße und Intervallschätzung werden besprochen. Die Effektgröße kann durch Assoziation gemessen werden, d. h. durch den Grad, in dem sich Stichproben gemeinsam verändern, oder durch Differenz, d. h. durch den Grad, in dem sich Stichproben unterscheiden. Mittlerweile ermöglicht die Intervallschätzung die Quantifizierung der Unsicherheit in Beobachtungen und kann über Toleranzintervalle, Konfidenzintervalle oder Vorhersageintervalle erfolgen. Toleranzintervalle geben die Ober- und Untergrenzen an, innerhalb derer ein bestimmter Prozentsatz der Prozessleistung liegt, während Konfidenzintervalle Grenzen für die Schätzungen eines Populationsparameters angeben. Abschließend wird gezeigt, wie Toleranzintervalle für eine Stichprobe von Beobachtungen berechnet werden, die aus einer Gaußschen Verteilung stammen.

  • 01:35:00 Es wird das Konzept des Konfidenzintervalls besprochen, bei dem es sich um die Intervallstatistik handelt, die zur Quantifizierung der Unsicherheit einer Schätzung verwendet wird. Das Konfidenzintervall stellt Grenzen für einen Populationsparameter bereit, z. B. Mittelwert, Standardabweichung oder ähnliches. Der Wert eines Konfidenzintervalls ist die Fähigkeit, die Unsicherheit einer Schätzung zu quantifizieren. Ein kleineres Konfidenzintervall entspricht einer genaueren Schätzung, während ein größeres Konfidenzintervall eine weniger präzise Schätzung darstellt. Darüber hinaus wird das Konzept der Klassifizierungsgenauigkeit oder des Klassifizierungsfehlers diskutiert, bei dem es sich um einen Anteil oder ein Verhältnis handelt, das zur Beschreibung des Anteils korrekter oder falscher Vorhersagen des Modells verwendet wird. Mithilfe des Klassifizierungsfehlers oder der Klassifizierungsgenauigkeit kann das Konfidenzintervall einfach berechnet werden, indem eine Gaußsche Verteilung des Anteils angenommen wird.

  • 01:40:00 Das Konzept der Konfidenzintervalle wird erklärt, von der Berechnung eines Konfidenzintervalls für den Klassifizierungsfehler eines Modells bis hin zur Verwendung von Bootstrap-Resampling als nichtparametrische Methode zur Schätzung von Konfidenzintervallen. Bei der Bootstrap-Resampling-Methode werden Stichproben mit Ersetzung aus einem festen endlichen Datensatz gezogen, um Populationsparameter zu schätzen. Darüber hinaus wird das Konzept der Vorhersageintervalle als Schätzung des Intervalls eingeführt, in das zukünftige Beobachtungen mit einem bestimmten Konfidenzniveau fallen werden, was bei der Erstellung von Vorhersagen oder Prognosen mit Regressionsmodellen nützlich ist.

  • 01:45:00 Das Konzept der Vorhersageintervalle wird als Schätzung des Bereichs erklärt, in den eine zukünftige Beobachtung mit einem bestimmten Konfidenzniveau angesichts zuvor beobachteter Daten fallen wird. Es unterscheidet sich von einem Konfidenzintervall, das die Unsicherheit in Bezug auf eine Populationsstichprobenvariable quantifiziert. Vorhersageintervalle werden typischerweise in Vorhersage- oder Prognosemodellen verwendet. Der Artikel präsentiert ein einfaches Beispiel einer linearen Regression in einem Datensatz mit zwei Variablen, in dem die Beziehung zwischen Variablen aus einem Streudiagramm ersichtlich ist. Das lineare Regressionsmodell wird dann verwendet, um eine einzelne Vorhersage mit einem vorhergesagten Intervall von 95 % Sicherheit zu treffen und mit dem bekannten erwarteten Wert zu vergleichen. Hervorgehoben wird der Unterschied zwischen Vorhersageintervallen und Konfidenzintervallen sowie die Tatsache, dass Vorhersageintervalle aufgrund der Berücksichtigung der mit Fehlern verbundenen Unsicherheit normalerweise breiter sind als Konfidenzintervalle.
Applied Statistics for Machine Learning Engineers
Applied Statistics for Machine Learning Engineers
  • 2022.03.24
  • www.youtube.com
Complete Course on Applied Statistics for Machine Learning Engineers. It's all the statistics you'll need to know for a career in machine learning.
 

Angewandte lineare Algebra für Ingenieure des maschinellen Lernens



Angewandte lineare Algebra für Ingenieure des maschinellen Lernens

Das Video betont die Bedeutung des Erlernens der linearen Algebra für Ingenieure des maschinellen Lernens, da sie als grundlegender Baustein für das Verständnis von Analysis und Statistik dient, die für maschinelles Lernen unerlässlich sind. Ein tieferes Verständnis der linearen Algebra vermittelt Praktikern eine bessere Vorstellung davon, wie Methoden des maschinellen Lernens funktionieren, und ermöglicht es ihnen, Algorithmen anzupassen und neue zu entwickeln.

Der Kurs verfolgt einen Top-Down-Ansatz, um die Grundlagen der linearen Algebra zu vermitteln und anhand konkreter Beispiele und Datenstrukturen Operationen auf Matrizen und Vektoren zu demonstrieren. Lineare Algebra wird als die Mathematik von Matrizen und Vektoren beschrieben, die eine Sprache zur Datenmanipulation bereitstellt und die Erstellung neuer Spalten oder Arrays von Zahlen durch Operationen an diesen Datenstrukturen ermöglicht. Die lineare Algebra wurde ursprünglich im späten 19. Jahrhundert zur Lösung linearer Gleichungssysteme entwickelt und ist zu einer wichtigen Voraussetzung für das Verständnis maschinellen Lernens geworden.

Der Referent stellt das Konzept der numerischen linearen Algebra vor, das die Anwendung der linearen Algebra in Computern beinhaltet. Dazu gehört die Implementierung linearer Algebraoperationen und die Bewältigung der Herausforderungen, die sich beim Arbeiten mit begrenzter Gleitkommagenauigkeit in digitalen Computern ergeben. Die numerische lineare Algebra spielt eine entscheidende Rolle beim maschinellen Lernen, insbesondere bei Deep-Learning-Algorithmen, die stark auf grafische Verarbeitungseinheiten (GPUs) angewiesen sind, um lineare Algebra-Berechnungen effizient durchzuführen. Zur Berechnung linearer Algebraoperationen werden häufig verschiedene Open-Source-Bibliotheken für numerische lineare Algebra verwendet, die auf Fortran-basierten Bibliotheken basieren, häufig in Verbindung mit Programmiersprachen wie Python.

Die Bedeutung der linearen Algebra in der Statistik wird hervorgehoben, insbesondere in der multivariaten statistischen Analyse, der Hauptkomponentenanalyse und der Lösung linearer Regressionsprobleme. Das Video erwähnt auch das breite Anwendungsspektrum der linearen Algebra in Bereichen wie Signalverarbeitung, Computergrafik und sogar Physik, mit Beispielen wie Albert Einsteins Relativitätstheorie, die Tensoren und Tensorrechnung, eine Art lineare Algebra, verwendet.

Das Video untersucht weiter die praktische Anwendung der linearen Algebra bei maschinellen Lernaufgaben. Es stellt das Konzept der Verwendung linearer Algebraoperationen wie Zuschneiden, Skalieren und Scheren zur Manipulation von Bildern vor und zeigt, wie Notation und Operationen der linearen Algebra in diesem Zusammenhang eingesetzt werden können. Darüber hinaus erklärt das Video die beliebte Kodierungstechnik namens One-Hot-Kodierung für kategoriale Variablen. Die wichtigste beim maschinellen Lernen verwendete Datenstruktur, N-dimensionale Arrays oder ND-Arrays, wird vorgestellt, wobei die NumPy-Bibliothek in Python als leistungsstarkes Werkzeug zum Erstellen und Bearbeiten dieser Arrays diskutiert wird. Das Video behandelt wichtige Funktionen wie V-Stack und horizontales Stacking, die die Erstellung neuer Arrays aus vorhandenen Arrays ermöglichen.

Die Bearbeitung und der Zugriff auf Daten in NumPy-Arrays, die häufig zur Darstellung von Daten für maschinelles Lernen verwendet werden, werden erläutert. Das Video zeigt, wie man eindimensionale Listen mithilfe der Array-Funktion in Arrays umwandelt und zweidimensionale Datenarrays mithilfe von Listenlisten erstellt. Es behandelt auch Indizierungs- und Slicing-Vorgänge in NumPy-Arrays, einschließlich der Verwendung des Doppelpunktoperators für Slicing und negative Indizierung. Die Bedeutung des Slicing bei der Angabe von Eingabe- und Ausgabevariablen beim maschinellen Lernen wird hervorgehoben.

Im Video werden Techniken für die Arbeit mit mehrdimensionalen Datensätzen beim maschinellen Lernen besprochen. Es beginnt mit dem eindimensionalen Slicing und geht zum zweidimensionalen Slicing über, zusammen mit der Aufteilung der Daten in Eingabe- und Ausgabewerte für Training und Tests. Es wird die Array-Umformung behandelt und erklärt, wie man eindimensionale Arrays in zweidimensionale Arrays mit einer Spalte umformt und zweidimensionale Daten in dreidimensionale Arrays für Algorithmen umwandelt, die mehrere Stichproben eines oder mehrerer Zeitschritte und Merkmale erfordern. Das Konzept des Array-Broadcastings wird eingeführt, das die Verwendung von Arrays unterschiedlicher Größe in arithmetischen Operationen ermöglicht und so eine effektive Verarbeitung von Datensätzen unterschiedlicher Größe ermöglicht.

Das Video geht auch auf die Einschränkungen der Array-Arithmetik in NumPy ein, insbesondere darauf, dass arithmetische Operationen nur für Arrays mit denselben Abmessungen und Abmessungen mit derselben Größe ausgeführt werden können. Diese Einschränkung wird jedoch durch die integrierte Broadcasting-Funktion von NumPy überwunden, die das kleinere Array entlang der letzten nicht übereinstimmenden Dimension repliziert und so eine Arithmetik zwischen Arrays mit unterschiedlichen Formen und Größen ermöglicht. Das Video bietet drei Beispiele für die Übertragung, darunter skalare und eindimensionale Arrays, skalare in einem zweidimensionalen Array und eindimensionale Arrays in einem zweidimensionalen Array. Es wird darauf hingewiesen, dass das Senden einer strengen Regel folgt, die besagt, dass Arithmetik nur durchgeführt werden kann, wenn die Form jeder Dimension in den Arrays gleich ist oder eine von ihnen die Dimensionsgröße eins hat.

Anschließend stellt der Sprecher das Konzept von Vektoren vor, bei denen es sich um Tupel eines oder mehrerer Werte handelt, die Skalare genannt werden. Vektoren werden häufig durch Kleinbuchstaben wie „v“ dargestellt und können als Punkte oder Koordinaten in einem n-dimensionalen Raum betrachtet werden, wobei „n“ die Anzahl der Dimensionen darstellt. Die Erstellung von Vektoren als NumPy-Arrays in Python wird erklärt. Das Video behandelt auch Vektorarithmetikoperationen wie Vektoraddition und -subtraktion, die elementweise für Vektoren gleicher Länge ausgeführt werden, was zu einem neuen Vektor gleicher Länge führt. Darüber hinaus erklärt der Referent, wie Vektoren mit Skalaren multipliziert werden können, um ihre Größe zu skalieren, und demonstriert, wie man diese Operationen mithilfe von NumPy-Arrays in Python durchführt. Außerdem wird das Skalarprodukt zweier Vektoren besprochen, das einen Skalar ergibt und zur Berechnung der gewichteten Summe eines Vektors verwendet werden kann.

Der Fokus verlagert sich dann auf Vektornormen und ihre Bedeutung beim maschinellen Lernen. Vektornormen beziehen sich auf die Größe oder Länge eines Vektors und werden anhand eines Maßes berechnet, das den Abstand des Vektors vom Ursprung des Vektorraums zusammenfasst. Es wird betont, dass Vektornormen immer positiv sind, mit Ausnahme eines Vektors mit ausschließlich Nullwerten. Das Video stellt vier gängige Vektornormberechnungen vor, die beim maschinellen Lernen verwendet werden. Es beginnt mit der Vektor-L1-Norm, gefolgt von der L2-Norm (euklidische Norm) und der Max-Norm. Der Abschnitt definiert auch Matrizen und erklärt, wie man sie in Python manipuliert. Besprochen wird die Matrixarithmetik, einschließlich Matrix-Matrix-Multiplikation (Skalarprodukt), Matrix-Vektor-Multiplikation und Skalarmultiplikation. Eine Matrix wird als zweidimensionales Array von Skalaren mit einer oder mehreren Spalten und einer oder mehreren Zeilen beschrieben, typischerweise dargestellt durch Großbuchstaben wie „A“.

Als nächstes wird das Konzept der Matrixoperationen für maschinelles Lernen vorgestellt. Dazu gehören Matrixmultiplikation, Matrixdivision und Matrix-Skalarmultiplikation. Bei der Matrixmultiplikation, auch Matrix-Skalarprodukt genannt, muss die Anzahl der Spalten in der ersten Matrix gleich der Anzahl der Zeilen in der zweiten Matrix sein. Im Video wird erwähnt, dass die Punktfunktion in NumPy zur Implementierung dieser Operation verwendet werden kann. Außerdem wird das Konzept der Matrixtransponierung erläutert, bei dem eine neue Matrix durch Umdrehen der Anzahl der Zeilen und Spalten der ursprünglichen Matrix erstellt wird. Abschließend wird der Prozess der Matrixinversion besprochen, bei dem es darum geht, eine andere Matrix zu finden, die bei Multiplikation mit der Originalmatrix eine Identitätsmatrix ergibt.

Als Fortsetzung der Diskussion der Matrixinversion untersucht das Video dieses Konzept weiter. Das Invertieren einer Matrix wird durch eine hochgestellte negative 1 neben der Matrix angezeigt. Das Video erklärt, dass es bei der Matrixinversion darum geht, effiziente numerische Methoden zu finden. Es wird die Trace-Operation einer quadratischen Matrix eingeführt, die die Summe der Diagonalelemente berechnet und mit der Trace-Funktion in NumPy berechnet werden kann. Die Determinante einer quadratischen Matrix ist als skalare Darstellung des Volumens der Matrix definiert und kann auch mit der det-Funktion in NumPy berechnet werden. Kurz erwähnt wird der Rang einer Matrix, der die Anzahl der linear unabhängigen Zeilen oder Spalten in der Matrix schätzt und üblicherweise mithilfe der Singulärwertzerlegung berechnet wird. Abschließend wird das Konzept dünnbesetzter Matrizen erläutert und hervorgehoben, dass sie überwiegend Nullwerte enthalten und deren Darstellung und Arbeit rechenintensiv sein kann.

Das Video befasst sich dann mit spärlichen Matrizen, bei denen es sich um Matrizen handelt, die hauptsächlich aus Nullwerten bestehen und sich von dichten Matrizen unterscheiden, die meist Nicht-Null-Werte aufweisen. Die Sparsity wird durch die Berechnung des Sparsity-Scores quantifiziert. Dabei handelt es sich um die Anzahl der Nullwerte dividiert durch die Gesamtzahl der Elemente in der Matrix. Das Video betont zwei Hauptprobleme im Zusammenhang mit Sparsity: räumliche Komplexität und zeitliche Komplexität. Es wird darauf hingewiesen, dass die Darstellung und Arbeit mit dünn besetzten Matrizen rechenintensiv sein kann.

Um diese Herausforderungen anzugehen, wird im Video erwähnt, dass Scipy Tools zum Erstellen und Bearbeiten dünn besetzter Matrizen bereitstellt. Darüber hinaus wird hervorgehoben, dass viele lineare Algebrafunktionen in NumPy und Scipy auf dünn besetzten Matrizen arbeiten können, was effiziente Berechnungen und Operationen mit dünn besetzten Daten ermöglicht.

Sparse-Matrizen werden häufig beim angewandten maschinellen Lernen für Datenbeobachtungen und Datenaufbereitung verwendet. Ihre geringe Dichte ermöglicht eine effizientere Speicherung und Verarbeitung großer Datensätze mit einer erheblichen Anzahl von Nullwerten. Durch die Nutzung der Sparsity-Struktur können Algorithmen für maschinelles Lernen von einer geringeren Speichernutzung und schnelleren Berechnungen profitieren.

Anschließend werden im Video verschiedene Arten von Matrizen besprochen, die häufig in der linearen Algebra verwendet werden, insbesondere solche, die für maschinelles Lernen relevant sind. Es werden quadratische Matrizen eingeführt, bei denen die Anzahl der Zeilen gleich der Anzahl der Spalten ist. Es werden auch rechteckige Matrizen erwähnt, die eine unterschiedliche Anzahl von Zeilen und Spalten aufweisen. Das Video erklärt die Hauptdiagonale einer quadratischen Matrix, die aus Elementen mit gleichen Zeilen- und Spaltenindizes besteht. Die Ordnung einer quadratischen Matrix, definiert als die Anzahl der Zeilen oder Spalten, wird ebenfalls behandelt.

Darüber hinaus stellt das Video symmetrische Matrizen vor, das sind quadratische Matrizen, die gleich ihrer Transponierten sind. Dreiecksmatrizen, einschließlich oberer und unterer Dreiecksmatrizen, werden erklärt. Diagonalmatrizen, bei denen alle nichtdiagonalen Elemente Null sind, werden ebenfalls besprochen. Identitätsmatrizen, das sind quadratische Matrizen mit Einsen auf der Hauptdiagonale und Nullen an anderer Stelle, werden im Kontext ihrer Rolle als multiplikative Identitäten erklärt. Es werden auch orthogonale Matrizen eingeführt, die entstehen, wenn zwei Vektoren ein Skalarprodukt gleich Null haben.

Im Video werden dann orthogonale Matrizen und Tensoren besprochen. Eine orthogonale Matrix ist eine spezielle Art einer quadratischen Matrix, bei der die Spalten und Zeilen orthogonale Einheitsvektoren sind. Diese Matrizen sind recheneffizient und stabil für die Berechnung ihrer Umkehrung, wodurch sie in verschiedenen Anwendungen, einschließlich Deep-Learning-Modellen, nützlich sind. Das Video erwähnt außerdem, dass Tensoren in TensorFlow eine grundlegende Datenstruktur und eine Verallgemeinerung von Vektoren und Matrizen sind. Tensoren werden als mehrdimensionale Arrays dargestellt und können in Python mithilfe von n-dimensionalen Arrays, ähnlich wie Matrizen, manipuliert werden. Das Video hebt hervor, dass elementweise Tensoroperationen wie Addition und Subtraktion an Tensoren, Matrizen und Vektoren durchgeführt werden können, was eine Intuition für höhere Dimensionen vermittelt.

Als nächstes stellt das Video die Matrixzerlegung vor, eine Methode zum Zerlegen einer Matrix in ihre Bestandteile. Die Matrixzerlegung vereinfacht komplexe Matrixoperationen und ermöglicht effiziente Berechnungen. Es werden zwei weit verbreitete Matrixzerlegungstechniken behandelt: die LU-Zerlegung (Lower-Upper) für quadratische Matrizen und die QR-Zerlegung (QR-Faktorisierung) für rechteckige Matrizen.

Die LU-Zerlegung kann lineare Gleichungen im Zusammenhang mit linearen Regressionsproblemen vereinfachen und Berechnungen wie Determinante und Umkehrung einer Matrix erleichtern. Die QR-Zerlegung findet Anwendung bei der Lösung linearer Gleichungssysteme. Beide Zerlegungsmethoden können mithilfe integrierter Funktionen im NumPy-Paket in Python implementiert werden und bieten effiziente und zuverlässige Lösungen für verschiedene Probleme der linearen Algebra.

Darüber hinaus wird im Video die Cholesky-Zerlegung besprochen, die speziell für symmetrische und positiv definite Matrizen verwendet wird. Die Cholesky-Zerlegung wird durch eine untere Dreiecksmatrix dargestellt und gilt für die Zerlegung symmetrischer Matrizen als fast doppelt so effizient wie die LU-Zerlegung.

Im Video wird kurz erwähnt, dass Matrixzerlegungsmethoden, einschließlich der Eigenzerlegung, zur Vereinfachung komplexer Operationen eingesetzt werden. Die Eigenzerlegung zerlegt eine Matrix in ihre Eigenvektoren und Eigenwerte. Eigenvektoren sind Koeffizienten, die Richtungen darstellen, während Eigenwerte Skalare sind. Sowohl Eigenvektoren als auch Eigenwerte haben praktische Anwendungen, beispielsweise zur Dimensionsreduktion und zur Durchführung komplexer Matrixoperationen.

Abschließend geht das Video auf das Konzept der Singular Value Decomposition (SVD) und seine Anwendungen beim maschinellen Lernen ein. SVD wird in verschiedenen Matrixoperationen und Datenreduktionsmethoden beim maschinellen Lernen verwendet. Es spielt eine entscheidende Rolle bei Berechnungen wie der linearen Regression der kleinsten Quadrate, der Bildkomprimierung und der Rauschunterdrückung von Daten.

Das Video erklärt, dass SVD die Zerlegung einer Matrix in drei separate Matrizen ermöglicht: U, Σ und V. Die U-Matrix enthält die linken Singulärvektoren, Σ ist eine Diagonalmatrix mit den Singulärwerten und V enthält die rechten Singulärvektoren. Durch die Rekonstruktion der Originalmatrix aus diesen Komponenten kann man eine Annäherung an die Originaldaten erhalten und gleichzeitig deren Dimensionalität reduzieren.

Eine der Hauptanwendungen von SVD ist die Dimensionsreduktion. Durch Auswahl einer Teilmenge der signifikantesten Singulärwerte und ihrer entsprechenden Singulärvektoren ist es möglich, die Daten in einem niedrigerdimensionalen Raum darzustellen, ohne wichtige Informationen zu verlieren. Diese Technik ist besonders nützlich in Fällen, in denen die Daten eine hohe Dimensionalität aufweisen, da sie eine effizientere Speicherung und Berechnung ermöglicht.

Das Video zeigt, dass SVD erfolgreich in der Verarbeitung natürlicher Sprache mithilfe einer Technik namens Latent Semantic Analysis (LSA) oder Latent Semantic Indexing (LSI) eingesetzt wurde. Durch die Darstellung von Textdokumenten als Matrizen und die Durchführung von SVD kann LSA die zugrunde liegende semantische Struktur der Dokumente erfassen und so Aufgaben wie Dokumentähnlichkeit und Themenmodellierung ermöglichen.

Darüber hinaus stellt das Video die Truncated SVD-Klasse vor, die die Fähigkeit zur Reduzierung der Dimensionalität einer Matrix direkt implementiert. Mit der verkürzten SVD wird es möglich, die ursprüngliche Matrix in eine niedrigerdimensionale Darstellung umzuwandeln und dabei die wichtigsten Informationen beizubehalten. Diese Technik ist besonders beim Umgang mit großen Datensätzen von Vorteil, da sie eine effizientere Verarbeitung und Analyse ermöglicht.

Zusammenfassend hat das Video verschiedene Themen im Zusammenhang mit linearer Algebra für maschinelles Lernen behandelt. Es wurde die Bedeutung des Erlernens der linearen Algebra als grundlegender Baustein für das Verständnis von Analysis und Statistik im Kontext des maschinellen Lernens hervorgehoben. In dem Video wurden die Anwendungen der linearen Algebra beim maschinellen Lernen erörtert, beispielsweise die Anpassung und Entwicklung von Algorithmen, die numerische lineare Algebra, die statistische Analyse und verschiedene andere Bereiche wie Signalverarbeitung und Computergrafik.

Darüber hinaus wurden in dem Video Schlüsselkonzepte der linearen Algebra untersucht, darunter Vektoren, Matrizen, Matrixoperationen, Vektornormen, Matrixzerlegungstechniken und dünn besetzte Matrizen. Es wurde erklärt, wie diese Konzepte beim maschinellen Lernen verwendet werden, und Einblicke in ihre praktischen Anwendungen gegeben.

Durch das Verständnis der linearen Algebra können Praktiker des maschinellen Lernens ein tieferes Verständnis der zugrunde liegenden mathematischen Grundlagen von Algorithmen des maschinellen Lernens erlangen und diese effektiv auf reale Probleme anwenden. Die lineare Algebra dient als leistungsstarkes Werkzeug zur Datenmanipulation, Dimensionsreduzierung und Optimierung und ermöglicht effiziente und effektive Lösungen für maschinelles Lernen.

  • 00:00:00 Die Bedeutung des Erlernens der linearen Algebra für Ingenieure des maschinellen Lernens wird hervorgehoben, da sie als Baustein für das Verständnis von Analysis und Statistik gilt, die beim maschinellen Lernen erforderlich sind. Ein tieferes Verständnis der linearen Algebra vermittelt Praktikern des maschinellen Lernens einen besseren Einblick in die Funktionsweise der Methoden und ermöglicht es ihnen, Algorithmen anzupassen und neue zu entwickeln. In diesem Kurs werden die Grundlagen der linearen Algebra in einem Top-Down-Ansatz vermittelt, wobei anhand konkreter Beispiele und Datenstrukturen Operationen auf Matrizen und Vektoren demonstriert werden. Lineare Algebra ist die Mathematik von Matrizen und Vektoren, die eine Sprache für Daten bereitstellt und die Erstellung neuer Spalten oder Arrays von Zahlen mithilfe von Operationen an diesen Datenstrukturen ermöglicht. Die lineare Algebra wurde im späten 19. Jahrhundert zur Lösung unbekannter linearer Gleichungssysteme entwickelt und ist heute eine wichtige Voraussetzung für das Verständnis maschinellen Lernens.

  • 00:05:00 Der Redner diskutiert die numerische lineare Algebra, also die Anwendung der linearen Algebra in Computern. Dazu gehört die Implementierung linearer Algebraoperationen sowie der Umgang mit potenziellen Problemen, die beim Arbeiten mit begrenzter Gleitkommagenauigkeit in digitalen Computern auftreten. Die numerische lineare Algebra ist ein wesentliches Werkzeug beim maschinellen Lernen, da viele Deep-Learning-Algorithmen auf der Fähigkeit grafischer Verarbeitungseinheiten basieren, Operationen der linearen Algebra schnell zu berechnen. Zur Berechnung linearer Algebraoperationen werden mehrere beliebte Open-Source-Bibliotheken für numerische lineare Algebra verwendet, wobei Fortran-basierte lineare Algebra-Bibliotheken die Grundlage für die meisten modernen Implementierungen unter Verwendung von Programmiersprachen wie Python bilden. Lineare Algebra ist auch in der Statistik von wesentlicher Bedeutung, insbesondere in der multivariaten statistischen Analyse, der Hauptkomponentenanalyse und der Lösung linearer Regressionsprobleme. Darüber hinaus diskutiert der Redner die verschiedenen Anwendungen der linearen Algebra in Bereichen wie Signalverarbeitung, Computergrafik und sogar der Physik, wobei Albert Einsteins Relativitätstheorie Tensoren und Tensorrechnung verwendet, eine Art lineare Algebra.

  • 00:10:00 Das Konzept der Verwendung linearer Algebra-Operationen für Bilder wie Zuschneiden, Skalieren und Scheren unter Verwendung der Notation und Operationen der linearen Algebra wird vorgestellt. Darüber hinaus wird die beliebte Kodierungstechnik für kategoriale Variablen, die sogenannte One-Hot-Kodierung, erläutert. Darüber hinaus wird die Hauptdatenstruktur, die beim maschinellen Lernen verwendet wird, N-dimensionale Arrays oder ND-Arrays, und wie man sie mithilfe der NumPy-Bibliothek in Python erstellt und manipuliert, besprochen. Abschließend werden zwei der beliebtesten Funktionen zum Erstellen neuer Arrays aus vorhandenen Arrays, V-Stack und horizontales Stacking, erläutert.

  • 00:15:00 Der Redner erläutert, wie man Daten in Numpy-Arrays manipuliert und darauf zugreift, die typischerweise zur Darstellung von Daten für maschinelles Lernen verwendet werden. Eine eindimensionale Liste kann mithilfe der Array-Funktion in ein Array umgewandelt werden, und ein zweidimensionales Datenarray kann mithilfe einer Liste von Listen erstellt werden. Der Zugriff auf Daten über die Indizierung ähnelt anderen Programmiersprachen, Numpy-Arrays können jedoch auch mithilfe des Doppelpunktoperators in Slices unterteilt werden. Auch eine negative Indizierung ist möglich, und Slicing kann zur Angabe von Ein- und Ausgabevariablen beim maschinellen Lernen verwendet werden.

  • 00:20:00 Das Video behandelt Techniken für die Arbeit mit mehrdimensionalen Datensätzen, die beim maschinellen Lernen üblich sind. Es beginnt mit dem eindimensionalen Slicing und geht weiter zum zweidimensionalen Slicing und der Aufteilung der Daten in Eingabe- und Ausgabewerte für Training und Tests. Das Video behandelt dann die Array-Umformung, einschließlich der Umformung eindimensionaler Arrays in zweidimensionale Arrays mit einer Spalte und der Umformung zweidimensionaler Daten in ein dreidimensionales Array für Algorithmen, die mehrere Stichproben von einem oder mehreren Zeitschritten und einem oder mehreren Merkmalen erwarten . Schließlich befasst sich das Video mit dem Array-Broadcasting, das die Addition, Subtraktion oder Verwendung von Arrays mit unterschiedlichen Größen in der Arithmetik ermöglicht, was für Datensätze mit unterschiedlichen Größen nützlich ist.

  • 00:25:00 Es werden die Einschränkungen der Array-Arithmetik in Numpy besprochen, die nur die Durchführung von Arithmetik für Arrays mit denselben Abmessungen und Abmessungen mit derselben Größe umfassen. Diese Einschränkung wird jedoch durch die integrierte Broadcasting-Funktion von Numpy überwunden, die das kleinere Array entlang der letzten nicht übereinstimmenden Dimension repliziert. Diese Methode ermöglicht die Arithmetik zwischen Arrays mit unterschiedlichen Formen und Größen. Es werden drei Beispiele für die Übertragung angegeben, darunter skalare und eindimensionale Arrays, skalare in einem zweidimensionalen Array und eindimensionale Arrays in einem zweidimensionalen Array. Es werden auch die Einschränkungen des Broadcastings erwähnt, einschließlich der strengen Regel, die erfüllt sein muss, damit Broadcasting durchgeführt werden kann, die besagt, dass Arithmetik nur dann durchgeführt werden kann, wenn die Form jeder Dimension in den Arrays gleich ist oder eins die Dimensionsgröße eins hat.

  • 00:30:00 Der Sprecher stellt das Konzept von Vektoren vor, bei denen es sich um Tupel eines oder mehrerer Werte handelt, die Skalare genannt werden, und die oft mit einem Kleinbuchstaben wie „v“ dargestellt werden. Vektoren können als Punkte oder Koordinaten in einem n-dimensionalen Raum betrachtet werden, wobei n die Anzahl der Dimensionen ist, und können in Python als Numpy-Array erstellt werden. Der Referent geht auch auf vektorarithmetische Operationen wie Vektoraddition und -subtraktion ein, die elementweise für Vektoren gleicher Länge durchgeführt werden, was zu einem neuen Vektor gleicher Länge führt. Darüber hinaus erklärt der Sprecher, dass Vektoren mit einem Skalar multipliziert werden können, um ihre Größe zu skalieren, und wie man diese Operationen mithilfe von Numpy-Arrays in Python durchführt. Abschließend spricht der Redner über das Skalarprodukt zweier Vektoren, das einen Skalar ergibt, und wie es zur Berechnung der gewichteten Summe eines Vektors verwendet werden kann.

  • 00:35:00 Der Fokus liegt auf Vektornormen und ihrer Bedeutung beim maschinellen Lernen. Vektornormen beziehen sich auf die Größe oder Länge eines Vektors, die anhand eines Maßes berechnet wird, das den Abstand des Vektors vom Ursprung des Vektorraums zusammenfasst. Die Norm ist immer eine positive Zahl, mit Ausnahme eines Vektors mit ausschließlich Nullwerten. Es werden vier gängige Vektornormberechnungen vorgestellt, die beim maschinellen Lernen verwendet werden, beginnend mit der Vektor-L1-Norm, gefolgt von den L2- und Max-Normen. Der Abschnitt definiert auch Matrizen und wie man sie in Python manipuliert, wobei Matrixarithmetik, Matrix-Matrix-Multiplikation (Skalarprodukt), Matrix-Vektor-Multiplikation und Skalarmultiplikation besprochen werden. Eine Matrix ist ein zweidimensionales Array von Skalaren mit einer oder mehreren Spalten und einer oder mehreren Zeilen und wird häufig durch einen Großbuchstaben wie A dargestellt.

  • 00:40:00 Das Konzept der Matrixoperationen für maschinelles Lernen wird vorgestellt, einschließlich Matrixmultiplikation, Matrixdivision und Matrixskalarmultiplikation. Bei der Matrixmultiplikation, auch Matrix-Skalarprodukt genannt, muss die Anzahl der Spalten in der ersten Matrix gleich der Anzahl der Zeilen in der zweiten Matrix sein. Zur Implementierung dieser Operation kann die Punktfunktion in Numpy verwendet werden. Außerdem wird das Konzept der Matrixtransponierung eingeführt, bei dem eine neue Matrix durch Umkehren der Anzahl der Zeilen und Spalten der ursprünglichen Matrix erstellt wird. Abschließend wird der Prozess der Matrixinversion diskutiert, bei dem eine andere Matrix gefunden wird, die mit der Matrix multipliziert wird, was zu einer Identitätsmatrix führt.

  • 00:45:00 Das Konzept der Matrixinversion wird behandelt, wobei die Invertierung einer Matrix durch eine hochgestellte negative 1 neben der Matrix angezeigt wird. Die Operation der Matrixinversion erfordert die Suche nach einer Reihe effizienter numerischer Methoden. Besprochen wird auch die Trace-Operation einer quadratischen Matrix, die mit der Trace-Funktion in Numpy berechnet werden kann. Die Determinante einer quadratischen Matrix ist als skalare Darstellung des Volumens einer Matrix definiert und kann auch mithilfe der det-Funktion in Numpy berechnet werden. Darüber hinaus wird der Rang einer Matrix eingeführt, der die Anzahl linear unabhängiger Zeilen oder Spalten in der Matrix schätzt und üblicherweise mithilfe der Singulärwertzerlegung berechnet wird. Abschließend wird das Konzept der dünnbesiedelten Matrizen erläutert, bei denen es sich um Matrizen handelt, die größtenteils Nullwerte enthalten und deren Darstellung und Arbeit rechenintensiv ist.

  • 00:50:00 Wir lernen etwas über spärliche Matrizen, das sind Matrizen, die größtenteils aus Nullwerten bestehen und sich von dichten Matrizen unterscheiden, die größtenteils Nicht-Null-Werte haben. Die Sparsity kann durch Berechnung des Scores quantifiziert werden. Dabei handelt es sich um die Anzahl der Nullwerte dividiert durch die Gesamtzahl der Elemente in der Matrix. Wir lernen auch die beiden großen Probleme der Sparsity kennen: räumliche Komplexität und zeitliche Komplexität. Scipy bietet Werkzeuge zum Erstellen dünn besetzter Matrizen und viele Numpy- und Scipy-Funktionen der linearen Algebra können damit arbeiten. Sparse-Matrizen werden häufig beim angewandten maschinellen Lernen für Datenbeobachtungen und Datenaufbereitung verwendet.

  • 00:55:00 Die verschiedenen Arten von Matrizen, die üblicherweise in der linearen Algebra verwendet werden und insbesondere für maschinelles Lernen relevant sind, werden diskutiert. Es werden quadratische Matrizen eingeführt, bei denen die Anzahl der Zeilen der Anzahl der Spalten entspricht, sowie rechteckige Matrizen. Die Hauptdiagonale und Ordnung einer quadratischen Matrix werden ebenfalls behandelt. Darüber hinaus werden symmetrische Matrizen, Dreiecksmatrizen (einschließlich oberer und unterer Matrizen), Diagonalmatrizen, Identitätsmatrizen und orthogonale Matrizen erläutert. Es ist zu beachten, dass eine orthogonale Matrix gebildet wird, wenn zwei Vektoren ein Skalarprodukt gleich Null haben.

  • 01:00:00 Wir lernen etwas über orthogonale Matrizen und Tensoren. Eine orthogonale Matrix ist eine Art quadratische Matrix, deren Spalten und Zeilen orthogonale Einheitsvektoren sind. Diese Matrizen sind rechnerisch günstig und stabil bei der Berechnung ihrer Umkehrung und können in Deep-Learning-Modellen verwendet werden. In Tensorflow sind Tensoren eine Eckpfeilerdatenstruktur und eine Verallgemeinerung von Vektoren und Matrizen, dargestellt als mehrdimensionale Arrays. Tensoren können in Python mithilfe von n-dimensionalen Arrays, ähnlich wie Matrizen, mit elementweisen Tensoroperationen wie Addition und Subtraktion manipuliert werden. Darüber hinaus können Tensorproduktoperationen an Tensoren, Matrizen und Vektoren durchgeführt werden, was eine Intuition höherer Dimensionen ermöglicht.

  • 01:05:00 Das Video stellt die Matrixzerlegung vor, eine Methode zur Zerlegung einer Matrix in ihre Bestandteile und zur Vereinfachung komplexerer Matrixoperationen, die an der Zerlegungsmatrix durchgeführt werden können. Zwei weit verbreitete Matrixzerlegungstechniken, die in den kommenden Lektionen behandelt werden, sind die LU-Matrixzerlegung für quadratische Matrizen und die QR-Matrixzerlegung für rechteckige Matrizen. Die LU-Zerlegung kann zur Vereinfachung linearer Gleichungen im linearen Regressionsproblem und zur Berechnung der Determinante und Umkehrung einer Matrix verwendet werden, während die QR-Zerlegung bei der Lösung linearer Gleichungssysteme Anwendung findet. Beide Zerlegungen können mithilfe integrierter Funktionen im NumPy-Paket in Python implementiert werden.

  • 01:10:00 Das Video diskutiert die Cholesky-Zerlegung, die für symmetrische und positiv definite Matrizen verwendet wird. Diese Methode ist fast doppelt so effizient wie die LU-Zerlegung und wird für die Zerlegung symmetrischer Matrizen bevorzugt. Die Cholesky-Zerlegung wird durch eine untere Dreiecksmatrix dargestellt, auf die leicht über die Cholosky-Funktion in NumPy zugegriffen werden kann. Das Video erwähnt auch, dass Matrixzerlegungsmethoden, einschließlich Eigenzerlegung, zur Vereinfachung komplexer Operationen verwendet werden und die Eigenzerlegung eine Matrix in Eigenvektoren und Eigenwerte zerlegt. Schließlich wird im Video darauf hingewiesen, dass Eigenvektoren Einheitsvektoren sind, während Eigenwerte Skalare sind und beide nützlich sind, um die Dimensionalität zu reduzieren und komplexe Matrixoperationen durchzuführen.

  • 01:15:00 Das Konzept der Eigenzerlegung und ihre Berechnung mithilfe eines effizienten iterativen Algorithmus wird diskutiert. Die Eigenzerlegung ist eine Methode zur Zerlegung einer quadratischen Matrix in ihre Eigenwerte und Eigenvektoren, bei denen es sich um Koeffizienten bzw. Richtungen handelt. Die Eigenzerlegung kann in NumPy mithilfe der Funktion eig berechnet werden, und es können Tests durchgeführt werden, um zu bestätigen, dass ein Vektor tatsächlich ein Eigenvektor einer Matrix ist. Die ursprüngliche Matrix kann auch aus den Eigenwerten und Eigenvektoren rekonstruiert werden. Der Abschnitt stellt außerdem kurz die Singularwertzerlegung (SVD) als Matrixzerlegungsmethode zur Reduzierung der Matrix in ihre Bestandteile vor, um bestimmte nachfolgende Matrixberechnungen zu vereinfachen, sowie ihre Anwendungen in verschiedenen Bereichen wie Komprimierung, Rauschunterdrückung und Datenreduktion.

  • 01:20:00 Das Konzept der Singular Value Decomposition (SVD) und seine Anwendungen im maschinellen Lernen werden diskutiert. SVD wird bei der Berechnung anderer Matrizenoperationen und Datenreduktionsmethoden beim maschinellen Lernen verwendet, wie z. B. der kleinsten quadratischen linearen Regression, der Bildkomprimierung und der Rauschunterdrückung von Daten. Die ursprüngliche Matrix kann aus den von der SVD zurückgegebenen u-, Sigma- und v-Elementen rekonstruiert werden. Eine beliebte Anwendung von SVD ist die Dimensionsreduktion, bei der Daten auf eine kleinere Teilmenge von Merkmalen reduziert werden können, die für das Vorhersageproblem am relevantesten sind. Dies wurde erfolgreich in der Verarbeitung natürlicher Sprache mithilfe einer Technik angewendet, die als latente semantische Analyse oder latente semantische Indizierung bezeichnet wird. Die verkürzte SVD-Klasse, die diese Funktion direkt implementiert, wird besprochen und ihre Anwendung anhand einer definierten Matrix gefolgt von einer Transformationsversion demonstriert.
Applied Linear Algebra for Machine Learning Engineers
Applied Linear Algebra for Machine Learning Engineers
  • 2022.03.26
  • www.youtube.com
This course will cover everything you need to know about linear algebra for your career as a machine learning engineer.
 

Eine vollständige Einführung in XGBoost für Ingenieure des maschinellen Lernens


Eine vollständige Einführung in XGBoost für Ingenieure des maschinellen Lernens

Im Video bietet der Dozent eine umfassende Einführung in XGBoost für Machine-Learning-Ingenieure. Sie erklären, dass XGBoost eine Open-Source-Bibliothek für maschinelles Lernen ist, die für ihre Fähigkeit bekannt ist, schnell hochpräzise Klassifizierungs- und Regressionsmodelle zu erstellen. Es hat als erste Wahl für die Erstellung realer Modelle an Beliebtheit gewonnen, insbesondere beim Umgang mit stark strukturierten Datensätzen. XGBoost wurde von Taiki Chen verfasst und basiert auf der Gradient-Boost-Entscheidungsbaumtechnik, die eine schnelle und effiziente Modellerstellung ermöglicht.

Der Dozent betont, dass XGBoost mehrere Schnittstellen unterstützt, darunter Python- und Scikit-Learn-Implementierungen. Anschließend demonstrieren sie XGBoost und stellen verschiedene Module zum Laden von Daten und zum Erstellen von Modellen vor.

Das Video konzentriert sich dann auf die Vorbereitung des Datensatzes für das Training eines XGBoost-Modells. Der Dozent betont, wie wichtig es ist, die Daten in Trainings- und Testsätze zu unterteilen. Sie identifizieren die Zielvariable als binäres Klassifizierungsproblem und erklären den Prozess der Einstellung der notwendigen Hyperparameter für das XGBoost-Modell. Sobald das Modell anhand der Trainingsdaten trainiert wurde, bewerten sie seine Genauigkeit anhand der Testdaten anhand der Genauigkeitsbewertung als Metrik.

Um ein besseres Verständnis von XGBoost zu vermitteln, befasst sich der Kursleiter mit dem Konzept des Gradient Boosting und seiner Rolle in der breiteren Kategorie traditioneller Modelle für maschinelles Lernen. Sie erklären, dass Gradient Boosting eine Technik ist, die ein schwaches Modell mit anderen Modellen desselben Typs kombiniert, um ein genaueres Modell zu erstellen. In diesem Prozess wird jeder nachfolgende Baum für die Vorhersagereste des vorherigen Baums erstellt. Der Dozent betont, dass Entscheidungsbäume beim Gradient Boosting verwendet werden, da sie eine grafische Darstellung möglicher Entscheidungslösungen basierend auf gegebenen Bedingungen liefern. Sie erwähnen auch, dass der Entwurf eines Entscheidungsbaums einen gut dokumentierten Denkprozess erfordert, um potenzielle Lösungen effektiv zu identifizieren.

Das Video untersucht weiter die Erstellung binärer Entscheidungsbäume mithilfe der rekursiven binären Aufteilung. Dieser Prozess beinhaltet die gierige Auswertung aller Eingabevariablen und Teilungspunkte, um eine Kostenfunktion zu minimieren, die die Nähe der vorhergesagten Werte zu den tatsächlichen Werten misst. Der Dozent erklärt, dass die Aufteilung mit den geringsten Kosten gewählt wird und die resultierenden Gruppen rekursiv weiter unterteilt werden können. Sie betonen, dass der verwendete Algorithmus gierig ist, da er sich darauf konzentriert, bei jedem Schritt die beste Entscheidung zu treffen. Allerdings werden Entscheidungsbäume mit weniger Teilungen bevorzugt, um eine bessere Verständlichkeit zu gewährleisten und das Risiko einer Überanpassung der Daten zu verringern. Der Dozent betont, dass XGBoost Mechanismen zur Verhinderung einer Überanpassung bereitstellt, z. B. die Begrenzung der maximalen Tiefe jedes Baums und das Beschneiden irrelevanter Zweige. Darüber hinaus behandeln sie die Etikettenkodierung und demonstrieren das Laden des Iris-Datensatzes mit scikit-learn.

Anschließend behandelt das Video den Prozess der Codierung des Ziellabels als numerische Variable mithilfe der Label-Encoder-Methode. Nach der Aufteilung der Daten in Trainings- und Testdatensätze definiert und trainiert der Kursleiter den XGBoost-Klassifikator anhand der Trainingsdaten. Anschließend verwenden sie das trainierte Modell, um Vorhersagen zum Testdatensatz zu treffen und erreichen dabei eine Genauigkeit von 90 %. Das Konzept des Ensemble-Lernens wird als Methode zum Kombinieren mehrerer Modelle eingeführt, um die Vorhersagegenauigkeit zu verbessern und letztendlich die Effizienz des Lernalgorithmus zu steigern. Der Dozent betont, wie wichtig es ist, für Klassifizierungs- oder Regressionsprobleme das richtige Modell auszuwählen, um optimale Ergebnisse zu erzielen.

Das Video befasst sich mit dem Konzept von Bias und Varianz in Modellen des maschinellen Lernens und betont die Notwendigkeit eines Gleichgewichts zwischen beiden. Ensemble-Lernen wird als eine Technik vorgestellt, um dieses Gleichgewicht zu erreichen, indem Gruppen schwacher Lernender kombiniert werden, um komplexere Modelle zu erstellen. Zwei Ensemble-Techniken, Bagging und Boosting, werden eingeführt. Bagging zielt darauf ab, die Varianz zu reduzieren, indem Teilmengen von Daten erstellt werden, um Entscheidungsbäume zu trainieren und ein Ensemble von Modellen mit hoher Varianz und geringer Verzerrung zu erstellen. Beim Boosting hingegen geht es um das sequentielle Lernen von Modellen mit Entscheidungsbäumen, was die Korrektur von Fehlern früherer Modelle ermöglicht. Der Dozent betont, dass Gradient Boosting eine spezielle Art von Boosting ist, die eine differenzierbare Verlustfunktion mithilfe schwacher Lernender in Form von Regressionsbäumen optimiert.

Das Video erklärt das Konzept der Gradientenverstärkung im Detail und skizziert den dreistufigen Prozess. Der erste Schritt besteht darin, schwache Lernende (z. B. Entscheidungsbäume) iterativ hinzuzufügen, um Verluste zu minimieren. Der zweite Schritt ist das sequentielle Hinzufügen von Bäumen, und der letzte Schritt konzentriert sich auf die Reduzierung von Modellfehlern durch weitere Iterationen. Um den Prozess zu demonstrieren, zeigt das Video die Verwendung einer k-fachen Kreuzvalidierung zur Segmentierung der Daten. Durch XGBoost werden für jede Falte Punkte erzielt. Der Dozent wählt Entscheidungsbäume als schwache Lernende aus und achtet dabei auf eine geringe Tiefe, um eine Überanpassung zu vermeiden. Schließlich wird eine Verlustfunktion als Maß dafür definiert, wie gut das maschinelle Lernmodell zu den Daten passt.

Die Kernschritte der Gradientenverstärkung werden erläutert, darunter die Optimierung der Verlustfunktion, die Nutzung schwacher Lernender (häufig Entscheidungsbäume) und die additive Kombination mehrerer schwacher Lernender durch Ensemble-Lernen. Das Video behandelt auch praktische Aspekte der Verwendung von XGBoost, z. B. den Umgang mit fehlenden Werten, das Speichern von Modellen auf der Festplatte und die Verwendung eines frühen Stopps. Zur Veranschaulichung verschiedener Anwendungsfälle von XGBoost werden Demonstrationen mit Python-Code bereitgestellt. Darüber hinaus betont das Video die Bedeutung der Datenbereinigung, einschließlich Techniken zum Umgang mit fehlenden Werten, wie etwa der Mittelwertimputation.

Der Redner erörtert, wie wichtig es ist, Daten ordnungsgemäß zu bereinigen, anstatt sich bei der Arbeit ausschließlich auf Algorithmen zu verlassen. Sie zeigen, wie das Weglassen leerer Werte die Modellgenauigkeit verbessern und vor Algorithmen warnen kann, die leere Werte verarbeiten. Das Konzept des Beizens, bei dem trainierte Modelle zur späteren Verwendung auf der Festplatte gespeichert werden, wird mithilfe der Pickle-Bibliothek in Python eingeführt. Der Referent zeigt, wie Modelle gespeichert und geladen werden. Sie zeigen auch, wie man die Wichtigkeit jedes Attributs in einem Datensatz mithilfe der Plot-Wichtigkeitsfunktion in XGBoost und der Matplotlib-Bibliothek darstellt.

Der Redner erörtert die Bedeutung der Analyse und des Testens verschiedener Szenarien beim Erstellen von Modellen für maschinelles Lernen und betont, dass die Feature-Wichtigkeitswerte von XGBoost möglicherweise nicht immer die tatsächliche Auswirkung einer Funktion auf die Genauigkeit des Modells widerspiegeln. Sie verwenden das Beispiel des Titanic-Datensatzes, um zu demonstrieren, wie das Hinzufügen des Attributs „Geschlecht“ die Modellgenauigkeit verbessert, obwohl es bei der Merkmalswichtigkeitsbewertung niedrig eingestuft wird. Der Redner betont, wie wichtig es ist, verschiedene Szenarien zu testen und sich nicht nur auf die Bewertung der Feature-Wichtigkeit zu verlassen. Sie erwähnen auch, dass XGBoost die Leistung eines Testsatzes während des Trainings bewerten und melden kann.

Das Video erklärt, wie man die Leistung eines XGBoost-Modells während des Trainings überwacht, indem man eine Bewertungsmetrik angibt und ein Array von x- und y-Paaren übergibt. Die Leistung des Modells für jeden Bewertungssatz wird gespeichert und nach dem Training verfügbar gemacht. Das Video behandelt Lernkurven, die Einblick in das Verhalten des Modells geben und dazu beitragen, eine Überanpassung zu verhindern, indem das Lernen frühzeitig gestoppt wird. Das frühe Stoppen wird als Technik eingeführt, um das Training nach einer festgelegten Anzahl von Epochen zu stoppen, wenn keine Verbesserung im Validierungsscore beobachtet wird.

Das Video behandelt die Verwendung früher Stopprunden in XGBoost und demonstriert den Aufbau eines Regressionsmodells zur Bewertung der Immobilienpreise in Boston. Die Vorteile der Parallelität bei der Gradientenverstärkung werden diskutiert, wobei der Schwerpunkt auf der Konstruktion einzelner Bäume und der effizienten Vorbereitung von Eingabedaten liegt. Das Video demonstriert die Multithreading-Unterstützung, bei der alle Kerne des Systems zur gleichzeitigen Ausführung von Berechnungen genutzt werden, was zu einer schnelleren Programmausführung führt. Obwohl XGBoost in erster Linie auf Klassifizierungsprobleme ausgerichtet ist, unterstreicht das Video seine Fähigkeit, auch bei der Erstellung von Regressionsmodellen hervorragende Leistungen zu erbringen.

Der Sprecher erstellt eine Liste, um die Anzahl der Iterationen für ein Beispiel zu speichern, und verwendet eine for-Schleife, um die Ausführungsgeschwindigkeit des Modells basierend auf der Anzahl der Threads zu testen. Sie drucken die Geschwindigkeit des Builds für jede Iteration aus und zeichnen die Ergebnisse auf. Sie zeigen, wie die Geschwindigkeit des Modells mit zunehmender Anzahl von Threads abnimmt. Anschließend erörtert der Redner das Hyperparameter-Tuning, bei dem Parameter in einem Modell angepasst werden, um dessen Leistung zu verbessern. Sie untersuchen die Standardparameter für XGBoost und scikit-learn und erwähnen, dass die Optimierung von Hyperparametern für die Optimierung der Leistung eines XGBoost-Modells unerlässlich ist. Das Video erklärt, dass es sich bei Hyperparametern um Einstellungen handelt, die nicht aus den Daten gelernt werden, sondern vom Benutzer manuell festgelegt werden. Beim Optimieren von Hyperparametern wird systematisch nach der besten Kombination von Parameterwerten gesucht, die zur höchsten Modellleistung führt.

Um eine Hyperparameter-Optimierung durchzuführen, stellt das Video zwei gängige Ansätze vor: Rastersuche und Zufallssuche. Bei der Rastersuche wird ein Raster aus Hyperparameterwerten definiert und jede Kombination umfassend ausgewertet. Bei der Zufallssuche hingegen werden zufällig Hyperparameterkombinationen aus einem vordefinierten Suchraum ausgewählt. Das Video empfiehlt die Verwendung einer Zufallssuche, wenn der Suchraum groß ist oder die Anzahl der Hyperparameter hoch ist.

Das Video demonstriert die Optimierung von Hyperparametern mithilfe der RandomizedSearchCV-Klasse von scikit-learn. Sie definieren ein Parameterraster, das verschiedene Werte für Hyperparameter wie Lernrate, maximale Tiefe und Teilprobenverhältnis enthält. Die RandomizedSearchCV-Klasse führt eine Zufallssuche mit Kreuzvalidierung durch und bewertet die Leistung jeder Parameterkombination. Nach der Abstimmung werden die besten Hyperparameter ausgewählt und das Modell mit diesen optimalen Werten trainiert.

Der Sprecher erklärt, dass die Abstimmung von Hyperparametern dabei hilft, den besten Kompromiss zwischen Unteranpassung und Überanpassung zu finden. Es ist wichtig, ein Gleichgewicht zu finden und eine Überanpassung zu vermeiden, indem Hyperparameter sorgfältig basierend auf dem spezifischen Datensatz und dem vorliegenden Problem ausgewählt werden.

Zusätzlich zur Hyperparameter-Optimierung wird in dem Video die Bedeutung von Funktionen in XGBoost-Modellen erörtert. Die Feature-Wichtigkeit liefert Erkenntnisse darüber, welche Features den größten Einfluss auf die Vorhersagen des Modells haben. Der Sprecher erklärt, dass die Wichtigkeit von Merkmalen durch den durchschnittlichen Gewinn bestimmt wird, der die Verbesserung der Verlustfunktion misst, die ein Merkmal mit sich bringt, wenn es in einem Entscheidungsbaum verwendet wird. Ein höherer durchschnittlicher Gewinn weist auf eine höhere Bedeutung hin.

Das Video zeigt, wie Sie die Bedeutung von Funktionen mithilfe der XGBoost-Bibliothek extrahieren und visualisieren. Sie zeichnen ein Balkendiagramm mit den wichtigsten Funktionen und ihren entsprechenden Wichtigkeitswerten. Der Redner stellt fest, dass die Wichtigkeit von Merkmalen bei der Auswahl von Merkmalen, der Reduzierung der Dimensionalität und dem Gewinnen von Erkenntnissen über das zugrunde liegende Problem hilfreich sein kann.

Gegen Ende des Videos erwähnt der Sprecher kurz weitere fortgeschrittene Themen im Zusammenhang mit XGBoost. Sie behandeln den Umgang mit unausgeglichenen Datensätzen durch Anpassen des Hyperparameters „scale_pos_weight“, den Umgang mit fehlenden Werten mithilfe der integrierten Funktion von XGBoost und den Umgang mit kategorialen Variablen durch One-Hot-Codierung oder die Verwendung der integrierten Unterstützung für kategoriale Funktionen in XGBoost.

Das Video bietet einen umfassenden Überblick über XGBoost und deckt dessen Schlüsselkonzepte, Implementierung, Hyperparameter-Tuning und Feature-Wichtigkeitsanalyse ab. Die Demonstrationen und Codebeispiele veranschaulichen die praktischen Aspekte der Arbeit mit XGBoost in Python. Es dient als wertvolle Ressource für Ingenieure des maschinellen Lernens, die XGBoost für ihre Klassifizierungs- und Regressionsaufgaben nutzen möchten.

  • 00:00:00 Der Kursleiter bietet eine Einführung in XGBoost für Ingenieure des maschinellen Lernens. XGBoost ist eine Open-Source-Bibliothek für maschinelles Lernen, mit der sich schnell hochpräzise Klassifizierungs- und Regressionsmodelle erstellen lassen, was sie zur ersten Wahl für die Erstellung realer Modelle anhand hochstrukturierter Datensätze macht. Der Autor von XGBoost ist Taiki Chen und es handelt sich um eine Implementierung von Gradient-Boost-Entscheidungsbäumen für Geschwindigkeit und Leistung. Der Dozent hebt außerdem hervor, dass XGBoost mehrere Schnittstellen wie Python und Scikit-Learn-Implementierungen unterstützt und eine Demo von XGBoost bereitstellt, bei der mehrere Module zum Laden von Daten und zum Erstellen von Modellen verwendet werden.

  • 00:05:00 Der Kursleiter erklärt, wie der Datensatz für das Training eines XGBoost-Modells vorbereitet wird, wobei der Schwerpunkt auf der Aufteilung der Daten in Trainings- und Testsätze liegt. Die Zielvariable wird als binäres Klassifizierungsproblem identifiziert und die notwendigen Hyperparameter werden für das XGBoost-Modell festgelegt. Das Modell wird anhand der Trainingsdaten trainiert und die Genauigkeit des Modells wird anhand der Testdaten unter Verwendung der Genauigkeitsbewertung als Metrik bewertet. Der Dozent gibt außerdem einen Überblick über Gradient Boosting, das Konzept hinter XGBoost und wie es in die breitere Kategorie traditioneller Modelle für maschinelles Lernen passt.

  • 00:10:00 Wir lernen etwas über rekursive binäre Aufteilung und Ensemble-Lernen, das mehrere schwache Modelle kombiniert, um die Genauigkeit von Vorhersagen zu verbessern. Gradient Boosting ist eine Technik zum Erstellen von Vorhersagemodellen, bei der ein schwaches Modell mit anderen Modellen desselben Typs kombiniert wird, um ein genaueres Modell zu erstellen. Jeder nachfolgende Baum wird für die Vorhersagereste des vorhergehenden Baums erstellt. Entscheidungsbäume werden beim Gradient Boosting verwendet und beinhalten eine grafische Darstellung aller möglichen Lösungen für eine Entscheidung basierend auf bestimmten Bedingungen. Der Entwurf eines Entscheidungsbaums erfordert einen gut dokumentierten Denkprozess, der dabei hilft, den Brainstorming-Prozess zu formalisieren, damit wir mehr mögliche Lösungen identifizieren können.

  • 00:15:00 Das Video erklärt, wie binäre Entscheidungsbäume erstellt werden. Der Prozess wird als rekursive binäre Aufteilung bezeichnet und beinhaltet die gierige Auswertung aller Eingabevariablen und Aufteilungspunkte, um eine Kostenfunktion zu minimieren, die misst, wie nahe vorhergesagte Werte an ihren entsprechenden realen Werten liegen. Es wird die Aufteilung mit den geringsten Kosten ausgewählt und die resultierenden Gruppen können rekursiv unterteilt werden. Der Algorithmus ist ein gieriger Algorithmus, der sich darauf konzentriert, bei jedem Schritt die beste Entscheidung zu treffen. Entscheidungsbäume mit weniger Aufteilungen werden bevorzugt, da sie leichter zu verstehen sind und weniger wahrscheinlich zu einer Überanpassung der Daten führen. Um eine Überanpassung zu verhindern, ermöglicht der XGBoost-Algorithmus einen Mechanismus, der das Wachstum von Bäumen stoppt, z. B. die Begrenzung der maximalen Tiefe jedes Baums und das Beschneiden irrelevanter Zweige. Das Video behandelt auch die Etikettenkodierung und das Laden des Iris-Datensatzes mit scikit-learn.

  • 00:20:00 Das Video behandelt den Prozess der Codierung eines Ziellabels als numerische Variable mithilfe der Label-Encoder-Methode. Sobald die Daten in Trainings- und Testdatensätze aufgeteilt wurden, wird der XGBoost-Klassifikator definiert und anhand der Trainingsdaten trainiert. Das Modell wird dann verwendet, um Vorhersagen über den Testdatensatz zu treffen, wobei eine Genauigkeit von 90 % erreicht wird. Anschließend wird Ensemble-Lernen als Methode zum Kombinieren mehrerer Modelle eingeführt, um die Genauigkeit von Vorhersagen zu verbessern und einen effizienteren Lernalgorithmus zu ermöglichen. Das Video betont, wie wichtig es ist, das richtige Modell für Klassifizierungs- oder Regressionsprobleme auszuwählen, um die besten Ergebnisse zu erzielen.

  • 00:25:00 Das Konzept von Bias und Varianz in Modellen für maschinelles Lernen wird diskutiert und die Notwendigkeit eines Gleichgewichts zwischen beiden betont. Ensemble-Lernen wird als eine Technik eingeführt, die dieses Gleichgewicht angeht, indem Gruppen schwacher Lernender kombiniert werden, um komplexere Modelle zu erstellen. Bagging und Boosting sind zwei Ensemble-Techniken, wobei Bagging zur Reduzierung der Varianz verwendet wird, indem mehrere Teilmengen von Daten erstellt werden, um Entscheidungsbäume zu trainieren und ein Ensemble von Modellen mit hoher Varianz und geringer Verzerrung zu erstellen. Beim Boosting geht es darum, Modelle nacheinander mit Entscheidungsbäumen zu lernen, was die Korrektur von Fehlern aus früheren Modellen ermöglicht, und wird durch Teamarbeit zwischen den schwachen Lernenden erreicht, um Eingaben richtig zu klassifizieren. Gradient Boosting ist eine spezielle Art von Boosting, bei der eine differenzierbare Verlustfunktion optimiert und schwache Lernende in Form von Regressionsbäumen verwendet werden.

  • 00:30:00 Das Konzept des Gradient Boosting wurde vorgestellt und sein dreistufiger Prozess erklärt. Der erste Schritt besteht darin, schwache Lernende wie Entscheidungsbäume in einem iterativen Prozess hinzuzufügen, um Verluste zu minimieren. Der zweite Schritt ist das sequentielle Hinzufügen von Bäumen, während der letzte Schritt darauf abzielt, Modellfehler durch weitere Iterationen zu reduzieren. Die Demonstration umfasste die Verwendung einer k-fachen Kreuzvalidierung zur Segmentierung von Daten, und über XGBoost wurden Bewertungen für jede Falte erhalten. Als schwacher Lerner der Wahl wurde der Entscheidungsbaum mit geringer Tiefe verwendet, um eine Überanpassung zu vermeiden. Schließlich wurde eine Verlustfunktion als Maß dafür definiert, wie gut das Modell des maschinellen Lernens zu den Daten eines bestimmten Phänomens passt.

  • 00:35:00 Die Kernschritte der Gradientenverstärkung werden erklärt, darunter die Optimierung der Verlustfunktion, die Verwendung eines schwachen Lernenden (normalerweise ein Entscheidungsbaum) und die additive Kombination vieler schwacher Lernender durch Ensemble-Lernen. Der Abschnitt behandelt auch verschiedene praktische Aspekte der Verwendung von XGBoost, z. B. den Umgang mit fehlenden Werten, das Speichern von Modellen auf der Festplatte und die Verwendung eines frühen Stopps. In diesem Abschnitt wird ein Code-basierter Ansatz verfolgt, mit zahlreichen Demos, die verschiedene Einsatzmöglichkeiten von XGBoost zeigen. Darüber hinaus wird in diesem Abschnitt die Bedeutung der Datenbereinigung untersucht, einschließlich der Frage, wie fehlende Werte durch Mittelwertimputation ersetzt werden können.

  • 00:40:00 Der Redner erläutert, wie wichtig es ist, die eigenen Daten zu bereinigen und sich nicht darauf zu verlassen, dass Algorithmen die Arbeit für Sie erledigen. Sie zeigen, wie das Weglassen leerer Werte die Modellgenauigkeit verbessern kann und warnen davor, Algorithmen die Verarbeitung leerer Werte zu erlauben. Der Redner stellt außerdem das Konzept des Beizens vor, mit dem trainierte Modelle zur späteren Verwendung auf der Festplatte gespeichert werden können, und zeigt, wie die Pickle-Bibliothek zum Speichern und Laden von Modellen in Python verwendet wird. Abschließend zeigen sie, wie man die Wichtigkeit jedes Attributs in einem Datensatz mithilfe der Plot-Wichtigkeitsfunktion in XGBoost und Matplotlib darstellt.

  • 00:45:00 Der Redner erörtert die von XGBoost ermittelten Feature-Wichtigkeitswerte und die Bedeutung der Analyse und des Testens verschiedener Szenarien beim Erstellen von Modellen für maschinelles Lernen. Sie verwenden das Beispiel des Titanic-Datensatzes und zeigen, wie das Hinzufügen des Attributs „Geschlecht“ die Genauigkeit des Modells verbessert, obwohl es bei der Bewertung der Merkmalswichtigkeit einen niedrigen Rang einnimmt. Der Redner betont, wie wichtig es ist, verschiedene Szenarien zu testen und sich nicht nur auf die Bewertung der Feature-Wichtigkeit zu verlassen. Sie erwähnen auch die Fähigkeit von XGBoost, die Leistung eines Testsatzes während des Trainings zu bewerten und zu melden.

  • 00:50:00 Im Video wird erläutert, wie die Leistung des XGBoost-Modells während des Trainings überwacht werden kann, indem eine Bewertungsmetrik angegeben und ein Array von x- und y-Paaren übergeben wird. Die Leistung des Modells für jeden Bewertungssatz wird gespeichert und nach dem Training verfügbar gemacht. Mithilfe dieser Leistungskennzahlen können Lernkurven erstellt werden, um weitere Einblicke in das Verhalten des Modells zu gewinnen und möglicherweise das Lernen frühzeitig zu beenden, um eine Überanpassung zu verhindern. Das Video behandelt auch das frühe Stoppen, eine Technik, bei der das Training nach einer festgelegten Anzahl von Epochen gestoppt wird, wenn keine Verbesserung im Validierungsscore beobachtet wird.

  • 00:55:00 Das Video behandelt die Verwendung früher Stopprunden in XGBoost und den Aufbau eines Regressionsmodells zur Bewertung der Immobilienpreise in Boston. Die Vorteile der Parallelität bei der Gradientenverstärkung werden ebenfalls diskutiert, wobei der Schwerpunkt auf der Konstruktion einzelner Bäume und der effizienten Aufbereitung von Eingabedaten liegt. Es wird eine Demonstration der Multithreading-Unterstützung bereitgestellt, die eine schnellere Programmausführung ermöglicht, indem mehrere Berechnungen gleichzeitig ausgeführt werden und alle Kerne Ihres Systems genutzt werden. Das Video erwähnt auch, dass XGBoost zwar auf Klassifizierungsprobleme ausgerichtet ist, sich aber auch bei der Erstellung von Regressionsmodellen hervortun kann.

  • 01:00:00 Der Sprecher erstellt eine Liste, die die Anzahl der Iterationen für das Beispiel enthält, und verwendet eine for-Schleife, um die Ausführungsgeschwindigkeit des Modells basierend auf der Anzahl der Threads zu testen. Zwei Ergebnisse werden ausgedruckt: die Geschwindigkeit des Builds für jede Iteration und ein Diagramm, das zeigt, wie die Geschwindigkeit des Modells mit zunehmender Anzahl von Threads abnimmt. Anschließend erörtert der Redner das Hyperparameter-Tuning, was bedeutet, dass Parameter an ein Modell übergeben werden, um dessen Leistung zu verbessern. Sie untersuchen die Standardparameter für xgboost und scikit-learn und stellen fest, dass das Optimieren der Hyperparameter einige Arbeit erfordern kann, um die Leistung des Modells zu verbessern. Schließlich untersuchen sie, wie viele Bäume oder schwache Lernende oder Schätzer erforderlich sind, um ein Gradient-Boost-Modell zu konfigurieren, und wie groß jeder Baum sein sollte.

  • 01:05:00 Das Video zeigt, wie man Hyperparameter optimiert, um das XGBoost-Modell zu optimieren. Sie zeigen ein Beispiel einer Rastersuche für den Modellparameter des n-Schätzers, die eine Reihe von Werten auswertet, um die Schätzer an einem bestimmten Modell zu testen. Sie behandeln außerdem verschiedene Unterabtasttechniken und wie die Zeilenabtastung im zweiten Wrapper der XGBoost-Klasse angegeben werden kann. Darüber hinaus unterstreicht das Video die Bedeutung der Konfiguration der Lernrate, die durch Versuch und Irrtum erfolgt. Es zeigt sich, dass die Lernrate mit vielen anderen Aspekten des Optimierungsprozesses interagiert, und kleinere Lernraten erfordern mehr Trainingsepochen. Schließlich sind Diagnosediagramme nützlich, um zu untersuchen, wie sich die Lernrate auf die Lernrate und die Lerndynamik des Modells auswirkt.

  • 01:10:00 Der Moderator zeigt, wie man ein XGBoost-Modell mit hoher Punktzahl auf dem Titanic-Datensatz erstellt. Der Moderator verwendet Pandas und Train-Test-Split-Bibliotheken zur Vorverarbeitung der Daten und XGBoost zum Trainieren des Modells. Die Genauigkeitsbewertung des Modells liegt bei über 80, was es für einen Lebenslauf geeignet macht. Der Moderator warnt auch vor Leuten, die gefälschte Ergebnisse auf die Kaggle-Bestenliste hochladen, indem sie entweder das Modell überanpassen oder die Ergebnisse manipulieren. Abschließend geht der Moderator Zeile für Zeile durch den Code und demonstriert die Datenbereinigung, die Beschriftungscodierung, den Umgang mit Nullwerten, die Definition der X- und Y-Achsen und die Aufteilung der Daten zum Trainieren und Testen des Modells.

  • 01:15:00 Es wurde erneut betont, wie wichtig es ist, mit fehlenden Daten richtig umzugehen, da es beim angewandten maschinellen Lernen in erster Linie um Daten und nicht so sehr um Modellierung geht. Darüber hinaus wurden die Ergebnisse der Überwachung der Leistung eines Modells erläutert und ein frühzeitiges Stoppen als Ansatz zum Trainieren komplexer Modelle für maschinelles Lernen vorgestellt, um eine Überanpassung zu vermeiden. Der Abschnitt enthielt auch eine Diskussion über die Konfiguration der Multithreading-Unterstützung für XGBoost und die Standard-Hyperparameter für XGBoost und Scikit-learn.
A Complete Introduction to XGBoost for Machine Learning Engineers
A Complete Introduction to XGBoost for Machine Learning Engineers
  • 2022.03.28
  • www.youtube.com
This course will cover all the core aspects of the most well-known gradient booster used in the real-world.
 

Feature-Engineering-Fallstudie in Python für Ingenieure des maschinellen Lernens



Feature-Engineering-Fallstudie in Python für Ingenieure des maschinellen Lernens

Der Kursleiter beginnt den Kurs mit einer Einführung in das Konzept des Feature Engineering und seiner entscheidenden Rolle bei der Wertschöpfung aus den riesigen Datenmengen, die jeden Tag generiert werden. Sie betonen die Bedeutung des Feature-Engineerings für die Maximierung des aus chaotischen Daten gewonnenen Werts. Es wird davon ausgegangen, dass die Lernenden über Python-Grundkenntnisse sowie Erfahrung mit NumPy, Pandas und Scikit-Learn verfügen.

Der Dozent betont die Bedeutung der explorativen Datenanalyse und Datenbereinigung beim Aufbau eines Modells für maschinelles Lernen. Sie erklären, dass diese Phasen im Mittelpunkt des Kurses stehen werden. Während die Lernenden im letzten Kapitel die gesamte Pipeline durchgehen, liegt der Schwerpunkt vor allem auf dem Feature Engineering.

Der Dozent betont, dass Feature Engineering für die Verbesserung der Modellleistung unerlässlich ist. Sie erklären, dass es beim Feature Engineering um die Umwandlung von Rohdaten in Features geht, die das zugrunde liegende Signal für Modelle des maschinellen Lernens besser darstellen. Die Qualität der Funktionen wirkt sich direkt auf die Leistung des Modells aus, da gute Funktionen selbst einfache Modelle leistungsstark machen können. Der Dozent empfiehlt, beim Auswählen von Merkmalen, beim Entfernen irrelevanter Merkmale und beim Einbeziehen von Faktoren, die für das zu analysierende Problem relevant sind, gesunden Menschenverstand zu verwenden.

Im Video werden verschiedene Reinigungstechniken und technische Funktionen behandelt. Ausreißer werden entfernt, Daten werden normalisiert und transformiert, um Schiefe zu beseitigen, Merkmale werden kombiniert, um nützlichere Merkmale zu erstellen, und kategoriale Variablen werden aus kontinuierlichen Merkmalen erstellt. Ziel dieser Techniken ist es, Funktionen zu erhalten, die wichtige Trends in den Daten genau erfassen und gleichzeitig irrelevante Informationen verwerfen. Als Beispiel wird der Titanic-Datensatz vorgestellt, der Informationen über die Passagiere an Bord des Schiffes enthält.

Der Dozent erörtert das Problem der Klassenungleichheit beim maschinellen Lernen, bei dem es deutlich weniger positive als negative Fälle gibt. Sie schlagen vor, das Modell anzupassen, um das Signal in beiden Fällen besser zu erkennen, beispielsweise durch Downsampling der negativen Klasse. Da der im Beispiel verwendete Datensatz jedoch nicht stark unausgeglichen ist, fährt der Kursleiter mit der Erkundung der Datenfunktionen fort. Die grundlegende explorative Datenanalyse wird für kontinuierliche Merkmale durchgeführt und nicht numerische Merkmale wie Name, Ticket, Geschlecht, Kabine und eingeschifft werden weggelassen. Der bereinigte Datensatz wird angezeigt und die Verteilung und Korrelation der Merkmale wird untersucht. Es wurde festgestellt, dass die Merkmale „p-Klasse“ und „Fahrpreis“ die stärkste Korrelation mit der Überlebensspalte aufweisen, was auf ihre potenzielle Nützlichkeit bei der Erstellung von Vorhersagen hinweist.

An den kontinuierlichen Merkmalen wird eine weitere explorative Datenanalyse durchgeführt. Nicht-numerische Merkmale wie Name und Ticket werden gelöscht und die ersten fünf Zeilen des Datensatzes werden gedruckt. Die Daten werden mithilfe von Pandas-Funktionen beschrieben, die fehlende Werte und eine binäre Zielvariable namens „Survived“ aufdecken. Die Korrelationsmatrix wird analysiert, um die Korrelationen zwischen Merkmalen und deren Beziehung zu „Überlebt“ zu bestimmen. Es wird betont, wie wichtig es ist, die vollständige Verteilung der Daten zu betrachten, da die ausschließliche Verwendung von Mittel- oder Medianwerten zu ungenauen Schlussfolgerungen führen kann. Mithilfe von Diagrammen und Visualisierungen wird der Zusammenhang zwischen kategorialen Merkmalen und der Überlebensrate untersucht und Trends wie höhere Überlebensraten bei Passagieren der ersten Klasse und solchen mit weniger Familienmitgliedern aufgedeckt.

Der Dozent betont die Bedeutung des Feature-Engineerings und rät davon ab, Features übermäßig zu verdichten, ohne sie ordnungsgemäß zu testen. Sie besprechen den Prozess der Untersuchung und Entwicklung kategorialer Merkmale, einschließlich der Identifizierung fehlender Werte und der Anzahl eindeutiger Werte in jedem Merkmal. Als hilfreicher Ansatz für ein besseres Verständnis des Datensatzes wird die Gruppierung von Merkmalen und die Analyse des Durchschnittswerts für die Zielvariable in jeder Gruppe empfohlen. Der Zusammenhang zwischen dem fehlenden Kabinenmerkmal und der Überlebensrate wird untersucht, was zur Entdeckung eines starken Indikators für die Überlebensrate trotz des scheinbar geringen Werts des Merkmals führt.

Die Untersuchung von Features zeigt, dass Titel, Kabinenindikatoren und Geschlecht einen starken Zusammenhang mit dem Überleben haben, während das eingeführte Feature überflüssig ist. Der Zusammenhang zwischen Kabine und Überlebensrate wird durch die Beobachtung erklärt, dass mehr Menschen, die in Cherbourg an Bord gingen, über Kabinen verfügten, was zu einer höheren Überlebensrate führte. Die Anzahl der unmittelbaren Familienangehörigen an Bord wird in einem Merkmal zusammengefasst und aufgrund ihrer Korrelation entweder die Passagierklasse oder der Tarif vorgeschlagen.

Der Dozent erklärt, dass der nächste Schritt darin besteht, die Funktionen auf der Grundlage der Erkenntnisse aus der explorativen Datenanalyse zu entwickeln. Sie beginnen mit der Erstellung einer neuen Funktion namens „Titel“ aus der Funktion „Name“. Die Funktion „Titel“ extrahiert den Titel aus dem Namen jedes Passagiers (z. B. Herr, Frau, Fräulein), da er zusätzliche Informationen zum sozialen Status und zur Überlebensrate liefern kann. Der Einfachheit halber wird die Funktion „Titel“ dann auf numerische Werte abgebildet.

Als nächstes konzentriert sich der Kursleiter auf die Funktion „Kabine“, bei der zunächst viele Werte fehlten. Bei der Analyse der Überlebensrate von Passagieren mit und ohne Kabineninformationen wurde jedoch festgestellt, dass eine aufgezeichnete Kabinennummer eine höhere Überlebensrate hatte. Basierend auf dieser Erkenntnis wird ein neues binäres Feature namens „HasCabin“ erstellt, das anzeigt, ob ein Passagier über eine aufgezeichnete Kabine verfügt oder nicht.

Anschließend befasst sich der Ausbilder mit der Funktion „Sex“. Da Modelle für maschinelles Lernen normalerweise besser mit numerischen Daten funktionieren, wird die Funktion „Geschlecht“ binären Werten zugeordnet, wobei 0 für männlich und 1 für weiblich steht.

Nach der Entwicklung der Funktion „Geschlecht“ befasst sich der Ausbilder mit der Funktion „Eingeschifft“, die den Einschiffungshafen angibt (C = Cherbourg, Q = Queenstown, S = Southampton). Es wurde jedoch zuvor festgestellt, dass die Funktion „Eingeschifft“ redundant ist und keinen wesentlichen Beitrag zur Vorhersage des Überlebens leistet. Daher wird es aus dem Datensatz gelöscht.

Der Ausbilder konzentriert sich dann auf die Merkmale „Pclass“ und „Fare“, die während der explorativen Datenanalyse starke Korrelationen mit dem Überleben zeigten. Diese Funktionen bleiben unverändert, da sie bereits in einem geeigneten Format für das maschinelle Lernmodell vorliegen.

In dieser Phase betont der Dozent die Bedeutung der Datenvorverarbeitung und der Vorbereitung der Funktionen für das Modell. Der Datensatz wird in Trainings- und Testsätze aufgeteilt, um die Leistung des Modells genau zu bewerten. Fehlende Werte in der Funktion „Alter“ werden anhand des Durchschnittsalters der Passagiere unterstellt, und alle Funktionen werden mithilfe der Vorverarbeitungsfunktionen von Scikit-Learn so standardisiert, dass sie einen Mittelwert von Null und eine Einheitsvarianz aufweisen.

Abschließend geht der Dozent kurz auf das Konzept der One-Hot-Codierung für kategoriale Features ein und erwähnt, dass es im nächsten Video ausführlicher behandelt wird. One-Hot-Codierung ist eine gängige Technik, mit der kategoriale Variablen als binäre Vektoren dargestellt werden, damit das Modell sie korrekt interpretieren kann.

Zusammenfassend stellte der Dozent in diesem Teil des Kurses das Konzept des Feature Engineering vor und erläuterte seine Bedeutung für maschinelles Lernen. Sie führten eine explorative Datenanalyse durch, bereinigten den Datensatz und entwickelten Funktionen auf der Grundlage der gewonnenen Erkenntnisse. Der Kursleiter demonstrierte, wie man neue Features erstellt, kategoriale Features numerischen Werten zuordnet und redundante Features entfernt. Die nächsten Schritte umfassten die Datenvorverarbeitung und die Vorbereitung der Funktionen für das maschinelle Lernmodell.

Bitte beachten Sie, dass die obige Zusammenfassung eine hypothetische Fortsetzung ist, die auf den allgemeinen Themen basiert, die normalerweise in einem Feature-Engineering-Kurs behandelt werden. Die tatsächlichen Inhalte und Beispiele können je nach Kurs und Dozent variieren.

  • 00:00:00 Der Dozent stellt den Kurs über Feature Engineering und seine Bedeutung für die Wertschöpfung aus den riesigen Datenmengen vor, die jeden Tag generiert werden, und gibt den Lernenden das Toolkit an die Hand, das sie benötigen, um aus diesen unübersichtlichen Daten den größtmöglichen Nutzen zu ziehen. Es wird davon ausgegangen, dass die Lernenden über Python-Einstiegskenntnisse sowie Erfahrung mit NumPy, Pandas und Scikit-Learn verfügen. Der Dozent durchläuft außerdem den Prozess der Erstellung eines Modells für maschinelles Lernen auf hohem Niveau und hebt die Bedeutung der explorativen Datenanalyse und Datenbereinigung hervor, die die kritischen Phasen sind, auf die sich dieser Kurs ausschließlich konzentriert. Im letzten Kapitel werden die Lernenden die gesamte Pipeline durchgehen, der Schwerpunkt wird jedoch hauptsächlich auf dem Feature Engineering liegen.

  • 00:05:00 Die Bedeutung des Feature-Engineerings und seine Auswirkungen auf die Modellleistung werden diskutiert. Beim Feature-Engineering handelt es sich um den Prozess der Umwandlung von Rohdaten in Features, die das zugrunde liegende Signal für Modelle des maschinellen Lernens besser darstellen, um ihre Genauigkeit bei unsichtbaren Daten zu verbessern. Es ist der unbesungene Held des maschinellen Lernens, denn ohne qualitativ hochwertige Daten sind Modelle des maschinellen Lernens im Wesentlichen wertlos. Allerdings können selbst einfache Modelle mit tollen Funktionen recht leistungsstark sein. Darüber hinaus ist es wichtig, bei der Auswahl von Merkmalen den gesunden Menschenverstand zu nutzen – irrelevante Merkmale müssen entfernt und Faktoren, die für das zu analysierende Problem relevant sind, müssen einbezogen werden. Letztendlich ist die Qualität der in das Modell eingespeisten Funktionen der primäre limitierende Faktor für die Leistung des Modells.

  • 00:10:00 Das Video behandelt verschiedene Techniken zur Bereinigung und Entwicklung von Funktionen, um sicherzustellen, dass Modelle für maschinelles Lernen nur nützliche Signale verwenden. Dazu gehören das Entfernen von Ausreißern, das Normalisieren von Daten, das Umwandeln verzerrter Daten, das Kombinieren von Features zu nützlicheren Features und das Erstellen kategorialer Variablen aus kontinuierlichen. Das Ziel dieser Techniken besteht darin, Merkmale zu erhalten, die wichtige Trends in den Daten genau erfassen und nicht repräsentative Trends verwerfen. Das Video stellt auch den Titanic-Datensatz vor, der Informationen über die Passagiere an Bord des Schiffes enthält, einschließlich Name, Alter, Klasse, Ticketnummer, Kabinennummer und Einschiffungshafen. Das Video untersucht dann die Verteilung der Zielvariablen, nämlich ob eine Person auf dem Schiff überlebt oder nicht.

  • 00:15:00 Der Redner diskutiert das Klassenungleichgewichtsproblem beim maschinellen Lernen, bei dem die Anzahl der positiven Fälle deutlich geringer ist als die der negativen Mehrheitsfälle, was es für das Modell schwierig macht, das Signal in den positiven Fällen zu erkennen. Der Sprecher schlägt vor, das Modell anzupassen, um das Signal in beiden Fällen besser zu erfassen, beispielsweise durch Downsampling der negativen Klasse. Da der im Beispiel verwendete Datensatz jedoch nicht besonders unausgewogen ist, fährt der Sprecher mit der Erkundung der Datenmerkmale fort und beginnt mit der grundlegenden explorativen Datenanalyse nur für kontinuierliche Merkmale. Der Sprecher löscht nicht-numerische Merkmale wie Name, Ticket, Geschlecht, Kabine und eingeschifft und druckt die ersten fünf Zeilen des bereinigten Datensatzes. Der Sprecher untersucht dann die Verteilung und Korrelation von Merkmalen und stellt fest, dass p-Klasse und fair die stärkste Korrelation mit der Überlebensspalte aufweisen und daher bei der Erstellung von Vorhersagen hilfreich sein können.

  • 00:20:00 Das Video geht auf einige grundlegende erklärende Datenanalysen zu den kontinuierlichen Merkmalen der Daten ein. Das Video löscht nicht-numerische Merkmale wie Name und Ticket und druckt die ersten fünf Zeilen. Die Daten werden mit der integrierten Pandas-Funktion beschrieben und es wird darauf hingewiesen, dass Werte fehlen und eine binäre Zielvariable namens „Survived“ vorhanden ist. Die Korrelationsmatrix wird analysiert, und es ist wichtig zu beachten, wie die einzelnen Merkmale mit „Überlebt“ und anderen Merkmalen korrelieren. Es wird festgestellt, dass eine starke negative Korrelation genauso nützlich sein kann wie eine positive. Es wird beobachtet, dass die Merkmale „p-class“ und „Fare“ die stärkste Korrelation mit „Survived“ aufweisen, während „Fare“ und „p-class“ eine hohe Korrelation zwischen den Merkmalen aufweisen, was das Modell verwirren könnte.

  • 00:25:00 Der Dozent bespricht eine Methode zur Identifizierung von Merkmalen, die nützliche Prädiktoren für die Zielvariable sein können. Die Methode umfasst die Gruppierung nach der Zielvariablen und die Analyse der Verteilungen jedes Merkmals für Personen, die überlebt haben, im Vergleich zu Personen, die es nicht überlebt haben, sowie die Durchführung eines T-Tests zur Bestimmung der statistischen Signifikanz. Der Dozent hebt zwei Merkmale hervor, fair und Klasse, die als potenziell gute Überlebensindikatoren hervorstechen, warnt jedoch vor den Auswirkungen der Korrelation auf die Interpretation. Der Kursleiter bespricht auch die fehlenden Werte für das Altersmerkmal und ermittelt mithilfe der Gruppierung nach zufällig, ob es fehlt oder nicht. Darüber hinaus erklärt der Dozent, wie man kontinuierliche Features zeichnet, um ihre Verteilungen und Beziehungen zur Zielvariablen zu visualisieren.

  • 00:30:00 Im Video wird erläutert, wie wichtig es ist, die vollständige Datenverteilung zu betrachten, anstatt sich bei der Bestimmung der Überlebensrate auf Mittel- oder Medianwerte für kontinuierliche Merkmale zu verlassen. Das Video zeigt ein Beispiel für die Darstellung eines überlagerten Histogramms des Alters und des Lebensunterhalts derjenigen, die überlebt haben, und derjenigen, die es nicht überlebt haben, und verdeutlicht die Vorsicht, die geboten ist, wenn man sich ausschließlich auf Durchschnittswerte verlässt. Darüber hinaus verwendet das Video das kategoriale Diagramm von Seaborn, um den Prozentsatz der Überlebensrate für jede Ebene verschiedener kategorialer Merkmale wie Passagierklasse und Familienzahl darzustellen. Dies zeigt einen Trend, bei dem Passagiere der ersten Klasse sowie Passagiere mit weniger Familienmitgliedern eher davon betroffen sind überleben. Das Video untersucht außerdem die Kombination von Geschwister-, Ehepartner-, Eltern- und Kindermerkmalen in einem einzigen Merkmal und erörtert die Bedeutung der Verwendung fundierter Logik bei der Erstellung von Indikatorvariablen für eine effektive Verallgemeinerung von Modellen.

  • 00:35:00 Der Redner betont die Bedeutung des Feature Engineering beim maschinellen Lernen. Der Referent rät davon ab, Funktionen ohne Tests zu stark zu verdichten, da manchmal einzelne Funktionen effektiver sein können als eine einzelne Funktion. Im Hinblick auf kategoriale Merkmale empfiehlt der Referent, nach fehlenden Werten und der Anzahl eindeutiger Werte in jedem Merkmal zu suchen. Sie diskutieren, wie das Gruppieren von Merkmalen und die Betrachtung des Durchschnittswerts für die Zielvariable in jeder Gruppe hilfreich sein kann, um den Datensatz besser zu verstehen. Insbesondere verbringt der Redner Zeit damit, den Zusammenhang zwischen der fehlenden Kabinenfunktion und der Überlebensrate zu untersuchen. Sie erklären, wie die Untersuchung der Daten auf diese Weise dazu führte, dass sie trotz des scheinbar geringen Werts des Merkmals einen starken Indikator für die Überlebensrate fanden.

  • 00:40:00 Der Redner diskutiert den Prozess der Erforschung und Entwicklung von Funktionen für maschinelles Lernen. Zu den untersuchten Merkmalen gehören Kabine, Ticket und Name. Die Kabinenvariable wird verwendet, um eine Indikatorvariable für das Vorhandensein einer Kabine zu erstellen, von der angenommen wird, dass sie die Überlebensraten beeinflusst. Die Ticketvariable wird zufällig zugewiesen und als Funktion gelöscht. Die Namensvariable wird nach Titeln untersucht, die den sozialen Status darstellen und mit Überlebensraten korrelieren können. Anhand einer Pivot-Tabelle werden die Überlebensraten jedes Titels untersucht, wobei ein Ausreißer der „Meister“-Titel für junge Jungen ist. Abschließend erörtert der Redner die Darstellung kategorialer Merkmale, um die Beziehung zwischen verschiedenen Ebenen dieser Merkmale und der Überlebensrate zu untersuchen.

  • 00:45:00 Weitere Feature-Untersuchungen zeigten, dass der Titel, die Kabinenanzeige und das Geschlecht einen starken Zusammenhang mit dem Überleben haben, während das eingeschiffte Feature nicht viele Informationen liefert und redundant ist. Anhand einer Pivot-Tabelle wurde festgestellt, dass mehr Menschen, die in Cherbourg an Bord gingen, eine Kabine hatten als diejenigen, die in Queenstown oder Southampton an Bord gingen, was die höhere Überlebensrate in Cherbourg erklärt. Schließlich wurde die Anzahl der unmittelbaren Familienangehörigen an Bord in einem Merkmal zusammengefasst und aufgrund ihrer Korrelation die Verwendung entweder der Passagierklasse oder des Tarifs vorgeschlagen.

  • 00:50:00 Der Dozent bespricht den Prozess des Feature-Engineerings und den Umgang mit fehlenden Werten beim maschinellen Lernen. Es werden drei gängige Ansätze zum Ersetzen fehlender Werte besprochen: Füllen mit dem Mittelwert oder Medianwert des Merkmals, Erstellen eines Modells zur Vorhersage eines vernünftigen Werts oder Zuweisen eines Standardwerts. Der Dozent beschließt, fehlende Alterswerte durch den Durchschnittswert zu ersetzen, der das Modell erfüllt und gleichzeitig Verzerrungen vermeidet. Das eingebettete Feature, eine kategoriale Variable, wird ebenfalls bereinigt, indem ein weiterer Wert hinzugefügt wird, um fehlende Werte anzuzeigen. Darüber hinaus wird der Prozess der Kappung eingeführt, um Ausreißer in den Daten zu entfernen. Dies ist wichtig, um sicherzustellen, dass das Modell dem tatsächlichen Trend der Daten entspricht, anstatt Ausreißern nachzujagen.

  • 00:55:00 Der Moderator diskutiert die Identifizierung von Ausreißern anhand verschiedener Schwellenwerte. Die Funktion zur Erkennung von Ausreißern wird definiert und Schwellenwerte für jedes Feature werden basierend auf der Werteverteilung festgelegt und angepasst. Die Maximalwerte für Geschwister, Ehepartner, Eltern, Kinder und Alter sind angemessen, sodass keine Notwendigkeit besteht, sie zu begrenzen, aber das faire Merkmal ist auf das 99. Perzentil begrenzt. Die Alters- und Fairness-Features werden mithilfe der „Clip“-Methode transformiert, um Obergrenzen für die Features festzulegen. Anschließend erörtert der Moderator verzerrte Daten und ihre potenziellen Probleme, einschließlich des Modells, das dem Long Tail nachjagt. Der Präsentator visualisiert die Verteilung der kontinuierlichen Merkmale Alter und Fair und transformiert sie, um eine kompaktere und leichter verständliche Verteilung zu schaffen.

  • 01:00:00 Das Video untersucht den Prozess der Datentransformation, um sie besser verhalten und kompakter zu machen und so Modelle für maschinelles Lernen zu verbessern. Die verwendete spezifische Transformation ist die Box-Cox-Potenztransformation, bei der auf jeden Datenpunkt in einem bestimmten Merkmal ein Exponent angewendet wird. Das Video erklärt den Prozess des Testens der Transformation mit verschiedenen Exponenten und der Verwendung von Kriterien wie QQ-Plots und Histogrammen, um zu bestimmen, welche Transformation die Daten mit dem besten Verhalten liefert. Das Endergebnis ist eine kompaktere Verteilung für das interessierende Merkmal, die das Modell des maschinellen Lernens nicht durch lange Ausläufer und Ausreißer ablenkt. Die transformierten Daten werden dann als Merkmal im Datenrahmen für die zukünftige Verwendung gespeichert.

  • 01:05:00 In dem Video wird erläutert, wie aus den vorhandenen Textdaten ein neues Feature erstellt wird. Nach der Analyse des Namensmerkmals zeigt der Sprecher, wie man den Titel der Person analysiert und ein neues Titelmerkmal erstellt. Das Titelmerkmal erweist sich als starker Indikator dafür, ob jemand überlebt hat, und wird den Daten zur Vorbereitung der Modellierung hinzugefügt. Das Video behandelt auch die Erstellung eines binären Indikators für die Kabinenfunktion, der anzeigt, ob ein Passagier eine Kabine hatte oder nicht. Abschließend demonstriert der Referent, wie man bestehende Merkmale, wie die Anzahl der Geschwister, Ehepartner, Eltern und Kinder an Bord, zu einem neuen Merkmal kombiniert, das die Anzahl der unmittelbaren Familienmitglieder an Bord angibt, und die Daten für die Modellierung vorbereitet.

  • 01:10:00 Der Moderator erörtert die Bedeutung der Umwandlung kategorialer Merkmale in numerische Merkmale für Modelle des maschinellen Lernens. Sie erklären, dass dies notwendig ist, da Modelle nur numerische Werte und keine Zeichenfolgenwerte verstehen können, und geben ein Beispiel für die Label-Codierung aus dem zweiten Lernpaket. Anschließend durchlaufen sie eine Schleife, um diese Konvertierung auf die nicht numerischen Merkmale im Titanic-Datensatz anzuwenden. Abschließend erörtert der Referent die Bedeutung der Aufteilung der Daten in Trainings-, Validierungs- und Testsätze zur Bewertung der Leistung des maschinellen Lernmodells anhand unsichtbarer Daten. Sie zeigen, wie man die Daten mithilfe von „Train Test Split from Cycle Learn“ in diese Sätze aufteilt.

  • 01:15:00 Das Video zeigt, wie Sie mit der Train-Test-Split-Methode Daten in Trainings-, Validierungs- und Testsätze aufteilen. Die Methode kann nur die Aufteilung eines Datensatzes in zwei Datensätze bewältigen, daher sind zwei Durchgänge durch die Methode erforderlich, um drei separate Datensätze zu erhalten. Im Video wird auch die Bedeutung der Standardisierung von Daten oder deren Umwandlung in Zahlen erläutert, die darstellen, wie viele Standardabweichungen über oder unter dem Mittelwert der Wert liegt, um Merkmale auf unterschiedlichen Skalen zu normalisieren. Ein Standardskalar wird importiert und zum Skalieren der Daten verwendet. Zur Veranschaulichung des Prozesses werden Beispiele bereitgestellt.

  • 01:20:00 Der Dozent erläutert die Bedeutung der Skalierung von Daten für einige Modelle des maschinellen Lernens und vergleicht die Leistung von vier verschiedenen Funktionssätzen bei der Vorhersage des Überlebens auf der Titanic. Während einige Algorithmen wie Random Forest nicht unbedingt skalierte Daten erfordern, kann die Skalierung anderen Algorithmen helfen, schneller zu trainieren und sogar eine bessere Leistung zu erzielen. Darüber hinaus definiert der Kursleiter vier Funktionssätze; Original-Features, bereinigte Original-Features, neue Features plus bereinigte Original-Features und reduzierte Features, um jeweils ein Modell zu erstellen und die Leistung zu vergleichen, um den Wert der Bereinigung, Transformation und Erstellung von Features zu verstehen. Schließlich schreibt der Kursleiter die Daten in CSV-Dateien, um sicherzustellen, dass in den Trainings-, Validierungs- und Testsätzen dieselben Beispiele verwendet werden.

  • 01:25:00 Der Prozess zum Anpassen des Modells an die rohen Originalfunktionen wird unter Verwendung von Paketen wie Joblib, Matplotlib, Seaborn, Numpy, Pandas, Random Forest Classifier und Grid Search CV besprochen. Die Korrelationen zwischen den Merkmalen werden mithilfe einer aus der Korrelationsmatrix erstellten Heatmap visualisiert und es wird festgestellt, dass Passagierklasse und Kabine eine hohe Korrelation von 0,7 aufweisen. Die Gittersuche cv wird verwendet, um die besten Hyperparameter für das Modell zu finden, wie z. B. die Anzahl der Schätzer und die maximale Tiefe der Bäume. Es wurde festgestellt, dass das beste Modell über etwa 512 Schätzer mit einer maximalen Tiefe von 8 verfügt, was zu einem durchschnittlichen Wert von etwa 84,5 Prozent führt und den Übergang zum nächsten Datensatz ermöglicht.

  • 01:30:00 Das Video untersucht die Feature-Bedeutung in einem Random-Forest-Modell und die Vorteile der Verwendung von Grid Search CV. Die Merkmalsbedeutungen für das Modell zeigen, dass das Geschlecht das wichtigste Merkmal ist, während das Alter wichtiger ist als die Passagierklasse, die früher als starker Indikator für das Überleben galt. Allerdings kann die Passagierklasse stark mit anderen Merkmalen korrelieren, beispielsweise ob jemand eine Kabine hatte oder mit dem Fahrpreis, den er bezahlt hat, was dazu führt, dass das Modell nicht weiß, was die Beziehung zur Zielvariablen wirklich bestimmt. Sobald das Modell mit den besten Hyperparametereinstellungen für 100 % der Trainingsdaten ausgestattet ist, kann es anhand eines Validierungssatzes ausgewertet werden. Anschließend wird das Modell an saubere Merkmale angepasst, um festzustellen, ob die fehlenden Werte und Ausreißer seine Fähigkeit, zugrunde liegende Trends zu erkennen, erheblich beeinträchtigt haben. Die besten Hyperparametereinstellungen für dieses Modell sind einfacher als beim Modell für Rohmerkmale, und die Merkmalsbedeutung ist nahezu identisch mit der des Vorgängermodells. Abschließend wird das Modell an alle Features angepasst, einschließlich der transformierten Features, um zu sehen, wie viel Wert sie zusätzlich zu den einfachen Features bieten.

  • 01:35:00 Das Video untersucht den Prozess der Bewertung der besten Modelle, die von jedem Feature-Set generiert werden, anhand eines Validierungsdatensatzes, um das beste Modell basierend auf der Leistung auszuwählen. Das Video erläutert die Bedeutung der Berücksichtigung der Modelllatenz bei der Auswahl des besten Modells und erwähnt die Pakete, die für Genauigkeits-, Präzisions- und Recall-Score-Berechnungen verwendet werden. Die zuvor gespeicherten Modelle werden über eine Schleife eingelesen und als Wörterbuch mit dem Modellnamen als Schlüssel und dem Modellobjekt als Wert gespeichert. Das beste Modell wird basierend auf der Leistung des Validierungssatzes ausgewählt und seine Leistung in einem Holdout-Testsatz wird bewertet, um einen unvoreingenommenen Überblick über seine Leistung zu erhalten.

  • 01:40:00 Der Moderator erläutert, wie man in einem Modellwörterbuch gespeicherte Modelle lädt und ihre Leistung mithilfe der Funktion „Modell auswerten“ bewertet. Der Moderator erklärt, dass in dieser Fallstudie das Modell mit der besten Leistung im Validierungssatz das Modell ist, das auf allen Funktionen basiert, während das Modell, das auf reduzierten Funktionen basiert, das einfachste mit der geringsten Latenz ist. Der Moderator hebt die Kompromisse zwischen Präzision und Erinnerung hervor, je nachdem, welches Problem sie lösen. Abschließend erklärt der Moderator, dass er das auf allen Funktionen basierende Modell einsetzen und es anhand des Testsatzes bewerten wird, da keine Anforderungen an die Vorhersagezeit bestehen.

  • 01:45:00 Der Referent erklärt, dass der Testsatz nicht für die Modellauswahl verwendet wurde und eine unvoreingenommene Möglichkeit darstellt, die Leistung des endgültig ausgewählten Modells zu bewerten. Das gewählte Modell basierte auf vier verschiedenen Merkmalen, mit 64 Schätzern und einer maximalen Tiefe von acht. Die Genauigkeit wurde umfassend anhand unbekannter Daten getestet und bewertet. Dabei ergab sich eine Genauigkeit von 83,7 Prozent bei der Kreuzvalidierung, 83 Prozent beim Validierungssatz und 81 Prozent beim Testsatz. Mit diesen Informationen ist der Redner zuversichtlich, dieses Modell als das beste Modell für Vorhersagen darüber vorschlagen zu können, ob die Menschen an Bord der Titanic überleben würden oder nicht. Der Referent weist außerdem darauf hin, dass die in diesem Kurs erlernten Fähigkeiten auf jeden neuen Funktionssatz übertragen werden können, um den letzten Quäntchen Wert herauszuholen und das leistungsfähigste Modell für maschinelles Lernen zu erstellen.
Feature Engineering Case Study in Python for Machine Learning Engineers
Feature Engineering Case Study in Python for Machine Learning Engineers
  • 2022.04.06
  • www.youtube.com
Another free course to help you become a machine learning engineer in the real-world.LogikBot - Affordable, Real-World and Comprehensive - https://www.logikb...
 

Maschinelles Lernen mit BigQuery auf der Cloud-Plattform von Google



Maschinelles Lernen mit BigQuery auf der Cloud-Plattform von Google

Das Video bespricht den Inhalt eines Kurses, der sich auf die Verwendung von BigQuery für maschinelles Lernen konzentriert. BigQuery ist ein Enterprise Data Warehouse, das zunächst intern bei Google verwendet wurde und später zu einem Cloud-Dienst wurde. Es ist hoch skalierbar und serverlos, kann Petabytes an Daten aufnehmen und schnelle Abfrageergebnisse liefern. Der Kursunterricht basiert auf Fallstudien aus der Praxis und führt die Lernenden durch den Prozess der Erstellung von Modellen für maschinelles Lernen, von der Datenbeschaffung bis zur Modellerstellung. Während des gesamten Kurses verwenden die Lernenden BigQuery zum Erstellen ihrer Modelle. Dazu müssen sie ein Google Cloud Platform (GCP)-Konto speziell für BigQuery einrichten.

Das Video erläutert die Leitprinzipien von Google für die Skalierung von Hardwareressourcen und betont die Entscheidung für eine Skalierung nach außen statt nach oben. Google ist sich bewusst, dass Hardware jederzeit ausfallen kann, daher sollten Designs potenzielle Ausfälle berücksichtigen. Darüber hinaus nutzt Google handelsübliche Hardware, die erschwinglich ist und Anbieterflexibilität ermöglicht. Aufgrund der hohen Hardwarekosten ist die Skalierung der Skalierung vorzuziehen. Google hat Technologien wie GFS, MapReduce und Bigtable entwickelt, die zu einer skalierten Hardwarearchitektur geführt haben. Colossus hat GFS ersetzt und dient als zugrunde liegendes verteiltes Subsystem für die Technologien von Google, einschließlich BigQuery.

Der Dozent gibt einen Überblick über die weltweit verbreitete Datenbanklösung Spanner von Google, die für die Verwaltung verteilter Transaktionen auf Colossus setzt. Das Video zeigt auch den Prozess der Anmeldung und Verwaltung von Rechnungskonten innerhalb der Google Cloud Platform. Benutzer können ein GCP-Konto erstellen, indem sie die Website der Plattform besuchen, den Bedingungen zustimmen und die erforderlichen Informationen bereitstellen. Neuen Nutzern wird ein Guthaben von 300 US-Dollar zur Nutzung auf GCP gewährt, das über den Abrechnungsbereich überwacht werden kann. Der Dozent empfiehlt, Budgetbenachrichtigungen einzurichten, um Benachrichtigungen zu erhalten, wenn bestimmte Abrechnungsziele erreicht sind.

Die Erstellung und der Zweck von BigQuery werden ausführlich besprochen. Das exponentielle Datenwachstum von Google machte die Entwicklung von BigQuery erforderlich, das interaktive Abfragen über große Datenmengen ermöglicht. BigQuery kann Abfragen verarbeiten, unabhängig davon, ob sie 50 Zeilen oder 50 Milliarden Zeilen umfassen. Sein nicht standardmäßiger SQL-Dialekt ermöglicht eine kurze Lernkurve und kann die SQL-Ausführung auf Tausenden von Computern parallelisieren. Während BigQuery strukturierte Daten speichert, unterscheidet es sich von relationalen Datenbanken durch die Unterstützung verschachtelter Datensatztypen innerhalb von Tabellen, wodurch die Speicherung verschachtelter Strukturen ermöglicht wird.

Die Architektur von BigQuery wird erläutert und der Parallelisierungsansatz hervorgehoben. Im Gegensatz zu den meisten relationalen Datenbanksystemen, die eine Abfrage pro Kern ausführen, ist BigQuery darauf ausgelegt, eine einzelne Abfrage über Tausende von Kernen auszuführen, wodurch die Leistung im Vergleich zu herkömmlichen Ansätzen deutlich verbessert wird. Die Dremel-Engine ermöglicht Abfrage-Pipelining, sodass andere Abfragen verfügbare Kerne nutzen können, während einige auf E/A warten. BigQuery verwendet einen Mandantenfähigkeitsansatz, der es mehreren Kunden ermöglicht, Abfragen gleichzeitig auf derselben Hardware auszuführen, ohne dass dies Auswirkungen auf andere Standorte hat. Die BigQuery-Oberfläche umfasst drei Kernbereiche, darunter Abfrageverlauf, gespeicherte Abfragen, Jobverlauf und Ressourcenabschnitte zum Organisieren des Zugriffs auf Tabellen und Ansichten.

Das Video bietet eine detaillierte Erklärung der für BigQuery spezifischen Bildschirme und Bedienfelder in der Google Cloud Console. Im Navigationsmenü werden BigQuery-Ressourcen wie Datensätze und Tabellen angezeigt, während Benutzer im Abschnitt „SQL-Arbeitsbereich“ Abfragen erstellen, mit Tabellen arbeiten und ihren Jobverlauf anzeigen können. Das Explorer-Panel listet aktuelle Projekte und ihre Ressourcen auf, während das Details-Panel Informationen zu ausgewählten Ressourcen bereitstellt und Änderungen an Tabellenschemata, Datenexporten und anderen Funktionen ermöglicht. Es wird klargestellt, dass BigQuery nicht für OLTP-Anwendungen geeignet ist, da es keine Unterstützung für häufige kleine Aktualisierungen auf Zeilenebene bietet. Obwohl BigQuery keine NoSQL-Datenbank ist, verwendet es einen SQL-Dialekt und ähnelt eher einer OLAP-Datenbank und bietet ähnliche Vorteile und Eignung für viele OLAP-Anwendungsfälle.

Die Definition von Googles BigQuery wird weiter besprochen, wobei der Schwerpunkt auf der vollständig verwalteten, hoch skalierbaren, kostengünstigen und schnellen Cloud liegt.

Hier sind weitere Punkte, die im Video besprochen werden:

  1. Das Speicherformat von BigQuery: BigQuery verwendet ein spaltenorientiertes Speicherformat, das für die Abfrageleistung optimiert ist. Es speichert Daten komprimiert und spaltenweise und ermöglicht so eine effiziente Verarbeitung bestimmter Spalten in einer Abfrage, ohne auf unnötige Daten zuzugreifen. Dieses Format eignet sich besonders für analytische Arbeitslasten, die Aggregationen und Filterung beinhalten.

  2. Datenaufnahme: BigQuery unterstützt verschiedene Methoden der Datenaufnahme. Es kann Daten direkt aus Quellen wie Google Cloud Storage, Google Sheets und Google Cloud Bigtable laden. Es bietet auch Integrationen mit anderen Datenverarbeitungstools wie Dataflow und Dataprep für ETL-Vorgänge (Extrahieren, Transformieren, Laden).

  3. Datenpartitionierung und Clustering: Um die Abfrageleistung zu optimieren, bietet BigQuery Funktionen wie Partitionierung und Clustering. Bei der Partitionierung werden große Datensätze anhand einer ausgewählten Spalte (z. B. Datum) in kleinere, überschaubare Teile unterteilt. Durch Clustering werden die Daten innerhalb jeder Partition basierend auf einer oder mehreren Spalten weiter organisiert, um die Abfrageleistung durch Reduzierung der gescannten Datenmenge zu verbessern.

  4. Datenzugriffskontrollen und Sicherheit: BigQuery bietet robuste Zugriffskontrollen zur Verwaltung der Datensicherheit. Es lässt sich in Google Cloud Identity and Access Management (IAM) integrieren und ermöglicht Benutzern die Definition fein abgestufter Zugriffsberechtigungen auf Projekt-, Datensatz- und Tabellenebene. BigQuery unterstützt außerdem die Verschlüsselung im Ruhezustand und während der Übertragung und gewährleistet so den Schutz sensibler Daten.

  5. Datenpreise und Kostenoptimierung: Das Video geht kurz auf das Preismodell von BigQuery ein. Es funktioniert auf einer „Pay-as-you-go“-Basis und berechnet den Nutzern Gebühren basierend auf der Datenmenge, die durch Abfragen verarbeitet wird. BigQuery bietet Funktionen wie Abfrage-Caching, die durch die Vermeidung redundanter Datenverarbeitung Kosten senken können. Es ist wichtig, Abfragen zu optimieren und unnötige Datenscans zu vermeiden, um die Kosten zu minimieren.

  6. Maschinelles Lernen mit BigQuery: Der Kurs behandelt die Verwendung von BigQuery für maschinelle Lernaufgaben. BigQuery lässt sich in die maschinellen Lerndienste von Google Cloud wie AutoML und TensorFlow integrieren, sodass Benutzer die Leistungsfähigkeit von BigQuery für die Datenvorbereitung und das Feature-Engineering nutzen können, bevor sie Modelle für maschinelles Lernen trainieren.

  7. Anwendungsfälle und Beispiele: Der Dozent erwähnt verschiedene reale Anwendungsfälle, bei denen sich BigQuery auszeichnet, z. B. die Analyse großer Protokolldatenmengen, die Durchführung von Marktforschungen, die Durchführung von Kundensegmentierungen und die Ausführung komplexer analytischer Abfragen für riesige Datensätze.

Insgesamt bietet das Video einen Überblick über die Fähigkeiten, die Architektur und die wichtigsten Funktionen von BigQuery und unterstreicht seine Eignung für umfangreiche Datenanalysen und maschinelle Lernaufgaben. Es betont die Vorteile der Verwendung einer vollständig verwalteten und hoch skalierbaren cloudbasierten Lösung wie BigQuery für die effiziente Verarbeitung großer Datenmengen.

  • 00:00:00 Das Video bespricht den Kursinhalt, der sich auf die Verwendung von BigQuery für maschinelles Lernen konzentriert. BigQuery ist ein hoch skalierbares und serverloses Enterprise Data Warehouse, das ursprünglich intern bei Google verwendet wurde, bevor es zu einem Cloud-Dienst wurde. Es kann Petabytes an Daten aufnehmen und gibt Daten in nur wenigen Sekunden zurück, was es zu einer wertvollen Ressource für überwachtes maschinelles Lernen macht, insbesondere bei großen Datensätzen. Der Unterricht in diesem Kurs basiert auf Fallstudien aus der Praxis, und die Lernenden werden durch den Prozess der Erstellung ihrer Modelle für maschinelles Lernen geführt, von der Beschaffung der Daten bis hin zur Modellierung, um ein hochprädiktives Modell zu erstellen. Im Laufe des Kurses werden die Lernenden BigQuery nutzen, um ihre Modelle zu erstellen, was bedeutet, dass sie ein GCP-Konto einrichten, das nur für BigQuery spezifisch ist.

  • 00:05:00 Das Video erklärt die Leitprinzipien hinter der Skalierung von Hardwareressourcen bei Google, insbesondere die Entscheidung, eher auf Skalierung als auf Skalierung umzusteigen. Die Leitprinzipien von Google in Bezug auf Hardware sind, dass alles jederzeit ausfallen kann und dass das Design dies berücksichtigen sollte. Beim zweiten Prinzip geht es um die Verwendung von Standardhardware, die erschwinglich und leicht zu beschaffen ist und es Google dadurch ermöglicht, den Anbieter zu wechseln, ohne dass ihm Strafen entstehen. Schließlich ist Hardware teuer, daher ist das Ziel eher eine Skalierung als eine Skalierung. Google hat Schlüsseltechnologien wie GFS, MapReduce und Bigtable entwickelt, um sie auf eine skalierte Hardwarearchitektur umzustellen. Darüber hinaus ersetzte Colossus GFS und ist das zugrunde liegende verteilte Subsystem, auf dem ein Großteil der Google-Technologie aufbaut, einschließlich BigQuery, das auf Colossus basiert.

  • 00:10:00 Der Dozent gibt einen Überblick über die Datenbanklösung Spanner von Google, die weltweit vertrieben wird und Colossus zur Verwaltung verteilter Transaktionen verwendet, und zeigt gleichzeitig, wie man sich für Rechnungskonten innerhalb der Google Cloud Platform anmeldet und diese verwaltet. Um mit der Nutzung von Google Cloud-Diensten zu beginnen, müssen Benutzer ein Konto auf GCP erstellen. Dies kann durch Navigieren zum Browser und Eingeben von „GCP“ oder „Google Cloud Platform“ erfolgen. Nachdem sie den Bedingungen zugestimmt und die entsprechenden Informationen bereitgestellt haben, erhalten neue Benutzer ein Guthaben von 300 US-Dollar zur Nutzung auf GCP, das über die Übersichts- und Budgetfunktionen im Abrechnungsbereich überwacht werden kann. Der Dozent empfiehlt Benutzern, Budgetbenachrichtigungen einzurichten, um Benachrichtigungen zu erhalten, wenn bestimmte Abrechnungsziele erreicht werden. Dies kann erreicht werden, indem man auf „Budget erstellen“ klickt und den Gesamtbetrag angibt, der ausgegeben werden soll, sowie die Projekt- und Budgetbenachrichtigungen auswählt aktiviert werden.

  • 00:15:00 Die Entstehung und der Zweck von BigQuery werden besprochen. Das exponentielle Datenwachstum von Google verursachte Probleme und führte zur Entwicklung eines Tools, das interaktive Abfragen über große Datenmengen ermöglichte: BigQuery. Es bietet die Möglichkeit, unabhängig davon, ob 50 Zeilen oder 50 Milliarden Zeilen abgefragt werden, den gleichen Betrieb durchzuführen. Dank seines nicht standardmäßigen, auf SQL basierenden Dialekts verfügt es über eine kurze Lernkurve und ist mit der Fähigkeit ausgestattet, die SQL-Ausführung auf Tausenden von Maschinen zu parallelisieren. Strukturierte Daten sind das, was BigQuery speichern kann, aber im Gegensatz zu einer relationalen Datenbank können diese Felder Datensatztypen enthalten, einschließlich verschachtelter Datensätze innerhalb von Tabellen. Bei diesen verschachtelten Strukturen handelt es sich im Wesentlichen um vorverbundene Tabellen.

  • 00:20:00 Das Video erklärt die Architektur von BigQuery und seinen Ansatz zur Parallelisierung. Während die meisten relationalen Datenbanksysteme nur eine Abfrage pro Kern ausführen können, ist BigQuery so konzipiert, dass eine einzelne Abfrage über Tausende von Kernen ausgeführt wird, wodurch die Leistung im Vergleich zu herkömmlichen Abfragekernansätzen deutlich maximiert wird. Dies ist dank der Dremel-Engine möglich, die Abfragen weiterleiten kann, sodass andere Abfragen verfügbare Kerne nutzen können, während einige auf E/A warten. Dieser Multi-Tenant-Ansatz bedeutet, dass viele Kunden gleichzeitig Abfragen auf derselben Hardware ausführen können. Außerdem nutzt BigQuery unterschiedliche Datennutzungsmuster, sodass eine starke Nutzung an einem geografischen Standort keine Auswirkungen auf andere Standorte hat. Das Video erläutert außerdem die drei Hauptbereiche der BigQuery-Benutzeroberfläche mit dem für jedes Projekt spezifischen Abfrageverlauf und speichert Abfragen, den Auftragsverlauf und Ressourcenabschnitte, die zum Organisieren des Zugriffs auf Tabellen und Ansichten verfügbar sind.

  • 00:25:00 Der Redner erklärt die verschiedenen Bildschirme und Panels, aus denen die Google Cloud Console speziell für BigQuery besteht. Im Navigationsmenü werden BigQuery-Ressourcen wie Datensätze und Tabellen angezeigt, während Benutzer im Abschnitt „SQL-Arbeitsbereich“ Abfragen erstellen, mit Tabellen arbeiten und ihren Jobverlauf anzeigen können. Im Explorer-Bereich wird eine Liste der aktuellen Projekte und ihrer Ressourcen angezeigt. Der Detailbereich bietet Informationen zur ausgewählten Ressource und ermöglicht es Benutzern, Tabellenschemata zu ändern, Daten zu exportieren und andere Funktionen auszuführen. Der Redner erörtert auch, was BigQuery nicht ist, und erklärt, dass es sich nicht gut für OLTP-Anwendungen eignet, da es häufige, kleine Aktualisierungen auf Zeilenebene nicht unterstützt, und dass es sich nicht um eine NoSQL-Datenbank handelt, da es einen SQL-Dialekt verwendet . Stattdessen ähnelt BigQuery eher einer OLAP-Datenbank und bietet viele der gleichen Vorteile, sodass es für viele OLAP-Anwendungsfälle geeignet ist.

  • 00:30:00 Die Definition von Googles BigQuery wurde besprochen. Es handelt sich um ein vollständig verwaltetes, hoch skalierbares, kostengünstiges und schnelles Cloud-Data-Warehouse für Analysen mit integriertem maschinellen Lernen. Darüber hinaus besteht BigQuery aus vielen anderen Komponenten wie Megastore und Colossus. BigQuery verfügt über einen eigenen Algorithmus zum Speichern von Daten, Column IO, der Daten in Spalten speichert, die Leistung verbessert und Benutzern basierend auf den zurückgegebenen Daten Gebühren berechnet. Das Netzwerk von Google ist aufgrund seiner hohen Liebe zum Detail schnell. Daher bleibt ein Großteil ihrer Netzwerkarchitektur ein Rätsel. Schließlich veröffentlichte BigQuery mit der Einführung von BigQuery 2.0 die Unterstützung für Standard-SQL, benannte BigQuery SQL in Legacy SQL um und bevorzugte den SQL-Dialekt für in BigQuery gespeicherte Abfragen und Daten.

  • 00:35:00 Das Video behandelt den Prozess zum Speichern und Öffnen von Abfragen in BigQuery sowie zum Erstellen und Abfragen von Ansichten. Der Erzähler erklärt, dass eine Ansicht eine virtuelle Tabelle ist und zeigt, wie eine Ansicht in einem neuen Datensatz erstellt und gespeichert wird. Das Video erläutert auch die verschiedenen Optionen im Abfrageeditor, z. B. das Formatieren der Abfrage und den Zugriff auf Abfrageeinstellungen. Darüber hinaus deckt das Video die explosionsartige Entwicklung von Karrieren im Bereich maschinelles Lernen und Datenwissenschaft ab und erörtert die Unterschiede zwischen Rollen wie Datenanalyst und Datenwissenschaftler. Abschließend erklärt der Erzähler, dass der Schwerpunkt des Kurses auf überwachtem maschinellem Lernen mit Python liegen wird, das als Goldstandard auf diesem Gebiet gilt.

  • 00:40:00 Die verschiedenen Rollen im Bereich des maschinellen Lernens werden besprochen, einschließlich des Datenwissenschaftlers, des Ingenieurs für maschinelles Lernen und des Dateningenieurs. Der Schwerpunkt liegt auf angewandtem maschinellem Lernen, also der realen Anwendung von Prinzipien des maschinellen Lernens zur Lösung von Problemen, im Gegensatz zu rein akademischen oder Forschungsanwendungen. Die Bedeutung strukturierter Datensätze, insbesondere solcher in relationalen Datenbanken, wird ebenfalls hervorgehoben, da sich traditionelle Modelle wie Gradientenverstärker nachweislich bei der Modellierung hochstrukturierter Datensätze hervorgetan haben und viele Wettbewerbe gegenüber künstlichen neuronalen Netzen gewonnen haben.

  • 00:45:00 Es wird der maschinelle Lernprozess behandelt, der stark prozessorientiert ist. Der Artikel erklärt, wie Ingenieure für maschinelles Lernen dieselben Kernschritte befolgen müssen, wenn sie ein Problem lösen müssen. Der erste Schritt besteht darin, sich die Daten anzusehen, gefolgt von der Datenbeschaffung. Da der Großteil des angewandten maschinellen Lernens überwacht wird, müssen die Daten zunächst bereinigt (oder „gereinigt“) werden, was bedeutet, dass die Daten in ein numerisch unterstütztes Format umgewandelt werden. Dies erfordert, dass der Ingenieur für maschinelles Lernen die meiste Zeit mit der Datenverarbeitung verbringt. Sobald die Daten bereinigt sind, beginnt die Modellierungsphase. In dieser Phase müssen Modelle oder Algorithmen entwickelt werden, die Muster aus dem bereinigten Datensatz lernen. Das Ziel des maschinellen Lernens besteht darin, anhand aktueller Daten hochpräzise Vorhersagen treffen zu können. Sobald die Modelle abgestimmt und anhand neuer Daten getestet wurden, werden sie für die Nutzung durch die Verbraucher in Produktion genommen.

  • 00:50:00 Das Video erläutert den Installationsprozess der Python 3.7-Version mithilfe der Anaconda-Distribution auf einem Mac. Die Anaconda-Distribution ist sowohl für Windows als auch für Mac verfügbar und verfügt über einen grafischen Installer. Nach dem Herunterladen des Installationsprogramms und der Eingabe des Passworts wird die Standardinstallationsart empfohlen und der Installationsvorgang kann einige Minuten dauern. Sobald die Installation abgeschlossen ist, kann der Anaconda Navigator gestartet und ein neues Python 3-Notebook geöffnet werden, um mit dem Codieren zu beginnen.

  • 00:55:00 Der Kursleiter erklärt, wie man in der Jupyter Notebook-IDE navigiert, die für maschinelles Lernen mit BigQuery auf der Cloud-Plattform von Google verwendet wird. Der erste Schritt besteht darin, das Notebook auf dem Laptop zu finden, indem Sie CMD eingeben und auf die Anaconda-Eingabeaufforderung zugreifen. Von dort aus wird durch die Eingabe von „Jupyter Notebook“ die Python-Engine auf dem lokalen Computer geladen. Nach dem Laden wird die Navigation im Notebook erklärt, einschließlich des Schließens einer Seite

  • 01:00:00 Es wird eine Schritt-für-Schritt-Anleitung zur Verwendung von Jupyter Notebook vorgestellt, beginnend mit der Navigation zu „Neues Notebook“ und der Auswahl von Python 3. Das Tutorial zeigt auch, wie Sie Bibliotheken importieren, Zellen erstellen, ausführen und umbenennen sowie Änderungen vornehmen Zellenreihenfolge, automatisches Speichern eines Notizbuchs, Einfügen, Kopieren, Ausschneiden, Einfügen, alles ausführen und den Kernel neu starten sowie Markdown verwenden, um ein Notizbuch mit Anmerkungen zu versehen. Darüber hinaus wird die Einfachheit des Notebooks hervorgehoben und als ausreichend für die Arbeit mit der Machine-Learning-Pipeline angesehen.

  • 01:05:00 Das Video behandelt die Grundlagen der Arbeit mit Daten in BigQuery, einschließlich Datensätzen und Tabellen. Es erklärt, wie wichtig es für Ingenieure des maschinellen Lernens ist, Daten in BigQuery erstellen, hochladen und verarbeiten zu können, da die Skalierung ein großes Problem bei der Erstellung realer Modelle darstellen kann. Mit BigQuery ML sind lediglich SQL-Kenntnisse erforderlich, was es einfach und zugänglich für diejenigen macht, die sich mit SQL auskennen, und es bietet erfahrenen Experten für maschinelles Lernen die Möglichkeit, ihre Modelle in jedem Maßstab zu erstellen. Darüber hinaus behandelt das Video die wichtigsten Bibliotheken für maschinelles Lernen, die beim angewandten maschinellen Lernen in Python verwendet werden, wie z. B. Pandas, eine Bibliothek für die Datenverarbeitung und -manipulation, Numpy, ein grundlegendes Paket für wissenschaftliches Rechnen mit Python, Matplotlib für die Erstellung von 2D-Grafiken, und Scikit-Learn, eine Bibliothek zum Erstellen traditioneller Modelle.

  • 01:10:00 Das Video-Tutorial erkundet die Grundlagen des Data Wrangling und der Datenmanipulation für maschinelles Lernen mithilfe von zwei Kernbibliotheken: Pandas und Numpy. Die Pandas-Bibliothek wird verwendet, um einen berühmten Spielzeugdatensatz für maschinelles Lernen namens Titanic-Datensatz zu laden und einen Alias zu erstellen. Es wird ein Array erstellt, um das Verständnis des Modells zu ermöglichen, und die für das Modell erforderlichen Attribute wie Passagierklasse, Geschlecht, Alter und Überlebende werden identifiziert. Die vorherzusagende Zielvariable ist das überlebende Attribut, das entweder 1 oder 0 ist; „surved“ bedeutet 1, während „didred not alive“ 0 ist. Der nächste Schritt besteht darin, die Werte in den Attributen mithilfe von Python-Code in Zahlen umzuwandeln, die von der Maschine verstanden werden können. Alle Beobachtungen mit Null- oder NAND-Werten werden entfernt und das überlebende Attribut wird von der x-Achse entfernt, um zu verhindern, dass das Modell betrügt. Schließlich wird der Datensatz in Test- und Trainingsabschnitte unterteilt, wobei die Allzweckbibliothek für maschinelles Lernen namens scikit-learn verwendet wird.

  • 01:15:00 Das Video diskutiert den Einsatz von maschinellem Lernen mit dem Titanic-Datensatz und wie in realen Szenarien die meisten Modelle aus relationalen Datenbanken stammen. Die SQL Server Management Studio-Schnittstelle wird eingeführt, da diese häufig zum Verwalten von SQL Server-Datenbanken verwendet wird. Es wird ein hypothetisches Szenario vorgestellt, bei dem die Aufgabe darin besteht, einen Datensatz zu erstellen, der zur Vorhersage zukünftiger Verkäufe verwendet werden kann. In dem Video erfahren Sie, wie Sie eine Abfrage erstellen und Tabellen verknüpfen, um einen Bestellverlauf für die Prominenten zu erstellen, und wie Sie diese Informationen als Ansicht speichern, damit sie einfach abgefragt und als CSV-Datei exportiert werden können, um sie mit dem Rest zu teilen Team.

  • 01:20:00 Das Video führt Sie durch den Prozess des Exportierens von Daten in eine CSV-Datei aus einer Cloud-Datenbank mithilfe von SQL Server. Sie erklären, dass die explorative Datenanalyse, auch Datenanalyse genannt, eine entscheidende Rolle beim maschinellen Lernen spielt, und stellen die Bibliotheken Matplotlib und Seaborn zur Datenvisualisierung vor. Das Video zeigt weiterhin Beispiele dafür, wie diese Bibliotheken verwendet werden können, um den Titanic-Datensatz zu untersuchen, Prozentsätze fehlender Werte zu berechnen und Histogramme und Balkendiagramme zu erstellen. Sie stellen fest, dass Seaborn aufgrund seiner Einfachheit oft bevorzugt wird.

  • 01:25:00 Der Referent untersucht die verschiedenen Arten von Modellen des maschinellen Lernens und ihre Anwendungen. Deep-Learning-Modelle zeichnen sich zwar durch hervorragende Bild- und Spracherkennung aus, eignen sich jedoch in den meisten Fällen möglicherweise nicht für überwachtes maschinelles Lernen, das auf stark strukturierten Datensätzen basiert. Herkömmliche Modelle wie Gradient Booster sind genauer, weniger rechenintensiv, leichter zu erklären und können Klassifizierungs- und Regressionsprobleme beschleunigen. Anschließend führt der Redner das Publikum durch den Prozess der Erstellung eines traditionellen Modells mit Python, Pandas für die Datenverarbeitung und XGBoost, einer Gradient-Booster-Bibliothek, die viele wettbewerbsfähige Modellierungswettbewerbe gewonnen hat. Das Modell erreichte im Datensatz eine Punktzahl von 83 %, und der Sprecher erklärt, wie man das Modell mithilfe der Pickle-Bibliothek speichert.

  • 01:30:00 Das Video erklärt, was Klassifizierung ist und wie sie Beobachtungen anhand von Merkmalen wie Noten, Testergebnissen und Erfahrung in Gruppen einteilt. Es behandelt auch die binäre Klassifizierung und wie sie die Klassifizierung von Daten in zwei Gruppen mit der Ausgabe „Ja“ oder „Nein“ beinhaltet. Das Video stellt dann künstliche neuronale Netze und Deep-Learning-Modelle vor, definiert lineare Regression als Vorhersage des Werts auf der Grundlage einer Linie und erklärt, wie sie bei Prognosen verwendet wird, um zufällige Datenpunkte wie Krebsdiagnosen oder Aktienkurse vorherzusagen. Die Demonstration der linearen Regression in Python verwendet die Pandas-Bibliothek zum Massieren von Daten, während die Numpy-Bibliothek Daten in einem optimierten Array-Container speichert und die Matplotlib-Bibliothek zur Datenvisualisierung verwendet wird. Das Video zeigt, wie man ein Diagramm zeichnet, um die positive lineare Beziehung zwischen den untersuchten Stunden und den erzielten Ergebnissen zu ermitteln, und schließlich das für die lineare Regression verwendete Klassifikationsmodell in das Python-Skript importiert.

  • 01:35:00 Der Referent geht auf die Grundlagen der Klassifizierung als überwachte maschinelle Lerntechnik ein und bietet eine vereinfachte Definition, die Beobachtungen anhand ihrer Merkmale in Gruppen unterteilt. Das angeführte Beispiel ist die Spam-Erkennung, bei der E-Mails in zwei Kategorien unterteilt werden: Spam und Nicht-Spam. Ein komplexeres Beispiel ist das maschinelle Lernprojekt Titanic, bei dem es sich um ein binäres Klassifizierungsproblem handelt, bei dem die Ausgabe des Modells entweder eine Eins für „überlebt“ oder eine Null für „nicht überlebt“ ist. Im nächsten Teil des Abschnitts geht es darum, wie man ein Klassifizierungsmodell mit hoher Genauigkeit erstellt, einschließlich des Imports von Bibliotheken, der Verwendung des Iris-Datensatzes, der Konvertierung von Textwerten in Zahlen mithilfe der Label-Kodierung, dem Training eines Zufallsstruktur-Klassifizierungsmodells und dem Testen des fertigen Modells anhand des Trainingsdaten, um eine Genauigkeit von 97 % zu erreichen.

  • 01:40:00 Die Grundlagen der Arbeit mit Daten mithilfe von BigQuery werden besprochen, einschließlich Datensätzen und Tabellen. Als Ingenieur für maschinelles Lernen ist es von entscheidender Bedeutung, Daten in BigQuery erstellen, hochladen und verarbeiten zu können. In diesem Abschnitt geht es um die Verarbeitung von Daten in BigQuery, einschließlich der Frage, wie Petabytes an Daten verarbeitet werden können, und um die Vorteile der Verwendung von Googles Cloud-Jupyter-Notebook namens Cloud Datalab. Außerdem wird BigQuery ML abgedeckt, das außer SQL keine Programmierkenntnisse erfordert, was es Datenexperten erleichtert, Modelle für maschinelles Lernen zu erstellen. Abschließend behandelt der Abschnitt die Nuancen von Datensätzen und Tabellen, einschließlich der Erstellung eines Datensatzes und dem Hinzufügen von Tabellen in BigQuery.

  • 01:45:00 Der Redner erläutert die verschiedenen Quelloptionen beim Erstellen von Tabellen in BigQuery, einschließlich einer leeren Tabelle, externen Datenquellen und dem Hochladen von Daten aus einer lesbaren Quelle wie CSV, JSON, Arvo, Parquet und ORC. Während die meisten Ingenieure für maschinelles Lernen die Verwendung von CSV-Dateien bevorzugen, ist Arvo schneller zu laden und einfacher zu analysieren, ohne dass es zu Codierungsproblemen kommt, während Parquet und ORC im Apache Hadoop-Ökosystem weit verbreitet sind. Anschließend stellt der Redner das Cloud Data Lab von Google vor, eine auf GCP gehostete virtuelle Maschine (VM), die eine Jupyter Notebook-ähnliche Schnittstelle namens Datalab enthält. Benutzer können Code von einem Jupyter-Notebook lokal übernehmen und auf GCP verwenden. Beim Erstellen einer neuen Datalab-Instanz wählen Benutzer eine Speicherregion aus und werden möglicherweise aufgefordert, einen SSH-Schlüssel zu erstellen.

  • 01:50:00 Der Kursleiter zeigt, wie man eine Verbindung zu BigQuery herstellt und den wrangled Titanic-Datensatz in eine Cloud-Datalab-Instanz importiert. Durch den Import von BigQuery und die Herstellung einer Verbindung dazu können Benutzer SQL-Code schreiben, um Daten abzufragen. Mithilfe vorgefertigter Bibliotheken wie Pandas, Decision Tree Classifier und Train Test Split können Benutzer ihre Daten segmentieren, an ihre Trainingsdaten anpassen und ihr Modell bewerten. Darüber hinaus können Benutzer direkt in der Zelle Änderungen an ihrer Abfrage vornehmen und diese ausführen, um einen neuen Pandas-Datenrahmen zu erstellen, der den Datensatz aus der Abfrage enthält. Abschließend zeigt der Kursleiter, wie man mithilfe von BigQuery einen anderen Datensatz, den Iris-Datensatz, in die Cloud-Datalab-Instanz hochlädt und abfragt.

  • 01:55:00 Der Moderator zeigt, wie man Daten aus der BigQuery-Bibliothek in ein Jupyter-Notebook auf der Cloud-Plattform von Google importiert. Der Iris-Datensatz wird importiert und in Trainings- und Testsätze aufgeteilt, und für das Training wird ein Random-Forest-Klassifikator verwendet. Die vorhergesagten Werte werden für das Modell ausgegeben. Der Moderator zeigt außerdem, wie Sie die Ressourcen einer Cloud Data Lab-Instanz aktualisieren, indem Sie auf der Google-Startseite darauf zugreifen und auf „Bearbeiten“ klicken.

  • 02:00:00 Der Redner erklärt BigQuery ML, ein Tool, das es SQL-Anwendern ermöglicht, umfangreiche Modelle für maschinelles Lernen unter Verwendung bestehender SQL-Kenntnisse und -Tools zu erstellen und so maschinelles Lernen zu demokratisieren. BigQuery ML unterstützt derzeit drei Arten von Modellen: lineare Regression, binäre logistische Regression und logistische Regression mit mehreren Klassen. Der Referent erklärt außerdem, wie man in BigQuery mithilfe der SQL-Sprache ein binäres logistisches Regressionsmodell erstellt. Die Erstellung des Modells umfasst die Definition des Modells, die Angabe von Optionen und die Übergabe der Zielvariablen mithilfe von SQL-Anweisungen. Das Modell kann auch über SQL ausgewertet und Genauigkeitsmetriken dargestellt werden. Abschließend erklärt der Redner die Vorhersagephase, in der dem Modell neue Daten übergeben werden, die es noch nie zuvor gesehen hat.

  • 02:05:00 Der Redner erläutert, wie man mit BigQuery ML ein binäres Klassifizierungsmodell erstellt und auswertet. Die Daten werden aus einer CSV-Datei in BigQuery hochgeladen und dem Modell werden alle Spalten außer der Zielvariablen übergeben. Sobald die Auswertung abgeschlossen ist, macht das Modell eine Vorhersage für jedes Familienmitglied, wobei die erste Spalte in der Ausgabe das Überleben vorhersagt (eins für überlebt und null für nicht überlebt). Anschließend installiert der Redner das Befehlszeilentool namens gsutil, ein Befehlszeilentool für die Arbeit mit Google-Speicher auf der GCP. Das Tool bietet drei Speicherebenen mit unterschiedlicher Zugänglichkeit und Preisgestaltung.

  • 02:10:00 Der Referent zeigt, wie man mit gsutil Dateien in Google Cloud Storage hochlädt und verwaltet. Zunächst muss der Benutzer das Projekt so einrichten, dass es darin funktioniert, und mit gsutil mb einen Bucket erstellen. Dabei ist zu beachten, dass jeder Bucket-Name eindeutig sein muss. Anschließend erklärt der Referent, wie man eine Datei in einen Bucket kopiert und öffentlichen Zugriff darauf gewährt, indem man Zugriffskontrolllisten (ACLs) verwendet, um zu steuern, wer die Daten lesen und schreiben kann. Der Redner zeigt außerdem, wie man mit gsutil Dateien herunterlädt und in einen anderen Bucket kopiert und den Upload-Vorgang mithilfe des Schalters -m beschleunigt. Abschließend zeigt der Redner, wie man Daten aus einer relationalen Datenbank in zwei Dateien exportiert und sie mithilfe von Cloud Storage auf die GCP hochlädt.

  • 02:15:00 Der Redner zeigt, wie man zwei Datensätze in BigQuery der Google Cloud Platform hochlädt, sie mithilfe von SQL verbindet und eine Ansicht zum Erstellen von Modellen für maschinelles Lernen erstellt. Nachdem er Daten aus SQL Server exportiert und als CSV-Dateien gespeichert hat, lädt der Redner sie in den Cloud-Speicher-Bucket von GCP hoch, lädt sie in BigQuery herunter und kombiniert sie mithilfe einer einfachen Join-Anweisung. Abschließend zeigt der Referent, wie man eine Ansicht dieses größeren Datensatzes erstellt, um ihn in Modellen für maschinelles Lernen zu verwenden.

  • 02:20:00 Der Redner führt durch den Prozess der Erstellung einer Tabelle in Google BigQuery auf der Cloud-Plattform für den Datensatz ihres Titanic-Projekts. Sie laden den Datensatz von ihrer lokalen Quelle hoch, erkennen das Schema automatisch aus der CSV-Datei und überspringen die erste Zeile, da sie Header-Informationen enthält. Nach erfolgreicher Erstellung der Tabelle fragen sie diese ab und bestätigen, dass die Daten und Kopfzeilen korrekt angezeigt werden. Der Sprecher stellt fest, dass der Datensatz nun für die nächsten Schritte des Projekts bereit ist.
Machine Learning with BigQuery on Google's Cloud Platform
Machine Learning with BigQuery on Google's Cloud Platform
  • 2022.04.25
  • www.youtube.com
A complete look at BigQuery for machine learning.LogikBot - Affordable, Real-World and Comprehensive - https://www.logikbot.comThere are two core paths on Lo...