1

我收集了有关天气预报的每小时数据。我收集的特征是数字的——“温度”、“降水”以及分类的——“天气预报”(例如“晴天”、“晴天”、“多云”、“雨”、“大雨”等)。我需要创建每日天气预报统计数据。虽然对于数值特征很容易(最小值、最大值、平均值、标准等),但我正在努力处理分类数据。我正在考虑每小时对“weather_forecast”功能进行一次热编码,然后将这些值加在一起。

例如,对于以下数据:

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

在一次热编码中

       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

我会得到类似的统计数据

sunny: 3
cloudy: 2
rain: 1

这可能会让我获得关于一天中天气的汇总统计数据。

我想知道这种方法是否存在任何陷阱/问题或需要注意的事项。这种编码有名字吗(我在网上找不到)。

4

3 回答 3

0

当您将 one-hot 编码应用于 weather_forecast 时,您的编码完成。Sums 仅显示天气晴朗、多云等时的小时数。

如果您将统计数据除以总小时数,您将收到一段时间内天气类型的百分比,例如一天。我认为没有什么特别的问题。

于 2019-07-24T21:21:08.657 回答
0

是的,这有一个问题,称为虚拟变量陷阱,因为您必须删除 1 个虚拟变量列,例如在这种情况下,您必须删除 Sunny 列以避免自己进入虚拟变量陷阱

#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:] 
于 2019-07-24T22:25:33.570 回答
0

假设您的数据框是熊猫 DF,那么试试这个

df.sum()

这应该给出数据集所有列的总和,这应该给你你期望的结果。

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

希望这对您有所帮助以及您正在寻找的东西。让我知道

于 2020-11-26T19:12:10.527 回答