聚合一热编码
Aggregated one hot encoding
我收集了有关天气预报的每小时数据。我收集的特征是数值特征 - 'temperature'、'precipitation' 以及分类特征 - 'weather_forecast'(例如 'sunny'、'fair'、'cloudy'、'rain'、'heavy rain' 等)。
我需要创建每日天气预报统计数据。虽然对于数值特征来说很容易(最小值、最大值、平均值、标准差等),但我在处理分类数据时遇到了一些困难。
我正在考虑每小时对 '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
这可能会让我获得有关一天中天气的汇总统计数据。
我想知道这种方法是否有任何pitfalls/issues或需要注意的事项。这个编码有名字吗(网上没找到)
当您将单热编码应用于 weather_forecast 时,您的编码已完成。总和显示天气晴朗、多云等时的小时数。
如果您将统计数据除以总小时数,您将获得某个时间段(例如一天)内天气类型的百分比。我觉得没什么特别的问题。
是的,这里有一个问题,称为虚拟变量陷阱,因为您必须删除 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:]
假设您的数据框是 pandas DF,然后试试这个
df.sum()
这应该给出数据集所有列的总和,这应该会给您预期的结果。
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sum.html
希望这对您有所帮助,是您正在寻找的。让我知道
我收集了有关天气预报的每小时数据。我收集的特征是数值特征 - 'temperature'、'precipitation' 以及分类特征 - 'weather_forecast'(例如 'sunny'、'fair'、'cloudy'、'rain'、'heavy rain' 等)。 我需要创建每日天气预报统计数据。虽然对于数值特征来说很容易(最小值、最大值、平均值、标准差等),但我在处理分类数据时遇到了一些困难。 我正在考虑每小时对 '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
这可能会让我获得有关一天中天气的汇总统计数据。
我想知道这种方法是否有任何pitfalls/issues或需要注意的事项。这个编码有名字吗(网上没找到)
当您将单热编码应用于 weather_forecast 时,您的编码已完成。总和显示天气晴朗、多云等时的小时数。
如果您将统计数据除以总小时数,您将获得某个时间段(例如一天)内天气类型的百分比。我觉得没什么特别的问题。
是的,这里有一个问题,称为虚拟变量陷阱,因为您必须删除 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:]
假设您的数据框是 pandas DF,然后试试这个
df.sum()
这应该给出数据集所有列的总和,这应该会给您预期的结果。
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sum.html
希望这对您有所帮助,是您正在寻找的。让我知道