机器学习
一窝小猪仔
邮箱cifeixiang@163.com
展开
-
KNN分类算法原理及其Matlab实现
KNN算法原理K近邻算法是一种简单的监督学习算法。对于给定测试样本,直接计算该样本和训练集的距离,将距离最近的k个“邻居”点的类别作为参考,作为预测结果返回。测试数据测试数据来自林智仁的分类任务数据集,链接:(https://www.csie.ntu.edu.tw/~cjlin/)代码matlab版本:matlab R2017afunction KNN()clear all;...原创 2018-11-09 21:40:10 · 10359 阅读 · 17 评论 -
K-means聚类matlab实现
K-meanskmeans用贪心策略,能十分简单有效的聚类,但是k的选取会影响聚类效果。聚类效果初始数据集聚类之后,红色*是聚类中心代码function kmeans()clear all;clc;k=3;%k为聚类个数x = 0.8 + sqrt(0.01) * randn(100,2); %随机生成数据集y = 0.2 + sqrt(0.02) * randn(100...原创 2018-11-09 23:19:55 · 5664 阅读 · 2 评论 -
朴素贝叶斯原理(naive bayes)及其matlab代码
朴素贝叶斯原理贝叶斯决策以概率决策为基础。在假设错分代价相同的情况下,最小化错误率可以等价的看作最大化后验概率,即是 max P(c|x)=P(c )P(x|c)/P(x).朴素贝叶斯假设属性之间都是互相独立的,则判别准则可以看作:Hnb(x)=argmax P(c )*(P(x|c))P(**x|**c)=P(x1|c)P(x2|c)*P(x1|c)…P(xi...原创 2018-11-10 15:17:01 · 6933 阅读 · 6 评论 -
神经网络-感知机原理及其matlab代码实现二分类
感知机简介感知机是最简单的神经网络,结构如下图所示: 感知机由输入层和输出层组成,输入层可以有多个,输入的结果等于每个输入神经元和权值的乘积xw的和:y=x1w1+x2w2-θ其中θ可以固定为-1,因此感知机通过不断训练来优化权值感知机用于分类如图,分类的目的是找到一个直线(超平面)将两个类别分开,感知机通过不断训练寻找合适的直线来分类,但是只适用于线性可分问题。matlab代码...原创 2018-11-12 15:09:22 · 3915 阅读 · 1 评论 -
BP神经网络实现分类问题(python)
一些代码解释python版本:3.6梯度更新下面的代码 是对输出层和隐层的梯度计算,具体可参考周志华机器学习103页梯度更新公式 for i in range(self.outputn):#计算输出层的梯度 y=self.o[i] g[i]=y*(1-y)*(n[i]-y) for i in ran...原创 2018-11-14 20:06:12 · 14786 阅读 · 19 评论 -
决策树matlab实现二分类或者多分类
代码解释maketree函数递归建立树tree=struct(‘isnode’,1,‘a’,0.0,‘mark’,0.0,‘child’,{}) 所有分支递归的存在child{}中函数gan(D)计算D的信息率代码可以自动适应不同的分类标签和类别个数代码function tree=maketree(D,a) tree=struct('isnode',1,'a',0.0,'mark',...原创 2018-11-16 17:41:50 · 10438 阅读 · 7 评论 -
随机森林原理及其用于分类问题的matlab实现
随机森林随机森林是多个决策树的集成学习,每个决策树用bagging的方法选数据集,并且在选择最佳属性划分的时候随机划分一些属性进行分类,比单个分类器效果更好,泛化能力更强。代码解释1.用结构体的嵌套实现树的结构。2.makerandomtree递归的创建树。3.可自动适应不同的类别标签,不同的属性个数和不同的类别个数。4.函数ent(D)返回D的信息熵。代 码树的主体:f...原创 2018-11-16 22:03:33 · 14879 阅读 · 14 评论 -
Adaboost集成学习方法用于二分类(基于感知机)
Adaboost原理开始时,算法为每个训练样本分配相同的权值,然后用弱分类器进行训练,把错分的样本对应得权值增加,对分的样本权值减小或者不变,再把权值归一化,并记录这个分类器的总错误率。如此迭代,最后将多个弱分类器进行有权值(错误率)的集成代码function adaboost()clc;clear all;Mc=20;%弱分类器的个数M = importdata('D:\毕业设计...原创 2018-11-19 23:54:21 · 1009 阅读 · 0 评论