Bitte schauen Sie sich den vorherigen Inhalt an! https://qiita.com/lindq_yu/items/4f8e3e1d28df0c693d4f
Bestätigung der Art der Daten beim Engineering der Merkmalsmenge. Diese Daten sind PAY_AMT, BILL_AMT, AGE, LIMIT BAL sind numerische Daten Kategoriedaten für Sex, Ehe, Bildung PAY hat kategoriale Variablen wie revolvierende Zahlung, Zahlung war möglich und nicht möglich, während es numerische Werte mit fortlaufenden Werten wie 1 Monat, 2 Monate, 3 Monate usw. gibt.
Ich möchte diese Daten fest verarbeiten.
Es gibt verschiedene Methoden für das Feature-Quantity-Engineering kategorialer Variablen, es wird jedoch die typische One-Hot-Codierung verwendet.
In der Erklärung dieser Daten gibt es keine "0" -Daten in BILDUNG und EHE, aber sie befinden sich in diesem Datensatz. EDUCATION
5 und 6 sind unbekannt. Ursprünglich scheinen diese beiden bedeutungslos unbekannt zu sein. In geschäftlichen Situationen (ich weiß es nicht wirklich, weil ich Student bin ...) kann ich die für die Eingabe zuständige Person, den Fragebogenersteller und den Datensatzersteller fragen, aber diesmal weiß ich es nicht, daher füge ich Unbekanntes und "0" hinzu. Und mit anderen übereinstimmen (weil es nur 14 "0" -Daten gibt)
MARRIGE
Dieser Artikel hat auch 3 wie andere, was eine Frage ist, die Implikationen beinhalten kann. Normalerweise ist dies auch bei der verantwortlichen Person zu überprüfen, aber leider ist dies nicht möglich, sodass "0" in anderen enthalten ist.
Verarbeiten Sie den Datensatz basierend auf den oben genannten.
↓ Datensatzbeschreibung
python
#Datenextraktion
category=dataset.loc[:,["SEX","MARRIAGE","EDUCATION"]]
#Zählen der Anzahl der Auftritte von SEX
#print("SEX value count")
#print(category["SEX"].value_counts())
#print("")
#Zählen der Anzahl der Auftritte von EHE
#print("MARRIAGE value count")
#print(category["MARRIAGE"].value_counts())
#print("")
#Zählen der Anzahl der Auftritte von EDUCATION
#print("EDUCATION")
#print(category["EDUCATION"].value_counts())
#EHE"0" -unknown-Zu"3" -others-Umstellung auf
category["MARRIAGE"] = category["MARRIAGE"].replace(0,3)
#BILDUNG"0" -unknown- ,"5" -unknown- ,"6" -unknown-Zu"3" -others-Umstellung auf
category["EDUCATION"] = category["EDUCATION"].replace(0,4)
category["EDUCATION"] = category["EDUCATION"].replace(5,4)
category["EDUCATION"] = category["EDUCATION"].replace(6,4)
#Bestätigung der Kategorie
category
Klicken Sie hier für das konvertierte Ergebnis ↓
onehot_category Konvertieren Sie diese kategoriale Variable mit onehot_category in Daten.
python
from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(categories="auto", sparse=False, dtype=np.float32)
onehot_X = enc.fit_transform(category)
onehot_category= pd.DataFrame(data = onehot_X,columns = ["male","female","graduate school","university", "high school", "EDU-others","married", "single","MARR-others"])
onehot_category
Umbau abgeschlossen!
Numerische Daten sollten unberührt bleiben. Numerische Daten werden ebenfalls konvertiert, aber es gibt Modelle mit höherer Genauigkeit, wenn dies nicht der Fall ist. Lassen Sie es also vorerst.
PAY
--Revo count (Revo)
Erstellen Sie Variablen für die Anzahl der Revos (Revo), die Häufigkeit, mit der Sie erfolgreich bezahlt haben (Could), die Häufigkeit, mit der Sie nicht bezahlen konnten (Could nicht) und die Häufigkeit, mit der Sie nicht bezahlt haben (nicht). Beim fortlaufenden Wert wird 0 ersetzt, vorausgesetzt, es gibt keine Verzögerung in dem Monat, in dem die revolvierende Zahlung und die Zahlung ohne Zahlung geleistet wurden. Entworfen, so dass der verbleibende Wert die Anzahl der verspäteten Monate ist.
python
l = []
for i in range(1,7):
l.append("PAY_" + str(i))
PAY=dataset.loc[:,l]
PAY["Revo"] = PAY[PAY == 0].count(1)
PAY["Could"] = PAY[PAY == -1].count(1)
PAY["Not"] = PAY[PAY == -2].count(1)
PAY["Could not"] =6-PAY["Not"]-PAY["Could"]-PAY["Revo"]
for i in l:
PAY[i] = PAY[i].replace(-1,0)
PAY[i] = PAY[i].replace(-2,0)
Komplett!
Die erstellte Variable. Angepasste Variablen zusammenführen
python
#Numerische Daten
l = []
l.append("AGE")
l.append("LIMIT_BAL")
for i in range(1,7):
l.append("PAY_AMT" + str(i))
for i in range(1,7):
l.append("BILL_AMT" + str(i))
merge_data = dataset.loc[:,l]
#Kategoriedaten
merge_data = merge_data.join(onehot_category)
#PAY
merge_data = merge_data.join(PAY)
merge_data
Bisher haben wir Feature Quantity Engineering durchgeführt. Das nächste Mal möchte ich es in ein Modell für maschinelles Lernen einfügen!