楼主: frrrrrr
1318 3

[作业] 请问各位大神,如何用R来编写一个二分Kmeans的程序? [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

小学生

64%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
63 点
帖子
2
精华
0
在线时间
14 小时
注册时间
2019-5-17
最后登录
2019-7-24

楼主
frrrrrr 发表于 2019-5-17 23:35:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请问这一程序如何编写?谢谢大家了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:kmeans means mean 如何用 ans

沙发
3494703591 发表于 2019-5-18 20:48:12
同问啊啊啊啊

藤椅
zhou1_20 发表于 2019-5-19 09:29:12
  1. # 自编kmeans函数
  2. kclus <- function(x, y, nclus, random.seed=123) {
  3.   set.seed(random.seed)
  4.   xcen <- runif(n = nclus, min = min(x), max = max(x))   
  5.   ycen <- runif(n = nclus, min = min(y), max = max(y))
  6.   data <- data.frame(xval = x, yval = y, clus = NA)
  7.   clus <- data.frame(name = 1:nclus, xcen = xcen, ycen = ycen)
  8.   finish <- FALSE
  9.   while(finish == FALSE) {
  10.     for(i in 1:length(x)) {
  11.       dist <- sqrt((x[i]-clus$xcen)^2 + (y[i]-clus$ycen)^2)
  12.       data$clus[i] <- which.min(dist)
  13.     }
  14.     xcen_old <- clus$xcen
  15.     ycen_old <- clus$ycen
  16.     for(i in 1:nclus) {
  17.       clus[i,2] <- mean(subset(data$xval, data$clus == i))
  18.       clus[i,3] <- mean(subset(data$yval, data$clus == i))
  19.     }
  20.     if(identical(xcen_old, clus$xcen) & identical(ycen_old, clus$ycen)) finish <- TRUE
  21.   }
  22.   data
  23. }
  24. x <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2),
  25.            matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2))
  26. colnames(x) <- c("x", "y")
  27. #内置函数
  28. cl <- kmeans(x, 2)
  29. cl$centers
  30. cluster <- kclus(x[,'x'], x[,'y'], 2)
  31. cl2 <- aggregate(.~clus, cluster, mean)
  32. cl2
  33. plot(x, col = cl$cluster)
  34. points(cl$centers, col = 'blue', pch = 8, cex = 2)
  35. points(cl2$xval,cl2$yval,pch=16,col = 'green',cex=1)
  36. legend('topleft',c('内置函数','自编函数'),pch = c(8,16),
  37.        col = c('blue','green'))
复制代码
Rplot.png
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
Sunknownay + 5 + 5 + 5 精彩帖子
cheetahfly + 30 + 2 + 2 + 2 精彩帖子

总评分: 论坛币 + 30  学术水平 + 7  热心指数 + 7  信用等级 + 7   查看全部评分

板凳
frrrrrr 发表于 2019-5-22 09:24:20
zhou1_20 发表于 2019-5-19 09:29
您好,您这个应该是自编的kmeans函数吧,请问二分kmeans函数应该怎么编呢?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 10:02