Logistic Regression

来源:互联网 发布:华彩软件站下载 编辑:程序博客网 时间:2024/06/02 03:10

Logistic Regression

Classification

​ Classification : y = 0 or 1;

​ Linear Regression : hθ(X)>1 or hθ(X)<0

​ Logistic Regression : 0hθ(X)1

​ 使用线性回归算法将不能很好的预测值。

LinearRegression&&LogisticsRegression

Hypothesis Representation

Logistics Regression Model

​ Want 0hθ(X)1

​ Logisitics Function or Sigmoid Function G

hθ(X)G(Z)hθ(X)=G(θTX)=11+eZ=1eθTX

​ Sigmoid Fucntion:

sigmoid

Interpretation of Hypothesis Output

hθ(x) = 给定一个特征 x⃗  , 输出 y=1 的概率。

​ (estimated probability that y=1 on input x⃗ 

P(y=1|x⃗ ,θ)+P(y=0|x⃗ ,θ)=1P(y=1|x⃗ ,θ)=1P(y=0|x⃗ ,θ)

Decision boundary

hθ(x)=g(θTx)=P(y=1|x,θ)g(z)=11+ez

​ 即 hθ(x) 输出的值是在给定 xθ 的情况下 y=1 的概率。一般假定与 sigmoid 函数与 x=0 的交点处的值, 即 hθ(x)=0.5

hθ(x) 设定不同的形式, 可以画出多样的函数图形。

Non-linearDecisionBoundaries

Cost Function

​ 逻辑回归不能使用 标准方差方程, 因为 在逻辑回归中 hθ(x) 函数是非线性的, 使用标准方差方程会导致CostFunction 是一个非凸函数, 将会有多个局部最优解, 将不能使用梯度下降算法求出 θ 使得CostFunction 最小。

​ 逻辑回归的CostFunction定义如下:

Cost(hθ(x),y)={log(hθ(x))log(1hθ(x))if y = 1if y = 0

LogisticsCostFunction

​ 这样定义代价函数, 使得在 y=1 时, hθ(x)>0 时, 与结果不相符合, 代价趋于无穷大。

y=0 事, hθ(x)>1 时,与结果不相符合, 代价趋于无穷大。

​ 而两者与结果相符合时, 代价非常小, 趋于 0。(相等则为0)

Gradient Descent

​ 我们先把 Cost(hθ(x),y) 写成统一形式, 方便于梯度下降算法的推导。

Cost(hθ(x),y)=(y×log(hθ(x))+(1y)×log(1hθ(x))

​ 这时候可以求出总的的代价函数 J(θ) :
J(θ)θjJ(θ)=1mi=1mCost(hθ(x),y)=1mi=1m(y×log(hθ(x))+(1y)×log(1hθ(x)))=1mi=1m(hθ(x(i))y(i))×xj

​ 这个时候 Logistics Regression 的梯度下降算法可以得出了:
repeat until convergenceθj:=θjαθj1mi=1m(hθ(x(i))y(i))×xj}{

​ 可以发现, 和之前的线性回归是一样的。区别就是 hθ(x) 的区别了

Advanced optimization

Optimization algorithm

    -Gradient Descent

​ -Conjugate Gradient

​ -BFGS

​ -L-BFGS

​ 后面三个算法有待学习。。。。

Octave Options

​ 首先写出函数 J(θ) 以及 θjJ(θ)

function [ jVal,gradient ] = advancedOptimizationTest( theta )%ADVANCEDOPTIMIZATIONTEST 此处显示有关此函数的摘要%   此处显示详细说明%   J_theta     jVal = (theta(1) - 5)^2 +(theta(2)-5)^2;    gradient = zeros(2,1);    gradient(1) = 2 * (theta(1)-5);    gradient(2) = 2 * (theta(2)-5);end

​ 然后就可以使用 fminunc() 函数得出 θ 和 函数结果 functionValexitFlag 是否收敛。

options = optimset('GradObj','on','MaxIter','100');initialTheta = zeros(2,1);[optTheta, functionVal, exitFlag] = fminunc(@advancedOptimizationTest, initialTheta, options);

​ 如果有多个 feartures , 在代价函数中都要写出来。

Multi-class classification:One-vs-all

MulticlassClassification

​ 简而言之, 当有多种离散的值要进行处理时, 单独提出他们单独处理。结果即为 y=i 的概率了。