Veuillez jeter un œil au contenu précédent! https://qiita.com/lindq_yu/items/4f8e3e1d28df0c693d4f
Confirmation de la nature des données lors de la conception de la quantité d'objets. Ces données sont PAY_AMT, BILL_AMT, AGE, LIMIT BAL sont des données numériques Données de catégorie pour SEXE, MARIAGE, ÉDUCATION PAY a des variables catégoriques telles que le paiement renouvelable, le paiement était possible et n'était pas possible, mais il existe des valeurs numériques dans lesquelles le mois de retard est de 1 mois, 2 mois, 3 mois, etc.
Je souhaite traiter ces données fermement.
Il existe plusieurs méthodes pour l'ingénierie de la quantité de caractéristiques des variables catégorielles, mais le codage One-hot typique est utilisé.
Dans l'explication de ces données, il n'y a pas de données «0» dans ÉDUCATION et MARIAGE, mais c'est dans cet ensemble de données. EDUCATION
5 et 6 sont inconnus. À l'origine, ces deux semblent avoir une signification inconnue. Pour les situations professionnelles (je ne sais pas vraiment parce que je suis étudiant ...), je peux demander à la personne en charge de la saisie, au créateur du questionnaire et au créateur du jeu de données, mais je ne sais pas cette fois, donc j'inclus unkown et "0". Et correspondre avec d'autres (car il n'y a que 14 "0" données)
MARRIGE
Cet item a également 3 comme autres, ce qui est une question qui peut inclure des implications. Normalement, c'est aussi quelque chose à vérifier avec le responsable, mais malheureusement cela ne peut pas être fait, donc "0" sera inclus dans les autres.
Traitez l'ensemble de données en fonction de ce qui précède.
↓ Description du jeu de données
python
#Extraction de données
category=dataset.loc[:,["SEX","MARRIAGE","EDUCATION"]]
#Compter le nombre d'apparitions de SEXE
#print("SEX value count")
#print(category["SEX"].value_counts())
#print("")
#Compter le nombre d'apparitions de MARIAGE
#print("MARRIAGE value count")
#print(category["MARRIAGE"].value_counts())
#print("")
#Compter le nombre d'apparitions de EDUCATION
#print("EDUCATION")
#print(category["EDUCATION"].value_counts())
#MARIAGE"0" -unknown-À"3" -others-Conversion en
category["MARRIAGE"] = category["MARRIAGE"].replace(0,3)
#ÉDUCATION"0" -unknown- ,"5" -unknown- ,"6" -unknown-À"3" -others-Conversion en
category["EDUCATION"] = category["EDUCATION"].replace(0,4)
category["EDUCATION"] = category["EDUCATION"].replace(5,4)
category["EDUCATION"] = category["EDUCATION"].replace(6,4)
#Confirmation de catégorie
category
Cliquez ici pour le résultat converti ↓
onehot_category Convertissez cette variable catégorielle en données à l'aide de onehot_category.
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
Conversion terminée!
Les données numériques ne doivent pas être modifiées. Les données numériques ont également une conversion, mais il existe des modèles avec une précision plus élevée si ce n'est pas le cas, alors laissez-le pour le moment.
PAY
--Revo count (Revo)
--Nombre de mois que vous ne pouvez pas payer
Créez des variables pour le nombre de revos (Revo), le nombre de fois que vous avez payé avec succès (pourrait), le nombre de fois que vous n'avez pas pu payer (impossible) et le nombre de fois que vous n'avez pas payé (pas) À la valeur continue, 0 est remplacé, en supposant qu'il n'y a pas de retard dans le mois où le paiement renouvelable et le paiement ont été effectués sans paiement. Conçu de sorte que la valeur restante soit le nombre de mois retardés.
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)
Achevée!
La variable créée. Fusionner les variables ajustées
python
#Donnees numeriques
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]
#Données de catégorie
merge_data = merge_data.join(onehot_category)
#PAY
merge_data = merge_data.join(PAY)
merge_data
Jusqu'à présent, nous avons fait de l'ingénierie de la quantité d'objets. La prochaine fois, j'aimerais le mettre dans un modèle d'apprentissage automatique!