(1)解決什麼問題?
knn是有監督的學習演算法,解決的是分類問題,也就是說,knn使用有分類標籤的資料集通過計算對新的資料進行分類**;
k-means是無監督學習,解決的是聚類問題,即訓練資料集沒有分類標籤,通過k-means演算法將資料集劃分為k類。
(2)k是什麼?
knn演算法的原理:
a、對於乙個待劃分類別的資料點,計算例項與資料集中其它點的距離
b、選出距離最近的k個點,
c、在這k個點中,出現次數最多的類別就是這個資料點的**分類。
k-means演算法的原理:
a、選取k個類的中心點,這些中心點一般是隨機選取的
b、將其他點按照距離劃分到這k個類中,並重新計算k類的中心點
c、重複上面的步驟,直到中心點不再發生變化,也可以指定最大迭代次數,迭代次數達到最大數時,即使中心點發生變化,也將停止迭代
所以,knn中的k是距離資料點最近的點的數量,k-means中的k是聚類的數量。
都會計算距離,並且會使用以下同樣的演算法:
a、歐式距離,例如:對於二維空間的計算公式為:
c、切比雪夫距離:
就是這兩個點座標數值差的絕對值的最大值,用數學表示就是:max(|x1-y1|,|x2-y2|)
Kmeans演算法與KNN演算法的區別
首先明確一點knn與kmeans的演算法的區別 1.knn演算法是分類演算法,分類演算法肯定是需要有學習語料,然後通過學習語料的學習之後的模板來匹配我們的測試語料集,將測試語料集合進行按照預先學習的語料模板來分類 2kmeans演算法是聚類演算法,聚類演算法與分類演算法最大的區別是聚類演算法沒有學習...
Kmeans演算法與KNN演算法的區別
kmeans演算法的缺陷 1.聚類中心的數量k需要事先給定,但在實際中這個k值的選定是非常難以進行估計的,很多時候,事先並不知道給定的資料集應該分成多少個類別才更合適。2.kmeans需要初始化聚類中心,不同的初始聚類中心可能導致完全不同的聚類效果。針對第2個缺陷,可以使用kmeans 演算法來解決...
Kmeans演算法與KNN演算法的區別
最近研究資料探勘的相關知識,總是搞混一些演算法之間的關聯,俗話說好記性不如爛筆頭,還是記下了以備不時之需。首先明確一點knn與kmeans的演算法的區別 1.knn演算法是分類演算法,分類演算法肯定是需要有學習語料,然後通過學習語料的學習之後的模板來匹配我們的測試語料集,將測試語料集合進行按照預先學...