《大数据分析方法与应用》实验报告
实验题目 课程大作业
姓名与学号
年级与专业
所在学院
大数据代写 1.1. 要求任务1-实验报告2.1数据说明2.2 训练集、交叉验证集和测试集的划分代码运行结果2.3模型训练代码运行结果运行结果运行结果任务2-实验报告2.1数据说明2.2 训练集、交叉验证集和测试集的划分代码运行结果2.3模型训练代码运行结果运行结果运行结果···
目 录 大数据代写
任务1 手写数字的识别
本次作业需要提交相关文档。
材料
数据文件和任务清单:
mnist.mat – 手写数字识别的数据集
1.实现手写数字的可视化函数 2.实现求解函数最小值的优化算法 3.实现代价函数 4.实现逻辑回归模型训练 5.实现神经网络的模型训练 6.实现误差计算 7.实现将数据划分成训练集、交叉验证机和测试集,并进行实验性能分析。 |
一.1. 要求
提交材料:需要提交的材料包括:本实验报告的电子版(完成文档中的代码和运行截图)和代码
提交时间:14周实验课前完成提交,并进行系统验收
2.1数据说明
本次作业沿用之前手写数字识别练习中所使用的数据。首先加载mnist.mat中的数据,
|
加载完后,将出现X和y两个变量。X是一个5000×400的的矩阵,包含了5000个数据,
每个数据是由一幅20×20像素的图像展开得到的400维向量。y是一个5000维向量,
对应X中每个数据的标签(label)。y=10表示“0”的图片。y=1~9分别表示“1”至“9”的图片。
2.2 训练集、交叉验证集和测试集的划分 大数据代写
完成splitDataset函数,该函数随机打乱原始数据集的次序,并按照70%:20%:10%的比例
划分训练集、交叉验证集、测试集。
思考:观察原始X的特点,为什么需要随机打乱X中数据的次序。
代码
|
运行结果
调用完成后的splitDataset函数,
|
并用display_2D_data分别观察分割后的training_set,cv_set,test_set。
确保你的代码实现是正确的。
2.3模型训练
本次使用逻辑回归及神经网络作为要训练的模型。这里简要回顾模型的训练和评价过程。
(1)逻辑回归模型的训练。
|
(2)神经网络模型的训练。
|
(3)分别在训练集、交叉验证集和测试集上评价分类误差。
分类误差计算公式:
代码
完成compute_error_lr函数,该函数用于计算分类误差
|
运行结果
调用compute_error_lr函数,输出lambda=0的情况下,训练集、交叉验证集和测试集的
各自分类误差
|
你得出的训练误差 = (保留两位有效数字)
交叉验证误差 = (保留两位有效数字)
测试误差 = (保留两位有效数字)
*每次结果有轻微波动,可以尝试多运行几次取中间值
数lambda的最优化选根据以上的模型训练和评价流程,设置lambda的值从0到8(以0.4为步进)
(提示:使用for循环),逐次计算训练误差、交叉验证误差和测试误差。
在同一坐标系中绘制出训练误差和交叉验证误差随lambda变化的曲线,
并求出lambda的最优值和最终的测试误差。
运行结果
提供绘制的曲线(每次结果有轻微波动,可以多运行几次):
lambda的最优值 = (保留一位小数即可)
最终测试误差 = (保留两位位小数)
学习曲线是训练集和交叉验证集误差对训练集大小的曲线图。通过绘制学习曲线,可以判断你使用的假设模型是欠拟合(high bias)还是过拟合(high variance)的。
设置训练集的大小(m)从100到3500(以100为步进),逐次计算每次的训练误差和交叉验证误差。在同一坐标系中绘制出训练误差和交叉验证误差随m变化的曲线。训练中固定使用lambda=1
运行结果
提供绘制的曲线,并解释这样的曲线说明了什么