博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【机器学习】Google Developer-特征交叉
阅读量:4171 次
发布时间:2019-05-26

本文共 1051 字,大约阅读时间需要 3 分钟。

1、什么是特征交叉?

特征交叉是通过组合两个或更多个特征而形成的合成特征, 通过特征组合的方式增加特征的维度,以求得更好的训练效果。

如下图,无法用一条直线来对两组数据进行分类。

但是如果我们如果增加一个组合特征x1x2,得到分类图如下,下图我们就可以很好对两个类型的数据进行分类了。

2、如何进行有效组合特征?

 2.1 针对数值型的特征一般直接进行相乘。例如

  • [A X B]:  2个特征相乘形成的组合特征
  • [A x B x C x D x E]:  5个特征相乘形成的组合特征
  • [A x A]:  通过单个特征的平方形成的组合特征

2.2 对于one-hot编码的格式特征同样可以组合,例如:

在房价预估中可能涉及到经纬度特征,通过分档编程下面:

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

那现在我们想基于经度和纬度创建一个组合特征,那么就会形成2*3=6个特征值,类似于下面:

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]

然后我们在使用时候,对这6个值进行0ne-hot编码即可。

在这里要注意一点,不一定组合特征对模型训练有帮助,具体哪个组合特征有意义要根据实际训练来确定。

3.暴力做交叉可能产生稀疏问题

 这种暴力做交叉很可能导致特征稀疏的问题,这里可以参考FM、FMM以及阿里妈妈发布的MLR的做法和解决思路。 

  (Factorization Machine)主要目标是:解决数据稀疏的情况下,特征怎样组合的问题。

  FMM: 在FM模型中,每一个特征会对应一个隐变量,但在FFM模型中,认为应该将特征分为多个field,每个特征对应每个field      分别有一个隐变量。

  特别说明: 以上第三点引自于CSDN博客专家 

转载地址:http://lekai.baihongyu.com/

你可能感兴趣的文章
高性能服务器设计
查看>>
图文介绍openLDAP在windows上的安装配置
查看>>
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>
android中SharedPreferences的简单例子
查看>>
android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
查看>>
andorid里关于wifi的分析
查看>>
Hibernate和IBatis对比
查看>>
Spring MVC 教程,快速入门,深入分析
查看>>
Android 的source (需安装 git repo)
查看>>
LOCAL_PRELINK_MODULE和prelink-linux-arm.map
查看>>
Ubuntu Navicat for MySQL安装以及破解方案
查看>>
java多线程中的join方法详解
查看>>
idea添加gradle模块报错The project is already registered
查看>>
在C++中如何实现模板函数的外部调用
查看>>
HTML5学习之——HTML 5 拖放
查看>>
HTML5学习之——HTML 5 Canvas vs. SVG
查看>>
HTML5学习之——HTML 5 应用程序缓存
查看>>
HTML5学习之——HTML 5 Web Workers
查看>>
HTML5学习之——HTML 5 Canvas
查看>>