网站首页 > 技术文章 正文
目标编码(Target Encoding)也被称为似然编码(likelihood encoding)或平均数编码(mean encoding)。它是从现有特征和目标变量中创建一个新特征。
让我们通过几个小例子来理解这个概念。
示例1:二元分类任务
我们有一个名为data_df的Pandas DataFrame,它包含如下数据。
特征2是我们想要在目标的帮助下进行编码的分类变量。
因为,如果特性2的值是“A”,我们在相应的目标列中有4个1和1个0。值“A”的平均数编码为4/5 = 0.8。
类似地,特征2为“B”的平均数编码是2/3 = 0.667。
我们可以用下面的代码为data_df中的数据创建平均数编码
mean_encoding = data_df.groupby(['Feature-2']).agg({'Target':['mean']}).reset_index()
data_df = data_df.merge(mean_encoding,on='Feature-2',how='left')
这里(Target,mean)是新编码的特征
示例2:回归任务
让我们看一下Target是一个连续值的例子。我们的新DataFrame数据如下:
与第一个示例相同,Feature-2是我们想要在Target的帮助下编码的分类变量。
由于Target是连续的,因此我们可以更灵活地生成新的目标编码功能。例如,我们可以采用均值,模式,标准差或百分位数来创建新特征。
让我们使用Feature-2中每个值的Target值的标准偏差来创建一个新特征。
std_encoding=data.groupby(['Feature-2']).agg({'Target':['std']}).reset_index()
data_df = data_df.merge(std_encoding,on='Feature-2',how='left')
这里产生的新特征是(Target,std)
这种特征编码的思想也可以扩展到多类分类。特别地,对于基于树的方法,该方法似乎最有效,因为数据获得关于编码的分类特征的其他值的结构的附加信息。
注意事项
在使用这些编码技术时,有一些事情需要注意,因为我们不希望目标变量泄漏出现在新的编码特征中。
- 如果在训练和验证数据分离之前执行了目标编码,那么它可能仅仅是与验证数据相匹配,结果可能不可靠。因此,应该在训练和验证数据分离后进行编码。
- 这种方法在特性可能具有数据中罕见的值的情况下可能会失败。
我们可以使用一些正则化方法来克服目标编码中的缺陷。
通过使用目标编码,我们可以超越one-hot编码,将分类变量输入到机器学习模型中。
猜你喜欢
- 2024-10-18 循环编码:时间序列中周期性特征的一种常用编码方式
- 2024-10-18 神经网络基础篇九 神经网络讲解
- 2024-10-18 深入理解:推荐系统中的召回与排序(一)
- 2024-10-18 pandas中的one-hot编码方法 pandas unicodedecodeerror
- 2024-10-18 One Hot编码是什么?为什么要用它,什么时候用它?
你 发表评论:
欢迎- 11-19零基础学习!数据分析分类模型「支持向量机」
- 11-19机器学习 | 算法笔记(三)- 支持向量机算法以及代码实现
- 11-19我以前一直没有真正理解支持向量机,直到我画了一张图
- 11-19研一小姑娘分享机器学习之SVM支持向量机
- 11-19[机器学习] sklearn支持向量机
- 11-19支持向量机
- 11-19初探支持向量机:用大白话解释、原理详解、Python实现
- 11-19支持向量机的核函数
- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)