如何对连续型数据进行离散化处理,并进行OneHot编码?

如何对连续型数据进行离散化处理,并进行OneHot编码,最终将OneHot编码作为特征因子输入模型?

什么是OneHot编码

One-Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值。然后,每个整数值被表示为二进制向量,除了整数的索引之外,它都是零值,它被标记为1。
通过这个简单的例子,比如这个特征是指的学生的一个性别,那么这个性别只有男女两类?那么我们通过这个 one hold 编码出来,就是男用 1,0 表示,女用 0,1 表示。年纪按照小学、初中、高中来进行一个编码,那么小学就可以用100,那么初中用 010 ,高中用 001 。如果说这个特征,它有几类的话,那么得有几列数字,然后其中每一列如果那个值为 1 的话,就表示其中的一个分类。那么从这种分类的就是类别型的一个特征。没有用 one hode 之前就是那种简单的一个分类,比如12345 这种就直接拿去训练了。
在这里插入图片描述

代码示例

df = m11.data.read()
#分箱
col_name = 'pe_ttm_bins'
def cal_bins(df):
    bins=5
    df[col_name] = np.array(pd.qcut(df.pe_ttm_0, bins, labels=range(0, bins)))
    return df
df = df.groupby('date').apply(cal_bins)
display("分箱结果:",df[['date','instrument','pe_ttm_0','pe_ttm_bins']])
#换成one-hot编码
df = pd.get_dummies(df,columns=[col_name])
display("one-hot编码结果:",df[['date','instrument','pe_ttm_0','pe_ttm_bins_0','pe_ttm_bins_1','pe_ttm_bins_2','pe_ttm_bins_3']])

输出结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

源码克隆

点此克隆源码

讲解视频

可以详细看工程师的视频讲解:

如何对连续性数据进行离散化处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值