离散数据特征编码

离散特征的编码分为两种情况:

1、离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one-hot编码

pandas.get_dummies

例如:颜色(Red,Blue,Green)

处理函数:

get_dummies(data,prefix=None,prefix_sep="_",dummy_na=False,columns=None,drop_first=False)

① data   要处理的DataFrame
② prefix 列名的前缀,在多个列有相同的离散项时候使用
③ prefix_sep 前缀和离散值的分隔符,默认为下划线,默认即可
④ dummy_na 是否把NA值,作为一个离散值进行处理,默认为不处理
⑤ columns 要处理的列名,如果不指定该列,那么默认处理所有列

⑥ drop_first 是否从备选项中删除第一个,建模的时候为避免共线性使用 

使用pandas可以很方便的对离散型特征进行one-hot编码:

import pandas as pd

df = pd.DataFrame([
    ['green', 'M', 10.1, 'class1'],
    ['red', 'L', 13.5, 'class2'],
    ['blue', 'XL', 15.3, 'class1']])

df.columns = ['color', 'size', 'prize', 'class label']

size_mapping = {
    'XL': 3,
    'L': 2,
    'M': 1}
df['size'] = df['size'].map(size_mapping)

class_mapping = {label: idx for idx, label in enumerate(set(df['class label']))}
df['class label'] = df['class label'].map(class_mapping)

 

2、离散特征的取值有大小的意义,比如size:[X,XL,XXL],那么就使用数值的映射{X:1,XL:2,XXL:3}
离散特征的取值有大小意义的处理函数map
pandas.Series.map(dict)
参数 dict:映射的字典 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值