BDML Abschlussprojekt Arbeitsanweisung

BDML – Abschlussprojekt –
Infos zum Datensatz
Der Datensatz liegt in Ilias komprimiert als .zip vor.
Der Datensatz liegt doppelt in Ilias vor: Einmal komprimiert als .7z und ein weiteres Mal als .zip. Es ist nur notwendig einen von beiden herunterzuladen. Wer Probleme hat Ersteren zu entpacken, kann auf die .zip-Dateien zugreifen. Ansonsten unterschei- den sich die Ordner nicht. Entpacke die Daten in einen eigenen Ordner im gleichen Verzeichnis, in dem auch die Python-Skripte ausgefu ̈hrt werden sollen.
Der Datensatz entha ̈lt Beschleunigungsmessungen an Kugellagern
Fu ̈r jede Messung gibt es ein Verzeichnis Bearingx y, das einige CSV-Dateien acc #.csv
entha ̈lt, sowie eine Datei Bearingx y health state.csv .
In den CSV-Dateien acc #.csv sind horizontale und vertikale Beschleunigung, sowie
der Messzeitpunkt nach folgendem Schema erfasst:
Stunde Minute Sekunde Mikrosekunde (μs) Horiz. Beschl. Vert. Beschl. … … … … … …
In der CSV-Datei Bearingx y health state.csv ist der Verschleißzustand fu ̈r jede Datei acc #.csv angegeben. Diese werden wir als Label verwenden. Die Werte stehen dabei fu ̈r
0: Lager neu
1: Lager abgenutzt
2: Lager stark verschlissen
Alle Skripte und Notebooks mu ̈ssen kommentiert werden, um die Arbeitsschritte nachvoll- ziehen zu ko ̈nnen.
Insgesamt ko ̈nnen 100 Punkte erreicht werden.
程序代写 CS代考 加微信: cstutorcs
2.1 Aufgabe 1: Datensichtung und -vorverarbeitung (50 Punkte)
In dieser Aufgabe sollst du dich mit dem Datensatz vertraut machen. Speichere das verwen- dete Skript unter folgendem Namen: “datainspection vorname nachname.ipynb”
2.1.1 Datensichtung (13 Punkte)
• Lies mit Hilfe von Pandas 3 unterschiedliche Messreihen ein. Die erste Zeitreihe soll gema ̈ß der Tabelle Bearingx y health state.csv den Zustand 0 haben, die zweite Zeitreihe den Zustand 1 und die dritte Zeitreihe den Zustand 2. Erga ̈nze jeweils die oben beschriebenen Spaltennamen in den Dataframes.
• Enthalten die Daten fehlende Werte? Wenn ja, wie viele?
• Fu ̈lle die fehlenden Daten auf. Wa ̈hle hierbei eine fu ̈r Zeitreihendaten geeignete Me-
thode und erkla ̈re wieso diese gegenu ̈ber anderen Alternativen gewa ̈hlt wurde.
• Plotte die horizontale und vertikale Beschleunigungen u ̈ber den Zeitverlauf fu ̈r die 3 Datenreihen. Verwende jeweils Achsenbeschriftungen, eine Legende und einen Titel.
• Was fa ̈llt dir auf?
Tipp: Schreibe eine Funktion, die die einzelnen Zeitspalten zu einem datetime-Objekt zu- sammenfasst, um die Zeitdaten sinnvoll verwenden zu ko ̈nnen. Achte außerdem auf die Se- paratoren in den CSV-Dateien.
2.1.2 Visualisierung der Daten (14 Punkte)
Im folgenden soll das Vibrations-Verhalten in den Kugellagern u ̈ber den Zeitraum einer ganzen Messung untersucht werden:
• Lies fu ̈r ein Lager alle Beschleunigungsdaten ein.
• Erstelle anschließend ein Data Frame, welches die Mittelwerte und Standardabweichun- gen der horizontalen und vertikalen Beschleunigungen sowie das entsprechende Label aus Bearingx y health state.csv entha ̈lt. Pro Zeile im Data Frame sollen also die Features und das Label einer CSV acc #.csv enthalten sein. Fu ̈lle erneut fehlende Werte auf.
• Plotte anschließend die Mittelwerte und Standardabweichungen der horizontalen und vertikalen Beschleunigungen sowie das entsprechende Label u ̈ber dem Zeitverlauf. Erga ̈nze erneut Achsenbeschriftungen, eine Legende und einen Titel. Welche Tendenzen sind zu erkennen?
CS Help, Email: tutorcs@163.com
2.1.3 Erzeugung eines Datensatzes (23 Punkte)
• Erstelle nun einen Datensatz aus allen Messungen, der zum Modelltraining fu ̈r eine Klassifikation verwendet werden kann. Der Datensatz soll mehrere statistische Fea- tures fu ̈r beide Beschleunigungs-Zeitreihen enthalten. Hierzu za ̈hlen Maximum, Mini- mum, Standardabweichung, Median, unteres und oberes Quartil. Vor der Berechnung der Features fu ̈lle erneut fehlende Werte auf. Jede Zeile entspricht nun einer urspru ̈ng- lichen Messreihe. Benenne die neuen Spalten mit “a ver [feature name]” beziehungs- weise “a hor [feature name]”. Tipp: Die CSV-Dateien unterschiedlicher Lager haben teilweise unterschiedliche Seperatoren.
• Erga ̈nze in dem Dataframe fu ̈r jede Zeile den Zustand des Lagers basierend auf der Tabelle Bearingx y health state.csv als neue Spalte.
• Erzeuge mit Hilfe von Seaborn einen Pairplot der berechneten Features und fa ̈rbe die drei Lagerzusta ̈nde unterschiedlich ein. Aus Gru ̈nden der U ̈bersichtlichkeit, verwende in dem Pairplot nicht die berechneten Quantile.
• Welche Features eignen sich am schlechtesten fu ̈r die Klassifikation? Nenne zwei Fea- tures und erkla ̈re deine Wahl.
• Welche Features eignen sich am besten fu ̈r eine Klassifikation? Wa ̈hle zwei Features aus und begru ̈nde deine Wahl.
• One hot encode die Labels und entferne die ursru ̈nglichen Labels aus dem Datensatz.
• Speichere die Daten fu ̈r ein spa ̈teres Training als CSV-Datei ab. Bennene die Datei
“dataset”. Dieser Datensatz soll am Ende nicht mit geschickt werden!
2.2 Aufgabe 2: Training (50 Punkte)
In Aufgabe 2 sollen verschiedene Verfahren des Maschinellen Lernens auf den zuvor abge- speicherten Datensatz “dataset” angewendet werden. Speichere das Skript unter folgendem Namen: “train vorname nachname.ipynb”
2.2.1 Entscheidungsbaum (10 Punkte)
• Teile den Datensatz in einen Trainngs- und Testdatensatz auf. Verwende 75% der Daten fu ̈r den Trainingsdatensatz.
• Trainiere einen Entscheidungsbaum auf den zwei Features, die in Aufgabe 2.1.3 als die besten Features fu ̈r die Klassifikation gewa ̈hlt wurden.
• Berechne die Accuracy auf den Testdaten
• Plotte die Entscheidungsgrenzen des trainierten Klassifikators und erla ̈utere was auf dem Plot dargestellt wird.

2.2.2 Random Forest Klassifikator (11 Punkte)
Ein Random Forest Klassifikator besteht aus einer Menge von Entscheidungsba ̈umen, die auf zufa ̈lligen Teilmengen der Features im Datensatz trainiert werden. Jeder Baum innerhalb eines Random Forest Klassifikators gibt eine Vorhersage ab, und die endgu ̈ltige Vorhersage wird durch Mehrheitsabstimmung (Klassifikation) oder Durchschnitt der Einzelvorhersagen (Regression) getroffen.
• Welche Vor- und Nachteile ko ̈nnte ein Random Forest Klassifikator gegenu ̈ber einem einzigen Entscheidungsbaum haben? Nenne mindestens 2 Vor- und Nachteile und be- gru ̈nde jeden Punkt.
• Trainiere einen Random Forest Klassifikator mit sklearn. Verwende nun alle zuvor berechneten Features und teile die Daten erneut in einen Traings- und Testdatensatz auf.
• Berechne die Accuracy fu ̈r alle drei Klassen sowie die Accuracy, die Precision und den Recall fu ̈r jede der drei Klassen auf den Testdaten.
2.2.3 Hyperparameter-Optimierung (18 Punkte)
• Skaliere die Trainings- und Testdaten mit einem StandardScaler.
• Erkla ̈re warum beim Training vieler Modelle des Maschinelles Lernen die Skalierung der Daten notwendig ist? Nenne mindestens 2 Gru ̈nde. Wieso war die Skalierung der Daten bei der Anwendung des Random Forest und des Entscheidungsbaumes nicht notwendig?
• Fu ̈hrenuneinHyperparameter-Trainingdurch.Fu ̈reineSupportVectorMachinesollen mindestens 6 verschieden Kombination aus unterschiedlichen Werten fu ̈r den Hyper- parameter C und die Art des verwendeten Kernels ausgetestet werden. Tipp: sklearn hat eine eigene Klasse “GridSearchCV” fu ̈r die Hyperparameter-Optimierung imple- mentiert.
• Gebe die Hyperparameter und die Accuracy fu ̈r die Hyperparameter-Kombination aus, die die beste Accuracy lieferte.
• Erkla ̈re den Hyperparamter C. Warum ist dieser notwendig?
• Teste das gleiche Vorgehen nun auch mit einem MinMaxScaler anstatt einem Stan- dardScaler. Gemessen an der Accuracy auf dem Testdatensatz, welches Verfahren fu ̈r die Skalierung der Daten hat hier besser funktioniert?
Computer Science Tutoring
Neuronale Netze (11 Punkte)
Trainiere ein neuronales Netz mit Hilfe von Keras (nicht sklearn!). Verwende erneut eine Trainingsgro ̈ße von 75% der Daten und einen StandardSkaler. Erziele mindestens eine Accuracy von 80% auf dem Testdatensatz und ergreife in dem Training mindestens eine Maßnahme fu ̈r die Regularisierung.
Erkla ̈re die Bedeutung von Regularisierung sowie das verwendete Verfahren fu ̈r die Regularisierung.
3 Hinweise
Falls die Vorverarbeitung aller Daten rechnerisch zu aufwendig fu ̈r deinen Computer ist, ko ̈nnen alle Aufgaben auch mit weniger Messungen durchgefu ̈hrt werden. Allgemein emp- fiehlt es sich, alle Aufgaben und Vorverarbeitungsschritte zuna ̈chst nur an einem kleinen Teil des gesamten Datensatzes durchzufu ̈hren, um die korrekte Funktionalita ̈t zu testen, bevor der gesamte Datensatz genutzt wird.
Fu ̈r das Einlesen der Daten sollen relative Pfade anstatt absoluter Pfade verwendet werden, damit wir den Code nach der Abgabe ausfu ̈hren ko ̈nnen.
Die beiden Notebooks/Skripte mu ̈ssen allesamt in einem Ordner abgelegt werden, der nach dem Studierenden benannt ist (Name: “bdml abgabe vorname nachname”). Die gespeicher- ten und generierten Daten mu ̈ssen vorher entfernt werden. Es empfiehlt sich vor der Ab- gabe, den Code-Editor nochmals zu schließen und anschließend alle Skripte nochmals aus- zufu ̈hren. Bis zum 03.Ma ̈rz 2023, 23:59 Uhr MEZ sollen die Skripte als .zip-Datei an versendet werden. Wir versenden danach so schnell wie mo ̈glich eine Empfangsbesta ̈tigung.
Falls es Probleme mit Paketen, Python-Installationen oder sonstige Unklarheiten gibt, melde dich bitte fru ̈hzeitig per Mail an uns.
5 Benotung
Die Benotung ha ̈ngt von dem jeweiligen Studiengang ab. Wenn die Vorlesung BDML als fachaffinen SQ-Lehrveranstaltungen in das Studium eingebracht wird, dann wird die Abgabe benotet. Dies ist beispielsweise bei dem Studiengang Maschinenbau der Fall.
Andernfalls wird in Abha ̈ngigkeit der erreichten Punkte nur zwischen bestanden und nicht bestanden unterschieden. Hierzu za ̈hlt beispielsweise der Studiengang Autonome Systeme.
Viel Erfolg!