干貨分享 | 一文帶你玩轉DBSCAN密度聚類算法-技術前沿-資訊-生物在線

干貨分享 | 一文帶你玩轉DBSCAN密度聚類算法

作者:上海阿趣生物科技有限公司 2022-07-05T13:54 (訪問量:6381)

01.DBSCAN簡述

簡述

DBSCAN是一種無監督的ML聚類算法,輸入參數為Eps(距離參數)與MinPts(點個數閾值),基于密度的聚類算法可以發現任意形狀的聚類。在基于密度的聚類算法中,通過在數據集中尋找被低密度區域分離的高密度區域,將分離出的高密度區域作為一個獨立的類別。

根據基于中心的密度進行點的分類

密度基于中心的方法我們可以將點分類為以下3個:

  • 核心點:點的Eps范圍領域內點個數超過MinPts閾值
  • 邊界點:非核心點,但落于核心點鄰域內,單個邊界點可能落于多個核心點鄰域內
  • 噪聲點:非核心點也非邊界點的任何點

優勢與缺陷

DBSAN使用簇的基于密度的定義,因此它是相對抗噪聲的,能夠處理任意形狀和大小的簇,這一特點使其能夠發現使用K均值等其他距離聚類方式無法發現的簇。

在簇的密度變化過大的情況下,該聚類方式的靈敏度會大幅下降。同時在遇到高維數據時,對密度定義相對困難,需要進行額外降維。


02.DBSCAN代碼解析(基于Python,以鳶尾花數據為例)

詳細算法

計算歐氏距離:

def find_core(j, x, eps):
    N = list()
    for i in range(x.shape[0]):
        temp = np.sqrt(np.sum(np.square(x[j] - x[i])))  # 計算歐式距離
        if temp <= eps:
            N.append(i)
    return set(N)

具體聚類過程:

def DBSCAN(X, eps, min_Pts):
    k = -1
    eps_list = []
    core_list = []
    point = set([x for x in range(len(X))])
    cluster = [-1 for _ in range(len(X))]# 進行聚類
    for i in range(len(X)):
        eps_list.append(find_core(i, X, eps))
        if len(eps_list[-1]) >= min_Pts:
            core_list.append(i)
    core_list = set(core_list)
    while len(core_list) > 0:
        point1 = copy.deepcopy(point)
        j = random.choice(list(core_list))#隨機選取核心點
        k = k + 1
        Q = list()
        Q.append(j)
        point.remove(j)
        while len(Q) > 0:
            q = Q[0]
            Q.remove(q)
            if len(eps_list[q]) >= min_Pts:
                delta = eps_list[q] & point
                deltalist = list(delta)
                for i in range(len(delta)):
                    Q.append(deltalist[i])
                    point = point - delta
        ball = point1 - point
        listball = list(ball)
        for i in range(len(ball)):
            cluster[listball[i]] = k
        core_list = core_list - ball
    return cluster

結果展示

eps=0.5、min_Pts=9(以鳶尾花數據為例)

03.Scikit-learn中的DBSCAN的使用

Scikit-learn中集成了DBSCAN算法,具體參數如下:

def __init__(self, eps=0.5, min_samples=5, metric='euclidean',
                 metric_params=None, algorithm='auto', leaf_size=30, p=None,
                 n_jobs=1)
上海阿趣生物科技有限公司 商家主頁

地 址: 嘉定區新培路51號焦點夢想園5層

聯系人: 高小姐

電 話: 400-664-9912

傳 真:

Email:marketing@biotree.cn

相關咨詢

Circulation (IF=38.7)|上海兒童醫學中心張浩/劉一為聯合南京鼓樓醫院王東進團隊破解肥胖心衰患者LVAD療效困局,胰島素增敏劑點亮心肌恢復新希望! (2026-04-25T00:00 瀏覽數:8027)

J. Adv. Res. (IF=13)|血漿蛋白質組學賦能:暴發性心肌炎精準診斷與靶向治療新突破 (暫無發布時間 瀏覽數:7503)

NP(IF=8.1)|西北農林研究團隊解碼黑枸杞“高品質密碼”:光響應轉錄調控網絡如何驅動類黃酮合成與藥用活性? (暫無發布時間 瀏覽數:7527)

LWT(IF=6.6)|四川大學研究團隊通過同位素標記代謝流與脂質組學的“夢幻聯動”,帶你看清酵母的耐鹽策略 (暫無發布時間 瀏覽數:8206)

破微量極限,啟代謝新程|微量NGM 3 Pro,以微量樣本,全景解碼生命代謝 (暫無發布時間 瀏覽數:8199)

JEP (IF=5.4)|福建中醫藥大學研究團隊:多組學揭秘丹瓜方調控GLUD1改善糖尿病代謝機制 (暫無發布時間 瀏覽數:9432)

Food Chem.(IF=9.8)|南農陳暄教授研究團隊多組學揭秘:云南“金花茶”的風味煉金術—匍匐散囊菌如何點“茶”成“香”? (暫無發布時間 瀏覽數:9698)

J.Agric.Food Chem.(IF=6.2)|中國熱科院胡偉/丁澤紅團隊突破性成果!解碼木薯塊根3類蛋白修飾圖譜,解鎖淀粉積累與抗逆調控密碼 (暫無發布時間 瀏覽數:9885)

nat commun(IF=15.7)|北大白玉教授團隊突破靜態局限:動態單細胞代謝組學揭秘腫瘤-巨噬細胞互作新機制 (暫無發布時間 瀏覽數:11445)

nat.commun.(IF=15.7)|復旦大學附屬中山醫院詹成團隊:靶向多胺代謝提升KRAS靶向藥療效 (暫無發布時間 瀏覽數:12697)

ADVERTISEMENT