那就從k-means開始吧
對于機器學習的新手小白來說,k-means算法應該都會接觸到吧。傳統(tǒng)的k-means算法是一個硬聚類(因為要指定k這個參數(shù)啦)算法。這里利用百度的解釋
它是數(shù)據(jù)點到原型的某種距離作為優(yōu)化的目標函數(shù),利用函數(shù)求極值的方法得到迭代運算的調整規(guī)則。K-means算法以歐式距離作為相似度測度,它是求對應某一初始聚類中心向量V最優(yōu)分類,使得評價指標J最小。算法采用誤差平方和準則函數(shù)作為聚類準則函數(shù)。
看上去好難懂,實際上任務就是要聚類,然后將相關的點聚成一堆嘛。這里我們可以給出k-means的核心公式
這里可以看到,實際上就是計算每個樣本點簇中心的距離,然后判斷出到哪個簇中心距離最短,然后分給那個簇。然后下次迭代時,簇中心就按照新分配的點重新進行計算了,然后所有的點再同樣計算樣本點到簇中心的距離,重新分配到不同的簇中。所以這樣不斷迭代下去,就能夠收斂了,得到最后的聚類效果。
加上“核”?那就成了Kernel k-means
“核”是什么
核函數(shù)的方法已經(jīng)被提出很久了,也得到了很多的推廣應用。很多算法參進了核函數(shù),就變得有趣得多。核函數(shù)通常與SVM經(jīng)常結合在一起進行使用??偟膩碚f,核函數(shù),就是將輸入空間,映射到高維的特征空間。然后再在高維的數(shù)據(jù)同看進行數(shù)據(jù)處理。這種映射的話,是非線性變換的,這也才能能夠將輸入空間映射出不同特征的高維空間。
當然,要給出這種非線性運算的確切算法,是很困難的。所以當我們的現(xiàn)實運算算法求解時候只用到了樣本點的內(nèi)積運算時候,而在低維輸入空間中,我們有能