R语言——实验5-聚类分析
- 针对课件中的例子自己实现k-means算法
- 调用R语言自带kmeans()对给定数据集表示的文档进行聚类。
- 给定数据集:

a) 数据代表的是文本信息。
b) 第一行代表词语,由于保密原因,词语已经被转意。第一列代表了文本的编号。
c) 红框中的数字为对应词的词频。
共113个样本,用K-Means算法将样本分为8类。
1、针对课件中的例子自己实现k-means算法
rm(list=ls())
#导入数据 id<-c(1:8)
x<-c(1,2,1,2,4,5,4,5)
y<-c(1,1,2,2,3,3,4,4)
inputdata<-data.frame(id,x,y) #计算距离函数
cal_distance<-function(x1,y1,x2,y2){
dis=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)
dis=sqrt(dis)
return(dis)
} #假定随机选择的两个对象,如序号1和序号3当作初始点
center1=matrix(c(inputdata[1,2],inputdata[1,3]))
center2=matrix(c(inputdata[3,2],inputdata[3,3])) #一开始两个簇都是空的
cu1<-c()
cu2<-c() for(time in 1:5)
{
#遍历每一个点
for(i in 1:length(inputdata$id))
{
distance1=cal_distance(inputdata$x[i],inputdata$y[i],center1[1],center1[2])
distance2=cal_distance(inputdata$x[i],inputdata$y[i],center2[1],center2[2])
if(distance1<=distance2)
{
cu1<-c(cu1,i)
}
else
{
cu2<-c(cu2,i)
}
} #更新簇1的质心
sx=0
sy=0
for(i in 1:length(cu1))
{
sx=sx+inputdata$x[cu1[i]]
sy=sy+inputdata$y[cu1[i]]
}
center1[1]=sx*1.0/length(cu1)
center1[2]=sy*1.0/length(cu1) #更新簇2的质心
sx=0
sy=0
for(i in 1:length(cu2))
{
sx=sx+inputdata$x[cu2[i]]
sy=sy+inputdata$y[cu2[i]]
}
if(center2[1]==sx*1.0/length(cu2)&¢er2[2]==sy*1.0/length(cu2))
{
break
}
center2[1]=sx*1.0/length(cu2)
center2[2]=sy*1.0/length(cu2)
cu1<-c()
cu2<-c()
} cat("簇1质心: ",center1[1]," ",center1[2])
print("簇1包含的元素有: ")
for(i in 1:length(cu1))
{
print(cu1[i])
}
print("")
cat("簇2质心: ",center2[1]," ",center2[2])
print("")
print("簇1包含的元素有: ")
for(i in 1:length(cu2))
{
print(cu2[i])
}

2、 调用R语言自带kmeans()对给定数据集表示的文档进行聚类。
rm(list=ls())
setwd("C:/Users/Administrator/Desktop/R语言与数据挖掘作业/实验5-聚类分析")
data = read.table("data_cluster.txt")
kc <- kmeans(data, 8) #分类模型训练
print(kc)
#fitted(kc) #查看具体分类情况
#table(data$Species, data$cluster)#查看分类概括
R语言——实验5-聚类分析的更多相关文章
- R语言——实验4-人工神经网络
带包实现: rm(list=ls()) setwd("C:/Users/Administrator/Desktop/R语言与数据挖掘作业/实验4-人工神经网络") Data=rea ...
- R语言- 实验报告 - 利用R语言脚本与Java相互调用
一. 实训内容 利用R语言对Java项目程序进行调用,本实验包括利用R语言对java的.java文件进行编译和执行输出. 在Java中调用R语言程序.本实验通过eclipse编写Java程序的方式,调 ...
- R语言简单实现聚类分析计算与分析(基于系统聚类法)
聚类分析计算与分析(基于系统聚类法) 下面以一个具体的例子来实现实证分析.2008年我国其中31个省.市和自治区的农村居民家庭平均每人全年消费性支出. 根据原始数据对我国省份进行归类统计. 原始数据如 ...
- R语言 实验三 数据探索和预处理
计算缺失值个数 计算缺失率 简单统计量:计算最值 箱形图分析 分布分析:画出频率直方图 统计量分析:对于连续属性值,求出均值以及标准差 缺失值处理:删除法 去除 ...
- 社交网络分析的 R 基础:(一)初探 R 语言
写在前面 3 年的硕士生涯一转眼就过去了,和社交网络也打了很长时间交道.最近突然想给自己挖个坑,想给这 3 年写个总结,画上一个句号.回想当时学习 R 语言时也是非常戏剧性的,开始科研生活时到处发邮件 ...
- 用R语言对NIPS会议文档进行聚类分析
一.用R语言建立文档矩阵 (这里我选用的是R x64 3.2.2) (这里我取的是04年NIPS共计207篇文档做分析,其中文档内容已将开头的作者名和最后的参考文献进行过滤处理) ##1.Data I ...
- 实验的方差分析(R语言)
实验设计与数据处理(大数据分析B中也用到F分布,故总结一下,加深印象)第3课小结--实验的方差分析(one-way analysis of variance) 概述 实验结果\(S\)受多个因素\(A ...
- 独立成分分析(ICA)的模拟实验(R语言)
本笔记是ESL14.7节图14.42的模拟过程.第一部分将以ProDenICA法为例试图介绍ICA的整个计算过程:第二部分将比较ProDenICA.FastICA以及KernelICA这种方法,试图重 ...
- 数据分析与R语言
数据结构 创建向量和矩阵 函数c(), length(), mode(), rbind(), cbind() 求平均值,和,连乘,最值,方差,标准差 函数mean(), sum(), min(), m ...
随机推荐
- 【HDOJ3861】【Tarjan缩点+最小路径覆盖】
http://acm.hdu.edu.cn/showproblem.php?pid=3861 The King’s Problem Time Limit: 2000/1000 MS (Java/Oth ...
- 监控页面后退前进,浏览器文档加载事件之pageshow、pagehide
https://www.cnblogs.com/milo-wjh/p/6811868.html http://www.runoob.com/jsref/event-onpageshow.html on ...
- 鸟哥的linux私房菜第4版--自学笔记
-----------------------------------第一章 intel芯片架构 PS:升级电脑还得看看主板是不是适合CPU,主板适合CPU的类型是有限的PS: 现在已经没有北桥了,已 ...
- Java解析property文件(和静哥说的,SQL执行限定时间写在xml中,增加扩展,在不改源代码基础上)
在Java项目中一些配置参数保存在Property文件中,这样能保证不修改原代码直接修改Property文件. 简单的很,就是在java文件中读取外界的properyt配置文件 PropertyPar ...
- photoshop 笔记
替换颜色 (图像)—(调整)—(替换颜色)—点下你想换掉的绿色----拖动下方的滑 块—(色相)拖到最大—(饱合度)调到最小----(明度)调到最大 OK 发现对你不想变色的图像稍微有点影响,但只是一 ...
- IntelliJ IDEA 快捷键说明大全(中英对照、带图示详解)
因为觉得网络上的 idea 快捷键不够详尽,所以特别编写了此篇文章,方便大家使用 idea O(∩_∩)O~ 其中的英文说明来自于 idea 的官网资料,中文说明主要来自于自己的领会和理解,英文说明只 ...
- 06机器学习实战之SVM
对偶的概念 https://blog.csdn.net/qq_34531825/article/details/52872819?locationNum=7&fps=1 拉格朗日乘子法.KKT ...
- 原码,反码与补码的概念以及Java中数的存储方式
*原码,反码,补码必须满8位,不足在前填0: 1,原码:用符号位和数值位表示一个带符号的数 + -> 0 - -> 1 表示数的范围-127~ ...
- [转]Java GC的原理
Java GC(garbage collection,垃圾收集,回收) GC是对JVM中的内存进行标记和回收,Sun公司的JDK用的虚拟机都是HotSpot 对象化的实例是放在heap堆内存中的,这里 ...
- Nunjucks:Mozilla 开发的 JavaScript 模板引擎
Nunjucks 中文网站:https://nunjucks.bootcss.com/