Hier ist die Ausgabe von colSums(is.na(dati_train)) , zeigt die Anzahl der fehlenden Werte pro Spalte an:
Code: Select all
> colSums(is.na(dati_train)) # Number of NAs per column
PAID POINT_OF_SALE EVENT_ID YEAR
0 0 0 0
MONTH N_SUBSCRIPTIONS PRICE PHONE_NUMBER
0 0 0 0
PROP_CONBINI PAYMENT_TYPE FAV_GENRE AGE
0 0 967 1723
DAYS_FROM_PROMO BOOKS_PAID N_TRANSACTIONS N_ITEMS
0 5574 5574 0
DATE_LAST_PURCHASE CUSTOMER_SINCE MAIL SUBSCR_CANC
5574 5574 0 0
MARGIN
5574
>
- Für „FAV_GENRE“ und „AGE“ : Da die Anzahl der fehlenden Werte relativ gering ist, denke ich darüber nach, sie durch Mehrfachimputation zu ergänzen.
- < stark>Für die anderen Variablen: Die fehlenden Werte werden systematisch auf sie verteilt, so dachte ich von:
- Erstellen einer neuen binären Flag-Variablen, um anzuzeigen, ob der Wert fehlt oder nicht.
- Logistische Regression trainieren und LDA-Modelle, einschließlich dieser Flags als Features. Ich habe gelesen, dass dies eine gängige Praxis ist, aber ich habe es noch nie zuvor gemacht.
- Verwendung baumbasierter Modelle wie Random Forest und XGBoost: Ich weiß, dass diese Modelle mit fehlenden Werten umgehen können, aber ich habe in diesen Algorithmen noch nie mit fehlenden Daten gearbeitet. Gibt es Best Practices, die ich befolgen sollte?
Lassen Sie mich wissen, was Sie denken – vielen Dank im Voraus!