Learning Course: One variable logistic regression optimization

单变量(只有一个特征)的用于分类的逻辑回归的cost function的最小值求解, here:

x=[x1;x2]; y={0,1};

theta=[theta(1);theta(2)]

由于分类中的y值需为0-1之间的数值,因此这里的cost function不同于线性回归的cost function。

hθ(x)=g(θTx), where g(x)= 1/(1-exp(-x)); thus hθ(x) = 1/(1-exp(-θTX));

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

因为当实际y =1时,上述方程 cost = −ylog(hθ(x)), 因此在预测y值接近1时,方程值趋近于0,即使cost value趋近于零,反之,预测值接近于0时,cost value趋近于无穷大;对于y=0的推理也是同理。

然后 repeat θj :=θj - alpha*∂(J(θ))/∂(θj);

因此此处的优化即使找到一个theta使得cost function,即我们的目标方程的最小值。

以下用一个简化的例子来计算目标方程的最小值

例如 cost function 为 J(theta) = (theta(1)-5)^2+(theta(2)-5)^2

先构建出我们的目标函数

function [jVal,gradiant] = costfunction(theta)
jVal = (theta(1)-5)^2+(theta(2))-5)^2;
gradiant = zeros(2,1);
gradiant(1) = 2*(theta(1)-5);
gradiant(2) = 2*(theta(2)-5);
end

 然后我们使用optimization的函数

options = optimset('GradObj','on','MaxIter',100);
initialTheta = zeros(2,1);% MaxIter定义最大迭代步数,100即定义为100步% GradObj指定义的梯度
[optTheta,fval,exitFlag] = fminunc(@costfunction,initialTheta,options);
% optTheta export our optimal Theta value
% fval export our final objective function value
% exitFlag 返回算法的终止标志;% 大于零时为计算收敛,等于零时表示超过最大迭代次数(所以该增加maxiters),小于零时代表不收敛% options是一个结构,里面有控制优化过程的各种参数

  这里对 'on'的理解我不是特别明白,根据解释

Hessian

If 'on', function uses user-defined Hessian, or Hessian information (when using HessMult), for the objective function. If 'off', function approximates the Hessian using finite differences.

L

fmincon, fminunc

这里的fminunc函数是matlab或者octave里已定义的函数,其功能是无约束(x的值域无约束)最优化问题求解,fminisearch和fminuc都可用于最小值求解,以下为简单总结:

1.以上两个函数都用于非线性多元函数最小值求解(因此注意求解的x的维度)

2. fminisearch适合阶次低,但是断点多的函数

3. fminunc适合高阶连续函数,因此当阶数大于等于2时,使用fminunc效果更好,但注意函数需连续。

以下为fminunc函数的一般调用格式:

x = fminunc(fun,x0);

x为返回的使函数值最小的x值,x0为优化的初始值,fun为我们定义的目标函数,也可以用@fun来调用定义函数,如下

x = fminunc(@fun,x0);

本篇博客的目的是为了总结吴恩达老师的机器学习课程,以便帮助自己更好的学习,如有错误之处,还请指出讨论以便改正。

转载于:https://www.cnblogs.com/chantervin/p/6061723.html

机器学习的简单逻辑回归的Advanced Optimization相关推荐

  1. python对逻辑回归进行显著性_python sklearn库实现简单逻辑回归的实例代码

    Sklearn简介 Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression).降维(Dimensionality Red ...

  2. 机器学习算法 03 —— 逻辑回归算法(精确率和召回率、ROC曲线和AUC指标、过采样和欠采样)

    文章目录 系列文章 逻辑回归 1 逻辑回归介绍 1.1 逻辑回归原理 输入 激活函数 1.2 损失以及优化 2 逻辑回归API介绍 3 案例:肿瘤良性恶性预测 4 分类模型的评估 4.1 分类评估方法 ...

  3. 吴恩达机器学习课后习题——逻辑回归

    机器学习课后作业-逻辑回归 逻辑回归 逻辑回归算法,是一种给分类算法,这个算法的实质是:它输出值永远在0到 1 之间. 将要构建一个逻辑回归模型来预测,某个学生是否被大学录取.设想你是大学相关部分的管 ...

  4. 机器学习:基于逻辑回归对航空公司乘客满意度的因素分析

    机器学习:基于逻辑回归对航空公司乘客满意度的因素分析 作者:i阿极 作者简介:数据分析领域优质创作者.多项比赛获奖者:博主个人首页

  5. 【Keras】简单逻辑回归模型

    Keras简单逻辑回归模型 导入安装包 加载数据 创建模型并训练 评估模型 导入安装包 import pandas as pd from keras.models import Sequential ...

  6. 吴恩达机器学习 8.6 逻辑回归(Logistic Regression)

    6.1 分类问题 参考文档: 6 - 1 - Classification (8 min).mkv 在这个以及接下来的几个视频中,开始介绍分类问题. 在分类问题中,你要预测的变量 $y$ 是离散的值, ...

  7. 数学推导+纯Python实现机器学习算法:逻辑回归

    2019独角兽企业重金招聘Python工程师标准>>> 自本系列第一讲推出以来,得到了不少同学的反响和赞成,也有同学留言说最好能把数学推导部分写的详细点,笔者只能说尽力,因为打公式实 ...

  8. 【机器学习基础】逻辑回归 + GBDT模型融合实战!

    作者:吴忠强,东北大学,Datawhale成员 一.GBDT+LR简介 协同过滤和矩阵分解存在的劣势就是仅利用了用户与物品相互行为信息进行推荐, 忽视了用户自身特征, 物品自身特征以及上下文信息等,导 ...

  9. 机器学习学习吴恩达逻辑回归_机器学习基础:逻辑回归

    机器学习学习吴恩达逻辑回归 In the previous stories, I had given an explanation of the program for implementation ...

最新文章

  1. 深度解析 Lucene 轻量级全文索引实现原理
  2. asp论坛回复功能怎么实现_在asp.netcore中使用中间件(middleware)实现api拦截及验证功能
  3. 【Python】开启Pandas进阶:图解Pandas透视表、交叉表
  4. 如何在android中设置背景,如何在Android中以编程方式设置背景可绘制
  5. 动态规划再理解(53、121、174)
  6. 如何抢占云栖大会C位?史上最强强强攻略来了
  7. vertica 数据库 linux,配置访问列式数据库vertica的php环境
  8. .NET下,你采用的哪种方式来操作数据库
  9. 如何使用go读写excel
  10. HDU 1546 Idiomatic Phrases Game
  11. 五方面入手精选数据库审计产品
  12. oracle中聚合比较函数,Oracle 分析函数与聚合函数区别
  13. 智能交通中的若干科学和技术问题
  14. linux安装qt4支持包,CentOS安装QT4遇到的问题
  15. 文曲星猜数字用c语言编程,文曲星中的猜数字游戏,要猜一个四位数,有什么通用公式?...
  16. 北航计算机学硕和专硕人数,2021考研报考人数公布!今年人数暴增了吗?
  17. a或b search vim_vim入门,进阶与折腾
  18. 腾讯视频播放内容下载流程
  19. 什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的使用范围。
  20. 抖音3d相册html代码,抖音3D立体相册表白代码.doc

热门文章

  1. throw()使用小结
  2. 阮一峰:jQuery官方基础教程笔记
  3. node --- 监听路由,读取json文件,向MongoDB中写入数据
  4. 深入浅出NIO之Selector实现原理
  5. 我与Linux系统的交集
  6. 第五章 面向方面编程___AOP入门
  7. 算法9---二叉树的遍历不用栈和递归
  8. Android面试,BroadCastReceiver的两种注册方式的异同
  9. linux之xargs命令用途
  10. 跨时钟域电路设计——单bit信号