摘要: 对匈牙利算法的概括:这里的匈牙利算法值指的是找二分图最优匹配的算法,在有的资料中,这个算法叫KM算法,匈牙利算法指的是找最大匹配的算法。匈牙利算法看起来挺复杂,但是概括起来也就干了下面的事情:基于这样一个定理:若由二分图中所有满足A[ i ]+B[j]=w[i,j]的边(i,j)构成的子图(称做相等子图)有完备匹配,那么这个完备匹配就是二分图的最大权匹配。[4]然后就是在相等子图中找完备匹配,如果找不到,有两个改进方案:1)修改相等子图,通过重新分配label ; 2)增广路径,扩大匹配边的数目然后继续找完备匹配,找不到继续改,继续找,总会找到的,找到就结束了。参考资料:阅读下面三篇文章,已. 阅读全文
posted @ 2012-09-17 16:56 HOLD 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 这将是很漫长的一条路,这条路从二分图开始,它的终点将是二次匹配问题(QAP)。最近在研究分配问题,看到了二分图,在网上搜索了很多关于二分图的资料,但是我发现中文资料中对二分图相关概念的定义并不是很准确。现在我把我需要了解的内容整理如下。(1)二分图的定义In the mathematical field of graph theory, a bipartite graph (or bigraph) is a graph whose vertices can be divided into two disjoint sets and such that every edge connects.. 阅读全文
posted @ 2012-09-14 17:15 HOLD 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 本科的时候上过线性代数,研究生的时候上过矩阵论,但是现在用起相关的知识来还是很不顺手,感觉是还没有入门。因为矩阵是到大学才学的东西,以前没有接触过,我觉得思考矩阵的方式和以前的数学有很大的区别。我也一直在想为什么对矩阵总不能开窍,我想了想,可能是我这矩阵的自学的。因为实在是不喜欢本科的矩阵老师,所以基本上没有上,等到考研的时候才重新自学,而且到考研前几天还一片茫然,不知所云,但是我考研数学得分最多就是矩阵部分。世界上有些东西就是很出人意料,不过意料之外,情理之中,因为考试那几个题我以前都做过,我貌似也就会这些题(偷笑~),这得感谢考研数学的那本神书啊,写矩阵部分的人貌似叫李永乐,不知道他现在还 阅读全文
posted @ 2012-09-13 18:35 HOLD 阅读(945) 评论(0) 推荐(0) 编辑
摘要: 经常用matlab处理大型数据,有时某些数据处理起来可能要几天甚至更久。如果算法已经到最优,那么提高速度的最后方法就是从硬件下手了。在这个什么都开始并行的年代,matlab也提供了并行计算的功能,甚至能用GPU加速。matlab貌似在2010a开始支持并行计算,引入了一个工具箱,叫做parallel computing toolbox.它的使用方法,可以从matlab的帮助获得。我现在对matlab并行的研究还只是冰山一角,只研究了它parfor的用法。可以再google中输入matlab parfor,你将得到足够多的资料来了解这是个什么东西,如果你耐心,建议去研究研究matlab 帮助中对 阅读全文
posted @ 2012-05-03 17:42 HOLD 阅读(10307) 评论(2) 推荐(2) 编辑
摘要: LBP(local banary patter)是一种非常经典的用来描述图像局部纹理特征的算子。1,基本LBPLBP方法自1994年提出,此后就作为一个有效的纹理特征,不断的被人使用和改进。LBP非常简单,也非常有效。左边的图是从一个图片上拿下来的3*3矩阵,矩阵上的值就是像素值,现在我们要计算的中间那个点的LBP。除了它此外的8个点依次与中间点比较,比它(也就是15)大的记成1,比它小的记成0,然后我们就得到右面的图片。然后我们选定一个起始点-这个图片选的是左上角第一个点,然后按照顺时针方向得到一个二进制串10011010,转换为十进制则为154。到此,我们得到了中间点的LBP值--154。 阅读全文
posted @ 2012-04-12 17:19 HOLD 阅读(2657) 评论(1) 推荐(2) 编辑
摘要: 这篇文章只罗列出一些最简单的图像格式转换方法。1,RGB图像转与灰度图相互转换从视觉角度来看rgb图像是有色彩的,而灰度图则只有255种灰色。从矩阵来看,rgb是个三维矩阵--三个二维矩阵落在一起,一层是R一层是G一层是B。灰度图是个二维矩阵。从rgb图像转换为灰度图很容易:rgb2gray(f) 一个函数搞定。至于原理是什么,没时间管它因为暂时用不着,感兴趣的有时间可以了解一些。但是从灰度图转换为rgb有点费事了,我也很奇怪这一点,去网上查了好多,貌似技术控们总是喜欢用技术含量高的东西,很多方法都是用colormap完成的,这东西很好,但是我不能在10分钟搞明白,所以我又找到了一个更简单的方 阅读全文
posted @ 2012-03-23 11:32 HOLD 阅读(2356) 评论(0) 推荐(0) 编辑
摘要: 首先,把二维正态分布密度函数的公式贴这里这只图好大啊~~但是上面的那个是多维正态分布的密度函数的通式,那个n阶是对称正定方阵叫做协方差矩阵,其中的x,pi,u都是向量形式。虽然这个式子很酷,但是用在matlab里画图不太方面,下面换一个这个公式与上面的等价,只不过把向量和矩阵展开,计算出来。我们可以用这个式子画图。因为二维函数的形式是:z=f(x,y)所以必须先选择一些点,然后计算出f(x,y)。这些点分布在一个平面上,而z则在三维空间。如何选择平面上的点阵?[x,y]=meshgrid(a,b)meshgrid就是这样一个生成点阵的函数,这个meshgrid理解起来有点绕,不过举个例子就马上 阅读全文
posted @ 2012-03-18 14:31 HOLD 阅读(16800) 评论(0) 推荐(0) 编辑
摘要: KNN--k nearest neighbor algorithm应用领域:KNN方法主要用于模式识别,是机器学习中最简单的一种学习方法。思想:一个数据归为哪类,由最近的K个邻居投票,把它归为票数最多的类。这K个邻居取自已知数据。要考虑的问题:选择那种距离--欧式距离,海明距离... 如何选择K值? 如何克服噪声的影响?海明距离 Hamming Distance两个相等长度的字符串,挨个比较每个字符,相同为0不相同为1,那么最后1的个数就是海明距离。交叉验证 cross validation这篇文章讲的比较通俗易懂 :http://www.cnblogs.c... 阅读全文
posted @ 2012-02-26 19:21 HOLD 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 一,问题描述过三关游戏,也叫井字棋,两个游戏者,一个画圈一个画叉,最先横竖斜连成一条线的为赢。现在的问题是,已知900个棋局,如何运用机器学习的方法让计算机自动判定一个给定的棋局为赢还是为输。棋局有9格子,所以每个棋盘可以有个9维的向量表示,1表示x,-1表示圈,0表示空格,每个棋局有两种可能的状态,赢或是输,可以用1表示赢,-1表示输。游戏的数据可以在这个网站得到:http://archive.ics.uci.edu/ml/。可以用其中的50%用于训练,其余50%用于测试。解决的方法很多,先说SVM方法,因为有个很好用的工具LIBSVM。二,SVMSVM--支持向量机,用于解决分类问题。在解 阅读全文
posted @ 2012-02-26 19:20 HOLD 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 1,Euclidean distance点p和点q的欧几米德距离就是线段pq的长度。假设p的坐标为p=(p1,p1....pn) q的坐标为q=(q1,q2...qn)那么p q间的距离:也可以用向量点积的形式表示为:2,Pearson correlation coefficient皮尔森相关系数就是概率论里的相关系数。3,Tanimoto similarity这是是看集体智慧编程的时候看到的,在第二章练习题中问何时Tanimoto similarity metric能够代替欧式距离和pearson系数?Tanimoto的定义[1]:if samplesXandYare bitmaps,is 阅读全文
posted @ 2012-02-26 19:19 HOLD 阅读(510) 评论(0) 推荐(0) 编辑