权重

快速理解bagging与boosting及其分支

孤人 提交于 2019-11-27 19:13:30
  首先,集成学习是指综合多个模型的结果,以提升机器学习的性能。相比单个模型,往往能取得更好的结果。而Bagging和Boosting是集成学习中的两个方法(还有一个stacking,暂不做阐释),刚开始接触时稍有混乱,在此稍浅地记录下学习历程,以便快速理解    1. Bagging   Bagging是Bootstrap Aggregating的简称,这是一种 并行 的方法,其首先生成多种基分类器,在最后预测时通过 投票 法,从多个基分类器中得到预测结果,有效降低样本 方差 ,每个基分类器之间具有 弱关联性 , 相对独立   其中最常用的Bagging法为随机森林(Random Forest):   Random Forest的分类器一般是 决策树 ,且通常为CART决策树,步骤如下: 假设原样本集有M个样本,每个样本包含N个属性,则首先 有放回 地抽取M个样本(每次抽1个,抽完后放回,重新在M个样本中抽1个,因此子集中将包含重复样本) 如此,这个子集包含MxN个元素,再随机从N个属性中,选择n<<N个属性作为决策树每个节点的分裂属性(一般n=logN),若为CART树,则根据GINI指数来确定每个节点选择哪种属性来分裂(原始Bagging使用了所有属性,而不是随机选择n个) 重复上述步骤,生成大量决策树 对于每个测试数据,根据每棵决策树的预测结果, 投票表决 得到最后结果

Pytorch笔记 (1) 初始神经网络

安稳与你 提交于 2019-11-27 15:52:00
一、人工神经元 上方人工神经元中: 输入 * 权重 ——> 相当于 人神经元中 树突的功能 各输入 相加 ,再做非线性变化f ——> 相当于胞体的功能 将非线性变化的结果输出 ——> 相当于轴突 在非线性函数f固定的情况下,选择不同的权重,单个神经元 可以完成 不同的运算 但并不是全部,比如 : “或运算” 上述证明过程 可表示为: y = f( w[0] * x[0] + w[1] * w[1] + w[2] ) 在 x[0] x[1] 两个输入 分别为 00 10 01 11 的情况下,最终的输出为 y = 0 1 1 1【或运算】 利用反证法 证明 二、人工神经网络 指多个神经元 ——> 组成的网络 【其中,某些神经元的 输出 会 作为 另外一些神经元的输入】 比如,用两个 权重不同的 神经元搭成的神经网络 实现或运算 神经网络可以模拟所有可能的运算 证明: 由非线性函数为 f() = max(.,0)的神经元组成的神经网络 可以模拟 任何闭区间上的连续分段线性函数 如果输入和输出直接的关系 不是分段 线性函数,还能不能用 神经网络模拟? ———— 当然可以 原因: 任意一个 输入/输出关系 都可以用分段线性函数来近似,只要分段点足够多,就可以非常准确地用 分段函数 来近似这个函数。而 分段线性函数,可以通过人工神经网络搭建来得到————> 只要人工神经网络 中的神经元

100天搞定机器学习|Day36用有趣的方式解释梯度下降算法

眉间皱痕 提交于 2019-11-27 14:12:42
本文为3Blue1Brown神经网络课程讲解第二部分《Gradient descent, how neural networks learn 》的学习笔记,观看地址:www.bilibili.com/video/av16144388前文我们已经搭建了一个包含两个隐藏层的神经网络,我们需要这样一种算法:网络得到训练数据后,算法会调整所有的权重和偏置值,提高网络对训练数据的表现。我们还希望这种分层结构可以举一反三,识别其他图像。训练好网络后,再给它未见过的带标记的数据作为测试,这样就能知道新图像分类的准确度。 这实际上就是找某个函数的最小值,在一开始,我们会完全随机地初始化所有的权重和偏置值。可想而知,这个网络对于给定的训练示例,会表现得非常糟糕。例如输入一个3的图像,理想状态应该是输出层3这个点最亮。可是实际情况并不是这样。这是就需定义一个代价函数。 网络可以对图像正确分类时,这个平方和就比较小,反之就很大。接下来就要考虑几万个训练样本中代价的平均值。 神经网络本身是个函数,它有784个输入值,10个输出,13000多个参数。 代价函数则要再抽象一层,13000多个权重和偏置值作为他的输入,输出是单个数值,表示参数的表现优劣程度。 代价函数取决于网络对上万个训练数据的综合表现,但是我们还需要告诉网络该如何改变这些权重和偏置值,让其表现更好。为了简化问题

逻辑回归2-scikit-learn参数介绍

冷暖自知 提交于 2019-11-27 12:30:47
1.1 scikit-learn参数介绍 1.1.1 导入 from sklearn.linear_model import LogisticRegression 1.1.2 版本 scikit-learn==0.21.3 1.1.3 参数 1.1.3.1 penalty l1 、l2 、elasticnet 、none ,默认l2 l1: l1正则,邻回归 l2: l2正则,套索回归 elasticnet: 弹性网络,是邻回归和套索回归的正则项的混合 none: 什么都不加 在调参时如果我们主要的目的只是为了解决过拟合,一般penalty选择L2正则化就够了。但是如果选择L2正则化发现还是过拟合,即预测效果差的时候,就可以考虑弹性网络和L1正则化,弹性网络优于L1正则,因为当特征数量超过训练实例数量,又或者是几个特征强相关时,L1正则的表现可能非常不稳定。另外,如果模型的特征非常多,我们希望一些不重要的特征系数归零,从而让模型系数稀疏化的话,也可以使用L1正则化。 penalty参数的选择会影响损失函数优化算法的选择,即参数solver的选择。 若是L2正则,有4种可选的算法:“newton-cg”,“lbfgs”,“liblinear”,“sag”, 若是L1 正则,有1 种可选的算法:“liblinear ”,L1 正则化的损失函数不是连续可导的。 若是elasticnet

Attention机制在深度学习推荐算法中的应用(转载)

一个人想着一个人 提交于 2019-11-27 09:43:57
AFM:Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks 模型入上图所示,其中sparse iput,embedding layer,pair-wise interaction layer都和FM一样,后面加入了一个attention net生成一个关于特征交叉项的权重,将FM原来的二次项累加变成加权累加。这里的attention net其实很简单,就是简单的线性变换求出权重之后再和原来的输入进行加权求和。 然后加权计算得到AFM的输出: 缺点:AFM只是在FM的基础上添加了attention的机制,但实际上只利用了加权的二次项,并没有加入更深的网络去学习更高阶的非线性交叉特征,所以它的上限和FFM很接近,没有完全发挥出dnn的优势。 2. 阿里DIN:Deep Interest Network for Click-Through Rate Prediction 用户的历史行为数据是有多个的,在计算新的候选商品的ctr时,可以将用户多个历史行为的embedding加个average pooling平均一下,但是这样没有办法建模出不同历史行为对目标预测的影响程度

BFS小结

我们两清 提交于 2019-11-27 09:35:38
BFS 通过一些leetcode上面的题目, 总结出以下类型的题目: 树的层序遍历类型。 搜索联通块。 拓扑排序。 最短路径。 无边权重 有边权重 边界扩展。 增广 BFS 是基于 向量 的, 一般都需要一个 状态数组 , 一个 增广队列 。状态数组是为了防止 相同状态 的节点再次进后重复加入队列当中。 层序遍历 从根节点开始, 距离的根节点最近的顶点优先遍历。 因为同一个顶点不存在会被访问两次的情况, 所以不需要状态数组。 模板 queue<TreeNode*> nodes; /* 增广队列。*/ nodes.push(root); /* 压入树的根节点。*/ while(!nodes.empty()) { TreeNode *node = nodes.front(); nodes.pop(); /* 针对该顶点进行操作的代..... */ // 增广 if(node->left) nodes.push(node->left); if(node->right) nodes.push(node->right); } 题目 leetcode 103. 二叉树的锯齿形层次遍历 技巧: 节点状态中包含节点层数即可。 leetcode 199. 二叉树的右视图 节点状态中添加层数这一状态, 当当前节点 和 前一个节点的层数不一致时, 将前一个节点的值保存到答案当中, 最后一个顶点单独处理。

Chapter 2. 反向传播

旧时模样 提交于 2019-11-27 05:10:34
前言 BP算法最初在1970年代被提及,主要用于快速计算 代价函数 的 梯度,其核心是代价函数 C C C 关于任意权重 w w w (或偏置 b b b )的偏导数 ∂ C ∂ w \frac {\partial C}{\partial w} ∂ w ∂ C ​ 的表达式,通过改变权重和偏置,从而评估代价函数变化的快慢。 2.1 神经网络中使用矩阵快速计算输出的方法 权重 用 w j k l w_{j_k}^l w j k ​ l ​ 表示从 ( l − 1 ) t h (l-1)^{th} ( l − 1 ) t h 层的 k t h k^{th} k t h 个神经元到 l t h l^{th} l t h 层的 j t h j^{th} j t h 个神经元的连接上的权重。 用 b j l b_j^l b j l ​ 表示在 l t h l^{th} l t h 层第 j t h j^{th} j t h 个神经元的偏置,使用 a j l a^l_j a j l ​ 表示 l t h l^{th} l t h 层第 j t h j^{th} j t h 个神经元的激活值。从而变可以对 l t h l^{th} l t h 层的第 j t h j^{th} j t h 个神经元的激活值 a j l a^l_j a j l ​ 和 ( l − 1 ) t h (l-1)^{th

补充和拓展

隐身守侯 提交于 2019-11-27 03:09:10
1.补充 margin的margin:0 auto;会解决元素的居中 2.CSS层叠的问题 CSS有两个性质   1.继承性   2.层叠性 选择器的是一种选择能力     A,选不中,走继承性(font-color text)继承性的权重性的权重是       a),有多个父级都设置了这样的样式,走就近原则     B,选中       a),权重的问题,权重大,就选谁的样式       b),权重相同,谁在后选谁       c),纯标签和类没有可比性,纯类和id也没有可比性   3.标准文档流   浏览器的排版是根据元素的特征(块和行级),从上到下,从左到右排版,这就是标准文档浏 只要加了float,这个元素就会脱离文档流 第一个加了float,脱离了标准文档流,对于浏览器来说,第二个元素就变成了标准文档流中的第一个,于是就会把它排在第一位,有第一个依然存在。 行级元素加了float,脱离标准流,块不像块,行不像行,能设置宽高,并能排列。Display就会没有任何意义 B,浮动的元素会文字环绕(文字环绕图片一周) 拓展:使元素脱离标准流的方法 C,浮动的元素会紧紧贴靠在一起 a).权重的问题,权重大,就选谁的样式 b).权重相同,谁在后选谁 c).纯标签和类没有可比性,纯类喝id也没有可比性 3.标准文档流 浏览器的排版是根据元素的特征(块和行级),从上到下,从左到右排版

集成学习

与世无争的帅哥 提交于 2019-11-27 02:38:32
集成学习是将多个基学习器(模型)相结合来完成学习任务。 文章目录 随机森林: Bagging Boosting Adaboost 随机森林: 随机森林是一种常见的集成学习方式。 前面我们学习了决策树,决策树生成后,我们可以利用同样的方法对训练集构建多棵决策树; 构建多棵决策树使用了 数据样本随机和属性随机 。 构建多棵决策树的过程中,对于构建一棵决策树我们可以规定每次 随机取训练集的n%个数据 ,这样可以减少异常值点对构建随机森林造成的影响; 在选择属性(特征)时也随机选择多个构建一棵决策树。(样本随机性,特征(属性)随机性),即在当前节点选择一个 属性子集 来选择最优属性,通常一个属性子集选择 k = l o g 2 d k=log_2d k = l o g 2 ​ d 个属性,而不是将所有的属性计算熵来选择最优属性构造节点。 对于回归问题,测试集可以取这些决策树结果的均值,即 平均法 ,分类问题,测试结果可以取其中分类概率最大的类别(分类结果最多,若相同,则可随机选择一个),即 投票法 。 Bagging Bootstrping:有放回采样,即一个盒子里面有10个白球,每次取三个球后将球放回,下次取还是这十个球。 Bagging:有放回n个样本一起建立分类器 Bagging和随机森林都是并行式集成学习的代表,即各个基学习器之间的训练没有关系,可同时训练,Bagging使用的是

负载均衡之加权轮询算法(转)

大兔子大兔子 提交于 2019-11-27 00:31:38
一:轮询算法(Round-Robin)   轮询算法是最简单的一种负载均衡算法。它的原理是把来自用户的请求轮流分配给内部的服务器:从服务器1开始,直到服务器N,然后重新开始循环。   算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。     假设有N台服务器:S = {S1, S2, …, Sn},一个指示变量i表示上一次选择的服务器ID。变量i被初始化为N-1。该算法的伪代码如下:   j = i;   do   {     j = (j + 1) mod n;     i = j;     return Si;   } while (j != i);   return NULL;   轮询算法假设所有服务器的处理性能都相同,不关心每台服务器的当前连接数和响应速度。当请求服务间隔时间变化比较大时,轮询算法容易导致服务器间的负载不平衡。所以此种均衡算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况。 二:加权轮询算法(WeightedRound-Robin)   轮询算法并没有考虑每台服务器的处理能力,实际中可能并不是这种情况。由于每台服务器的配置、安装的业务应用等不同,其处理能力会不一样。所以,加权轮询算法的原理就是:根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。