程序员的数学基础课
黄申
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讲)
结束语 | 从数学到编程,本身就是一个很长的链条
程序员的数学基础课
登录|注册

40 | 线性回归(中):如何使用最小二乘法进行直线拟合?

黄申 2019-03-18
你好,我是黄申。
上一节,我提到了,求解线性回归和普通的线性方程组最大的不同在于误差ε。在求解线性方程组的时候,我们并不考虑误差的存在,因此存在无解的可能。而线性回归允许误差ε的存在,我们要做的就是尽量把ε最小化,并控制在一定范围之内。这样我们就可以求方程的近似解。而这种近似解对于海量的大数据分析来说是非常重要的。
但是现实中的数据一定存在由于各种各样原因所导致的误差,因此即使自变量和因变量之间存在线性关系,也基本上不可能完美符合这种线性关系。总的来说,线性回归分析并不一定需要 100% 精确,而误差ε的存在可以帮助我们降低对精度的要求。通常,多元线性回归会写作:
这里的 是自变量, 是因变量, 是截距,,…, 是自变量的系数, 是随机误差。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《程序员的数学基础课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(13)

  • Peng
    老师,线性代数这部分开始很难看懂了,是不是需要先复习一遍线代?请老师指点,明确课程前置条件。

    作者回复: 线性代数基础应该就够了,或者是根据我课程的内容有针对性的补一下,这样效率比较高

    2019-03-18
    3
  • qinggeouye
    补充证明的步骤 d ,tr(B'X'XB) 对 矩阵 B 的求导,拆成了两部分 tr(B'(X'XB)) 、tr((B'X'X)B) 分别对 B 求导,求和;意思是 B' 和 B 实际上都与矩阵B相关,第一部分求导相当于固定 B 再对 B 求导,第二部分固定 B‘ 后对 B 求导,而后两部分利用了补充证明步骤 c 的结论得出证明结果?

    作者回复: 是的

    2019-03-30
    2
  • Temme
    有个疑问,tr()是取对角线,但这里实际tr当中只是一个一行一列的矩阵,感觉这里应该会有拓展,实际应用中有没有可能tr当中是多行多列的矩阵,比如多个自变量对应多个因变量需要去拟合?用最小二乘也应该适用?
    2019-10-29
  • Paul Shan
    tr(B'X'XB) 对 矩阵 B 的求导,拆成了两部分 tr(B'(X'XB)) 、tr((B'X'X)B) 分别对 B, 这一步没有看懂,主要是因为tr函数,这个函数只有在矩阵中出现而不在其他单因变量的函数中出现,我的疑问是求导的乘法法则可以直接应用在tr函数的里面而不用管tr函数对求导的影响吗?
    2019-10-07
  • Paul Shan
    最小二乘法是最小化误差作为目标求出系数矩阵。
    虽然以前学过微积分和线性代数,但是矩阵函数的求导还是不太熟悉,老师在这方面有什么文章书籍推荐吗,多谢!

    作者回复: 我觉得矩阵求导,可以细分为单个方程式的求导,如果单个方程式求导理解了,矩阵形式就不难了

    2019-10-03
  • 张九州
    ||XB-Y||后面的两个2是什么意思?$b’{i,k}=b{k,i}$这个表达式是什么?不记得以前学过没有了

    作者回复: 这个是格式问题,||...||2(2在下方)表示L2范数,而2在上方表示L2范数的平方。后面一个$可能是排版问题,忽略,只看b’{i,k}=b{k,i},b’{i,k}表示矩阵B'在行i列k位置的数值,b{k,i}表示矩阵B在行k列i的数值

    2019-09-29
  • Minis-Shu
    老师 我说的非正交矩阵就是行列式不为1的矩阵,我其实是用您讲的最小二乘法求解刚体变换来着,把矩阵看成空间坐标系的一组基向量,矩阵非正交的话,基向量之间的外积就不为0,而利用非正交矩阵进行刚体变换时,向量变换之后,其长度及夹角会发生变化。我就想着,如何将非正交矩阵正交化呢?
    2019-06-19
  • Minis-Shu
    老师,您好!我想问一下,我通过最小二乘求出的系数矩阵是非正交矩阵,有没有什么办法,使得结果是正交阵呢?

    作者回复: 系数矩阵确切的说,应该是个向量,你能否解释一下你这里所说的“非正交矩阵”是指什么?

    2019-06-18
  • zzz
    不太明白为什么要取tr()

    作者回复: 你可以看下L2范式的定义,就能明白为什么我们只关心对角线上的值

    2019-04-08
  • 逐风随想
    黄老师,越到后面越吃力,怎么办。当年家里条件不好,读到初二就辍学出去工作了。是否需要从新把初中到大学的数学知识补一补呢?

    作者回复: 咱们这个专栏还是讲究实用性,从应用和需求出发。如果觉得有些知识需要补,我的建议是根据不理解知识点出发,逐步倒推,缺啥补啥,一定会有收获

    2019-03-31
  • howhigh
    黄老师,关于矩阵求导的步骤我依然没有看懂,有没有矩阵求导的资料推荐?

    作者回复: 其实如果你理解了一般函数的求导,矩阵求导并不难理解。你可把矩阵先简化为向量,也就是单个方程式来看,然后整个矩阵就是不同向量的集合。

    2019-03-21
  • 那时刻
    重温下久违的线性代数
    2019-03-18
  • 拉欧
    今天的数学推导看的有点吃力,不过还好

    作者回复: 加油加油 一步步来

    2019-03-18
收起评论
13
返回
顶部