合肥工业大学(HFUT)2024机器学习课后编程作业

零:详细原码和题目要求见文末链接

一.Coursera测验习题-展开介绍

对自己所学章节的学习内容的代码截图、分析说明和心得体会。

学习使用numpy 和matplotlib 读取训练集文件和将文件以点状图的形式展现出来.

创建参数,预测函数模型和目标函数

将数据标准化,便于计算参数(收敛快)

定义更新参数时需要用到的各种参数,并循环更新参数

更新日志的输出

获得模型,并输出图像

进行数据验证

分析说明

代码具体涉及了两条路线

  1. 最小二乘法(损失函数)

预测模型归根到底就是确定合适的w值和b值,那么如何衡量一个模型对训练集的拟合程度就是最关键的问题,损失函数的引入E(θ)就通过计算预测值和训练值的差值,并求和.得出来的值越小就说明当前选择的w,b值越拟合训练集

2.梯度下降法(参数的更新),

   

损失函数E(θ)分别对w,b求偏导,就会得到上述式子,通过不断地循环更新,w,b的值所训练出的f(x)的损失函数的值就会越小,函数就会更加拟合

其中θ0和θ1分别代表b,w

心得体会

理解数据和目标:在开始任何机器学习任务之前,首先要理解数据集和预测的目标。在单变量回归中,通常有一个自变量和一个因变量,目标是建立一个模型来预测因变量如何随着自变量的变化而变化。

数据可视化:数据可视化是理解数据的重要方式。通过绘制散点图或折线图等,可以帮助观察自变量和因变量之间的关系,以及是否存在任何模式或趋势。

参数优劣的衡量:通过不断计算损失函数,并更新迭代参数,会得出一个较优解.

二、编程作业-展开介绍

对自己所学章节的学习内容的代码截图、分析说明和心得体会。

Exercise 1

练习1中要求写一个sigmoid函数,其公式如下:

,它的函数的值域分布在0-1之前,因此很适合用于将预测概率作为输出的模型,而且函数是可微的。这意味着可以找到任意两个点的Sigmoid曲线的斜率.

下图为Sigmoid函数及其导数的图像.

通过导入numpy库使用其中的.exp由于题目要求 z 可能为一个数值,也可能为一个数组,而numpy完全适用于这种场合.并且通过检验,sigmoid函数的输出完全符合预期值.

Exercise 2

  •  衡量模型预测出来的值 f(θ) 与真实值 y 之间差异的函数叫做代价函数J(θ)。

1代价函数值越小说明模型和参数越符合训练样本(x, y)对应的模型。

2代价函数是用来找到假设函数的最优解的,将求假设函数问题转换为求代价函数问题。

逻辑回归问题的实质就是不断迭代计算参数θ,以求得一个最优解,使得到的函数fx最拟合训练集的数据.

题目中使用到的代价函数叫做交叉熵代价函数(cross-entropy),当误差越大时,梯度就越大,参数wb的调整就越快,训练的速度也就越快。在回归的时候处理的是误差,所以要最小化,而现在考虑的是概率,所以要最大化,这里之所以会使用到log是因为在计算联合概率分布时涉及到连乘,故引入log便于化简而且在 L(θ1) < L(θ2) 时,有logL(θ1) < logL(θ2) 成立

如果输出神经元是线性的,那么二次代价函数就是一种合适的选择。

如果输出神经元是S型函数,那么比较适合用交叉熵代价函数。

要求计算损失函数,由于在题目要求中已经给出相应的公式,故只需一步一步套公式,便可得到正确答案.并且经过验证,损失函数的输出符合预期值.

Exercise 3

机器学习算法都需要最大化或最小化一个函数,这个函数被称为"目标函数",其中我们一般把最小化的一类函数,称为"损失函数"。它能根据预测结果,衡量出模型预测能力的好坏。在求损失函数最小化的过程中使用梯度下降法。在上一步中计算了对数似然函数用作目标函数,现在需要对每一个参数seita做微分.推导过程如下

要求计算梯度,由于所有计算公式已经给出,再套用Exercise2给出的f_wb的公式,便可以得到相应的答案. 并且经过验证,梯度函数的输出符合预期值.

Exercise 4

这里涉及到分类(逻辑回归)问题,但其本质还是通过梯度下降的方法求出参数的值,并结合sigmoid函数对数据进行二分类. 逻辑回归模型将输入特征与输出类别之间的关系表示为线性回归函数,然后通过逻辑函数将线性回归的结果转换为一个概率值,用于预测目标变量。逻辑回归的优点是计算效率高,但在处理高维数据时可能会过拟合。

要求计算预测值,由于所有计算公式已经给出,再套用Exercise2给出的f_wb的公示,便可以得到相应的答案. 并且经过验证,预测值的输出符合预期值.

Exercise 5

正则化主要解决过拟合问题,因为你选择的变量次数越高,拟合程度就会越接好,但是这仅仅体现在训练数据上面,往往这种模型在新数据的作用效果就很差,于是就要尽量避免这样拟合过度的情况,正则化的思路就是对高次项进行惩罚。

要求计算损失函数正则化以后得值.

正则化的公式如上, 其中λ又称为正则化参数(Regularization Parameter)。

如果选择的正则化参数λ过大,则会把所有的参数都最小化了,导致模型变成h(x) = seita0造成欠拟合.

由于所有计算公式已经给出,再套用Exercise3给出的compute_cost(X, y, w, b)(损失函数)的公式,便可以得到相应的答案. 并且经过验证,损失函数的输出符合预期值.

Exercise 6

由于在上述计算代价函数时,引入了正则化避免过拟合,因而通过对代价函数求导而得到的参数seitai的计算公式也会得到相应的变化,注: θ0 不需要加入正则项。

要求计算梯度正则化以后得值,由于所有计算公式已经给出,再套用Exercise4给出的compute_gradient(X, y, w, b) (计算梯度函数)的公式,便可以得到相应的答案. 并且经过验证,梯度函数的输出符合预期值.

心得体会:

逻辑回归分类:

逻辑回归是一种用于解决二分类问题的机器学习算法,它通过拟合一个逻辑函数来进行分类预测。在学习逻辑回归分类时,重要的是理解如何将输入特征与输出标签联系起来,并使用训练数据来训练模型以进行二分类预测。

逻辑回归代价函数:

逻辑回归的代价函数是一种衡量模型预测与实际标签之间差异的指标。能够有效地评估模型的性能。学习逻辑回归代价函数时,重要的是理解代价函数的形式以及如何通过最小化代价函数来优化模型参数。

逻辑回归正则化:

正则化是一种用于防止模型过拟合的技术,可以通过在代价函数中引入正则化项来实现。逻辑回归通常使用L1正则化或L2正则化。

在学习逻辑回归正则化时,需要理解正则化的作用机制以及如何调节正则化参数来平衡模型的复杂度和性能。

总的来说,学习逻辑回归分类、代价函数和正则化是掌握机器学习基础知识的关键一步。这些概念的理解不仅帮助构建有效的分类模型,还为解决实际问题提供了强大的工具。在实践中,可以探索不同的数据集、调整模型参数,以及应对数据中的挑战,从而不断提升我们的机器学习技能。随着对这些概念的深入了解,可以将它们扩展到更广泛的领域,如多分类、深度学习等,进一步拓展机器学习应用能力。

三:相关代码链接:(随手start)

https://github.com/1StephenCurry1/machine_learning.git

  • 26
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值