《零基础入门Spark》学习笔记 Day 14

特征工程-上

特征工程是机器学习流程中至关重要的环节,旨在通过数据转换、组合或创建新特征,提升模型性能。其核心目标包括提高数据质量、增强特征与目标变量的相关性,以及降低计算复杂度。

对于原始数据中的字段,我们会把它们分为数值型和非数值型。

Spark MLlib特征处理函数可以分为如下几类:

预处理(StringIndexer)

作用是以数据列为单位,把字段中的字符串转换为数值索引。

StringIndexed的用法比较简单,可以分为三个步骤:

第一步,实例化StringIndexer对象;

第二步,通过setInputCol和setOutputCol来指定输入列和输出列;

第三步,调用fit和transform函数,完成数据转换

特征选择(ChiSqSelector)

就是依据一定的标准,对特征字段进行遴选。实际上,面对数量众多的候选特征,业务经验往往是特征选择的重要出发点之一。与此同时,我们还会使用一些统计方法,去计算候选特征与预测标的之间的关联性,从而以量化的方式,衡量不同特征对于预测标的重要性。要使用ChiSqSelector来选择数值型字段,需要完成两步:

第一步,使用VectorAssembler创建特征向量

第二步,基于特征向量,使用ChiSqSelector完成特征选择。

归一化(MinMaxScaler)

用于是把一组数值,统一映射到同一个值域,而这个值域通常是[0,1]。当原始数据之间的量纲差异较大时,抖动较大,模型不容易收敛,从而导致训练效率较差。相反,当所有特征数据都被约束到同一个值域时,模型训练的效率会得到大幅提升。

MinMaxScaler的用法,也分为两步:

第一步,使用VectorAssembler创建特征向量;

第二步,基于特征向量,使用使用MinMaxScaler完成归一化

归一化的目标,在于去掉不同特征之间量纲的影响,避免量纲不一致而导致的梯度下降震荡,模型收敛效率低下等问题。

离散化

Embedding

向量计算

相关推荐
辰海Coding5 小时前
MiniSpring框架学习笔记-解决循环依赖的简化IoC容器
笔记·学习
商业模式源码开发5 小时前
实体门店低获客成本增长案例:3 人转介绍模型 + 消费返还机制落地分析
大数据·商业模式·私域流量
晓梦林5 小时前
cp520靶场学习笔记
android·笔记·学习
心中有国也有家6 小时前
cann-recipes-infer:昇腾 NPU 推理的“菜谱集合”
经验分享·笔记·学习·算法
玄米乌龙茶1236 小时前
LLM成长笔记(三):API 开发基础
笔记
元拓数智7 小时前
智能分析落地卡壳?先补好「数据关系+语义治理」这层技术基建
大数据·分布式·ai·spark·数据关系·语义治理
Upsy-Daisy7 小时前
AI Agent 项目学习笔记(八):Tool Calling 工具调用机制总览
人工智能·笔记·学习
TDengine (老段)7 小时前
TDengine Tag 设计哲学与 Schema 变更机制
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
LuminousCPP8 小时前
数据结构 - 线性表第四篇:C 语言通讯录优化升级全记录(踩坑 + 思考)
c语言·开发语言·数据结构·经验分享·笔记·学习
魔法阵维护师8 小时前
从零开发游戏需要学习的c#模块,第十四章(保存和加载)
学习·游戏·c#