【吴恩达机器学习笔记】八、应用机器学习的建议

简介: 【吴恩达机器学习笔记】八、应用机器学习的建议

八、应用机器学习的建议


1. 决定下一步要做什么

假如你现在想用一个常规的线性回归算法去预测房屋的价格,但是你发现预测的结果与实际结果偏差很大,那么你可以考虑下面的这几点:


尝试获得更多的数据集去训练模型。

尝试减少的特征值,有时可能会因为过拟合导致结果不精确。

尝试增加的特征值,有时可能项目太大,但是特征值太少。

尝试增加多项式特征(x12,x22,x1x2等)。

尝试增加λ值。

尝试减小λ值。

当然,有时候你可能做完了项目才发现某些算法并不理想,所以后面的内容将介绍该如何排除一些不适合的算法,并且告诉你上面这些方法可以用来解决哪些问题。


2. 评估假设函数

这节课,我们来讲讲该如何去评估你的假设函数,因为有时候误差很小并不是一件好事,可能是过拟合了,当特征量特别多的时候,就很难通过画图去评估假设函数,所以要用到接下来要讲的方法。


536b022bb5224090b59889f6785c9816.png


首先,对于数据集的处理,我们可以分为两个部分:


01f756195721458babf004e0a81bf3e9.png


一部分为训练集,一部分为测试集,而我们通常将训练集和测试集按照7:3的比例进行划分,这里要注意,所划分的数据集要是随机的。


训练和测试线性回归的步骤:


cd539d1521c14db48f04122f7a33deae.png


将70%的数据集拿去训练,然后计算出最小的训练误差,得到θ值。

计算测试误差。

训练和测试逻辑回归的步骤:


c4287554d2fb46b78aa70e8bb79d3370.png


将70%的数据集拿去训练,然后计算出最小的训练误差,得到θ值。

计算测试误差。

还有一种度量方式是0/1错误分类度量(Misclassification error),可能更好理解一些:


当err为1时,说明分类错误即当hθ(x)≥0.5时,将y判断成了0。

当err为0时,说明此时分类正确。


3. 模型选择和训练、验证、测试集

这节课我们来看看该如何去选择一个合适的模型,首先先来回顾一下之前的模型选择步骤:

ef203b551a674409896230341cceca26.png



我们之前是用训练集来最小化每一个模型得到θ,然后用同一个训练集来测试哪个误差最小,选出最优的那个模型,而其中出现的d代表的是多项式的阶数。我们假设上面模型中最优的是第五个即d=5,但是这个结果可能过于乐观了,因为它只是针对于训练集训练出的结果,如果放在新样本中可能效果就不会那么好了,所以接下来就要引出验证集了。


71d7ff593f8b421e81227889f720fae7.png


为了更好的选择模型,我们现在不再只划分两个数据集,而是三个,分别是训练集、交叉验证集(验证集)和测试集,比例通常在6:2:2,并且选择时也是随机选择的。


e75ac6e7d79e45558c1011095cc13eba.png


接下来就可以分别计算出训练/验证/测试误差,然后进行模型选择。


76d1146e7fd04863b276fda41486f4d7.png


这里和上面不同,虽然还是先用训练集去最小化代价得到θ,但是用于选择模型的数据集变成了验证集,这样就多了一个测试集出来,用于评估所得模型。


4. 诊断偏差和方差

在训练模型的时候,你可能会遇到两种问题,一种就是高偏差问题,一种就是高方差问题,如何判断是否遇到了这两个问题是我们这节课要学的内容,先来看看训练误差和验证误差与多项次数d的关系。


ae2d651a75654d9ea4084ad39914b110.png


由图中可以看到,当d很小的时候,会处于欠拟合状态,所以训练和验证误差会非常的大,当d很大的时候,训练误差会非常的小因为处于过拟合状态,所以这时候验证误差会变得很大。而在中间能够找到一个合适的d,使验证误差达到最小,所以我们就可以进行总结了。

65d456e43c7945159b8979843b1ecbca.png



当训练误差和验证误差都很大的时候,处于欠拟合状态,那就是出现了高偏差问题。


当训练误差很小并且远小于验证误差时,处于过拟合状态,那就是出现了高方差问题。


5. 正则化和偏差、方差

这节课我们来更深入的理解一下正则化和偏差、方差的关系,我们先来看看加了正则化的模型该如何去选择。

478a76e6db784d2396be5388d5346137.png



这里选择模型需要我们尝试各个λ的值,然后通过验证集去拟合参数计算验证误差得到最优解,假设我们得到的是θ(5),那么我们就可以像上面讲的一样,用测试集来评估这个选出来的模型如何。


接下来我们来看看λ对于J(θ)的曲线的影响如何。


7bfdd7a29abf4eea8be73d7fd8d2e37e.png


Jtrain(θ)的值会随着λ的增大而增大,因为λ太小时,就几乎没有正则化,所以会导致过拟合;λ太大时,会对θ的惩罚过大,导致欠拟合。

Jcv(θ)的值会随着λ的增大先减小后增大,同样当λ太小时,几乎没有正则化,这里就被称为高方差问题,而太大时就被称为高偏差问题,在中间就可以找到一个合适的λ值去拟合数据。


6. 学习曲线

假设我们用一个二次函数来拟合我们的数据,并且人为的控制数据量来观察h(θ)的拟合情况。


629f8db0e51f4bae81d1c8921f6d43e3.png


从上图右边的图像可以看出,在m很小的时候即数量集只有几个的时候,二次函数可以很好的拟合数据,但是随着m增大,拟合效果会变差。


再来看看Jtrain(θ)随m增大变化如何,从曲线看发现随着m增大Jtrain(θ)也会增大,而Jcv(θ)反而会减小。


接下来再来看看分别在高偏差和高方差下,曲线的情况,先来看高偏差(High bias)。


afc8513684164d8c890821348e75faba.png


你会发现,当m增大到一定程度时,验证误差和训练误差几乎保持不变,所以在高偏差的情况下,一般增大数据集的数量并不能减少误差值。


接下来,再来看看高方差(High variance)。

a366efe5c0b942be957c03d1dcb4395c.png



可以看到当训练集数量增大到一定程度时,训练误差和验证误差也会逐渐相近,并且会接近于比较低的一个点,所以增大训练集的数量对高方差问题是有一定改善的。


7. 决定接下来要做什么

现在,我们就可以总结一下第一节所提到的那些方法可以分别用于什么问题了:


尝试获得更多的数据集去训练模型:解决高方差问题。

尝试减少的特征值,有时可能会因为过拟合导致结果不精确:解决高方差问题

尝试增加的特征值,有时可能项目太大,但是特征值太少:解决高偏差问题。

尝试增加多项式特征(x12,x22,x1x2等):解决高偏差问题。

尝试增加λ值:解决高方差问题。

尝试减小λ值:解决高偏差问题。

然后我们再来看看神经网络:



1ad004e32b6c495f8bbbc891e83ae5d1.png

如果你选择一个较小的神经网络,你的计算量就会非常的小,参数也会很少,而且会更容易欠拟合。


如果你选择一个较大的神经网络,你的计算量就会非常的大,参数也会很多,而且会更容易过拟合,但是我们一般宁愿选择一个较大的神经网络而不是较小的神经网路是因为,过拟合时你可以用正则化来改善过拟合的问题。


目录
相关文章
|
3月前
|
机器学习/深度学习 数据采集 算法
量子机器学习入门:三种数据编码方法对比与应用
在量子机器学习中,数据编码方式决定了量子模型如何理解和处理信息。本文详解角度编码、振幅编码与基础编码三种方法,分析其原理、实现及适用场景,帮助读者选择最适合的编码策略,提升量子模型性能。
271 8
|
7月前
|
人工智能 自然语言处理 数据挖掘
云上玩转Qwen3系列之三:PAI-LangStudio x Hologres构建ChatBI数据分析Agent应用
PAI-LangStudio 和 Qwen3 构建基于 MCP 协议的 Hologres ChatBI 智能 Agent 应用,通过将 Agent、MCP Server 等技术和阿里最新的推理模型 Qwen3 编排在一个应用流中,为大模型提供了 MCP+OLAP 的智能数据分析能力,使用自然语言即可实现 OLAP 数据分析的查询效果,减少了幻觉。开发者可以基于该模板进行灵活扩展和二次开发,以满足特定场景的需求。
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
Java 大视界 -- Java 大数据机器学习模型在自然语言生成中的可控性研究与应用(229)
本文深入探讨Java大数据与机器学习在自然语言生成(NLG)中的可控性研究,分析当前生成模型面临的“失控”挑战,如数据噪声、标注偏差及黑盒模型信任问题,提出Java技术在数据清洗、异构框架融合与生态工具链中的关键作用。通过条件注入、强化学习与模型融合等策略,实现文本生成的精准控制,并结合网易新闻与蚂蚁集团的实战案例,展示Java在提升生成效率与合规性方面的卓越能力,为金融、法律等强监管领域提供技术参考。
|
4月前
|
机器学习/深度学习 算法 Java
Java 大视界 -- Java 大数据机器学习模型在生物信息学基因功能预测中的优化与应用(223)
本文探讨了Java大数据与机器学习模型在生物信息学中基因功能预测的优化与应用。通过高效的数据处理能力和智能算法,提升基因功能预测的准确性与效率,助力医学与农业发展。
|
4月前
|
机器学习/深度学习 搜索推荐 数据可视化
Java 大视界 -- Java 大数据机器学习模型在电商用户流失预测与留存策略制定中的应用(217)
本文探讨 Java 大数据与机器学习在电商用户流失预测与留存策略中的应用。通过构建高精度预测模型与动态分层策略,助力企业提前识别流失用户、精准触达,实现用户留存率与商业价值双提升,为电商应对用户流失提供技术新思路。
|
4月前
|
机器学习/深度学习 存储 分布式计算
Java 大视界 --Java 大数据机器学习模型在金融风险压力测试中的应用与验证(211)
本文探讨了Java大数据与机器学习模型在金融风险压力测试中的创新应用。通过多源数据采集、模型构建与优化,结合随机森林、LSTM等算法,实现信用风险动态评估、市场极端场景模拟与操作风险预警。案例分析展示了花旗银行与蚂蚁集团的智能风控实践,验证了技术在提升风险识别效率与降低金融风险损失方面的显著成效。
|
5月前
|
机器学习/深度学习 分布式计算 Java
Java 大视界 -- Java 大数据机器学习模型在遥感图像土地利用分类中的优化与应用(199)
本文探讨了Java大数据与机器学习模型在遥感图像土地利用分类中的优化与应用。面对传统方法效率低、精度差的问题,结合Hadoop、Spark与深度学习框架,实现了高效、精准的分类。通过实际案例展示了Java在数据处理、模型融合与参数调优中的强大能力,推动遥感图像分类迈向新高度。
|
5月前
|
机器学习/深度学习 存储 Java
Java 大视界 -- Java 大数据机器学习模型在游戏用户行为分析与游戏平衡优化中的应用(190)
本文探讨了Java大数据与机器学习模型在游戏用户行为分析及游戏平衡优化中的应用。通过数据采集、预处理与聚类分析,开发者可深入洞察玩家行为特征,构建个性化运营策略。同时,利用回归模型优化游戏数值与付费机制,提升游戏公平性与用户体验。
|
7月前
|
机器学习/深度学习 数据采集 人工智能
智能嗅探AJAX触发:机器学习在动态渲染中的创新应用
随着Web技术发展,动态加载数据的网站(如今日头条)对传统爬虫提出新挑战:初始HTML无完整数据、请求路径动态生成且易触发反爬策略。本文以爬取“AI”相关新闻为例,探讨了通过浏览器自动化、抓包分析和静态逆向接口等方法采集数据的局限性,并提出借助机器学习智能识别AJAX触发点的解决方案。通过特征提取与模型训练,爬虫可自动推测数据接口路径并高效采集。代码实现展示了如何模拟AJAX请求获取新闻标题、简介、作者和时间,并分类存储。未来,智能化将成为采集技术的发展趋势。
183 1
智能嗅探AJAX触发:机器学习在动态渲染中的创新应用
|
11月前
|
机器学习/深度学习 数据采集 JSON
Pandas数据应用:机器学习预处理
本文介绍如何使用Pandas进行机器学习数据预处理,涵盖数据加载、缺失值处理、类型转换、标准化与归一化及分类变量编码等内容。常见问题包括文件路径错误、编码不正确、数据类型不符、缺失值处理不当等。通过代码案例详细解释每一步骤,并提供解决方案,确保数据质量,提升模型性能。
443 88

热门文章

最新文章