机器学习笔记3 - 多类分类

本文介绍如何使用MATLAB进行多类分类,特别是应用于手写数字识别。内容涉及逻辑回归的修改,完全向量化实现,sigmoid函数,一对多分类策略,以及预测图像标签的过程。
摘要由CSDN通过智能技术生成

机器学习3 - 多类分类

问题描述

通过逻辑回归来进行手写数字识别(0-9)

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#通过scipy加载matlab型数据
from scipy.io import loadmat、

data = loadmat('ex3data1.mat')#该命令用于载入mat数据(mat数据是matlab格式)
data

data为字典型数据,输出结果如下:

{'__header__': b'MATLAB 5.0 MAT-file, Platform: GLNXA64, Created on: Sun Oct 16 13:09:09 2011',
'__version__': '1.0',
'__globals__': [],
'X': array([[0., 0., 0., ..., 0., 0., 0.],
  [0., 0., 0., ..., 0., 0., 0.],
  [0., 0., 0., ..., 0., 0., 0.],
  ...,
  [0., 0., 0., ..., 0., 0., 0.],
  [0., 0., 0., ..., 0., 0., 0.],
  [0., 0., 0., ..., 0., 0., 0.]]),
'y': array([[10],
  [10],
  [10],
  ...,
  [ 9],
  [ 9],
  [ 9]], dtype=uint8)}
data['X'].shape, data['y'].shape #查看数据维度
#((5000, 400), (5000, 1))

原始图像为20*20像素,因此可以得到400维向量特征是原始图像中每个像素的灰度强度


分析问题

将逻辑回归修改为完全向量化(没有for循环)。其优势为:简洁,可以利用线性代数优化,比循环代码快,在之前练习中已经实现

sigmoid函数

g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1

逻辑回归模型的假设函数:
h θ ( x ) = 1 1 + e − θ T X h_\theta(x)=\frac{1}{1+e^{-\theta^TX}} hθ(x)=1+eθ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值