Saya membaca buku "Machine learning with Spark" oleh Nick Pentreath, dan di halaman 224-225 penulis membahas tentang penggunaan K-means sebagai bentuk pengurangan dimensionalitas.
Saya belum pernah melihat pengurangan dimensi seperti ini, apakah ada nama atau / dan berguna untuk bentuk data tertentu ?
Saya mengutip buku yang menggambarkan algoritma:
Asumsikan bahwa kita mengelompokkan vektor fitur dimensi tinggi kami menggunakan model pengelompokan K-means, dengan k cluster. Hasilnya adalah satu set pusat k cluster.
Kami dapat mewakili setiap titik data asli kami dalam hal seberapa jauh dari masing-masing pusat klaster ini. Artinya, kita bisa menghitung jarak dari titik data ke setiap pusat cluster. Hasilnya adalah seperangkat jarak k untuk setiap titik data.
Jarak k ini dapat membentuk vektor dimensi baru k. Kami sekarang dapat merepresentasikan data asli kami sebagai vektor baru dengan dimensi lebih rendah, relatif terhadap dimensi fitur asli.
Penulis menyarankan jarak Gaussian.
Dengan 2 cluster untuk data 2 dimensi, saya memiliki yang berikut ini:
K-means:
Menerapkan algoritma dengan norma 2:
Menerapkan algoritma dengan jarak Gaussian (menerapkan dnorm (abs (z)):
Kode R untuk gambar sebelumnya:
set.seed(1)
N1 = 1000
N2 = 500
z1 = rnorm(N1) + 1i * rnorm(N1)
z2 = rnorm(N2, 2, 0.5) + 1i * rnorm(N2, 2, 2)
z = c(z1, z2)
cl = kmeans(cbind(Re(z), Im(z)), centers = 2)
plot(z, col = cl$cluster)
z_center = function(k, cl) {
return(cl$centers[k,1] + 1i * cl$centers[k,2])
}
xlab = "distance to cluster center 1"
ylab = "distance to cluster center 2"
out_dist = cbind(abs(z - z_center(1, cl)), abs(z - z_center(2, cl)))
plot(out_dist, col = cl$cluster, xlab = xlab, ylab = ylab)
abline(a=0, b=1, col = "blue")
out_dist = cbind(dnorm(abs(z - z_center(1, cl))), dnorm(abs(z - z_center(2, cl))))
plot(out_dist, col = cl$cluster, xlab = xlab, ylab = ylab)
abline(a=0, b=1, col = "blue")
Jawaban:
Saya pikir ini adalah "metode centroid" (atau metode "centroidQR" yang terkait erat) yang dijelaskan oleh Park, Jeon dan Rosen . Dari abstrak tesis Moon-Gu Jeon :
Tampaknya juga setara dengan metode "beberapa kelompok" dari Analisis Faktor .
sumber
Lihat semua literatur tentang pengindeksan berbasis pivot .
Tapi Anda mendapat sedikit keuntungan dengan menggunakan k-means. Biasanya, Anda bisa menggunakan titik acak sebagai pivot. Jika Anda cukup memilih, semuanya tidak akan sama.
sumber
Ada beberapa cara untuk menggunakan pengelompokan sebagai pengurangan dimensi. Untuk K-means, Anda juga dapat memproyeksikan titik (secara orthogonal) ke ruang vektor (atau affine) yang dihasilkan oleh pusat.
sumber