Zusammenfassungen der Kaggle-Module
Contents
Zusammenfassungen der Kaggle-Module#
Die vorliegende Seite fasst die Themen der von uns bearbeiteten Kaggle-Module (intro to ml, missing values etc.) sehr knapp zusammen.
Verwendung für das eigene Lernen? Für jedes Kaggle-Modul:
Schritt 1: Gehen Sie zuerst das entsprechende Kaggle-Modul durch:
incl. Übungsteil
Lernen Sie den Inhalt, machen Sie sich Notizen.
Schritt 2: Gehen Sie dann diese Zusammenfassung durch:
Legen Sie ein neues, eigenes Notebook an.
Programmieren Sie die einzelnen Schritte.
Dokumentieren Sie Ihre Arbeit: Verlinken Sie jedes interessante Konzept in die Original-Dokumentation
Recherchieren Sie, welche alternative Codierung ebenfalls zum Ziel geführt hätte. (Oft gibt es unterschiedliche Lösungen für Pandas und für Numpy).
Je weniger Sie in Schritt 2 durch paste & copy erledigen, und je mehr Sie selbstständig machen, desto größer wird ihr Lernerfolg sein.
Zusammenfassung: Python#
Weil das für alle dsci-Veranstaltungen interessant ist die Zusammenfassung nicht hier, sondern im dsci-lab: http://jbusse.de/dsci-lab/t_kaggle-intro-python.html
TBD
Zusammenfassung: intro to ml#
Kaggle-Modul: KL > Intro to Machine Learning
melbourne_file_path = '../input/melbourne-housing-snapshot/melb_data.csv'
Dataset einlesen: read_csv
anschauen: head, describe
missing values:
entdecken
radikal: Zeilen löschen
besser (siehe IntermediateMachineLearning): imputieren, z.B. mit dem Durchschnitt oder dem Median
fit und test auf dem Training-Set (böse!):
Daten in Target Series
y
und DataFrameX
trennenmodel.fit(X, y)
Prädiktion für die ersten 5 Häuser erstellen; vergleichen mit dem faktischen Wert
Besser: fit und test auf getrennten Teilen des Datensatzes
train_X, val_X, train_y, val_y = train_test_split(X, y)
model.fit(train_X, train_y)
MAE, accuracy?
Hyperparamater tunen, hier: Anzahl der Blätter im DecisionTreeRegressor: irgendwann tritt overfitting auf!
Intermediate Machine Learning#
Kaggle-Modul: KL > Intermediate Machine Learning
Daten laden: read_csv; (auch Doku lesen und ausprobieren: gezippte Datei lesen, Excel lesen, eine bestimmte Tabelle aus einem Excel-Sheet auswählen), Quelle: ‘../input/home-data-for-ml-course/train.csv’ und ‘../input/home-data-for-ml-course/test.csv’.
Der SalePrice soll ermittelt werden: Das wird y
.
Aufteilen auf X
und y
: df.drop()
; auch probieren df.pop(item)
?
reak off validation set from training data: train_test_split()
Welchen Datentyp hat X_train, y_train? Was ist der Unterschied zwischen pandas.core.frame.DataFrame und pandas.core.frame.Series?
Missing Values#
komplette Zeile löschen mit dropna: ist im Train-Datensatz ok für solche Zeilen, die das Target nicht enthalten - denn mit denen können wir gar nichts anfangen
komplette Spalte löschen?
cols_with_missing = [col for col in X_train.columns if X_train[col].isnull().any()]
: Im Detail erklären können!
Der SimpleImputer wird genauso eingesetzt wie ein Modell-Generator:
Doku anschauen: https://scikit-learn.org/stable/modules/generated/sklearn.impute.SimpleImputer.html
erklären können: Welcher Wert wird eingesetzt?
Achtung: der SimpleImputer arbeitet nicht im Pandas-Kontext, sondern im Numpy-Kontext. Sich klar machen: Unterschied Pandas- und Numpy-Kontext
kategoriale Variablen#
(NB: Vorsicht falscher Freund: EN “categorical” heißt auf de DE kategorial, nicht kategorisch)
Select numerical columns
Select categorical columns
with relatively low cardinality (convenient but arbitrary)
Apply one-hot encoder to each column with categorical data … in X
, nicht in y
Unterschied label_encoder (https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html) und OneHotEncoder (https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html)?
Unterschied OneHotEncoder und OrdinalEncoder
für
y
: “Note: a one-hot encoding of y labels should use a LabelBinarizer instead.”Diskussion: Eine kategoriale Spalte habe n Ausprägungen: Warum sollten der OneHotEncoder nur n-1 Spalten anlegen?
Pipelines#
Eher komplex für Einsteiger, eher für Fortgeschrittene. Gut zu wissen, was Pipelines machen, aber aktiv nutzen erst im zweiten Durchgang dieses Kurses.
Cross Validation#
Muss man kennen, Standard. Hier eher knappe Erklärung, aber Anwendung einer Pipeline:
Conclusion: Using cross-validation yields a much better measure of model quality, with the added benefit of cleaning up our code: note that we no longer need to keep track of separate training and validation sets. So, especially for small datasets, it’s a good improvement!