導航:首頁 > 使用方法 > 聚類是一種常用的數據預處理方法

聚類是一種常用的數據預處理方法

發布時間:2022-09-24 04:36:30

Ⅰ 聚類分析靠譜么

聚類分析本來就是一種粗糙的數據預處理方法,啟發式地發現數據中自然存在的簇。從而科學工作者可以採用「分而治之」的策略對數據進行進一步分析。
聚類分析的方法很多,如k-means,EM演算法,譜聚類,層次聚類,affinity propagation等等。我們根據不同的問題和不同的目的而採用不同的方法。
科學本來就是一種信仰,信誰都沒有對錯之分。

Ⅱ 聚類分析的主要步驟

聚類分析的主要步驟
聚類分析的主要步驟
1.數據預處理,2.為衡量數據點間的相似度定義一個距離函數,3.聚類或分組,4.評估輸出。
數據預處理包括選擇數量,類型和特徵的標度,它依靠特徵選擇和特徵抽取,特徵選擇選擇重要的特徵,特徵抽取把輸入的特徵轉化為一個新的顯著特徵,它們經常被用來獲取一個合適的特徵集來為避免「維數災」進行聚類,數據預處理還包括將孤立點移出數據,孤立點是不依附於一般數據行為或模型的數據,因此孤立點經常會導致有偏差的聚類結果,因此為了得到正確的聚類,我們必須將它們剔除。
既然相類似性是定義一個類的基礎,那麼不同數據之間在同一個特徵空間相似度的衡量對於聚類步驟是很重要的,由於特徵類型和特徵標度的多樣性,距離度量必須謹慎,它經常依賴於應用,例如,通常通過定義在特徵空間的距離度量來評估不同對象的相異性,很多距離度都應用在一些不同的領域,一個簡單的距離度量,如Euclidean距離,經常被用作反映不同數據間的相異性,一些有關相似性的度量,例如PMC和SMC,能夠被用來特徵化不同數據的概念相似性,在圖像聚類上,子圖圖像的誤差更正能夠被用來衡量兩個圖形的相似性。
將數據對象分到不同的類中是一個很重要的步驟,數據基於不同的方法被分到不同的類中,劃分方法和層次方法是聚類分析的兩個主要方法,劃分方法一般從初始劃分和最優化一個聚類標准開始。CrispClustering,它的每一個數據都屬於單獨的類;FuzzyClustering,它的每個數據可能在任何一個類中,CrispClustering和FuzzyClusterin是劃分方法的兩個主要技術,劃分方法聚類是基於某個標准產生一個嵌套的劃分系列,它可以度量不同類之間的相似性或一個類的可分離性用來合並和分裂類,其他的聚類方法還包括基於密度的聚類,基於模型的聚類,基於網格的聚類。
評估聚類結果的質量是另一個重要的階段,聚類是一個無管理的程序,也沒有客觀的標准來評價聚類結果,它是通過一個類有效索引來評價,一般來說,幾何性質,包括類間的分離和類內部的耦合,一般都用來評價聚類結果的質量,類有效索引在決定類的數目時經常扮演了一個重要角色,類有效索引的最佳值被期望從真實的類數目中獲取,一個通常的決定類數目的方法是選擇一個特定的類有效索引的最佳值,這個索引能否真實的得出類的數目是判斷該索引是否有效的標准,很多已經存在的標准對於相互分離的類數據集合都能得出很好的結果,但是對於復雜的數據集,卻通常行不通,例如,對於交疊類的集合。

Ⅲ 分類和聚類的區別及各自的常見演算法

1、分類和聚類的區別:
Classification (分類),對於一個classifier,通常需要你告訴它「這個東西被分為某某類」這樣一些例子,理想情況下,一個 classifier 會從它得到的訓練集中進行「學習」,從而具備對未知數據進行分類的能力,這種提供訓練數據的過程通常叫做supervised learning (監督學習),
Clustering (聚類),簡單地說就是把相似的東西分到一組,聚類的時候,我們並不關心某一類是什麼,我們需要實現的目標只是把相似的東西聚到一起。因此,一個聚類演算法通常只需要知道如何計算相似度就可以開始工作了,因此 clustering 通常並不需要使用訓練數據進行學習,這在Machine Learning中被稱作unsupervised learning (無監督學習).
2、常見的分類與聚類演算法
所謂分類,簡單來說,就是根據文本的特徵或屬性,劃分到已有的類別中。如在自然語言處理NLP中,我們經常提到的文本分類便就是一個分類問題,一般的模式分類方法都可用於文本分類研究。常用的分類演算法包括:決策樹分類法,樸素貝葉斯分類演算法(native Bayesian classifier)、基於支持向量機(SVM)的分類器,神經網路法,k-最近鄰法(k-nearestneighbor,kNN),模糊分類法等等。
分類作為一種監督學習方法,要求必須事先明確知道各個類別的信息,並且斷言所有待分類項都有一個類別與之對應。但是很多時候上述條件得不到滿足,尤其是在處理海量數據的時候,如果通過預處理使得數據滿足分類演算法的要求,則代價非常大,這時候可以考慮使用聚類演算法。
而K均值(K-mensclustering)聚類則是最典型的聚類演算法(當然,除此之外,還有很多諸如屬於劃分法K中心點(K-MEDOIDS)演算法、CLARANS演算法;屬於層次法的BIRCH演算法、CURE演算法、CHAMELEON演算法等;基於密度的方法:DBSCAN演算法、OPTICS演算法、DENCLUE演算法等;基於網格的方法:STING演算法、CLIQUE演算法、WAVE-CLUSTER演算法;基於模型的方法)。

Ⅳ 聚類分析的意義是什麼

1、與多元分析的其他方法相比,聚類分析是很粗糙的,理論尚不完善,但由於它成功地應用於心理、經濟、社會、管理、醫學、地質、生態、地震、氣象、考古、企業決策等,因此成了多元分析的重要方法,統計包中都有豐富的軟體,對數據進行聚類處理。

2、聚類分析除了獨立的統計功能外,還有一個輔助功能,就是和其他統計方法配合,對數據進行預處理。

例如,當總體不清楚時,可對原始數據進行聚類,根據聚類後相似的數據,各自建立回歸分析,分析的效果會更好。同時如果聚類不是根據個案,而是對變數先進行聚類,聚類的結果,可以在每一類推出一個最有代表性的變數,從而減少了進入回歸方程的變數數。

3、聚類分析是研究按一定特徵,對研究對象進行分類的多元統計方法,它並不關心特徵及變數間的因果關系。分類的結果,應使類別間個體差異大,而同類的個體差異相對要小。

(4)聚類是一種常用的數據預處理方法擴展閱讀:

聚類效果的檢驗:

一、聚類分析後得到的每個類別是否可以進行有效的命名,每個類別的特徵情況是否符合現實意義,如果研究者可以結合專業知識對每個聚類類別進行命名,即說明聚類效果良好,如果聚類類別無法進行命名,則需要考慮重新進行聚類分析。

二、使用判別分析方法進行判斷,將SPSS生成的聚類類別變數作為因變數(Y),而將聚類變數作為自變數(X)進行判別分析,判別分析具體分析聚類變數與類別之間投影關系情況,如果研究人員對聚類分析效果非常在乎,可以使用判別分析進行分析。

三、聚類分析方法的詳細過程說明,描述清楚聚類分析的科學使用過程,科學的聚類分析方法使用即是良好結果的前提保障。

是、聚類分析後每個類別樣本數量是否均勻,如果聚類結果顯示為三個類別,有一個類別樣本量非常少,比如低於30,此時很可能說明聚類效果較差。針對聚類效果的判斷,研究者主要是結合專業知識判斷,即聚類類別是否可以進行有效命名。

Ⅳ 十分鍾上手sklearn 安裝,獲取數據,數據預處理

更多干貨就在我的個人博客 http://blackblog.tech 歡迎關注!

sklearn是機器學習中一個常用的python第三方模塊,對常用的機器學習演算法進行了封裝
其中包括:
1.分類(Classification)
2.回歸(Regression)
3.聚類(Clustering)
4.數據降維(Dimensionality rection)
5.常用模型(Model selection)
6.數據預處理(Preprocessing)
本文將從sklearn的安裝開始講解,由淺入深,逐步上手sklearn。

sklearn官網: http://scikit-learn.org/stable/index.html
sklearn API: http://scikit-learn.org/stable/moles/classes.html#mole-sklearn.preprocessing

sklearn的目前版本是0.19.1
依賴包:
Python (>=2.6或>=3.3)
NumPy(>=1.6.1)
SciPy(>=0.9)

使用pip安裝,terminal直接執行即可

使用Anaconda安裝,推薦Anaconda,因為裡面已經內置了NumPy,SciPy等常用工具

安裝完成後可以在python中檢查一下版本,import sklearn不報錯,則表示安裝成功

機器學習演算法往往需要大量的數據,在skleran中獲取數據通常採用兩種方式,一種是使用自帶的數據集,另一種是創建數據集

sklearn自帶了很多數據集,可以用來對演算法進行測試分析,免去了自己再去找數據集的煩惱
其中包括:
鳶尾花數據集:load_iris()
手寫數字數據集:load_digitals()
糖尿病數據集:load_diabetes()
乳腺癌數據集:load_breast_cancer()
波士頓房價數據集:load_boston()
體能訓練數據集:load_linnerud()

這里以鳶尾花數據集為例導入數據集

使用skleran的樣本生成器(samples generator)可以創建數據,sklearn.datasets.samples_generator中包含了大量創建樣本數據的方法。

這里以分類問題創建樣本數據

參數說明:
n_features :特徵個數= n_informative() + n_rendant + n_repeated
n_informative:多信息特徵的個數
n_rendant:冗餘信息,informative特徵的隨機線性組合
n_repeated :重復信息,隨機提取n_informative和n_rendant 特徵
n_classes:分類類別
n_clusters_per_class :某一個類別是由幾個cluster構成的
random_state:隨機種子,使得實驗可重復
n_classes*n_clusters_per_class 要小於或等於 2^n_informative

列印結果:

機器學習的過程正往往需要對數據集進行劃分,常分為訓練集,測試集。sklearn中的model_selection為我們提供了劃分數據集的方法。
以鳶尾花數據集為例進行劃分

參數說明:
arrays:樣本數組,包含特徵向量和標簽
test_size:
float-獲得多大比重的測試樣本 (默認:0.25)
int - 獲得多少個測試樣本
train_size: 同test_size
random_state:int - 隨機種子(種子固定,實驗可復現)
shuffle - 是否在分割之前對數據進行洗牌(默認True)

後面我們訓練模型使用的數據集都基於此

我們為什麼要進行數據預處理?
通常,真實生活中,我們獲得的數據中往往存在很多的無用信息,甚至存在錯誤信息,而機器學習中有一句話叫做"Garbage in,Garbage out",數據的健康程度對於演算法結果的影響極大。數據預處理就是讓那些冗餘混亂的源數據變得能滿足其應用要求。
當然,僅僅是數據預處理的方法就可以寫好幾千字的文章了,在這里只談及幾個基礎的數據預處理的方法。
skleran中為我們提供了一個數據預處理的package:preprocessing,我們直接導入即可

下面的例子我們使用:[[1, -1, 2], [0, 2, -1], [0, 1, -2]]做為初始數據。

基於mean和std的標准化

列印結果:

規范化到一定區間內 feature_range為數據規范化的范圍

列印結果:

首先求出樣本的p-范數,然後該樣本的所有元素都要除以該范數,這樣最終使得每個樣本的范數都為1

列印結果:

本文介紹了sklearn的安裝,sklearn導入數據集,創建數據集的基本方法,對數據預處理的常用方法進行了介紹。
下一篇,將重點講解如何使用sklearn進行特徵提取,使用sklearn實現機器學習經典演算法,模型的保存等內容。

Ⅵ 數據挖掘常用的軟體有哪些

1、Rapid Miner


Rapid Miner是一個數據科學軟體平台,為數據准備、機器學習、深度學習、文本挖掘和預測分析提供一種集成環境。它是領先的數據挖掘開源系統之一。該程序完全用Java編程語言編寫。該程序提供了一個選項,以便用戶試用大量可任意嵌套的操作符,這些操作符在XML文件中有詳細說明,可由Rapid Miner的圖形用戶界面來構建。


2、Orange


Orange是一個開源數據可視化、機器學習和數據挖掘工具包。它有一個可視化編程前端,可用於探索性數據分析和互動式數據可視化。Orange是一個基於組件的可視化編程軟體包,用於數據可視化、機器學習、數據挖掘和數據分析。Orange組件稱為窗口組件,范圍廣泛:從簡單的數據可視化、子集選擇和預處理,到學習演算法和預測建模的評估,不一而足。Orange的可視化編程通過界面來進行,其中工作流程通過連接預定義或用戶設計的窗口組件來創建,而高級用戶可以將Orange用作Python庫,以便操縱數據和更改窗口組件。


3、Kaggle


Kaggle是世界上數據科學家和機器學習者社區。Kaggle以開設機器學習競賽起家,但現在逐漸變成基於公共雲的數據科學平台。Kaggle是一個平台,有助於解決難題、招募強大的團隊並宣傳數據科學的力量。


4、Weka


懷卡托知識分析環境(Weka)是紐西蘭懷卡託大學開發的一套機器學習軟體。該軟體用Java編寫。它含有一系列面向數據分析和預測建模的可視化工具和演算法,附帶圖形用戶界面。Weka支持幾種標准數據挖掘任務,更具體地說是指數據預處理、聚類、分類、回歸、可視化和特徵選擇。


關於數據挖掘常用的軟體有哪些,青藤小編就和您分享到這里了。如果你對大數據工程有濃厚的興趣,希望這篇文章能夠對你有所幫助。如果您還想了解更多數據分析師、大數據工程師的技巧及素材等內容,可以點擊本站的其他文章進行學習。

Ⅶ 什麼叫層次聚類分析

聚類通過把目標數據放入少數相對同源的組或「類」(cluster)里。分析表達數據,(1)通過一系列的檢測將待測的一組基因的變異標准化,然後成對比較線性協方差。(2)通過把用最緊密關聯的譜來放基因進行樣本聚類,例如用簡單的層級聚類(hierarchical clustering)方法。這種聚類亦可擴展到每個實驗樣本,利用一組基因總的線性相關進行聚類。(3)多維等級分析(multidimensional scaling analysis,MDS)是一種在二維Euclidean 「距離」中顯示實驗樣本相關的大約程度。(4)K-means方法聚類,通過重復再分配類成員來使「類」內分散度最小化的方法。
聚類方法有兩個顯著的局限:首先,要聚類結果要明確就需分離度很好(well-separated)的數據。幾乎所有現存的演算法都是從互相區別的不重疊的類數據中產生同樣的聚類。但是,如果類是擴散且互相滲透,那麼每種演算法的的結果將有點不同。結果,每種演算法界定的邊界不清,每種聚類演算法得到各自的最適結果,每個數據部分將產生單一的信息。為解釋因不同演算法使同樣數據產生不同結果,必須注意判斷不同的方式。對遺傳學家來說,正確解釋來自任一演算法的聚類內容的實際結果是困難的(特別是邊界)。最終,將需要經驗可信度通過序列比較來指導聚類解釋。
第二個局限由線性相關產生。上述的所有聚類方法分析的僅是簡單的一對一的關系。因為只是成對的線性比較,大大減少發現表達類型關系的計算量,但忽視了生物系統多因素和非線性的特點。
從統計學的觀點看,聚類分析是通過數據建模簡化數據的一種方法。傳統的統計聚類分析方法包括系統聚類法、分解法、加入法、動態聚類法、有序樣品聚類、有重疊聚類和模糊聚類等。採用k-均值、k-中心點等演算法的聚類分析工具已被加入到許多著名的統計分析軟體包中,如SPSS、SAS等。
從機器學習的角度講,簇相當於隱藏模式。聚類是搜索簇的無監督學習過程。與分類不同,無監督學習不依賴預先定義的類或帶類標記的訓練實例,需要由聚類學習演算法自動確定標記,而分類學習的實例或數據對象有類別標記。聚類是觀察式學習,而不是示例式的學習。
從實際應用的角度看,聚類分析是數據挖掘的主要任務之一。就數據挖掘功能而言,聚類能夠作為一個獨立的工具獲得數據的分布狀況,觀察每一簇數據的特徵,集中對特定的聚簇集合作進一步地分析。
聚類分析還可以作為其他數據挖掘任務(如分類、關聯規則)的預處理步驟。
數據挖掘領域主要研究面向大型資料庫、數據倉庫的高效實用的聚類分析演算法。
聚類分析是數據挖掘中的一個很活躍的研究領域,並提出了許多聚類演算法。
這些演算法可以被分為劃分方法、層次方法、基於密度方法、基於網格方法和
基於模型方法。
1 劃分方法(PAM:PArtitioning method) 首先創建k個劃分,k為要創建的劃分個數;然後利用一個循環
定位技術通過將對象從一個劃分移到另一個劃分來幫助改善劃分質量。典型的劃分方法包括:
k-means,k-medoids,CLARA(Clustering LARge Application),
CLARANS(Clustering Large Application based upon RANdomized Search).
FCM
2 層次方法(hierarchical method) 創建一個層次以分解給定的數據集。該方法可以分為自上
而下(分解)和自下而上(合並)兩種操作方式。為彌補分解與合並的不足,層次合
並經常要與其它聚類方法相結合,如循環定位。典型的這類方法包括:
第一個是;BIRCH(Balanced Iterative Recing and Clustering using Hierarchies) 方法,它首先利用樹的結構對對象集進行劃分;然後再利
用其它聚類方法對這些聚類進行優化。
第二個是CURE(Clustering Using REprisentatives) 方法,它利用固定數目代表對象來表示相應聚類;然後對各聚類按照指定
量(向聚類中心)進行收縮。
第三個是ROCK方法,它利用聚類間的連接進行聚類合並。
最後一個CHEMALOEN,它則是在層次聚類時構造動態模型。
3 基於密度方法,根據密度完成對象的聚類。它根據對象周圍的密度(如
DBSCAN)不斷增長聚類。典型的基於密度方法包括:
DBSCAN(Densit-based Spatial Clustering of Application with Noise):該演算法通過不斷生長足夠高密
度區域來進行聚類;它能從含有雜訊的空間資料庫中發現任意形狀的聚類。此方法將一個聚類定義
為一組「密度連接」的點集。
OPTICS(Ordering Points To Identify the Clustering Structure):並不明確產生一
個聚類,而是為自動交互的聚類分析計算出一個增強聚類順序。。
4 基於網格方法,首先將對象空間劃分為有限個單元以構成網格結構;然後利
用網格結構完成聚類。
STING(STatistical INformation Grid) 就是一個利用網格單元保存的統計信息進行基
於網格聚類的方法。
CLIQUE(Clustering In QUEst)和Wave-Cluster 則是一個將基於網格與基於密度相結合的方
法。
5 基於模型方法,它假設每個聚類的模型並發現適合相應模型的數據。典型的
基於模型方法包括:
統計方法COBWEB:是一個常用的且簡單的增量式概念聚類方法。它的輸入對象是采
用符號量(屬性-值)對來加以描述的。採用分類樹的形式來創建
一個層次聚類。
CLASSIT是COBWEB的另一個版本.。它可以對連續取值屬性進行增量式聚
類。它為每個結點中的每個屬性保存相應的連續正態分布(均值與方差);並利
用一個改進的分類能力描述方法,即不象COBWEB那樣計算離散屬性(取值)
和而是對連續屬性求積分。但是CLASSIT方法也存在與COBWEB類似的問題。
因此它們都不適合對大資料庫進行聚類處理.

Ⅷ Kmeans聚類演算法簡介

由於具有出色的速度和良好的可擴展性,Kmeans聚類演算法算得上是最著名的聚類方法。Kmeans演算法是一個重復移動類中心點的過程,把類的中心點,也稱重心(centroids),移動到其包含成員的平均位置,然後重新劃分其內部成員。k是演算法計算出的超參數,表示類的數量;Kmeans可以自動分配樣本到不同的類,但是不能決定究竟要分幾個類。k必須是一個比訓練集樣本數小的正整數。有時,類的數量是由問題內容指定的。例如,一個鞋廠有三種新款式,它想知道每種新款式都有哪些潛在客戶,於是它調研客戶,然後從數據里找出三類。也有一些問題沒有指定聚類的數量,最優的聚類數量是不確定的。後面我將會詳細介紹一些方法來估計最優聚類數量。

Kmeans的參數是類的重心位置和其內部觀測值的位置。與廣義線性模型和決策樹類似,Kmeans參數的最優解也是以成本函數最小化為目標。Kmeans成本函數公式如下:

μiμi是第kk個類的重心位置。成本函數是各個類畸變程度(distortions)之和。每個類的畸變程度等於該類重心與其內部成員位置距離的平方和。若類內部的成員彼此間越緊湊則類的畸變程度越小,反之,若類內部的成員彼此間越分散則類的畸變程度越大。求解成本函數最小化的參數就是一個重復配置每個類包含的觀測值,並不斷移動類重心的過程。首先,類的重心是隨機確定的位置。實際上,重心位置等於隨機選擇的觀測值的位置。每次迭代的時候,Kmeans會把觀測值分配到離它們最近的類,然後把重心移動到該類全部成員位置的平均值那裡。

2.1 根據問題內容確定

這種方法就不多講了,文章開篇就舉了一個例子。

2.2 肘部法則

如果問題中沒有指定kk的值,可以通過肘部法則這一技術來估計聚類數量。肘部法則會把不同kk值的成本函數值畫出來。隨著kk值的增大,平均畸變程度會減小;每個類包含的樣本數會減少,於是樣本離其重心會更近。但是,隨著kk值繼續增大,平均畸變程度的改善效果會不斷減低。kk值增大過程中,畸變程度的改善效果下降幅度最大的位置對應的kk值就是肘部。為了讓讀者看的更加明白,下面讓我們通過一張圖用肘部法則來確定最佳的kk值。下圖數據明顯可分成兩類:

從圖中可以看出,k值從1到2時,平均畸變程度變化最大。超過2以後,平均畸變程度變化顯著降低。因此最佳的k是2。

2.3 與層次聚類結合

經常會產生較好的聚類結果的一個有趣策略是,首先採用層次凝聚演算法決定結果粗的數目,並找到一個初始聚類,然後用迭代重定位來改進該聚類。

2.4 穩定性方法

穩定性方法對一個數據集進行2次重采樣產生2個數據子集,再用相同的聚類演算法對2個數據子集進行聚類,產生2個具有kk個聚類的聚類結果,計算2個聚類結果的相似度的分布情況。2個聚類結果具有高的相似度說明kk個聚類反映了穩定的聚類結構,其相似度可以用來估計聚類個數。採用次方法試探多個kk,找到合適的k值。

2.5 系統演化方法

系統演化方法將一個數據集視為偽熱力學系統,當數據集被劃分為kk個聚類時稱系統處於狀態kk。系統由初始狀態k=1k=1出發,經過分裂過程和合並過程,系統將演化到它的穩定平衡狀態 kiki ,其所對應的聚類結構決定了最優類數 kiki 。系統演化方法能提供關於所有聚類之間的相對邊界距離或可分程度,它適用於明顯分離的聚類結構和輕微重疊的聚類結構。

2.6 使用canopy演算法進行初始劃分

基於Canopy Method的聚類演算法將聚類過程分為兩個階段

(1) 聚類最耗費計算的地方是計算對象相似性的時候,Canopy Method在第一階段選擇簡單、計算代價較低的方法計算對象相似性,將相似的對象放在一個子集中,這個子集被叫做Canopy,通過一系列計算得到若干Canopy,Canopy之間可以是重疊的,但不會存在某個對象不屬於任何Canopy的情況,可以把這一階段看做數據預處理;

(2) 在各個Canopy內使用傳統的聚類方法(如Kmeans),不屬於同一Canopy的對象之間不進行相似性計算。

從這個方法起碼可以看出兩點好處:首先,Canopy不要太大且Canopy之間重疊的不要太多的話會大大減少後續需要計算相似性的對象的個數;其次,類似於Kmeans這樣的聚類方法是需要人為指出K的值的,通過(1)得到的Canopy個數完全可以作為這個k值,一定程度上減少了選擇k的盲目性。

其他方法如貝葉斯信息准則方法(BIC)可參看文獻[4]。

選擇適當的初始質心是基本kmeans演算法的關鍵步驟。常見的方法是隨機的選取初始中心,但是這樣簇的質量常常很差。處理選取初始質心問題的一種常用技術是:多次運行,每次使用一組不同的隨機初始質心,然後選取具有最小SSE(誤差的平方和)的簇集。這種策略簡單,但是效果可能不好,這取決於數據集和尋找的簇的個數。

第二種有效的方法是,取一個樣本,並使用層次聚類技術對它聚類。從層次聚類中提取kk個簇,並用這些簇的質心作為初始質心。該方法通常很有效,但僅對下列情況有效:(1)樣本相對較小,例如數百到數千(層次聚類開銷較大);(2) kk相對於樣本大小較小。

第三種選擇初始質心的方法,隨機地選擇第一個點,或取所有點的質心作為第一個點。然後,對於每個後繼初始質心,選擇離已經選取過的初始質心最遠的點。使用這種方法,確保了選擇的初始質心不僅是隨機的,而且是散開的。但是,這種方法可能選中離群點。此外,求離當前初始質心集最遠的點開銷也非常大。為了克服這個問題,通常該方法用於點樣本。由於離群點很少(多了就不是離群點了),它們多半不會在隨機樣本中出現。計算量也大幅減少。

第四種方法就是上面提到的canopy演算法。

常用的距離度量方法包括:歐幾里得距離和餘弦相似度。兩者都是評定個體間差異的大小的。

歐氏距離是最常見的距離度量,而餘弦相似度則是最常見的相似度度量,很多的距離度量和相似度度量都是基於這兩者的變形和衍生,所以下面重點比較下兩者在衡量個體差異時實現方式和應用環境上的區別。

藉助三維坐標系來看下歐氏距離和餘弦相似度的區別:

從圖上可以看出距離度量衡量的是空間各點間的絕對距離,跟各個點所在的位置坐標(即個體特徵維度的數值)直接相關;而餘弦相似度衡量的是空間向量的夾角,更加的是體現在方向上的差異,而不是位置。如果保持A點的位置不變,B點朝原方向遠離坐標軸原點,那麼這個時候餘弦相似cosθ是保持不變的,因為夾角不變,而A、B兩點的距離顯然在發生改變,這就是歐氏距離和餘弦相似度的不同之處。

根據歐氏距離和餘弦相似度各自的計算方式和衡量特徵,分別適用於不同的數據分析模型:歐氏距離能夠體現個體數值特徵的絕對差異,所以更多的用於需要從維度的數值大小中體現差異的分析,如使用用戶行為指標分析用戶價值的相似度或差異;而餘弦相似度更多的是從方向上區分差異,而對絕對的數值不敏感,更多的用於使用用戶對內容評分來區分用戶興趣的相似度和差異,同時修正了用戶間可能存在的度量標准不統一的問題(因為餘弦相似度對絕對數值不敏感)。

因為歐幾里得距離度量會受指標不同單位刻度的影響,所以一般需要先進行標准化,同時距離越大,個體間差異越大;空間向量餘弦夾角的相似度度量不會受指標刻度的影響,餘弦值落於區間[-1,1],值越大,差異越小。但是針對具體應用,什麼情況下使用歐氏距離,什麼情況下使用餘弦相似度?

從幾何意義上來說,n維向量空間的一條線段作為底邊和原點組成的三角形,其頂角大小是不確定的。也就是說對於兩條空間向量,即使兩點距離一定,他們的夾角餘弦值也可以隨意變化。感性的認識,當兩用戶評分趨勢一致時,但是評分值差距很大,餘弦相似度傾向給出更優解。舉個極端的例子,兩用戶只對兩件商品評分,向量分別為(3,3)和(5,5),這兩位用戶的認知其實是一樣的,但是歐式距離給出的解顯然沒有餘弦值合理。

我們把機器學習定義為對系統的設計和學習,通過對經驗數據的學習,將任務效果的不斷改善作為一個度量標准。Kmeans是一種非監督學習,沒有標簽和其他信息來比較聚類結果。但是,我們還是有一些指標可以評估演算法的性能。我們已經介紹過類的畸變程度的度量方法。本節為將介紹另一種聚類演算法效果評估方法稱為輪廓系數(Silhouette Coefficient)。輪廓系數是類的密集與分散程度的評價指標。它會隨著類的規模增大而增大。彼此相距很遠,本身很密集的類,其輪廓系數較大,彼此集中,本身很大的類,其輪廓系數較小。輪廓系數是通過所有樣本計算出來的,計算每個樣本分數的均值,計算公式如下:

aa是每一個類中樣本彼此距離的均值,bb是一個類中樣本與其最近的那個類的所有樣本的距離的均值。

輸入:聚類個數k,數據集XmxnXmxn。

輸出:滿足方差最小標準的k個聚類。

(1) 選擇k個初始中心點,例如c[0]=X[0] , … , c[k-1]=X[k-1];

(2) 對於X[0]….X[n],分別與c[0]…c[k-1]比較,假定與c[i]差值最少,就標記為i;

(3) 對於所有標記為i點,重新計算c[i]={ 所有標記為i的樣本的每個特徵的均值};

(4) 重復(2)(3),直到所有c[i]值的變化小於給定閾值或者達到最大迭代次數。

Kmeans的時間復雜度:O(tkmn),空間復雜度:O((m+k)n)。其中,t為迭代次數,k為簇的數目,m為樣本數,n為特徵數。

7.1 優點

(1). 演算法原理簡單。需要調節的超參數就是一個k。

(2). 由具有出色的速度和良好的可擴展性。

7.2 缺點

(1). 在 Kmeans 演算法中 kk 需要事先確定,這個 kk 值的選定有時候是比較難確定。

(2). 在 Kmeans 演算法中,首先需要初始k個聚類中心,然後以此來確定一個初始劃分,然後對初始劃分進行優化。這個初始聚類中心的選擇對聚類結果有較大的影響,一旦初始值選擇的不好,可能無法得到有效的聚類結果。多設置一些不同的初值,對比最後的運算結果,一直到結果趨於穩定結束。

(3). 該演算法需要不斷地進行樣本分類調整,不斷地計算調整後的新的聚類中心,因此當數據量非常大時,演算法的時間開銷是非常大的。

(4). 對離群點很敏感。

(5). 從數據表示角度來說,在 Kmeans 中,我們用單個點來對 cluster 進行建模,這實際上是一種最簡化的數據建模形式。這種用點來對 cluster 進行建模實際上就已經假設了各 cluster的數據是呈圓形(或者高維球形)或者方形等分布的。不能發現非凸形狀的簇。但在實際生活中,很少能有這種情況。所以在 GMM 中,使用了一種更加一般的數據表示,也就是高斯分布。

(6). 從數據先驗的角度來說,在 Kmeans 中,我們假設各個 cluster 的先驗概率是一樣的,但是各個 cluster 的數據量可能是不均勻的。舉個例子,cluster A 中包含了10000個樣本,cluster B 中只包含了100個。那麼對於一個新的樣本,在不考慮其與A cluster、 B cluster 相似度的情況,其屬於 cluster A 的概率肯定是要大於 cluster B的。

(7). 在 Kmeans 中,通常採用歐氏距離來衡量樣本與各個 cluster 的相似度。這種距離實際上假設了數據的各個維度對於相似度的衡量作用是一樣的。但在 GMM 中,相似度的衡量使用的是後驗概率 αcG(x|μc,∑c)αcG(x|μc,∑c) ,通過引入協方差矩陣,我們就可以對各維度數據的不同重要性進行建模。

(8). 在 Kmeans 中,各個樣本點只屬於與其相似度最高的那個 cluster ,這實際上是一種 hard clustering 。

針對Kmeans演算法的缺點,很多前輩提出了一些改進的演算法。例如 K-modes 演算法,實現對離散數據的快速聚類,保留了Kmeans演算法的效率同時將Kmeans的應用范圍擴大到離散數據。還有K-Prototype演算法,可以對離散與數值屬性兩種混合的數據進行聚類,在K-prototype中定義了一個對數值與離散屬性都計算的相異性度量標准。當然還有其它的一些演算法,這里我 就不一一列舉了。

Kmeans 與 GMM 更像是一種 top-down 的思想,它們首先要解決的問題是,確定 cluster 數量,也就是 k 的取值。在確定了 k 後,再來進行數據的聚類。而 hierarchical clustering 則是一種 bottom-up 的形式,先有數據,然後通過不斷選取最相似的數據進行聚類。

Ⅸ 分類和聚類的區別及各自的常見演算法

1、分類和聚類的區別:
Classification (分類),對於一個classifier,通常需要你告訴它「這個東西被分為某某類」這樣一些例子,理想情況下,一個 classifier 會從它得到的訓練集中進行「學習」,從而具備對未知數據進行分類的能力,這種提供訓練數據的過程通常叫做supervised learning (監督學習),
Clustering (聚類),簡單地說就是把相似的東西分到一組,聚類的時候,我們並不關心某一類是什麼,我們需要實現的目標只是把相似的東西聚到一起。因此,一個聚類演算法通常只需要知道如何計算相似度就可以開始工作了,因此 clustering 通常並不需要使用訓練數據進行學習,這在Machine Learning中被稱作unsupervised learning (無監督學習).
2、常見的分類與聚類演算法
所謂分類,簡單來說,就是根據文本的特徵或屬性,劃分到已有的類別中。如在自然語言處理NLP中,我們經常提到的文本分類便就是一個分類問題,一般的模式分類方法都可用於文本分類研究。常用的分類演算法包括:決策樹分類法,樸素貝葉斯分類演算法(native Bayesian classifier)、基於支持向量機(SVM)的分類器,神經網路法,k-最近鄰法(k-nearestneighbor,kNN),模糊分類法等等。
分類作為一種監督學習方法,要求必須事先明確知道各個類別的信息,並且斷言所有待分類項都有一個類別與之對應。但是很多時候上述條件得不到滿足,尤其是在處理海量數據的時候,如果通過預處理使得數據滿足分類演算法的要求,則代價非常大,這時候可以考慮使用聚類演算法。
而K均值(K-mensclustering)聚類則是最典型的聚類演算法(當然,除此之外,還有很多諸如屬於劃分法K中心點(K-MEDOIDS)演算法、CLARANS演算法;屬於層次法的BIRCH演算法、CURE演算法、CHAMELEON演算法等;基於密度的方法:DBSCAN演算法、OPTICS演算法、DENCLUE演算法等;基於網格的方法:STING演算法、CLIQUE演算法、WAVE-CLUSTER演算法;基於模型的方法)。

Ⅹ 什麼是聚類分析

類通過把目標數據放入少數相對同源的組或「類」(cluster)里。分析表達數據,(1)通過一系列的檢測將待測的一組基因的變異標准化,然後成對比較線性協方差。(2)通過把用最緊密關聯的譜來放基因進行樣本聚類,例如用簡單的層級聚類(hierarchical clustering)方法。這種聚類亦可擴展到每個實驗樣本,利用一組基因總的線性相關進行聚類。(3)多維等級分析(multidimensional scaling analysis,MDS)是一種在二維Euclidean 「距離」中顯示實驗樣本相關的大約程度。(4)K-means方法聚類,通過重復再分配類成員來使「類」內分散度最小化的方法。
聚類方法有兩個顯著的局限:首先,要聚類結果要明確就需分離度很好(well-separated)的數據。幾乎所有現存的演算法都是從互相區別的不重疊的類數據中產生同樣的聚類。但是,如果類是擴散且互相滲透,那麼每種演算法的的結果將有點不同。結果,每種演算法界定的邊界不清,每種聚類演算法得到各自的最適結果,每個數據部分將產生單一的信息。為解釋因不同演算法使同樣數據產生不同結果,必須注意判斷不同的方式。對遺傳學家來說,正確解釋來自任一演算法的聚類內容的實際結果是困難的(特別是邊界)。最終,將需要經驗可信度通過序列比較來指導聚類解釋。
第二個局限由線性相關產生。上述的所有聚類方法分析的僅是簡單的一對一的關系。因為只是成對的線性比較,大大減少發現表達類型關系的計算量,但忽視了生物系統多因素和非線性的特點。
從統計學的觀點看,聚類分析是通過數據建模簡化數據的一種方法。傳統的統計聚類分析方法包括系統聚類法、分解法、加入法、動態聚類法、有序樣品聚類、有重疊聚類和模糊聚類等。採用k-均值、k-中心點等演算法的聚類分析工具已被加入到許多著名的統計分析軟體包中,如SPSS、SAS等。
從機器學習的角度講,簇相當於隱藏模式。聚類是搜索簇的無監督學習過程。與分類不同,無監督學習不依賴預先定義的類或帶類標記的訓練實例,需要由聚類學習演算法自動確定標記,而分類學習的實例或數據對象有類別標記。聚類是觀察式學習,而不是示例式的學習。
從實際應用的角度看,聚類分析是數據挖掘的主要任務之一。就數據挖掘功能而言,聚類能夠作為一個獨立的工具獲得數據的分布狀況,觀察每一簇數據的特徵,集中對特定的聚簇集合作進一步地分析。
聚類分析還可以作為其他數據挖掘任務(如分類、關聯規則)的預處理步驟。
數據挖掘領域主要研究面向大型資料庫、數據倉庫的高效實用的聚類分析演算法。
聚類分析是數據挖掘中的一個很活躍的研究領域,並提出了許多聚類演算法。
這些演算法可以被分為劃分方法、層次方法、基於密度方法、基於網格方法和
基於模型方法。
1 劃分方法(PAM:PArtitioning method) 首先創建k個劃分,k為要創建的劃分個數;然後利用一個循環
定位技術通過將對象從一個劃分移到另一個劃分來幫助改善劃分質量。典型的劃分方法包括:
k-means,k-medoids,CLARA(Clustering LARge Application),
CLARANS(Clustering Large Application based upon RANdomized Search).
FCM
2 層次方法(hierarchical method) 創建一個層次以分解給定的數據集。該方法可以分為自上
而下(分解)和自下而上(合並)兩種操作方式。為彌補分解與合並的不足,層次合
並經常要與其它聚類方法相結合,如循環定位。典型的這類方法包括:
第一個是;BIRCH(Balanced Iterative Recing and Clustering using Hierarchies) 方法,它首先利用樹的結構對對象集進行劃分;然後再利
用其它聚類方法對這些聚類進行優化。
第二個是CURE(Clustering Using REprisentatives) 方法,它利用固定數目代表對象來表示相應聚類;然後對各聚類按照指定
量(向聚類中心)進行收縮。
第三個是ROCK方法,它利用聚類間的連接進行聚類合並。
最後一個CHEMALOEN,它則是在層次聚類時構造動態模型。
3 基於密度方法,根據密度完成對象的聚類。它根據對象周圍的密度(如
DBSCAN)不斷增長聚類。典型的基於密度方法包括:
DBSCAN(Densit-based Spatial Clustering of Application with Noise):該演算法通過不斷生長足夠高密
度區域來進行聚類;它能從含有雜訊的空間資料庫中發現任意形狀的聚類。此方法將一個聚類定義
為一組「密度連接」的點集。
OPTICS(Ordering Points To Identify the Clustering Structure):並不明確產生一
個聚類,而是為自動交互的聚類分析計算出一個增強聚類順序。。
4 基於網格方法,首先將對象空間劃分為有限個單元以構成網格結構;然後利
用網格結構完成聚類。
STING(STatistical INformation Grid) 就是一個利用網格單元保存的統計信息進行基
於網格聚類的方法。
CLIQUE(Clustering In QUEst)和Wave-Cluster 則是一個將基於網格與基於密度相結合的方
法。
5 基於模型方法,它假設每個聚類的模型並發現適合相應模型的數據。典型的
基於模型方法包括:
統計方法COBWEB:是一個常用的且簡單的增量式概念聚類方法。它的輸入對象是采
用符號量(屬性-值)對來加以描述的。採用分類樹的形式來創建
一個層次聚類。
CLASSIT是COBWEB的另一個版本.。它可以對連續取值屬性進行增量式聚
類。它為每個結點中的每個屬性保存相應的連續正態分布(均值與方差);並利
用一個改進的分類能力描述方法,即不象COBWEB那樣計算離散屬性(取值)
和而是對連續屬性求積分。但是CLASSIT方法也存在與COBWEB類似的問題。
因此它們都不適合對大資料庫進行聚類處理.

閱讀全文

與聚類是一種常用的數據預處理方法相關的資料

熱點內容
簡單擦眼霜的正確使用方法圖 瀏覽:24
昂科威燒機油最簡單的修復方法 瀏覽:157
簡單小白菜種植方法 瀏覽:814
讓安卓手機出故障的方法 瀏覽:399
銅的顯微結構分析方法 瀏覽:758
繞組電阻檔的測量方法 瀏覽:66
devondale奶粉使用方法 瀏覽:243
黑枸杞剪枝方法圖片 瀏覽:549
汽車導航拆卸安裝方法 瀏覽:533
流鼻涕需要用什麼方法讓他治好 瀏覽:246
電熱棒使用方法 瀏覽:145
統計指數的計算方法 瀏覽:937
鐵皮石斛種植方法能種在石頭上 瀏覽:175
高冰種翡翠原石鑒別方法圖解 瀏覽:402
租房喝水的正確方法 瀏覽:823
月見草油的功效與作用及食用方法 瀏覽:5
玉樹菇食用方法 瀏覽:957
子宮上長了瘤子消除最佳方法 瀏覽:477
led燈接線柱焊接方法視頻 瀏覽:657
ipad如何隔空手勢操作方法 瀏覽:423