特征组合--组合独热矢量

到目前为止,我们已经重点介绍了如何对两个单独的浮点特征进行特征组合。在实践中,机器学习模型很少会组合连续特征。不过,机器学习模型却经常组合独热特征矢量,将独热特征矢量的特征组合视为逻辑连接。例如,假设我们具有以下两个特征:国家/地区和语言。对每个特征进行独热编码会生成具有二元特征的矢量,这些二元特征可解读为 country=USA, country=France 或 language=English, language=Spanish。然后,如果您对这些独热编码进行特征组合,则会得到可解读为逻辑连接的二元特征,如下所示:

  country:usa AND language:spanish

再举一个例子,假设您对纬度和经度进行分箱,获得单独的独热 5 元素特征矢量。例如,指定的纬度和经度可以表示如下:

binned_latitude = [0, 0, 0, 1, 0]
binned_longitude = [0, 1, 0, 0, 0]

假设您对这两个特征矢量创建了特征组合:


binned_latitude X binned_longitude

此特征组合是一个 25 元素独热矢量(24 个 0 和 1 个 1)。该组合中的单个 1 表示纬度与经度的特定连接。然后,您的模型就可以了解到有关这种连接的特定关联性。

假设我们更粗略地对纬度和经度进行分箱,如下所示:

binned_latitude(lat) = [  0  < lat <= 10  10 < lat <= 20  20 < lat <= 30]binned_longitude(lon) = [  0  < lon <= 15  15 < lon <= 30]

针对这些粗略分箱创建特征组合会生成具有以下含义的合成特征:

binned_latitude_X_longitude(lat, lon) = [  0  < lat <= 10 AND 0  < lon <= 15  0  < lat <= 10 AND 15 < lon <= 30  10 < lat <= 20 AND 0  < lon <= 15  10 < lat <= 20 AND 15 < lon <= 30  20 < lat <= 30 AND 0  < lon <= 15  20 < lat <= 30 AND 15 < lon <= 30]

现在,假设我们的模型需要根据以下两个特征来预测狗主人对狗狗的满意程度:

  • 行为类型(吠叫、叫、偎依等)
  • 时段

如果我们根据这两个特征构建以下特征组合:

  [behavior type X time of day]

我们最终获得的预测能力将远远超过任一特征单独的预测能力。例如,如果狗狗在下午 5 点主人下班回来时(快乐地)叫喊,可能表示对主人满意度的正面预测结果。如果狗狗在凌晨 3 点主人熟睡时(也许痛苦地)哀叫,可能表示对主人满意度的强烈负面预测结果。

线性学习器可以很好地扩展到大量数据。对大规模数据集使用特征组合是学习高度复杂模型的一种有效策略。 神经网络可提供另一种策略。


引用

特征组合 (Feature Crosses):组合独热矢量

原文地址:https://www.cnblogs.com/taro/p/8643210.html

时间: 2024-11-18 00:13:07

特征组合--组合独热矢量的相关文章

逻辑回归--数据独热编码+数据结果可视化

#-*- coding: utf-8 -*- ''' 在数据处理和特征工程中,经常会遇到类型数据,如性别分为[男,女](暂不考虑其他....),手机运营商分为[移动,联通,电信]等,我们通常将其转为数值带入模型,如[0,1], [-1,0,1]等,但模型往往默认为连续型数值进行处理. 独热编码便是解决这个问题,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候,其中只有一位有效. 可以理解为对有m个取值的特征,经过独热编码处理后,转为m个二元特征(值只有

OneHotEncoder独热编码和 LabelEncoder标签编码

学习sklearn和kagggle时遇到的问题,什么是独热编码?为什么要用独热编码?什么情况下可以用独热编码?以及和其他几种编码方式的区别. 首先了解机器学习中的特征类别:连续型特征和离散型特征 拿到获取的原始特征,必须对每一特征分别进行归一化,比如,特征A的取值范围是[-1000,1000],特征B的取值范围是[-1,1].如果使用logistic回归,w1*x1+w2*x2,因为x1的取值太大了,所以x2基本起不了作用.所以,必须进行特征的归一化,每个特征都单独进行归一化. 对于连续性特征:

独热编码在数据处理中的作用

独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效. 例如对六个状态进行编码: 自然顺序码为 000,001,010,011,100,101 独热编码则是 000001,000010,000100,001000,010000,100000 原文链接:http://blog.csdn.net/dulingtingzi/article/details/51374487 问题由来 在很多机器

机器学习实战:数据预处理之独热编码(One-Hot Encoding)

问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 例如,考虑一下的三个特征: ["male", "female"] ["from Europe", "from US", "from Asia"] ["uses Firefox", "uses Chrome", "uses Safari", "uses Internet

【转】数据预处理之独热编码(One-Hot Encoding)

原文链接:http://blog.csdn.net/dulingtingzi/article/details/51374487 问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 例如,考虑一下的三个特征: ["male", "female"] ["from Europe", "from US", "from Asia"] ["uses Firefox", "

数据预处理:独热编码(One-Hot Encoding)

http://blog.csdn.net/pipisorry/article/details/61193868 问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 例如,考虑一下的三个特征: ["male", "female"] ["from Europe", "from US", "from Asia"] ["uses Firefox", "uses Ch

机器学习:数据预处理之独热编码(One-Hot)

在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等.这些特征值并不是连续的,而是离散的,无序的.通常我们需要对其进行特征数字化. 那什么是特征数字化呢?例子如下: 性别特征:["男","女"] 祖国特征:["中国","美国,"法国"] 运动特征:["足球","篮球","羽毛球","乒乓球"] 假如某个

独热编码

独热编码OneHotEncoder可以将分类字符串变量数值化,例如: 这里有三个样本,每个样本有三个特征,我们可以用独热编码将其转换成数字,代码如下 from sklearn import preprocessing X=[['male','USA','firefox'],['female','UK','google'],['male','China','ie']] enc=preprocessing.OneHotEncoder() enc.fit(X) #训练模型 print(enc.tran

机器学习中 为何要使用 独热编码 one-hot

背景 接触tensorflow时,学习到mnist,发现处理数据的时候采取one-hot编码,想起以前搞FPGA状态机遇到过格雷码与独热码. 解析: 将离散型特征使用one-hot编码,确实会让特征之间的距离计算更加合理. 比如,有一个离散型特征,代表工作类型,该离散型特征,共有三个取值. 不使用one-hot编码,其表示分别是x_1 = (1), x_2 = (2), x_3 = (3).两个工作之间的距离是,(x_1, x_2) = 1, d(x_2, x_3) = 1, d(x_1, x_