0011机器学习特征工程
一、特征工程概述
1、机器学习开发流程

2、特征工程的重要性

3、所有一切为了让模型效果变的更好的数据处理方式都可以认为属于特征工程这个范畴中的操作;至于做不做这个特征工程,需要我们在开发过程中不断地进行尝试。
4、常规的特征工程需要处理的内容:
- 异常数据的处理:空值(按行、列删除,根据业务中位值、均值、众数填充)、离群点
- 数据不平衡处理:比如二分类标签数据一个占比90%,一个10%,不平衡,模型更倾向于预测90%标签类(下采样将类少数据变多,下采样让类多的数据变少;造数据,数据增强
- 文本处理:词袋法、TF-IDF(文本要数据化)
- 多项式扩展(有些算法没有多项式扩展,自己造一列或多列特征)、哑编码、标准化、归一化、区间缩放法、PCA(删除一些特征)、特征选择…
- 将均值、方差、协方差(表示两个离群特征的相关性,正相关或负相关)等信息作为特征属性(新特征可能比原始特征更好,比如采集的长和宽,弄个面积的特征出来,效果可能更好),对特征属性进行对数转换、指数转换…
- 结合业务衍生出一些新的特征属性…
二、数据
1、数据来源:
- 用户访问行为数据
- 业务数据
- 外部第三方数据
2、数据存储:
- 需要存储的数据:原始数据、预处理后数据、模型结果
- 存储形式:mysql、HDFS、HBase、Solr、Elasticsearch、Kafka、Redis等
3、数据收集方式:Flume & Kafka
4、数据清洗:
- 数据清洗(datacleaning)是在机器学习过程中一个不可缺少的环节,数据清洗的结果直接关系到模型效果以及最终的结论。在实际的工作中,数据清洗通常占开发过程的30%-50%左右的时间。
- 在数据预处理过程主要考虑两个方面,如下:
- 选择数据处理工具:关系型数据库或者Python。
- 查看数据的元数据以及数据特征:一是查看元数据,包括字段解 释、数据来源等一切可以描述数据的信息;另外是抽取一部分数据,通过人工查看的方式,对数据本身做一个比较直观的了解, 并且初步发现一些问题,为之后的数据处理做准备。
- 一般情况下,数据是由用户/访客产生的,也就有很大的可能性存在格式和内 容上不一致的情况,所以在进行模型构建之前需要先进行数据的格式内容清洗操作。格式内容问题主要有以下几类:
- 时间、日期、数值、半全角等显示格式不一致:直接将数据转换为一类格式即可, 该问题一般出现在多个数据源整合的情况下。
- 内容中有不该存在的字符:最典型的就是在头部、中间、尾部的空格等问题,这种情况下,需要以半自动校验加半人工方式来找出问题,并去除不需要的字符。
- 内容与该字段应有的内容不符:比如姓名写成了性别、身份证号写成手机号等问 题。
- 主要是通过简单的逻辑推理发现数据中的问题数据,防止分析结 果走偏,主要包含以下几个步骤:
- 数据去重
- 去除/替换不合理的值
- 去除/重构不可靠的字段值(修改矛盾的内容)
- 一般情况下,我们会尽可能多的收集数据,但是不是所有的字段数据都是可以 应用到模型构建过程的,也不是说将所有的字段属性都放到构建模型中,最终模型的效果就一定会好,实际上来讲, 字段属性越多,模型的构建就会越慢, 所以有时候可以考虑将不要的字段进行删除操作。
- 如果数据有多个来源,那么有必要进行关联性验证,该过程常应用到多数据源合并的过程中,通过验证数据之间的关联性来选择比较正确的特征属性,比如:汽车的线下购买信息和电话客服问卷信息,两者之间可以通过姓名和手机号进行关联操作,匹配两者之间的车辆信息是否是同一辆,如果不是,那么就需要进行数据调整。
三、几种数据处理方法
1.1 缺省值填充




2.2 归一化和标准化
特征的单位或者大小相差较大,或者某特征的方差相比其他的特征要大出几个数量级,容易影响(支配)目标结果,使得一些算法无法学习到其它的特征,我们需要用到一些方法进行无量纲化,使不同规格的数据转换到同一规格
1、区间缩放归一化


2、标准化


3.3 One-Hot编码
独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。比如有ABC三类,100表示A,010表示B,001表示C



4.4 字典数据特征提取

5.5 中文jieba分词处理
pip install jieba 安装包



6.6 词袋法
将所有出现的词组成词典,并根据词典统计每篇文章中各个词出现的次数。每篇文章中各个词出现的次数可以反应这篇文章的特征。如果词典有n个词,共m篇文章,则会统计出一个m*n的特征矩阵。
7.7 TF-IDF
- 如果一个词在一篇文章中出现的次数越多,则这个词对这篇文章就越重要。
- 如果一个词在所有的文章中出现的次数越多,则表明这个词在当前文章中越不重要,也就是这个词在所有的文章中出现的次数越少,则这个词在当前文章中越重要。
- TF(Term Frequency,词频)指某个词条在文本中出现的次数,一般会将其进行归一化处 理(该词条数量/该文档中所有词条数量)。
- IDF(Inverse Document Frequency,逆向文档频率)指一个词条重要性的度量,一般计算方式为语料库中总文件数目除以包含该词语的文件数目,再将得到的商取对数得到。
- 某词在当前文档中的重要程度由TF*IDF决定。
- 词袋法和TF-IDF(TF就是词袋法)都是一种文本向量化的方式。
- 词袋法和TF-IDF都有一个缺点:没有考虑词的顺序和词与词之间的关系。


8.8 特征降维
在尽量保留原始数据关键信息(比如分类、聚类、回归所需的核心特征)的前提下,减少特征向量的维度(即特征的个数) —— 简单说就是 “删繁就简,去芜存菁”,把冗余、无关或高度重复的特征去掉,只留下最有价值的 “核心特征”。
常见的降维方法:
-
特征选择:数据中包含冗余或无关变量(或称特征、属性、指标等),特征选择旨在从原有特征中找出主要特征。方差选择法、相关系数法、卡方检验、互信息法等(如果y是连续值,一般用相关系数,如果y是离散值,一般用卡方检验)
-
主成分析法(PCA):让映射后的样本具有更大的发散性,PCA是无监督的学习算法
- 在实际问题中往往需要研究很多个特征,而这些特征存在一定的相关性。主
成分分析(PCA)的思路是,将多个特征综合为少数几个有代表性的特征,它
们既能够代表原始特征的绝大多数信息,组合后的特征又不相关。这样,我
们通过减少特征的数量(即降维)达到了降低问题复杂性,又尽可能少地减少
数据的特征损失的目的。如下图两个维度到一个维度:

- 在实际问题中往往需要研究很多个特征,而这些特征存在一定的相关性。主
-
线性判别分析法(LDA):让映射后的样本具有最好的分类性能,LDA是有监督学习算法
- LDA的原理是,将带上标签的数据(点),通过投影的方法,投影到维度更低的空
间中,使得投影后的点,会形成按类别区分,一簇一簇的情况,相同类别的点,将
会在投影后的空间中更接近。用一句话概括就是:“投影后类内方差最小,类间方
差最大”


- LDA的原理是,将带上标签的数据(点),通过投影的方法,投影到维度更低的空





四、titanic数据特征工程练习
1.1 安装xlrd

2.2 特征工程处理
1、数据集中各个字段意思,body这列特征不要

2、代码









1626

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



