首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >聚合一个热编码

聚合一个热编码
EN

Stack Overflow用户
提问于 2019-07-25 04:58:52
回答 3查看 663关注 0票数 1

我收集了每小时的天气预报数据。我收集的特征是数值的-‘温度’,‘降水’以及分类- 'weather_forecast‘(例如’晴天‘,’晴朗‘,’多云‘,’雨‘,’暴雨‘等)。我需要创建每日天气预报统计数据。而对于数字特征,则很容易(最小、最大、平均值、标准差等)我正在为如何处理分类数据而苦苦挣扎。我在考虑对每个小时的“weather_forecast”特征进行一次热编码,然后将这些值相加。

例如,对于以下数据:

代码语言:javascript
运行
复制
hour      weather_forecast
8:00         sunny
9:00         sunny
10:00        sunny
11:00        cloudy
12:00        rain
13:00        cloudy

在一个热编码中

代码语言:javascript
运行
复制
       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

我会得到像这样的统计数据

代码语言:javascript
运行
复制
sunny: 3
cloudy: 2
rain: 1

这可能会让我得到一天内天气的统计数据。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-07-25 05:21:09

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

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

票数 0
EN

Stack Overflow用户

发布于 2019-07-25 06:25:34

是的,这就是所谓的虚拟变量陷阱的问题,因为你必须删除1个虚拟变量列,例如,在这种情况下,你必须删除sunny列,以避免自己陷入虚拟变量陷阱

代码语言:javascript
运行
复制
#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
EN

Stack Overflow用户

发布于 2020-11-27 03:12:11

假设你的dataframe是一个pandas DF,那么试试这个

代码语言:javascript
运行
复制
df.sum()

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

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

希望这对你有所帮助,也是你想要的。让我知道

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57191157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档