数模
文章平均质量分 87
NickChen_0411
学生
展开
-
什么是P问题、NP问题和NPC问题
这或许是众多OIer最大的误区之一。你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC问题才是。好,行了,基本上这个误解已经被澄清了。下面的内容都是在讲什么是P问题,什么是NP问题,什么是NPC问题,转载 2017-07-13 18:04:41 · 315 阅读 · 0 评论 -
朴素贝叶斯分类(python实现)
引文:前面提到的K最近邻算法和决策树算法,数据实例最终被明确的划分到某个分类中,下面介绍一种不能完全确定数据实例应该划分到哪个类别,或者说只能给数据实例属于给定分类的概率。基于贝叶斯决策理论的分类方法之朴素贝叶斯优点:在数据较少的情况下仍然有效,可以处理多类别问题缺点:对于输入数据的准备方式较为敏感适用数据类型:标称型数据。朴素贝叶斯的一般过程收集数据:可以使用任何方式准备数据:需...转载 2018-12-25 22:06:51 · 1386 阅读 · 0 评论 -
CART树用于回归应用(python实现)
一、CART ( Classification And Regression Tree) 分类回归树1、基尼指数:在分类问题中,假设有KK 个类,样本点属于第kk 类的概率为PkPk ,则概率分布的基尼指数定义为: 在CART 分类问题中,基尼指数作为特征选择的依据:选择基尼指数最小的特征及切分点做为最优特征和最优切分点。2、在回归问题中,特征选择及最佳划分特征值的依据是:划分后样...转载 2018-12-24 22:17:31 · 2042 阅读 · 3 评论 -
随机抽样一致算法(Random sample consensus,RANSAC 简单版)PYTHON实现
一、RANSAC理论介绍普通最小二乘是保守派:在现有数据下,如何实现最优。是从一个整体误差最小的角度去考虑,尽量谁也不得罪。RANSAC是改革派:首先假设数据具有某种特性(目的),为了达到目的,适当割舍一些现有的数据。给出最小二乘拟合(红线)、RANSAC(绿线)对于一阶直线、二阶曲线的拟合对比:可以看到RANSAC可以很好的拟合。RANSAC可以理解为一种采样的方式,所以对于...转载 2019-01-03 16:18:13 · 2109 阅读 · 0 评论 -
SVM(python实现)
看《机器学习(西瓜书)》可以理解SVM的推导过程,重点是看附录理解“对偶问题”,以及核函数的定义。SVM的代码主要是SMO算法的实现,主要参考《统计学习方法》,即如何选择pair进行优化,收敛后即可得到α、w、b代码:# _*_ coding:utf-8 _*_from numpy import *def loadDataSet(filename): #读取数据 dat...转载 2018-12-28 18:20:30 · 4587 阅读 · 0 评论 -
字符串匹配——KMP(C++实现)
字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。这种算法不太容易理解,网上有很多解释,但读起来都很...转载 2018-12-11 17:50:02 · 1862 阅读 · 0 评论 -
Astar A*算法 最短路径算法
通常情况下,迷宫寻路算法可以使用深度优先或者广度优先算法,但是由于效率的原因,不会直接使用这些算法,在路径搜索算法中最常见的就是A*寻路算法。使用A*算法的魅力之处在于它不仅能找到地图中从A到B的一条路径,还能保证找到的是一条最短路径,它是一种常见的启发式搜索算法,类似于Dijkstra算法一样的最短路径查找算法,很多游戏应用中的路径搜索基本都是采用这种算法或者是A*算法的变种。下面我们来了解...转载 2018-12-10 20:23:31 · 6715 阅读 · 0 评论 -
ID3决策树(python实现)
决策树的生成(该函数是一个递归的过程)CreateTree输入:数据集、特征 输出:字典型数据——决策树 a、判断是否满足停止划分的条件 若当前数据集的属性值为空,则投票表决当前样本中最多的类别 若当前所有的样本类别相同,则返回当前数据的类别。b、寻找当前数据的最佳划分特征 c、将最佳特征作为关键字,保存到字典中 d、从当前的属性集合中删除该最佳特征 e、遍历该最佳划分特征的...转载 2018-12-19 21:59:56 · 768 阅读 · 1 评论 -
KNN(python实现)
kNN算法流程一般情况下,kNN有如下流程: (1)收集数据:确定训练样本集合测试数据; (2)计算测试数据和训练样本集中每个样本数据的距离;常用的距离计算公式: 欧式距离公式:d(x,y)=∑ni=1(xi−yi)2−−−−−−−−−−−−√d(x,y)=∑i=1n(xi−yi)2 曼哈顿距离公式:d(x,y)=∑ni=1|xi−yi|d(x,y)=∑i=1n|xi−yi|(...转载 2018-12-19 21:52:07 · 2611 阅读 · 0 评论 -
SGU326 perspective 最大流 竞赛排名问题
题目大意:有n支NBA球队,这些队伍属于同一个半区,已知各队目前已经赢了几场以及还要打几场(赢了的场次和没打的场次不一定是和 相同半区内的对手),另外已知一个n * n的矩阵,a[i][j]代表i和j还要打的比赛场数。根据这些条件,请问队伍1有没有获得半区冠军的可能性 (若积分相同则均为冠军); 方法:构出图来是四列的网络流问题:第一列为源点,第二列为代表不含1的比...转载 2018-12-06 16:33:36 · 589 阅读 · 0 评论 -
霍夫曼编码(C++ 优先队列)
霍夫曼编码 一般采用前缀编码 -- -- 对字符集进行编码时,要求字符集中任一字符的编码都不是其它字符的编码的前缀,这种编码称为前缀(编)码。算法思想:构造哈夫曼树非常简单,将所有的节点放到一个队列中,用一个节点替换两个频率最低的节点,新节点的频率就是这两个节点的频率之和。这样,新节点就是两个被替换节点的父节点了。如此循环,直到队列中只剩一个节点(树根)。 其实这就是一个贪心策略,属于...转载 2018-12-12 20:57:51 · 1907 阅读 · 1 评论 -
最短路径---SPFA算法(C++)
适用范围:给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便派上用场了。 我们约定有向加权图G不存在负权回路,即最短路径一定存在。当然,我们可以在执行该算法前做一次拓扑排序,以判断是否存在负权回路,但这不是我们讨论的重点。算法思想:我们用数组d记录每个结点的最短路径估计值,用邻接表来存储图G。我们采取的方法是动态逼近...转载 2018-12-07 23:03:33 · 2466 阅读 · 1 评论 -
Logistic回归(python实现)
一、逻辑回归(LogisticRegression) Logistic regression (逻辑回归)是当前业界比较常用的机器学习方法,用于估计某种事物的可能性。之前在经典之作《数学之美》中也看到了它用于广告预测,也就是根据某广告被用户点击的可能性,把最可能被用户点击的广告摆在用户能看到的地方,然后叫他“你点我啊!”用户点了,你就有钱收了。这就是为什么我们的电脑现在广告泛滥的原...转载 2018-12-26 12:01:29 · 6270 阅读 · 0 评论