分类特征的处理one

编程入门 行业动态 更新时间:2024-10-25 12:26:02

分类<a href=https://www.elefans.com/category/jswz/34/1769701.html style=特征的处理one"/>

分类特征的处理one

有的时候 分类特征是非数字型,比如是字符串类型,字符串类型是没办法直接丢给算法的,需要进行处理

one-hot 处理分类特征是常规的操作,sklearn的onehotEncoder 处理one-hot

pandas 的 get_dummies也可以处理one-hot,区别 是onehotEncoder 所有特征都会进行one-hot,get_dummies 只会处理非数值类型的特征

import pandas as pd  # 导入pandas库
from sklearn.preprocessing import OneHotEncoder  # 导入库
# 生成数据
df = pd.DataFrame({'id': [3566841, 6541227, 3512441],'sex': ['male', 'Female', 'Female'],'level': ['high', 'low', 'middle'],'score': [1, 2, 3]})
print(df)  # 打印输出原始数据框id     sex   level  score
0  3566841    male    high      1
1  6541227  Female     low      2
2  3512441  Female  middle      3
# 使用sklearn进行标志转换
# 拆分ID和数据列
id_data = df[['id']]  # 获得ID列
id_dataid
0	3566841
1	6541227
2	3512441raw_convert_data = df.iloc[:, 1:]  # 指定要转换的列
print(raw_convert_data)
'''sex   level  score
0    male    high      1
1  Female     low      2
2  Female  middle      3
'''
# 将数值型分类向量转换为标志变量
model_enc = OneHotEncoder()  # 建立标志转换模型对象(也称为哑编码对象)df_new2 = model_enc.fit_transform(raw_convert_data).toarray()  # 标志转换df_new2
输出结果
array([[0., 1., 1., 0., 0., 1., 0., 0.],[1., 0., 0., 1., 0., 0., 1., 0.],[1., 0., 0., 0., 1., 0., 0., 1.]])
# 合并数据
df_all = pd.concat((id_data, pd.DataFrame(df_new2)), axis=1)  # 重新组合为数据框
print(df_all)  # 打印输出转换后的数据框id    0    1    2    3    4    5    6    7
0  3566841  0.0  1.0  1.0  0.0  0.0  1.0  0.0  0.0
1  6541227  1.0  0.0  0.0  1.0  0.0  0.0  1.0  0.0
2  3512441  1.0  0.0  0.0  0.0  1.0  0.0  0.0  1.0

使用pandas的get_dummuies ,此方法只会对非数值类型的数据做转换

df_new3 = pd.get_dummies(raw_convert_data)
df_all2 = pd.concat((id_data, df_new3), axis=1)  # 重新组合为数据框
print(df_all2)  # 打印输出转换后的数据框id  score  sex_Female  sex_male  level_high  level_low  level_middle
0  3566841      1           0         1           1          0             0
1  6541227      2           1         0           0          1             0
2  3512441      3           1         0           0          0             1

 

 

更多推荐

分类特征的处理one

本文发布于:2024-02-27 04:52:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1705237.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:特征

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!