机器学习 40 讲
王天一
工学博士,副教授
35375 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 46 讲
机器学习 40 讲
15
15
1.0x
00:00/00:00
登录|注册

10 | 特征预处理

线性回归
K近邻算法
人为赋值(imputation)
删除不完整的数据
对数变换
空间标识方法
异常点的处理
检查是否有异常点存在
归一化
标准化
主成分分析
使用L1L_1正则化项的LASSO回归
降低计算开销
增强可解释性
处理方法
处理方法
描述概率分布非对称性的指标
方法
目的是保证所有特征数值具有相同的数量级
归纳到特征工程的范畴
特征的编码
与预测分类结果的信息息息相关
特征筛选、构造和生成的基础
原始数据不直接适用于学习
大量数据训练效果比少量数据更好
删除不具备区分度的特征
数据缺失
数据的偏度
特征缩放(feature scaling)
特征工程的任务
特征工程(feature engineering)是机器学习的关键
数据量比算法更重要
数据特征预处理
数据预处理
特征工程之前,数据的特征需要经过哪些必要的预处理?

该思维导图由 AI 生成,仅供参考

华盛顿大学教授、《终极算法》(The Master Algorithm)的作者佩德罗·多明戈斯曾在 Communications of The ACM 第 55 卷第 10 期上发表了一篇名为《机器学习你不得不知的那些事》(A Few Useful Things to Know about Machine Learning)的小文,介绍了 12 条机器学习中的“金科玉律”,其中的 7/8 两条说的就是对数据的作用的认识。
多明戈斯的观点是:数据量比算法更重要。即使算法本身并没有什么精巧的设计,但使用大量数据进行训练也能起到填鸭的效果,获得比用少量数据训练出来的聪明算法更好的性能。这也应了那句老话:数据决定了机器学习的上限,而算法只是尽可能逼近这个上限
但多明戈斯嘴里的数据可不是硬件采集或者软件抓取的原始数据,而是经过特征工程处理之后的精修数据,在他看来,特征工程(feature engineering)才是机器学习的关键。通常来说,原始数据并不直接适用于学习,而是特征筛选、构造和生成的基础。一个好的预测模型与高效的特征提取和明确的特征表示息息相关,如果通过特征工程得到很多独立的且与所属类别相关的特征,那学习过程就变成小菜一碟。
特征的本质是用于预测分类结果的信息,特征工程实际上就是对这些信息的编码。机器学习中的很多具体算法都可以归纳到特征工程的范畴之中,比如使用 正则化项的 LASSO 回归,就是通过将某些特征的权重系数缩小到 0 来实现特征的过滤;再比如主成分分析,将具有相关性的一组特征变换为另一组线性无关的特征。这些方法本质上完成的都是特征工程的任务。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

数据预处理在特征工程中扮演着至关重要的角色。华盛顿大学教授佩德罗·多明戈斯指出,数据量比算法更为重要,而特征工程则是机器学习的关键。在进行特征工程之前,数据需要经过必要的预处理。特征缩放是其中一项重要的技巧,能够消除特征不同尺度带来的偏差,常用的方法包括标准化和归一化。此外,需要关注数据的偏度,因为偏度较大的数据可能存在异常点,需要进行处理。对于异常点敏感的算法,可以采用空间标识方法进行处理。另外,数据的缺失值也需要处理,可以选择删除不完整数据或者采用更主动的方式进行处理。总之,数据预处理是特征工程的重要一环,对于构建高效的预测模型至关重要。 在模型训练之前对数据特征进行预处理的一些指导性原则包括:特征缩放可以让不同特征的取值具有相同的尺度,方法包括标准化和归一化;异常点会导致数据的有偏分布,对数变换和空间标识都可以去除数据的偏度;$k$近邻方法和线性回归可以用来对特征的缺失值进行人为赋值;删除不具备区分度的特征能够降低计算开销,增强可解释性。这些特征预处理技巧对于构建高效的预测模型至关重要。文章中还介绍了人为赋值的方法,如K近邻算法和线性回归,以及删除不具备区分度的特征的原则。这些技巧在实际任务中具有重要意义,读者可以根据实际情况灵活运用。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《机器学习 40 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(15)

  • 最新
  • 精选
  • 曾珍
    空值我是用独热编码的方式,好想处理结果比线回归填充好一点

    作者回复: onehot确实比较常用

    2018-09-16
    2
    4
  • 五岳寻仙
    老师好!在删除不具备区分度的特征时,老师讲到: 什么样的特征不具备区分度呢?这里有两个经验性的标准:一是特征取值的总数与样本数目的比例在 10% 以下,这样的特征在 100 个样本里的取值数目不超过 10 个;二是出现频率最高的特征取值的出现频率应该在出现频率次高的特征取值频率的 20 倍以上,如果有 90 个样本的特征取值为 1,4 个样本的特征取值为 2,其余取值的样本数目都在 4 个以下,这样的特征就可以被删除了。 我不太理解,意思是如果一个特征(类别变量)的取值太少(小于样本数的10%)就该被删掉吗?可是我们平时遇到很多情况,类别变量取值都是有限的几个(比如性别:男,女)。

    作者回复: 这个问题应该这么理解:性别这个特征本来就只有2个可能的取值,所以相当于每个值都取到了。如果说某个特征可能的取值范围是所有的正整数,但数据里只有1 2 3这三个,这才是文章里所说的情况。 另一个角度看,在性别这个特征上,如果100个数据里98个是男的,这样的特征也没什么意义。

    2018-09-23
    2
    3
  • 我心飞扬
    请问空间标识和log的方法是要一起用吗?还是说。有负数就不能用log,这时候怎么办?如果统一把他加成正数,这样合理吗?会不会对分析产生一些误导呢。

    作者回复: 空间标识是把异常点拉成正常的,log是处理单个特征取值范围过大的,两个解决的不是一个问题。所以结合起来用原则上可以,关键还是在于要达到什么目的。

    2018-06-27
    3
  • 林彦
    特征尺度不一致还是挺常见的。用的是文中提到的标准化方法。缺失值的K近邻和插值方法以前实践中只知道信号处理里有插值的函数,其他领域还没用过。

    作者回复: 各个学科的思想其实都是相通的。

    2018-06-26
    2
  • rkq@geekbang
    关于特征缩放我有一个问题:如果我的模型是普通的线性回归,需要对特征做缩放处理吗?我的理解是不需要,因为最终学得的参数就会体现出特征的缩放。不知道对不对?

    作者回复: 是的,线性回归并不直接基于距离,所以缩放与否计算出的参数和误差会有区别,但对整体趋势不会有太大的影响。

    2018-06-26
    1
  • 暴走的carry
    对于处理缺失值,以前我只知道用平均值或众数来代替,现在学会了,还能内嵌一个机器学习算法来处理缺失值,突然高端了好多

    作者回复: 最好还是没有缺失值

    2019-01-13
  • Daryl
    有个入门的问题,麻烦帮我解答下。 1:对训练集标准化/归一化/pca后,是否也要对测试集执行同样操作? 2:如果同样的操作,是直接对测试集transferm(),还是fit_transferm()? 3:标准化/归一化/pca 怎么针对数据集选择用哪种方式?

    作者回复: 测试集也要做同样操作,但需要使用训练集的指标。在对测试集做标准化时,需要使用\mu_train和\sigma_train,而不是\mu_test和\sigma_test。至于选择哪种方式,就没有一定之规了,需要具体情况具体分析。

    2019-01-10
  • 黄海娜
    老师,空值怎么用独热编码的方式呀?

    作者回复: 空值是指属性没有取值?这属于不完整数据了吧。那就丢弃或者人为估计一个值赋给它。

    2018-11-25
  • Y024
    https://homes.cs.washington.edu/~pedrod/papers/cacm12.pdf 文中所提小文链接

    作者回复: 感谢分享

    2018-10-11
  • Geek_405126
    在用随机森林模型的时候,我们能知道每棵树在不同layer的具体特征变量名字吗?

    作者回复: 当然可以,每棵树每个节点用来分裂的特征都是随机选择的。

    2018-06-27
收起评论
显示
设置
留言
15
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部