机器学习:使用matlab实现逻辑回归解决数字识别(多元分类)问题
文章目录
- 前置章节
- 数据载入
- 数据可视化
- 代价-梯度函数
- 一对多完成多元分类
- 预测
前置章节
二元分类问题的逻辑回归包含原理及实现。
这次做多元分类,目的是能够识别20×2020\times2020×20像素的手写体数字。
数据载入
来自MINST的手写数字数据库,矩阵X
中是5000张图片的灰度构成的数据集,因为图片像素是20×20,所以矩阵每行有400个元素,为图片的灰度。y
向量表明图片中的数字是什么,因为matlab数组下标从1开始,所以我们把数字0对应的数据映射到10上。
% Load saved matrices from file
load('ex3data1.mat');
% The matrices X and y will now be in your MATLAB environment
数据可视化
随机抽出几张图片瞅一瞅,吴恩达的代码没仔细研究,先放在这里:
function [h, display_array] = displayData(X, example_width)
%DISPLAYDATA Display 2D data in a nice grid
% [h, display_array] = DISPLAYDATA(X, example_width) displays 2D data
% stored in X in a nice grid. It returns the figure handle h and the
% displayed array if requested.% Set example_width automatically if not passed in
if ~exist('example_width', 'var') || isempty(example_width) example_width = round(sqrt(size(X, 2)));
end% Gray Image
colormap(gray);% Compute rows, cols
[m n] = size(X);
example_height = (n / example_width);% Compute number of items to display
display_rows = floor(sqrt(m));
display_cols = ceil(m / display_rows);% Between images padding
pad = 1;% Setup blank display
display_array = - ones(pad + display_rows * (example_height + pad), ...pad + display_cols * (example_width + pad));% Copy each example into a patch on the display array
curr_ex = 1;
for j = 1:display_rowsfor i = 1:display_colsif curr_ex > m, break; end% Copy the patch% Get the max value of the patchmax_val = max(abs(X(curr_ex, :)));display_array(pad + (j - 1) * (example_height + pad) + (1:example_height), ...pad + (i - 1) * (example_width + pad) + (1:example_width)) = ...reshape(X(curr_ex, :), example_height, example_width) / max_val;curr_ex = curr_ex + 1;endif curr_ex > m, break; end
end% Display Image
h = imagesc(display_array, [-1 1]);% Do not show axis
axis image offdrawnow;end
m = size(X, 1);
% Randomly select 100 data points to display
rand_indices = randperm(m);
sel = X(rand_indices(1:100), :);
displayData(sel);
代价-梯度函数
ex3的意思是在ex2的基础上让代价-梯度函数向量化,即通过矩阵运算省略for
循环,不过我已经在ex2搞定了
机器学习:使用matlab实现逻辑回归解决数字识别(多元分类)问题相关推荐
- 机器学习系列(1)_逻辑回归初步
转载自: 机器学习系列(1)_逻辑回归初步 - 寒小阳 - 博客频道 - CSDN.NET http://blog.csdn.net/han_xiaoyang/article/details/4912 ...
- 降维后输入分类器分类时报错_逻辑回归解决多分类方法及其优缺点分析
众所周知,逻辑回归常用于解决二分类任务,但是在工作/学习/项目中,我们也经常要解决多分类问题.本文总结了 3 种逻辑回归解决多分类的方法,并分析了他们的优缺点. 一.One-Vs-Rest 假设我们要 ...
- 机器学习笔记04:逻辑回归(Logistic regression)、分类(Classification)
之前我们已经大概学习了用线性回归(Linear Regression)来解决一些预测问题,详见: 1.<机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradien ...
- 【机器学习入门】(9) 逻辑回归算法:原理、精确率、召回率、实例应用(癌症病例预测)附python完整代码和数据集
各位同学好,今天我和大家分享一下python机器学习中的逻辑回归算法.内容主要有: (1) 算法原理:(2) 精确率和召回率:(3) 实例应用--癌症病例预测. 文末有数据集和python完整代码 1 ...
- 【机器学习】逻辑回归-基础认识与鸢尾花分类实操案例
文章目录 前言 一.基本理解 二.数学原理 三.简单二元分类算法实现 四.实战案例 总结 前言 本文将会对逻辑回归的基础理解,数学原理,简单算法实现,鸢尾花分类问题实操案例去学习我们的逻辑回归. 一. ...
- 利用逻辑回归进行简单的人群分类解决广告推荐问题
利用逻辑回归进行简单的人群分类解决广告推荐问题 参考文章: (1)利用逻辑回归进行简单的人群分类解决广告推荐问题 (2)https://www.cnblogs.com/songyifan427/p/1 ...
- Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”
Coursera公开课笔记: 斯坦福大学机器学习第六课"逻辑回归(Logistic Regression)" 斯坦福大学机器学习第六课"逻辑回归"学习笔记,本次 ...
- Scikit-Learn 机器学习笔记 -- 线性回归、逻辑回归、softmax回归
Scikit-Learn 机器学习笔记 – 线性回归.逻辑回归.softmax回归 参考文档: handson-ml import numpy as np from matplotlib import ...
- 斯坦福大学机器学习第四课“逻辑回归(Logistic Regression)”
斯坦福大学机器学习第四课"逻辑回归(Logistic Regression)" 本次课程主要包括7部分: 1) Classification(分类) 2) Hypothesis R ...
- 【李宏毅机器学习】Logistic Regression 逻辑回归(p11) 学习笔记
李宏毅机器学习学习笔记汇总 课程链接 文章目录 Logistic Regression Step 1: Function Set Step 2: Goodness of a Function Step ...
最新文章
- 转:软件设计漫谈之三:30分钟掌握面向对象类的设计原则
- 百度安全 Rust TrustZone SDK正式成为 Apache Teaclave 子项目
- e7xue.php漏洞_简要分析最近的dedecms通杀漏洞以及漏洞补丁的绕过
- 从零开始学springboot笔记(二)-Spring boot返回json数据(中文无乱码)
- [CocoaPods]常见问题
- 五个小例子教你搞懂 JavaScript 作用域问题
- C语言空指针NULL详解
- 从3000米高空,一跃而下…
- wireshark抓包怎么找访问网址
- 李占通他道出了我的心声
- 计算机制图和应用cad哪个好,cad制图笔记本电脑排行,cad制图用哪款笔记本电脑好...
- Easyui之datagrid修改
- Sliced Sprite
- 拜尔滤色拜尔滤色镜_如何在iPhone或iPad上启用滤色器以方便眼睛阅读
- mysql占用内存过高_MySQL内存消耗过高问题处理
- Item 2: Understand auto type deduction.
- 微观经济学知识点(九)
- mysql中的locate,MySQL LOCATE()用法及代码示例
- SpringAOP实现多数据源切换
- 【Navicat】Cannot load OCI DLL, 87
热门文章
- 数学分析 导数的四则运算法则及多个函数的推广
- 卡方分布的定义与概率密度的计算
- 微信AD密码输入显示服务器出错怎么回事呢,微信提示账户或密码错误,请重新输入,怎么办...
- 合并报表编制采用的理论_跟我一起学合并报表之——长期股权投资的抵消处理...
- 我在使用Spring Gateway时遇到的一些坑
- jquery的历史版本
- unable to apply changes:plugins App links assistant,firebase services won'
- Shp上传至Oracle Spatial
- OD调试器调试Delphi程序按钮事件断点方法
- c# 小写金额转大写