特征工程的建立过程

2023-11-02

1 特征工程

1.1 了解特征工程

数据挖掘“二八原则”

  • 80%的精力 => 选取特征
  • 20%的精力 => 模型融合等
    基于数据分析与探索提取潜在有价值的特征
    在这里插入图片描述
    特征工程重要性
  • 特征越好,模型的性能越出色
  • 特征越好,构建的模型越简单
  • 特征越好,模型的灵活性越强

1.2 特征提取与特征组合

在特征工程前面需要进行数据预处理

  • 缺失值的填充
  • 时间格式处理
  • 对象类型特征转换到数值
  • 异常值处理
    1. 基于3segama原则
    2. 基于箱型图
  • 数据分箱
    (1) 特征分箱的目的:从模型效果上来看,特征分箱主要是为了降低变量的复杂性,减少变量噪音对模型的影响,提高自变量和因变量的相关度。从而使模型更加稳定。
    (2)数据分桶的对象:将连续变量离散化;将多状态的离散变量合并成少状态
    (3)分箱的原因:数据的特征内的值跨度可能比较大,对有监督和无监督中如k-均值聚类它使用欧氏距离作为相似度函数来测量数据点之间的相似度。都会造成大吃小的影响,其中一种解决方法是对计数值进行区间量化即数据分桶也叫做数据分箱,然后使用量化后的结果。
    (4)分箱的优点
    处理缺失值:当数据源可能存在缺失值,此时可以把null单独作为一个分箱。
    处理异常值:当数据中存在离群点时,可以把其通过分箱离散化处理,从而提高变量的鲁棒性(抗干扰能力)。例如,age若出现200这种异常值,可分入“age > 60”这个分箱里,排除影响。
    业务解释性:我们习惯于线性判断变量的作用,当x越来越大,y就越来越大。但实际x与y之间经常存在着非线性关系,此时可经过WOE变换。
    (5)特别要注意一下分箱的基本原则:最小分箱占比不低于5%;箱内不能全部是好客户;连续箱单调
    (6)分箱的手段:
    1. 固定宽度分箱
    2. 分位数分箱
      a. 离散数值型数据分箱
      b. 连续数值型数据分箱
    3. 卡方分箱

特征提取

  • 基于数据分析与探索提取
  • 箱型图分析
  • 点线图分析

离散型特征很重要:

  • 可用于设计规则
  • 易于模型拟合,xgboost、lightgbm、catboost等都以决策树为基模型
  • 便于理解
  • 便于做特征组合
  • 在推荐系统等领域很常见

特征提取与特征组合

  1. 简单粗暴的特征组合方式
    • 简单粗暴的进行加减乘除、log、exp等运输
    • 易于生成大量特征,但会易出现过拟合问题,且不易于解释
  2. 建议的特征提取与组合方式
    • 理解问题背景,开发想象力,并做数据分析与探索
    • 以时间序列问题为例,常见的特征类别包括统计量(最大值,最小值,中位数,偏度,峰度等)、排序(各统计量在历史同期的排名)、分位数(各统计量在历史同期排名的分位数)等等,周期因子可视为特征组合
    • 以推荐系统为例,常见的特征类别包括用户特征、商品特征、行为特征(按时段统计)等等,可对其中的离散型特征直接做组合

特征编码

  • one-hot编码
  • label-encode编码

1.3 特征处理“优胜劣汰” (特征选择)

1.劣汰:剔除几乎无关的特征,保留大量特征
2. 处理自变量间共线性:可通过特征组合处理,A与B存在共线性,保留A,构造A/B
在这里插入图片描述

  1. 优胜:挑选出良好特征,组成最优特征子集
    在这里插入图片描述
  2. 特征重要性分析方法
  • Mean Variance Test
  • SHAP
  • Permutation Importance
    SHAP:
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  1. 特征选择常用的方法
  • 1 Filter
    • 方差选择法
    • 相关系数法(pearson 相关系数)
    • 卡方检验
    • 互信息法
  • 2 Wrapper (RFE)
    • 递归特征消除法
  • 3 Embedded
    • 基于惩罚项的特征选择法
    • 基于树模型的特征选择

Filter

  • 基于特征间的关系进行筛选

方差选择法

  • 方差选择法中,先要计算各个特征的方差,然后根据设定的阈值,选择方差大于阈值的特征

相关系数法

  • Pearson 相关系数
    皮尔森相关系数是一种最简单的,可以帮助理解特征和响应变量之间关系的方法,该方法衡量的是变量之间的线性相关性。
    结果的取值区间为 [-1,1] , -1 表示完全的负相关, +1表示完全的正相关,0 表示没有线性相关。

卡方检验

  • 经典的卡方检验是用于检验自变量对因变量的相关性。 假设自变量有N种取值,因变量有M种取值,考虑自变量等于i且因变量等于j的样本频数的观察值与期望的差距。 其统计量如下: χ2=∑(A−T)2T,其中A为实际值,T为理论值
  • (注:卡方只能运用在正定矩阵上,否则会报错Input X must be non-negative)

互信息法

  • 经典的互信息也是评价自变量对因变量的相关性的。 在feature_selection库的SelectKBest类结合最大信息系数法可以用于选择特征

Wrapper (Recursive feature elimination,RFE)

  • 递归特征消除法 递归消除特征法使用一个基模型来进行多轮训练,每轮训练后,消除若干权值系数的特征,再基于新的特征集进行下一轮训练。

Embedded

  • 基于惩罚项的特征选择法 使用带惩罚项的基模型,除了筛选出特征外,同时也进行了降维。
  • 基于树模型的特征选择 树模型中GBDT也可用来作为基模型进行特征选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

特征工程的建立过程 的相关文章

随机推荐

  • Windows批处理脚本:ffmpeg转换b站m4n视频

    1 M4S格式转为MP3格式 echo off set filename n1 set newfilename filename mp3 ffmpeg i 1 f mp3 vn newfilename 2 两个M4S格式合并视频 echo
  • Visual C++ 2010如何解决程序运行闪退问题

    使用Visual C 调试C语言控制台程序 一直出现程序正常运行结束就闪退 看不到控制台的的运行结果 经过查资料尝试 得到几种解决方法 1 在return 0 前面加上getchar 利用getchar 函数等待输入 直到按回车才结束的性质
  • 6款热门的SpringCloud微服务开源项目,总有适合你的

    今天介绍六款比较热门的SpringCloud微服务项目 感兴趣的可以clone下来研究一下 相信对你学习微服务架构很有帮助 一 Cloud Platform 介绍 Cloud Platform是国内首个基于Spring Cloud微服务化开
  • Echarts的一些配置

    前言 在此记录echarts使用过程中的一些配置 开始 一 整体使用 以一个环形图为例 html div div js部分 drawChart list let myChart this echarts init document getE
  • 2021-07-19王汕7.19国际黄金今日行情资讯分析,期货原油伦敦金投资操作建议

    黄金行情走势分析 周一 7月19日 现货黄金小幅上涨 上周五 7月16日 金价跌近1 主要因为零售销售意外增长提振美元指数上涨 不过消费者信心指数下跌以及股市下滑限制了金价跌势 黄金守在每盎司1800美元上方 但分析师表示 一个关键驱动因素
  • js随机生成16进制颜色值

    js随机生成16进制颜色值 背景 很多情况下 我们会遇到给某个dom设置随机颜色 这里采用js函数直接生成 并返回随机16进制颜色值 function getRandomColor var str var arr 0 1 2 3 4 5 6
  • Java中绕过SSL/TLS验证:开发与风险透视

    警告 本文提供的方法绕过SSL TLS证书验证 这在某些开发场景下可能是有用的 但使用这些方法会导致严重的安全隐患 在生产环境中 你应该始终验证SSL TLS证书以确保数据的安全传输 引言 在日常的软件开发中 我们经常需要与其他服务进行HT
  • C++中随机函数rand()和srand()的用法

    一 rand 函数名 rand 功 能 随机数发生器 用 法 int rand void 所在头文件 stdlib h 函数说明 rand 的内部实现是用线性同余法做的 它不是真的随机数 因其周期特别长 故在一定的范围里可看成是随机的 ra
  • 第6章-selenium的使用+iframe+图形验证码

    第6章 selenium的使用 iframe tesseract 一 ajax基本介绍 1 ajax 2 获取ajax数据的方式 二 selenium 1 selenium介绍 2 PhantomJS常用语法 3 selenium的使用 3
  • 搭建Vue-Cli以及创建Vue项目

    搭建Vue Cli脚手架 前言 搭建脚手架需要node js的支持 所以先安装node js 1 安装node js 图片 双击打开 上图程序 一直点击下一步 待安装完成 2 安装npm 1 打开cmd命令 输入node v 查看node安
  • [shell] awk 获取指定IP对应的网口

    awk 获取指定IP对应的网口 引子 awk简介 语法规则 实例解析 awk 处理流程 命令解析 还没结束 思考 参考 引子 项目中需要根据 Linux主机 IP 地址获取其对应网口名称 如 IP地址为192 168 130 12 其对应的
  • SQL笔记(1)——MySQL创建数据库(收藏吃灰版)

    本文详细记录MySQL创建一个数据库的过程 不只是构建步骤 更多的是每一步涉及到的知识点 一般创建数据库有两种方式 一种是命令 另外一种就是通过数据库管理工具 本文主要记录通过命令的方式创建 后面的学习也都是基于这个数据库进行的 场景 创建
  • React中的条件渲染

    React中的条件渲染 Vue js中使用v if v else实现模板中的条件渲染 小程序中使用wx if wx else实现模板中的条件渲染 React中没有模板 即不需要v if 也没有指令系统 即没有v if 条件渲染需要手工实现
  • Springboot整合Mybatis之数据源配置

    spring datasource driver class name com mysql cj jdbc Driver spring datasource url jdbc mysql localhost 3306 springboot
  • androidstudio3.0解决gradle plugin 和android_apt不兼容问题

    将项目下的 classpath com neenbedankt gradle plugins android apt 1 8 删掉 和modul下的apply plugin com neenbedankt android apt 删掉 ap
  • opengl嵌入pyqt5编译的分割窗口中

    opengl嵌入pyqt5编译的分割窗口中 向大部分商业仿真软件一样 使用opengl显示三维模型 首先需要将opengl的窗口嵌入到pyqt5编译的界面中 下面是一个小例子 python view plain copy from PyQt
  • AI-视频换脸

    本文涉及到的代码均已放置在我的github中 gt 链接 环境 Anaconda 集成 python 3 6 5 主要使用了 dlib numpy opencv 调用为cv2 os这四个库 录制 截屏 FSCapture 8 0 目的 将视
  • pycharm配置PyQt5,以及创建第一个项目

    认你已经安装好了pycharm 也正确安装了PyQt5 否则 请移步https www cnblogs com longbigbeard p 9628102 html来安装PyQt5 下一步 Tools gt External Tools
  • CTFHub---xss 反射型

    反射型 反射型xss攻击 Reflected XSS 又称为非持久性跨站点脚本攻击 它是最常见的类型的XSS 攻击代码的工作方式可以分为三个类型 1 持久型跨站 最直接的危害类型 跨站代码存储在服务器 数据库 2 非持久型跨站 反射型跨站脚
  • 特征工程的建立过程

    1 特征工程 1 1 了解特征工程 数据挖掘 二八原则 80 的精力 gt 选取特征 20 的精力 gt 模型融合等 基于数据分析与探索提取潜在有价值的特征 特征工程重要性 特征越好 模型的性能越出色 特征越好 构建的模型越简单 特征越好