随机算法

机器学习之监督学习supervised learning

前提是你 提交于 2019-12-06 16:36:06
分类与回归 监督学习的问题主要有两种,分别是分类classification和回归regression。 分类: 分类问题的目的是预测类别标签class label,这些标签来自预定义的可选列表。 回归: 回归任务的目的是预测一个连续值,也叫作浮点数floating-point number,即预测值不是一个类别而是一个数字值。打个比方,假如要根据一个人的年龄学历等feature来预测这个人的收入,那么预测值为一个金额,可以在给定范围内任意取值。 区分分类与回归: 最好的办法就是看输出是否具有某种连续性,如果在可能的结果之间具有连续性,那么它就是一个回归问题。 泛化 generalize: 如果一个模型能对没有见过的数据做出准确的预测,那么就表明这个模型能从训练集generalize到测试集。 过拟合 overfitting 欠拟合 underfitting: 如果我们总想找到最简单的模型,构建与一个对于现有信息量过于复杂的模型,即在拟合模型的时候过分关注训练集的细节,得到了一个与训练集上表现很好但是不能泛化到新数据上的模型,那么就是overfitting过拟合。 反之 ,如果模型过于简单,无法抓住数据的全部内容以及数据中的变化,甚至在训练集上表现就很差,那么就是underfitting欠拟合。 所以 ,在二者之间存在一个最佳位置,找到这个位置就是我们最想要的模型。 监督学习算法

adam调参

坚强是说给别人听的谎言 提交于 2019-12-05 22:00:51
微调 #阿尔法 "learning_rate": 3e-5, #学习率衰减 "weight_decay": 0.1, // "weight_decay": 0.01, "clip_grad": 2, "batch_size": 30, "epoch_num": 1, "min_epoch_num": 1, "patience": 0.02, "patience_num": 3, "epsilon": 10e-8 # 防止除以零 如果不是微调 学习率和学习率的衰减率 都要增大 https://juejin.im/entry/5983115f6fb9a03c50227fd4 深度学习最常用的算法:Adam优化算法 阅读 15278 收藏 7 2017-08-03 原文链接: dataunion.org 从带宽扩展到丢包隐藏,实时音频中的 AI juejin.im 深度学习常常需要大量的时间和机算资源进行训练,这也是困扰深度学习算法开发的重大原因。虽然我们可以采用分布式并行训练加速模型的学习,但所需的计算资源并没有丝毫减少。而唯有需要资源更少、令模型收敛更快的最优化算法,才能从根本上加速机器的学习速度和效果,Adam 算法正为此而生! Adam 优化算法是随机梯度下降算法的扩展式,近来其广泛用于深度学习应用中,尤其是计算机视觉和自然语言处理等任务。本文分为两部分,前一部分简要介绍了

微信红包的随机算法是怎样实现的

倾然丶 夕夏残阳落幕 提交于 2019-12-05 14:27:28
微信红包的随机算法是怎样实现的? RT。我考虑了一个简单的算法: 比如100元,由10个人分,那么平均一个人是10元钱。然后付款后,系统开始分份儿。 第一份:系统由0~10元之间随机一个数,作为这一份的钱数,设x1。 第二份:剩下的钱(100-x1),系统由0~(100-x1)/(10-1)随机一个数,作为这份的钱数,设x2 .。。。 第n份:剩下的钱(100-x1-x2-...-xn),系统由0~(100-x1-x2-...-xn-1)/(10-n)随机一个数,作为这个份的钱数,设为xn 当用户进来拿红包的时候,系统由0~9之间随机一个数,随机到几,就取第几份红包,然后将这个数存到list里。当之后的用户抽到相同的随机数时,则将这个数+1,如遇相同再+1,直至list满,红包发完。 ------------------------------------------------ 我这么实现可以么?? 或者大家有更好的办法???? 修改 举报 7 条评论 分享 • 邀请回答 按投票排序 按时间排序 41 个回答 赞同 89 反对,不会显示你的姓名 马景铖 , 关注基本问题,热爱土豆地瓜 叶王 、 范比腾 、 上天入地小神龙 等人赞同 楼上大多数人都是在做出自己的猜测,这也是在不知道内部随机算法的时候的唯一选择,但是大多数人没有给出自己亲自的调查结果

ARIMA模型--粒子群优化算法(PSO)和遗传算法(GA)

一世执手 提交于 2019-12-05 04:07:46
ARIMA 模型 ARIMA模型(英语:AutoregressiveIntegratedMovingAverage model), 差分整合移动平均自回归模型 ,又称 整合移动平均自回归模型 (移动也可称作滑动), 时间序列 预测分析方法之一。ARIMA(p,d,q)中,AR是"自回归",p为自回归项数;MA为"滑动平均",q为滑动平均项数,d为使之成为平稳序列所做的差分次数(阶数)。 ARIMA(p,d,q)模型是 ARMA (p,q)模型的扩展。ARIMA(p,d,q)模型可以表示为: 其中 L 是滞后算子(Lag operator), 1. 平稳性: 平稳性就是要求经由样本时间序列所得到的拟合曲线,在未来的一段时间内仍能顺着现有状态“惯性”地延续下去; 平稳性要求序列的均值和方差不发生明显变化; 方差越大,数据波动越大,方差计算公式如下式所示: 方差等于1,那么标准差也就是1,表示概率函数在对称轴左右偏差1的位置导数为0,即为拐点。期望为0,表示概率函数以y轴为对称轴。 平稳性分为严平稳和弱平稳 严平稳:严平稳表示的分布不随时间的改变而改变,如:白噪声(正态),无论怎么取,都是期望为0,方差为1; 弱平稳:期望与相关系数(依赖性)不变,未来某时刻的t值Xt就要依赖于它的过去信息,所以需要依赖性; 2. 差分法:时间序列在 t 与 t-1 时刻的差值 3. 自回归模型( AR

条件随机场简介

走远了吗. 提交于 2019-12-05 02:58:28
之前学习了隐马尔可夫模型,现在记录一下条件随机场。本文主要参考了《统计学习方法》,如有错误,请各位多多指教 1、什么是条件随机场 首先我们先了解什么是随机场。 在概率论中,随机场的定义为:由 样本空间 Ω = {0, 1, ..., G − 1}n取样构成的 随机变量 Xi所组成的S = {X1, ..., Xn}。若对所有的ω∈Ω下式均成立,则称π为一个随机场。更直白一点的理解是随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予一个值之后,其全体就叫做随机场。就如一句话对他进行词性标注,先不论对错,只要对每个词标注了就形成一个随机场。 接着我们来了解什么是马尔科夫随机场。 先看《统计学习方法》中对马尔科夫随机场的定义。 概率无向图模型,又称为马尔可夫随机场,是一个可以由无向图表示的联合概率分布。 图(graph)是由结点(node)及连接结点的边(edge)组成的集合。结点和边分别记作 v 和 e,结点和边的集合分别记作 V 和 E,图记作G=(V,E)。无向图是指边没有方向的图。设有联合概率分布P(Y),Y是一组随机变量。由无向图G=(V,E)表示概率分布P(Y),即在图G中,每个结点 v 表示一个随机变量Yv;每条边e表示随机变量之间的概率依赖关系。 定义:设有联合概率分布P(Y)由无向图G=(V,E)表示,在图G中,结点表示随机变量

算法 - 快速排序 - 经典快排 | 随机快排

爱⌒轻易说出口 提交于 2019-12-04 23:33:17
经典快排 经典快排的思路是选取数组的最后一个数 x,按照 问题一 的思路把整个数组划分成 小于等于 x | 大于 x 两个部分,将 x 和 大于 x 部分数组的第一个元素交换位置。此时整个数组划分成 小于等于 x | x | 大于 x 三个部分,也就是这一次排序将 x 值排好位置。 再分别对 小于等于 x 和 大于 x 中的数组递归划分,直到划分成一个数,此时所有元素也完成排序。 按照 问题二 的思路可以对经典快排做改进,使得每次划分数组成为 小于 x | 等于 x | 大于 x 三个部分,通过这种排序方式可以一次划分多个 x 值的位置,排序效率得到提高。 但是,经典快排出现问题与 数据状况 有关。每次选择 x 值都是数组的最后一个数,如果遇到 [1,2,3,4,5] 或者 [5,4,3,2,1] 这种数组,算法时间复杂度将变成 O(n^2)。 随机快排 随机快排是经典快排的一种改进,通过生成随机下标 i,选择 a[i] 和最后一个数 x 进行交换,再使用经典快排。此时的事件就是一个概率事件,需要使用期望来估计算法的时间复杂度。 仍以 [1,2,3,4,5] 为例,经过随机快排初始变换,可以形成下列五种情况,数据状况的影响有效降低。在长期期望下,随机快排算法的时间复杂度为 O(N*logN)。由于每次划分数据都需要记录 =x 数组的下标范围,因此额外的空间复杂度为 O(logN)。

《通用试题库管理系统的设计与实现》9

对着背影说爱祢 提交于 2019-12-04 17:44:49
一:基本信息 1标题:《通用试题库管理系统的设计与实现》 2时间:2013 3来源:电子科技大学硕士学位论文 4关键词:试题库,ASP.NET,随机算法。 二:研究内容 1:研究背景。 2:技术介绍:XML、ASP/NET、ADO/NET、JAVAWEB数据库。 3:系统分析: A:需求分析。 B:数据业务流程分析。 C:功能分析。 D:运行分析。 三:流程图: 系统功能设计流程图: 用户管理流程图: 四:总结: 比较了随机组卷算法、回溯试探算法和遗传算法的优点和缺点,命题实际需求,系统选择了随机组卷算法。使用传统随机组卷算法调用随机函数生成随机数时,为了避免随机数的重复,必须进行随机数的比对,且生成的随机数有可能找不到与试题库中题号匹配的试题,使得随机组卷的效率不高。 来源: https://www.cnblogs.com/q1w2e3r4/p/11875914.html

LSH搜索算法

我们两清 提交于 2019-12-04 01:32:24
LSH(Location Sensitive Hash),即位置敏感哈希函数。与一般哈希函数不同的是位置敏感性,也就是散列前的相似点经过哈希之后,也能够在一定程度上相似,并且具有一定的概率保证。 作者注:LSH算法分两种:SimHash和MinHash。 simhash的原理是减少搜索空间,用汉明距离替代余弦距离 minHash的原理是降维。通过hash映射函数,将特征元素的个数降下来。 形式化定义: 对于任意q,p属于S,若从集合S到U的函数族H={h1,h2...hn}对距离函数D(,),如欧式距离、曼哈顿距离等等,满足条件: 则称D(,)是位置敏感的。 如下图,空间上的点经位置敏感哈希函数散列之后,对于q,其rNN有可能散列到同一个桶(如第一个桶),即散列到第一个桶的概率较大,会大于某一个概率阈值p1;而其(1+emxilong)rNN之外的对象则不太可能散列到第一个桶,即散列到第一个桶的概率很小,会小于某个阈值p2. LSH的作用 ◆高维下近似查询 相似性检索在各种领域特别是在视频、音频、图像、文本等含有丰富特征信息领域中的应用变得越来越重要。丰富的特征信息一般用高维向量表示,由此相似性检索一般通过K近邻或近似近邻查询来实现。一个理想的相似性检索一般需要满足以下四个条件: 1. 高准确性。即返回的结果和线性查找的结果接近。 2. 空间复杂度低。即占用内存空间少。理想状态下

微信红包随机算法实现

狂风中的少年 提交于 2019-12-03 12:24:54
看了 微信红包的算法实现探讨(基于PHP) 一文,我尝试使用C++重现,代码如下: #include <iostream> #include <cstdlib> #include <ctime> int Random(int _max) { _max = _max > 0 ? _max : 1; static bool begin = false; if (!begin) { srand((unsigned)time(nullptr)); //用于保证是随机数 begin = true; } return rand() % _max; //用rand产生随机数并设定范围 } int main() { using namespace std; double total_money = 10; int total_people = 8; double min_money = 0.01; double *per_money = new double[total_people]; for (int i = 0; i < total_people - 1; i++) { double safe = (total_money - (total_people - i)*min_money) / (total_people - i); double var_money = min_money +

机器学习算法------梯度下降法

倾然丶 夕夏残阳落幕 提交于 2019-12-03 11:55:38
优秀的讲解博客 刘建平的博客 算法简述 梯度下降通常是通过迭代的方式来搜索某个函数的极大/小值,他对目标函数每个变量求偏导得出梯度,也就是沿着梯度方向函数值会增加的最快,那么要求最小值就要沿着梯度值的反方向,梯度下降分为随机梯度下降与批量梯度下降,以及小批量梯度下降,随机梯度相比批量梯度耗时少,但精度不如批量高,批量每一步都沿着下降最快的方向下降,但是样本很多的话 耗时很多,还有就是随机梯度具有随机的特性,可能会跳出局部最优解从而到达全局最优解,而批量梯度则会一步步的走向局部最优解 模拟梯度下降法 梯度下降搜索一元二次方程最小值 通过梯度下降 求解 y = (x-2.5) ^ 2 - 1的 最小值 import numpy as np import matplotlib.pyplot as plt plot_x = np.linspace(- 1. , 6. , 141 ) # 造一个数据 plot_y = (plot_x- 2.5 ) ** 2 - 1. #plt.plot(plot_x, plot_y) #plt.show() epsilon = 1e-8 #误差 eta = 0.1 # 学习率 def J (theta) : # 要求解的函数 return (theta - 2.5 ) ** 2 - 1. def dJ (theta) : # 对函数求导之后的式子