Algorithm
张博208
知识搬运工
展开
-
粒子群算法(Particle Swarm Optimization)超详细解析+入门代码实例讲解
01 算法起源粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由Eberhart 博士和kennedy 博士提出,源于对鸟群捕食的行为研究 。该算法最初是受到飞鸟集群活动的规律性启发,进而利用群体智能建立的一个简化模型。粒子群算法在对动物集群活动行为观察基础上,利用群体中的个体对信息的共享使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得最优解。02 什么是粒子群算法?2.1 官方定义(参照百科)粒子群算法,也称粒转载 2020-08-11 19:21:07 · 49810 阅读 · 4 评论 -
进化策略入门:最优化问题的另一种视角
otoro.net的系列技术博客之一本文将通过一些可视化的案例向大家解释进化策略是如何工作的。为了方便更多入门读者理解本文,我将对相关公式做简化处理。同时,我也为希望理解更多数学细节的读者提供了相关数学公式的原始论文。这是本系列的第一篇文章,在本系列中,我会向大家介绍如何在诸如 MNIST、OpenAI Gym、Roboschool、PyBullet 等任务中应用这些算法。引言神经网络模型是非常灵活的,有着强大的数据表示能力。如果我们能够找到合适的模型参数,我们可以使用神经网络解决许多困难的问题转载 2020-07-08 18:45:06 · 953 阅读 · 0 评论 -
遗传算法
https://blog.csdn.net/b2b160/article/details/4680853/https://blog.csdn.net/zxl55/article/details/79842169原创 2020-07-08 18:24:35 · 138 阅读 · 0 评论 -
迪克斯特拉算法-- Dijkstra's Algorithm
在图形应用中,常常需要求从图中某个结点至其余各结点的最短路径,如对于一个物流配送系统计算从配送中心到各订货点的最短路径。Dijkstra's Algorithm 基本思想:若给定带权有向图G=(V,E)和源顶点v0,构筑一个源集合S,将v0加入其中。① 对差集V\S中 个顶点vi,逐一计算从v0 至它的距离 D(v0 , vi ),若该两顶点之间没有边,则其距离为无穷大。求出其中距...转载 2018-08-23 16:22:11 · 1914 阅读 · 0 评论 -
稀疏表示(Sparse Representations)
1.什么是稀疏表示:用较少的基本信号的线性组合来表达大部分或者全部的原始信号。其中,这些基本信号被称作原子,是从过完备字典中选出来的;而过完备字典则是由个数超过信号维数的原子聚集而来的。可见,任一信号在不同的原子组下有不同的稀疏表示。假设我们用一个M*N的矩阵表示数据集X,每一行代表一个样本,每一列代表样本的一个属性,一般而言,该矩阵是稠密的,即大多数元素不为0。 稀疏表示的含义是,寻找一个系数矩...转载 2018-07-03 09:26:03 · 6035 阅读 · 0 评论 -
随机过程--Metropolis-Hastings算法
随机过程–Metropolis-Hastings算法随机过程Metropolis-Hastings算法蒙特卡罗方法生成随机数求解概率和期望问题栗子马尔可夫链Metropolis算法Metropolis-Hastings算法蒙特卡罗方法 蒙特卡罗(Monte Carlo)方法又称随机抽样或统计试验方法,简单地理解就是利用随机数去解决许多计算问题,通过实验去求解一些数学问题。通常是通过一些随机模拟实...转载 2018-07-02 16:48:38 · 1805 阅读 · 0 评论 -
蒙特卡洛采样之拒绝采样(Reject Sampling)
引子蒙特卡洛(Monte Carlo)方法是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为基础的数值计算方法。它的核心思想就是使用随机数(或更常见的伪随机数)来解决一些复杂的计算问题。当所求解问题可以转化为某种随机分布的特征数(比如随机事件出现的概率,或者随机变量的期望值等)时,往往就可以考虑使用蒙特卡洛方法。通过随机抽样的方法,以随机事件出现的频率估计其...转载 2018-07-02 15:57:03 · 1337 阅读 · 0 评论 -
基于Box–Muller变换的正态随机数生成方法
为什么我的眼里常含泪水?因为我有一个算法不会。为了节约点眼泪,今天我们就来介绍著名的Box–Muller变换,基于这种变换,我们便可以得到一个从均匀分布中得到正态分布采样的算法,本文也会详细解释其中蕴含的数学原理。Box–Muller变换最初由 George E. P. Box 与 Mervin E. Muller 在1958年提出。George E. P. Box 是统计学的一代大师,统计学中的...转载 2018-07-02 15:41:32 · 3321 阅读 · 0 评论 -
因子分析(Factor Analysis) 最大似然法
1 问题 之前我们考虑的训练数据中样例的个数m都远远大于其特征个数n,这样不管是进行回归、聚类等都没有太大的问题。然而当训练样例个数m太小,甚至m<<n的时候,使用梯度下降法进行回归时,如果初值不同,得到的参数结果会有很大偏差(因为方程数小于参数个数)。另外,如果使用多元高斯分布(Multivariate Gaussian distribution)对数据进行拟合时,也会有问题...转载 2018-07-02 10:47:42 · 8831 阅读 · 0 评论 -
人工智能的几种常用学习规则
学习功能是人智能中最重要的特征之一。神经网络主要由三种因素决定:神经元的特性、网络的连接和学习算法规则。其中,学习算法对网络学习速度、收敛特性、泛化能力等有很大的影响。对各种学习算法规则的研究,在人工神经网络理论与实践发展过程中起着相当重要的作用。当前,人工神经网络研究的许多课题仍然是致力于学习算法规则的改进、更新和应用。对于大脑神经而言不同的功能区域均有各自的学习规则。这些完整和巧妙的学习规则是...转载 2018-06-29 19:36:40 · 2623 阅读 · 0 评论 -
学习矢量量化-LVQ
简单介绍 学习矢量量化(Learning Vector Quantization,简称LVQ),与1988年提出的一种用于模式分类的有监督学习算法,是一种结构简单、功能强大的有监督式神经网络分类算法。典型的学习矢量量化算法有:LVQ1、LVQ2、LVQ3,其中,前两种算法应用较为广泛,尤其以LVQ2应用最为广泛和有效。 学习矢量量化是一种结构简单、功能强大的有监督式神经网络分...转载 2018-06-29 19:35:34 · 872 阅读 · 0 评论 -
尾递归是个什么鬼
了解尾递归之前,先了解一下尾调用。在计算机科学里,尾调用是指一个函数里的最后一个动作是一个函数调用的情形:即这个调用的返回值直接被当前函数返回的情形。这种情形下该调用位置为尾位置。(摘自维基百科)以上的解释来自维基百科。介绍了什么叫尾调用。例如:1234function foo(data) { a(data); return b(data);} 这里的a(data)和b(data)都...转载 2018-06-25 10:32:11 · 184 阅读 · 0 评论 -
Spark2.0机器学习系列之11: 聚类(幂迭代聚类, power iteration clustering, PIC)
在Spark2.0版本中(不是基于RDD API的MLlib),共有四种聚类方法: (1)K-means (2)Latent Dirichlet allocation (LDA) (3)Bisecting k-means(二分k均值算法) (4)Gaussian Mixture Model (GMM)。...转载 2018-05-30 17:47:17 · 928 阅读 · 0 评论 -
机器学习算法原理与实践(三)、卡尔曼滤波器算法浅析及matlab实战
协方差矩阵状态协方差矩阵传递状态协方差的更新Matlab 实现Matlab效果测试代码测试效果【原创】Liu_LongPo 转载请注明出处 【CSDN】http://blog.csdn.net/llp1992卡尔曼滤波器是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。而且由于观测包含系统的噪声和干扰的影响,所以最优估计也可看做是滤波过程。卡尔曼滤波器的核心内容就...转载 2018-06-28 11:51:39 · 1207 阅读 · 0 评论 -
L-BFGS
L-BFGS算法比较适合在大规模的数值计算中,具备牛顿法收敛速度快的特点,但不需要牛顿法那样存储Hesse矩阵,因此节省了大量的空间以及计算资源。本文主要通过对于无约束最优化问题的一些常用算法总结,一步步的理解L-BFGS算法,本文按照最速下降法 - 牛顿法 - 共轭梯度法 - 拟牛顿法 - DFP矫正 - BFGS 矫正 - LBFGS算法这样一个顺序进行概述。(读了一些文章之后,深感数学功底不...转载 2018-07-04 11:02:03 · 1502 阅读 · 0 评论 -
异常、离群点检测 一分类——OneClassSVM
OneClassSVM两个功能:异常值检测、解决极度不平衡数据因为之前一直在做非平衡样本分类的问题,其中如果有一类比例严重失调,就可以直接用这个方式来做:OneClassSVM;OneClassSVM还有一个功能就是异常值检测。其他我的相关博客: 1、机器学习︱非平衡数据处理方式与评估 2、RFM模型+SOM聚类︱离群值筛选问题 3、R语言︱异常值检验、离群点分析、异常值处理台湾大学林智仁所设计和...转载 2018-07-04 16:28:04 · 3858 阅读 · 0 评论 -
Annoy搜索算法(Approximate Nearest Neighbors Oh Yeah)
https://segmentfault.com/a/1190000013713357转载 2018-12-10 17:56:59 · 2699 阅读 · 0 评论 -
聚类(幂迭代聚类, power iteration clustering, PIC)
https://blog.csdn.net/qq_34531825/article/details/52675182转载 2018-09-12 19:12:30 · 1405 阅读 · 0 评论 -
社区发现算法之标签传播(LPA)
标签传播算法(LPA)的做法比较简单:第一步: 为所有节点指定一个唯一的标签;第二步: 逐轮刷新所有节点的标签,直到达到收敛要求为止。对于每一轮刷新,节点标签刷新的规则如下: 对于某一个节点,考察其所有邻居节点的标签,并进行统计,将出现个数最多的那个标签赋给当前节点。当个数最多的标签不唯一时,随机选一个。1注:算法中的记号 N_n^k 表示节点 n 的邻居中标签为 k ...转载 2018-09-12 19:10:42 · 8637 阅读 · 3 评论 -
Kruskal算法(一)之 C语言详解
本章介绍克鲁斯卡尔算法。和以往一样,本文会先对克鲁斯卡尔算法的理论论知识进行介绍,然后给出C语言的实现。后续再分别给出C++和Java版本的实现。目录 1. 最小生成树 2. 克鲁斯卡尔算法介绍 3. 克鲁斯卡尔算法图解 4. 克鲁斯卡尔算法分析 5. 克鲁斯卡尔算法的代码说明 6. 克鲁斯卡尔算法的源码转载请注明出处:http://www.cnblogs.com/skywang1234...转载 2018-09-11 17:57:56 · 2708 阅读 · 0 评论 -
最短路径问题---SPFA算法详解
1、最短路径问题介绍问题解释: 从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径解决问题的算法:迪杰斯特拉算法(Dijkstra算法) 弗洛伊德算法(Floyd算法) SPFA算法之前已经对Dijkstra算法和Floyd算法做了介绍(不懂的可以看这篇博客:Dijkstra算法详解、Floyd算法详解),所以这篇博客打算对SPFA算法做详细的...转载 2018-09-11 17:51:07 · 270 阅读 · 0 评论 -
最短路径问题---Floyd算法详解
Genius only means hard-working all one’s life. Name:Willam Time:2017/3/81、最短路径问题介绍问题解释: 从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径解决问题的算法:迪杰斯特拉算法(Dijkstra算法) 弗洛伊德算法(Floyd算法) SPFA算法之前已经对D...转载 2018-09-11 17:47:50 · 280 阅读 · 0 评论 -
最短路径问题---Dijkstra算法详解
前言 Nobody can go back and start a new beginning,but anyone can start today and make a new ending. Name:Willam Time:2017/3/81、最短路径问题介绍问题解释: 从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径解决问题的算法:...转载 2018-09-11 17:40:34 · 196 阅读 · 0 评论 -
PageRank算法--从原理到实现
PageRank算法--从原理到实现本文将介绍PageRank算法的相关内容,具体如下:1.算法来源2.算法原理3.算法证明4.PR值计算方法4.1 幂迭代法4.2 特征值法4.3 代数法5.算法实现5.1 基于迭代法的简单实现5.2 MapReduce实现6.PageRank算法的缺点7.写在最后参考资料1. 算法来源这个要从搜索引擎的发展讲起。最早的搜索...转载 2018-09-11 11:31:58 · 2037 阅读 · 0 评论 -
Modularity的计算方法——社团检测中模块度计算公式详解
http://www.yalewoo.com/modularity_community_detection.html转载 2018-08-24 15:15:23 · 4478 阅读 · 0 评论 -
机器学习-异常检测算法(三):Principal Component Analysis
Principal Component Analysis(PCA)是最常见的数据降维的方法。根据 Wikipedia 的介绍,它最早是由 Karl Pearson(同时也是卡方检验的发明者) 在1901年提出,到现在已经一百多年了。作为一种降维的方法,PCA可以将原数据进行线性变换,并找出数据中信息含量最大的主要成分,去除信息含量较低的成分,从而减少冗余,降低噪音。通常在异常检测的语境里,噪音(n...转载 2018-05-13 18:05:08 · 6106 阅读 · 2 评论 -
异常检测(三)——Local Outlier Factor(LOF)
在中等高维数据集上执行异常值检测的另一种有效方法是使用局部异常因子(Local Outlier Factor ,LOF)算法。1、算法思想LOF通过计算一个数值score来反映一个样本的异常程度。这个数值的大致意思是:一个样本点周围的样本点所处位置的平均密度比上该样本点所在位置的密度。比值越大于1,则该点所在位置的密度越小于其周围样本所在位置的密度,这个点就越有可能是异常点。关于密度等理论概念,详...转载 2018-05-13 18:03:22 · 4264 阅读 · 0 评论 -
SparkML之回归(三)保序回归
在写這篇博客的时候,翻阅了一些互联网上的资料,发现文献[1]写的比较系统。所以推荐大家读读文献[1].但是出现了一些错误,所以我在此简述一些。如果推理不过去了。可以看看我的简述。------------------------------------前言背景:(1)在医学领域药物剂量反应中,随着药物剂量的增加,疗效和副作用会呈现一定趋势。比如剂量越高,疗效越转载 2017-11-20 15:22:30 · 805 阅读 · 0 评论 -
xgboost原理
文章内容可能会相对比较多,读者可以点击上方目录,直接阅读自己感兴趣的章节。1.序 距离上一次编辑将近10个月,幸得爱可可老师(微博)推荐,访问量陡增。最近毕业论文与xgboost相关,于是重新写一下这篇文章。 关于xgboost的原理网络上的资源很少,大多数还停留在应用层面,本文通过学习陈天奇博士的PPT、论文、一些网络资源,希望对xgboost原理进行深入理解转载 2017-07-05 10:33:18 · 527 阅读 · 0 评论 -
自适应学习率算法.基于阿米霍步长准则的线性回溯搜索算法
解决在梯度下降等算法中,学习率步长的问题。二分精确搜索法把梯度转化为和学习率的函数,问题转化为找学习率的问题, 然后寻找梯度最低的时候的学习率是多少,在此过程中用了二分法查找学习率。原创 2017-06-13 19:33:59 · 1380 阅读 · 1 评论 -
机器学习实战 学习笔记
jupyter nootbook 机器学习基础from numpy import *random.rand(4,4)randMat=mat(random.rand(4,4)) mat 把数组转化为矩阵invrandMat=randMat.I .I 矩阵求逆invrandMat*randMat 矩阵乘法eye(4) 产生单位矩阵K-原创 2017-06-21 12:51:35 · 2390 阅读 · 0 评论 -
斯坦福大学机器学习——EM算法求解高斯混合模型
EM算法(Expection-Maximizationalgorithm,EM)是一种迭代算法,通过E步和M步两大迭代步骤,每次迭代都使极大似然函数增加。但是,由于初始值的不同,可能会使似然函数陷入局部最优。辜丽川老师和其夫人发表的论文:基于分裂EM算法的GMM参数估计(提取码:77c0)改进了这一缺陷。下面来谈谈EM算法以及其在求解高斯混合模型中的作用。一、 高斯混合模型(Gauss转载 2017-05-21 20:27:15 · 611 阅读 · 0 评论 -
logistic算法解析
[python] view plain copy"font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">对于《机器学习实战》中逻辑斯谛回归算法,其中有一行不好理解: [python] view plain copy转载 2017-05-20 15:36:54 · 740 阅读 · 0 评论 -
SMO算法剖析
本文力求简化SMO的算法思想,毕竟自己理解有限,无奈还是要拿一堆公式推来推去,但是静下心看完本篇并随手推导,你会迎刃而解的。推荐参看SMO原文中的伪代码。1.SMO概念上一篇博客已经详细介绍了SVM原理,为了方便求解,把原始最优化问题转化成了其对偶问题,因为对偶问题是一个凸二次规划问题,这样的凸二次规划问题具有全局最优解,如下: 其中(xi,yi)表示训练样本数据转载 2017-05-18 15:06:31 · 499 阅读 · 0 评论 -
分类算法之朴素贝叶斯分类(Naive Bayesian classification)
0、写在前面的话 我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比的美感。而每次将学过的算法应用到实际中,并解决了实际问题后,那种快感更是我在其它地方体会不到的。 一直想写关于算法的博文,也曾写过零散的两篇,但也许是相比于工程性文章来说太小众,并没有引起大家的兴趣。最近面临毕业找工作,为了能给自己增加筹码,决定再次复习算法方面的知转载 2017-03-26 20:33:30 · 334 阅读 · 0 评论 -
决策树算法——ID3算法,C4.5算法
目录(?)[-]决策树算法1摘要2决策树引导3决策树的构造31ID3算法32C45算法4关于决策树的几点补充说明41如果属性用完了怎么办42关于剪枝决策树算法1、摘要 在前面两篇文章中,分别介绍和讨论了朴素贝叶斯分类与贝叶斯网络两种分类算法。这两种算法都以贝叶斯定理为基础,可以对分类及决策问题进行概率转载 2017-03-26 20:29:23 · 930 阅读 · 0 评论 -
决策树算法之悲观剪枝算法(PEP)
前言 在机器学习经典算法中,决策树算法的重要性想必大家都是知道的。不管是ID3算法还是比如C4.5算法等等,都面临一个问题,就是通过直接生成的完全决策树对于训练样本来说是“过度拟合”的,说白了是太精确了。由于完全决策树对训练样本的特征描述得“过于精确” ,无法实现对新样本的合理分析, 所以此时它不是一棵分析新数据的最佳决策树。解决这个问题的方法就是对决策树进行剪枝,剪去影响预测精度的分支转载 2017-03-27 18:36:19 · 5775 阅读 · 2 评论 -
模拟退火算法
一、模拟退火算法概念关于爬山算法与模拟退火,有一个有趣的比喻,为了找出地球上最高的山,一群有志气的兔子们开始想办法:方法一:兔子朝着比现在高的地方跳去。它找到了不远处的最高山峰。但是这座山不一定是珠穆朗玛峰。这就是爬山算法(或局部搜索法),它不能保证局部最优值就是全局最优值。方法二:兔子喝醉了,它随机地跳了很长时间。这期间,它可能走向高处,也可能踏入平地。但是,它渐渐清醒了转载 2018-01-17 09:32:05 · 2087 阅读 · 1 评论 -
遗传算法详解(GA)
本文是去年课题组周报中的一个专题讲解,详细讲了GA,由于是周报,所以十分详细。很适合初学者入门。文中也简单提及了模拟退火算法。文章综合参考了一些互联网资料。发博客以备忘!三:遗传算法 照例先给出科学定义: 遗传算法(Genetic Algorithm, GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全转载 2018-01-17 09:33:56 · 2197 阅读 · 0 评论 -
机器学习-异常检测算法(二):Local Outlier Factor
Local Outlier Factor(LOF)是基于密度的经典算法(Breuning et. al. 2000), 文章发表于 SIGMOD 2000, 到目前已经有 3000+ 的引用。在 LOF 之前的异常检测算法大多是基于统计方法的,或者是借用了一些聚类算法用于异常点的识别(比如 ,DBSCAN,OPTICS)。但是,基于统计的异常检测算法通常需要假设数据服从特定的概率分布,这个假设往...转载 2018-05-13 18:00:24 · 3501 阅读 · 0 评论