1
votes

Encodage à chaud agrégé

J'ai collecté des données heure par heure sur les prévisions météorologiques. Les caractéristiques que j'ai collectées sont numériques - «température», «précipitations» ainsi que catégoriques - «weather_forecast» (par exemple «ensoleillé», «passable», «nuageux», «pluie», «forte pluie», etc.). J'ai besoin de créer des statistiques météorologiques quotidiennes. Alors que pour la fonctionnalité numérique, c'est facile (min, max, moyenne, std, etc.), je me demande un peu quoi faire avec les données catégorielles. Je pensais à un encodage à chaud pour la fonctionnalité «weather_forecast» pour chaque heure, puis à la somme de ces valeurs.

Par exemple, pour les données suivantes:

sunny: 3
cloudy: 2
rain: 1

dans un encodage à chaud

       sunny     cloudy     rain
8:00      1         0         0
9:00      1         0         0
10:00     1         0         0
11:00     0         1         0
12:00     0         0         1
13:00     0         1         0

J'obtiendrais des statistiques comme

hour      weather_forecast
8:00         sunny
9:00         sunny
10:00        sunny
11:00        cloudy
12:00        rain
13:00        cloudy

ce qui pourrait me donner des statistiques agrégées sur la météo au cours d'une journée.

Je me demande s'il y a des pièges / problèmes avec cette approche ou des choses dont il faut être conscient. Cet encodage a-t-il un nom (je ne l'ai pas trouvé sur le Web).


2 commentaires

Je ne suis pas sûr de ce que vous entendez par «encodage»: vous n'avez pas encodé les données, vous les avez résumées. Vous pouvez le faire aussi facilement en comptant simplement les occurrences dans la colonne weather_forecast .


Ce que je veux dire par encodage, c'est que j'ai encodé des valeurs catégorielles en fonctionnalités, puis je les ai résumées. Si je comptais simplement les occurrences dans la colonne weather_forecast, comme vous l'avez suggéré, je devrais transformer (encoder) ces informations en fonctionnalités d'une manière ou d'une autre pour obtenir mes statistiques météorologiques quotidiennes.


3 Réponses :


0
votes

Votre encodage s'est terminé lorsque vous avez appliqué un encodage one-hot à weather_forecast. Sums ne vous montre que le nombre d'heures où le temps était ensoleillé, nuageux, etc.

Si vous divisez vos statistiques en nombre total d'heures, vous recevrez des pourcentages de types de temps au cours d'une période, un jour par exemple. Rien de spécial je pense.


0 commentaires

0
votes

Oui, il y a un problème dans ce qui est appelé piège à variable fictive pour que vous devez supprimer la colonne de variable fictive 1, par exemple dans ce cas, vous devez supprimer la colonne ensoleillée pour vous éviter de piège à variable fictive

#creating dummies of independent variables
onehotencoder = OneHotEncoder(categorical_features = [3])
X = onehotencoder.fit_transform(X).toarray()

#avoiding dummy variable trap
#to avoid redundant data but the python libraries are taking care of it but sometimes 
you have to manually remove it
X = X[:, 1:] 


0 commentaires

0
votes

En supposant que votre dataframe est un pandas DF, essayez ceci

df.sum()

Cela devrait donner la somme de toutes les colonnes de l'ensemble de données qui devrait vous donner le résultat que vous attendez.

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sum.html


0 commentaires