类是描述了一组有共同行为的对象。由类描述的对象称为类的一个实例。类指定了其实例拥有的属性(原文为slot卡槽)的名称,而这些属性的值由实例自身来进行填充。类同样也指定了可以应用于其实例的方法(method)。属性值可以是任何形式,但方法的值必须是过程。 类具有继承性。因此,一个类可以是另一个类的子类,我们称另一个类为它的父类。一个子类不仅有它自己“直接的”属性和方法,也会继承它的父类的所有属性和方
一个有用的Scheme程序经常需要与底层操作系统进行交互。 11.1 检查和删除文件 file-exists?会检查它的参数字符串是否是一个文件。delete-file接受一个文件名字符串作为参数并删除相应的文件。这些程序并不是Scheme标准的一部分,但是在大多数Scheme实现中都能找到它们。用这些过程操作目录(而不是文件)并不是很可靠。(用它们操作目录的结果与具体的Scheme实现有关。)
在本章里,我们将使用 Lisp 来自己实现面向对象语言。这样子的程序称为嵌入式语言 (embedded language)。嵌入一个面向对象语言到 Lisp 里是一个绝佳的例子。同時作为一个 Lisp 的典型用途,並演示了面向对象的抽象是如何多自然地在 Lisp 基本的抽象上构建出来。 17.1 继承 (Inheritance) 11.10 小节解释过通用函数与消息传递的差别。 在消息传递模型里,
接下来三章提供了大量的 Lisp 程序例子。选择这些例子来说明那些较长的程序所采取的形式,和 Lisp 所擅长解决的问题类型。 在这一章中我们将要写一个基于一组 if-then 规则的推论程序。这是一个经典的例子 —— 不仅在于其经常出现在教科书上,还因为它反映了 Lisp 作为一个“符号计算”语言的本意。这个例子散发着很多早期 Lisp 程序的气息。 15.1 目标 (The Aim) 在这个程
你可以认为OCaml分成了两部分:一个是核心语言,聚焦于值和类型,一个是模块语言,聚焦于模块和模块签名。这些子语言是分层的,模块中可以包含类型和值,但是普通的值不能包含模块或模块类型。这意味着你不能定义一个值为模块的变量,或一个接收一个模块作为参数的函数。 围绕这种层次,OCaml以 第一类模块的形式提供一种方法。第一类模块是普通的值,可以从普通模块创建,也可以转回普通模块。 第一类模块是一种复杂
我们经常收集许多可能与监督预测任务相关的特征,但我们不知道它们中的哪一个实际上是预测性的。 为了提高可解释性,有时还提高泛化表现,我们可以使用自动特征选择来选择原始特征的子集。 有几种可用的特征选择方法,我们将按照复杂性的升序来解释。 对于给定的监督模型,最佳特征选择策略是尝试每个可能的特征子集,并使用该子集评估泛化表现。 但是,特征子集是指数级,因此这种详尽的搜索通常是不可行的。 下面讨论的策略
线性模型在可用的数据很少时非常有用,或者对于文本分类中的非常大的特征空间很有用。 此外,它们是正则化的良好研究案例。 用于回归的线性模型 用于回归的所有线性模型学习系数参数coef_和偏移intercept_,来使用线性特征组合做出预测: y_pred = x_test[0] * coef_[0] + ... + x_test[n_features-1] * coef_[n_features-1]
在本节中,我们将研究如何链接不同的估计器。 简单示例:估计器之前的特征提取和选择 特征提取:向量化器 对于某些类型的数据,例如文本数据,必须应用特征提取步骤将其转换为数值特征。 为了说明,我们加载我们之前使用的 SMS 垃圾邮件数据集。 import os with open(os.path.join("datasets", "smsspam", "SMSSpamCollection")) as
在许多任务中,例如在经典的垃圾邮件检测中,你的输入数据是文本。 长度变化的自由文本与我们需要使用 scikit-learn 来做机器学习所需的,长度固定的数值表示相差甚远。 但是,有一种简单有效的方法,使用所谓的词袋模型将文本数据转换为数字表示,该模型提供了与 scikit-learn 中的机器学习算法兼容的数据结构。 假设数据集中的每个样本都表示为一个字符串,可以只是句子,电子邮件或整篇新闻文章
问题内容: 我被要求测试第三方提供的图书馆。该库已知可精确到 n个 有效数字。任何不太重要的错误都可以安全地忽略。我想编写一个函数来帮助我比较结果: 此函数的目的是确定两个浮点数(a和b)是否近似相等。如果a == b(完全匹配),或者当a和b具有十进制值的 sigfig 有效数字舍 入时, 该函数将返回True 。 有人可以建议一个好的实施方案吗?我写了一个迷你单元测试。除非您在测试中看到错误,
例如,使用 IEEE-754 32 位二进制浮点数,让我们表示 。它不能完全完成,但产生最接近的值。您可能希望以十进制写入值,并让编译器将十进制文本转换为二进制浮点数。 您可以看到,8 个(有效)十进制数字足以表示尽可能正确的值(最接近实际值)。 我用π和e(自然对数的基础)进行了测试,两者都需要8位小数才能正确测试。 但是,似乎需要9位数字。 https://godbolt.org/z/W5vE
1实习经历(实习做了什么,实习的项目) 2cookie和localstorage和sessionstorage(之间的区别) 3模块化规范(es6,commond.js amd cmd) 4vue的模块化开发(export,mixin,extends) 5watc和computed的区别(底层层面和使用层面) 6watch无法监听的情况(vue2的object新增无绑定数据和数组索引添加) 7ar
一面面经: 自我介绍 家乡在哪儿?为什么想去北京?(聊天的问题有些不太记得了,下面写一点专业的问题) 讲一讲HashMap 说一下HashMap的扩容 HashMap的负载因子知道么?(我刚好记得,所以就答出来了,然后面试官问我是在哪儿看到的,我说八股文,面试官说建议我多看看源码) 熟悉多线程么?有四个创建线程的方式,你说说其中Runnable和Collable的区别吧。(我只答了返回值的区别,然
在本章中,我们会涉及到与 Android 安全相关的其他主题,这些主题不直接属于已经涉及的任何主题。 6.1 Android 签名过程 Android 应用程序以 Android 应用包文件(.apk文件)的形式分发到设备上。 由于这个平台的程序主要是用 Java 编写的,所以这种格式与 Java 包的格式 — jar(Java Archive)有很多共同点,它用于将代码,资源和元数据(来自可选的
我们快要完成这个应用了,做完一点点自定义样式之后,就算正式完成了。在定义我们的样式之前我们将要给模板文件添加一些类。 > 修改src/pages/home/home.ts 为如下: <ion-header> <ion-navbar color="secondary"> <ion-title> <ion-searchbar color="primary" pl