吴恩达机器学习训练2:Logistic回归
Logistic Regression问题实则为分类的问题Classification。
1、数学模型
由上图可知,由于最后是要求得y=1的概率,在线性回归的基础上增加了sigmoid函数,将z值映射到区间[0,1]。
当z≥0时,g(z)≥0.5,可以推测y=1,否则y=0。
故其决策边界即为z = theta’*X = 0.
2、代价函数计算
3、matlab编程
(1)原始数据的可视化
补充完整plotData函数,得到图形。
function plotData(X, y)
figure; hold on;
pos = find(y==1);%返回向量y中数值为1的位置,pos也为向量
neg = find(y==0);%返回向量y中数值为0的位置,neg也为向量
%绘制y==1的点,使用红+表示
plot(X(pos,1),X(pos,2),'r+','LineWidth',2,'MarkerSize',7);
%绘制y==0的点,使用蓝o表示
plot(X(neg,1),X(neg,2),'bo','LineWidth',2,'MarkerSize',7);
hold off;
end
(2)计算代价值和梯度
补充完整sigmoid函数。
function g = sigmoid(z)
g = zeros(size(z));
g = 1./(1+exp(-z));
end
补充完整costFunction函数
function [J, grad] = costFunction(theta, X, y)
m = length(y); % number of training examples
J = 0;
grad = zeros(size(theta));
J = ((log(sigmoid(X*theta)))'*y + (log(1-sigmoid(X*theta)))'*(1-y))/(-m);
grad = (sigmoid(X*theta)-y)'*X/m;
end
计算出theta为零矢量的代价值和梯度分别为:
Cost at initial theta (zeros): 0.693147
Expected cost (approx): 0.693
Gradient at initial theta (zeros): -0.100000 -12.009217 -11.262842
Expected gradients (approx):-0.1000-12.0092-11.2628
(3)使用fminunc函数进行优化
options = optimset('GradObj', 'on', 'MaxIter', 400);
[theta, cost] = fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);
% Print theta to screen
fprintf('Cost at theta found by fminunc: %f\n', cost);
fprintf('Expected cost (approx): 0.203\n');
fprintf('theta: \n');
fprintf(' %f \n', theta);
fprintf('Expected theta (approx):\n');
fprintf(' -25.161\n 0.206\n 0.201\n');
Cost at theta found by fminunc: 0.203506
Expected cost (approx): 0.203
theta: -24.933057 0.204408 0.199619
Expected theta (approx):-25.1610.2060.201
(4)绘制决策边界
function plotDecisionBoundary(theta, X, y)plotData(X(:,2:3), y);
hold on;if size(X, 2) <= 3% Only need 2 points to define a line, so choose two endpointsplot_x = [min(X(:,2))-2, max(X(:,2))+2];% Calculate the decision boundary lineplot_y = (-1./theta(3)).*(theta(2).*plot_x + theta(1));% Plot, and adjust axes for better viewingplot(plot_x, plot_y);% Legend, specific for the exerciselegend('Admitted', 'Not admitted', 'Decision Boundary');axis([30, 100, 30, 100]);
else% Here is the grid rangeu = linspace(-1, 1.5, 50);v = linspace(-1, 1.5, 50);z = zeros(length(u), length(v));% Evaluate z = theta*x over the gridfor i = 1:length(u)for j = 1:length(v)z(i,j) = mapFeature(u(i), v(j))*theta;endendz = 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, 0], 'LineWidth', 2)
end
hold offend
决策边界在本二元分类中实际为z = theta(1) *x0+ theta(2) *x1 + theta(3) x2 = 0(x0 =1)
解该方程得到 x2 = -1/theta(3)(theta(1) + theta(2) *x1)
获得的图形为:
(5)预测函数和预测准确率
完成predict函数:
function p = predict(theta, X)
m = size(X, 1); % Number of training examples
p = zeros(m, 1);
p = sigmoid(X*theta) >=0.5;
end
计算数据[1 45 85]分类y = 1的概率:
prob = sigmoid([1 45 85] * theta);
fprintf(['For a student with scores 45 and 85, we predict an admission ' ...'probability of %f\n'], prob);
fprintf('Expected value: 0.775 +/- 0.002\n\n');
其输出为:
For a student with scores 45 and 85, we predict an admission probability of 0.774324
Expected value: 0.775 +/- 0.002
统计原始数据分类的准确率:
p = predict(theta, X);
fprintf('Train Accuracy: %f\n', mean(p == y) * 100);
fprintf('Expected accuracy (approx): 89.0\n');
fprintf('\n');
其输出为:
Train Accuracy: 89.000000
Expected accuracy (approx): 89.0
吴恩达机器学习训练2:Logistic回归相关推荐
- 吴恩达机器学习笔记 —— 7 Logistic回归
http://www.cnblogs.com/xing901022/p/9332529.html 本章主要讲解了逻辑回归相关的问题,比如什么是分类?逻辑回归如何定义损失函数?逻辑回归如何求最优解?如何 ...
- 吴恩达机器学习训练1:线性回归(多变量)
吴恩达机器学习训练1:线性回归(多变量) 本小节为练习1中选做题,为多变量(多特征参数)的线性回归计算. 还是预测房价的例子,假设已经两个特征参数,分别是房子的尺寸和卧室的数量,在数据的第一列和第二列 ...
- 吴恩达机器学习 8.6 逻辑回归(Logistic Regression)
6.1 分类问题 参考文档: 6 - 1 - Classification (8 min).mkv 在这个以及接下来的几个视频中,开始介绍分类问题. 在分类问题中,你要预测的变量 $y$ 是离散的值, ...
- 吴恩达机器学习课后习题——逻辑回归
机器学习课后作业-逻辑回归 逻辑回归 逻辑回归算法,是一种给分类算法,这个算法的实质是:它输出值永远在0到 1 之间. 将要构建一个逻辑回归模型来预测,某个学生是否被大学录取.设想你是大学相关部分的管 ...
- 吴恩达|机器学习作业2.0Logistic 回归
2.0.Logistic 回归 1)题目: 在本部分的练习中,您将使用Logistic回归模型来预测一个学生是否被大学录取.假设你是大学某个院系的管理员,你想通过申请人在两门考试中的表现来决定每个人的 ...
- 吴恩达机器学习之线性逻辑回归实现部分
C++实现 "linear_regression.h" //二分类逻辑回归模型 struct elem_log {double y;double* x; //用数组传入自变量数据( ...
- 吴恩达机器学习作业1-线性回归讲解版奔雷手
机器学习作业 1 - 线性回归 奔雷手 1.单变量线性回归 导入需要使用的包 import numpy as np import pandas as pd import matplotlib.pypl ...
- 吴恩达机器学习作业二——逻辑回归
有了作业一的铺垫,作业二的代码更容易理解了. 逻辑回归 题目描述:在训练的初始阶段,我们将要构建一个逻辑回归模型来预测,某个学生是否被大学录取.设想你是大学相关部分的管理者,想通过申请学生两次测试的评 ...
- 吴恩达机器学习训练秘籍整理三十三到三十五章(五)
第三十三章 为何与人类表现水平进行对比: 许多机器学习系统的设计目的是想要自动化一些人类可以处理得很好的事情,可举的例子有图像识别.语音识别以及垃圾邮件分类等等.此外,有许多理由表明在处理人类擅长的任 ...
最新文章
- 图解weblogic安装
- Opencv-python 3.3版本安装
- wxWidgets的简介
- java8电脑版安装包下载百度云_everything电脑文件搜索工具
- 「软件项目管理」一文详解软件项目成本计划
- 算法基础——冒泡与选择排序
- TopCoder SRM502 Div1 1000 动态规划
- android调用本地js文件上传,利用node.js android 实现文件上传
- iNode客户端安装
- RTl8188EUS设置ap模式
- 智慧职教云答案在哪里找_云课堂智慧职教答案哪里找
- windows无法打开添加打印机_PDF-XChange Lite(pdf虚拟打印机)正式版下载-PDF-XChange Lite(pdf虚拟打印机)v8.0.342.0最新版下载...
- 情感+事业,强者必学的定律
- SPOJ PHT Pigeonhole Tower 预处理+二分 || 找规律
- CVE-2022-28512 Fantastic Blog CMS 存在SQL注入漏洞
- C. Two Shuffled Sequences
- Camera Surface 从应用到cameraserver的流转
- OpenCV视频质量检测--清晰度检测
- Admixture使用说明文档cookbook
- 云计算战役升温:微软IBM掷千金道不同
热门文章
- 12.Bridge-桥接模式
- IOS第12天(3,UIViewController的生命周期)
- 使用Apache NFOP创建pdf
- 靠写代码赚钱的一些门路
- 微服务之SpringCloud实战(五):SpringCloud Eureka详解
- (项目)生鲜超市(六)
- [luogu2054 AHOI2005] 洗牌 (数论)
- 关闭窗口(window.close)
- 正则表达式匹配 任意字符和空格的一个简便方式?
- 【报告分享】2020年中国快消品行业KOL内容营销报告.pdf(附下载链接)