1. 程式人生 > >聚類(clustering):一種無指導的學習演算法

聚類(clustering):一種無指導的學習演算法

       聚類是一種無監督的學習的結果,聚類的結果就是產生一組集合,集合中的物件與同集合中的物件彼此相似,與其他集合的物件相異。聚類演算法是推薦給初學者的演算法,因為該演算法不僅十分簡單,而且還足夠靈活以面對大多數問題都能給出合理的結果。
       常用的聚類演算法:

  • K均值聚類演算法(K-mensclustering)是最經典的聚類演算法
  • AP聚類(Affinity Propagation)
  • DBSCAN演算法
K均值聚類演算法

       K均值聚類是一種通用目的的演算法,聚類的度量基於樣本之間的幾何距離(即在座標平面中的距離)。叢集是圍繞在聚類中心的族群,而叢集呈現出類球狀並具有相似的大小。

  • 優點:K均值聚類是最流行的聚類演算法,因為該演算法足夠快速、簡單,並且如果你的預處理資料和特徵工程十分有效,那麼該聚類演算法將擁有令人驚歎的靈活性。
  • 缺點:該演算法需要指定叢集的數量,而K值的選擇通常都不是那麼容易確定的。另外,如果訓練資料中的真實叢集並不是球狀的,那麼K均值聚類會得出一些比較差的叢集。
  • Python實現:
  • R實現:
AP聚類

       AP聚類演算法是一種相對較新的聚類演算法,該聚類演算法基於兩個樣本點之間的圖形距離(graph distances)確定叢集。採用該聚類方法的叢集擁有更小的不相等的大小。

  • 優點:該演算法不需要指出明確的叢集數量(但是需要指定[sample preference]和[damping]等超引數)。
  • 缺點:AP聚類演算法主要的缺點就是訓練速度比較慢,並且需要大量記憶體,因此也就很難擴充套件到大資料集中。另外,該演算法同樣假定潛在的叢集是類球狀的。
  • Python實現:
  • R實現:
層次聚類:

       層次聚類是一種基於以下概念的聚類演算法:
       1.最開始由一個數據點作為一個叢集
       2.對於每個叢集,基於相同的標準合併叢集
       3.重複這一過程知道留下一個叢集,因此就得到了積極群的層次結構

  • 優點:層次聚類最主要的優點是叢集不再需要假設為類球形。另外其也可以擴充套件到大資料集。
  • 缺點:有點像 K 均值聚類,該演算法需要設定叢集的數量(即在演算法完成後需要保留的層次)。
  • Python 實現:
  • R 實現:
DBSCAN:

       DBSCAN是一個基於密度的演算法,它將樣本點的密集區域組成一個叢集,最近還有一項被稱為HDBSCAN的新進展,它允許改變密度叢集。

  • 優點:DBSCAN不需要假設叢集為球狀,並且它的效能是可擴充套件的。此外,它不需要每個點都奔分配到一個叢集中,這降低了叢集的異常資料。
  • 缺點:使用者必須要調整[epsilon]和[min_sample]這兩個定義了叢集密度的超引數。DBSCAN這些超引數非常敏感。
  • Python實現:
  • R實現:

相關推薦

(clustering指導學習演算法

       聚類是一種無監督的學習的結果,聚類的結果就是產生一組集合,集合中的物件與同集合中的物件彼此相似,與其他集合的物件相異。聚類演算法是推薦給初學者的演算法,因為該演算法不僅十分簡單,而且還足夠靈活以面對大多數問題都能給出合理的結果。        

思考(四十四全服郵件的實現方法

背景假設 考慮到大量玩家線上、以及更多未線上玩家 並假設邏輯服是可以多開的 本文術語 GMTool 能夠傳送 全服郵件 的客戶端 GMServer 給 GMTool 提供服務的伺服器程式

思考(四十五通用郵件服務SDK的實現方法

SDK 製作思路 SDK 不干涉使用方使用什麼網路模組、協議 SDK 不干涉使用方伺服器組內部架構 使用方只需要關注 SDK 介面用法,不需要關注 SDK 內部郵件協議、格式 Client SDK

吳恩達機器學習(十K-means(監督學習演算法

目錄 0. 前言 學習完吳恩達老師機器學習課程的無監督學習,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。 如果這篇文章對你有一點小小的幫助,請給個關注喔~我會非常開心

演算法推薦學習的方法

摘要:元學習是一種技術,其目的在於理解什麼型別的演算法解決什麼型別的問題。相比之下,聚類是基於物件的相似性把一個數據集劃分幾個簇,不需要物件類標籤的先驗知識。本文提出了基於無標籤物件特徵的提取,使用元學習推薦出聚類演算法。基於將要被計算的聚類問題的特徵以及不同聚類演算法的排

機器學習——clusteringK-means演算法(非監督學習

1、歸類 聚類(clustering):屬於非監督學習(unsupervised learning),是無類別標記(class label) 2、舉例 3、K-means演算法 (1)K-means演算法是聚類(clustering)中的經典演算法,資料探勘的十大經典演算

Android全局可調試(ro.debuggable = 1改法

cal size kill -9 detach root img 地址 poke service 網上流傳比較多的,是重打包boot.img。讀aosp的init進程源碼,發現通過patch init進程也可以實現相同目的。 首先看一下init進程對ro只讀屬性的檢查: /

原型鏈與繼承(常見繼承模式

一、原型鏈繼承: function SuperType(){ this.colors = ["red", "blue", "green"]; } SuperType.prototype.Fun = function(){ }; function SubType(){ } //

隨機樣本一致性用於影象分析和自動製圖的模型擬合模型(5--(P4P的解析解

(一)P4P問題的解析解 條件:已知物平面和像平面中的四對同名像點;透視中心到像平面的距離(即攝影系統的焦距);像平面中主光點的位置(位置,也就是像平面中的座標,該點是主光軸在像平面上的焦點); 求解:透視中心相對於物方座標系統下的3維位置。 符號說明: (1)像

JWT(JSON WEB TOKENS-狀態的認證機制

轉載自:http://www.tuicool.com/articles/R7Rj6r3 JWT(JSON Web Tokens ) ———— 一種無狀態的認證機制 一、什麼是JWT? JWT是一種用於雙方之間傳遞安全資訊的簡潔的、URL安全的表述性宣告規範。JWT作

模糊有效性指標(

在聚類時,有時我們不知道一個數據的最佳聚類數,在這個部落格中給出驗證聚類的有效性指標。 1. Xi e一 Beni指標XB (Xi e & Beni, 1991年) XB指標尋找類內緊湊度和類間分離度之間的某個平衡點。 其中 類內緊湊度

Scikit-learnclustering

不同聚類效果比較sklearn不同聚類示例比較A comparison of the clustering algorithms in scikit-learn不同聚類綜述Method nameParametersScalabilityUsecaseGeometry (met

架構設計遠端呼叫服務的設計構思(zookeeper的應用實踐

在深入學習zookeeper我想先給大家介紹一個和zookeeper相關的應用例項,我把這個例項命名為遠端呼叫服務。通過對這種應用例項的描述,我們會對zookeeper應用場景會有深入的瞭解。   遠端呼叫是系統與系統之間的通訊機制,它的另一種理解就是程序間的通訊。做分散式

windows下併發I/O伺服器模型對比(5併發I/O伺服器模型

windows下併發I/O伺服器模型對比 windows下有5種併發I/O伺服器模型,羅列他們,並簡述其優缺點。每一種更高階的模型,都是基於解決它的前一種模型的不足而誕生的。只有瞭解了他們之間的差別,才能理解他們的優缺點,才能更好地做出適合於產品與專案的選擇。

資料結構之程式效能檢測(排序演算法·對比

先上程式碼: #include<stdio.h> #include<time.h> # define MAX_SIZE 1001 void sort(int *a, int n); void sort2(int *a, int n)

八大排序(簡單的排序(直接插入排序、希爾排序、氣泡排序、選擇排序

一、直接插入排序 直接插入排序基本思想是每一步將一個待排序的記錄,插入到前面已經排好序的有序序列中去,直到插完所有元素為止。 直接插入排序演算法的運作如下: 假設有一組無序序列 R0, R1, … , RN-1。 (1) 我們先將這個序列中下標為 0

算法(--Kmeans

歐氏距離 find and init 百度 kmeans methods 生成 each 原始Kmeans原理: Kmeans為無監督學習(即樣本無標簽,簡單理解為沒有Y值,只有X) Kmeans將給定的樣本分為k個類,每一類成為一簇(clustering),目標是讓每

Django學習案例(blog.創建項目、APP

文件夾 靜態 com 服務器 pro temp serve 數據 一個個 1.創建project 方法一:使用命令行創建項目。在D盤cmd執行如下命令: django-admin.py startproject myblog 方法二:使用pycharm創建項目。放置位置

分析比特幣網絡去中心化、點對點的網絡架構

比特幣 區塊鏈 比特幣采用了基於互聯網的點對點(P2P:peer-to-peer)分布式網絡架構。比特幣網絡可以認為是按照比特幣P2P協議運行的一系列節點的集合。本文來分析下比特幣網絡,了解它跟傳統中心化網絡的區別,以及比特幣網絡是如何發現相鄰節點的。中心化網絡為了更好的理解P2P網絡,我們先來看看傳