《机器学习》笔记-第2章 模型评估与选择
2.1 经验误差与过拟合 通常我们把分类错误的样本数占总数的比例称为“错误率”(error rate),即如果在m个样本中有a个样本分类错误,则错误率为E = a/m ,相应的,1-a/m 称为“精度”(accuracy),即“精度=1-错误率”。更一般的,我们把学习在训练集上的误差称为“训练误差”(training error)或“经验误差”(empirical error),在新样本上...
2.1 经验误差与过拟合 通常我们把分类错误的样本数占总数的比例称为“错误率”(error rate),即如果在m个样本中有a个样本分类错误,则错误率为E = a/m ,相应的,1-a/m 称为“精度”(accuracy),即“精度=1-错误率”。更一般的,我们把学习在训练集上的误差称为“训练误差”(training error)或“经验误差”(empirical error),在新样本上...
通过代码学数学 本章内容 将数学知识和软件开发结合起来解决商业问题 绕开学习数学时的常见陷阱 从变成角度来思考数学问题 将Python作为一个强大、可扩展的计算器 在本书的第一部分中,你将详细学习各种维度的向量以及如何使用高维数据。第二部分将介绍不同类型的函数,如线性函数和指数函数,并通过分析其变化率来进行比较。最后,第三部分将探讨如何建立数学模型...
1.1 引言 本书用”模型”泛指从数据中学得的结果。有文献用”模型”指全局性结果(例如一棵树决策树),而用”模式”指局部性结果(例如一条规则)。 1.2 基本术语 训练样本亦称”训练示例”(training instance)或”训练例”。学习算法通常有参数需要设置,使用不同的参数值和(或)训练数据,将产生不同的结果。 从数据中得到模型的过程称为”学习”(learning)或”训练”...
第七十五条:通过repr字符串输出调试信息 如果要用print调试程序,那么类型的区别就很重要,应该打印的是对象的repr版本。该函数会返回对象的可打印表示形式,把repr返回的值传给内置的eval函数,会得到一个跟原来相同的Python对象(实际中eval()函数的使用必须相当谨慎)。 在格式化字符串里用%s处理相关的值,就跟把这个值传给str函数一样,都能得到一个便于认读的字符串。如...
第八十二条:学会寻找由其他Python开发者所构建的模块 如果面对一项自己不熟悉的需求,可以去PyPI(Python Package Index, 网址为https://pypi.org)搜索一下,看看有没有哪个软件包能够帮你更快达到目标。 可以用pip命令行工具从PyPI里面安装软件包,大多数PyPI模块都是自由及开源软件。pip最好与内置的venv模块搭配使用,这样可以给不同的项目安...
判断子序列 Problem: 392. 判断子序列 思路 单词循环逐个对比各个字符串 解题方法 比较基础的双指针应用 复杂度 时间复杂度: 添加时间复杂度, 示例: O(n) 空间复杂度: 添加空间复杂度, 示例: O(1) Code class Solution: def isSubsequence(self, s: st...
有效的字母异位词 Problem: 242. 有效的字母异位词 思路 单词循环逐个对比各个字符串 解题方法 利用两个指针查找,指针一不变,指针二在字符串二中不断向后,如无相同字符则返回False,反之就删除找到的相同字符。 复杂度 时间复杂度: 添加时间复杂度, 示例: O(n) 空间复杂度: 添加空间复杂度, 示例: O(n) Co...
第六十五条:合理利用try/except/else/finally结构中的每个代码块 try/finally形式的复合语句可以确保,无论try块是否抛出异常,finally快都会得到运行。 如果某段代码应该在前一段代码顺利执行之后加以运行,那么可以把它放到else块里面,而不要把这两段代码全都写到try快之中。这样可以让try块更加专注,同时也能够跟except块形成明确对照:excep...
第四十四条:用纯属性与修饰器取代旧式的setter与getter方法 给新类定义接口时,应该先从简单的public属性写起,避免定义setter与getter方法。 如果在访问属性时确实有必要做特殊处理,那就通过@property来定义获取属性与设置属性的方法。 class VoltageResistance(Resistor): def __init__(self, ohms...
第三十七条:用组合起来的类实现多层架构,不要用嵌套的内置类型 不要在字典里嵌套字典、长元组,以及用其他内置类型构造的复杂结构。 namedtuple能够实现出轻量级的容器,以存放不可变的数据,而且将来可以灵活地转化成普通的类。 如果发现用字典维护内部状态的那些代码已经越写越复杂了,那么就应该考虑用多个类来实现。 第三十八条:让简单的接口接受函数,而不是类的实例 Python有许多内...