加入收藏 | 设为首页 | 会员中心 | 我要投稿 通化站长网 (https://www.0435zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

读懂浏览器缓存

发布时间:2021-01-31 15:40:21 所属栏目:动态 来源:互联网
导读:要测试 fact() 方法正确性,你在 main() 方法中编写了一段测试代码。如果你这么做过的话,我只能说你也曾经青涩天真过啊!使用 main() 方法来测试有很多坏处,比如说: 1)测试代码没有和源代码分开。 2)不够灵活,很难编写一组通用的测试代码。 3)无法自动打

要测试 fact() 方法正确性,你在 main() 方法中编写了一段测试代码。如果你这么做过的话,我只能说你也曾经青涩天真过啊!使用 main() 方法来测试有很多坏处,比如说:

1)测试代码没有和源代码分开。

2)不够灵活,很难编写一组通用的测试代码。

3)无法自动打印出预期和实际的结果,没办法比对。

但如果学会使用我——JUnit 的话,就不会再有这种困扰了。我可以非常简单地组织测试代码,并随时运行它们,还能给出准确的测试报告,让你在最短的时间内发现自己编写的代码到底哪里出了问题。

02、上手指南

好了,既然知道了我这么优秀,那还等什么,直接上手吧!我最新的版本是 JUnit 5,Intellij IDEA 中已经集成了,所以你可以直接在 IDEA 中编写并运行我的测试用例。

第一步,直接在当前的代码编辑器窗口中按下 Command+N 键(Mac 版),在弹出的菜单中选择「Test...」。
 

01、前世今生

你好呀,我是 JUnit,一个开源的 Java 单元测试框架。在了解我之前,先来了解一下什么是单元测试。单元测试,就是针对最小的功能单元编写测试代码。在 Java 中,最小的功能单元就是方法,因此,对 Java 程序员进行单元测试实际上就是对 Java 方法的测试。

为什么要进行单元测试呢?因为单元测试可以确保你编写的代码是符合软件需求和遵循开发规范的。单元测试是所有测试中最底层的一类测试,是第一个环节,也是最重要的一个环节,是唯一一次能够达到代码覆盖率 100% 的测试,是整个软件测试过程的基础和前提。可以这么说,单元测试的性价比是最好的。

微软公司之前有这样一个统计:bug 在单元测试阶段被发现的平均耗时是 3.25 小时,如果遗漏到系统测试则需要 11.5 个小时。
 

17. CatBoostEncoder

CatBoost是一种梯度增强算法(例如XGBoost或LightGBM),在各种问题上都表现得非常出色。此处对编码算法进行了详细说明(我们的实现略有简化,但是对于掌握概念非常有用)。

CatboostEncoder的工作原理基本上与LeaveOneOutEncoder相似,但是遵循一种在线方法。

但是,如何在离线设置中模拟在线行为?假设您有一张桌子。然后,在桌子中间的某处划一排。CatBoost的行为是假装当前行上方的行先前已被及时观察到,而下方行尚未被观察到(即将来会被观察到)。然后,该算法仅根据已经观察到的行进行留一法编码。
 

如您所见,由于公式中存在对数,因此无法直接解释输出。但是,它可以很好地用作机器学习的预处理步骤。

16. LeaveOneOutEncoder

到目前为止,所有15个编码器都具有唯一的映射。

但是,如果您打算将编码用作预测模型的输入(例如,梯度增强),则可能会出现问题。实际上,假设您使用TargetEncoder。这意味着您将在X_train中引入有关y_train的信息,这可能会导致严重的过度拟合风险。

关键是:如何在限制过度拟合风险的同时保持监督编码?LeaveOneOutEncoder提供了一个出色的解决方案。它执行原始目标编码,但是对于每一行,它不考虑对该行观察到的y值。这样,避免了行泄漏。

(编辑:通化站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!