机器学习40讲
王天一
工学博士,副教授
立即订阅
8045 人已学习
课程目录
已完结 44 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 打通修炼机器学习的任督二脉
免费
机器学习概观 (10讲)
01 | 频率视角下的机器学习
02 | 贝叶斯视角下的机器学习
03 | 学什么与怎么学
04 | 计算学习理论
05 | 模型的分类方式
06 | 模型的设计准则
07 | 模型的验证方法
08 | 模型的评估指标
09 | 实验设计
10 | 特征预处理
统计机器学习模型 (18讲)
11 | 基础线性回归:一元与多元
12 | 正则化处理:收缩方法与边际化
13 | 线性降维:主成分的使用
14 | 非线性降维:流形学习
15 | 从回归到分类:联系函数与降维
16 | 建模非正态分布:广义线性模型
17 | 几何角度看分类:支持向量机
18 | 从全局到局部:核技巧
19 | 非参数化的局部模型:K近邻
20 | 基于距离的学习:聚类与度量学习
21 | 基函数扩展:属性的非线性化
22 | 自适应的基函数:神经网络
23 | 层次化的神经网络:深度学习
24 | 深度编解码:表示学习
25 | 基于特征的区域划分:树模型
26 | 集成化处理:Boosting与Bagging
27 | 万能模型:梯度提升与随机森林
总结课 | 机器学习的模型体系
概率图模型 (14讲)
28 | 最简单的概率图:朴素贝叶斯
29 | 有向图模型:贝叶斯网络
30 | 无向图模型:马尔可夫随机场
31 | 建模连续分布:高斯网络
32 | 从有限到无限:高斯过程
33 | 序列化建模:隐马尔可夫模型
34 | 连续序列化模型:线性动态系统
35 | 精确推断:变量消除及其拓展
36 | 确定近似推断:变分贝叶斯
37 | 随机近似推断:MCMC
38 | 完备数据下的参数学习:有向图与无向图
39 | 隐变量下的参数学习:EM方法与混合模型
40 | 结构学习:基于约束与基于评分
总结课 | 贝叶斯学习的模型体系
结束语 (1讲)
结课 | 终有一天,你将为今天的付出骄傲
机器学习40讲
登录|注册

10 | 特征预处理

王天一 2018-06-26
华盛顿大学教授、《终极算法》(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/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《机器学习40讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(12)

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

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

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

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

    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
  • Kevin.zhang🌏
    作业:
           前段时间在通过爬虫程序获取了原始数据,在数据清洗的阶段,发现有很多的缺失数据,还有重复数据,重复数据之前没有使用pandas,就直接用的SQL筛选,对于缺失数据,我采用的笨办法,就是直接观察是哪个特征缺失,然后进行最原始的人工赋值替换操作,说实话,工作量大还不靠谱!边做心里还边打鼓!我不知道如何采用线性回归和K近邻算法操作!
    2018-12-26
  • 黄海娜
    老师,空值怎么用独热编码的方式呀?

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

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

    作者回复: 感谢分享

    2018-10-11
  • 五岳寻仙
    老师好!在删除不具备区分度的特征时,老师讲到:

    什么样的特征不具备区分度呢?这里有两个经验性的标准:一是特征取值的总数与样本数目的比例在 10% 以下,这样的特征在 100 个样本里的取值数目不超过 10 个;二是出现频率最高的特征取值的出现频率应该在出现频率次高的特征取值频率的 20 倍以上,如果有 90 个样本的特征取值为 1,4 个样本的特征取值为 2,其余取值的样本数目都在 4 个以下,这样的特征就可以被删除了。

    我不太理解,意思是如果一个特征(类别变量)的取值太少(小于样本数的10%)就该被删掉吗?可是我们平时遇到很多情况,类别变量取值都是有限的几个(比如性别:男,女)。

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

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

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

    2018-06-27
  • 我心飞扬
    做标准化之后有负数不能log了 是不是先log

    作者回复: 有负数时可以通过减最小值再加1把所有数据变成正数;也可以取绝对值做对数,再对负数得到的结果乘以-1。但这些都是纯数学的处理,线性操作可能会破坏数据的统计特性,所以还是选择其他的方法吧。
    既然已经做了标准化,数据的尺度就应该基本一致了,为什么还要做对数呢?

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

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

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

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

    2018-06-26
收起评论
12
返回
顶部