Logistic Regression(逻辑回归)
分类是机器学习的一个基本问题, 基本原则就是将某个待分类的事情根据其不同特征划分为两类.
- Email: 垃圾邮件/正常邮件
 - 肿瘤: 良性/恶性
 - 蔬菜: 有机/普通
 
对于分类问题, 其结果 y∈{0,1}, 即只有正类或负类. 对于预测蔬菜是否为有机这件事, y = 0表示蔬菜为普通, y= 1表示蔬菜为有机.
逻辑回归是分类问题中的一个基本算法, 它的猜想函数hθ(x) = g(θT*x)
其中, g(z) = 1 / (1+e-z), 该函数称为sigmoid函数或logistic函数, 是一个增函数,输出映射g(z)∈[0,1].

hθ(x)表示当输入为x, (权重)参数为θ时, 预测y=1的概率.
代码实现:
function g = sigmoid(z)
%SIGMOID Compute sigmoid function
%   g = SIGMOID(z) computes the sigmoid of z.
g = zeros(size(z));
for i = 1:size(z,1)
    for j = 1:size(z,2)
        g(i,j) = 1/(1+e^(-z(i,j)));
    endfor
endfor
end
对于逻辑回归的猜想函数hθ(x) = g(θT*x), 当θT*x = 0时, hθ(x) = 0.5. 而我们规定当hθ(x) >= 0.5, 即θT*x >=0时, 预测结果 y =1, 当hθ(x) <0.5时,预测结果 y= 0.
因此, 通过给定的权重参数矩阵与特征值, 可以计算出该预测函数的决策边界 , 通过这条边界即可将问题进行分类.

逻辑回归算法的代价函数表示当预测值与实际值产生偏差时所承受的惩罚大小, 公示表示为cost(hθ(x), y) = -log(hθ(x)), if y =1, -log(1-hθ(x)), if y = 0.
当y=1时,假定这个样本为正类。如果此时hθ(x) = 1,则对这个样本而言的cost=0,表示这个样本的预测完全准确。但是如果此时预测的概率hθ(x) = 0,那么cost→∞。直观解释的话,由于此时样本为一个正样本,但是预测的结果P(y=1|x;θ) = 0, 也就是说预测 y=1的概率为0,那么此时就要对损失函数加一个很大的惩罚项。当y = 0时, 道理相同.
为了获得更准确的分类决策边界, 我们需要调节代价函数到最小值, 这时, 预测值与实际结果间偏差最小. 为了最小化代价函数, 我们需要调节参数θ. 比较常用的方法为梯度下降法.
梯度下降是迭代法的一种, 其计算过程就是沿梯度下降的方向求解极小值.
逻辑回归代价函数J(θ):

为了最小化J(θ), 需要不断重复减小θ的值直到J(θ)收敛:

其中α为学习速率, 即每次下降的步长大小, 如果α过于大, 可能导致无法收敛, 如果α过于小, 可能导致收敛速度过慢.
代码实现:
function [J, grad] = costFunction(theta, X, y)
%COSTFUNCTION Compute cost and gradient for logistic regression
% J = COSTFUNCTION(theta, X, y) computes the cost of using theta as the
% parameter for 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
J = 0;
grad = zeros(size(theta));
Jtmp=0;
h= zeros(m,1);
%step1:compute hx
hx = X * theta;
%step2:compute h(hx)
h = sigmoid(hx);
%step3:compute cost function's sum part
for i=1:m,
  Jtmp=Jtmp+(-y(i)*log(h(i))-(1-y(i))*log(1-h(i)));
endfor
J=(1/m)*Jtmp;
%step4:compute gradient's sum part 
sum1 =zeros(size(X,2),1);%#features row
for i=1:m
  sum1 = sum1+(h(i)-y(i)).*X(i,:)';
endfor
grad= (1/m)*sum1;
end
Logistic Regression(逻辑回归)的更多相关文章
- Coursera DeepLearning.ai Logistic Regression逻辑回归总结
		
既<Machine Learning>课程后,Andrew Ng又推出了新一系列的课程<DeepLearning.ai>,注册了一下可以试听7天.之后每个月要$49,想想还是有 ...
 - Logistic Regression逻辑回归
		
参考自: http://blog.sina.com.cn/s/blog_74cf26810100ypzf.html http://blog.sina.com.cn/s/blog_64ecfc2f010 ...
 - Logistic Regression(逻辑回归)(二)—深入理解
		
(整理自AndrewNG的课件,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 上一篇讲解了Logistic Regression的基础知识,感觉 ...
 - 机器学习简要笔记(五)——Logistic Regression(逻辑回归)
		
1.Logistic回归的本质 逻辑回归是假设数据服从伯努利分布,通过极大似然函数的方法,运用梯度上升/下降法来求解参数,从而实现数据的二分类. 1.1.逻辑回归的基本假设 ①伯努利分布:以抛硬币为例 ...
 - Deep Learning 学习笔记(4):Logistic Regression 逻辑回归
		
逻辑回归主要用于解决分类问题,在现实中有更多的运用, 正常邮件or垃圾邮件 车or行人 涨价or不涨价 用我们EE的例子就是: 高电平or低电平 同时逻辑回归也是后面神经网络到深度学习的基础. (原来 ...
 - 【原】Coursera—Andrew Ng机器学习—Week 3 习题—Logistic Regression 逻辑回归
		
课上习题 [1]线性回归 Answer: D A 特征缩放不起作用,B for all 不对,C zero error不对 [2]概率 Answer:A [3]预测图形 Answer:A 5 - x1 ...
 - 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 6_Logistic Regression 逻辑回归
		
Lecture6 Logistic Regression 逻辑回归 6.1 分类问题 Classification6.2 假设表示 Hypothesis Representation6.3 决策边界 ...
 - 机器学习之LinearRegression与Logistic Regression逻辑斯蒂回归(三)
		
一 评价尺度 sklearn包含四种评价尺度 1 均方差(mean-squared-error) 2 平均绝对值误差(mean_absolute_error) 3 可释方差得分(explained_v ...
 - 吴恩达深度学习:2.1Logistic Regression逻辑回归及其损失函数
		
1.Logistic Regression是一个二元分类问题 (1)已知输入的特征向量x可能是一张图,你希望把它识别出来,这是不是猫图,你需要一个算法,可以给出预测值,更正式的y是一个概率,当输入特征 ...
 
随机推荐
- [C++]_ELVE_Windows下QT5.12连接MySql8.0解决方案
			
#0x01 准备 1)要保证QT和MySQL都是一样的位数,我的就是都安装的64位. 2)安装Qt5.12,这里主要提一点,在安装时候,有个选择插件那块,尽量都选上,里面有个database选项,记得 ...
 - car的旅行路线
			
https://www.luogu.org/problemnew/show/P1027 题目描述 又到暑假了,住在城市A的Car想和朋友一起去城市B旅游.她知道每个城市都有四个飞机场,分别位于一个矩形 ...
 - java-项目中无法访问js、css等静态资源
			
解决方法:在mvc.xml配置文件中增加如下配置 如果增加<mvc:default-servlet-handler/> 后无法访问controller,需要增加<mvc:annota ...
 - 华硕ASUSPRO P5440UA笔记本电脑安装驱动
			
领了一台公司的办公笔记本,按照套路重装了系统(win10),后面发现悲剧了 采坑1: 从华硕通过型号搜索下来的无线网卡(WIFI) 驱动无法安装(双击启动没有反映) 解决:通过设备Id上google搜 ...
 - 当鼠标经过表格数据行时颜色不同且奇偶行颜色也不同 (纯CSS)
			
<!DOCTYPE html> <!-- To change this license header, choose License Headers in Project Prope ...
 - 【网络】IP子网划分详解
			
1.IP地址组成 IP地址组成示意图 IP地址由32位二进制组成,32位二进制分成了4字节,每字节8位,字节之间用符.(点)分隔,为了方便 ...
 - 微信小程序托管 推广 开发 就找北京动点软件
			
微信小程序托管 外包 微信小程序外包 H5外包 就找北京动点软件 长年承接微信小程序.微信公众号开发 全职的H5开发团队,开发过几十款微信小程序公众号案例 欢迎来电咨询,索取案例! QQ:372900 ...
 - Excel技巧--提取中文字串
			
类似的,如果要提取上图第1列的商品,不要型号,如第2列. 可以考虑使用SEARCHB函数. searchb与search的区别,在于searchb函数以字节为单位搜索,search函数以字符为单位搜索 ...
 - 高度自适应的div
			
需求:有一个高度自适应的div,里面有两个div,一个高度100px,希望另一个填满剩下的高度 1.用flex 来实现 思路:flex 垂直布局(column),第一个元素固定高度,第二个元素flex ...
 - linux tee
			
tee 功能说明:读取标准输入的数据,并将其内容输出成文件. 语 法:tee [-ai][--help][--version][文件...] 补充说明:tee指令会从标准输入设备读取数据,将其内容输出 ...