网络机器人吧社区

干货|机器学习零基础?不要怕,吴恩达课程笔记第三周!逻辑回归与正则

机器学习算法与自然语言处理 2018-11-08 14:44:05

吴恩达Coursera机器学习课系列笔记

课程笔记|吴恩达Coursera机器学习 Week1 笔记-机器学习基础

干货|机器学习零基础?不要怕,吴恩达机器学习课程笔记2-多元线性回归


1
Logistic Regression

1.1 Logistic Regression (Classification) Model

之前对房价的预测,其预测结果是一个连续变量,属于回归模型(Linear regression)。接下来要讲的是分类模型(Logistic regression),即其预测结果是一个离散变量,有固定的取值分布。

分类问题,又分成了“二分类”和“多分类”,先讲简单的“二分类”。

例子:判断一个病人是否罹患癌症。一个二分类问题,是或者否。

sigmoid函数形状如下:

现在可以用这个[0,1]之间的值来表示罹患癌症的概率了,设定一个阈值(threshold),如果h(x)>threshold,则罹患癌症,反之。


注意:这里的sigmoid只是起到了映射到(0, 1)范围的作用。

逻辑回归的边界依然是: θ^(T)x==threshold

从这个边界中看到,这样的逻辑回归是一个线性分类器。


用等高线图画出来就是这样的: 

三维图是这样的:

画图的代码如下:

% Here is the grid range
    u = linspace(30, 100, 100);
    v = linspace(30, 100, 100);

    z = zeros(length(u), length(v));
    % Evaluate z = theta*x over the grid
    for i = 1:length(u)
        for j = 1:length(v)
            t = [1, u(i), v(j)];
            z(i,j) = sigmoid(t * theta);
        end
    end
    z = z'; % important to transpose z before calling contour
    % Plot z = 0
    % Notice you need to specify the range [0, 0]
    contour(u, v, z, [0.5, 0.5], 'LineWidth', 2)
    xlabel('Exam 1 score')
    ylabel('Exam 2 score')
    hold off;

    figure;
    surf(u, v, z)

接下来就是loss function的设置了。

在logistic regression中,不再使用平方差来表示error了,转而使用negative log来表示error:

解释为什么使用negative log;

首先说明loss function的定义:当预测结果越接近真实结果时,loss越小。只要函数可以满足这一点,就可以成为loss function

逻辑回归一般情况下是线性分类器,但是在特定的情况下,可以转变成非线性分类器,如下图: 

1.3 Multiclass Classification Model

OK, OK…但是还有很多情况,分类不止“是”、“否”两种。

下图左边是二分类的情况,右边是多分类的情况。

对于多分类问题可以转化成多个二分类问题来解决,如下图,先取一种类别,把其他的都归并为一类。然后再去一种类别,把剩余的归并为一类……直至所有类别都遍历完。

最后,对于一个x,有kh(x),分别代表k个类概率,取最大h(x)所属的类别即可。

2
Regularization

2.1 Overfitting Problem

overfitting就是在训练集中拟合的特别好,或者说是过分好了,导致在新数据上的预测的效果不好。如下图:

左边没有overfitting,右边的overfitting

2.2 Regularization Intuition

下面两幅图中,左边的没有overfitting,右边的overfitting了,原因就是多了最后θ3θ4这两项使得整个模型变复杂了。

所以我们需要在cost function中增加一项惩罚项penalty,我们的目的就是θ3θ4尽可能的小,最好接近于0,这样就可以消除这两项的干扰了。

2.3 Regularization Term


总而言之,λ是用来控制惩罚项的影响因子,越大就是让惩罚项越发挥作用。

最后,在gradient descent中,把这一项也求导了就好了。


推荐阅读:

精选干货|近半年干货目录汇总

连载笔记|MIT线性代数课程精细笔记[第七课]-Ax=b的解讨论

干货|MIT线性代数课程精细笔记[第六课]-子空间与零空间



          欢迎关注公众号学习交流~         


 欢迎加入交流群交流学习       


Copyright © 网络机器人吧社区@2017