1、特征工程 ,是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。本质上讲,特征工程是一个表示和展现数据的过程。在实际工作中,特征工程旨在去除原始数据中的杂志和冗余,设计更高效的特征以刻画求解的问题与预测模型之间的关系。
2、数据分类:
结构化数据,可以看作关系型数据库的一张表,每列都有清晰的定义,包含了数值型、类别型两种基本类型;每一行数据表示一个样本的信息; 非结构化数据,主要包括文本、图像、音频、视频数据,其包含的信息无法用一个简单的数值表示,也没有清晰的类别定义,并且每条数据的大小各不相同。
3、特征归一化
为了消除数据特征之间的量纲,我们需要对特征进行归一化处理,使得不同指标之间具有可比性。例如,分析一个人的身高和体重对健康的影响,如果使用米和千克作为单位,那么身高特征会在1.6~1.8m的数值范围,体重特征会在50-100kg的范围内,分析出来的结果显然会倾向于数值差别比较大的体重特征。想要得到更为准确的结果,就需要进行特征归一化处理,使各指标处于同一数值量级,以便进行分析。 对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间。 线性函数归一化(Min-Max Scaling)。它对原始数据进行线性变换,使结果映射到[0,1]的范围,实现对原始数据的等比缩放。
X
n
o
r
m
=
X
−
X
m
i
n
X
m
a
x
−
X
m
i
n
X_{norm}=\frac{X-X_{min}}{X_{max}-X_{min}}
X n or m = X ma x − X min X − X min
零均值归一化(Z-Score Normalization)。它会将原始数据映射到均值为0、标准差为1的分布上。具体来说,假设原始特征的均值为
μ
\mu
μ ,标准差为
σ
\sigma
σ ,公式为
z
=
x
−
μ
σ
z=\frac{x-\mu}{\sigma}
z = σ x − μ
数据归一化不是万能的,在实际应用中,通过梯度下降法求解的模型通常是需要归一化的,包括线性回归、逻辑回归、支持向量机、神经网络等模型。当对于决策树模型并不使用。
4、类别型特征
类别型特征(Categorical Feature)主要是指性别(男、女)、血型(A、B、AB、O)等只在有限选项内取值的特征。类别型特征原始输入通常是字符串形式,除了决策树等少数模型能直接处理字符串形式的输入,对于逻辑回归、支持向量机等模型来说,类别特征必须经过处理转换成数值型特征才能正确工作。 序号编码(Ordinal Encoding),通常用于处理类别间具有大小关系的数据。例如成绩,可以分为低、中、高三档,并且存在“高>中>低”的排序关系。 独热编码(One-Hot Encoding),通常用于处理类别间不具有大小关系的数据。例如血型,一共有四个值(A,B,AB,O),独热编码会把血型变成一个4维稀疏向量,A型血表示为(1,0,0,0),B型血表示为(0,1,0,0),C型血表示为(0,0,1,0),D型血表示为(0,0,0,1),使用稀疏向量来节省空间、配合特征选择来降低维度(通常只有部分维度对分类、预测有帮助)。 二进制编码(Binary Encoding)主要分为两步,先用序号编码给每个类别赋予一个类别ID,然后将类别ID对应的二进制编码作为结果。 category_encoders库里有许多编码方式并且兼容sklearn的转换模式,pip install category_encoders 安装该库
5、为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。如果特征维度过高,可以先降维再组合。
6、找到有效的组合特征可以通过决策树
7、文本表示模型
词袋模型(Bag of Words),最基础的文本表示模型是词袋模型。顾名思义,就是将每篇文章看成一袋子词,并忽略每个词出现的顺序。具体地说,就是将整段文本以词为单位切分开,然后每篇文章可以表示成一个长向量,向量中的每一维代表一个单词,而该维对应的权重则反映了这个词在原文章中的重要程度。常用TF-IDF来计算权重,公式为
T
F
(
t
,
d
)
−
I
D
F
(
t
)
=
T
F
(
t
,
d
)
×
I
D
F
(
t
)
TF(t,d)-IDF(t)=TF(t,d)\times IDF(t)
TF ( t , d ) − I D F ( t ) = TF ( t , d ) × I D F ( t )
其中
T
F
(
t
,
d
)
TF(t,d)
TF ( t , d ) 为单词
t
t
t 在文档
d
d
d 出现的频率,
I
D
F
(
t
)
IDF(t)
I D F ( t ) 是逆文档频率,用来衡量单词t对表达语义所起的重要性,表示为
I
D
F
(
t
)
=
l
o
g
文章总数
包含单词
t
的文章总数
+
1
IDF(t) = log\frac{文章总数}{包含单词t的文章总数+1}
I D F ( t ) = l o g 包含单词 t 的文章总数 + 1 文章总数 直观的解释是,如果一个单词在非常多的文章里面都出现,那么它可能是一个比较通用的词汇,对于区分某篇文章特殊语义的贡献较小,因此对权重做一定惩罚。 主题模型(Topic Model),用于从文本库中发现有代表性的主题(得到每个主题上面词的分布特性),并且能够计算出每篇文章的主题分布。 词嵌入模型(Word Embedding),是将词向量化的模型的统称,核心思想是将每个词都映射成低维空间(通常50~300维)上的一个稠密向量。
8、Word2Vec
是目前常用的词嵌入模型之一,实际上是一种浅层的神经网络模型,它有两种网络结构,分别是CBOW(continues bage of words)和Skip-gram 隐狄利克雷模型(LDA)是利用文档中单词的共现关系来对单词按主题聚类,也可以理解为对“文档-单词”矩阵进行分解,得到“文档-主题”和“主题-单词”两个概率分布。而Word2Vec其实是对“上下文-单词”矩阵进行学习,其中上下文由周围的几个单词组成,由此得到的词向量表示更多地融入了上下文共现的特征。
9、图像数据不足时的处理方法
迁移学习 生成对抗网络 图像处理,随机旋转、平移、缩放、裁剪、填充、左右翻转,加噪声,亮度、清晰度、对比度、锐度等,颜色变换 上采样技术
活动地址:CSDN21天学习挑战赛