机器学习
文章平均质量分 82
消失的苦楝树Ranchlai
非著名算法工程师任职于深圳某某公司
展开
-
分类器设计之线性分类器和线性SVM(含Matlab代码)
对于高维空间的两类问题,最直接的方法是找到一个最佳的分类超平面,使得0" alt="">并且,对于所有的正负训练样本和. 因此,以上问题可以表达为:0,i=1,....,n&&space;\\&space;&&&w^Ty_j+b0,i=1,....,n&&space;\\&space;&&&w^Ty_j+b0,i=1,....,n& \\ &&&w^Ty_j+b问题P0可以转化为原创 2013-08-25 16:48:02 · 11968 阅读 · 0 评论 -
采用蒙特卡洛方法计算PI的值
蒙地卡罗方法(Mente Carlo method)是一种通过产生大量随机数并结合相关统计和数值计算来解决问题的一类方法。本文介绍如何利用蒙地卡罗方法来计算pi的值。clc;clear;set = 5.^(1:10)for i = 1:length(set) N = set(i); rng(1); x = rand(N,1); rn原创 2013-09-04 23:18:55 · 11033 阅读 · 2 评论 -
采用线性SVM对线性不可分的数据进行分类(含matlab实现)
本文介绍一种常用的分类器设计技巧[1]:将线性不可分的数据映射到高维后,使其变得线性可分,然后利用前面介绍的线性分类器进行无(训练)误差分类。假设我们有如下图所示的训练数据,如何对其进行分类? 显然,此时的正负样本是不可分的,因为无法找到一个超平面(由于此处是二维数据,超平面退化成直线)将其分开。在这里介绍一个有用的技术:将二维数据转化成五维数据,即原创 2013-09-02 11:03:08 · 5897 阅读 · 1 评论 -
分类器设计之logistic回归分析(含Matlab代码)
logistic回归是回归分析的一种, 函数表达式为在matlab中可以画出其graph:x = -10:0.1:10;y = 1./(exp(-x)+1);plot(x,y,'g-x');title('logistic function');xlabel('x');ylabel('y');以上是一维的情况。对于多维变量,可以定义一个超平面 代入原来原创 2013-08-17 13:31:17 · 15284 阅读 · 5 评论 -
最小二乘曲线拟合matlab实现
曲线拟合[1]是一种常用的模型拟合方法,经常用在相机标定或其它传感器标定上。对于加性高斯噪声,最小二乘通常是一种最优的估计方法(PS:当外点存在时,通常可以采用其它robust estimator 或者采用ransac进行拟合)。本文演示最小二乘曲线拟合技术,所有代码可从点击此处下载。对如下图所示的加噪声曲线,如何进行曲线拟合呢?我们可以采用d阶多项式去逼近原创 2013-09-02 14:10:51 · 8292 阅读 · 3 评论 -
在Matlab中如何快速生成均匀分布的圆带形数据?
在测试一个分类器或降维方法时,常常要用到下面形式的随机数据:在matlab中怎样产生如上图所示的随数据呢?这里介绍一种比较高效的方法:首生产生一组随机的0到2*pi的角度数据,方法为调用rand先产生0到1的均匀分布数据再乘以2pi。然后再产生一组随机的半径数据:假设上图的内径为r0,带宽为d,则先用rand生成0到1的随机数a,最后半径即为a*d+r0。有了角度和数据就能成生图中的图原创 2013-09-02 09:59:10 · 6795 阅读 · 0 评论 -
最简单的三层神经网络Matlab实现
人工神经网络(Artificial Neural Network, ANN)[1]具有很广的应用。理论上来说,采用多层的神经网络能够逼近任何的连续函数,而不管该函数是否平滑。自从SVM出现后,大家都快忘了还有ANN这种东东。但是近几年随着deep learning技术的兴起,大牛们又重新开始关注神经网络了。在这里,演示一种个人认为最简单的三层神经网络。它包含一个输入层(即数据本身),一个中间层(又称隐含层,hidden layer), 和一个输出层。其中,输入层的大小即为数据的维度,中间层大小可调,输出层只原创 2013-09-07 13:06:55 · 12975 阅读 · 0 评论 -
基于树型弱分类器的adaboot演示(含Matlab代码)
Adaboost是一种非常有用的分类框架[1]。 本质上,它将众多的弱分类器进行线性组合,最终形成一个可以与所谓的强分类器如SVM比拟的分类器。它的优点在于速度快,过拟合不严重等,缺点是需解带权重的离散误差最小化问题,使得只有少数的弱分类器能比较方便地得到最优解,从而限制了它的应用。在此处对adaboost+只有一个根结点的决策树进行演示。训练代码:%stump_train.m原创 2013-08-30 13:48:44 · 3148 阅读 · 1 评论 -
最简单的贝叶斯分类器演示(含Matlab程序)
贝叶斯(Baysian)分类器[1]是一种理论上比较简单的分类器。但是结合不同的网络结构和概率模形,它又可以演化成非常复杂的分类体系。本短文主要演示Baysian + Gaussian如何解两类问题。其中,分母部分主要用于归一化。p(y)为先验概率(prior), p(x|y)为条件概率或称之为类概率密度(即已知x是哪一类的情况下p(x)的概率密度)。 在本文中,假设p原创 2013-08-27 11:11:13 · 6940 阅读 · 0 评论 -
一种基于凸优化的图像去噪方法演示
本文介绍一种基于凸优化的图像去噪方法。 该方法采用L1范数来衡量图像的平滑度,即能滤除澡声,又能最大限度地保存图像的边缘。 模型如下: 其中f(x)为差分矩阵,存放了X每个元素与其4邻域的差值。 I为输入的灰度图像。 对于三通道彩色图像,可对每个通道进行单独处理。gamma为权重,值趣大则图像越平滑。上述模型为无约束的最小化问题 ,用线性规化可解。 在这里用一个很强大通用的matlab算法包CVX[1]进行求解原创 2013-10-19 16:17:31 · 3702 阅读 · 1 评论