本节主要讨论评估模型的方法。

下面先简单回顾一下线性回归和逻辑回归的知识点。

线性回归

两种方法求损失函数:

1、梯度下降方法

$$ J(\theta0,\theta_1,...\theta_n)=\frac 1 {2m} \sum{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2 $$ 对$$ \theta_j $$求导后

$$ \thetaj:=\theta_j-\alpha \frac 1 m \sum{i=1}^m((h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}) $$

2、正规方程方法

正规方程是通过求解下面的方程来找出使得代价函数最小的参数的:$$ \dfrac \partial \theta_j J(\theta_j)=0 $$, 这里的$$ \theta$$ 替换为下面的$$ w $$ $$,则求$$$$ y=xw $$ 转化为求解得$$\hat{w}=(X^TX)^{-1}X^Ty$$ 这里的$$ \hat{w} $$符号表示参数$$ w $$ 预测出的估计值为$$\hat{w}$$

而在LWLR(局部加权线性回归)中,参数的计算表达式变为:$$ \hat{w}=(X^TWX)^{-1}X^TWy $$:

因为此时优化的是:Fit $$ \theta $$ to minimize $$ \sum_i w^{(i)}(y^{(i)}-\theta^Tx^{(i)})^2 $$ output $$ \theta^Tx $$

3、梯度下降 VS 正规方程

梯度下降 正规方程
需要选择$$ \alpha $$学习速率 不需要
需要多次迭代 一次运算获得
当特征数量n很大也能较好适用 特征数量n较大时计算代价大,因为逆矩阵技术需要时间复杂度$$ O(n^3) $$,通常$$ n<10000 $$ 时可接受
适用于各种类型的模型 只适用线性回归,不适用逻辑回归和其他模型

逻辑回归

原先线性回归中有 $$ h\theta(x)=\theta_0+\theta_1 x $$ 现在 $$ h\theta(x)=g(\theta^T x)=\frac 1 {1+e^{-\theta^T x}}$$

令 $$ g(z)=\dfrac 1 {1+e^{-z}} $$ 推导其导数为 $$ g'(z)={(\dfrac 1 {1+e^{-z}})'}=g(z)(1-g(z))$$

由于$$ \theta$$ 函数的值有特殊的含义,它表示 $$ h_\theta(x)$$ 结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率分别为:

$$ P(y=1|x;\theta)=h_\theta(x)$$

$$ P(y=0|x;\theta)=1-h_\theta(x)$$

Logistic回归方法主要是用最大似然估计来学习的,所以单个样本的后验概率为:$$ p(y|x;\theta)=(h\theta(x))^y(1-h\theta(x))^{1-y}$$

因为样本数据(m个)独立,所以它们的联合分布可以表示为各边际分布的乘积,取似然函数为:

$$ L(\theta)=P(\vec{y}|X;\theta) =\prod{i=1}^m P(y^{(i)}|x^{(i)};\theta)=\prod{i=1}^m (h\theta(x^{(i)}))^{y^{(i)}}(1-h\theta(x^{(i)}))^{1-y^{(i)}} $$ 对结果取对数

$$l(\theta)=log(L(\theta))=\sum{i=1}^m log(h\theta(x^{(i)}))^{y^{(i)}} + log(1-h_\theta(x^{(i)}))^{1-y^{(i)}} $$

$$l(\theta)=log(L(\theta))=\sum{i=1}^m y^{(i)}log(h\theta(x^{(i)})) + (1-y^{(i)})log(1-h_\theta(x^{(i)})) $$

计算损失函数

其实它的loss function为$$ -l(\theta) $$,因此我们需使loss function最小,可采用梯度下降法得到。梯度下降法公式为:

$$ \frac {\partial}{\partial\theta_j} l(\theta)=(y\frac 1 {g(\theta^Tx)}-(1-y)\frac 1 {1-g(\theta^Tx)})\frac {\partial}{\partial\theta_j}g(\theta^Tx) $$

$$ =(y\frac 1 {g(\theta^Tx)}-(1-y)\frac 1 {1-g(\theta^Tx)})g(\theta^Tx)(1-g(\theta^Tx))\frac \partial \thetaj \theta^Tx= (y(1-g(\theta^Tx))-(1-y)g(\theta^Tx))x_j=(y-h\theta(x))x_j $$

所以求完偏导数以后就可以进行参数更新为:$$ \thetaj:=\theta_j+\alpha(y^{(i)}-h\theta(x^{(i)}))xj^{(i)}$$。加上$$ \sum $$ 即为:$$ \theta_j:=\theta_j+\alpha\sum{i=1}^m(y^{(i)}-h_\theta(x^{(i)}))x_j^{(i)} $$,这里$$\alpha $$是学习速率。

results matching ""

    No results matching ""