a04.Andrew-ML03-分类、逻辑回归

Classification and Representation


01.Classification

要尝试分类,一种方法是是使用线性回归,将所有<0.5的映射为0;>0.5的映射为1。
但由于分类不是一个线性函数,所以这种方法不能很好工作。

02.Hypothesis Representation

  • 在用线性回归算法通过x预测y的时候,hθ(x)的值在超出0-1范围内是没有意义的。故我们可以通过使用s函数来将范围锁定在0-1之间。
s函数表达式

s函数
  • hθ​(x) 将告诉我们输出为1的可能性。比如hθ​(x) =0.7:有70%的可能性输出为1.

hθ(x)=P(y=1|x;θ)=1−P(y=0|x;θ)
P(y=0|x;θ)+P(y=1|x;θ)=1

03.Decision Boundary

  • 为了得到离散的0、1分类,可以修改假设函数的输出为(y相当于训练标记,hθ(x)是实际输出结果):

hθ(x)≥0.5→y=1
hθ(x)<0.5→y=0

  • 相应的,输入对应输出则变为:

z=0,e0=1⇒g(z)=1/2
z→∞,e−∞→0⇒g(z)=1
z→−∞,e∞→∞⇒g(z)=0

  • 最终:


  • 决策边界(decision boundary):是将区域分为y=0和y=1的线,由假设函数决定

线性决策边界.png
非线性决策边界.png

Logistic Regression Model


01.Cost Function

  • 在逻辑回归模型中我们不能使用和线性回归相同的Cost Function.因为逻辑函数会导致输出不是一个光滑的凹函数,这会造成有许多局部最优解。


    逻辑函数的Cost Function.png
  • Cost Funtion图像:


    Cost(hθ(x),y)=−log⁡(hθ(x))
Cost(hθ(x),y)=−log⁡(1−hθ(x))

Cost(hθ(x),y)=0 if hθ(x)=y

02.Simplified Cost Function and Gradient Descent

  • 代价函数的统一表达形式:

Cost(hθ​(x),y)=−ylog(hθ​(x))−(1−y)log(1−hθ​(x))

  • 整个代价函数形式(我的理解是只是一个数据,下面是需要用的整个数据的平均值得形式):


    一般形式
向量表示形式
  • Grandient Descent:
  1. 梯度下降算法的表达式如下(在逻辑回归模式中和线性回归是一致的):


    一般而言
改写导数部分

03.Advanced Optimization

  • 有一些更好的算法来代替梯度下降法进行theta的优化,这些方法可以调用内置的octave函数


    costFunction

Multiclass Classification:One-vs-all


  • 分类的数据所属的类别有多种,预测y=每一种类别的概率.做法是不去纠结构造一个复杂的函数一次性分出3类,而是构造3个二分类器。最后选择一个概率最高的作为最后的结论。


    构造分类器过程
一般式

Solving the Problem of Overfitting


01.The Problem of Overfitting

  • 01图的线并没有很好的拟合训练数据点,叫做欠拟合(underfitting)。
    y=θ0+θ1x
    02图的线通过加入一些特征值如二次项之后能更好的拟合训练数据点。
    y=θ0+θ1x+θ2x^2
    03图像的线为了过分拟合训练数据而加入太多特征值,这会导致不能很好的进行预测,是没有必要的,叫过度拟合(overfitting)


    01 02 03
  • 解决overfitting的方法:

  1. 减少特征值得数量
    手动筛选或者使用一个选择模型算法
  2. Regularization(正规化)
    保持所有的特征,但是降低 θj的级数?

02.Cost Function

  • 如果过拟合,我们可以在代价函数中增加某些项的值来降低它 的权重(我的理解是代价函数要尽可能小,如果某些项太大,必然会导致他的参数减小,进而消除权重)。
    如:θ0​+θ1​x+θ2​x2+θ3​x3+θ4​x4
    在需要降低权重的项x3和x4之前乘上一个系数:



    进而使theta3和theta4的影响变小;

  • 一般化这个代价函数:


  • lambda,叫做正规化参数(regularization parameter),决定着theta的膨胀程度。如果取得太大,则会使theta趋向于0.曲线变得过于平滑,甚至欠拟合。

03.Regularized Linear Regression

  • 我们将修改梯度下降函数,使得theta0和其他因子分开,因为我们不想惩罚theta0.
    梯度函数修正规则
一般化规则

1−αλ/m将一直小于1,所以每次迭代之后都会减少theta的值。

  • Normal Equation(一种非迭代的正规方程)
    如果m<n(样本数量<特征值),则XTX是不可逆的,XTX + λ⋅L 也是不可逆的。

04.Regularized Logistic Regression

  • 可以使用和规范线性回归相同的方式来规范逻辑回归。这样子就可以较好的避免过度拟合。


  • Cost Function
    通过在末尾增加一项来规范化逻辑回归,末尾的累加项意味着明确排除偏差项。


    图片.png
  • 在计算的时候可以通过更新一下两个式子:


    图片.png

编程作业


01.Q

假设你是一个学校校长,根据申请人两次考试成绩,来预测他们被录取的概率

02. plotdata.m

function plotData(X, y)
%按照y的不同取值对X进行分类,不同的画成不同形状显示在图中
figure; hold on;

pos = find(y==1); neg = find(y == 0);

% Plot Examples
plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, ...
'MarkerSize', 7);
plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y', ...
'MarkerSize', 7);

% =========================================================================

hold off;

end

03.sigmoid.m

function g = sigmoid(z)
%用S函数将数值映射在0-1之间
g = zeros(size(z));

g= 1./(1+exp(-z))

% =============================================================

end

04.costFunction.m

function [J, grad] = costFunction(theta, X, y)
%计算代价函数和梯度下降函数

% Initialize some useful values
m = length(y); % number of training examples

% You need to return the following variables correctly
J = 0;
grad = zeros(size(theta));

J=((-y' * log (sigmoid (Xtheta)))-(1-y)'log(1-sigmoid(Xtheta)))/m;
grad =(X'
(sigmoid(X*theta)-y))./m;

% =============================================================

end

05.predict

function p = predict(theta, X)
%对给定数据进行预测,看是否达到准确率
m = size(X, 1); % Number of training examples

% You need to return the following variables correctly
p = zeros(m, 1);

p = floor(sigmoid(X * theta) .* 2)

% =========================================================================

end

06.costFunction

function [J, grad] = costFunctionReg(theta, X, y, lambda)
%COSTFUNCTIONREG Compute cost and gradient for logistic regression with regularization
% J = COSTFUNCTIONREG(theta, X, y, lambda) computes the cost of using
% theta as the parameter for regularized logistic regression and the
% gradient of the cost w.r.t. to the parameters.

% Initialize some useful values
m = length(y); % number of training examples

% You need to return the following variables correctly
J = 0;
grad = zeros(size(theta));

% ====================== YOUR CODE HERE ======================
% Instructions: Compute the cost of a particular choice of theta.
% You should set J to the cost.
% Compute the partial derivatives and set grad to the partial
% derivatives of the cost w.r.t. each parameter in theta
J = ((-y' * log(sigmoid(X * theta))) - (1 - y)' * log(1 - sigmoid(X * theta))) / m + (sum(theta .^ 2) - theta(1) ^ 2) * lambda / (2 * m);

grad(1) = (X(:, 1)' * (sigmoid(X * theta) - y)) ./ m;
for i = 2 : size(theta)
grad(i) = (X(:, i)' * (sigmoid(X * theta) - y)) ./ m + lambda * theta(i) / m

% =============================================================

end

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • 以西瓜书为主线,以其他书籍作为参考进行补充,例如《统计学习方法》,《PRML》等 第一章 绪论 1.2 基本术语 ...
    danielAck阅读 4,484评论 0 6
  • 机器学习是做NLP和计算机视觉这类应用算法的基础,虽然现在深度学习模型大行其道,但是懂一些传统算法的原理和它们之间...
    在河之简阅读 20,475评论 4 65
  • 逻辑回归是一个分类算法,它可以处理二元分类以及多元分类。虽然它名字里面有“回归”两个字,却不是一个回归算法。那为什...
    东郭先生李阅读 1,442评论 1 3
  • 癖好,这种东西,不是谁都有的,有些人,只不过是习惯,或者是性欲使然。 每天晚上,我有一个工作是雷打不动的,给家里的...
    周某某2019阅读 248评论 3 1
  • 步入大二的我,一直觉得很迷茫 最近在简书上读了好多正能量的文章(读的多了 对我来说像心灵鸡汤一样 但又不全是) 最...
    Thornheart_f09c阅读 122评论 0 0