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. hdoj 5500 Reorder the Books

    Reorder the Books Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Othe ...

  2. [iOS基础控件 - 6.7.1] 微博展示 代码

      Controller: // // ViewController.m // Weibo // // Created by hellovoidworld on 14/12/4. // Copyrig ...

  3. JVM之字节码——Class文件格式

    如同讲汇编必先讲计算机组成原理,在开始字节码之前,我们先了解一下JVM的主要构成. 在JVM的内部,主要由如下几个部分构成: 1.数据区 方法区:存放类定义信息.字节码.常量等数据,在Sun HotS ...

  4. Unity3D4.x之AssetBundle学习笔记

    关于AssetBundle AssetBundle可用来将多个资源打包为一个文件,实现动态下载和更新.需要注意的是Unity3D5.x以后对打包方式进行了升级,不用再在依赖关系上伤透脑筋,但是和4.x ...

  5. 学习和理解C#中的事件

    注:本文系学习笔记. 上一篇文章记录了我对C#中委托的理解.委托实际上是一种类型.可以将一个或多个方法绑定到委托上面,调用委托时,一次执行委托上面绑定的方法.本文要讲述的事件实际上和委托有很深的“感情 ...

  6. Java连接MYSQL【转载】

    这篇文章主要以MySQL为例讲下Java如何连接到数据库的. 当然,首先要安装有JDK(一般是JDK1.5.X).然后安装MySQL,这些都比较简单,具体过程就不说了.配置好这两个环境后,下载JDBC ...

  7. STL之Map的运用

    Map是c++的一个标准容器,她提供了非常好一对一的关系,在一些程序中建立一个map能够起到事半功倍的效果,总结了一些map基本简单有用的操作! 1. map最主要的构造函数:    map<s ...

  8. 一个仿 github for windows 及 windows 8 的进度条

    https://github.com/wly2014/ProgressBar

  9. TigerDLNA for ios 集成Tlplayer

    好久没有写博客了,这次带着TigerDLNA for ios 跟大家见面 什么都不说先上图 1.优点 优点由于libTigerDLNA使用uiview封装,所以大家可以很方便的集成到自己的项目中.由于 ...

  10. python列表删除重复元素的三种方法

    给定一个列表,要求删除列表中重复元素. listA = ['python','语','言','是','一','门','动','态','语','言'] 方法1,对列表调用排序,从末尾依次比较相邻两个元素 ...