程序员的数学【概率论】(三)

简介: 本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 概率论

九、协方差

🚩协方差是对于方差的推广,对于两个随机变量,它们的协方差是反应它们两个之间的线性相关程度的,把 x 2 换成 x 1那就是方差了,展开之后就是 x 1 和 x 2  的期望减去它们期望的乘积。

方差公式:

33.png

协方差公式:34.png

image.png

显然这是一个对称阵,这在我们机器学习里面会经常使用的!

import numpy as np
X = np.random.randint(1, 20, size = (5, 5))
# numpy计算cov
display(np.cov(X,
               rowvar = False,# 按照列,进行计算
               bias = True))# 计算的是总体方差
print('第一行第一个协方差:%0.2f' %
      (np.mean(X[:, 0] ** 2) - (np.mean(X[:, 0])) ** 2))
print('第一行第二个协方差:%0.2f' %
      (np.mean(X[:, 0] * X[:, 1]) - X[:, 0].mean() * X[:, 1].mean()))
print('第一行最后一个协方差:%0.2f' %
      (np.mean(X[:, 0] * X[:, -1]) - (np.mean(X[:, 0])) * (np.mean(X[:, -1]))))

35.png

十、机器学习中常见分布

正太分布:

36.png

均匀分布:

37.png

二项分布:

38.png

自然界和生活中很多事件都服从正太分布的,或者近似的服从正太分布的,比如人的身高、体重和智商,大部分人是平均值,小部分人比较胖,或比较瘦;比较高,或比较矮;比较愚钝,或比较聪明。还有考试成绩啊,人的收入等这些都近似服从正太分布。


二项分布拿我们抛硬币的例子来说,比如 x = 0 是背面朝下的概率,x = 1  是正面朝上的概率,那么它取值只有 0  或 1  两种情况。当然不用 0 或 1 ,你用 − 1 和 + 1  也是可以的。都是二项分布,取每个值都有一个概率值。在我们机器学习中,主要用的就是这几种概率分布。


十一、最大似然估计

🚩最大似然是估计(求解)一个概率密度函数中参数问题的。比如有个向量X,θ 是它的参数,比如正太分布中的μ 和 σ这都是需要估计的参数。

image.png

那我们怎么估计这组参数呢?肯定是根据一组样本来学习,假设我们有 n  个样本它们是独立同分布的,也就是说它们服从同样一个概率分布,并且它们之间相互独立的,抽样出来的


那么所有变量发生的概率就可以写成它们乘积的形式,因为它们之间是相互独立的嘛,这时 L  是似然函数,这里 x  是已经取了具体样本的值了,θ  是我们要估计的参数

image.png

既然这组样本是已经抽样抽出来的,是已经发生的,我们肯定要把它发生的概率最大化,也就是说要最大化这样一个似然函数

image.png

求解一个函数的极值,就是要求解它的导数,也就是梯度等于0

image.png

而这样的乘积形式求导是不容易的(多个累乘,就更加麻烦!),之前讲过导数求导公式

image.png

如果更多项展开是非常麻烦的,所以我们可以对函数取对数,因为对数函数是单调增函数,所以求原函数的极值,也等于求它的对数形式的极值,所以我们两边取对数的话,就把连乘的形式转化为了连加的形式,因为连加的形式的导数,就是等于导数的连加39.png

所以我们要解决的问题就是求这个函数的极大值,这个可以对 θ  求导让它等于 0 得到,带 log ⁡的是对数似然函数,这就是最大似然函数最基本的思想

image.png

如果数据符合正太分布,那么通过最大似然可以推导出线性回归的损失函数MSE(最小二乘法):

40.png



目录
相关文章
|
机器学习/深度学习 人工智能 算法
数学基础之概率论
数学基础之概率论
77 1
|
程序员
程序员的数学【概率论】(二)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 概率论
247 0
程序员的数学【概率论】(二)
|
机器学习/深度学习 算法 数据挖掘
程序员的数学【概率论】(一)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 概率论
298 0
程序员的数学【概率论】(一)
|
机器学习/深度学习 程序员
程序员的数学【微积分基础】(二)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 微积分基础,微积分是公式推导的基础,如果你也关注我的专栏:西瓜书读书笔记,里面对公式进行详细推导的过程中,运用到了大量的 导数,积分,身为一名程序员,我们务必掌握一些必备的数学知识。
252 0
程序员的数学【微积分基础】(二)
|
机器学习/深度学习 程序员
程序员的数学【微积分基础】(一)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 微积分基础,微积分是公式推导的基础,如果你也关注我的专栏:西瓜书读书笔记,里面对公式进行详细推导的过程中,运用到了大量的 导数,积分,身为一名程序员,我们务必掌握一些必备的数学知识。
319 0
程序员的数学【微积分基础】(一)
|
机器学习/深度学习 数据挖掘 程序员
程序员的数学【线性代数基础】(一)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 线性代数基础,在机器学习中经常会有矩阵、向量的定义以及计算,是公式定义、推导中必不可少的一部分内容,很多基础概念的定义中都用到了向量的概念,有关线性代数,
383 0
程序员的数学【线性代数基础】(一)
|
机器学习/深度学习 人工智能 程序员
程序员的数学【线性代数基础】(二)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 线性代数基础,在机器学习中经常会有矩阵、向量的定义以及计算,是公式定义、推导中必不可少的一部分内容,很多基础概念的定义中都用到了向量的概念,有关线性代数,
169 0
程序员的数学【线性代数基础】(二)
|
机器学习/深度学习 程序员
程序员的数学【线性代数基础】(三)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 线性代数基础,在机器学习中经常会有矩阵、向量的定义以及计算,是公式定义、推导中必不可少的一部分内容,很多基础概念的定义中都用到了向量的概念,有关线性代数,
354 0
程序员的数学【线性代数基础】(三)
|
数据采集 存储 搜索推荐
数学之美
数学之美
197 0
|
设计模式 机器学习/深度学习 算法
数学,离一个程序员有多近?
for循环没算法快 1. for 循环实现 2. 算法逻辑实现 3. 耗时曲线对比 四、Java中的算法运用 1. HashMap的扰动函数 2. 斐波那契(Fibonacci)散列法 3. 梅森旋转算法(Mersenne twister) 五、程序员数学入门
263 0
数学,离一个程序员有多近?