Python学习--Machine-Learning 吴恩达机器学习编程作业 (第三周)

这篇博客介绍了Python中进行多类分类的逻辑回归和神经网络实现。内容涵盖导入数据集、数据可视化、定义代价函数、梯度下降以及预测函数。博主分享了在吴恩达机器学习课程的编程作业中,如何处理400维特征的数字图像并进行预测。此外,还展示了神经网络的实现过程和结果。
摘要由CSDN通过智能技术生成

Machine-Learning 编程作业

Programming Exercise 3:Multi-class Classification and Neural Network

1. 多分类逻辑回归
1.1 导入数据集
1.2 可视化部分数据集
1.3 定义代价函数
1.4 定义梯度下降函数
1.5 预测函数进行预测
2. 神经网络
2.1 导入数据
2.2 可视化
2.3 定义预测函数
2.4 输出结果

作业文件打包如下: 链接:https://pan.baidu.com/s/1S6-q29v_zYWUXugWAZk-zg 提取码:h20r

多分类逻辑回归

习题中给出的ex3data1.mat文件包含了 5000 个书写数字的训练样本,每个样本的输入是一张20*20的灰度图,特征是400维。输出是一个标量,取值1-10,1-9分别表示数字1-9,10代表数字0。首先:
1. 导入数据

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.io import loadmat
from scipy.optimize import minimize   #高级优化函数

data = loadmat('ex3data1.mat')
X = data['X']    #5000*400的矩阵   5000个训练样本,每一行存储每个样本 20*20的灰度像素
y = data['y'].flatten()   #提取标签data['y']是一个5000*1的二维数组,利用flatten()将其转化为5000个元素的一维数组
print(X.shape, y.shape)

输出结果:
在这里插入图片描述
2. 可视化
这里随机选取100个样本进行可视化

#定义可视化函数
def display_data(x):
    (m, n) = x.shape   # 100*400

    width = np.round(np.sqrt(n)).astype(int)  # 每个样本显示宽度   并转换为int
    height = (n / width).astype(int)  # 每个样本显示高度  并转换为int

    # 设置显示格式 100个样本 分10行 10列显示
    rows = np.floor(np.sqrt(m)).astype(int)
    cols = np.ceil(m / rows).astype(int)

    # 待显示的每张图片之间的间隔
    pad = 1

    # 显示的布局矩阵10行10列 初始化值为-1
    display_arra
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值