Python | One-Hot Encoding (独热编码)
独热编码(One-Hot Encoding),又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。即,只有一位是1,其余都是零值。独热编码 是利用0和1表示一些参数,使用N位状态寄存器来对N个状态进行编码。
地区特征:["北京","上海,"深圳"](这里N=3,三维数据):
北京 => 100
上海 => 010
深圳 => 001
在回归,分类,聚类等机器学习算法中,特征之间距离的计算或相似度的计算是非常重要的。而常用的距离或相似度的计算都是在欧式空间的相似度计算,计算余弦相似性,基于的就是欧式空间。
使用独热编码(One-Hot Encoding),将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点。将离散型特征使用独热编码(One-Hot Encoding),会让特征之间的距离计算更加合理。
OneHotEncoder
和get_dummies
都是将分类变量(categorical features)转化为数字变量(numerical features)的方法。
OneHotEncoder 来自于sklearn。
from sklearn.preprocessing import OneHotEncoder
get_dummies来自于Pandas。
import Pandas as pd
B = ['bird','cat','dog', 'cat', 'bird', 'bird']
d = {'categorical': B}
df = pd.DataFrame(d)
print(df)
categorical
0 bird
1 cat
2 dog
3 cat
4 bird
5 bird
dfDummies = pd.get_dummies(df['categorical'], prefix = 'category')
print(dfDummies)
category_bird category_cat category_dog
0 1 0 0
1 0 1 0
2 0 0 1
3 0 1 0
4 1 0 0
5 1 0 0
print(dfDummies.values)
[[1 0 0]
[0 1 0]
[0 0 1]
[0 1 0]
[1 0 0]
[1 0 0]]
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
2023-02-28 Python 之 lambda 函数