基础算法
YZXnuaa
乍见之欢不如久处不厌
展开
-
字符校对代码
【代码】字符校对代码。原创 2024-08-21 14:02:22 · 151 阅读 · 0 评论 -
K-L变换
K-L变换的理论知识K-L变换是除了PCA外的另一种常用的特征提取方法,它有很多种形式,最基本的形式跟PCA类似,它跟PCA的不同在于,PCA是一种无监督的特征变换,而K-L变换能够考虑到不同的分类信息,实现有监督的特征提取。根据随机过程中的KL展开理论,将随机过程描述为无数个正交函数的线性组合,而在模式识别问题中,通常可以将一个样本看成是随机向量的某一次实现结果,所以假设有一d维随机向量x,可以...转载 2018-04-12 18:58:42 · 4621 阅读 · 0 评论 -
如何通俗理解beta分布?
作者:小杰链接:https://www.zhihu.com/question/30269898/answer/123261564来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。beta分布介绍相信大家学过统计学的都对 正态分布 二项分布 均匀分布 等等很熟悉了,但是却鲜少有人去介绍beta分布的。用一句话来说,beta分布可以看作一个概率的概率分布,当你不知道一个东西...转载 2018-04-18 18:37:37 · 603 阅读 · 0 评论 -
数据结构--Dijkstra算法最清楚的讲解
迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。 它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止基本思想通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。此外,引进两个集合S和U。S的作用是记录已求出最短路径的顶点(以及相应的最短路径长度)...转载 2018-04-18 20:05:38 · 369 阅读 · 0 评论 -
正则化与数据先验分布的关系
作者:Charles Xiao链接:https://www.zhihu.com/question/23536142/answer/90135994来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。先抛给大家一个结论:从贝叶斯的角度来看,正则化等价于对模型参数引入 先验分布 。一. Linear Regression我们先看下最原始的Linear Regression:由...转载 2018-05-07 11:19:27 · 884 阅读 · 1 评论 -
使用 python 实现 Voronoi 图
from PIL import Image import random import math def generate_voronoi_diagram(width, height, num_cells): image = Image.new("RGB", (width, height)) putpixel = image.putpixel imgx, i...转载 2018-05-07 17:43:22 · 8655 阅读 · 2 评论 -
见过的最好的PCA解析
1.概述 PCA:主成分分析,一种常用的数据分析方法,不管是在机器学习还是数据挖掘中都会用到。PCA主要通过求数据集的协方差矩阵最大的特征值对应的特征向量,由此找到数据方差最大的几个方向,对数据达到降维的效果,将一个n维的向量降低到d维,其中d<n。本文主要从方差最大化理论解释PCA的实现过程。 首先来看这样几个实际问题,比如那到一个汽车的样本,里面既有千米每小时度量...转载 2018-06-20 15:00:51 · 1892 阅读 · 0 评论 -
3D模型三角面片相交检测
图片是做的一些测试结果(相交面为红色标记的三角面)感谢CSDN社区的冯玮提供的基础技术支持。相关链接对空间中三角面的相交检测,基本思路是怎样确定,两个空间三角形,各个顶点间的关系。为了找到切入点,将问题转述为三角形与包含另一个Triangle所在的平面之间的关系。要判断三角形与平面的关系,可以通过顶点与平面的关系来区分不同的情况,分别进行处理。给定空间四个点:a(ax,ay,az),b=(bx,b...原创 2018-06-27 14:50:01 · 4700 阅读 · 0 评论 -
饱和度调整
之前在公司做项目的用到photoshop颜色空间的一些相关方法,在此总结一下。下面原理部分是从我的总结文档里截取来的。需要复制的童鞋自己手写一下~...原创 2018-09-05 00:17:30 · 1094 阅读 · 0 评论 -
【Python】 比较图片相似度
# Filename: histsimilar.py# -*- coding: utf-8 -*- import Image def make_regalur_image(img, size = (256, 256)): return img.resize(size).convert('RGB')#几何转变,全部转化为256*256像素大小 def split_image...转载 2018-10-15 20:18:34 · 1954 阅读 · 0 评论 -
广度优先遍历、深度优先遍历算法 python
广度优先遍历-bfs顾名思义,bfs总是先访问完同一层的结点,然后才继续访问下一层结点,它最有用的性质是可以遍历一次就生成中心结点到所遍历结点的最短路径,这一点在求无权图的最短路径时非常有用。广度优先遍历的核心思想非常简单,用python实现起来也就十来行代码。下面就是超精简的实现,用来理解核心思想足够了:import Queuedef bfs(adj, start): vis...转载 2019-04-17 00:38:53 · 652 阅读 · 0 评论 -
返回一个列表中出现次数最多的元素
def zuiduo_yuansu(): a=list(input('请输入任意个元素:')) print(max(a,key=a.count))zuiduo_yuansu()lt = ['李白', '李商隐', '李贺', '李清照', '李煜', '李杰', '杜甫', '杜牧', '白居易', '李白', '李清照', '岳飞', '李白']def max_word...转载 2019-04-19 13:17:48 · 957 阅读 · 0 评论 -
信息熵常见定义
信息论(Information Theory)是概率论与数理统计的一个分枝。用于信息处理、信息熵、通信系统、数据传输、率失真理论、密码学、信噪比、数据压缩和相关课题。本文主要罗列一些基于熵的概念及其意义,注意本文罗列的所有loglog都是以 2 为底的。信息熵在物理界中熵是描述事物无序性的参数,熵越大则越混乱。类似的在信息论中熵表示随机变量的不确定程度,给定随机变量 X ,其取值x1...原创 2019-05-14 21:57:04 · 2123 阅读 · 0 评论 -
【数学基础】 线性代数以及符号编总
1基本概念和符号线性代数可以对一组线性方程进行简洁地表示和运算。例如,对于这个方程组:这里有两个方程和两个变量,如果你学过高中代数的话,你肯定知道,可以为x1 和x2找到一组唯一的解 (除非方程可以进一步简化,例如,如果第二个方程只是第一个方程的倍数形式。但是显然上面的例子不可简化,是有唯一解的)。在矩阵表达中,我们可以简洁的写作:其中:很快我们将会看到,咱们把方程表示...原创 2019-05-24 20:36:01 · 46684 阅读 · 3 评论 -
装箱问题
[cpp] view plain copy # include <stdio.h> int main() { int V, n; scanf("%d", &V); scanf("%d", &n); int v[n+1]; int c[n+1][V+1]; int i,j; for (i=1; i&...转载 2018-04-11 13:24:24 · 452 阅读 · 0 评论 -
Lipschitz连续
Lipschitz连续。它其实就是在一个连续函数上面额外施加了一个限制,要求存在一个常数使得定义域内的任意两个元素和都满足此时称函数的Lipschitz常数为。简单理解,比如说的定义域是实数集合,那上面的要求就等价于的导函数绝对值不超过。再比如说就不是Lipschitz连续,因为它的导函数没有上界。Lipschitz连续条件限制了一个连续函数的最大局部变动幅度。...转载 2018-03-28 12:21:57 · 18694 阅读 · 3 评论 -
交叉熵 相对熵 知乎两篇
作者:Noriko Oshima链接:https://www.zhihu.com/question/41252833/answer/108777563来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。熵的本质是香农信息量()的期望。现有关于样本集的2个概率分布p和q,其中p为真实分布,q非真实分布。按照真实分布p来衡量识别一个样本的所需要的编码长度的期望(即平均编码长度...转载 2018-03-27 15:49:35 · 1268 阅读 · 0 评论 -
奇异值分解(SVD)及其应用
一、奇异值与特征值基础知识: 特征值分解和奇异值分解在机器学习领域都是属于满地可见的方法。两者有着很紧密的关系,我在接下来会谈到,特征值分解和奇异值分解的目的都是一样,就是提取出一个矩阵最重要的特征。先谈谈特征值分解吧: 1)特征值: 如果说一个向量v是方阵A的特征向量,将一定可以表示成下面的形式: 这时候λ就被称为特征向量v对应的特征值,一个矩阵的一组特征向量是一组正交向量...转载 2018-03-22 16:13:15 · 370 阅读 · 0 评论 -
向量范数与矩阵范数
1.范数(norm)的意义要更好的理解范数,就要从函数、几何与矩阵的角度去理解。 我们都知道,函数与几何图形往往是有对应的关系,这个很好想象,特别是在三维以下的空间内,函数是几何图像的数学概括,而几何图像是函数的高度形象化,比如一个函数对应几何空间上若干点组成的图形。 但当函数与几何超出三维空间时,就难以获得较好的想象,于是就有了映射的概念,映射表达的就是一个集合通过某种关系转为另外一个集合。通常...转载 2018-03-23 19:42:36 · 266 阅读 · 0 评论 -
凸包-Graham-Scan算法
(1)问题:给定二维平面点集,求最小的包含所有点的凸多边形。(2)Gramham-Scan算法:Gramham-Scan是一种灵活的凸包算法,其总的时间复杂度仅为O(n*log(n))。步骤:Step1: 选定x坐标最小(相同情况y最小)的点作为极点,这个点必在凸包上;Step2: 将其余点按极角排序,在极角相同的情况下比较与极点的距离,离极点比较近的优先;Step3: 用一个栈S存储凸包上的点,...转载 2018-03-23 19:44:22 · 988 阅读 · 0 评论 -
几何学算法
1. 矢量减法设二维矢量 P = (x1,y1) ,Q = (x2,y2)则矢量减法定义为: P - Q = ( x1 - x2 , y1 - y2 )显然有性质 P - Q = - ( Q - P )如不加说明,下面所有的点都看作矢量,两点的减法就是矢量相减;2.矢量叉积设矢量P = (x1,y1) ,Q = (x2,y2)则矢量叉积定义为: P × Q = x1*y2 - x2*y1 得到...转载 2018-03-23 19:46:52 · 332 阅读 · 0 评论 -
快速判断某点是在凸多面体的内部
求出每个面的方程f(x,y,z)=0,然后判断P点代入f和多面体其他点代入f如果异号说明不在内部。如果没有每个面的方程的话可以用一个暴力一点的方法,遍历所有顶点中任3点组合确定的平面方程,如果其余点代入的结果同号(包括0,不可能都等于0否则就在一个面上了)但是与P异号(不包括0),那么说明不在内部;如果遍历结束都没有结果说明在内部...原创 2018-03-23 19:49:40 · 4782 阅读 · 1 评论 -
【Python】点集凸包Numpy实现(补充版)
1. 矢量减法设二维矢量 P=(x1,y1) ,Q=(x2,y2) 则矢量减法定义(对应位相减)为: P−Q=(x1−x2,y1−y2) 显然有性质 P−Q=−(Q−P) 如不加说明,下面所有的点都看作矢量,两点的减法就是矢量相减;def sub(p, q): return p-qp, q = np.array([1, 2]), np.array([3, 5])print(sub(p,...原创 2018-03-23 19:52:20 · 3253 阅读 · 0 评论 -
平方根倒数速算法
在电影《微微一笑很倾城》中,肖奈大神在玻璃上写了一堆公式,提到平方根倒数速算算法,这个到底是一个什么算法?笔者看电影的时候打开手机学了一下,发现该算法的作者真乃神人!今天有空,就把该算法写一写。在3D图形编程中,经常要求平方根的倒数,即1/Sqrt(x),如果用一般的代码(float)(1.0/sqrt(x)),,精度高,但是非常慢;我们需要一个快速,而又足够高精度的算法;著名游戏《雷神之锤III...原创 2018-03-20 16:00:31 · 2978 阅读 · 0 评论 -
hausdorff距离 霍夫曼距离
(原文:http://cgm.cs.mcgill.ca/~godfried/teaching/cg-projects/98/normand/main.html)1.前言在讨论距离问题时,我们通常用最短来描述:比如,点X到多边形P的距离,我们一般指的是P上离X最近的点到X的距离。同样这种概念也适用于多边形之间:如果多边形A和多边形B之间有一段距离,它们间的距离我们一般理解为A和B上任意点之间最短的距...转载 2018-03-20 17:01:28 · 2181 阅读 · 0 评论 -
随机采样方法整理与讲解(MCMC、Gibbs Sampling等)
本文是对参考资料中多篇关于sampling的内容进行总结+搬运,方便以后自己翻阅。其实参考资料中的资料写的比我好,大家可以看一下!好东西多分享!PRML的第11章也是sampling,有时间后面写到PRML的笔记中去:) 背景 随机模拟也可以叫做蒙特卡罗模拟(Monte Carlo Simulation)。这个方法的发展始于20世纪40年代,和原子弹制造的曼哈顿计划...转载 2018-03-21 14:36:22 · 694 阅读 · 0 评论 -
玻尔兹曼分布
Boltzmann distribution(又叫Gibbs distribution)本来是脱胎于热力学和统计力学的分布,但在量子力学和机器学习领域也得到了广泛的应用。 注:Ludwig Eduard Boltzmann,1844~1906,奥地利物理学家,统计力学的奠基人之一。维也纳大学博士,先后执教于格拉茨大学、维也纳大学、慕尼黑大学和莱比锡大学。英国皇家学会会员。信息熵设概率实验X有n个...转载 2018-03-21 17:09:49 · 12515 阅读 · 0 评论 -
浅谈流形学习
作者:暮暮迷了路链接:https://www.zhihu.com/question/24015486/answer/194284643来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。最高票解释的很学术~我就说个定性而非定量的解释。流形学习的观点是认为,我们所能观察到的数据实际上是由一个低维流形映射到高维空间上的。由于数据内部特征的限制,一些高维中的数据会产生维度上的冗...转载 2018-03-22 13:47:56 · 1499 阅读 · 0 评论 -
浅谈流形学习
总觉得即使是“浅谈”两个字,还是让这个标题有些过大了,更何况我自己也才刚刚接触这么一个领域。不过懒得想其他标题了,想起来要扯一下这个话题,也是因为和朋友聊起我自己最近在做的方向。Manifold Learning 或者仅仅 Manifold 本身通常就听起来颇有些深奥的感觉,不过如果并不是想要进行严格的理论推导的话,也可以从许多直观的例子得到一些感性的认识,正好我也就借这个机会来简单地谈一下这个话...转载 2018-03-26 15:54:39 · 286 阅读 · 0 评论 -
流形学习存在的缺点
当前的流形学习方法存在的主要不足有:(1) 流形学习算法计算复杂度高现有流形学习的一个很大瓶颈就是计算复杂度太高,这阻碍了其在实际中的应用。虽然其对非线性数据具有较好的降维效果,但如何有效降低计算量,甚至推广其线性化算法是一个研究热点。线性化是一个很好的方法,但是线性化以后对于高度的非线性问题也一样束手无策。如何得到可处理非线性数据的线性化流形学习方法值得进一步研究。(2) 流形学习算法的分类能力...转载 2018-03-22 15:59:57 · 2397 阅读 · 0 评论