機器學習之聚類概述

什么是聚類

聚類就是對大量未知標注的數據集,按照數據 內部存在的數據特征 將數據集劃分為 多個不同的類別 ,使 類別內的數據比較相似,類別之間的數據相似度比較小;屬于 無監督學習

聚類算法的重點是計算樣本項之間的 相似度,有時候也稱為樣本間的 距離

和分類算法的區別:

  • 分類算法是有監督學習,基于有標注的歷史數據進行算法模型構建
  • 聚類算法是無監督學習,數據集中的數據是沒有標注的

有個成語到“物以類聚”,說的就是聚類的概念。直白來講,就是把認為是一類的物體聚在一起,也就是歸為一類(聚在一起的叫一個 簇)。

聚類的思想

給定一個有M個對象的數據集,構建一個具有k個 簇 的模型,其中k<=M(這是肯定的,不可能有3個對象,我劃分成4個類吧)。滿足以下條件:

  • 每個簇至少包含一個對象
  • 每個對象屬于且僅屬于一個簇
  • 將滿足上述條件的k個簇成為一個合理的聚類劃分

總的一個思路就是:對于給定的類別數目k,首先給定初始劃分,通過迭代改變樣本和簇的隸屬關系,使的每次處理后得到的劃分方式 比上一次的好 (總的數據集之間的距離和變小了)

相似度/距離公式

上面一直提到什么相似度或距離,特征空間中兩個實例點的距離就是兩個實例點相似程度的反映。我們也經常用到歐式距離,除此之外還有哪些,這里羅列一些相關公式,因為好多不常用,所以只做簡要介紹,或者僅僅提及一下。

1. 閔可夫斯基距離(Minkowski),也叫范式

對于兩個 n 維的數據 X,Y?

dist(X,Y)=\sqrt[^{^{^{^p}}}]{\sum_{i=1}^n|x_i - y_i|^p}?這里 ?p \geq1

也就是先求各維度的差值,然后把這些差值都取 p 次方,接著累加起來,最后把累加的結果開p次方。

(1) 當 p=1 p=1p=1 時,稱為曼哈頓距離( Manhattan distance,也稱為曼哈頓城市距離),也叫1范式,即

M\_dist = \sum_{i=1}^n |x_i - y_i|

以兩維的數據為例:

?¨è?é??¥????è?°

上面的圖就像我們的城市公路,比如說從左下角到右上角,我們可以按紅線(就是兩點間的曼哈頓距離)、藍線或黃線走,最終都可等效成紅線。而綠線就是下面說的歐氏距離。

(2)當 p=2 p=2p=2 時,稱為歐氏距離 (Euclidean distance) ,也叫2范式,即

E\_dist=\sqrt{\sum_{i=1}^n|x_i - y_i|^2}

(3)當 p=∞? 時,稱為切比雪夫距離(Chebyshev distance)

C\_dist=\sqrt[^{^{^{^\infty}}}]{\sum_{i=1}^n|x_i - y_i|^\infty}= \max _i(|x_i - y_i |)

也就是上圖中,如果橫軸的差值大于縱軸的差值,則就為紅線中的橫線部分;反之就是縱線部分。即,只關心主要的,忽略次要的。

2 . 標準化歐式距離(Standardized Euclidean Distance)

X^* = \frac{X-\bar{X}}{s}

這是進行標準化,在數據處理時經常用到。s 表示方差,s=\sqrt{\frac{\sum_{i=1}^n ( s_i - \bar{s})}{n}}s

標準的歐式距離?\quad S\_E\_D = \sqrt{\sum_{i=1}^n \left( \frac{x_i -y_i}{s_i} \right)}

?

3 . 夾角余弦相似度(Cosine)

a = (x_{11},x_{12},...,x_{1n}), b = (x_{21},x_{22},...,x_{2n})
\cos(\theta) = \frac{\sum_{k=1}^n x_{1k}x_{2k}}{\sqrt{\sum_{k=1}^n x_{1k}^2}*\sqrt{\sum_{k=1}^n x_{1k}^2}} = \frac{a^T \cdot b}{|a||b|}

其實就是利用了我們中學所學的余弦定理。

4 . KL距離(相對熵)
D(P||Q)=\sum_x P(x) \log \left( \frac{P(x)}{Q{x}} \right)

KL距離在信息檢索領域,以及自然語言方面有重要的運用。具體內容可以參考《【ML算法】KL距離》

5 . 杰卡德相似系數(Jaccard)

J(A,B)=\frac{|A \cap B|}{A \cup B}

目標檢測中,經常遇到的IOU,就是這種形式。

dist(A,B)=1-J(A,B)=\frac{|A \cup B|-|A \cap B|}{|A \cup B|}

很顯然,杰卡德距離是用兩個集合中不同元素占所有元素的比例來衡量兩個集合的區分度。

6 . Pearson相關系數

\rho _{XY} = \frac{Cov(X,Y)}{\sqrt{D(X)} \sqrt{D(Y)}} = \frac{E[(X-E(X))(Y-E(Y))]}{\sqrt{D(X)} \sqrt{D(Y)}}=\frac{\sum_{i=1}^n (X_i-\mu_X)(Y_i-\mu_Y)}{\sqrt{\sum_{i=1}^n(X_i-\mu_X)^2}*\sqrt{\sum_{i=1}^n(Y_i-\mu_Y)^2}}

dist(X,Y)=1-\rho_{XY}? ??

Pearson相關系數是統計學三大相關系數之一,具體內容可以參考《如何理解皮爾遜相關系數(Pearson Correlation Coefficient)?》

常見聚類算法

常見的算法,按照不同的思想可進行以下劃分,當然還會有一些相應的優化算法,隨后的博客也會一一介紹。

?¨è?é??¥????è?°

實際中,用的比較多的是劃分聚類,尤其k-means。在古典目標識別中,經常用到Selective Search(選擇搜索)這種圖像bouding boxes提取算法,本質就是層次聚類。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454347.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454347.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454347.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

程序員-建立你的商業意識 閆輝 著

1 程序員為什么需要商業意識 幾 年前&#xff0c;當我剛剛認識Fishman的時候&#xff0c;聽到他神奇的創業經歷&#xff0c;覺得非常不可思議。甚至還專門寫了一篇報道發到《電腦報》上&#xff0c;題目是《從程序員到 CEO》。不久&#xff0c;Fishman將創建的又一個新公司…

qt release打包發布_幾種解決Qt程序打包后無法連接數據庫問題的方法

Qt是一個跨平臺C圖形用戶界面應用程序開發框架&#xff0c;使用它不僅可以方便地開發GUI程序&#xff0c;也可以開發非GUI程序&#xff0c;可以一次編寫&#xff0c;處處編譯。今天遇到的問題比較怪異&#xff0c;我開發的是一個桌面版訂單管理系統&#xff0c;整體架構就是一個…

Java操作MongoDB

先引入mongo-java-dirver驅動 123456<!-- mongo-java-dirver --><dependency><groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.4.2</version> </dependency>代碼操作演示&#…

機器學習之拉格朗日乘子法和 KKT

有約束的最優化問題 最優化問題一般是指對于某一個函數而言&#xff0c;求解在其指定作用域上的全局最小值問題&#xff0c;一般分為以下三種情況(備注&#xff1a;以下幾種方式求出來的解都有可能是局部極小值&#xff0c;只有當函數是凸函數的時候&#xff0c;才可以得到全局…

定長順序串的實現

string.h #define MAXSTRLEN 255#define ERROR 0#define OK 1 typedef int Status;typedef char String[MAXSTRLEN 1]; //初始化字符串Status StrAssign(String T, char e); //有串S復制得串TStatus StrCopy(String T,String S); //比較兩個串的大小Status StrCompare(String …

pmp思維導圖 第六版_PMP考試技巧攻略(上)

PMP考試需要有保證足夠的時間投入&#xff1a;獲得PMP 考試并拿到5A 成績&#xff0c;并且還需要理解性記憶&#xff1a;PMP 指定教材PMBOK第六版&#xff08;教材為必看三遍以上&#xff09;&#xff0c;學習起來是有趣的&#xff0c;同時也是痛苦的。因為看書時字面的字我們認…

程序員應該具備的素質(來自csdn)

程序員是一種技術工作&#xff0c;在IT的發展中有相當重要的地位&#xff0c;從底層硬件通訊協議的建立&#xff0c; 到數據傳輸層的處理&#xff0c;到操作系統的建設&#xff0c;到數據庫平臺的建設&#xff0c;一直到應用層上各種數 據營銷平臺的搭建&#xff0c;程序員在里…

linux的du使用方法

該命令的各個選項含義如下&#xff1a; -s 對每個Names參數只給出占用的數據塊總數。 -a 遞歸地顯示指定目錄中各文件及子孫目錄中各文件占用的數據塊數。若既不指定-s&#xff0c;也不指定-a&#xff0c;則只顯示Names中的每一個目錄及其中的各子目錄所占的磁盤塊數-b 以字節為…

淺談MVC MVP MVVM

復雜的軟件必須有清晰合理的架構&#xff0c;否則無法開發和維護。 MVC&#xff08;Model-View-Controller&#xff09;是最常見的軟件架構之一&#xff0c;業界有著廣泛應用。 它本身很容易理解&#xff0c;但是要講清楚&#xff0c;它與衍生的 MVP 和 MVVM 架構的區別就不容易…

機器學習接口和代碼之 線性回歸

線性回歸sklearn 接口和代碼 官網api&#xff1a;https://scikit-learn.org/stable/modules/linear_model.html#ordinary-least-squares LinearRegression class sklearn.linear_model.LinearRegression(fit_interceptTrue, normalizeFalse, copy_XTrue, n_jobs1)參數說明&a…

中國智慧VS西方智慧-看中國IT風云與IT產業怪狀

為什么國外沒有一家互聯網公司在中國取得成功&#xff0c;為什么他們都水土不服&#xff0c;為什么他們都在中國都混不下去&#xff0c;YAHOO, EBAY等等這樣享譽全球的互聯網公司都在中國無法取得成功&#xff01;為什么連讓IT巨無霸微軟都覺得發抖&#xff0c;讓比爾蓋茨夜夜做…

商務搜索引擎_外貿研修 | 世界各國常用搜索引擎,開發客戶必備!

我們平時生活中也好&#xff0c;開發客戶也好&#xff0c;搜索引擎是我們離不開的工具。最佳沒有之一的當屬谷歌了。谷歌網址&#xff1a;www.google.com谷歌高級搜索&#xff1a;https://www.google.com/advanced_search (通過設置/排除一些字詞縮小精確搜索范圍)作為普通使用…

HaProxy+Keepalived+Mycat高可用群集配置

概述 本章節主要介紹配置HaProxyKeepalived高可用群集&#xff0c;Mycat的配置就不在這里做介紹&#xff0c;可以參考我前面寫的幾篇關于Mycat的文章。 部署圖&#xff1a; 配置 HaProxy安裝 181和179兩臺服務器安裝haproxy的步驟一致 --創建haproxy用戶 useradd haproxy--…

奇怪的bug,不懂Atom在添加markdown-themeable-pdf,在配置好phantomjs的情況下報錯

本來打算用一下atom但是導出pdf報錯&#xff0c;可是在預覽的情況下就沒有問題&#xff0c;順便吐槽一下谷歌瀏覽器自己的markdown在線預覽插件無法適配&#xff0c;用搜狗搭載谷歌的插件才能導出pdf&#xff0c;一下感覺逼格少了很多&#xff0c;等忙完這陣再來看一下。先貼出…

機器學習之 sklearn.preprocessing 模塊

sklearn.preprocessing.PolynomialFeatures 多項式擴展。 它是使用多項式的方法來進行的&#xff0c;如果有a&#xff0c;b兩個特征&#xff0c;那么它的2次多項式為&#xff08;1,a,b,a^2,ab, b^2&#xff09;&#xff0c;這個多項式的形式是使用poly的效果。 api class s…

Python 面試題

Python面試315道題第一部 Python面試題基礎篇&#xff08;80道&#xff09;1、為什么學習Python&#xff1f;2、通過什么途徑學習的Python&#xff1f;3、Python和Java、PHP、C、C#、C等其他語言的對比&#xff1f;PHPjavacc#c4、簡述解釋型和編譯型編程語言&#xff1f;編譯型…

周鴻祎,高司令

還是感到有必要將自己的一些想法快速記下來。 首先是對周鴻祎新員工演講的看法。 就說實話這一點來說&#xff0c;周鴻祎比很多人強。所以我比較喜歡引用他的話&#xff0c;確實比較實在&#xff0c;不裝逼。 至于一個公司招人的風格&#xff0c;是公司自己定的&#xff0c;別人…

JDBC與JNDI應用比較

JNDI用了多年但是一直沒去弄懂其和JDBC的區別&#xff0c;今天在網上搜了下&#xff0c;發下些資料說明的還不錯記錄下。 JNDI是 Java 命名與目錄接口&#xff08;Java Naming and Directory Interface&#xff09;&#xff0c;在J2EE規范中是重要的規范之一&#xff0c;不少專…

bzoj1038500AC!

序列dp 先開始想了一個類似區間dp的東西...少了一維 然后發現似乎不太對&#xff0c;因為女生的最大差和男生的最大差并不相等 dp[i][j][x][y]表示當前有i個人&#xff0c;j個男生&#xff0c;男生和女生的后綴最大差是x&#xff0c;女生和男生最大差是y&#xff0c;x,y>0,轉…

機器學習接口代碼之 Ridge、Lasso、Elasitc Net

目錄 Ridge Regression &#xff08;嶺回歸&#xff09; Lasso Regression Elasitc Net&#xff08;彈性網絡&#xff09; 案例&#xff1a;葡萄酒質量預測 官網地址https://scikit-learn.org/stable/modules/linear_model.html Ridge Regression &#xff08;嶺回歸&…