我知道k-means是無監督的,用於聚類等,而k-NN是有監督的。但是我想知道兩者之間的具體區別嗎?
我知道k-means是無監督的,用於聚類等,而k-NN是有監督的。但是我想知道兩者之間的具體區別嗎?
這些是完全不同的方法。它們名稱中都帶有字母K的事實是一個巧合。
K-均值是一種聚類算法,試圖將一組點劃分為K個集合(簇),以使每個群集中的點趨於彼此靠近。它是無監督的,因為這些點沒有外部分類。
K最近鄰是一種分類(或回歸)算法,為了確定點的分類,將K個最近點的分類。之所以受到監督,是因為您試圖基於已知的其他點分類來對點進行分類。
答案中的按位指出,k-means是一種聚類算法。如果涉及k最近鄰(k-NN),則該術語有點模糊:
在分類的上下文中,它是一種分類算法,如前面提到的答案
通常是一個問題,為此存在各種解決方案(算法)
因此,在第一種情況下,說“ k-NN分類器”實際上可以表示解決k-NN問題的各種底層具體算法,並且將其結果解釋為分類目的。
這些是兩種不同的事物,但您可能會發現k均值算法是解決k NN問題的各種可能方法之一(Marius Muja和David G. Lowe,“具有自動算法配置的快速近似最近鄰居”,在國際計算機視覺理論與應用會議(VISAPP'09),2009年 PDF)
您可以有一個監督的k均值。您可以根據標記的數據構建質心(如k均值)。沒有什麼可以阻止你。如果您想改善這一點,歐幾里德空間和歐幾里德距離可能無法為您提供最佳結果。您將需要選擇您的空間(例如,可以是黎曼空間)並定義點之間的距離(甚至定義一個“點”)。最後兩個是研究主題,它們還取決於您擁有的數據(信號)的類型(屬性)。
K-means可以為鄰居節點創建集群信息,而KNN找不到給定鄰居節點的集群。
k均值可用作在實際分類階段部署knn之前的訓練階段。K表示創建由屬於每個類別的樣本的質心和類別標籤表示的類別。knn使用這些參數以及k號對一個看不見的新樣本進行分類,並將其分配給由K均值算法創建的k類之一