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. 推特雪花算法 java实现
  2. 史上最全 | 数据分析技能详细拆解,一张图覆盖全流程知识细节和资源推荐(附下载)...
  3. winform 时间控件 可以选择时分 设置为空
  4. java.lang.IllegalArgumentException: KeyValue size too large
  5. linux设备进入睡眠所需时间,android linux 休眠 深度睡眠 查看 方法 调试【转】
  6. java地图图表动态亮点,可视化图表行动指南:地表最强解读来了
  7. WEB应用支持RESTFUL风格方法
  8. svm 文本分类 matlab,livsvm文本分类总结详解
  9. react中使用antd按需加载(第一部)
  10. 宁夏移民文化的四个特点
  11. 手动更新HomeAssistant版本
  12. 官方rom提取原签名工具_官方和第三方ROM的提取与分解
  13. codeforces 884B Japanese Crosswords Strike Back
  14. 手把手教您国外如何充值支付宝/微信教程
  15. 我的ubuntu比windows xp欠缺的地方
  16. 究竟什么才是“万物互联”
  17. Excel给证件照换底色,红、蓝、白底任你换,看完涨知识了
  18. 【智能开发】血压计方案设计与硬件开发
  19. mysql-数据库的创建
  20. 使用unity制作简单的VR时打包APK出现的几个问题

热门文章

  1. ORA-20446: The owner of the job is not registered ORA-06512: at SYSMAN.MGMT
  2. WCF三种通信模式(转)
  3. 《看完它面试必solo | 寻找C站宝藏》
  4. web 界面设计 Axure元件样式
  5. vue 中slot 的具体用法
  6. 骁龙820和KryoCPU:异构计算与定制计算的作用 【转】
  7. 区块链教程Fabric1.0源代码分析流言算法Gossip服务端二
  8. 【Python爬虫学习笔记1】网络协议及请求基础
  9. Eclipse中执行Ant脚本出现Could not find the main class的问题及解
  10. Android绘制(一):来用shape绘出想要的图形吧!