概率计算

遗传算法求解TSP问题

拈花ヽ惹草 提交于 2019-12-05 01:06:58
一、简介 遗传算法是基于达尔文的生物进化论,是人工智能算法的的重要分支,主要用于解决一类求最优解问题。如旅行商(TSP)问题。 遗传算法是将状态当成染色体,状态里的每一个决策都是染色体上的一个基因。然后根据实际情况生成一个适应度函数,计算每一串染色体对环境的适应度。让适应度高的遗传到下一代,适应度低的淘汰掉,另外在实现的过程中也许会发生变异,导致一些决策改变。除此之外,遗传算法是随机性近似算法,所以当我们运用该算法时必须采取措施使其收敛到全局最优解,并且尽量提高达到最优解的概率。遗传算法除了设计适应度函数以外,还有很重要的三个部分:选择,交叉,变异。 二、遗传算法实现步骤 1.初始化阶段 初始化对象:种群规模、城市数量、运行代数、交叉概率、变异概率 初始化数据:读入数据源,将坐标转换为距离矩阵(标准化欧式距离) 初始化种群:随机生成m个路径序列,m表示种群规模 2.计算种群适应度 已知任意两个城市之间的距离,每个染色体可计算出总距离,因此可以将一个随机全排列的总距离的倒数作为适应度函数,即距离越短,适应度函数越好。 3.计算累计概率 计算初始化种群中各个个体的累积概率。 4.迭代 选择算子:赌轮选择策略挑选下一代个体。 交叉运算:在交叉概率的控制下,对群体中的个体两两进行交叉。 变异运算:在变异概率的控制下,对群体中的个体两两进行变异,即对某一个体的基因进行随机调整。

遗传算法(GA)解决TSP问题

给你一囗甜甜゛ 提交于 2019-12-05 00:27:50
              遗传算法解决TSP问题 遗传算法 遗传算法的基本原理是通过作用于染色体上的基因寻找好的染色体来求解问题,它需要对算法所产生的每个染色体进行评价,并基于适应度值来选择染色体,使适应性好的染色体有更多的繁殖机会,在遗传算法中,通过随机方式产生若干个所求解问题的数字编码,即染色体,形成初始种群;通过适应度函数给每个个体一个数值评价,淘汰低适应度的个体,选择高适应度的个体参加遗传操作,经过遗产操作后的个体集合形成下一代新的种群,对这个新的种群进行下一轮的进化。 TSP问题 TSP问题即旅行商问题,经典的TSP可以描述为:一个商品推销员要去若干个城市推销商品,该推销员从一个城市出发,需要经过所有城市后,回到出发地。应如何选择行进路线,以使总的行程最短。从图论的角度来看,该问题实质是在一个带权完全无向图中,找一个权值最小的哈密尔顿回路。 遗传算法解决TSP问题 概念介绍: 种群 ==> 可行解集 个体 ==> 可行解 染色体 ==> 可行解的编码 基因 ==> 可行解编码的分量 基因形式 ==> 遗传编码 适应度 ==> 评价的函数值(适应度函数) 选择 ==> 选择操作 交叉 ==> 编码的交叉操作 变异 ==> 可行解编码的变异 遗传操作:就包括优选适应性强的个体的“选择”;个体间交换基因产生新个体的“交叉”;个体间的基因突变而产生新个体的“变异”

朴素贝叶斯实现垃圾信息分类

那年仲夏 提交于 2019-12-04 21:05:32
朴素贝叶斯实现垃圾信息分类 代码github 1.贝叶斯定义( 贝叶斯算法介绍 ) P( A |B) = P(B| A ) * P(B) / P( A ) 2.训练过程 中文分词(以下简称特征),过滤掉中英文符号,数字,字母,单个词 将所有特征组成一个去重的词向量列表 计算各个特征在所有分类下的概率 3.分类预测 将待分类数据,分词,向量化 根据贝叶斯公式计算各个分类下的概率,取最大概率即分类结果 4.优化 概率取对数,防止四舍五入对概率的影响 每个特征加1,防止单个特征概率为0 5.总结 训练 9000 条数据,预测 2000 条数据,正确率在 95 %左右 接下来还需要对特征进行处理,提高正确率,如过滤掉只出现一次的特征,加入语义相关性分析等 来源: CSDN 作者: 暗栈擎空 链接: https://blog.csdn.net/hua0704/article/details/78270046

使用高斯混合模型建立更精确的聚类

笑着哭i 提交于 2019-12-04 16:19:30
介绍 我很喜欢研究无监督学习问题。它们为监督学习问题提供了一个完全不同的挑战,用我拥有的数据进行实验的发挥空间要比监督学习大得多。毫无疑问,机器学习领域的大多数发展和突破都发生在无监督学习领域。 无监督学习中最流行的技术之一就是聚类。这是一个我们通常在机器学习的早期学习的概念,它很容易理解。我相信你曾经遇到过,甚至参与过顾客细分、购物篮分析等项目。 但问题是聚类有很多方面。它并不局限于我们之前学过的基本算法。它是一种强大的无监督学习技术,我们可以在现实世界中准确地使用它。 > 高斯混合模型就是我想在本文中讨论的一种聚类算法。 想预测一下你最喜欢的产品的销售情况吗?或许你想通过不同客户群体的视角来理解客户流失。无论用什么方法,你都会发现高斯混合模型非常有用。 在本文中,我们将采用自下而上的方法。因此,我们首先来看一下聚类的基础知识,包括快速回顾一下k-means算法。然后,我们将深入讨论高斯混合模型的概念,并在Python中实现它们。 目录 聚类简介 k-means聚类简介 k-means聚类的缺点 介绍高斯混合模型 高斯分布 期望最大化EM算法 高斯混合模型的期望最大化 在Python中实现用于聚类的高斯混合模型 聚类简介 在我们开始讨论高斯混合模型的实质内容之前,让我们快速更新一些基本概念。 注意:如果你已经熟悉了聚类背后的思想以及k-means聚类算法的工作原理

weighted—-LR的理解与推广

China☆狼群 提交于 2019-12-04 15:16:40
在YouTube团队推荐系统Rank阶段,DNN输出层使用了weighted—LR,这既是这篇论文的一大创新点,也是一大难点。在这里,重新梳理下该算法的思路与推导,并进行推广。 理解 先说下常见的逻辑回归(LR)模型。LR模型假设数据服从伯努利分布,当某件事情发生,认为其概率为p,则当其不发生,概率为1-p。 那么,其几率比(odds)为: \[ odds = \frac{p}{1-p} \] 几率比(odds):指一个事件发生的概率与不发生概率的比值。 对其求对数,并将对数几率记为输入特征值的线性表达式,可得 \[ logit(\frac{p}{1-p}) = w^Tx \] 那么有: \[ Odds = e^{w^Tx} \] 则概率 \(p\) 可推出为 \(logit\) 函数的反函数,也就是 \(sigmoid\) 函数了: \[ \phi(x) = \frac{1}{1+e^{-w^Tx}} \] 在短视频的CTR预估,一般的,点击发生的概率就是发生点击的视频个数/总共曝光的视频个数,假设发生点击的视频个数为M,总共曝光的视频个数为N,则 \(p\) 为: \[ p = \frac{M}{N} \] 可得Odds为: \[ Odds = \frac{\frac{M}{N}}{\frac{N-M}{N}} = \frac{M/N}{1-M/N} \] 那么

uva 10900 富翁 连续概率

谁说胖子不能爱 提交于 2019-12-04 13:58:02
针对具体问题进行分类讨论,需要积分的可能通过分类和取平均值就对其进行了化简。 注意细节,比如当p0小于t的时候。 数学问题常用到递推,进阶的思想。 题目链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=21&page=show_problem&problem=1841 题解: 最大期望取决于概率,取max(2^i,p*d[i]),d[i]是回答第i个问题后的最大期望,分类求期望,然后根据边界d[n]递推回d[0]得到结果。 #include<cstdio> #include<cmath> #include<algorithm> using namespace std ; int n; double t,v[ 33 ]; void pow () { v[ 0 ]= 1 ; for ( int i= 1 ;i<= 30 ;i++) v[i]=v[i- 1 ]* 2 ; } void solve() { double ans=v[n]; for ( int i=n- 1 ;i>= 0 ;i--) { double p=v[i]/ans; //计算临界概率 if (p<=t) ans=( 1 +t)/ 2.0 *ans; //如果临界概率<=t,则选择继续答题

uva10900 概率dp

依然范特西╮ 提交于 2019-12-04 13:44:21
思路参考了紫书中的分析,在这里大概地说一下 d[i]表示当前已经回答对了i个问题,所能获得的最多奖金的期望。由于除了n个问题已经全部答完的情况,对于每个d[i],我们有以下两种决策,就是根据当前题目的难度,判断出是回答导致的奖金期望比较大还是不回答导致的奖金期望比较大。所以我们不难获得一个等式:设p是当前题目的难度(已知),那么当d[i+1]*p>2^i时,回答这个问题比较好,反之,不回答这个问题比较好。 于是我们先计算出这个p。由于题目规定了p的下界是t,所以我们取p=max(t,d[i+1]/(2^i)); 其中,出现不回答问题比较好的概率是(p-t)/(1-t),出现回答问题比较好的概率是(1-p)/(1-t); 对于这两种情况,我们分别计算它的期望,并且按照回答和不回答的概率计算期望。 那么我们得到公式:d[i]=(2^i)*(p-t)/(1-t)+d[i+1]*(1-p)/(1-t)*(1+p)/2; 注意边界d[n]=2^n. 这时候我们注意到题目所求其实等效于“回答对0个问题后的最大奖金期望”。输出d[0]即可。 #include<bits/stdc++.h> using namespace std; int n; double d[40], t; double p, p0; int main() { while (scanf("%d%lf", &n, &t) ==

yolo系列阅读笔记(v1-v3)

只谈情不闲聊 提交于 2019-12-04 11:28:54
yolov1 模型输出的概率建模 图片首先被分割为S*S的网格(grid cell)。如果一个bbox的中心落在一个网格里,则该网格负责检测该物体。(对于pascal数据集,S定为7) 每个网格预测B个bbox及其confidence score,confidence定义为Pr(Object)∗IOU。 若该网格内没有物体,score应当是0;否则score被希望等于IOU(即如果网格不包含目标中心,则Pr(Object)=0,否则=1)。这个score反应了置信度,此处置信度是指模型预测的box是否真的包含目标(即第一项)以及模型自己认为box的准确度(即第二项)。 每个bbox包含5个预测值,分别为x,y,w,h和score。(x,y)坐标是box中心相对于网格边界(?),(w,h)是相对于整幅图像。score代预测box与真实值的iou。(iou不是能通过xywh直接算出来吗?) 每个cell同时还预测C个类别概率,即 \[ \begin{equation} \operatorname{Pr}\left(\text { Class }_{i} | \text { Object }\right) \end{equation} \] 根据条件概率公式,有: \[ \operatorname{Pr}\left(\text { Class }_{i} \text { |Object

模型评价指标:AUC

一笑奈何 提交于 2019-12-04 10:57:46
参考链接: https://www.iteye.com/blog/lps-683-2387643 问题: AUC是什么 AUC能拿来干什么 AUC如何求解(深入理解AUC) AUC是什么 混淆矩阵(Confusion matrix) 混淆矩阵是理解大多数评价指标的基础,毫无疑问也是理解AUC的基础。丰富的资料介绍着混淆矩阵的概念,这里用一个经典图来解释混淆矩阵是什么。 显然,混淆矩阵包含四部分的信息: 1. True negative(TN),称为真阴率,表明实际是负样本预测成负样本的样本数 2. False positive(FP),称为假阳率,表明实际是负样本预测成正样本的样本数 3. False negative(FN),称为假阴率,表明实际是正样本预测成负样本的样本数 4. True positive(TP),称为真阳率,表明实际是正样本预测成正样本的样本数 对照着混淆矩阵,很容易就能把关系、概念理清楚,但是久而久之,也很容易忘记概念。不妨我们按照位置前后分为两部分记忆,前面的部分是True/False表示真假,即代表着预测的正确性,后面的部分是positive/negative表示正负样本,即代表着预测的结果,所以,混淆矩阵即可表示为 正确性-预测结果 的集合。现在我们再来看上述四个部分的概念(均代表样本数,下述省略): 1. TN,预测是负样本,预测对了 2. FP

L0、L1、L2范数正则化

无人久伴 提交于 2019-12-04 10:46:46
参考资料(要是对于本文的理解不够透彻,必须将以下博客认知阅读,方可全面了解LR): (1). https://zhuanlan.zhihu.com/p/74874291 (2). 逻辑回归与交叉熵 (3). https://www.cnblogs.com/pinard/p/6029432.html (4). https://zhuanlan.zhihu.com/p/76563562 (5). https://www.cnblogs.com/ModifyRong/p/7739955.html 一、逻辑回归介绍   逻辑回归(Logistic Regression)是一种广义线性回归。线性回归解决的是回归问题,预测值是实数范围,逻辑回归则相反,解决的是分类问题,预测值是[0,1]范围。所以逻辑回归名为回归,实为分类。接下来让我们用一句话来概括逻辑回归(LR): 逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。 这句话包含了五点,接下来一一介绍: 逻辑回归的假设 逻辑回归的损失函数 逻辑回归的求解方法 逻辑回归的目的 逻辑回归如何分类 二、逻辑回归的假设 任何的模型都是有自己的假设,在这个假设下模型才是适用的。 逻辑回归的第一个基本假设是假设数据服从伯努利分布。 伯努利分布:是一个离散型概率分布,若成功,则随机变量取值1;若失败