數(shù)據(jù)挖掘之聚類分析

聚類分析是什么

相對于分類购披,聚類是一種不清楚類別的種類胞得,或類別不清楚的情況下捧书,通過計算數(shù)據(jù)之間的相似度(其中用得最多的是距離)來進行小組劃分的一種數(shù)據(jù)挖掘方法苛吱。其特點是組中數(shù)據(jù)的相似度很高酪术,而不同組別之間的相似度卻很低。

聚類分析有哪些

根據(jù)不同的劃分方式,聚類可分為K-Means聚類绘雁、K-中心點聚類橡疼、系統(tǒng)聚類等。其中最常用以及應(yīng)用范圍最廣的是K-Means聚類庐舟,下面著重介紹K-Means聚類欣除。

K-Means聚類

K-Means聚類是很典型的基于距離的聚類算法,以組內(nèi)元素的均值作為每個組的中心挪略,采用距離作為相似性的指標历帚,即認為兩個對象距離近,則相似杠娱,否則挽牢,不相似。該算法認為組內(nèi)元素是由距離相近的元素組成的摊求,因此禽拔,組間元素的距離相近,不同組的距離則較遠室叉。

算法步驟:

  • 隨機選取K個對象作為聚類中心
  • while 聚類中心發(fā)生變化
    • 計算數(shù)據(jù)集中各個對象到K個聚類中心的距離睹栖,并將距離相近的對象歸為同一個聚類
    • 重新計算聚類中心(即重新計算組內(nèi)均值

算法實踐:
我們以常用的分類數(shù)據(jù)集Iris作為我們的原始數(shù)據(jù)

iris = datasets.load_iris()
x,y = iris.data,iris.target
data = x[:, [1, 3]] #只取兩個維度便于可視化
f = plt.scatter(data[:, 0], data[:, 1])
Iris

歐幾里得距離:
我們采用歐幾里得距離來計算點與點之間的距離

def distance(p1, p2):
    """
    返回兩個點之間的歐幾里得距離
    """
    tmp = np.sum((p1-p2)**2)
    return np.sqrt(tmp)

聚類中心的初始化:

def _rand_center(data, k):
    """
    隨機挑選K個初始點
    """
    n = data.shape[1] #數(shù)據(jù)集包含的特征數(shù)
    centroids = np.zeros((k, n)) #初始化一個K行n列的0矩陣
    for i in range(n):
        dmin, dmax = np.min(data[:, i]), np.max(data[:, i])
        centroids[:, i] = dmin + (dmax - dmin) * np.random.rand(k)
 # 這里產(chǎn)生的是介于極小值和極大值之間的數(shù),產(chǎn)生的數(shù)有可能不是數(shù)據(jù)集的數(shù)據(jù)
    return centroids

K均值聚類:
該算法中太惠,當聚類中心不再改變的時候磨淌,迭代停止,返回聚類中心凿渊,各點歸屬于哪一聚類和他們之間距離的和梁只。
注意到K-Means有可能陷于局部最小值,我們采用多次計算取最小值來解決此問題埃脏,當然也可以用二分K均值來解決此問題搪锣。

n = data.shape[0] #數(shù)據(jù)集的行數(shù)
centroids = _rand_center(data, k)
label = np.zeros(n, dtype=np.int) #用于標記最近的聚類中心
assessment = np.zeros(n) #用于對模型的評估
converged = False
while not converged:
    old_centroids = np.copy(centroids)
    for i in range(n): #決定最相近的聚類中心并記錄在label中
        min_dist, min_index = np.inf, -1
        for j in range(k):
            dist = distance(data[i], centroids[j])
            if dist < min_dist:
                min_dist, min_index = dist, j
                label[i] = j
                assessment[i] = distance(data[i], centroids[j])
    for m in range(k): #更新聚類中心
        centroids[m] = np.mean(data[label == m], axis=0)
    converged = _converged(old_centroids, centroids)
return centroids, label, np.sum(assessment)

最后經(jīng)過多次計算之后顯示的結(jié)果如下圖:

K-Means

從圖可以看出,聚類的效果還不錯彩掐。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末构舟,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子堵幽,更是在濱河造成了極大的恐慌狗超,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朴下,死亡現(xiàn)場離奇詭異努咐,居然都是意外死亡,警方通過查閱死者的電腦和手機殴胧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門渗稍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來佩迟,“玉大人,你說我怎么就攤上這事竿屹”ㄇ浚” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵拱燃,是天一觀的道長秉溉。 經(jīng)常有香客問我,道長扼雏,這世上最難降的妖魔是什么坚嗜? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮诗充,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘诱建。我一直安慰自己蝴蜓,他們只是感情好,可當我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布俺猿。 她就那樣靜靜地躺著茎匠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪押袍。 梳的紋絲不亂的頭發(fā)上诵冒,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天,我揣著相機與錄音谊惭,去河邊找鬼汽馋。 笑死,一個胖子當著我的面吹牛圈盔,可吹牛的內(nèi)容都是我干的豹芯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼驱敲,長吁一口氣:“原來是場噩夢啊……” “哼铁蹈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起众眨,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤握牧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后娩梨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沿腰,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年姚建,在試婚紗的時候發(fā)現(xiàn)自己被綠了矫俺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖厘托,靈堂內(nèi)的尸體忽然破棺而出友雳,到底是詐尸還是另有隱情,我是刑警寧澤铅匹,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布押赊,位于F島的核電站,受9級特大地震影響包斑,放射性物質(zhì)發(fā)生泄漏流礁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一罗丰、第九天 我趴在偏房一處隱蔽的房頂上張望神帅。 院中可真熱鬧,春花似錦萌抵、人聲如沸找御。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽霎桅。三九已至,卻和暖如春讨永,著一層夾襖步出監(jiān)牢的瞬間滔驶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工卿闹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留揭糕,地道東北人。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓比原,卻偏偏與公主長得像插佛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子量窘,可洞房花燭夜當晚...
    茶點故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內(nèi)容