[PYTHON] Essayez de traiter les données Titanic avec la bibliothèque de prétraitement DataLiner (conversion)

introduction

Ceci est le troisième article qui présente chaque processus de la bibliothèque de prétraitement Python DataLiner. Cette fois, je voudrais vous présenter le système de conversion.

Article de sortie: https://qiita.com/shallowdf20/items/36727c9a18f5be365b37

Installation

! pip install -U dataliner

Préparation des données

Préparez les données du Titanic comme d'habitude.

import pandas as pd
import dataliner as dl

df = pd.read_csv('train.csv')
target_col = 'Survived'

X = df.drop(target_col, axis=1)
y = df[target_col]
PassengerId Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
1 3 Braund, Mr. Owen Harris male 22 1 0 A/5 21171 7.250 NaN S
2 1 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female 38 1 0 PC 17599 71.283 C85 C
3 3 Heikkinen, Miss. Laina female 26 0 0 STON/O2. 3101282 7.925 NaN S
4 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 0 113803 53.100 C123 S
5 3 Allen, Mr. William Henry male 35 0 0 373450 8.050 NaN S

StandardScaling / StandardizeData(deprecated) Convertit les données afin qu'elles aient une moyenne de 0 et une distribution de 1. Contrairement aux bibliothèques telles que Sklearn, même si une colonne de catégorie est incluse, seule la chaîne numérique est automatiquement déterminée et elle est renvoyée par pandas DataFrame, le traitement ultérieur est donc facile. Étant donné que StandardizeData a été renommé StandardScaling, un avertissement de dépréciation sera émis et il sera supprimé dans la version 1.3.0.

trans = dl.StandardScaling() 
Xt = trans.fit_transform(X)
PassengerId Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
-1.729 0.8269 Braund, Mr. Owen Harris male -0.5300 0.4326 -0.4734 A/5 21171 -0.5022 NaN S
-1.725 -1.5652 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female 0.5714 0.4326 -0.4734 PC 17599 0.7864 C85 C
-1.721 0.8269 Heikkinen, Miss. Laina female -0.2546 -0.4743 -0.4734 STON/O2. 3101282 -0.4886 NaN S
-1.717 -1.5652 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 0.3649 0.4326 -0.4734 113803 0.4205 C123 S
-1.714 0.8269 Allen, Mr. William Henry male 0.3649 -0.4743 -0.4734 373450 -0.4861 NaN S

MinMaxScaling Convertit les données pour qu'elles tiennent entre 0 et 1.

trans = dl.MinMaxScaling() 
Xt = trans.fit_transform(X)
PassengerId Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
0.000000 1 Braund, Mr. Owen Harris male 0.2712 0.125 0 A/5 21171 0.01415 NaN S
0.001124 0 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female 0.4722 0.125 0 PC 17599 0.13914 C85 C
0.002247 1 Heikkinen, Miss. Laina female 0.3214 0.000 0 STON/O2. 3101282 0.01547 NaN S
0.003371 0 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 0.4345 0.125 0 113803 0.10364 C123 S
0.004494 1 Allen, Mr. William Henry male 0.4345 0.000 0 373450 0.01571 NaN S

BinarizeNaN Recherche la colonne qui contient la valeur manquante et crée une nouvelle colonne binaire qui vous indique si la colonne était manquante.

trans = dl.BinarizeNaN() 
Xt = trans.fit_transform(X)
PassengerId Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked Age_NaNFlag Cabin_NaNFlag Embarked_NaNFlag
1 3 Braund, Mr. Owen Harris male 22 1 0 A/5 21171 7.250 NaN S 0 1 0
2 1 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female 38 1 0 PC 17599 71.283 C85 C 0 0 0
3 3 Heikkinen, Miss. Laina female 26 0 0 STON/O2. 3101282 7.925 NaN S 0 1 0
4 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 0 113803 53.100 C123 S 0 0 0
5 3 Allen, Mr. William Henry male 35 0 0 373450 8.050 NaN S 0 1 0

CountRowNaN Pour chaque point de données (ligne), comptez le nombre de valeurs manquantes incluses et ajoutez le total des valeurs manquantes en tant que nouvelle quantité d'entités.

trans = dl.CountRowNaN() 
Xt = trans.fit_transform(X)
PassengerId Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked NaN_Totals
1 3 Braund, Mr. Owen Harris male 22 1 0 A/5 21171 7.250 NaN S 1
2 1 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female 38 1 0 PC 17599 71.283 C85 C 0
3 3 Heikkinen, Miss. Laina female 26 0 0 STON/O2. 3101282 7.925 NaN S 1
4 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 0 113803 53.100 C123 S 0
5 3 Allen, Mr. William Henry male 35 0 0 373450 8.050 NaN S 1

ImputeNaN Complète les valeurs manquantes. Par défaut, la colonne numérique est complétée par la moyenne et la colonne catégorie est complétée par la valeur la plus fréquente. Il peut être modifié avec num_strategy et cat_strategy.

trans = dl.ImputeNaN() 
Xt = trans.fit_transform(X)
PassengerId Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
1 3 Braund, Mr. Owen Harris male 22 1 0 A/5 21171 7.250 B96 B98 S
2 1 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female 38 1 0 PC 17599 71.283 C85 C
3 3 Heikkinen, Miss. Laina female 26 0 0 STON/O2. 3101282 7.925 B96 B98 S
4 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 0 113803 53.100 C123 S
5 3 Allen, Mr. William Henry male 35 0 0 373450 8.050 B96 B98 S

ClipData Définissez la fraction X et remplacez les données au-dessus et en dessous de la limite supérieure par les limites supérieure et inférieure. Vous pouvez ajuster la quantité que vous souhaitez découper avec l'argument de seuil, qui est par défaut 1%: 99%.

trans = dl.ClipData() 
Xt = trans.fit_transform(X)
PassengerId Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
9.9 3 Braund, Mr. Owen Harris male 22 1 0 A/5 21171 7.250 NaN S
9.9 1 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female 38 1 0 PC 17599 71.283 C85 C
9.9 3 Heikkinen, Miss. Laina female 26 0 0 STON/O2. 3101282 7.925 NaN S
9.9 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 0 113803 53.100 C123 S
9.9 3 Allen, Mr. William Henry male 35 0 0 373450 8.050 NaN S

GroupRareCategory Dans les variables catégorielles, les catégories peu fréquentes sont collectivement remplacées par la chaîne "RareCategory". Aide à réduire la cardinalité. Il est efficace de l'utiliser avant d'appliquer OneHotEncoding. Avec l'argument de seuil, vous pouvez modifier le pourcentage ou moins du nombre de données à remplacer. La valeur par défaut est 1%.

trans = dl.GroupRareCategory() 
Xt = trans.fit_transform(X)
PassengerId Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
1 3 RareCategory male 22 1 0 RareCategory 7.250 NaN S
2 1 RareCategory female 38 1 0 RareCategory 71.283 RareCategory C
3 3 RareCategory female 26 0 0 RareCategory 7.925 NaN S
4 1 RareCategory female 35 1 0 RareCategory 53.100 RareCategory S
5 3 RareCategory male 35 0 0 RareCategory 8.050 NaN S

en conclusion

Donc, cette fois, j'ai présenté les éléments du système de conversion de DataLiner. Le prétraitement mis en œuvre à ce moment (ver.1.1.6) sera le dernier du système Append qui sera introduit la prochaine fois.

Article sur la version Dataliner: https://qiita.com/shallowdf20/items/36727c9a18f5be365b37 GitHub: https://github.com/shallowdf20/dataliner PyPI: https://pypi.org/project/dataliner/

Recommended Posts

Essayez de traiter les données Titanic avec la bibliothèque de prétraitement DataLiner (conversion)
Essayez de traiter les données Titanic avec la bibliothèque de prétraitement DataLiner (Append)
Essayez de traiter les données Titanic avec la bibliothèque de prétraitement DataLiner (encodage)
Essayez de traiter les données Titanic avec la bibliothèque de prétraitement DataLiner (Drop)
Essayez de convertir en données ordonnées avec les pandas
Essayez d'agréger les données de musique doujin avec des pandas
Essayez de défier le sol par récursif
[AWS] Essayez d'ajouter la bibliothèque Python à la couche avec SAM + Lambda (Python)
Essayez d'extraire la table de données d'Azure SQL Server avec pyodbc
Essayez d'acquérir des données lors de la redirection de port vers RDS avec anaconda.
Essayez d'extraire les caractéristiques des données de capteur avec CNN
Générer un code de correction d'erreur pour restaurer la corruption des données avec la bibliothèque zfec
Essayez de résoudre l'itinéraire le plus court avec les données sociales Python + NetworkX +
Essayez d'obtenir des métriques CloudWatch avec la source de données python re: dash
Essayez d'exploiter Facebook avec Python
Comment gérer les données déséquilibrées
Essayez de profiler avec ONNX Runtime
Essayez de mettre des données dans MongoDB
Comment augmenter les données avec PyTorch
Essayez de produire de l'audio avec M5 STACK
Essayez les données en parallèle avec TensorFlow distribué
Prétraitement dans l'apprentissage automatique 4 Conversion de données
[Mise à jour Ver1.3.1] J'ai créé une bibliothèque de prétraitement de données DataLiner pour l'apprentissage automatique
Essayez d'imaginer les données d'élévation du National Land Research Institute avec Python
Essayez de reproduire un film couleur avec Python
SIGNATURE Quête ① De la lecture des données au prétraitement
Essayez de vous connecter à qiita avec Python
Classification d'image avec Keras - Du prétraitement au test de classification -
Traiter les données Pubmed .xml avec python [Partie 2]
Essayez de travailler avec des données binaires en Python
Vérifiez les données brutes avec Kaggle's Titanic (Kaggle ⑥)
J'ai essayé l'analyse factorielle avec des données Titanic!
Convertir des données Excel en JSON avec python
Envoyer des données à l'API DRF avec Vue.js
Essayez de prédire les fleurs de cerisier avec XG Boost
Essayez rapidement de visualiser votre ensemble de données avec des pandas
Essayez le scraping HTML avec la bibliothèque Python
Premier YDK à essayer avec Cisco IOS-XE
Python: prétraitement dans l'apprentissage automatique: conversion de données
Essayez de générer une image avec aliénation
Comment lire les données de problème avec Paiza
Traitez le Big Data avec Dataflow (ApacheBeam) + Python3
Affichage des données d'informations de position en Python --Essayez de tracer avec la bibliothèque d'affichage de carte (folium) -