首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

带你建立一个完整的机器学习项目

分析,我们有房价的值,所以是一个监督问题;我们最终是要预测得到房价中位数,因此是一个回归问题,而且是一个多变量预测回归,因为有很多影响参数;另外,没有连续的数据流入,没有特别需求需要对数据变动作出快速适应...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

66230

学会这10种机器学习算法你才算入门

也就是说,没有人能否认这样的事实:作为数据科学家的实践者,我们必须了解一些通用机器学习的基础知识算法,这将帮助我们解决所遇到的新领域问题。...▌1.主成分分析(PCA)/ SVD PCA是一种无监督的方法,用于对由向量组成的数据集的全局属性进行理解。...奇异值分解(SVD)本质上也是计算有序组件的一种方法,但你在没有获得点的协方差矩阵的情况下也可以得到它。 ? 该算法通过获取维度缩小的数据点的方式来帮助人们克服维度难题。...库: https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.svd.html http://scikitlearn.org/...目前常用的两种决策树算法是随机森林(Random Forests)(在属性的随机子集上建立不同的分类器,并将它们结合起来输出)和提升树(Boosting trees)(在其他树的基础上对树的级联进行训练

51700
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    「数据科学家」必备的10种机器学习算法

    也就是说,没有人能否认这样的事实:作为数据科学家的实践者,我们必须了解一些通用机器学习的基础知识算法,这将帮助我们解决所遇到的新领域问题。...▌1.主成分分析(PCA)/ SVD PCA是一种无监督的方法,用于对由向量组成的数据集的全局属性进行理解。...奇异值分解(SVD)本质上也是计算有序组件的一种方法,但你在没有获得点的协方差矩阵的情况下也可以得到它。 该算法通过获取维度缩小的数据点的方式来帮助人们克服维度难题。...库: https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.svd.html http://scikitlearn.org/...目前常用的两种决策树算法是随机森林(Random Forests)(在属性的随机子集上建立不同的分类器,并将它们结合起来输出)和提升树(Boosting trees)(在其他树的基础上对树的级联进行训练

    71150

    「数据科学家」必备的10种机器学习算法

    也就是说,没有人能否认这样的事实:作为数据科学家的实践者,我们必须了解一些通用机器学习的基础知识算法,这将帮助我们解决所遇到的新领域问题。...▌1.主成分分析(PCA)/ SVD PCA是一种无监督的方法,用于对由向量组成的数据集的全局属性进行理解。...奇异值分解(SVD)本质上也是计算有序组件的一种方法,但你在没有获得点的协方差矩阵的情况下也可以得到它。 该算法通过获取维度缩小的数据点的方式来帮助人们克服维度难题。...库: https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.svd.html http://scikitlearn.org/...目前常用的两种决策树算法是随机森林(Random Forests)(在属性的随机子集上建立不同的分类器,并将它们结合起来输出)和提升树(Boosting trees)(在其他树的基础上对树的级联进行训练

    80050

    Python写算法:二元决策树

    代码清单6-1为使用Scikitlearn的DecisionTreeRegressor工具包针对红酒口感数据构建二元决策树的代码。图6-1为代码清单6-1生成的决策树。...在图6-1中,终止节点处在框图底部,它们下面没有分支或者进一步的决策节点。 ?...图6-2 标签与属性的关系图 1.3 决策树的训练等同于分割点的选择 代码清单6-2的第一步是运行scikitlearn的regression tree包,并指定决策树的深度为1。...如果属性没有重复值,每个数据点对应的属性值都要作为分割点进行测试(则分割点的测试次数等于数据点数目减1)。 随着数据规模的增大,分割点的计算量也成比例增加。测试的分割点彼此可能非常近。...这两个度量指标与误分类错误有一些不同特性,但在概念上没有差别。 最后一个部分是当属性是类别属性而非数值属性时,如何训练决策树。决策树中的非终止节点提出一个yes/no的问题。

    1.7K40

    使用scikitlearn、NLTK、Docker、Flask和Heroku构建食谱推荐API

    例如,油在大多数食谱中都有使用,而且在食谱之间几乎没有区别。而且,大多数人家里都有油,所以每次使用API都要写油,这既麻烦又毫无意义。 简单地删除最常见的单词似乎非常有效,所以我这样做了。...scikitlearn的countVector有一个很好的实现。 词袋执行得不错,但TF-IDF(术语频率反向文档频率)执行得稍差,所以我们选择了这个。...与往常一样,scikitlearn有一个很好的实现:TfidfVectorizer。然后,我用pickle保存了模型和编码,因为每次使用API时重新训练模型都会使它非常缓慢。...我们使用基于内容的过滤,使我们能够根据用户提供的属性(成分)向人们推荐食谱。为了度量文档之间的相似性,我使用了余弦相似性。...首先,我在我的项目文件夹中创建了一个没有扩展名的Procfile文件。

    1.1K10

    机器学习(19)——特征工程数据收集数据清洗数据不平衡特征转换增维降维特征选择

    去除不需要的数据 一般情况下,我们会尽可能多的收集数据,但是不是所有的字段数据都是可以应 用到模型构建过程的,也不是说将所有的字段属性都放到构建模型中,最终模型 的效果就一定会好,实际上来讲,字段属性越多...可以通过scikitlearn中的class_weight参数来设置权重。 下采样/欠采样(under sampling):从多数类中随机抽取样本从而减少多数类别 样本数据,使数据达到平衡的方式。...定量特征属性二值化 特征标准化与归一化 文本特征属性转换 机器学习的模型算法均要求输入的数据必须是数值型的,所以对于文本类型的特 征属性,需要进行文本数据转换,也就是需要将文本数据转换为数值型数据...,比如:多项式扩展转换、文本 数据转换等等,但是太多的特征属性的存在可能会导致模型构建效率降低,同时模型的 效果有可能会变的不好,那么这个时候就需要从这些特征属性中选择出影响最大的特征 属性作为最后构建模型的特征属性列表...在选择模型的过程中,通常从两方面来选择特征: 特征是否发散:如果一个特征不发散,比如方差解决于0,也就是说这样的特征对于样本的 区分没有什么作用。

    2.2K50

    Module.exports和exports的区别

    注意,就像任何变量,如果一个新的值被赋值给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,若方法没有在

    1.3K00

    hey,你的CommonJS规范

    _cache 如果之前require过这个模块 就存到缓存中 new Module 如果缓存中没有 就创建模块 每个模块都有一个exports属性 tryModuleLoad() 尝试加载模块 Module..._resolveFilename 解析文件名 返回一个绝对路径 我们首先判断模块有没有后缀名 如果有后缀名,判断这个文件存在还是不存在,如果存在就返回一个绝对路径,不存在就抛出一个异常 如果没有后缀名..._cache 判断有没有加载过 我们之前说过,会把这个模块的绝对路径当做key存到缓存中,现在已经解析出一个绝对路径了,接下来只需要判断缓存中有没有 Module....代表第一次引入 // 每个实例上都有一个私有属性id,存的是自己的绝对路径(唯一标识),还有一个exports属性 存的的引入的模块导出的内容 let module = new Module...exports属性了,我们最后只需要 return module.exports这个属性就可以了 } } 复制代码 ---- 结束 Module.

    36410

    本想搞清楚ESM和CJS模块的互相转换问题,没想到写完我的问题更多了

    ,没有没关系,本文就来一探究竟。...,这很明显,因为我们知道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

    1.8K60

    nodejs中module.exports 与 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

    68630

    PyTorch模型创建与nn.Module

    本次重点就在于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 个字典管理自己的属性

    22420
    领券