Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Kmeans VS kmeans++ and ykmeans
@R for Marketing Research and Analytics
2015年11月24日(火)
太田 博三
K-means
• 文法:
• kmeans(x, centers, iter.max = 10, nstart = 1,
algorithm = c("Hartigan-Wong", "Lloyd", "Forgy",
"MacQueen")...
K-means
• K-means法の手順
① 事前にクラスタ数kと繰り返し回数nを決めておく。
② step1:クラスタの中心点を、対象データの中からランダムにk
個選び出す。
③ step2:データごとに各クラスタの中心点との距離を求め、最...
K-meansの例
require(graphics)
# a 2-dimensional example
x <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2),
matrix(rnorm(100,...
K-means++
• 文法:
• kmeanspp(data, k = 2, start = "random", iter.max = 100, nstart = 10, ...)
• Arguments
• data:an N ¥times...
K-means++
• K-means法の手順
• step1:対象データかの中から、クラスタの中心点をランダムに1
つ選び出す
• step2:それぞれのデータと選び出した中心点との距離を計算す
る
• step3:step2で求めた距離の二...
K-means++
• 用例
• install.packages("LICORS")
• library(LICORS)
• set.seed(1984)
• nn <- 100
• XX <- matrix(rnorm(nn), ncol ...
ykmeans
• 文法:
ykmeans (x, variable.names, target.name, k.list, n)
x:データフレーム
variable.names:クラスタリングの時の使う説明変数名
target.name :...
K-means++
• 「とりあえず100回くらい実行すれば安定するだろう」
• という仮定のもとに、100回実行して、一番多く分類され
たクラスタを採用している。
K-means++
• 用例2つ
#Examples1
• install.packages("ykmeans")
• library(ykmeans)
• data <- read.csv("data_ykmeans.csv", sep=",...
Próxima SlideShare
Cargando en…5
×

Kmeans vs kmeanspp_20151124

755 visualizaciones

Publicado el

Comparative studies

Publicado en: Datos y análisis
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Kmeans vs kmeanspp_20151124

  1. 1. Kmeans VS kmeans++ and ykmeans @R for Marketing Research and Analytics 2015年11月24日(火) 太田 博三
  2. 2. K-means • 文法: • kmeans(x, centers, iter.max = 10, nstart = 1, algorithm = c("Hartigan-Wong", "Lloyd", "Forgy", "MacQueen")) • centers:クラスターの数, iter.max: 繰り返しの最大値, • nstart: 初期中心を与える方法 • 引数algorithm:4種類 ※centersがクラスターの数の場合、初期中心値はランダムになります。
  3. 3. K-means • K-means法の手順 ① 事前にクラスタ数kと繰り返し回数nを決めておく。 ② step1:クラスタの中心点を、対象データの中からランダムにk 個選び出す。 ③ step2:データごとに各クラスタの中心点との距離を求め、最も 近くに中心点があるクラスタに割り当てる ④ step3:クラスタごとに、割り当てられたデータの平均値を求め、 新たな中心点として採用する。 ⑤ クラスタに割り当てるデータに変化がなくなる(=各クラスタの 中心点が定まる)まで、step2からstep3を繰り返す。ただし、繰 り返し数がnに達した場合はその時点で終了する。
  4. 4. K-meansの例 require(graphics) # a 2-dimensional example x <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2), matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2)) colnames(x) <- c("x", "y") (cl <- kmeans(x, 2)) plot(x, col = cl$cluster) points(cl$centers, col = 1:2, pch = 8, cex = 2)
  5. 5. K-means++ • 文法: • kmeanspp(data, k = 2, start = "random", iter.max = 100, nstart = 10, ...) • Arguments • data:an N ¥times d matrix, where N are the samples and d is the dimension of space. • k:number of clusters. • start:first cluster center to start with • iter.max:the maximum number of iterations allowed • nstart:how many random sets should be chosen? • ...:additional arguments passed to kmeans
  6. 6. K-means++ • K-means法の手順 • step1:対象データかの中から、クラスタの中心点をランダムに1 つ選び出す • step2:それぞれのデータと選び出した中心点との距離を計算す る • step3:step2で求めた距離の二乗に比例した確率で、データを1 つ選び出し、クラスタの中心点として採用する • 選び出したクラスタの中心点がk個になるまでstep2から3を繰り 返す。
  7. 7. K-means++ • 用例 • install.packages("LICORS") • library(LICORS) • set.seed(1984) • nn <- 100 • XX <- matrix(rnorm(nn), ncol = 2) • YY <- matrix(runif(length(XX) * 2, -1, 1), ncol = ncol(XX)) • ZZ <- rbind(XX, YY) • cluster_ZZ <- ykmeans(ZZ,, 3:6) • plot(ZZ, col = cluster_ZZ$cluster + 1, pch = 19)
  8. 8. ykmeans • 文法: ykmeans (x, variable.names, target.name, k.list, n) x:データフレーム variable.names:クラスタリングの時の使う説明変数名 target.name :クラスタ間で比較しようと思っている変数名 k.list:クラスタ数候補 n:試行回数
  9. 9. K-means++ • 「とりあえず100回くらい実行すれば安定するだろう」 • という仮定のもとに、100回実行して、一番多く分類され たクラスタを採用している。
  10. 10. K-means++ • 用例2つ #Examples1 • install.packages("ykmeans") • library(ykmeans) • data <- read.csv("data_ykmeans.csv", sep=",", header=T, row.names=1) • data.sc <- scale(data) #データを標準化(各変量の単位が異なる場合) • data.df <- as.data.frame(data.sc) • ykm <- ykmeans(data.df, paste0("x", 1:10), "y", 7:15, n=500) • #引数は、データフレーム、説明変数、比較する変数、クラスタ数候補、k- means試行回数 • table(ykm$cluster) • write.table(ykm$cluster, sep=",", "ykm.csv") #Examples2 • data(actData) • act.ykm <- ykmeans(actData, paste0("x",1:17),"y",3:6) • table(act.ykm$cluster)

×