1. 程式人生 > >【演算法】聚類和分類

【演算法】聚類和分類

目錄

一、聚類和分類的區別

簡單的說,聚類的分析沒有學習集,而分類有學習集

二、常用聚類演算法

1.動態聚類:K-means方法

演算法步驟:

1.選擇K個點作為初始質心

      2.將每個點指派到最近的質心,形成K個簇(聚類)

      3.重新計算每個簇的質心 4 重複2-3直至質心不發生變化

K-means演算法的優缺點:

   1.有效率,而且不容易受初始值選擇的影響

   2.不能處理非球形的簇

           3.不能處理不同尺寸,不同密度的簇

           4.離群值可能有較大幹擾(因此要先剔除)

2.基於有代表性的點的技術:K中心聚類法

  演算法步驟:

   1. 隨機選擇k個點作為“中心點”

         2 .計算剩餘的點到這k箇中心點的距離,每個點被分配到最近的中心點組成聚簇

         3. 隨機選擇一個非中心點Or,用它代替某個現有的中心點Oj,計算這個代換的總代價S

         4 .如果S<0,則用Or代替Oj,形成新的k箇中心點集合

         5 重複2,直至中心點集合不發生變化

      K中心法的實現:PAM-使用離差平方和來計算成本S

      K中心法的優缺點:

           1. 對於“噪音較大和存在離群值的情況,K中心法更加健壯,不像 Kmeans那樣容易受到極端資料影響

            2.執行代價更高

3.基於密度的方法: DBSCAN(DBSCAN = Density-Based Spatial Clustering of Applications with Noise)

     本演算法將具有足夠高密度的區域劃分為簇,並可以發現任何形狀的聚類

     演算法基本思想

         1 指定合適的 r 和 M

         2 計算所有的樣本點,如果點p的r鄰域裡有超過M個點,則建立一個以p為核心點的新簇

         3 反覆尋找這些核心點直接密度可達(之後可能是密度可達)的點,將其加入到相應的簇 ,對於核心點發生“密度相連”狀況的簇,給予合併

         4 當沒有新的點可以被新增到任何簇時,演算法結束   

         注:(r-鄰域:給定點半徑r內的區域

                 核心點:如果一個點的r-鄰域至少包含最少數目M個點,則稱該點為核心點

                 直接密度可達:如果點p在核心點q的r-鄰域內,則稱p是從q出發可以直接密度可達 如果存在點鏈p1 ,p2 , …, pn,p1=q,pn=p,

         pi+1是從pi關於r和M直接密度可達,則稱點p 是從q關於r和M密度可達的

                 如果樣本集D中存在點o,使得點p、q是從o關於 r和M密度可達的,那麼點p、q是關於r 和M密度相連的)

4.主成分分析法

    原理及內容:

             通過析取主成分顯出最大的個別差異,也用來削減迴歸分析和聚類分析中變數的數目

             可以使用樣本協方差矩陣或相關係數矩陣作為出發點進行分析

             成分的保留:Kaiser主張(1960)將特徵值小於1的成分放棄,只保留特徵值大於1的 成分

             如果能用不超過3-5個成分就能解釋變異的80%,就算是成功***

             通過對原始變數進行線性組合,得到優化的指標

             把原先多個指標的計算降維為少量幾個經過優化指標的計算(佔去絕大部分份額)

     基本思想:設法將原先眾多具有一定相關性的指標,重新組合為一組新的互相獨立的 綜合指標,並代替原先的指標

     主成分分析的直觀幾何意義:

              

三、常用分類演算法

1.線性判別法

  原理:用一條直線來劃分學習集(這條直線不一定存在嗎?),然後根據待測點在直線的哪一邊決定它的分類

  

 2.距離判別法(關鍵度量指標:距離

原理:計算待測點與各類的距離,取最短者為其所屬分類

常用距離:

1.絕對值距離

           2. 歐氏距離

            3.閔可夫斯基距離

            4.切比雪夫距離

            5.馬氏距離

            6.Lance和Williams距離

            7.離散變數的距離計算

各種類與類之間距離計算的方法:

         1.最短距離法

         2.最長距離法

         3.中間距離法

         4.類平均法

         5.重心法

         6.離差平方和法

 3.貝葉斯分類法

  原理:

 4.決策樹 decision tree

 原理:輸入:學習集→分類模型(分類器)→分類規則(決策樹)

 5. Knn演算法(k近鄰演算法)

 演算法主要思想:

  1.選取k個和待分類點距離最近的樣本點

  2.看1中的樣本點的分類情況,投票決定待分類點所屬的類

 6. 人工神經網路(ANN=Artificial Neural Networks)

     

 影響精度的因素:

        1.訓練樣本數量

        2.隱含層數與每層節點數。層數和節點太少,不能建立複雜的對映關係,預測誤差較大 。但層數和節點數過多,學習時間增加,還會產生“過度擬合”的可能。預測誤差隨 節點數呈現先減少後增加的趨勢。

        3.啟用函式的影響

 神經網路方法的優缺點:

        1.可以用統一的模式去處理高度複雜問題

        2.便於元器件化,形成物理機器

        3.中間過程無法從業務角度進行解釋

        4.容易出現過度擬合問題

 7.支援向量機 SVM 

支援向量機,英文為Support Vector Machine,簡稱SV機。它是一種監督式學習的方法,它廣泛的應用於統計分類以及迴歸分析中。支援向量機將向量對映到一個更高維的空間裡,在這個空間裡建立有一個最大間隔超平面。在分開資料的超平面的兩邊建有兩個互相平行的超平面,分隔超平面使兩個平行超平面的距離最大化。

優化目標:決策邊界邊緣距離最遠