我有一個維基頁面(棒球,曲棍球,音樂,足球)的語料庫,我通過tfidf
,然後通過kmeans
運行。在幾個問題開始後(你可以看到我以前的問題),我終於得到了一個KMeansModel
...但是當我嘗試predict
時,我一直得到相同的中心。這是因爲小數據集,還是因爲我正在比較多個單詞文檔與較少量的單詞(1-20)查詢?還是有什麼我做錯了?請參見下面的代碼:K-Means集羣偏向一箇中心
//Preprocessing of data includes splitting into words
//and removing words with only 1 or 2 characters
val corpus: RDD[Seq[String]]
val hashingTF = new HashingTF(100000)
val tf = hashingTF.transform(corpus)
val idf = new IDF().fit(tf)
val tfidf = idf.transform(tf).cache
val kMeansModel = KMeans.train(tfidf, 3, 10)
val queryTf = hashingTF.transform(List("music"))
val queryTfidf = idf.transform(queryTf)
kMeansModel.predict(queryTfidf) //Always the same, no matter the term supplied
這個問題似乎有點相關this one
謝謝!我今晚試試這些建議。 –
@JustinPihony它有用嗎? – zero323