R语言马氏距离判别法
没啥好解释的,就放个代码和运行结果吧
#数据准备
x1<-c(3,3,2,3,3,3,3,3,2,2,1,3,2,1,2,2,2,3,3,2,2,2,2,2)
x2<-c(28,45,55,55,50,70,75,80,50,35,40,50,35,50,40,45,25,40,50,70,70,45,25,25)
x3<-c(2,2,3,3,2,3,3,3,3,1,2,2,2,2,2,2,1,2,3,3,3,2,1,1)
x4<-c(10.4,22,16,14.5,17.5,16.7,12.7,20.2,13.5,18.2,25,15.4,26,22.5,16.5,16.4,30,17,14.5,20.2,17,18.4,24.8,40)
x5<-c(18,18,14,11,10,15,12,20,10,5,7,1.5,6,4,2,2.5,5.5,10,13,20,18,2.5,5,5.8)
x6<-c(7.5,11.5,14.5,12.5,15,14,9.5,17,12,15.5,12,13.5,19,10,15,10,15,12,10.5,16.5,15,10,15,16)
x7<-c(3,3,3,4,3,2,3,2,3,1,2,3,1,2,1,1,2,2,3,3,2,1,2,3)
y<-factor(c(rep('Collapse',9),rep('Stable',8),rep('Collapse',4),rep('Stable',3)),levels=c('Collapse', 'Stable'))
data<-data.frame(x1,x2,x3,x4,x5,x6,x7,y)
#划分训练集
train<-data[1:17,]
test<-data[18:24,1:7]
#挑选类别
d1<-subset(train,y=="Collapse")
dim(d1)
d2<-subset(train,y=="Stable")
dim(d2)
#计算马氏距离并判别
ma1<-mahalanobis(train[1:7],colMeans(d1[,1:7]),cov(d1[,1:7]))
ma2<-mahalanobis(train[1:7],colMeans(d2[,1:7]),cov(d2[,1:7]))
pre<-c()
for(i in 1:17)
{if(ma1[i]<ma2[i]) pre[i]<-'Collapse'else pre[i]<-'Stable'
}
#合并结果
distance1<-data.frame(ma1,ma2,true=train[,8],pre)
distance1
#测试集结果
ma3<-mahalanobis(test,colMeans(d1[,1:7]),cov(d1[,1:7]))
ma4<-mahalanobis(test,colMeans(d2[,1:7]),cov(d2[,1:7]))
pre<-c()
for(i in 1:7)
{if(ma3[i]<ma4[i]) pre[i]<-'Collapse'else pre[i]<-'Stable'
}
distance2<-data.frame(ma3,ma4,true=data[18:24,8],pre)
distance2
R语言马氏距离判别法相关推荐
- matlab求距离判别函数,马氏距离判别法matlab
-2.7137 -3.9604 2.两个总体协方差矩阵不相等 在MATLAB中mahal 计算马氏距离平方 d = mahal(Y,X) 输入:Y是要判别的 样本点,通常是矩阵Ymn X是已知总体的. ...
- R语言学习| 马氏距离mahanobis函数
1. 马氏距离定义 2. 源代码 输入mahanobis 即可得到代码: > mahalanobis function (x, center, cov, inverted = FALSE, .. ...
- 判别分析(1)——距离判别法
判别分析是多元统计分析的内容,其作用在分类确定的条件下,根据某一研究对象的各种特征的值来判断其归属于哪一类(即总体).实际上,这一类问题就是根据已有的样本数据与对应的类别,判断未知类别的数据属于哪一类 ...
- R语言:计算各种距离
R语言:计算各种距离 MATLAB 版本的 http://blog.csdn.net/sinat_26917383/article/details/52101425 PYTHON版本的 http:// ...
- 关于判别分析的学习-距离判别法
关于判别分析的学习-距离判别法 距离判别法 距离判别法的基本思想是依据样品x和总体G的距离来判断样品所属的总体. 所以很显然的是我们需要首先定义一个距离函数,来表示样本和总体的距离. 其实很容易首先去 ...
- R语言--计算各种距离
MATLAB 版本的 http://blog.csdn.net/sinat_26917383/article/details/52101425 PYTHON版本的 http://book.2cto.c ...
- metric learning -- 马氏距离与欧氏距离
一 基本概念 方差:(variance)是在概率论和统计方差衡量随机变量或一组数据时离散程度的度量.概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度.统计中的方差(样本方差)是每个样 ...
- RX异常点检测算法(马氏距离)
异常检测算法目的在于从影像中将目标信息(异常信息)从影响背景和噪声中分离出来.RX异常检测算法为一种局部目标检测算法,算法的监测窗口包括目标窗口和背景窗口,且后者远大于前者.RX算法假设数据空间白化且 ...
- 目标跟踪:Deepsort--卡尔曼滤波、匈牙利匹配、马氏距离、欧氏距离、级联匹配、reid
本篇文章供自己学习回顾,其中错误希望指出! 先把目标跟踪中涉及到的名词抛出来: 1.卡尔曼滤波. 2.匈牙利匹配:https://blog.csdn.net/DeepCBW/article/detai ...
最新文章
- 机器学习处理流程、特征工程,模型设计实例
- 一场科技盛宴,一次“盈”满天下 安创成长营五期Demo Day完美收官
- QtCreater的安装路径
- 再次修订后的版本。。。。。。1.0(发布版,射线求交三角形)
- linux分区知识,Linux硬盘分区知识
- SQLite 表达式(http://www.w3cschool.cc/sqlite/sqlite-expressions.html)
- CodeForces - 1364C Ehab and Prefix MEX(贪心+构造)
- ref:下一个项目为什么要用 SLF4J
- maven 本地包依赖包打进jar
- flowable实战(七)flowable核心数据库表清单
- bootstrap 模态框日期控件datepicker被遮住问题的解决
- python标准化_数据标准化与Python实现
- django复习笔记2:models
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_03-vuejs研究-vuejs基础-入门程序...
- python get 函数-python的__get__、__set__、__delete__(1)
- ssm 竞赛管理系统
- 西电网络攻防大赛--渗透测试第三题
- 如何在线将mov格式转换成mp4视频
- 【可视化分析】雷达图
- BIG-ENDIAN VS LITTLE-ENDIAN