易燃物汇聚 YouTube 有声书与书评
特征工程入门与实践 封面

特征工程入门与实践

锡南·厄兹代米尔 迪夫娅·苏萨拉

5057人在读
16.5万字总字数
¥29.99定价

有声书与视频解读 YouTube有声书 1

内容简介

本书将带你了解特征工程的完整过程,使机器学习更加系统、高效。你会从理解数据开始学习,机器学习模型的成功正是取决于如何利用不同类型的特征,例如连续特征、分类特征等。你将了解何时纳入一项特征、何时忽略一项特征,以及其中的原因。你还会学习如何将问题陈述转换为有用的新特征,如何提供由商业需求和数学见解驱动的特征,以及如何在自己的机器上进行机器学习,从而自动学习数据中的特征。

读者书评

★★★★★

数据的预处理一直是模型训练的难点,相当于是给模型种粮食,业内称之为八二定律,概括为80%的数据+20%的模型,可见数据组织对于模型质量的重要。 本书的主题是特征工程。着重于清洗和组织数据的过程,为机器学习流水线服务。特征提取不仅仅是找出现有的好属性(特征),很多时候更是需要搜寻计算出数据表格中最具表达力的属性。比如,数据是定量的,还是定性的?定量数据本质上是数值,应该是衡量某样东西的数量。定性数据本质上是类别,应该是描述某样东西的性质。再比如,数据4的个等级与数学运算的对应关系:1、定类数据,纯粹的分类标签,没有任何顺序、大小或高低之分。能做的运算:计数、求众数。2、定序数据,有明确的先后顺序或等级。能做的运算:排序、求中位数、百分位数。可视化:柱状图、饼图等。3、定距数据,不仅有顺序,且相邻数值之间的间距是相等的、有意义的,可加减。但它没有绝对的零点(人为规定的一个基准点)。可视化:直方图、散点图等。4、定比数据,拥有定距数据的所有特征,并且存在真正的绝对零点。能做的运算:加、减、乘、除。最高级的数据类型,可以进行所有的统计分析。等等,诸如此类的特征提取相关逻辑,背后都涉及统计学的知识,所以说统计学是机器学习的基础。 另外,书中的举例都是机器学习的经典场景。比如,缩放、PCA、LDA和KNN的组合是按照顺序执行的,缩放->PCA->LDA->分类器。这个最优的流水线,充分体现了模型设计时,核心逻辑与模型状态参数的解耦的思想。

★★★★★

《特征工程入门与实践》拆解 作者:锡南·厄兹代米尔、迪夫娅·苏萨拉 一、一句话概括 机器学习模型的上限往往不只由算法决定,更取决于能否正确理解、清洗、编码、构造、选择和转换数据,让原始信息变成模型真正能够利用的特征。 二、核心逻辑 全书围绕特征工程的六个环节展开: 1. 特征理解:明确数据代表什么、属于什么类型和测量等级。2. 特征增强:处理缺失值、异常尺度和数据质量问题。3. 特征构建:从原始字段生成模型可使用的新特征。4. 特征选择:删除无效、冗余或有害特征。5. 特征转换:通过数学方法改变特征空间。6. 特征学习:让模型从数据中自动学习表示。 整体路径可以概括为: 理解问题与数据 → 建立基准模型 → 逐步改造特征 → 在验证集上比较 → 将有效步骤组成可复现流水线 特征工程不是训练前一次性完成的数据整理,而是与建模、评估和业务理解不断循环的实验过程。 三、核心内容 1. 特征工程决定模型能够“看见”什么 模型只能利用输入中已经表达出来的信息。 例如,同一个时间字段可以只作为字符串存在,也可以被拆解为小时、星期、是否节假日和距离某事件的时间。原始信息没有改变,但后者更容易让模型发现规律。 特征工程的作用,是把现实问题翻译成合适的数学表示。一个更复杂的模型无法自动弥补完全错误的数据含义和输入表达。 2. 首先要分清定量数据与定性数据 定量数据表示数量,例如年龄、价格和距离;定性数据表示类别或属性,例如颜色、城市和产品类型。 数字形式不一定代表定量数据。邮政编码、员工编号和电话号码虽然由数字组成,却不适合直接计算大小和平均值。 同样,类别变量也可能包含顺序。正确理解字段含义,是选择编码、统计方法和模型的前提。 3. 四种数据等级决定可以进行什么运算 本书使用四种测量等级理解数据: 定类数据:只有类别差异,没有顺序,如城市或血型。定序数据:存在顺序,但等级间距未必相等,如满意度等级。定距数据:差值具有意义,但零点不代表绝对不存在,如摄氏温度。定比数据:差值和比例都有意义,并具有真实零点,如长度、重量和收入。 不能因为数据可以用数字表示,就随意进行加减乘除。数据等级决定了哪些统计量、距离和变换具有实际意义。 4. 缺失值本身也可能包含信息 缺失值可能来自不同原因: 随机遗漏;采集系统故障;用户拒绝填写;字段不适用于该对象;缺失与目标变量或其他特征有关。 常见处理方式包括删除记录、使用均值或中位数填补、按类别填补、用模型预测缺失值,以及增加“是否缺失”的指示特征。 没有一种填补方法永远正确。关键是理解缺失机制,并在训练数据内部学习填补参数,避免使用验证集或测试集信息。 5. 标准化与归一化解决尺度差异 不同特征可能处于完全不同的量级,例如年龄是几十,收入是几十万,距离可能只有小数。 基于距离、梯度或正则化的算法容易受到尺度影响。常用变换包括: 标准化:减去均值,再除以标准差;最小—最大归一化:把数据映射到固定区间;对数等非线性变换:减弱偏态分布和极端值影响。 树模型通常对单调尺度变化不太敏感,但线性模型、K近邻、支持向量机、神经网络和PCA往往更需要尺度处理。 6. 类别变量必须根据含义选择编码方式 机器学习模型通常不能直接处理字符串类别,因此需要进行编码。 无序类别常使用独热编码,让每个类别成为一个二元特征。具有明确顺序的类别,可以映射为符合业务含义的有序数值。 直接把“北京、上海、广州”编码为1、2、3,可能让模型误以为城市之间存在大小和距离关系。 高基数类别还会造成维度膨胀,可能需要频次编码、哈希、目标编码或嵌入等方法。使用目标编码时必须特别防止数据泄漏。 7. 新特征来自业务知识与数学组合 特征构建可以把原始字段转换为更接近问题机制的变量。 常见方法包括: 从日期提取周期信息;计算两个数值的比率或差值;对连续变量分箱;添加交互项和多项式项;汇总历史行为;统计频次、最近一次行为和变化趋势;从文本中提取词频和TF-IDF特征。 构造新特征并不是越多越好。每个特征都应对应合理假设,并通过验证确认是否真正改善模型。 8. 文本需要被转换为数值表示 文本不能直接输入大多数传统机器学习模型。 词袋模型把文档表示为词语出现次数,但忽略词序;TF-IDF进一步降低常见词的权重,突出对具体文档更有区分力的词语。 N-gram可以保留有限的局部顺序,词向量则把词映射到连续空间,使语义相近的词具有接近的表示。 书中介绍的文本方法是自然语言处理的重要基础。现代大模型采用更复杂的上下文表示,但“把语言转换为可计算特征”的问题并没有消失。 9. 特征选择能够降低噪声和复杂度 加入更多特征不一定提高效果。无关、重复和高噪声特征可能增加过拟合风险、训练成本和解释难度。 特征选择方法大致分为: 过滤法:根据方差、相关性或统计检验独立评估特征;包装法:反复训练模型,比较不同特征子集;嵌入法:在模型训练过程中完成选择,如L1正则化和树模型的重要性。 选择方法应与任务、模型和数据规模匹配。特征选择必须在交叉验证的训练折内完成,否则会高估模型效果。 10. 必须先建立基准模型 如果没有基准,就无法判断特征工程是否产生了真实价值。 基准流水线应包含明确的数据划分、预处理步骤、模型、评价指标和随机种子。之后每次只改变有限环节,对比验证结果、训练成本、稳定性与解释性。 特征工程的目标不是让训练集得分越来越高,而是提高模型对未见数据的泛化能力。 11. PCA和LDA以不同目标转换特征空间 主成分分析(PCA)是一种无监督方法。它寻找数据中方差最大的方向,把相关特征压缩成较少的主成分。 线性判别分析(LDA)是一种监督式降维方法。它利用类别标签,寻找最能区分类别的投影方向。 两种方法都会生成新的组合特征,因此可解释性通常低于直接选择原始特征。使用前也往往需要进行尺度处理。 12. 特征学习让模型自动发现表示 传统特征工程依赖人手设计,而特征学习让算法从数据中自动提取表示。 书中介绍受限玻尔兹曼机、伯努利RBM和词向量等方法,展示如何把学习到的表示接入机器学习流水线。 深度学习进一步扩大了自动特征学习的能力,在图像、语音和文本任务中减少了部分人工设计。但它没有消除数据清洗、目标定义、样本选择和评估设计的重要性。 13. 流水线是防止数据泄漏的关键工具 填补缺失值、计算均值方差、选择特征和降维都需要从数据中学习参数。 如果先在全部数据上完成这些步骤,再划分训练集和测试集,测试集信息就会提前进入模型,造成数据泄漏。 正确方法是把预处理和模型封装成统一流水线: 只在训练数据上拟合预处理参数 → 对验证或测试数据应用相同变换 → 再进行预测与评估 流水线同时提高了实验的可复现性,并减少训练和部署之间处理逻辑不一致的问题。 14. 案例展示完整的特征工程循环 书中通过面部识别和酒店评论主题预测,把数据理解、清洗、转换、降维和模型评估串联起来。 案例的重点不在于某一个算法,而在于完整工作方式: 明确任务和指标;检查数据结构;建立基准结果;选择适当预处理;逐步实验新特征;比较泛化效果;固化为可复现流程。 这套方法可以迁移到分类、回归、文本和图像等不同任务。 四、本书最值得关注的核心观点 本书最值得关注的观点是: 特征工程本质上是把业务知识转化为模型可以验证的假设。 计算年龄、消费频率或行为变化趋势,并不只是技术操作。每一个新特征背后都隐含着一个判断:这个因素可能与预测目标有关。 好的特征工程师不仅会使用编码、缩放和降维工具,还会持续追问: 这个字段在现实中代表什么?它是在预测发生前产生的吗?缺失是随机的,还是一种行为信号?这个变换符合业务机制吗?它在新数据上仍然成立吗?改善来自真实规律,还是数据泄漏? 特征工程因此是数据理解、业务理解、统计推理和软件工程的交叉工作。 五、一段话总结 《特征工程入门与实践》系统介绍了把原始数据转化为机器学习有效输入的完整过程:先区分定量、定性及不同测量等级,理解每个字段的真实含义;再处理缺失值、尺度差异和类别编码,从日期、数值关系与文本中构造新特征;随后使用过滤法、包装法和嵌入法删除无效或冗余变量,并通过PCA、LDA、RBM和词向量等方法转换或学习新的表示。全书最重要的方法不是堆叠技巧,而是先建立可复现的基准流水线,把所有预处理限制在训练数据内部,通过交叉验证判断每次特征改造是否真正提高泛化能力。部分特征学习技术已有年代感,但“理解数据、提出假设、防止泄漏、持续验证”的核心原则仍然适用于今天的机器学习与大模型应用。

★★★★★

书名:特征工程入门与实践 作者:锡南·厄兹代米尔 迪夫娅·苏萨拉 译者:庄嘉盛 出版社:人民邮电出版社 出版时间:2019-05-27 ISBN:9787115511645 品牌方:人民邮电出版社有限公司 字数:16.5万字 评价:76.9% 【作者简介】 锡南·厄兹代米尔 (Sinan Ozdemir) 数据科学家、数学家、约翰·霍普金斯大学讲师,Kylie.ai公司联合创始人、CTO,在应用数据挖掘、功能分析和算法开发做出基于数据和知识的决策方面拥有丰富的经验。   迪夫娅·苏碎拉 (Divya Susarla) 在利用数据方面经验丰富,在包括投资管理、社会企业咨询和红酒营销的各个产业和领域里实现并应用过相应的策略。Kylie.ai公司产品经理,目前专注于自然语言处理和生成技术。 【内容简介】 本书的主题是特征工程。特征工程是数据科学和机器学习流水线上的重要一环,包括识别、清洗、构建和发掘数据的新特征,为进一步解释数据并进行预测性分析做准备。 第1章,特征工程简介 这一章介绍特征工程的基本术语,简要阐释本书涉及的各类问题。 第2章,特征理解:我的数据集里有什么 这一章介绍我们在实际中会遇见的各类数据,并说明如何处理这些数据。 第3章,特征增强:清洗数据 这一章介绍填充缺失值的各种方法,以及为何某些处理方法会使机器学习性能变差。 第4章,特征构建:我能生成新特征吗 这一章介绍如何使用已有的特征构建新特征,以扩大数据集。 第5章,特征选择:对坏属性说不 这一章介绍定量的选择方法,用于判断哪些特征值得在数据流水线中保留。 第6章,特征转换:数学显神通 这一章介绍如何使用线性代数和高等数学方法增强数据的刚性结构,从而提升流水线的性能。 第7章,特征学习:以AI促AI 这一章介绍如何利用最先进的机器学习和人工智能算法,发现人类难以理解的特征。 第8章,案例分析 这一章介绍了一系列巩固特征工程思想的案例。 【读书笔记】 一、特征理解 理解特征的核心是理解数据。包括: ❏ 结构化数据与非结构化数据:简单来说,结构化数据常用以表格形式呈现,列表示属性(特征),行是属性的对应值(观察值)。而非结构化数据多为文本,大部分可以通过一些方法转化为结构化数据。 ❏ 定量数据与定性数据:定量数据最好理解,就是观察值为数字,用于衡量数量。而定性数据本质上是类别,用于描述性质。 ❏ 数据的4个等级: ①定类等级(nominal level):数据只能用于分类,是定性的,数学上只能做计数操作 ②定序等级(ordinal level):数据可以进行排序,不过数据属性仍然是类别。数学操作可以进行排序和比较,可以计算中位数和百分位数。 ③定距等级(interval level):数据不光可以排序,还可以进行加减操作。 ④定比等级(ratio level):数据的最高等级,引入绝对零点的概念后,可以做乘除计算。 【①和②为定性数据,③和④为定量数据。简单举例来说,男和女为定类数据;酒店的星级如五星、四星为定序数据;人类的身高、体重、年龄等为定距数据;工资为定比数据。】 二、特征增强 特征增强的核心是数据清洗,包括: ❏ 识别数据中的缺失值:遍历数据集,统计每列/每行的空值比例,判断是否需要删除或填充。 ❏ 删除有害数据:对于缺失比例过高、信息量极少或含有明显错误的行(样本)或列(特征),直接从数据集中剔除。 ❏ 输入(填充)缺失值:对仍保留的缺失单元格,采用均值、中位数、众数或模型预测等方法进行填充。 ❏ 对数据进行归一化/标准化:选用合适的特征缩放器(如 Min-Max、Z-Score、Robust Scaler 等)将数值特征统一到同一尺度。 ①z分数标准化,计算公式为 z= (x- μ) / σ 在这个公式中: ❏ z是新的值(z分数); •x是单元格原来的值; •μ是该列的均值; •σ是列的标准差。 ②min-max标准化,计算公式为 m=(x-xmin)/(xmax-xmin) 在这个公式中: •m是新的值; •x是单元格原来的值; •xmin是该列的最小值; •xmax是该列的最大值。 ③行归一化 对任一样本 x,若选用 L2 范数,则归一化操作为 x̂ = x / ‖x‖₂, 其中 ‖x‖₂ = √(Σ xᵢ²)。经过除法,新向量的长度被缩放成 1。 三、特征构建 ❏ 检查数据集; ❏ 填充分类特征; ❏ 编码分类变量; ❏ 扩展数值特征; ❏ 针对文本的特征构建。 四、特征选择 ❏ 在特征工程中实现更好的性能; •提升模型性能:在删除冗余数据后,基于噪声和不相关数据做出错误决策的情况会减少,而且模型可以在重要的特征上练习,提高预测性能。 •减少训练和预测时间:因为拟合的数据更少,所以模型一般在拟合和训练上有速度提升,让流水线的整体速度更快。 ❏ 创建基准机器学习流水线; •逻辑回归; •K最近邻(KNN); •决策树; •随机森林。 •皮尔逊相关系数(是Pandas默认的)会测量列之间的线性关系。该系数在-1~1变化,0代表没有线性关系。相关性接近-1或1代表线性关系很强。 ❏ 特征选择的类型; 基于统计和基于模型的特征选择是特征工程中两种核心方法,其核心差异与实现逻辑如下: 一、基于统计的特征选择(过滤式方法) 1、核心逻辑 独立评估每个特征与目标变量的统计相关性,不依赖具体机器学习模型。 2、常用方法 •相关系数法:计算特征与目标变量的线性相关性(如皮尔逊系数)。 •信息增益法:衡量特征对目标变量的信息贡献度(基于熵)。 •卡方检验法:检验分类特征与目标变量的独立性。 3、特点 •优点:计算高效,可并行处理特征,适合高维数据预处理。 •局限:忽略特征间的相互作用(如冗余特征可能同时被保留)。 二、基于模型的特征选择(包裹式/嵌入式方法) 1、核心逻辑 利用机器学习模型的内在机制评估特征重要性。 2、实现方式 •包裹式(Wrapper):将特征选择视为搜索问题(如递归特征消除RFE),通过训练模型评估特征子集性能。 例如:用决策树训练数据,根据feature_importances_排序特征。 •嵌入式(Embedded):在模型训练过程中自动进行特征选择(如正则化、树模型)。 例如:L1正则化使无关特征系数压缩至0;随机森林通过基尼重要性打分。 3、特点 •优点:捕捉特征交互,选择更优子集(如模型能识别非线性关系)。 •局限:计算成本高(需多次训练模型),可能过拟合训练数据。 三、方法对比与选择 计算效率 高(独立评估) 低(需模型训练) 特征交互 无法捕捉 可捕捉(如树模型、SVM) 适用场景 高维数据降维、快速筛选 模型性能敏感场景 典型工具 SelectKBest、卡方检验 RFE、L1正则化、feature_importances_ 四、实践建议 1、优先尝试基于统计方法:作为快速预处理步骤,减少特征维度。 2、结合模型验证效果:通过交叉验证比较不同特征子集的模型性能(如准确率、AUC)。 3、混合策略:先用统计方法粗筛,再用模型方法精调(如先卡方检验后RFE)。 ✦关键结论:两种方法本质是互补——统计方法提供高效性,模型方法提供上下文感知能力。实际应用中需根据数据规模、计算资源及模型需求权衡选择。 ❏ 选用正确的特征选择方法。 下面是一些经验,可以在判断特征选择方法的优劣时参考。 •如果特征是分类的,那么从SelectKBest开始,用卡方或基于树的选择器。 •如果特征基本是定量的(例如本例),用线性模型和基于相关性的选择器一般效果更好。 •如果是二元分类问题,考虑使用SelectFromModel和SVC,因为SVC会查找优化二元分类任务的系数。 •在手动选择前,探索性数据分析会很有益处。不能低估领域知识的重要性。

★★★★★

1. 框架清晰,围绕特征工程,从数据分析、特征理解、特征增强、特征构建、特征选择、特征转换、特征学习进行介绍,最后给出了两个综合型的案例,对特征工程的范围进行全面介绍; 2. 对数学和理论介绍较少,侧重于实际应用,给出了思路清晰的python代码,主演基于sklearn库,也涉及到了一些文本和图片处理的库; 3. 对机器学习流水线pipeline进行多次应用,可以基于sklearn自定义数据处理类,加入到pipeline中进行处理,有助于对数据的整体处理,避免数据泄露,同时也可以提高效率。

★★★★★

本书对于统计和机器学习老手相对容易,比较完善地介绍了特征工程各个模块(特征选择,特征构建,特征转换,特征学习等)的内容以及相应的典型技术/算法/模型/操作,部分算法比较“老”,但毕竟经典,了解一下没啥害处。由于并不主用Python作pipeline实现,所以看地比较快。

★★★★☆

特征工程入门与实践 瑕不掩瑜,讲述特征工程的少有的入门好书,从最基本的特征选择到特征转换都有通俗易懂的讲解与例子展示。对流水线加深了一些理解,更好的规范整个特征工程流程。 配合github上的相应项目食用效果更佳。 这个Packt组织的项目真多呀,机器学习,深度学习,强化学习,自然语言处理,计算机视觉,爬虫,TensorFlow ,应有尽有,相应的资料都很不错,齐全且容易获取,是学习CS的绝佳资料,五星推荐,还有什么比畅快的学习使我更快乐呢。

★★★★★

数据特征工程的基础,目前只是大概通读了一遍,至少对数据预处理的重要性和方式方法,有一个清晰的认知。后续可以结合机器学习再次精读下。

★★★★★

只是大概阅读了下,先从数据清洗、评价开始,再到数据的预处理、数据特征的提取,每一步环环相扣,对数据处理流水线有了概念上的了解。需要按照最后一章按照数据进行实操,效果更好。

★★★★★

特征工程(feature engineering)是这样一个过程:将数据转换为能更好地表示潜在问题的特征,从而提高机器学习性能

★★★★☆

本书内容可能更适合小规模数据,实际生产环境中已经不再通过相似性算法进行特征筛选了,也不会进行通过主成分分析去压缩特征,完全是由算法人工凭经验选择,剩下全都交给模型去学,去调超参,甚至构建automl

书籍信息

作者锡南·厄兹代米尔 迪夫娅·苏萨拉
译者庄嘉盛
出版社人民邮电出版社
出版时间2019-05-27
ISBN9787115511645
分类科学技术-工业技术
格式EPUB
完结状态连载中
章节数60