データ分析のためのすべての古典的なアルゴリズムの主な問題は、実際の問題への適用性が低いことです。これは、クラスタリングタスクにも当てはまります。
実際には(そして科学的な問題でも)、混合型のデータをクラスター化する必要があります。たとえば、変数の半分が数値で、変数の半分がカテゴリである場合です。
これとは別に、これらのタスクは標準的な方法で解決されます(たとえば、純粋にカテゴリ別のデータの階層的クラスタリングに関する記事-https://habr.com/ru/company/otus/blog/461741/)。ただし、クラスタリングの問題は解決されます。混合データには、主に観測間の距離の計算の複雑さに関連するいくつかの問題があります。
理論の瞬間
既存のメソッドは、クラスターパッケージのデイジー(デイジー(メソッド= "gower"))関数を使用したGowerの距離計算を前提としています。
ただし、clustMixTypeパッケージの作成者によると、このメソッドは大量のデータを処理する場合には適用できず、パッケージに別のメソッドが実装されています。
実装されたクラスタリング手法の理論的基礎は、1999年にZ.Huangの研究で開発されました。カテゴリ変数を使用して大規模なデータセットをクラスタリングするためのk-meansアルゴリズムの拡張。Data Mining and Knowledge Discovery、2:283-304、1998。doi:10.1023 / A:1009769707641。これはk-prototypesメソッドと呼ばれ、次の距離式に基づいています。
どこ
実際、距離は、数値変数の差の2乗の合計と、カテゴリ変数内の不一致クラスの数の合計に、いくつかのパラメーターγを掛けて計算されます。
したがって、この方法をうまく適用するには、k(クラスターの数)とγ(カテゴリ変数の重要性。γ= 0の場合、距離は古典的なユークリッド距離に短縮されます)の2つの外部パラメーターが必要です。
練習に戻る
, (CollegeDistance AER). , :
score ( : )
fcollege ( : )
mcollege ( : )
urban ( : )
education ( : )
income ( : 25 000 ?)
#
library(tibble)
library(clustMixType)
library(AER)
data("CollegeDistance")
glimpse(CollegeDistance)
XX<-CollegeDistance[,c(3,4,5,7,10,12,13)] #
–
clus_2<-kproto(XX, k = 2) # k -
RStudio :
, , 0 , γ 84.15475 ( ). clus_2 :
clus_2$cluster # ,
clus_2$centers #
, , –
clus_2$size #
:
library(wesanderson)
par(mfrow=c(4,2))
clprofiles(clus_2, XX, col = wes_palette("Royal1", 2, type = "continuous"))
, :
-
-
-
- .
table(XX$income, clus_2$cluster)
, 482 1790 , – 883 1584 .
– γ ( γ ). lambdaest
lambdaest(XX, num.method = 1, fac.method = 1, outtype = "vector")
– γ
– γ
Es <- numeric(10)
for(i in 1:10){
kpres <- kproto(XX,lambda = c(0.01320599,3.03450559,4.21940823,2.79814318,0.18950893,0.31241193,2.43817959), k = i )
Es[i] <- kpres$tot.withinss
}
plot(1:10, Es, type = "b", ylab = "Objective Function", xlab = "# Clusters",
main = "Scree Plot")
, – 4 ( ; 6 9 – - ). :
clustMixTypeパッケージの開発者による元の記事:https://journal.r-project.org/archive/2018/RJ-2018-048/RJ-2018-048.pdf