Andrew Ng机器学习(二):逻辑回归

1.逻辑回归解决什么问题?

逻辑回归用于分类问题。

对于二分类问题,输入多个特征,输出为是或不是(也可以写作1或0)。

逻辑回归就是这样一个用于分类的模型。

2.什么是逻辑回归?

逻辑回归建立在线性回归的基础上。

首先,线性回归将多个特征映射到一个变量

之后,在这个变量上设置一个阈值。大于这个阈值的判断为是,输出1;小于这个阈值的判断为否,输出0。

也可以不输出1或0,而输出是1的概率,再由概率是否大于0.5判断是或否。

逻辑回归就是这样一个输出是1的概率的模型(Sigmoid函数):

对于θTx,判断输出是否为1的阈值为θTx=0。

3.Decision Boundary

假设我们找到了一个合适的逻辑回归模型,那么,等价于确定了一组θ,使θTx=0是合适的阈值。此时,θTx=0将特征空间分割开了,就叫做Decision Boundary。

实际上,Decision Boundary就是对训练后的模型的另一种描述。

4.逻辑回归的Cost Function

为了评估模型拟合的程度,类比于线性回归,也需要Cost Function,线性回归的Cost Function不适用于逻辑回归。

需要寻找一种判断偏差的方法。

对于单个样本,考察一下对数函数:

当实际是1时,是1的概率越大(h代表概率),偏差越小。同样,当实际是0时,是1的概率越大,偏差越大。

所有样本的偏差求和,Cost Function可以写作下式

5.训练模型(找到偏差最小的参数)

最简单的还是梯度下降。公式再写一次:

详细推导及求偏导数可见:详解

此外,还可以用conjugate gradient、BFGS、L-BFGS等算法计算参数,效率更高,但比较复杂,不容易调试。

对于封装好的算法,只需要提供Cost Function和偏导数,可以自动选择α和计算了。

6.matlab实现一个逻辑回归。

%data.csv [feature1 feature2 y]

sample = csvread(‘data.csv‘);
x(:,2) = sample(:,1);
x(:,3) = sample(:,2);
y(:,1) = sample(:,3);
x(:,1) = ones(size(x(:,2)));

m = length(x(:,2));

%choose logistic regression as model
%start with

theta = [1;2;1];
alpha = 1;
times = 5000;%迭代次数
J_theta = [1:times];

%cost function J_theta & gridient gri_J using gridient descent

for i=1:times
H = 1./(1+exp(-x*theta));
J_theta(i) = (-1/m) * (log(H‘)*y+log(1-H‘)*(1-y));
gri_J = (1/m).*((H-y)‘ * x)‘;
theta = theta - alpha.* gri_J;
end

plot(J_theta);
% deci_bond_y = -(1/theta(3)).*(theta(1)+theta(2).* x(:,2));
%
% stem(x(:,2),x(:,3),‘x‘);
% hold on;
% plot(x(:,2),deci_bond_y);

7.多元分类

对于每个类别,看做这个类别和“”其他类别“”(课程里叫one versus all),这样就变回二元分类了。

再对每种类别分别做二元分类,得到N个分类器。

当需要测试时,将数据输入到每个分类器,选概率最大的一个作为输出。


小结

逻辑回归建立在线性回归的基础之上。模型为:通过sigmoid函数求输出是1的概率。应用在输出应符合伯努利分布的情况。

梯度下降算法还是好用的,也有了一些更高效的算法。刚开始的时候,可以先拿来用,再慢慢去深入学习。

线性回归和逻辑回归用于处理不同问题,但使用方法都是:分析数据、选取模型、优化数据、选择算法、训练、得到训练后的模型。

原文地址:https://www.cnblogs.com/sumr/p/9750145.html

时间: 2024-10-29 20:42:56

Andrew Ng机器学习(二):逻辑回归的相关文章

机器学习二 逻辑回归作业

作业在这,http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2016/Lecture/hw2.pdf 是区分spam的. 57维特征,2分类问题.采用逻辑回归方法.但是上述数据集在kaggle中没法下载,于是只能用替代的方法了,下了breast-cancer-wisconsin数据集. 链接在这http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin

scikit-learn机器学习(二)逻辑回归进行二分类(垃圾邮件分类),二分类性能指标,画ROC曲线,计算acc,recall,presicion,f1

数据来自UCI机器学习仓库中的垃圾信息数据集 数据可从http://archive.ics.uci.edu/ml/datasets/sms+spam+collection下载 转成csv载入数据 import matplotlib matplotlib.rcParams['font.sans-serif']=[u'simHei'] matplotlib.rcParams['axes.unicode_minus']=False import pandas as pd import numpy as

机器学习二 逻辑回归

在生成模型中讲到了,可以利用手头的数据,假设数据是满足高斯分布,且是不同的均值,但是同一个协方差矩阵,基于贝叶斯的判别式,可以得到 p(c1|x)>0.5 是第一类   p(c1|x)可以转化为sigmod(z)=w*x +b

Andrew Ng机器学习课程笔记(二)之逻辑回归

Andrew Ng机器学习课程笔记(二)之逻辑回归 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7364598.html 前言 学习了Andrew Ng课程,开始写了一些笔记,现在写完第5章了,先把这5章的内容放在博客中,后面的内容会陆续更新! 这篇博客主要记录了Andrew Ng课程第二章逻辑回归的笔记,主要介绍了梯度下降法,逻辑回归的损失函数,多类别分类等等 简要介绍:逻辑回归算法是分类算法,我们将它作为分类算法使用.

Andrew Ng机器学习课程笔记(五)之应用机器学习的建议

Andrew Ng机器学习课程笔记(五)之 应用机器学习的建议 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7368472.html 前言 学习了Andrew Ng课程,开始写了一些笔记,现在写完第5章了,先把这5章的内容放在博客中,后面的内容会陆续更新! 这篇博客主要记录了Andrew Ng课程第五章应用机器学习的建议,主要介绍了在测试新数据出现较大误差该怎么处理,这期间讲到了数据集的分类,偏差,方差,学习曲线等概念,帮

Andrew Ng机器学习课程笔记(四)之神经网络

Andrew Ng机器学习课程笔记(四)之神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365730.html 前言 学习了Andrew Ng课程,开始写了一些笔记,现在写完第5章了,先把这5章的内容放在博客中,后面的内容会陆续更新! 这篇博客主要记录Andrew Ng课程第四章和第五章的神经网络,主要介绍前向传播算法,反向传播算法,神经网络的多类分类,梯度校验,参数随机初始化,参数的更新等等 1.神经网络概述

机器学习实战-逻辑回归

什么是回归? 假设现在有些数据点,我用直线对这些点进行拟合(该线叫做最佳拟合直线),这个拟合的过程就叫做回归. Logistic回归? 这里,Logistic回归进行分类的主要思想:根据现有数据对分类的边界线建立回归公式,以此边界线进行分类.这里的回归指的是最佳拟合,就是要找到边界线的回归公式的最佳拟合的参数集.训练时使用最优化算法寻找最佳拟合参数. 基于Logistic回归和Sigmoid函数的分类 对于边界线建立的回归函数,能够接受所有的输入然后预测出类别.例如,对于二分类的情况下,上述函数

Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)

网易公开课,第14课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Components Analysis (PCA), 比Factor Analysis更为直接,计算也简单些 主成分分析基于, 在现实中,对于高维的数据,其中有很多维都是扰动噪音,或有些维是冗余的,对描述数据特征没有作用 比如我们在描述汽车速度的时候,用不同的单位mph or kph作为两维,其实只需要其中一维即可

Andrew Ng机器学习公开课笔记 -- Mixtures of Gaussians and the EM algorithm

网易公开课,第12,13课 notes,7a, 7b,8 从这章开始,介绍无监督的算法 对于无监督,当然首先想到k means, 最典型也最简单,有需要直接看7a的讲义   Mixtures of Gaussians 如果要理解Mixtures of Gaussians,那先回去复习一下Gaussians Discriminant Analysis,高斯判别分析 首先高斯判别分析是生成算法, 所以不会直接拟合p(y|x), 而是拟合p(x|y)p(y), 即p(x,y) p(y)符合伯努力分布,

Andrew Ng机器学习课程10补充

Andrew Ng机器学习课程10补充 VC dimension 讲到了如果通过最小化训练误差,使用一个具有d个参数的hypothesis class进行学习,为了学习好,一般需要参数d的线性关系个训练样本.到这里需要指出一点,这个结果是基于empirical risk minimization得到的,而对于那些大部分的discriminative的学习算法采用的通过最小化training error或者training error的近似值,前面推导的结论并不总是可以用,而对于non_ERM 学