如何对连续型数据进行离散化处理,并进行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

本文介绍了如何对连续型数据进行离散化处理,使用分箱方法将其转换为分类数据。接着,通过OneHot编码将离散化的数据转化为二进制向量,以便作为特征输入模型。示例代码展示了如何利用pandas的qcut和get_dummies函数实现这一过程。这种方法对于处理包含多个类别的特征十分有效。

1037

被折叠的 条评论
为什么被折叠?



