OpenCV官方文档 理解k - means聚类
理解k - means聚類
目標
在這一章中,我們將了解k - means聚類的概念,它是如何工作等。
理論
我們將這個處理是常用的一個例子。
t恤尺寸問題
考慮一個公司要發(fā)布一個新模型的t恤。 顯然他們將不得不制造模型滿足人們各種尺寸的大小不同。 所以公司的數(shù)據(jù)甚至€?身高和體重,并把它們放到圖,如下:
公司無法為所有的尺寸制作衣服。 相反,他們把人分為小,中和大,只生產(chǎn)這3個模型來適合所有的人的只存。 這種分組方式將把人分為分成三組,而我們可以通過k - means聚類算法提供最好的3個尺寸,這將滿足所有的人的需求。 不過如果數(shù)據(jù)顯示三個尺寸并不合適,那么聚類算法也可以進行更多更合適的分類,列如五類。 檢查下圖:
它是如何工作的呢?
這個算法是一個迭代的過程。 我們將解釋它一步一步的幫助下圖片。
考慮一組數(shù)據(jù)如下(你可以認為這是T恤問題)。 我們需要集群數(shù)據(jù)分成兩組。
步驟:1——算法隨機選擇兩個重心,和(有時,任意兩個數(shù)據(jù)作為重心)。
一步:2——它質(zhì)心計算每個點的距離。 如果一個測試數(shù)據(jù)更加接近,那么數(shù)據(jù)標簽貼上 €?0。 如果它是更接近1,然后貼上 1€?€? (如果有更多的重心,貼上€?2€?,一個€?3€?等)。
在我們的例子中,我們將顏色€?0 a€?貼上了紅色,和一個€?1€?與藍色的標簽。 以上操作后我們得到下面的圖像。
一步:3——接下來,我們計算所有藍色的平均分開點,紅點,這將是我們新的重心。 這是和轉(zhuǎn)移到新計算質(zhì)心。 (記住,顯示的圖片是不正確的值,而不是真實的身材尺寸,該數(shù)據(jù)僅供演示)。
再一次,執(zhí)行步驟2新重心和標簽數(shù)據(jù)€?0 和 €?1€?。
所以我們得到結(jié)果如下:
現(xiàn)在- 2步和- 3步是迭代直到重心都是聚合不動點。(也可能停止根據(jù)我們提供的標準,如最大迭代數(shù),或達到一個特定的準確性等等)。 這些點是測試數(shù)據(jù)及其對應的質(zhì)心之間的距離之和最小。 或者只是,之間的距離之和和是最低的。
最終結(jié)果幾乎看起來像下圖:
這是一個直觀的理解k - means聚類。 更多細節(jié)和數(shù)學解釋,請閱讀任何標準機器學習教科書或檢查的額外資源的鏈接。 它只是一個頂層的k - means聚類。 有很多修改算法,如何選擇初始質(zhì)心,如何加快迭代過程等。
額外的資源
總結(jié)
以上是生活随笔為你收集整理的OpenCV官方文档 理解k - means聚类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 盘点selenium phantomJS
- 下一篇: OpenCV的k - means聚类 -