 Ich darf Sie herzlich willkommen heißen zu unseren Coding-Videos im Rahmen der Vorlesung Data Science. Wir beginnen hier mit einer ganz knappen und kurzen Wiederholung der linearen Regression. Und ich mache das deshalb, damit ich Ihnen die Grund herangehensweise, die wir bei den nächsten Modellen und Methoden kennenlernen werden, einmal schon mal gesehen haben. Sie sehen wie immer, wir haben unsere Lieblingspakete nam bei Panda, Smartplotlib und Seaborn. Und wir benutzen uns hier dem Skykit Learn, also SK Learn Package, um eben Ihnen auch zu zeigen, dass lineare Regression auch mit diesen Paketen möglich sind. Und ich werde Sie auch gleich einmal an den Sündtagsgewöhn, den wir auch in den anderen Code Snippe zu verwenden werden. Wir haben hier unten eine Matrix X, das ist einfach nur eine Zufallsmatrix gefüllt mit zufälligen Ganzzahlen und wir haben hier eine Tausend auf Tausender Matrix. Und ich habe Ihnen ja schon Skripte hochgeladen, wo Sie die NumPy und Pandas Methodik kennengelernt haben. Wir haben hier Y ist auch einfach eine Liste zwischen 0 und 1000, das heißt, diese Regression, die wir hier berechnen werden, ist jetzt nicht unbedingt auf echten Daten basiert, das kommt aber noch. Der Hauptpunkt, auf den ich hier heraus möchte, ist, dass wir hier unsere Daten künstlich erzeugen, nachdem wir hier oben unsere Pakete eben eingebunden haben. Und dem nächsten Schritt kommen wir zu dem Schritt, den ich in der Vorlesung, denke ich, sehr ausführlich erläutert habe, nämlich dem Aufteilen des Datensatzes in ein Test- und Trainingsdatenset. Und nachdem wir uns hier im Überwachten lernen befinden, teilen wir natürlich die Outputs ebenfalls auf. Und wir müssen das gar nicht selber machen. Von Skikit Learn gibt es hier eine sogenannte Model Selection Modularität, mit der wir hier dieses Train-Test- und Split-Modul einbinden können und das macht das für uns automatisch. Das heißt, wir sehen hier unten, dass wir eine Aufteilung unseres Datensatzes haben, den wir einfach festlegen können und wir können auch die Größe dieser Aufteilung beliebig festlegen. Ich habe jetzt hier einfach mal 30% angegeben, das können Sie natürlich abändern, wie es für Ihr Problem gerade nützlich ist. Als nächstes generieren wir daraus einfach mal einen Pandas DataFrame und sehen uns den an. Und als nächstes, was passiert jetzt hier? Wir implementieren ein lineares Regressionsmodell. Dieses lineare Regressionsmodell fitten wir mit den Trainingsdaten und dann lassen wir uns hier einfach mal die Achsensteigung und die Koeffizienten ausgeben. Und als nächstes erzeugen wir uns eine Koeffizientenmatrix, das heißt, wir machen einen DataFrame, wo eben diese Koeffizienten diese obigen gefitterten Regressionen enthalten sind. Und anschließend gehen wir her und sagen, okay, liebes Modell, machen wir mal eine Vorhersage auf Basis des Testsets und danach schauen wir uns den Verteilungplot an. Und zwar der Unterschiede zwischen den Testergebnissen und der Predictionen. Schauen uns das an und anschließend lassen wir uns mal noch ein paar Fehlermaße ausgeben, also den MeanAbsoluteError, MeanSquaredError und die Wurzel daraus, den RootMeanSquaredError. Und printen uns den ebenfalls und schauen uns den mal in Ruhe an. Warum mache ich das jetzt an generischen Daten fest? Warum eine lineare Regression? Die Antwort hierzu ist ganz einfach, weil sie sich das alles vorstellen können und weil wir das schon auf andere Art und Weise in einem Python Coding Video abgehandelt haben und ich denke, die meisten von Ihnen, die dieser Veranstaltung zu diesem Punkt gefolgt sind, werden wissen, was eine Regressionsgerade ist und wie das funktioniert. Ich bin der Meinung, wenn ich Ihnen das hier zeige, an einem linearen Regressionsmodell mit normal verteilten zufallsgezogenen Daten, dann können Sie das eher nachvollziehen, wie wenn ich Sie direkt in das kalte Wasser werfe und ich wiederhole nochmal, was wir machen. Wir binden hier oben unsere Pakete ein, wir erzeugen unsere zufallsgezogenen Zahlen, wir splitten diese zufallsgezogenen Zahlen, also unsere generischen Datensets, die wir hier oben hochgeladen haben oder erzeugt haben. Splitten wir in ein Trainings- und ein Testset, dann machen wir einen DataFrame draus, das heißt, wir schauen uns das Ganze mal an. Der interessante Teil passiert hier unten, wir erzeugen ein lineares Regressionsmodell, welches wir auf die Trainingsdaten fitten, lassen uns dann mal die Ergebnisse ausgeben, wir speichern die Koeffizienten hier von einfach mal in ein DataFrame, lassen uns dann Predictionen herausgeben, eben auf Basis des Testsets, lassen uns die Differenzen als Verteilungsplot anzeigen, das heißt, die Y-Test minus die Predictionen, schauen uns das an und am Ende betrachten wir uns noch einige Fehlermaße. Ich hätte gesagt, wir führen das hier jetzt einfach aus und Sie sehen, da passiert sehr viel auf einmal, weshalb ich als erstes einmal hier in der Konsole anfangen möchte. Sie sehen, wir haben hier ganz oben unseren DataFrame aus unseren X-Werten, das ist hier der Tausende auf Tausende DataFrames, Sie sehen es hier 9990 bis 9990, gefüllt von Zufallszahlen zwischen 0 und 500, die stehen hier alle drin, das können Sie sich in Ruhe mal ansehen. Und es kommt hier unten, hier unten kommen natürlich dann die Koeffizienten, das sind die beiden hier, das heißt, wir sehen einmal unseren Achsenabschnitt, das ist das hier oben und wir sehen hier unsere Regressionskoeffizienten, das sind die hier, die wir uns hier einfach mal ausgeben lassen und wir sehen natürlich hier unten unseren DataFrame, der die Regressionskoeffizienten ebenfalls enthält und wenn wir uns jetzt natürlich mit unserem Bild hier befassen, ich scroll mal nochmal weiter runter, das ist der Teil hier, dann sehen wir hier die Fehlerverteilung und zwar in der Abweichung der Testdaten minus der Prädiktionsdaten, dass jetzt hier natürlich eine, in etwa Normalverteilung rauskommt, ist zu erwarten gewesen, nachdem wir ja natürlich auch Normalverteile zu Zufallszahlen genommen haben. Es geht hier nur erstmal um die Systematik, dass Sie diese allein schon mal kennengelernt haben und wenn ich das jetzt schließe, sehen wir in der Konsole ganz hier unten nochmal eine Linie, in denen wir als erstes mal den absoluten Fehler bekommen, den mean absolute error, das sind die 427,58, die hier stehen, dann den quadrierten mean squared error, das sind die 278,827 und wenn wir daraus die Wurzel ziehen, kommen wir auf ein mean squared error, in der Wurzel, also root mean squared error von 528. So viel soll es erstmal zur Einführung gewesen sein, das ist einfach nur eine Wiederholung der linearen Regressionen, die Sie mit Skikid Learn implementieren können, das ist erstmal, dass Sie kennenlernen, wie funktioniert vor allem das hier oben, dass ich hier automatisiert mit Skikid Learn die Splits vornehmen kann, wie ich mein Testdatenset erzeugen kann, wie ich ein Modell fitte und wie ich mir die Ergebnisse anzeigen lassen kann und wir fahren im nächsten Video fort mit Support, Vektormachines, bis dahin alles Gute.