sklearn 处理文本和分类属性[LabelBinarizer, LabelEncoder,OneHotEncoder]

本文介绍了如何利用sklearn的LabelBinarizer, LabelEncoder和OneHotEncoder将文本和分类属性转换为数值特征,以便于机器学习算法处理。LabelEncoder将文本转化为离散数值,OneHotEncoder进一步将其转化为one-hot编码,而LabelBinarizer则一步完成这两个过程。通过示例展示了这些编码器的工作原理和输出格式。" 100098643,8745291,SAP ABAP中实现屏幕分割与文本编辑,"['SAP开发', 'ABAP编程', 'GUI组件']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sklearn 利用LabelBinarizer, LabelEncoder,OneHotEncoder来处理文本和分类属性

对于分类和文本属性,需要将其转换为离散的数值特征才能喂给机器学习算法,常用的是转化为 one-hot编码格式。

df = pd.DataFrame({
    
    'ocean_proximity':["<1H OCEAN","<1H OCEAN","NEAR OCEAN","INLAND", "<1H OCEAN", "INLAND"],
                  'population': [339.0, 113.0, 462.0, 353.9,1463.9, 570.0]})
1. LabelEncoder

将文本属性转化为离散的数值属性

from sklearn.preprocessing import LabelEncoder
encoder = LabelEncoder()
df_cat = df["ocean_proximity"]
df_cat_encoder = encoder.fit_transform(housing_cat)
df_cat_encoder

out: 返回的是一个numpy的数组

array([0, 0, 2, 1, 0, 1], dtype=int64)

可以使用encoder.classes_来查看类别

encoder.classes_

out:

array([’<1H OCEAN’, ‘INLAND’, ‘NEAR OCEAN’], dtype=object)

注意:
机器学习算法通常认为两个相差较小的值要比两个相差较大的值更相似,但是 0和2(<1H OCEAN 和 NEAR OCEAN )要比0和1(<1H OCEAN 和 INLAND)更相似,为解决这个问题,采用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值