Kaggle Kondensat

intro to ml

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 DataFrame X trennen

  • model.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

Daten laden: read_csv; (auch Doku lesen und ausprobieren: gezippte Datei lesen, Excel lesen, eine bestimmte Tabelle aus einem Excel-Sheet auswählen)

Aufteilen auf X und y: df.drop(); auch probieren df.pop(item)?

alternativ train_test_split()

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!

SimpleImputer: Wird genauso eingesetzt wie ein Modell-Generator:

  • Erklären können!

  • arbeitet nicht auf Pandas-Ebene, sondern auf Numpy-Ebene

kategoriale Variablen

(NB: Es heißt DE: kategorial, nicht kategorisch), in EN: categorical)

  • Select numerical columns

  • Select categorical columns

    • with relatively low cardinality (convenient but arbitrary)

Apply one-hot encoder to each column with categorical data

  • Unterschied label_encoder und OneHotEncoder?

  • wo anwenden: target? auch unabhängige Variable?

  • Diskussion: Eine kategoriale Spalte habe n Ausprägungen: Warum sollten der OneHotEncoder nur n-1 Spalten anlegen?