Machine Learning
Machine Learning
zxucver
这个作者很懒,什么都没留下…
展开
-
K-means算法及OpenCV实现
K-means算法MacQueen在1967年提出的,是最简单与最常见数据分类方法之一并且最为一种常见数据分析技术在机器学习、数据挖掘、模式识别、图像分析等领域都用应用。从机器学习的角度看,K-means属于一种无监督的机器学习方法。无监督学习(Unsupervised Learning)简单的说就是在不给定正确答案(标签)的情况下,在数据中找到一些相似的特征用以分析(分类)数据的方法。而在K-me原创 2017-04-11 15:48:54 · 2648 阅读 · 1 评论 -
学习KNN(三)KNN+HOG实现手写数字识别
在学习KNN(二)KNN算法手写数字识别的OpenCV实现我们直接将像素值作为特征,实现了KNN算法的手写数字识别问题,并得到了较好的准确率,但是就像其他机器学习算法一样,KNN的对象同样是特征,所以我们可以用一种特征提取算法配合KNN实现手写数字识别的任务。 下面用HOG原理及OpenCV实现中介绍的HOG算法提取特征,作为KNN的的输入,最后与像素值特征的结果进行对比。 在数据方面还是使用之原创 2017-09-25 14:00:36 · 3880 阅读 · 4 评论 -
学习KNN(二)KNN算法手写数字识别的OpenCV实现
在OpenCV的安装文件路径/opencv/sources/samples/data/digits.png下,有这样一张图: 图片大小为1000*2000,有0-9的10个数字,每5行为一个数字,总共50行,共有5000个手写数字,每个数字块大小为20*20。 为了后续方便处理,我们先写一段小程序把这5000个图截取出来:#include <opencv2/opencv.hpp>#incl原创 2017-09-13 15:38:13 · 5692 阅读 · 7 评论 -
学习SVM(一) SVM模型训练与分类的OpenCV实现
学习SVM(一) SVM模型训练与分类的OpenCV实现 学习SVM(二) 如何理解支持向量机的最大分类间隔 学习SVM(三)理解SVM中的对偶问题 学习SVM(四) 理解SVM中的支持向量(Support Vector)Andrew Ng 在斯坦福大学的机器学习公开课上这样评价支持向量机: support vector machines is the supervised learning原创 2017-03-29 21:47:52 · 80772 阅读 · 81 评论 -
二值交叉熵损失函数证明
在理解Logistic回归算法原理中我们指出了Logistic回归的损失函数定义(在这里重新约定符号): 对于单个样本而言,令为样本的期望输出,记为y;为样本的实际输出,记为y_hat,那么Logistic回归的损失函数就可以表示为: 而对于全体样本集的成本函数,就可以表示为: 与损失函数不同的是,它描述了在全体样本上集上,模型的参数w和b与优化目标之间的关系,在这两个公式中,成本函数其实是损原创 2017-09-25 09:54:09 · 21852 阅读 · 8 评论 -
理解Logistic回归算法原理与Python实现
一般的机器学习的实现大致都是这样的步骤: 1.准备数据,包括数据的收集,整理等等 2.定义一个学习模型(learning function model),也就是最后要用来去预测其他数据的那个模型 3.定义损失函数(loss function),就是要其做优化那个,以确定模型中参数的那个函数。 4.选择一个优化策略(optimizer),用来根据损失函数不断优化模型的参数。 5.根据训练数据原创 2017-05-19 12:19:00 · 5173 阅读 · 0 评论 -
理解梯度下降在机器学习模型优化中的应用
写在开头:其实我也只是在学习的过程中写了这篇博客,非常高兴可以得到各位的认可,在后续学习过程中,如果发现有问题的地方会不断的完善这些内容。下面是这么博客一次较大的补充,用一个已知的模型先理解最简单的情况下的梯度下降算法。认识梯度下降算法这篇博客的内容是为了介绍梯度下降算法在模型优化中的作用,也就是说,正常的顺序是我们要学习一个模型(确定模型参数),在优化这么未知模型的时候,使用的是梯度下降算法。原创 2017-05-24 22:44:03 · 10609 阅读 · 10 评论 -
Hinge loss
原文链接:Hinge lossHinge loss在机器学习中,hinge loss常作为分类器训练时的损失函数。hinge loss用于“最大间隔”分类,特别是针对于支持向量机(SVM)。对于一个期望输出和分类分数y,预测值y的hinge loss被定义为: (为了方便将其写作L(y)) 注意:这里的y分类器决策函数的“原始”输出,而不是预测的类别标签。例如,在线性SVM中,y=wx+b,(w翻译 2017-07-24 21:17:20 · 16128 阅读 · 1 评论 -
学习SVM(二) 如何理解支持向量机的最大分类间隔
学习SVM(一) SVM模型训练与分类的OpenCV实现 学习SVM(二) 如何理解支持向量机的最大分类间隔 学习SVM(三)理解SVM中的对偶问题 学习SVM(四) 理解SVM中的支持向量(Support Vector)SVM算法在在1995年正式发表,在针对中小型数据规模的分类任务上有着卓越的效果,同时有着完整的理论证明,在20世纪末的几年和21世纪初的10年完胜神经网络,吴恩达在其200原创 2017-06-24 16:01:45 · 29530 阅读 · 9 评论 -
学习SVM(四) 理解SVM中的支持向量(Support Vector)
我们在开始接触SVM时肯定听到过类似这样的话,决定决策边界的数据叫做支持向量,它决定了margin到底是多少,而max margin更远的点,其实有没有无所谓。 然后一般会配一张图说明一下哪些是支持向量(Support Vector),这个图在之前的学习SVM(二) 如何理解支持向量机的最大分类间隔里面就有,这里不在重复贴了。但是问题的关键是,这些Support Vector是怎么被确定的呢?原创 2017-06-25 16:03:43 · 29600 阅读 · 3 评论 -
学习SVM(三)理解SVM中的对偶问题
网上有很多关于SVM的优秀博客与其他学习资料,而个人感觉本系列博客与其他关于SVM的文章相比,多了一些细节的证明,比如线性分类器原理,支持向量原理等等。 同样是SVM,在《支持向量机导论》中有170+页的内容,而在《机器学习》(周志华)一书中仅仅是一个章节的内容,中间略过了细节推导的过程,这些被略过的推导过程在本系列博客中都会加入,也是在自学时验证过程中的一些总结,如有问题请指正。在上一篇的内容中原创 2017-07-12 13:56:38 · 11638 阅读 · 4 评论 -
学习SVM(五)理解线性SVM的松弛因子
学习SVM(一) SVM模型训练与分类的OpenCV实现 学习SVM(二) 如何理解支持向量机的最大分类间隔 学习SVM(三)理解SVM中的对偶问题 学习SVM(四) 理解SVM中的支持向量(Support Vector) 学习SVM(五)理解线性SVM的松弛因子先说一个事引出这个博客的内容,我最近投的一篇论文被拒稿,用到的方法使SVM(很惭愧,还在用20年前的算法,当然这并不是重点),审稿原创 2017-07-24 14:58:14 · 13917 阅读 · 3 评论 -
学习KNN(一) 图像分类与KNN原理
学习KNN(一) 图像分类与KNN原理 学习KNN(二)KNN算法手写数字识别的OpenCV实现 学习KNN(三)KNN+HOG实现手写数字识别简介KNN算法,即K近邻算法是一种监督学习算法,本质上是要在给定的训练样本中找到与某一个测试样本A最近的K个实例,然后统计k个实例中所属类别计数最多的那个类,就是A的类别。 从上面一句话中可以看出,KNN的原理非常简单粗暴,而且是一种“在...原创 2017-09-11 22:47:54 · 17363 阅读 · 5 评论