Encodage one-hot
Fait partie de la section Statistiques pour le ML du Journey Machine Learning de Coddy. Leçon 53 sur 64.
Les instruments n’ont pas d’ordre : numérotés 1, 2, 3, le piano serait considéré comme supérieur à la batterie. L’encodage one-hot attribue plutôt à chaque catégorie sa propre colonne de 0/1 :
pd.get_dummies s’en charge, et dtype=int demande des 1 et des 0 au lieu de True et False :
pupils = pd.DataFrame({"instrument": ["piano", "drums", "piano", "cello"],
"weeks": [4, 3, 6, 10]})
encoded = pd.get_dummies(pupils, columns=["instrument"], dtype=int)
print(encoded)Ceci affiche :
weeks instrument_cello instrument_drums instrument_piano
0 4 0 0 1
1 3 0 1 0
2 6 0 0 1
3 10 1 0 0Les nouvelles colonnes s'ajoutent à la fin, une par valeur dans l'ordre alphabétique. Le coût est la largeur : 500 valeurs différentes ajouteraient 500 colonnes.
Défi
MoyenUn site de vacances répertorie des cabanes dans cabins.csv. Le programme lit un nom de colonne, area ou heat. Le code de départ lui attribue des nombres pour établir une corrélation avec le prix, mais aucune des deux colonnes n’a d’ordre : cette corrélation est artificielle.
- Remplace ses lignes : encode la colonne en one-hot (0 et 1).
- Affiche le nombre de colonnes obtenues, puis chaque nouvelle colonne avec son nombre de 1.
Pour cinq cabanes et l’entrée heat :
heat became 2 columns:
heat_gas: 3 cabins
heat_wood: 2 cabinsEssayez vous-même
import pandas as pd
cabins = pd.read_csv("cabins.csv")
column = input()
# Écrivez votre code ci-dessous
# Ces lignes attribuent des numéros aux zones et aux types de chauffage, alors qu’ils n’ont pas d’ordre naturel : remplacez-les
numbers = {"coast": 1, "hills": 2, "lake": 3, "woods": 4, "gas": 1, "solar": 2, "wood": 3}
cabins[column] = cabins[column].map(numbers)
print(f"{column} against price: r = {round(cabins[column].corr(cabins['price']), 2)}")
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Statistiques pour le ML
1Centre et dispersion
Moyenne et médianePercentiles et quartilesVariance et écart-typeÉchantillon ou population ?La valeur la plus fréquenteRécapitulatif : délais de livraison4Échantillons et populations
Population et échantillonLes moyennes d’échantillon varientLa distribution d’échantillonnageDes échantillons plus grands, moins de bruitRécapitulatif : sonder une ville7Droites de tendance
RésidusAjustement par les moindres carrésTracer la droite d’ajustementPrédire avec une droiteQualité de l’ajustementRécapitulatif : heures de pratique10Encodage des catégories
Les catégories sous forme de nombresEncodage one-hotRegrouper les nombres en intervallesRécapitulatif : annonces de voitures2Distributions
Histogrammes de densitéFormes des donnéesLa courbe normaleLa règle des 68-95-99,7Scores zRécapitulatif : autonomie de la batterie5Valeurs aberrantes
Diagrammes en boîteLa règle de l’écart interquartileLa règle du score ZTraiter les valeurs aberrantesRécapitulatif : anomalies des capteurs3Les probabilités par simulation
La probabilité comme fréquenceLa loi des grands nombresSommes de désEspérance mathématiqueProbabilité conditionnelleRécapitulatif : les chances au stand de dés6Relations
Lire des nuages de pointsCorrélationMatrice de corrélationCartes thermiques de corrélationCorrélation n’est pas causalitéRécapitulatif : glace et soleil9Mise à l’échelle des caractéristiques
Pourquoi mettre les caractéristiques à l’échelleMise à l’échelle Min-MaxStandardisationStandardScalerRécapitulatif : partenaires d’escaladeEntraînez-vous par vous-même : Compilateur Python en ligne