【机器学习】特征工程
1、特征提取
特征提取是从原始数据中提取出具有代表性和区分度的特征的过程,目的是将原始数据转化为适合机器学习模型输入的形式。在不同的数据类型和应用场景中,特征提取的方法也有所不同。
1.1 图像识别
- 提取图像的边缘特征可以帮助模型识别物体的轮廓,纹理特征则能够反映物体表面的特性
- 人脸识别运用中,通过提取面部的关键特征点,如眼睛、鼻子、嘴巴的位置和形状等,可以构建出描述面部特征的向量,为后续的分类和识别提供基础。
1.2 自然语言处理
- 文本转化为词袋模型,通过将文本视为一个无序的词语集合,每个词语在文本中出现的频率被用来表示文本的特征:
- 构建词汇表:首先需要定义一个词汇表,通常是将所有文本中出现的词去重后构建一个列表。例如,给定三句话:“The cat sat on the mat.”、“The dog barked at the cat.”、“The cat and the dog became friends.”,词汇表为:
The
,cat
,sat
,on
,the
,mat
,dog
,barked
,at
,and
,became
,friends
- 向量化文本:每段文本根据词汇表生成一个向量,向量的每个维度对应词汇表中的一个词,值为该词在文本中的出现次数。例如,第一句话的向量表示为:[1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0],第二句话的向量表示为:[1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0]
- 文本表示:用生成的向量表示文本,并将其用于进一步的分析,如文本分类、情感分析或信息检索
- 构建词汇表:首先需要定义一个词汇表,通常是将所有文本中出现的词去重后构建一个列表。例如,给定三句话:“The cat sat on the mat.”、“The dog barked at the cat.”、“The cat and the dog became friends.”,词汇表为:
- 文本转化为TF-IDF向量:
- 计算词频(TF):词频是指一个词在文档中出现的频率。它反映了这个词在文档中的重要性。TF的计算公式通常为:
T F ( t , d ) = 词 t 在文档 d 中出现的次数 文档 d 的总词数 TF(t, d) = \frac{\text{词 } t \text{ 在文档 } d \text{ 中出现的次数}}{\text{文档 } d \text{ 的总词数}} TF(t,d)=文档 d 的总词数词 t 在文档 d 中出现的次数
或者,为了便于不同文档长度的比较,也可以使用:
T F ( t , d ) = 词 t 在文档 d 中出现的次数 TF(t, d) = \text{词 } t \text{ 在文档 } d \text{ 中出现的次数} TF(t,d)=词 t 在文档 d 中出现的次数 - 计算逆文档频率(IDF):逆文档频率衡量一个词在整个文档集合中的重要性。它通过计算包含某个词的文档数量来降低在许多文档中频繁出现的词的权重。IDF的计算公式为:
I D F ( t ) = log ( 文档总数 + 1 包含词 t 的文档数 + 1 ) IDF(t) = \log\left(\frac{\text{文档总数} + 1}{\text{包含词 } t \text{ 的文档数} + 1}\right) IDF(t)=log(包含词 t 的文档数+1文档总数+1)
其中,分母加1是为了避免分母为0的情况 - 计算TF-IDF值:将每个词的TF值与其IDF值相乘,得到每个词的TF-IDF值。公式为:
T F − I D F ( t , d ) = T F ( t , d ) × I D F ( t ) TF-IDF(t, d) = TF(t, d) \times IDF(t) TF−IDF(t,d)=TF(t,d)×IDF(t) - 生成TF-IDF向量:将每个文档中所有词的TF-IDF值组合成一个向量,形成文档的特征表示。每个元素代表一个词在文档中的重要程度
- 计算词频(TF):词频是指一个词在文档中出现的频率。它反映了这个词在文档中的重要性。TF的计算公式通常为:
2、特征预处理
特征预处理是对提取到的特征进行进一步的处理,以改善数据的质量和分布,提高模型的性能和稳定性。
2.1 标准化(Z-score)
标准化是一种常见的特征预处理方法,它将数据转换为均值为 0,标准差为 1 的分布:
- 其公式为:
(
x
−
μ
)
/
σ
(x - μ) / σ
(x−μ)/σ,
其中 x 是原始数据点,μ 是数据的均值,σ 是数据的标准差
例如,在金融数据分析中,对股票价格进行标准化处理,可以使不同股票的价格数据具有可比性,有助于模型更好地学习价格波动的模式
2.2 归一化(Min-Max)
归一化是将数据缩放到 [0,1] 区间:
- 其公式为:
(
x
−
m
i
n
)
/
(
m
a
x
−
m
i
n
)
(x - min) / (max - min)
(x−min)/(max−min),
其中 x 是原始数据点,min 是数据的最小值,max 是数据的最大值
在图像处理中,像素值通常需要归一化到 [0,1] 区间,以便于模型进行训练和处理。例如,将灰度图像的像素值从 0-255 缩放到 0-1,可以使数据分布更加均匀,加速模型的收敛
3、特征选择
特征选择是从众多特征中挑选出对模型性能提升最有帮助的特征子集,目的是减少数据维度、提高模型效率和可解释性。
3.1 相关系数法
相关系数法是一种常用的特征选择方法,它通过计算特征与标签之间的相关系数,选择与标签相关性高的特征。
相关系数的取值范围在 [-1,1] 之间,绝对值越接近 1,表示相关性越强。
例如,在房价预测问题中,计算房屋面积、房龄、周边学校数量等特征与房价之间的相关系数,选择相关性较高的特征作为模型的输入,可以提高模型的预测准确性。
4、特征组合
特征组合是通过将多个特征进行组合或变换,生成新的特征,以更好地描述数据之间的关系,提高模型的表达能力和预测性能。
例如,将 “身高” 和 “体重” 组合成 “BMI 指数”。BMI(身体质量指数)是衡量人体胖瘦程度的一个常用指标,它通过公式 B M I = 体重( k g ) / 身 高 2 ( m 2 ) BMI = 体重(kg)/ 身高²(m²) BMI=体重(kg)/身高2(m2)计算得出。在健康评估模型中,使用 BMI 指数作为特征,可以更全面地反映个体的身体状况,相比单独使用身高和体重,能够提供更有意义的信息,有助于模型更准确地进行健康风险预测。
微语录:单枪匹马你别怕,一腔孤勇又如何,这一路你可以哭,但不能怂,总得熬过无人问津的日子,才能迎来成功和鲜花。