Saya tidak memiliki pengalaman industri dalam penambangan data atau data besar sehingga akan senang mendengar Anda berbagi pengalaman.
Apakah orang benar-benar menjalankan k-means, PAM, CLARA, dll. Pada dataset yang sangat besar? Atau mereka hanya mengambil sampel secara acak? Jika mereka hanya mengambil sampel dataset, apakah hasilnya dapat diandalkan jika dataset tidak terdistribusi secara normal?
Dalam situasi praktis saat menjalankan algoritme ini, dapatkah kita memberi tahu berapa banyak iterasi yang biasanya diperlukan hingga konvergensi terjadi? Atau jumlah iterasi selalu bertambah dengan ukuran data?
Saya menanyakan hal ini karena saya sedang berpikir untuk mengembangkan pendekatan untuk menghentikan algoritma iteratif sebelum konvergensi, namun hasilnya masih dapat diterima. Saya pikir pantas untuk dicoba jika jumlah iterasi adalah, katakan lebih dari 1.000, sehingga kita dapat menghemat biaya dan waktu komputasi. Bagaimana menurut anda?
number of iterations always grow with the data size
Belum tentu.Jawaban:
K-means itu murah. Anda dapat menjalankannya untuk banyak iterasi.
Ada algoritma yang buruk (yang standar) dan algoritma yang baik. Untuk algoritme yang baik, iterasi yang lebih baru sering kali jauh lebih sedikit dari 1% dari iterasi pertama.
Implementasi sangat lambat. Jangan gunakan itu.
K-means pada data "besar" tidak ada. Karena hanya bekerja pada data vektor dimensi rendah. Anda tidak akan melebihi memori server modern dengan data tersebut. ya, data yang lebih besar ada - tetapi Anda tidak dapat menggunakan k-means di katakan sebulan data Twitter, karena itu tidak akan memberi Anda sesuatu yang berguna.
Dengan implementasi yang baik, pada server modern, set data terbesar yang dapat Anda temukan di mana k-means masih memberikan hasil yang bermanfaat mungkin membutuhkan kurang dari 1 menit untuk menghitung hingga konvergensi. Jadi mengapa repot memikirkan batas iterasi?
sumber