分析,我们有房价的值,所以是一个监督问题;我们最终是要预测得到房价中位数,因此是一个回归问题,而且是一个多变量预测回归,因为有很多影响参数;另外,没有连续的数据流入,没有特别需求需要对数据变动作出快速适应...imputer = Imputer(strategy="median")#创建一个Imputer类 housing_num = housing.drop("ocean_proximity", axis=1)#创建没有文本属性的数据副本...类,如: cat_encoder = CategoricalEncoder() housing_cat_reshaped = housing_cat.values.reshape(-1, 1) housing_cat...这一部分可以将属性组合写在里面。 注意这里可以为属性设置一些超参数,检查这个属性是否地ML的算法有帮助。 特征缩放 这个步骤很重要,针对的是输入数值属性量度的不同问题。...Scikit-Learn 没有工具来处理 PandasDataFrame,因此我们需要写一个简单的自定义转换器来做这项工作: #这一部分最好写在前面 from sklearn.base import BaseEstimator
也就是说,没有人能否认这样的事实:作为数据科学家的实践者,我们必须了解一些通用机器学习的基础知识算法,这将帮助我们解决所遇到的新领域问题。...▌1.主成分分析(PCA)/ SVD PCA是一种无监督的方法,用于对由向量组成的数据集的全局属性进行理解。...奇异值分解(SVD)本质上也是计算有序组件的一种方法,但你在没有获得点的协方差矩阵的情况下也可以得到它。 ? 该算法通过获取维度缩小的数据点的方式来帮助人们克服维度难题。...库: https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.svd.html http://scikitlearn.org/...目前常用的两种决策树算法是随机森林(Random Forests)(在属性的随机子集上建立不同的分类器,并将它们结合起来输出)和提升树(Boosting trees)(在其他树的基础上对树的级联进行训练
也就是说,没有人能否认这样的事实:作为数据科学家的实践者,我们必须了解一些通用机器学习的基础知识算法,这将帮助我们解决所遇到的新领域问题。...▌1.主成分分析(PCA)/ SVD PCA是一种无监督的方法,用于对由向量组成的数据集的全局属性进行理解。...奇异值分解(SVD)本质上也是计算有序组件的一种方法,但你在没有获得点的协方差矩阵的情况下也可以得到它。 该算法通过获取维度缩小的数据点的方式来帮助人们克服维度难题。...库: https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.svd.html http://scikitlearn.org/...目前常用的两种决策树算法是随机森林(Random Forests)(在属性的随机子集上建立不同的分类器,并将它们结合起来输出)和提升树(Boosting trees)(在其他树的基础上对树的级联进行训练
所以,对于中文,出现编码问题的时候,往往是没有用好utf-8与unicode之间的转换。...就是把函数作为一个参数传入到@的语法糖后面,然后@后面的这个function是用来返回一个function的,最后调用这个返回的function 9.frozen 其实就是参数冻结的技术,之前似乎在R还是scikitlearn...@property 我们在对实例属性操作的时候,就知道该属性很可能不是直接暴露的,而是通过getter和setter方法来实现的。..._birth 而你用property来用也是可以的,而且,这个时候,获得属性和修改属性,之间像访问成员变量一样就可以了,而不是访问方法。
#过滤式特征选择 #根据方差进行选择,方差越小,代表该属性识别能力很差,可以剔除 from sklearn.feature_selection import VarianceThreshold x=[[..., [101,11,12,13]] selector=VarianceThreshold(1) #方差阈值值, selector.fit(x) selector.variances_ #展现属性的方差...给出被选出的特征的数量 selector.support_ #给出了被选择特征的mask selector.ranking_ #特征排名,被选出特征的排名为1 #注意:特征提取对于预测性能的提升没有必然的联系...) selector.fit(x,y) selector.transform(x) selector.threshold_ selector.get_support(indices=True) #scikitlearn
代码清单6-1为使用Scikitlearn的DecisionTreeRegressor工具包针对红酒口感数据构建二元决策树的代码。图6-1为代码清单6-1生成的决策树。...在图6-1中,终止节点处在框图底部,它们下面没有分支或者进一步的决策节点。 ?...图6-2 标签与属性的关系图 1.3 决策树的训练等同于分割点的选择 代码清单6-2的第一步是运行scikitlearn的regression tree包,并指定决策树的深度为1。...如果属性没有重复值,每个数据点对应的属性值都要作为分割点进行测试(则分割点的测试次数等于数据点数目减1)。 随着数据规模的增大,分割点的计算量也成比例增加。测试的分割点彼此可能非常近。...这两个度量指标与误分类错误有一些不同特性,但在概念上没有差别。 最后一个部分是当属性是类别属性而非数值属性时,如何训练决策树。决策树中的非终止节点提出一个yes/no的问题。
例如,油在大多数食谱中都有使用,而且在食谱之间几乎没有区别。而且,大多数人家里都有油,所以每次使用API都要写油,这既麻烦又毫无意义。 简单地删除最常见的单词似乎非常有效,所以我这样做了。...scikitlearn的countVector有一个很好的实现。 词袋执行得不错,但TF-IDF(术语频率反向文档频率)执行得稍差,所以我们选择了这个。...与往常一样,scikitlearn有一个很好的实现:TfidfVectorizer。然后,我用pickle保存了模型和编码,因为每次使用API时重新训练模型都会使它非常缓慢。...我们使用基于内容的过滤,使我们能够根据用户提供的属性(成分)向人们推荐食谱。为了度量文档之间的相似性,我使用了余弦相似性。...首先,我在我的项目文件夹中创建了一个没有扩展名的Procfile文件。
去除不需要的数据 一般情况下,我们会尽可能多的收集数据,但是不是所有的字段数据都是可以应 用到模型构建过程的,也不是说将所有的字段属性都放到构建模型中,最终模型 的效果就一定会好,实际上来讲,字段属性越多...可以通过scikitlearn中的class_weight参数来设置权重。 下采样/欠采样(under sampling):从多数类中随机抽取样本从而减少多数类别 样本数据,使数据达到平衡的方式。...定量特征属性二值化 特征标准化与归一化 文本特征属性转换 机器学习的模型算法均要求输入的数据必须是数值型的,所以对于文本类型的特 征属性,需要进行文本数据转换,也就是需要将文本数据转换为数值型数据...,比如:多项式扩展转换、文本 数据转换等等,但是太多的特征属性的存在可能会导致模型构建效率降低,同时模型的 效果有可能会变的不好,那么这个时候就需要从这些特征属性中选择出影响最大的特征 属性作为最后构建模型的特征属性列表...在选择模型的过程中,通常从两方面来选择特征: 特征是否发散:如果一个特征不发散,比如方差解决于0,也就是说这样的特征对于样本的 区分没有什么作用。
注意,就像任何变量,如果一个新的值被赋值给exports,它就不再绑定到module.exports(其实是exports.属性会自动挂载到没有命名冲突的module.exports.属性) require...(a.func()); // module.exports的函数 // 当属性在module.exports没有定义,函数在module.exports有定义 console.log(a.id2);...// undefined console.log(a.func()); // module.exports的函数 // 当函数在module.exports没有定义,属性在module.exports...a function 由例二可以知道: 1.module.exports像是exports的大哥,当module.exports以{}整体导出时会覆盖exports的属性和方法, 2.注意,若只是将属性...和module.exports同时赋值时,exports所使用的属性和方法必须出现在module.exports,若属性没有在module.exports中定义的话,出现undefined,若方法没有在
_cache 如果之前require过这个模块 就存到缓存中 new Module 如果缓存中没有 就创建模块 每个模块都有一个exports属性 tryModuleLoad() 尝试加载模块 Module..._resolveFilename 解析文件名 返回一个绝对路径 我们首先判断模块有没有后缀名 如果有后缀名,判断这个文件存在还是不存在,如果存在就返回一个绝对路径,不存在就抛出一个异常 如果没有后缀名..._cache 判断有没有加载过 我们之前说过,会把这个模块的绝对路径当做key存到缓存中,现在已经解析出一个绝对路径了,接下来只需要判断缓存中有没有 Module....代表第一次引入 // 每个实例上都有一个私有属性id,存的是自己的绝对路径(唯一标识),还有一个exports属性 存的的引入的模块导出的内容 let module = new Module...exports属性了,我们最后只需要 return module.exports这个属性就可以了 } } 复制代码 ---- 结束 Module.
在查找过程中,会找 package.json 下 main 属性指向的文件,如果没有 package.json ,在 node 环境下会以此查找 index.js ,index.json ,index.node...如果没有缓存,会创建一个 module 对象,缓存到 Module 上,然后执行文件,加载完文件,将 loaded 属性设置为 true ,然后返回 module.exports 对象。...但是如果 module.exports 为一个非对象其他属性类型,在循环引用的时候,就容易造成属性丢失的情况发生了。...重定向导出 可以把当前模块作为一个中转站,一方面引入 module 内的属性,然后把属性再给导出去。...module 内的 default 属性。
,没有没关系,本文就来一探究竟。...,这很明显,因为我们知道CJS的导出其实是module.exports属性的值,那么我们使用ESM导出了多个变量,只能都添加到一个对象上来导出,注意看其中两点: 1.添加属性没有直接使用esm_exports.xxx...的方式来添加,而是使用Object.defineProperty方法,并且只给属性定义了取值函数get,没有定义赋值函数set,这意味着esm_exports的这个属性的值是不能被修改的,这其实是CommonJS...同时会设置新添加属性的属性描述符,设置取值函数get,返回值为from对象的该属性值,因为没有设置get,所以添加的属性值也是不能被修改的。...因为CJS的导出就是使用在module.exports对象上添加属性,或者是重写module.exports属性,所以直接将原模块的代码放到一个函数里,然后通过参数的形式传入module对象和exports
联系与区别: 在 module 对象中,包含 exports 属性,而我们就是通过这个属性(module.exports),向外暴露(共享)成员的。...是 module.exports 对象地址的一个引用,exports 本质是一个变量) 两者没有区别,是全等的 注意: 在使用 module.exports 时,我们可以将某一个对象赋值给 module.exports...(module.exports = Object),也可以为 module.exports 挂载新属性( module.exports.name = ‘zs’),这些都没有问题,你都可以在引用的文件中拿到修改后的模块成员...重要结论:module.exports 和 exports 同指一个对象,但是最终暴露结果以 module.exports 的为准,上面的代码中,exports 改变了指向,而我们又没有为 module.exports...挂载任何的属性或方法,所以就拿到了空对象 扩展知识: module.exports 和 exports 是commonjs 的规范 export 和 export default 是 es6 规范 require
刚开始的时候exports和module.exports指向同一个空对象: ? 我们可以给exports或者module.exports添加任意属性,实际上相当于作用于同一个对象。...如果没有显式定义module.exports,exports就会收集它由定义的任意属性并将它们赋予给module.exports。...; exports.name = function() { console.log('My name is Lemmy Kilmister'); }; 上面的name属性将会被忽略,因为module.exports...被显式声明为一个字符串对象,所以exports不可能再给字符串赋予属性name。...也就是说,只要我们不直接覆写module.exports,那么module.exports与exports并没有任何区别。
,xxx为模块文件路径 每个模块内部,module对象代表当前模块,它的exports属性(即module.exports)是对外的接口(暴露出去)。...加载某个模块,其实是加载该模块的module.exports属性。...2.AMD语法 定义没有依赖的模块 //定义没有依赖的模块 ```define(function(){ return 模块 }) 定义有依赖的模块 //定义有依赖的模块 define(['module1...定义暴露模块: //定义没有依赖的模块 define(function(require, exports, module){ exports.xxx = value module.exports...浏览器加载ES6模块时也使用script标签,但是要加入type=”module”属性。
"的属性来表示这个文件是作为module的方式来运行的。...可以在script标签上添加nomodule属性来实现一个回退方案。 module"> import module from '.... nomodule的处理方案是这样的: 支持type="module"的浏览器会忽略包含nomodule属性的script脚本执行。...可以对module类型的脚本添加async属性 async可以作用于所有的module类型的脚本,无论是行内还是文件形式的。...import和export基本上还是共通的,语法上基本没有什么差别。 下边列出了一些可能会帮到你更好的去使用modules的一些技巧。
可以看到,当前模块(module.js)也是 Module 的一个实例。 每个实例都有自己的属性。下面通过一个例子,看看这些属性的值是什么。新建一个脚本文件 a.js 。...'/home/ruanyf/node_modules', '/home/node_modules', '/node_modules' ] 可以看到,如果没有父模块,直接调用当前模块,parent...属性就是 null,id 属性就是一个点。...filename 属性是模块的绝对路径,path 属性是一个数组,包含了模块可能的位置。另外,输出这些内容时,模块还没有全部加载,所以 loaded 属性为 false 。...b.js 模块,id 属性和 filename 属性一致,都是模块的绝对路径。
本次重点就在于nn.Model的解析: nn.Module nn.Module 有 8 个属性,都是OrderDict(有序字典)的结构。...上面说了Conv2d也是一个 module,里面的_modules属性为空,_parameters属性里包含了该卷积层的可学习参数,这些参数的类型是 Parameter,继承自 Tensor。...此时只是完成了nn.Conv2d(3, 6, 5) module 的创建。还没有赋值给self.conv1 。...在nn.Module里有一个机制,会拦截所有的类属性赋值操作(self.conv1是类属性),进入到__setattr__()函数中。...比如 LeNet 是一个 Module,里面包括多个卷积层、池化层、全连接层等子 module 一个 module 相当于一个运算,必须实现 forward() 函数 每个 module 都有 8 个字典管理自己的属性
领取专属 10元无门槛券
手把手带您无忧上云