机器学习(1)-线性回归
算法原理:
假设一个函数可以拟合所有的数据,求出这个函数的参数,并用该函数来进行预测
数学推导
假设一个函数
当我们拿到一些数据时,先假设一个函数:hθ(X)=θ0X0+θ1X1+⋯+θiXi<script type="math/tex" id="MathJax-Element-15212">h_\theta(X)=\theta_0X_0+\theta_1X_1+\dots+\theta_iX_i</script>
其中假设X0=1<script type="math/tex" id="MathJax-Element-15213">X_0=1</script>,X1<script type="math/tex" id="MathJax-Element-15214">X_1</script>到Xi<script type="math/tex" id="MathJax-Element-15215">X_i</script>表示特征,θ0到θi<script type="math/tex" id="MathJax-Element-15216">\theta_0到\theta_i</script>表示参数,我们的目的就是要求出这些参数
转换成矩阵:hθ(X)=∑ni=1θiXi=θTX<script type="math/tex" id="MathJax-Element-15217">h_\theta(X)=\sum_{i=1}^n\theta_iX_i=\theta^TX</script> 表示参数矩阵的转置矩阵*x矩阵考虑误差
我们假设的函数跟实际值之间存在误差,于是对于每一个样本有(1) y(i)=θTX(i)+ξ(i)<script type="math/tex" id="MathJax-Element-15218">y^{(i)}=\theta^TX^{(i)}+\xi^{(i)}</script>- 误差三要点(假设)
- 独立:每个样本都是独立而不互相影响
- 同分布:所有样本都是在相同的环境下
- 高斯分布:服从且均值为0,方差为θ2<script type="math/tex" id="MathJax-Element-15219">\theta^2</script>的高斯分布
假设误差服从高斯分布(正态分布)且均值为0,方差为θ2<script type="math/tex" id="MathJax-Element-15220">\theta^2</script>,均值为0是因为误差有的偏大有的偏小,所以我们假设他们的均值=0,如果数据的方差不为θ2<script type="math/tex" id="MathJax-Element-15221">\theta^2</script>,应该想办法修改为θ2<script type="math/tex" id="MathJax-Element-15222">\theta^2</script>
那么有(2) p(ξ(i))=12πσ√exp(−(ϵ(i))22σ2)<script type="math/tex" id="MathJax-Element-15223">p(\xi^{(i)})=\frac{1}{\sqrt{2\pi\sigma}}exp(-\frac{(\epsilon^{(i)})^2}{2\sigma^2})</script>根据(1)代入(2)可得p(y(i)|x(i);θ)=12πσ√exp(−(y(i)−θTx(i))22σ2)<script type="math/tex" id="MathJax-Element-15224">p(y^{(i)}|x^{(i)};\theta)=\frac{1}{\sqrt{2\pi\sigma}}exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})</script>
似然函数:在已经知道知道概率和结果的情况下,猜测其参数
- (一个样本)如 p(y(i)|x(i);θ)=12πσ√exp(−(y(i)−θTx(i))22σ2)<script type="math/tex" id="MathJax-Element-15225">p(y^{(i)}|x^{(i)};\theta)=\frac{1}{\sqrt{2\pi\sigma}}exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})</script>,我们已经知道y(i),x(i)<script type="math/tex" id="MathJax-Element-15226">y^{(i)},x^{(i)}</script>,求一个θ<script type="math/tex" id="MathJax-Element-15227">\theta</script>使得p(y(i)|x(i);θ)<script type="math/tex" id="MathJax-Element-15228">p(y^{(i)}|x^{(i)};\theta)</script>最大,即最大可能性的误差
- 考虑到到多个样本,我们进行累乘:∏ni=1p(y(i)|x(i);θ)=∏ni=112πσ√exp(−(y(i)−θTx(i))22σ2)<script type="math/tex" id="MathJax-Element-15229">\prod_{i=1}^n p(y^{(i)}|x^{(i)};\theta)=\prod_{i=1}^n\frac{1}{\sqrt{2\pi\sigma}}exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})</script>
- 由于累乘难以计算,使用log转化为累加:logAB=logA+logB
logL(θ)=log∏ni=112πσ√exp(−(y(i)−θTx(i))22σ2)<script type="math/tex" id="MathJax-Element-15230">logL(\theta)=log\prod_{i=1}^n\frac{1}{\sqrt{2\pi\sigma}}exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})</script>
化简:
logL(θ)=∑ni=1log12πσ√exp(−(y(i)−θTx(i))22σ2)<script type="math/tex" id="MathJax-Element-15231">logL(\theta)=\sum_{i=1}^nlog\frac{1}{\sqrt{2\pi\sigma}}exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}) </script>
logL(θ)=nlog12πσ√−12.1σ2∑ni=1(y(i)−θTx(i))2<script type="math/tex" id="MathJax-Element-15232">logL(\theta)=nlog\frac{1}{\sqrt{2\pi\sigma}}-\frac{1}{2}.\frac{1}{\sigma^2}\sum_{i=1}^n(y^{(i)}-\theta^Tx^{(i)})^2</script>
由于nlog12πσ√>0<script type="math/tex" id="MathJax-Element-15233">nlog\frac{1}{\sqrt{2\pi\sigma}}>0</script>,要求logL(θ)<script type="math/tex" id="MathJax-Element-15234">logL(\theta)</script>的最大值,只需要求12∑ni=1(y(i)−θTx(i))2<script type="math/tex" id="MathJax-Element-15235">\frac{1}{2}\sum_{i=1}^n(y^{(i)}-\theta^Tx^{(i)})^2</script>的最小值
(1σ2<script type="math/tex" id="MathJax-Element-15236">\frac{1}{\sigma^2}</script>为常数,忽略)
目标函数
- 有上面可得出目标函数是: J(θ)=12∑ni=1(y(i)−θTx(i))2<script type="math/tex" id="MathJax-Element-15237">J(\theta)=\frac{1}{2}\sum_{i=1}^n(y^{(i)}-\theta^Tx^{(i)})^2</script>,也称最小二乘法
- 求最小值的套路:求偏导数
- 理想情况下,偏导=0时取得最小值,但是实际情况中常常无法取到最小值,只能通过梯度下降的方式逼近最小值
R2<script type="math/tex" id="MathJax-Element-15238">R^2</script>评估方法
R2=1−∑mi=1(y^i−yi)2∑mi=1(y2i−y¯i)2<script type="math/tex" id="MathJax-Element-15239">R^2=1-\frac{\sum_{i=1}^m(\hat{y}_i-y_i)^2}{\sum_{i=1}^m(y_i^2-\bar{y}_i)^2}</script>
由于 ∑mi=1(y2i−y¯i)2<script type="math/tex" id="MathJax-Element-15240">\sum_{i=1}^m(y_i^2-\bar{y}_i)^2</script>是定值,∑mi=1(y^i−yi)2<script type="math/tex" id="MathJax-Element-15241">\sum_{i=1}^m(\hat{y}_i-y_i)^2</script>越小越好,所以R2<script type="math/tex" id="MathJax-Element-15242">R^2</script>的值越接近1越好
更多推荐
所有评论(0)