程序员的数学基础课
黄申
LinkedIn资深数据科学家
立即订阅
23478 人已学习
课程目录
已完结 57 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 作为程序员,为什么你应该学好数学?
免费
导读 (1讲)
导读:程序员应该怎么学数学?
基础思想篇 (18讲)
01 | 二进制:不了解计算机的源头,你学什么编程
02 | 余数:原来取余操作本身就是个哈希函数
03 | 迭代法:不用编程语言的自带函数,你会如何计算平方根?
04 | 数学归纳法:如何用数学归纳提升代码的运行效率?
05 | 递归(上):泛化数学归纳,如何将复杂问题简单化?
06 | 递归(下):分而治之,从归并排序到MapReduce
07 | 排列:如何让计算机学会“田忌赛马”?
08 | 组合:如何让计算机安排世界杯的赛程?
09 | 动态规划(上):如何实现基于编辑距离的查询推荐?
10 | 动态规划(下):如何求得状态转移方程并进行编程实现?
11 | 树的深度优先搜索(上):如何才能高效率地查字典?
12 | 树的深度优先搜索(下):如何才能高效率地查字典?
13 | 树的广度优先搜索(上):人际关系的六度理论是真的吗?
14 | 树的广度优先搜索(下):为什么双向广度优先搜索的效率更高?
15 | 从树到图:如何让计算机学会看地图?
16 | 时间和空间复杂度(上):优化性能是否只是“纸上谈兵”?
17 | 时间和空间复杂度(下):如何使用六个法则进行复杂度分析?
18 | 总结课:数据结构、编程语句和基础算法体现了哪些数学思想?
概率统计篇 (14讲)
19 | 概率和统计:编程为什么需要概率和统计?
20 | 概率基础(上):一篇文章帮你理解随机变量、概率分布和期望值
21 | 概率基础(下):联合概率、条件概率和贝叶斯法则,这些概率公式究竟能做什么?
22 | 朴素贝叶斯:如何让计算机学会自动分类?
23 | 文本分类:如何区分特定类型的新闻?
24 | 语言模型:如何使用链式法则和马尔科夫假设简化概率模型?
25 | 马尔科夫模型:从PageRank到语音识别,背后是什么模型在支撑?
26 | 信息熵:如何通过几个问题,测出你对应的武侠人物?
27 | 决策树:信息增益、增益比率和基尼指数的运用
28 | 熵、信息增益和卡方:如何寻找关键特征?
29 | 归一化和标准化:各种特征如何综合才是最合理的?
30 | 统计意义(上):如何通过显著性检验,判断你的A/B测试结果是不是巧合?
31 | 统计意义(下):如何通过显著性检验,判断你的A/B测试结果是不是巧合?
32 | 概率统计篇答疑和总结:为什么会有欠拟合和过拟合?
线性代数篇 (13讲)
33 | 线性代数:线性代数到底都讲了些什么?
34 | 向量空间模型:如何让计算机理解现实事物之间的关系?
35 | 文本检索:如何让计算机处理自然语言?
36 | 文本聚类:如何过滤冗余的新闻?
37 | 矩阵(上):如何使用矩阵操作进行PageRank计算?
38 | 矩阵(下):如何使用矩阵操作进行协同过滤推荐?
39 | 线性回归(上):如何使用高斯消元求解线性方程组?
40 | 线性回归(中):如何使用最小二乘法进行直线拟合?
41 | 线性回归(下):如何使用最小二乘法进行效果验证?
42 | PCA主成分分析(上):如何利用协方差矩阵来降维?
43 | PCA主成分分析(下):为什么要计算协方差矩阵的特征值和特征向量?
44 | 奇异值分解:如何挖掘潜在的语义关系?
45 | 线性代数篇答疑和总结:矩阵乘法的几何意义是什么?
综合应用篇 (6讲)
46 | 缓存系统:如何通过哈希表和队列实现高效访问?
47 | 搜索引擎(上):如何通过倒排索引和向量空间模型,打造一个简单的搜索引擎?
48 | 搜索引擎(下):如何通过查询的分类,让电商平台的搜索结果更相关?
49 | 推荐系统(上):如何实现基于相似度的协同过滤?
50 | 推荐系统(下):如何通过SVD分析用户和物品的矩阵?
51 | 综合应用篇答疑和总结:如何进行个性化用户画像的设计?
加餐 (3讲)
数学专栏课外加餐(一) | 我们为什么需要反码和补码?
数学专栏课外加餐(二) | 位操作的三个应用实例
数学专栏课外加餐(三):程序员需要读哪些数学书?
结束语 (1讲)
结束语 | 从数学到编程,本身就是一个很长的链条
程序员的数学基础课
登录|注册

28 | 熵、信息增益和卡方:如何寻找关键特征?

黄申 2019-02-18
你好,我是黄申。今天我们来说说特征选择。
我们已经讨论过信息熵和信息增益在决策树算法中的重要作用。其实,它们还可以运用在机器学习的其他领域,比如特征选择。你可能对“特征选择”这个名词不太熟悉,没有关系,我先花点时间,给你介绍一下什么是特征选择,以及机器学习为什么需要这个步骤。

什么是特征选择?

在编程领域中,机器学习已经有了十分广泛的应用,它主要包括监督式学习(Supervised Learning)和非监督式的学习(Unsupervised Learning)。监督式学习,是指通过训练资料学习并建立一个模型,并依此模型推测新的实例,主要包括分类(Classification)和回归(Regression)。
无论是在监督学习还是非监督学习中,我们都可以使用特征选择。不过,我今天要聊的特征选择,会聚焦在监督式学习中的特征处理方法。因此,为了说清楚特征选择是什么,以及为什么要进行这个步骤,我们先来看看监督式机器学习的主要步骤。
机器学习的步骤主要包括数据的准备、特征工程、模型拟合、离线和在线测试。测试过程也许会产生新的数据,用于进一步提升模型。在这些处理中,特征工程是非常重要的一步。
“特征”(Feature),是机器学习非常常用的术语,它其实就是可用于模型拟合的各种数据。前面讲朴素贝叶斯分类时,我解释了如何把现实世界中水果的各类特征转化为计算机所能理解的数据,这个过程其实就是最初级的特征工程。当然,特征工程远不止原始特征到计算机数据的转化,还包括特征选择、缺失值的填补和异常值的去除等等。这其中非常重要的一步就是特征选择。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《程序员的数学基础课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(8)

  • 那时刻
    老师,你好。关于使用卡方检验来进行特征选择,能否在答疑课的时候,给个具体例子讲解下?

    作者回复: 你好,你说的具体例子,是指通过实际的数据或代码来分析一下?

    2019-02-20
    2
  • watson
    一说自己会概率,上帝就发笑 ...
    2019-07-11
    1
  • Paul Shan
    本文先引入了条件熵,条件熵只反映了特征和全局数据的相关性,并没有考虑不在条件分类下的情况。例如癌症筛查,只给没有癌症标签的分类器,全局准确度很高,因为患癌毕竟是小概率事件。为了解决这个问题,引入了条件分类下的信息增益。这种情况下,只给没有癌症的分类器就现形了,信息增益为零。
    和条件分类下的信息增益类似,卡方检验用联合概率来简化计算,目的还是计算相关性。我感觉卡方检验和相关系数非常类似,请问老师为什么不直接用相关系数检验相关性,卡方检验相对于相关系数有什么好处?

    作者回复: 原理是类似的,但是假设和具体实现有所不同,个人觉得可以在实验中都尝试一下看看效果

    2019-09-12
  • William
    老师,在计算信息增益的公式中,P(cj|Dfi)和P(cj|Dfi)【带横杠】中的cj的含义应该是不同的吧?前者是出现fi特征的数据集合中第j个分类,后者是未出现fi特征的数据集合中第j个数据的分类。

    作者回复: 对的

    2019-08-20
  • zhulihui
    老师好,想问个问题,一定要做特征选择么,能说说特征选择的必要性么。如果把所有特征都扔到模型会有什么副作用

    作者回复: 这是个好问题,通常要结合具体的案例和数据来看。如果特征数量很少的时候,一般不需要。如果特征太多,而样本不是很多的时候,容易过拟合,而且使用全部的特征效率也比较差,这个时候特征选择就有意义了

    2019-03-21
  • Bora.Don
    老师,您好,感觉最近几节课您讲了很多概念,很多公式,可是运用上的实例似乎有点少,第一遍看懂了,可是过两天估计就忘记了,能否提供一下代码?这样可以自己动手操作一遍,非常感谢

    作者回复: 我在专栏结束后整理一下,供大家参考

    2019-03-10
  • 闪光辉
    为什么不少地方卡方的计算公式=sum((A-T)^2/T) 的区别是什么(备注:A是实际值,T是理论值),其区别是什么

    作者回复: 你说的应该是卡方检验,两者概念有所不同。

    2019-03-06
  • 13311195819
    老师您用的什么画图软件,看起来画图很漂亮;我在网上找了好久找不到

    作者回复: 你是指这一节专栏吗?好像这期没有画什么图啊😆

    2019-02-20
收起评论
8
返回
顶部