机器学习—再次决定下一步做什么

ops/2024/11/18 14:14:21/

通过看Jtrain和Jcv,即训练错误和交叉验证错误,或者甚至绘制学习曲线,你可以试着去感受一下,你的学习算法是高偏差还是高方差,一种学习算法,会经常看训练错误和交叉验证错误,尝试判断算法是高偏差还是高方差,事实证明,这将帮助你更好地决定下一步要尝试什么。

如果你对预测房价实施了正则化线性回归,但你的算法在预测中犯了不可接受的大错误,下一步要尝试什么,这是六个想法,获取更多的训练示例,尝试一组小功能,附加功能等等。事实证明,这六项中的每一项要么有助于修复高方差要么是高偏见问题,尤其是如果你的学习算法有很高的偏差,其中三种技术将是有用的,如果你的学习算法有很高的方差,那么这三种不同的技术将是有用的,1.获取更多的训练示例,如果你的算法有很高的偏差,唯一能做的就是自己获取更多的训练数据,可能用处不大,但相比之下,如果你的算法有很高的方差,说它太适合一个非常小的训练集,那么得到更大的训练例子会有很大的帮助,因此,获得更多训练示例的第一个选择有助于解决高方差问题;2.有时如果你的学习算法有太多的特征,然后它给了算法太多的灵活性来拟合非常复杂的模型,如果你把X X² X³,一直到四次方,如果你能消除其中的一些,那么模型就不会那么复杂了,它不会有这么大的方差,如果你怀疑你的算法有许多实际上不相关的特性或有助于预测房价或者如果你怀疑有一些多余的功能,然后消除或减少特征的数量,将有助于降低算法过度拟合数据的灵活性,所以这也可以帮助修复高方差;3.反过来说,获取附加功能,那只是增加了额外的功能,与去一个较小的功能集相反,这将帮助修复一个高偏差问题作为一个具体的例子,如果你试图根据房子的大小来预测房子的价格,但是,事实证明,房子的价格取决于卧室的数量,在楼层数和房龄上,除非添加这些额外的特性,否则算法永远不会做的那么好,所以这是一个高偏差问题,因为你在训练场上做不到,当你只知道大小,只有当你告诉算法有多少间卧室时,有几层,这房子有几年历史了,有了足够的信息,甚至在训练集上做得更好,因此,添加额外的特性是解决高偏差问题的一种方法;4.添加多项式特性有点像添加附加特性,所以如果你是线性函数直线,不能很好地适应训练集,然后添加额外的多项式特性可以帮助你在训练集上做的更好,是解决高偏差问题的一种方法,5.然后递减lambda,对正则化参数使用较低值的方法,这意味着我们将减少对这一术语的关注,帮助解决高偏差问题;6.最后很好的增加lambda,说明过度拟合了数据,因此,增加lambda是有意义的,如果它过度适应训练集,只是把太多注意力放在训练上,但以推广新例子为代价,因此,增加lambda将迫使算法拟合更平滑的函数,也许是一个不那么摇摆不定的功能,用它来解决一个高方差问题

如果你发现你的算法有很高的方差,两个主要的修复方法是获得更多的训练数据或者简化模型(获得较小的特征集,增加正则化参数lambda),所以你的算法不太灵活,无法适应非常复杂的情况,非常摆动的曲线;如果你的算法有很高的偏差,那就意味着即使在训练场它也做的不好,主要的修复是使模型更加强大,使其具有更大的灵活性,以适应更复杂或更灵活的功能,因此一些方法是给它额外的功能,或者增加多项式特征,或者减少正则化参数lambda

如果你应该通过减少训练集大小来修复高偏差,那实际上没有帮助,如果减少训练集大小,会更适合训练集,但这会使交叉验证错误恶化以及你的学习算法的性能,所以不要随意扔掉训练例子,只是为了解决一个高偏差问题。


http://www.ppmy.cn/ops/134719.html

相关文章

31-Shard Allocation Awareness(机架感知)

同一机器上,部署多个es节点,防止副本和主分片分配到同一机器上 例如:es节点a、b、c部署在01机器上,节点d、e、f部署在02机器上 es2.4版本配置 a、b、c节点yaml配置:node.rack: aaa d、e、f节点yaml配置&#xff1a…

论文《基于现实迷宫地形的电脑鼠设计》深度分析(二)——超声波环境感知算法

论文概述 《基于现实迷宫地形的电脑鼠设计》是由吴润强、庹忠曜、刘文杰、项璟晨、孙科学等人于2023年发表的一篇优秀期刊论文。其针对现阶段电脑鼠计算量庞大且不适用于现实迷宫地形的问题,特基于超声波测距与传统迷宫算法原理,设计出一款可在现实迷宫地…

加载shellcode

​​​​​​ #include <stdio.h>#include <windows.h>DWORD GetHash(const char* fun_name){ DWORD digest 0; while (*fun_name) { digest ((digest << 25) | (digest >> 7)); //循环右移 7 位 digest *fun_name; //累加…

【WiFi】ubuntu20.4 WiFi6 无线抓包环境搭建及使用

环境说明 笔记本电脑&#xff0c;无线网卡AX200&#xff0c;安装ubuntu20.04 安装无线网卡工具aircrack-ng sudo apt-get install aircrack-ng 安装wireshark sudo add-apt-repository ppa:wireshark-dev/stable sudo apt update sudo apt -y install wireshark sudo apt -…

深入剖析String类的底层实现原理

嘿嘿,家人们,今天咱们来模拟实现string,好啦,废话不多讲,开干! 1:string.h 1.1:构造函数与拷贝构造函数 1.1.1:写法一 1.1.2:写法二(给缺省值) 1.2:赋值运算符重载与operatror[]获取元素 1.3:容量与迭代器 1.4:reserve与resize 1.5:清空与判断是否为空 1.6:push_back与…

20241116解决在WIN11和ubuntu20.04通过samba共享时出现局域网千兆带宽拉满的情况

20241116解决在WIN11和ubuntu20.04通过samba共享时出现局域网千兆带宽拉满的情况 2024/11/16 13:42 缘起&#xff1a;最近需要通过iperf3打流&#xff0c;因此在ubuntu20.04服务器上常开sudo nethogs监控流量。 但是发现一个异常&#xff0c;ubuntu20.04服务器上发送的流量过大…

Python 正则表达式进阶用法:字符集与字符范围详解

Python 正则表达式进阶用法&#xff1a;字符集与字符范围详解 正则表达式是文本处理和数据清洗中不可或缺的工具。在前面的学习中&#xff0c;我们已经了解了基本的正则表达式匹配&#xff0c;如匹配单个字符、字符串开始和结束的位置等。今天&#xff0c;我们将进入正则表达式…

安全见闻(完整版)

目录 安全见闻1 编程语言和程序 编程语言 函数式编程语言&#xff1a; 数据科学和机器学习领域&#xff1a; Web 全栈开发&#xff1a; 移动开发&#xff1a; 嵌入式系统开发&#xff1a; 其他&#xff1a; 编程语言的方向&#xff1a; 软件程序 操作系统 硬件设备…