### 线性回归(Regression)
linear regression
logistic regression
softmax regression
#@author: gr
#@date: 2014-01-21
#@email: forgerui@gmail.com
一、linear regression
线性模型:
\]
代价函数:
代价函数使用平方误差损失函数。
\]
求解:
可以使用最小二乘法和梯度下降法。
最小二乘法:
\]
梯度下降法:
批梯度下降,增量梯度下降。更新参数,以使代价函数最小化。
二、logistic regression
逻辑回归模型:
输出 \(Y=1\) 的对数几率是由输入 \(x\) 的线性函数表示的模型,即logistic regression。
\]
\]
求事件的对数几率:
\]
对数几率是一个关于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\)的估计值。用梯度下降法或拟牛顿法求解。
损失函数:
- Gold Standard
- Hinge Loss
SVM
- Log Loss
Logistic Regression
、Softmax Regression
- Squared Loss
Linear Regression
- Boosting
代价函数:
这里使用对数函数作为损失函数:
\]
用梯度下降法或拟牛顿法求解。
三、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\)罗列起来:
\begin{array}{c}
\theta_1^T \\
\theta_2^T \\
\vdots \\
\theta_k^T
\end{array}
\right]\]
得到softmax回归的代价函数:
\]
可以看出softmax是logistic的推广,同样用梯度下降法或拟牛顿法求解。
Reference
- http://www.cnblogs.com/bzjia-blog/p/3366780.html
- http://www.cnblogs.com/bzjia-blog/p/3370869.html
- 李航 著 《统计学习方法》
- http://blog.csdn.net/viewcode/article/details/8794401
- http://blog.csdn.net/abcjennifer/article/details/7716281
- Deva Ramanan 《Machine Learning》 Lecture1
### 线性回归(Regression)的更多相关文章
- 线性回归 Linear Regression
成本函数(cost function)也叫损失函数(loss function),用来定义模型与观测值的误差.模型预测的价格与训练集数据的差异称为残差(residuals)或训练误差(test err ...
- 线性回归、梯度下降(Linear Regression、Gradient Descent)
转载请注明出自BYRans博客:http://www.cnblogs.com/BYRans/ 实例 首先举个例子,假设我们有一个二手房交易记录的数据集,已知房屋面积.卧室数量和房屋的交易价格,如下表: ...
- Matlab实现线性回归和逻辑回归: Linear Regression & Logistic Regression
原文:http://blog.csdn.net/abcjennifer/article/details/7732417 本文为Maching Learning 栏目补充内容,为上几章中所提到单参数线性 ...
- Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable
原文:http://blog.csdn.net/abcjennifer/article/details/7700772 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...
- Sklearn库例子2:分类——线性回归分类(Line Regression )例子
线性回归:通过拟合线性模型的回归系数W =(w_1,…,w_p)来减少数据中观察到的结果和实际结果之间的残差平方和,并通过线性逼近进行预测. 从数学上讲,它解决了下面这个形式的问题: Lin ...
- 机器学习之多变量线性回归(Linear Regression with multiple variables)
1. Multiple features(多维特征) 在机器学习之单变量线性回归(Linear Regression with One Variable)我们提到过的线性回归中,我们只有一个单一特征量 ...
- 多元线性回归(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% ...
- Locally weighted linear regression(局部加权线性回归)
(整理自AndrewNG的课件,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 前面几篇博客主要介绍了线性回归的学习算法,那么它有什么不足的地方么 ...
- Linear Regression(线性回归)(一)—LMS algorithm
(整理自AndrewNG的课件,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 1.问题的引出 先从一个简单的例子说起吧,房地产公司有一些关于Po ...
随机推荐
- hdoj 5500 Reorder the Books
Reorder the Books Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Othe ...
- [iOS基础控件 - 6.7.1] 微博展示 代码
Controller: // // ViewController.m // Weibo // // Created by hellovoidworld on 14/12/4. // Copyrig ...
- JVM之字节码——Class文件格式
如同讲汇编必先讲计算机组成原理,在开始字节码之前,我们先了解一下JVM的主要构成. 在JVM的内部,主要由如下几个部分构成: 1.数据区 方法区:存放类定义信息.字节码.常量等数据,在Sun HotS ...
- Unity3D4.x之AssetBundle学习笔记
关于AssetBundle AssetBundle可用来将多个资源打包为一个文件,实现动态下载和更新.需要注意的是Unity3D5.x以后对打包方式进行了升级,不用再在依赖关系上伤透脑筋,但是和4.x ...
- 学习和理解C#中的事件
注:本文系学习笔记. 上一篇文章记录了我对C#中委托的理解.委托实际上是一种类型.可以将一个或多个方法绑定到委托上面,调用委托时,一次执行委托上面绑定的方法.本文要讲述的事件实际上和委托有很深的“感情 ...
- Java连接MYSQL【转载】
这篇文章主要以MySQL为例讲下Java如何连接到数据库的. 当然,首先要安装有JDK(一般是JDK1.5.X).然后安装MySQL,这些都比较简单,具体过程就不说了.配置好这两个环境后,下载JDBC ...
- STL之Map的运用
Map是c++的一个标准容器,她提供了非常好一对一的关系,在一些程序中建立一个map能够起到事半功倍的效果,总结了一些map基本简单有用的操作! 1. map最主要的构造函数: map<s ...
- 一个仿 github for windows 及 windows 8 的进度条
https://github.com/wly2014/ProgressBar
- TigerDLNA for ios 集成Tlplayer
好久没有写博客了,这次带着TigerDLNA for ios 跟大家见面 什么都不说先上图 1.优点 优点由于libTigerDLNA使用uiview封装,所以大家可以很方便的集成到自己的项目中.由于 ...
- python列表删除重复元素的三种方法
给定一个列表,要求删除列表中重复元素. listA = ['python','语','言','是','一','门','动','态','语','言'] 方法1,对列表调用排序,从末尾依次比较相邻两个元素 ...