linear regression

logistic regression

softmax regression

#@author:       gr
#@date: 2014-01-21
#@email: forgerui@gmail.com

一、linear regression

线性模型:

\[h_\theta(x) = \theta^T X
\]

代价函数:

代价函数使用平方误差损失函数。

\[\min_\theta J(\theta) = \dfrac{1}{2} \sum_{i=1}^m(h_\theta(x^{(i)}) - y^{(i)})^2
\]

求解:

可以使用最小二乘法和梯度下降法。

最小二乘法:

\[\theta = (X^TX)^{-1}X^T \overrightarrow y
\]

梯度下降法:

批梯度下降,增量梯度下降。更新参数,以使代价函数最小化。

二、logistic regression

逻辑回归模型:

输出 \(Y=1\) 的对数几率是由输入 \(x\) 的线性函数表示的模型,即logistic regression

\[P(Y=1 \mid x) = \dfrac{1}{1+e^{-z}} = \dfrac{1}{1 + e^{-w \cdot x}} = \dfrac{e^{w \cdot x}}{1 + e^{w \cdot x}}
\]

\[P(Y=0 \mid x) = 1- P(Y=1 \mid x) = \dfrac{1}{1 + e^{w \cdot x}}
\]

求事件的对数几率:

\[logit(p) = log\dfrac{p}{1-p} = w \cdot x
\]

对数几率是一个关于x的线性函数。

模型参数估计:

逻辑回归的参数估计可以采用极大似然估计求得。

$$\begin{align*}
l(\theta) = & \Pi_{i=1}^N (p_i)^{y_i}(1-p_i)^{1-y_i} \\
= & \sum_{i=1}^{N} [y_i\log{(p_i)} + (1-y_i)\log{(1 - p_i)}] \\
= & \sum_{i=1}^{N} [ y_i \log{(\dfrac{p_i}{1-p_i})} + \log{(1-p_i)}] \\
= & \sum_{i=1}^N [y_i(w \cdot x_i) - \log{(1 + e^{(w \cdot x )})}]
\end{align*}
$$

对\(L(w)\)求极大值,就可以得到\(w\)的估计值。用梯度下降法或拟牛顿法求解。

损失函数:

  1. Gold Standard
  2. Hinge Loss

    SVM
  3. Log Loss

    Logistic RegressionSoftmax Regression
  4. Squared Loss

    Linear Regression
  5. Boosting

代价函数:

这里使用对数函数作为损失函数:

\[J(\theta) = -\dfrac{1}{m}[ ~ \sum_{i=1}^m y_i\log(h_\theta(x_i)) + (1-y_i)\log(1-h_\theta(x_i)) ~]
\]

用梯度下降法或拟牛顿法求解。

三、softmax regression

模型:

对于多分类问题,\(y_i \in \{ 1, 2, \cdots , k\}\)。对于其中一类作为positive,则另外的k-1类就为negative。

$$
\begin{align*}
h_\theta(x^{(i)})
= & \left[
\begin{array}{c}
p(y^{(i)} = 1 \mid x^{(i)}, \theta) \\
p(y^{(i)} = 2 \mid x^{(i)}, \theta) \\
\vdots \\
p(y^{(i)} = k \mid x^{(i)}, \theta) \\
\end{array}
\right] \\
= &
\dfrac{1}{\sum_{j=1}^k e^{\theta_j^Tx^{(i)}}}
\left[
\begin{array}{c}
e^{\theta_1^T x^{(i)}} \\
e^{\theta_2^T x^{(i)}} \\
\vdots \\
e^{\theta_k^T x^{(i)}} \\
\end{array}
\right]
\end{align*}
$$

用\(\theta\)将\(\theta_1,\theta_2, \ldots \theta_K\)罗列起来:

\[\theta = \left[
\begin{array}{c}
\theta_1^T \\
\theta_2^T \\
\vdots \\
\theta_k^T
\end{array}
\right]\]

得到softmax回归的代价函数:

\[J(\theta) = -\dfrac{1}{m} [~ \sum_{i=1}^m \sum_{j=1}^k 1 \{y^{(i)} = j\}\log{\dfrac{e^{\theta_j^T x^{(i)}}}{\sum_{l=1}^k e^{\theta_l^Tx^{(i)}}}} ~]
\]

可以看出softmax是logistic的推广,同样用梯度下降法或拟牛顿法求解。

Reference

  1. http://www.cnblogs.com/bzjia-blog/p/3366780.html
  2. http://www.cnblogs.com/bzjia-blog/p/3370869.html
  3. 李航 著 《统计学习方法》
  4. http://blog.csdn.net/viewcode/article/details/8794401
  5. http://blog.csdn.net/abcjennifer/article/details/7716281
  6. Deva Ramanan 《Machine Learning》 Lecture1

### 线性回归(Regression)的更多相关文章

  1. 线性回归 Linear Regression

    成本函数(cost function)也叫损失函数(loss function),用来定义模型与观测值的误差.模型预测的价格与训练集数据的差异称为残差(residuals)或训练误差(test err ...

  2. 线性回归、梯度下降(Linear Regression、Gradient Descent)

    转载请注明出自BYRans博客:http://www.cnblogs.com/BYRans/ 实例 首先举个例子,假设我们有一个二手房交易记录的数据集,已知房屋面积.卧室数量和房屋的交易价格,如下表: ...

  3. Matlab实现线性回归和逻辑回归: Linear Regression & Logistic Regression

    原文:http://blog.csdn.net/abcjennifer/article/details/7732417 本文为Maching Learning 栏目补充内容,为上几章中所提到单参数线性 ...

  4. Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

    原文:http://blog.csdn.net/abcjennifer/article/details/7700772 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...

  5. Sklearn库例子2:分类——线性回归分类(Line Regression )例子

    线性回归:通过拟合线性模型的回归系数W =(w_1,…,w_p)来减少数据中观察到的结果和实际结果之间的残差平方和,并通过线性逼近进行预测. 从数学上讲,它解决了下面这个形式的问题:      Lin ...

  6. 机器学习之多变量线性回归(Linear Regression with multiple variables)

    1. Multiple features(多维特征) 在机器学习之单变量线性回归(Linear Regression with One Variable)我们提到过的线性回归中,我们只有一个单一特征量 ...

  7. 多元线性回归(Linear Regression with multiple variables)与最小二乘(least squat)

    1.线性回归介绍 X指训练数据的feature,beta指待估计得参数. 详细见http://zh.wikipedia.org/wiki/%E4%B8%80%E8%88%AC%E7%BA%BF%E6% ...

  8. Locally weighted linear regression(局部加权线性回归)

    (整理自AndrewNG的课件,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 前面几篇博客主要介绍了线性回归的学习算法,那么它有什么不足的地方么 ...

  9. Linear Regression(线性回归)(一)—LMS algorithm

    (整理自AndrewNG的课件,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 1.问题的引出 先从一个简单的例子说起吧,房地产公司有一些关于Po ...

随机推荐

  1. TreeView节点

    TreeView由节点构成,建树通过对TreeView.items属性进行操作.Items是一个TTreeNodes对象,这是一个TTreeNode集. 一.针对TTreeNodes,也就是 Tree ...

  2. stm32f10x.h文件分析理解

    今天再看过半年前自己写的这篇发现自己当时理解有误,stm32f10x.h与库开发并未存在太大关系,只是一个最为重要的寄存器地址到寄存器结构体变量的映射. stm32f10x.h 这个头文件是STM32 ...

  3. nyoj 115 城市平乱

    城市平乱 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市. 他在用这N个部队维护着M个城市的治安,这M个城市 ...

  4. ubuntu 忘记用户名及密码解决办法

    1.重启系统 2.长按Shift键,直到出现菜单.选择recovery mode,即恢复模式 3.选择root  4.# 后面敲入 cat /etc/shadow 查看用户名 5.# passwd & ...

  5. NSArrary和NSString间的转换

    将string字符串转换为array数组 NSArray  *array = [Str componentsSeparatedByString:@","]; // 注意:NSArr ...

  6. Css基础-类选择器

    类选择器以一个.显示 <p class="pclass">这是第一个class</p> .pclass { color:red; } <div cla ...

  7. windows环境下搭建ffmpeg开发环境

           ffmpeg是一个开源.跨平台的程序库,能够使用在windows.linux等平台下,本文将简单解说windows环境下ffmpeg开发环境搭建过程,本人使用的操作系统为windows ...

  8. 并行编程之多线程共享非volatile变量,会不会可能导致线程while死循环

    背景 大家都知道线程之间共享变量要用volatilekeyword.可是,假设不用volatile来标识,会不会导致线程死循环?比方以下的伪代码: static int flag = -1; void ...

  9. Lazy Load 图片延迟加载(转)

    jQuery Lazy Load 图片延迟加载来源 基于 jQuery 的图片延迟加载插件,在用户滚动页面到图片之后才进行加载. 对于有较多的图片的网页,使用图片延迟加载,能有效的提高页面加载速度. ...

  10. android126 zhihuibeijing 极光推送

    https://www.jpush.cn/ 张三把消息发送给自己的服务器,自己的服务器将消息发送给极光推送,然后极光推送将消息发送给妹子. 清单文件: <?xml version="1 ...