Ceci est le 4è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 Append. Ceci achève tout le prétraitement actuellement mis en œuvre.
Nous prévoyons de publier la version 1.2 avec un pré-traitement ajouté après GW, donc j'aimerais à nouveau écrire un article d'introduction à ce moment-là.
Article de sortie: https://qiita.com/shallowdf20/items/36727c9a18f5be365b37 document: https://shallowdf20.github.io/dataliner/preprocessing.html
! pip install -U dataliner
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 |
AppendAnomalyScore Isolation Forest est entraînée en fonction des données et le score des valeurs aberrantes est ajouté en tant que nouvelle quantité de caractéristiques. La complétion des valeurs manquantes et le traitement des variables catégorielles sont nécessaires avant utilisation.
trans = dl.AppendAnomalyScore()
process = make_pipeline(
dl.ImputeNaN(),
dl.RankedTargetMeanEncoding(),
trans
)
process.fit_transform(X, y)
PassengerId | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Cabin | Embarked | Anomaly_Score |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 3 | 640 | 2 | 22 | 1 | 0 | 141 | 7.250 | 144 | 3 | 0.04805 |
2 | 1 | 554 | 1 | 38 | 1 | 0 | 351 | 71.283 | 101 | 1 | -0.06340 |
3 | 3 | 717 | 1 | 26 | 0 | 0 | 278 | 7.925 | 144 | 3 | 0.04050 |
4 | 1 | 803 | 1 | 35 | 1 | 0 | 92 | 53.100 | 33 | 3 | -0.04854 |
5 | 3 | 602 | 2 | 35 | 0 | 0 | 113 | 8.050 | 144 | 3 | 0.06903 |
AppendCluster Les données sont regroupées avec KMeans ++ et, par conséquent, le numéro du cluster auquel chaque donnée appartient est ajouté en tant que nouvelle quantité de fonctionnalités. La complétion des valeurs manquantes et le traitement des variables catégorielles sont nécessaires avant utilisation. La mise à l'échelle est également recommandée.
trans = dl.AppendCluster()
process = make_pipeline(
dl.ImputeNaN(),
dl.RankedTargetMeanEncoding(),
dl.StandardScaling(),
trans
)
process.fit_transform(X, y)
PassengerId | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Cabin | Embarked | Cluster_Number |
---|---|---|---|---|---|---|---|---|---|---|---|
-1.729 | 0.8269 | 0.7538 | 0.7373 | -0.5921 | 0.4326 | -0.4734 | -0.8129 | -0.5022 | 0.4561 | 0.5856 | 5 |
-1.725 | -1.5652 | 0.4197 | -1.3548 | 0.6384 | 0.4326 | -0.4734 | 0.1102 | 0.7864 | -0.6156 | -1.9412 | 2 |
-1.721 | 0.8269 | 1.0530 | -1.3548 | -0.2845 | -0.4743 | -0.4734 | -0.2107 | -0.4886 | 0.4561 | 0.5856 | 4 |
-1.717 | -1.5652 | 1.3872 | -1.3548 | 0.4077 | 0.4326 | -0.4734 | -1.0282 | 0.4205 | -2.3103 | 0.5856 | 0 |
-1.714 | 0.8269 | 0.6062 | 0.7373 | 0.4077 | -0.4743 | -0.4734 | -0.9359 | -0.4861 | 0.4561 | 0.5856 | 5 |
AppendClusterDistance Les données sont regroupées avec KMeans ++ et, par conséquent, la distance entre chaque donnée et chaque cluster est ajoutée en tant que nouvelle quantité d'entités. La complétion des valeurs manquantes et le traitement des variables catégorielles sont nécessaires avant utilisation. La mise à l'échelle est également recommandée.
trans = dl.AppendClusterDistance()
process = make_pipeline(
dl.ImputeNaN(),
dl.RankedTargetMeanEncoding(),
dl.StandardScaling(),
trans
)
process.fit_transform(X, y)
PassengerId | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Cabin | Embarked | Cluster_Distance_0 | Cluster_Distance_1 | Cluster_Distance_2 | Cluster_Distance_3 | Cluster_Distance_4 | Cluster_Distance_5 | Cluster_Distance_6 | Cluster_Distance_7 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
-1.729 | 0.8269 | 0.7538 | 0.7373 | -0.5921 | 0.4326 | -0.4734 | -0.8129 | -0.5022 | 0.4561 | 0.5856 | 4.580 | 2.794 | 3.633 | 4.188 | 3.072 | 2.363 | 4.852 | 5.636 |
-1.725 | -1.5652 | 0.4197 | -1.3548 | 0.6384 | 0.4326 | -0.4734 | 0.1102 | 0.7864 | -0.6156 | -1.9412 | 3.434 | 4.637 | 3.374 | 4.852 | 3.675 | 4.619 | 6.044 | 3.965 |
-1.721 | 0.8269 | 1.0530 | -1.3548 | -0.2845 | -0.4743 | -0.4734 | -0.2107 | -0.4886 | 0.4561 | 0.5856 | 4.510 | 3.410 | 3.859 | 3.906 | 2.207 | 2.929 | 5.459 | 5.608 |
-1.717 | -1.5652 | 1.3872 | -1.3548 | 0.4077 | 0.4326 | -0.4734 | -1.0282 | 0.4205 | -2.3103 | 0.5856 | 2.604 | 5.312 | 4.063 | 5.250 | 4.322 | 4.842 | 6.495 | 4.479 |
-1.714 | 0.8269 | 0.6062 | 0.7373 | 0.4077 | -0.4743 | -0.4734 | -0.9359 | -0.4861 | 0.4561 | 0.5856 | 4.482 | 2.632 | 3.168 | 4.262 | 3.097 | 2.382 | 5.724 | 5.593 |
AppendPrincipalComponent Effectuez une analyse du composant principal sur les données et ajoutez le composant principal en tant que nouvelle quantité d'entités. La complétion des valeurs manquantes et le traitement des variables catégorielles sont nécessaires avant utilisation. La mise à l'échelle est également recommandée.
trans = dl.AppendPrincipalComponent()
process = make_pipeline(
dl.ImputeNaN(),
dl.RankedTargetMeanEncoding(),
dl.StandardScaling(),
trans
)
process.fit_transform(X, y)
PassengerId | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Cabin | Embarked | Principal_Component_0 | Principal_Component_1 | Principal_Component_2 | Principal_Component_3 | Principal_Component_4 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
-1.729 | 0.8269 | 0.7538 | 0.7373 | -0.5921 | 0.4326 | -0.4734 | -0.8129 | -0.5022 | 0.4561 | 0.5856 | -1.0239 | 0.1683 | 0.2723 | -0.7951 | -1.839 |
-1.725 | -1.5652 | 0.4197 | -1.3548 | 0.6384 | 0.4326 | -0.4734 | 0.1102 | 0.7864 | -0.6156 | -1.9412 | 2.2205 | 0.1572 | 1.3115 | -0.9589 | -1.246 |
-1.721 | 0.8269 | 1.0530 | -1.3548 | -0.2845 | -0.4743 | -0.4734 | -0.2107 | -0.4886 | 0.4561 | 0.5856 | -0.6973 | 0.2542 | 0.6843 | -0.5943 | -1.782 |
-1.717 | -1.5652 | 1.3872 | -1.3548 | 0.4077 | 0.4326 | -0.4734 | -1.0282 | 0.4205 | -2.3103 | 0.5856 | 2.7334 | 0.2536 | -0.2722 | -1.5439 | -1.530 |
-1.714 | 0.8269 | 0.6062 | 0.7373 | 0.4077 | -0.4743 | -0.4734 | -0.9359 | -0.4861 | 0.4561 | 0.5856 | -0.7770 | -0.7732 | 0.2852 | -0.9750 | -1.641 |
Présentation des éléments Append de DataLiner. À l'avenir, j'aimerais écrire un article d'introduction sur la fonction lors de la mise à jour de DataLiner.
Article sur la version Dataliner: https://qiita.com/shallowdf20/items/36727c9a18f5be365b37 Documentation: https://shallowdf20.github.io/dataliner/preprocessing.html GitHub: https://github.com/shallowdf20/dataliner PyPI: https://pypi.org/project/dataliner/
Recommended Posts