如何利用matlab求r型聚类分析

Python019

如何利用matlab求r型聚类分析,第1张

本文重点是展示如何用Matlab来进行聚类分析。如果有需要解答的问题请留言,笔者会尽其所能地回答。

内容

展示如何使用MATLAB进行聚类分析

生成随机二维分布图形,三个中心

K均值聚类

分层聚类

重新调用K均值法

将分类的结果展示出来

运用高斯混合分布模型进行聚类分析

通过AIC准则寻找最优的分类数

展示如何使用MATLAB进行聚类分析

分别运用分层聚类、K均值聚类以及高斯混合模型来进行分析,然后比较三者的结果

生成随机二维分布图形,三个中心

% 使用高斯分布(正态分布)

% 随机生成3个中心以及标准差

s = rng(5,'v5normal')

mu = round((rand(3,2)-0.5)*19)+1

sigma = round(rand(3,2)*40)/10+1

X = [mvnrnd(mu(1,:),sigma(1,:),200)...

mvnrnd(mu(2,:),sigma(2,:),300)...

mvnrnd(mu(3,:),sigma(3,:),400)]

% 作图

P1 = figureclf

scatter(X(:,1),X(:,2),10,'ro')

title('研究样本散点分布图')

K均值聚类

% 距离用传统欧式距离,分成两类

[cidx2,cmeans2,sumd2,D2] = kmeans(X,2,'dist','sqEuclidean')

P2 = figureclf

[silh2,h2] = silhouette(X,cidx2,'sqeuclidean')

从轮廓图上面看,第二类结果比较好,但是第一类有部分数据表现不佳。有相当部分的点落在0.8以下。

分层聚类

eucD = pdist(X,'euclidean')

clustTreeEuc = linkage(eucD,'average')

cophenet(clustTreeEuc,eucD)

P3 = figureclf

[h,nodes] = dendrogram(clustTreeEuc,20)

set(gca,'TickDir','out','TickLength',[.002 0],'XTickLabel',[])

可以选择dendrogram显示的结点数目,这里选择20 。结果显示可能可以分成三类

重新调用K均值法

改为分成三类

[cidx3,cmeans3,sumd3,D3] = kmeans(X,3,'dist','sqEuclidean')

P4 = figureclf

[silh3,h3] = silhouette(X,cidx3,'sqeuclidean')

图上看,比前面的结果略有改善。

将分类的结果展示出来

P5 = figureclf

ptsymb = {'bo','ro','go',',mo','c+'}

MarkFace = {[0 0 1],[.8 0 0],[0 .5 0]}

hold on

for i =1:3

clust = find(cidx3 == i)

plot(X(clust,1),X(clust,2),ptsymb{i},'MarkerSize',3,'MarkerFace',MarkFace{i},'MarkerEdgeColor','black')

plot(cmeans3(i,1),cmeans3(i,2),ptsymb{i},'MarkerSize',10,'MarkerFace',MarkFace{i})

end

hold off

运用高斯混合分布模型进行聚类分析

分别用分布图、热能图和概率图展示结果 等高线

% 等高线

options = statset('Display','off')

gm = gmdistribution.fit(X,3,'Options',options)

P6 = figureclf

scatter(X(:,1),X(:,2),10,'ro')

hold on

ezcontour(@(x,y) pdf(gm,[x,y]),[-15 15],[-15 10])

hold off

P7 = figureclf

scatter(X(:,1),X(:,2),10,'ro')

hold on

ezsurf(@(x,y) pdf(gm,[x,y]),[-15 15],[-15 10])

hold off

view(33,24)

热能图

cluster1 = (cidx3 == 1)

cluster3 = (cidx3 == 2)

% 通过观察,K均值方法的第二类是gm的第三类

cluster2 = (cidx3 == 3)

% 计算分类概率

P = posterior(gm,X)

P8 = figureclf

plot3(X(cluster1,1),X(cluster1,2),P(cluster1,1),'r.')

grid onhold on

plot3(X(cluster2,1),X(cluster2,2),P(cluster2,2),'bo')

plot3(X(cluster3,1),X(cluster3,2),P(cluster3,3),'g*')

legend('第 1 类','第 2 类','第 3 类','Location','NW')

clrmap = jet(80)colormap(clrmap(9:72,:))

ylabel(colorbar,'Component 1 Posterior Probability')

view(-45,20)

% 第三类点部分概率值较低,可能需要其他数据来进行分析。

% 概率图

P9 = figureclf

[~,order] = sort(P(:,1))

plot(1:size(X,1),P(order,1),'r-',1:size(X,1),P(order,2),'b-',1:size(X,1),P(order,3),'y-')

legend({'Cluster 1 Score' 'Cluster 2 Score' 'Cluster 3 Score'},'location','NW')

ylabel('Cluster Membership Score')

xlabel('Point Ranking')

通过AIC准则寻找最优的分类数

高斯混合模型法的最大好处是给出分类好坏的标准

AIC = zeros(1,4)

NlogL = AIC

GM = cell(1,4)

for k = 1:4

GM{k} = gmdistribution.fit(X,k)

AIC(k)= GM{k}.AIC

NlogL(k) = GM{k}.NlogL

end

[minAIC,numComponents] = min(AIC)

按AIC准则给出的最优分类数为: 3 对应的AIC值为: 8647.63

后记

(1)pluskid指出K均值算法的初值对结果很重要,但是在运行时还没有发现类似的结果。也许Mathworks对该算法进行过优化。有时间会仔细研究下代码,将结果放上来。

转载仅供参考,版权属于原作者

开始→运行(cmd)命令大全(绝对经典)

CMD运行指令

开始→运行→CMD→键入以下命令即可:

gpedit.msc-----组策略 sndrec32-------录音机

Nslookup-------IP地址侦测器 explorer-------打开资源管理器

logoff---------注销命令 tsshutdn-------60秒倒计时关机命令

lusrmgr.msc----本机用户和组 services.msc---本地服务设置

oobe/msoobe /a----检查XP是否激活 notepad--------打开记事本

cleanmgr-------垃圾整理 net start messenger----开始信使服务

compmgmt.msc---计算机管理 net stop messenger-----停止信使服务

conf-----------启动netmeeting dvdplay--------DVD播放器

charmap--------启动字符映射表 diskmgmt.msc---磁盘管理实用程序

calc-----------启动计算器 dfrg.msc-------磁盘碎片整理程序

chkdsk.exe-----Chkdsk磁盘检查 devmgmt.msc--- 设备管理器

regsvr32 /u *.dll----停止dll文件运行 drwtsn32------ 系统医生

rononce -p ----15秒关机 dxdiag---------检查DirectX信息

regedt32-------注册表编辑器 Msconfig.exe---系统配置实用程序

rsop.msc-------组策略结果集 mem.exe--------显示内存使用情况

regedit.exe----注册表 winchat--------XP自带局域网聊天

progman--------程序管理器 winmsd---------系统信息

perfmon.msc----计算机性能监测程序 winver---------检查Windows版本

sfc /scannow-----扫描错误并复原 winipcfg-------IP配置

taskmgr-----任务管理器(2000/xp/2003) command--------cmd

fsmgmt.msc 共享文件夹 netstat -an----查看端口

osk 屏幕键盘 install.asp----修改注册网页

eventvwr.msc 时间查看器

secpol.msc 本地安全设置

services.msc 服务

2K

accwiz.exe >辅助工具向导

acsetups.exe >acs setup dcom server executable

actmovie.exe >直接显示安装工具

append.exe >允许程序打开制定目录中的数据

arp.exe >显示和更改计算机的ip与硬件物理地址的对应列表

at.exe >计划运行任务

atmadm.exe >调用管理器统计

attrib.exe >显示和更改文件和文件夹属性

autochk.exe >检测修复文件系统

autoconv.exe >在启动过程中自动转化系统

autofmt.exe >在启动过程中格式化进程

autolfn.exe >使用长文件名格式

bootok.exe >boot acceptance application for registry

bootvrfy.exe >通报启动成功

cacls.exe >显示和编辑acl

calc.exe >计算器

cdplayer.exe >cd播放器

change.exe >与终端服务器相关的查询

charmap.exe >字符映射表

chglogon.exe >启动或停用会话记录

chgport.exe >改变端口(终端服务)

chgusr.exe >改变用户(终端服务)

chkdsk.exe >磁盘检测程序

chkntfs.exe >磁盘检测程序

cidaemon.exe >组成ci文档服务

cipher.exe >在ntfs上显示或改变加密的文件或目录

cisvc.exe >索引内容

ckcnv.exe >变换cookie

cleanmgr.exe >磁盘清理

cliconfg.exe >sql客户网络工具

clipbrd.exe >剪贴簿查看器

clipsrv.exe >运行clipboard服务

clspack.exe >建立系统文件列表清单

cluster.exe >显示域的集群

_cmd_.exe >没什么好说的!

cmdl32.exe >自动下载连接管理

cmmgr32.exe >连接管理器

cmmon32.exe >连接管理器监视

cmstp.exe >连接管理器配置文件安装程序

comclust.exe >集群

comp.exe >比较两个文件和文件集的内容*

compact.exe >显示或改变ntfs分区上文件的压缩状态

conime.exe >ime控制台

control.exe >控制面板

convert.exe >转换文件系统到ntfs

convlog.exe >转换iis日志文件格式到ncsa格式

cprofile.exe >转换显示模式

cscript.exe >较本宿主版本

csrss.exe >客户服务器runtime进程

csvde.exe >日至格式转换程序

dbgtrace.exe >和terminal server相关

dcomcnfg.exe >dcom配置属性

dcphelp.exe >?

dcpromo.exe >ad安装向导

ddeshare.exe >dde共享

ddmprxy.exe >

debug.exe >就是debug啦!

dfrgfat.exe >fat分区磁盘碎片整理程序

dfrgntfs.exe >ntfs分区磁盘碎片整理程序

dfs_cmd_.exe >配置一个dfs树

dfsinit.exe >分布式文件系统初始化

dfssvc.exe >分布式文件系统服务器

diantz.exe >制作cab文件

diskperf.exe >磁盘性能计数器

dllhost.exe >所有com+应用软件的主进程

dllhst3g.exe >

dmadmin.exe >磁盘管理服务

dmremote.exe >磁盘管理服务的一部分

dns.exe >dns applications dns

doskey.exe >命令行创建宏

dosx.exe >dos扩展

dplaysvr.exe >直接运行帮助

drwatson.exe >华生医生错误检测

drwtsn32.exe >华生医生显示和配置管理

dtcsetup.exe >installs mdtc

dvdplay.exe >dvd播放

dxdiag.exe >direct-x诊断工具

edlin.exe >命令行的文本编辑器(历史悠久啊!)

edlin.exe >命令行的文本编辑器(历史悠久啊!)

esentutl.exe >ms数据库工具

eudcedit.exe >type造字程序

eventvwr.exe >事件查看器

evnt_cmd_.exe >event to trap translatorconfiguration tool

evntwin.exe >event to trap translator setup

exe2bin.exe >转换exe文件到二进制

expand.exe >解压缩

extrac32.exe >解cab工具

fastopen.exe >快速访问在内存中的硬盘文件

faxcover.exe >传真封面编辑

faxqueue.exe >显示传真队列

faxsend.exe >发送传真向导

faxsvc.exe >启动传真服务

fc.exe >比较两个文件的不同

find.exe >查找文件中的文本行

findstr.exe >查找文件中的行

finger.exe >一个用户并显示出统计结果

fixmapi.exe >修复mapi文件

flattemp.exe >允许或者禁用临时文件目录

fontview.exe >显示字体文件中的字体

forcedos.exe >forces a file to start in dos mode. 强制文件在dos模式下运行

freecell.exe >popular windows game 空当接龙

ftp.exe >file transfer protocol used to transfer files over a network conne

ction 就是ftp了

gdi.exe >graphic device interface 图形界面驱动

grovel.exe >

grpconv.exe >program manager group convertor 转换程序管理员组

help.exe >displays help for windows 2000 commands 显示帮助

hostname.exe >display hostname for machine. 显示机器的hostname

ie4uinit.exe >ie5 user install tool ie5用户安装工具

ieshwiz.exe >customize folder wizard 自定义文件夹向导

iexpress.exe >create and setup packages for install 穿件安装包

iisreset.exe >restart iis admin service 重启iis服务

internat.exe >keyboard language indicator applet 键盘语言指示器

ipconfig.exe >windows 2000 ip configuration. 察看ip配置

ipsecmon.exe >ip security monitor ip安全监视器

ipxroute.exe >ipx routing and source routing control program ipx路由和源路由

控制程序

irftp.exe >setup ftp for wireless communication 无线连接

ismserv.exe >intersite messaging service 安装或者删除service control manage

r中的服务

jdbgmgr.exe >microsoft debugger for java 4 java4的调试器

jetconv.exe >convert a jet engine database 转换jet engine数据库

jetpack.exe >compact jet database. 压缩jet数据库

jview.exe >command-line loader for java java的命令行装载者

krnl386.exe >core component for windows 2000 2000的核心组件

label.exe >change label for drives 改变驱动器的卷标

lcwiz.exe >license compliance wizard for local or remote systems. 许可证符合

向导

ldifde.exe >ldif cmd line manager ldif目录交换命令行管理

licmgr.exe >terminal server license manager 终端服务许可协议管理

lights.exe >display connection status lights 显示连接状况

llsmgr.exe >windows 2000 license manager 2000许可协议管理

llssrv.exe >start the license server 启动许可协议服务器

lnkstub.exe >

locator.exe >rpc locator 远程定位

lodctr.exe >load perfmon counters 调用性能计数

logoff.exe >log current user off. 注销用户

lpq.exe >displays status of a remote lpd queue 显示远端的lpd打印队列的状态,

显示被送到基于unix的服务器的打印任务

lpr.exe >send a print job to a network printer. 重定向打印任务到网络中的打印

机。通常用于unix客户打印机将打印任务发送给连接了打印设备的nt的打印机服务器。

lsass.exe >lsa executable and server dll 运行lsa和server的dll

lserver.exe >specifies the new dns domain for the default server 指定默认se

rver新的dns域

os2.exe >an os/2 warp server (os2 /o) os/2

os2srv.exe >an os/2 warp server os/2

os2ss.exe >an os/2 warp server os/2

osk.exe >on screen keyboard 屏幕键盘

packager.exe >windows 2000 packager manager 对象包装程序

pathping.exe >combination of ping and tracert 包含ping和tracert的程序

pax.exe >is a posix program and path names used as arguments must be specif

ied in posix format. use "//c/users/default" instead of "c:usersdefault."

启动便携式存档互换 (pax) 实用程序

pentnt.exe >used to check the pentium for the floating point division error

. 检查pentium的浮点错误

perfmon.exe >starts windows performance monitor 性能监视器

ping.exe >packet internet groper 验证与远程计算机的连接

posix.exe >used for backward compatibility with unix 用于兼容unix

print.exe >cmd line used to print files 打印文本文件或显示打印队列的内容。

progman.exe >program manager 程序管理器

proquota.exe >profile quota program

psxss.exe >posix subsystem application posix子系统应用程序

qappsrv.exe >displays the available application terminal servers on the net

work

在网络上显示终端服务器可用的程序

qprocess.exe >display information about processes local or remote 在本地或远

程显示进程的信息(需终端服务)

query.exe >query termserver user process and sessions 查询进程和对话

quser.exe >display information about a user logged on 显示用户登陆的信息(需

终端服务)

qwinsta.exe >display information about terminal sessions. 显示终端服务的信息

rasadmin.exe >start the remote access admin service 启动远程访问服务

rasautou.exe >creates a ras connection 建立一个ras连接

rasdial.exe >dial a connection 拨号连接

ras.exe >starts a ras connection 运行ras连接

rcp.exe >copies a file from and to a rcp service. 在 windows 2000 计算机和运

行远程外壳端口监控程序 rshd 的系统之间复制文件

rdpclip.exe >rdpclip allows you to copy and paste files between a terminal

session and client console session. 再终端和本地复制和粘贴文件

recover.exe >recovers readable information from a bad or defective disk 从坏

的或有缺陷的磁盘中恢复可读取的信息。

redir.exe >starts the redirector service 运行重定向服务

regedt32.exe >32-bit register service 32位注册服务

regini.exe >modify registry permissions from within a script 用脚本修改注册

许可

register.exe >register a program so it can have special execution character

istics. 注册包含特殊运行字符的程序

regsvc.exe >

regsvr32.exe >registers and unregister's dll's. as to how and where it regi

ster's them i dont know. 注册和反注册dll

regtrace.exe >options to tune debug options for applications failing to dum

p trace statements

trace 设置

regwiz.exe >registration wizard 注册向导

remrras.exe >

replace.exe >replace files 用源目录中的同名文件替换目标目录中的文件。

reset.exe >reset an active section 重置活动部分

rexec.exe >runs commands on remote hosts running the rexec service. 在运行

rexec 服务的远程计算机上运行命令。rexec 命令在执行指定命令前,验证远程计算机

上的用户名,只有安装了 tcp/ip 协议后才可以使用该命令。

risetup.exe >starts the remote installation service wizard. 运行远程安装向导

服务

route.exe >display or edit the current routing tables. 控制网络路由表

routemon.exe >no longer supported 不再支持了!

router.exe >router software that runs either on a dedicated dos or on an os

. 检查pentium的浮点错误

perfmon.exe >starts windows performance monitor 性能监视器

ping.exe >packet internet groper 验证与远程计算机的连接

posix.exe >used for backward compatibility with unix 用于兼容unix

print.exe >cmd line used to print files 打印文本文件或显示打印队列的内容。

progman.exe >program manager 程序管理器

proquota.exe >profile quota program

psxss.exe >posix subsystem application posix子系统应用程序

qappsrv.exe >displays the available application terminal servers on the net

work

在网络上显示终端服务器可用的程序

qprocess.exe >display information about processes local or remote 在本地或远

程显示进程的信息(需终端服务)

query.exe >query termserver user process and sessions 查询进程和对话

quser.exe >display information about a user logged on 显示用户登陆的信息(需

终端服务)

qwinsta.exe >display information about terminal sessions. 显示终端服务的信息

rasadmin.exe >start the remote access admin service 启动远程访问服务

rasautou.exe >creates a ras connection 建立一个ras连接

rasdial.exe >dial a connection 拨号连接

ras.exe >starts a ras connection 运行ras连接

rcp.exe >copies a file from and to a rcp service. 在 windows 2000 计算机和运

行远程外壳端口监控程序 rshd 的系统之间复制文件

rdpclip.exe >rdpclip allows you to copy and paste files between a terminal

session and client console session. 再终端和本地复制和粘贴文件

recover.exe >recovers readable information from a bad or defective disk 从坏

的或有缺陷的磁盘中恢复可读取的信息。

redir.exe >starts the redirector service 运行重定向服务

regedt32.exe >32-bit register service 32位注册服务

regini.exe >modify registry permissions from within a script 用脚本修改注册

许可

register.exe >register a program so it can have special execution character

istics. 注册包含特殊运行字符的程序

regsvc.exe >

regsvr32.exe >registers and unregister's dll's. as to how and where it regi

ster's them i dont know. 注册和反注册dll

regtrace.exe >options to tune debug options for applications failing to dum

p trace statements

trace 设置

regwiz.exe >registration wizard 注册向导

remrras.exe >

replace.exe >replace files 用源目录中的同名文件替换目标目录中的文件。

reset.exe >reset an active section 重置活动部分

rexec.exe >runs commands on remote hosts running the rexec service. 在运行

rexec 服务的远程计算机上运行命令。rexec 命令在执行指定命令前,验证远程计算机

上的用户名,只有安装了 tcp/ip 协议后才可以使用该命令。

risetup.exe >starts the remote installation service wizard. 运行远程安装向导

服务

route.exe >display or edit the current routing tables. 控制网络路由表

routemon.exe >no longer supported 不再支持了!

router.exe >router software that runs either on a dedicated dos or on an os

有关某个命令的详细信息,请键入 HELP 命令名

ASSOC显示或修改文件扩展名关联。

AT 计划在计算机上运行的命令和程序。

ATTRIB 显示或更改文件属性。

BREAK设置或清除扩展式 CTRL+C 检查。

CACLS显示或修改文件的访问控制列表(ACLs)。

CALL 从另一个批处理程序调用这一个。

CD 显示当前目录的名称或将其更改。

CHCP 显示或设置活动代码页数。

CHDIR显示当前目录的名称或将其更改。

CHKDSK 检查磁盘并显示状态报告。

CHKNTFS 显示或修改启动时间磁盘检查。

CLS 清除屏幕。

CMD 打开另一个 Windows 命令解释程序窗口。

COLOR设置默认控制台前景和背景颜色。

COMP 比较两个或两套文件的内容。

COMPACT 显示或更改 NTFS 分区上文件的压缩。

CONVERT 将 FAT 卷转换成 NTFS。您不能转换

当前驱动器。

COPY 将至少一个文件复制到另一个位置。

DATE 显示或设置日期。

DEL 删除至少一个文件。

DIR 显示一个目录中的文件和子目录。

DISKCOMP 比较两个软盘的内容。

DISKCOPY 将一个软盘的内容复制到另一个软盘。

DOSKEY 编辑命令行、调用 Windows 命令并创建宏。

ECHO 显示消息,或将命令回显打开或关上。

ENDLOCAL 结束批文件中环境更改的本地化。

ERASE删除至少一个文件。

EXIT 退出 CMD.EXE 程序(命令解释程序)。

FC 比较两个或两套文件,并显示

不同处。

FIND 在文件中搜索文字字符串。

FINDSTR 在文件中搜索字符串。

FOR 为一套文件中的每个文件运行一个指定的命令。

FORMAT 格式化磁盘,以便跟 Windows 使用。

FTYPE显示或修改用于文件扩展名关联的文件类型。

GOTO 将 Windows 命令解释程序指向批处理程序

中某个标明的行。

GRAFTABL 启用 Windows 来以图像模式显示

扩展字符集。

HELP 提供 Windows 命令的帮助信息。

IF 执行批处理程序中的条件性处理。

LABEL创建、更改或删除磁盘的卷标。

MD 创建目录。

MKDIR创建目录。

MODE 配置系统设备。

MORE 一次显示一个结果屏幕。

MOVE 将文件从一个目录移到另一个目录。

PATH 显示或设置可执行文件的搜索路径。

PAUSE暂停批文件的处理并显示消息。

POPD 还原 PUSHD 保存的当前目录的上一个值。

PRINT打印文本文件。

PROMPT 更改 Windows 命令提示符。

PUSHD保存当前目录,然后对其进行更改。

RD 删除目录。

RECOVER 从有问题的磁盘恢复可读信息。

REM 记录批文件或 CONFIG.SYS 中的注释。

REN 重命名文件。

RENAME 重命名文件。

REPLACE 替换文件。

RMDIR删除目录。

SET 显示、设置或删除 Windows 环境变量。

SETLOCAL 开始批文件中环境更改的本地化。

SHIFT更换批文件中可替换参数的位置。

SORT 对输入进行分类。

START启动另一个窗口来运行指定的程序或命令。

SUBST将路径跟一个驱动器号关联。

TIME 显示或设置系统时间。

TITLE设置 CMD.EXE 会话的窗口标题。

TREE 以图形模式显示驱动器或路径的目录结构。

TYPE 显示文本文件的内容。

VER 显示 Windows 版本。

VERIFY 告诉 Windows 是否验证文件是否已正确

写入磁盘。

VOL 显示磁盘卷标和序列号。

XCOPY复制文件和目录树。