九、协方差
🚩协方差是对于方差的推广,对于两个随机变量,它们的协方差是反应它们两个之间的线性相关程度的,把 x 2 换成 x 1那就是方差了,展开之后就是 x 1 和 x 2 的期望减去它们期望的乘积。
方差公式:
协方差公式:
显然这是一个对称阵,这在我们机器学习里面会经常使用的!
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]))))
十、机器学习中常见分布
正太分布:
均匀分布:
二项分布:
自然界和生活中很多事件都服从正太分布的,或者近似的服从正太分布的,比如人的身高、体重和智商,大部分人是平均值,小部分人比较胖,或比较瘦;比较高,或比较矮;比较愚钝,或比较聪明。还有考试成绩啊,人的收入等这些都近似服从正太分布。
二项分布拿我们抛硬币的例子来说,比如 x = 0 是背面朝下的概率,x = 1 是正面朝上的概率,那么它取值只有 0 或 1 两种情况。当然不用 0 或 1 ,你用 − 1 和 + 1 也是可以的。都是二项分布,取每个值都有一个概率值。在我们机器学习中,主要用的就是这几种概率分布。
十一、最大似然估计
🚩最大似然是估计(求解)一个概率密度函数中参数问题的。比如有个向量X,θ 是它的参数,比如正太分布中的μ 和 σ这都是需要估计的参数。
那我们怎么估计这组参数呢?肯定是根据一组样本来学习,假设我们有 n 个样本它们是独立同分布的,也就是说它们服从同样一个概率分布,并且它们之间相互独立的,抽样出来的
那么所有变量发生的概率就可以写成它们乘积的形式,因为它们之间是相互独立的嘛,这时 L 是似然函数,这里 x 是已经取了具体样本的值了,θ 是我们要估计的参数
既然这组样本是已经抽样抽出来的,是已经发生的,我们肯定要把它发生的概率最大化,也就是说要最大化这样一个似然函数
求解一个函数的极值,就是要求解它的导数,也就是梯度等于0
而这样的乘积形式求导是不容易的(多个累乘,就更加麻烦!),之前讲过导数求导公式
如果更多项展开是非常麻烦的,所以我们可以对函数取对数,因为对数函数是单调增函数,所以求原函数的极值,也等于求它的对数形式的极值,所以我们两边取对数的话,就把连乘的形式转化为了连加的形式,因为连加的形式的导数,就是等于导数的连加
所以我们要解决的问题就是求这个函数的极大值,这个可以对 θ 求导让它等于 0 得到,带 log 的是对数似然函数,这就是最大似然函数最基本的思想
如果数据符合正太分布,那么通过最大似然可以推导出线性回归的损失函数MSE(最小二乘法):