机器学习
言寺之风雅颂
这个作者很懒,什么都没留下…
展开
-
线性判别分析LDA—西瓜书课后题3.5—MATLAB代码
题目:编程实现线性判别分析LDA,给出西瓜数据集 3.0a上的结果简单说就是找一个分离度最大的投影方向,把数据投射上去。clcclear all[num,txt]=xlsread('D:\机器学习\WaterMelon_3.0.xlsx');%提取有效数据data=num(1:end,[1,8,9]);label_txt=txt([2:end],10);label=ismem...原创 2018-06-21 10:09:07 · 6655 阅读 · 0 评论 -
蒙提霍尔问题(三门问题)的思考与贝叶斯分析
三门问题(Monty Hall problem)亦称为蒙提霍尔问题或蒙提霍尔悖论,大致出自美国的电视游戏节目Let's Make a Deal。问题名字来自该节目的主持人蒙提·霍尔(Monty Hall)。参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门可赢得该汽车,另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人开启剩下两扇门的其中一...原创 2019-07-05 23:41:27 · 8079 阅读 · 0 评论 -
线性判别分析(LDA)的一点见解
LDA的中文名字是线性判别分析,以前在机器学习课上老师留过作业,对西瓜书上的数据进行了一次LDA分类,详见博客:https://blog.csdn.net/macunshi/article/details/80756016,里面有详细的MATLAB代码,后来在实际的课题项目里也用到了LDA,发现对某些数据二分类的效果还是很不错的,现在复习这个知识,顺便写一下我对LDA的一些见解。(1)关于...原创 2019-07-04 12:33:31 · 493 阅读 · 1 评论 -
OpenCV之kmeans聚类(图像分割)
kmeans聚类是一个高效的非监督聚类方法,我们先来看看基本原理是什么。1.如果给一堆点进行二分类问题,在已有数据中随机抽取两个点或者随机新建两个点,分别记为A、B类重心。2.计算每一个点到这两个点的距离,将其标记为距离A、B中心较近的那一类,给所有点完成分类。3.计算A类点和B类点的新重心。4.重复2、3步骤,再次给所有点进行分类,分类后更新重心点。直到满足迭代停止条件。迭代...原创 2019-06-18 10:04:44 · 2667 阅读 · 0 评论 -
OpenCV之kNN
kNN就是k-Nearest Neighbour,属于比较简单的监督分类方法。说白了就是预测对象的最近的k个邻居进行投票,哪种多就属于哪一类。一般就是拿欧式距离来判断远近,k值一般为奇数个,改进的kNN还会对远近不同的邻居设置不同的投票权重,进而得到更准确的结果。虽然手动实现也比较简单,OpenCV中ml库里已有提供的KNearest_create(),直接拿来玩一玩。这里用的是二维...原创 2019-06-17 16:54:42 · 748 阅读 · 0 评论 -
梯度下降法 与 最速下降法 的区别
最速下降法与梯度下降法基本上是相同的,就是选择该点梯度的反向方向进行搜索。梯度下降法中并没有规定步长一定是多少,往往开始人为规定一个步长,然后根据实际情况逐渐缩小步长。而最速下降法的步长则是在求出梯度方向后,把步长变量带入式中,通过求取函数f()的最小值以获取在该点步长的最佳值。下面给出一个 最速下降法的一个例题:...原创 2019-03-10 20:01:12 · 3112 阅读 · 3 评论 -
SVM简单非线性分类,画出分类面与支持向量(MATLAB)
创造两类二维非线性可分点,使用SVM进行分类,同时画出支持向量和分类面,其实在二维的情况下就是个分界线,这个分类面并不是高维的,因为SVM的映射是个黑箱,画不出高维映射后的分类面。代码中调用了台湾大学林智仁教授的libsvm包,因为怕与MATLAB自带的SVM函数名重了,所以改成了libsvmtrain和libsvmpredict。libsvm 3.22版本的包可以到这里去下载解压后...原创 2019-02-03 16:21:29 · 7220 阅读 · 0 评论 -
基于贝叶斯的图像分割
研一上学期学习了模式识别课程,老师讲的不错,也确实学到了些知识,我非常享受搞懂一个知识点之后的乐趣。老师一共留了两个作业,一个作业是基于贝叶斯的图像分类,一个是利用SVM进行图像分类。在此呈现给大家。老师要求:已知来自于两类的像素灰度值和颜色rgb值,对新的一副图像中的Nemo鱼的像素点进行分割,采用基于贝叶斯决策的方法。贝叶斯公式大家都很熟悉了吧,要用它来做图像分类怎么实现呢?显然这是监...原创 2018-04-04 12:12:52 · 8089 阅读 · 11 评论 -
决策树—西瓜书课后题4.3—MATLAB代码
题目:编程实现基于信息熵进行划分选择的决策树算法,并为西瓜数据集3.0上(P84表4.3)中的数据生成一棵决策树;代码:clc;clear all;[num,txt]=xlsread('D:\机器学习\WaterMelon_3.0.xlsx');data=txt(2:end,[2:7,10]);[rows,cols] = size(data);for i=1:rows ...原创 2018-06-23 18:12:49 · 8242 阅读 · 12 评论 -
逻辑回归(logistics regression)
本文公式推导简单清晰,难点略过了,容易理解,请认真耐心看下去。我们先来看看线性回归(liner regression)问题。现在已知的是这儿有m个样本,比如是m个房子,每个样本具有n个特征属性,比如房子的面积、空间等,我们还知道每个样本的预测特性真实值,即所属label,比如房价,我们用向量Xi表示每个样本(一些课程里面常用xi表示样本向量,用X表示样本矩阵,本文这里使用Xi表示样本向量)...原创 2019-08-12 20:03:26 · 512 阅读 · 1 评论