我收集了每小时的天气预报数据。我收集的特征是数值的-‘温度’,‘降水’以及分类- 'weather_forecast‘(例如’晴天‘,’晴朗‘,’多云‘,’雨‘,’暴雨‘等)。我需要创建每日天气预报统计数据。而对于数字特征,则很容易(最小、最大、平均值、标准差等)我正在为如何处理分类数据而苦苦挣扎。我在考虑对每个小时的“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这可能会让我得到一天内天气的统计数据。
我想知道这种方法是否有任何陷阱/问题或需要注意的事情。这个编码有名字吗(我在网上找不到)。
发布于 2019-07-25 05:21:09
当您对weather_forecast应用one-hot编码时,您的编码已完成。Sums向您显示晴天、多云等天气时的小时数。
如果您将统计数据划分为总小时数,您将收到一段时间内天气类型的百分比,例如一天。我觉得没什么特别的问题。
发布于 2019-07-25 06:25:34
是的,这就是所谓的虚拟变量陷阱的问题,因为你必须删除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:] 发布于 2020-11-27 03:12:11
假设你的dataframe是一个pandas DF,那么试试这个
df.sum()这应该会给出数据集的所有列的总和,这应该会给出您所期望的结果。
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sum.html
希望这对你有所帮助,也是你想要的。让我知道
https://stackoverflow.com/questions/57191157
复制相似问题