當前位置:首頁 » 操作系統 » 文本最新演算法

文本最新演算法

發布時間: 2023-06-16 18:01:56

1. 利用神經網路進行文本分類演算法綜述(持續更新中)

傳統的文本分類一般都是使用詞袋模型/Tf-idf作為特徵+機器學習分類器來進行分類的。隨著深度學習的發展,越來越多的神經網路模型被用來進行文本分類。本文將對這些神經網路模型做一個簡單的介紹。

本文介紹了一種詞向量模型,雖然算不得文本分類模型,但由於其可以說是fasttext的基礎。因此也簡單提一下。

作者認為cbow和skipgram及大部分詞向量模型都沒有考慮到單詞的多態性,而簡單的將一個單詞的多種形態視為獨立的單詞。例如like的不同形式有likes,liking,liked,likes,這些單詞的意思其實是相同的,但cbow/skipgram模型卻認為這些單詞是各自獨立的,沒有考慮到其形態多樣性。

因此作者提出了一個可以有效利用單詞字元級別信息的n-gram詞向量模型,該模型是以skipgram模式實現的。例如單詞 where,其n-gram表示為<wh, whe, her, ere, re>, where。其中<>分別表示前後綴。在原始的skipgram模型中,輸入僅僅只是where的onehot向量,而在此模型中輸入則變成了<wh, whe, her, ere, re>, where的onehot編碼的加和,有效的利用了字元級別的信息,因此效果更加好。

而在loss方面,文中採用了負采樣+binary LogisticRegression的策略。即對每一個目標單詞都預測為正負中的一種。

在本文中作者提供了一個基於神經網路的文本分類模型,這個模型是基於cbow的,與cbow非常類似。

和CBOW一樣,fastText模型也只有三層:輸入層、隱含層、輸出層(Hierarchical Softmax),輸入都是多個經向量表示的單詞,輸出都是一個特定的target,隱含層都是對多個詞向量的疊加平均。不同的是,CBOW的輸入是目標單詞的上下文,fastText的輸入是多個單詞及其n-gram特徵的embeding表示方式,這些特徵用來表示單個文檔;CBOW的輸入單詞被onehot編碼過,fastText的輸入特徵是被embedding過;CBOW的輸出是目標詞彙,fastText的輸出是文檔對應的類標。輸出層的實現同樣使用了層次softmax,當然如果自己實現的話,對於類別數不是很多的任務,個人認為是可以直接使用softmax的。

最後,貼一個Keras的模型fasttext簡化版。

基於詞向量表示,本文提出利用卷積神經網路來進行文本分類。其演算法如上圖所示:

在本文中,作者嘗試了多種不同的詞向量模式:

在上一篇文章中CNN網路的輸入一般是預訓練好的詞向量,而在本文中作者提出一種直接將embedding訓練與分類任務結合在一起,且能有效提取/保留詞序信息,也即有效訓練出n-gram的模型方法,其實也可以理解為一種利用CNN來進行embedding的方法。

此外,另一個問題是輸入序列長度變化問題(在上一篇文章textCNN中通過padding解決的?),在本文作者提出使用一個動態可變的pooling層來解決這個問題,使得卷積層輸出的大小是相同的。關於可變pooling其實與圖像識別中的 空間金字塔池化 (Spatial Pyramid Pooling) 是類似的。

這篇文章有點將fastText與TextCNN結合在一起的感覺,將n-gram embedding與分類任務結合在了一起進行訓練,通過CNN來進行Embedding。

Text Categorization via Region Embedding》

在本篇文章中作者提出了一個tv-embedding(即two-view embedding),它也屬於region embedding(也可以理解為ngram embedding)。這種方法與上面的bow-CNN表示相似,使用bow(bag of words)的方式來表示一個區域的詞句,然後通過某個區域(region,左右鄰域的單詞或詞句)來預測其前後的區域(單詞或詞句),即輸入區域是view1,target區域是view2。tv-embedding是單獨訓練的,在使用的時候與CNN中的embedding組合在一起(形成多個channel?)。作者認為,word2vec方法預訓練得到的embedding向量是普適性的,而通過特定任務的數據集的訓練得到tv-embedding具有任務相關的一些信息,更有利於提升我們的模型效果。

吐槽一下,這篇文章沒太看懂,也可能是英語太差,作者文章中沒有那種一眼就能讓人理解的網路圖,像textCNN的圖就非常一目瞭然,看圖就知道是怎麼做的了。

本文提出了一個使用監督學習加半監督預訓練的基於LSTM的文本分類模型。文章作者與上面相同,所以用到的很多技術可以說與上面也是同出一轍。因此簡單說下本文的一些思路。

作者認為已有的直接使用LSTM作為文本分類模型並直接將LSTM的最後一個輸出作為後續全連接分類器的方法面臨兩個問題:(1)這種方式一般都是與word embedding整合在一起(即輸入onehot經過一個embedding層再進入LSTM),但是embedding訓練不穩定,不好訓練;(2)直接使用LSTM最後一個輸出來表示整個文檔不準確,一般來說LSTM輸入中後面的單詞會在最後輸出中佔有較重的權重,但是這對於文章表示來說並不總是對的。因此作者對這兩點進行了改進:

本文其實可以看作是作者將自己前面的tv-embedding半監督訓練與RCNN的一個融合吧,大有一種一頓操作猛如虎,一看人頭0-5的感覺(因為作者的實驗結果跟一般的CNN相比其實也搶不了多少)。

本文的作者也是前面兩篇使用CNN來進行文本分類處理的文章的作者。因此在本文中,結合了前面兩篇文章提出的一些方法,並使用了一個深層的卷積神經網路。具體的細節包括:

更多詳細的關於DPCNN的細節可以查看 從DPCNN出發,撩一下深層word-level文本分類模型 。

本文提出了一種基於CNN+Attention的文本分類模型。作者認為已有的基於CNN的文本分類模型大都使用的是固定大小的卷積核,因此其學習到的表示也是固定的n-gram表示,這個n與CNN filter大小相關。但是在進行句子的語義表示時,不同句子發揮重要作用的ngram詞語常常是不同的,也即是變化的。因此,模型能根據句子來自適應的選擇每個句子最佳的n-gram對於提升模型的語義表示能力是非常關鍵的。本文便是由此思路提出了一種自適應的來選擇不同n-gram表示的模型。

本文模型在主題結構上參照了CV中的DenseNet,藉由DenseNet中的稠密連接來提取到豐富的n-gram特徵表示。舉例來說,在layer3的特徵不僅能學習到f(x1, x2, x3),還能學習到f(x1(x2,x3))這種更多層次,更加豐富的特徵。網路的結構主要包括三部分:DenseCNN主網路,Attention mole和最後的全連接層分類網路。下面對這三部分進行簡單的說明:

本文通過Dense connection + Attention來自動獲取對於文本語義最重要的n-gram特徵,結果很好。但是缺點是,這個網路比較適合較短的文本,文中對輸入文本進行了padding補齊,對於不同數據集最大長度分別為50,100等,但這對於較長的文本明顯是不足的。因此對於較長的文本或許HAN這種借用RNN來不限制輸入長短的網路會更好。

本文提出了一種結合循環神經網路(RNN)和卷積神經網路來進行文本分類的方法,其結構如上圖所示,該網路可以分為三部分:

雖然說是RNN與CNN的結合,但是其實只用到了CNN中的pooling,多少有一點噱頭的意思。文中還提到了RCNN為什麼比CNN效果好的原因,即為什麼RCNN能比CNN更好的捕捉到上下文信息:CNN使用了固定大小window(也即kernel size)來提取上下文信息,其實就是一個n-gram。因此CNN的表現很大程度上受window大小的影響,太小了會丟失一些長距離信息,太大了又會導致稀疏性問題,而且會增加計算量。

在眾多自然語言處理任務中,一個非常突出的問題就是訓練數據不足,且標注難度大。因此文本提出了一種多任務共享的RNN模型框架,其使用多個不同任務數據集來訓練同一個模型共享參數,已達到擴充數據集的作用。

文中作者提出了三個模型,如上圖所示:

三個模型的訓練方式相同:

本文提出了一個層次LSTM+Attention模型。作者認為,雖然一篇文章有多個句子組成但真正其關鍵作用的可能是其中的某幾個,因此對各個句子施加了注意力機制,以使得對文章語義貢獻較多的句子佔有更多的權重。同樣的,組成一個句子的單詞有多個,但是發揮重要作用的可能就那麼幾個,因此使用注意力機制以使得重要單詞發揮更大的作用,這些便是本文的核心思想。整個網路可分為三層,兩個LSTM層分別用來進行word encode和sentence encode,最頂上為一個全連接分類層。若加上兩層注意力層,則可認為網路為5層。下面簡單聊聊這五層網路的結構:

總體來說,本文看起來還是比較有意思的,符合人閱讀文章的習慣,我們寫文章的時候也是有中心詞和中心句的。但是由於這個層級結構是否會導致訓練慢或者不好訓練還不得而知。最後,文中還提出對文章按長短先進行排序,長度相似的進入一個batch,這將訓練速度加快了3倍。

本文提出了一個基於圖神經網路的文本分類方法。該方法的主要思想是將所有文章及其包含的詞彙都放到一個圖網路裡面去,圖網路中的節點分為兩種類型:單詞節點和文章節點。其中連接單詞節點和文章節點的邊的權重使用TF-IDF來表示,而單詞與單詞之間邊的權重則是使用點互信息(PMI)來表示。點互信息與傳統語言模型中的條件概率計算方式非常相似。只不過PMI採用的是滑窗方式而條件概率是直接在所有語料中進行統計,可以認為是將所有語料當做一個大窗口,這時就又與PMI相同了。

A表示圖網路的鄰接矩陣,表示如下:

GCN同樣也是可以含有多層隱藏層的,其各個層的計算方式如下:

其中A'為歸一化對稱鄰接矩陣, W0 ∈ R^(m×k) 為權重矩陣,ρ是激活函數,例如 ReLU ρ(x) = max(0,x) 如前所述,可以通過疊加多個GCN層來合並更高階的鄰域信息:

其中j表示層數。
損失函數定義為所有已標記文檔的交叉熵誤差:

文中提到Text GCN運行良好的原因有兩個方面:

但是其也有一些缺:

總的來說,文章的idea還是挺有意思的,效果也還不錯。初識GCN可能還是有一點難以理解,可以參考如下資料進行進一步學習:
基於圖卷積網路的文本分類演算法
如何理解 Graph Convolutional Network(GCN)?

2. 文本、語音相似度演算法

前段時間公司項目用到了語音識別,圖像識別,視頻識別等,其實不能說是識別,應該說是相似度對比吧,畢竟相似度對比還上升不了到識別哈,等以後有了更深的理解再來討論修改下!這次就當做一個總結吧!

其實它的原理和視頻圖像相似度演算法類似,將一系列的向量,特徵,權重,進行合並,然後降維降到一維,其實這個演算法也就是採用降維技術,將所有的特徵都用一個唯一標識來表示.然後這個標識是經過這個演算法內部的計算,再利用海明距離計算相似度,視頻和圖片是經過漢明距離計算的

文本我們是採用simhash演算法:

1.我們給文本裡面的詞進行分詞,我們是用ik演算法,這個演算法就是while循環,讀取一行,然後調用ik智能分詞的類,智能去切割裡面的分詞;

2.根據裡面的詞頻,simhash演算法會加一個權重,當然,得詞頻達到多少個的時候才會有有權重,這也是它的缺點,一般文本數據較少的時候,他是不準確的,一般數據量在500+;演算法內部的話會將一系列的向量,特徵,權重,進行合並,然後降維降到一維,其實這個演算法也就是採用降維技術,將所有的特徵都用一個唯一標識來表示.然後這個標識是經過這個演算法內部的計算,然後得到的一個指紋簽名;

3.然後對比兩個文本的相似度就是將兩個指紋簽名進行海明距離計算,如果海明距離<8(根據業務和場景去判斷這個值,8是建議,參考)的話,表示兩個相似,小於3的話.表示兩個文本重復.

simhash演算法我們還可以做語音相似度,它的基本原理就是根據傅里葉變換處理得到聲波的形狀。

語音的坡度如果向上我們就用1表示,向下我們就用0表示,這樣的話,我們也可以用二進制碼去描述一首歌曲.得到一個唯一的指紋簽名,對比兩個音頻的相似度就是將兩個指紋簽名進行海明距離計算<8的話,我們就默認兩個音頻相似.

總結:都是把特徵降到一維,然後採用海明距離計算。計算的值小於多少時,就當做是相似。我這邊講的太淺了,實在領悟有限,時間有限,觸摸不深,等下次有新的領悟再來補充!

3. 技術 | 文本聚類與分類

按照處理的對象和處理的方法不同,可將常見文本分類/聚類任務分為以下幾種:

① 文檔聚類: 把一組未知類別的文檔劃分為若干類別,例如將介紹奧運會的新聞都歸到某一類;

② 文檔分類: 給定一個文檔,將其劃分到預定義好的某一個類別中,例如將所有介紹奧運會的新聞都標記為「體育」;

③ 詞彙聚類: 把一組未知類別的詞彙劃分為若干類別,例如將各種運動的項目名稱(詞彙)都歸為一類;

④ 詞彙分類: 給定一個詞彙,將其劃分到預定義好的某一個類別中,例如將籃球、足球等都比較為球類,將打獵、射箭等都標記為射擊。

要實現上述目的,通常有以下幾個核心問題要解決:

1. 特徵選擇

1.1 用什麼作為特徵項

用於表示文本的基本單位通常稱為文本的特徵或特徵項。特徵項必須滿足:能夠標識文本內容、能夠將目標文本與其他文本相區分、個數不能太多、特徵項分離要比較容易實現。在中文文本中可以採用字、詞或短語作為表示文本的特徵項。

相比較而言,詞比字具有更強的表達能力,而詞和短語相比,詞的切分難度比短語的切分難度小得多。因此,目前大多數中文文本分類系統都採用詞作為特徵項,稱作特徵詞。這些特徵詞作為文檔的中間表示形式,用來實現文檔與文檔、文檔與用戶目標之間的相似度計算 。

1.2 選取哪些作為特徵項

如果把所有的詞都作為特徵項,那麼特徵向量的維數將過於巨大,從而導致計算量太大,在這樣的情況下,要完成文本分類幾乎是不可能的。特徵提取的主要功能是在不損傷文本核心信息的情況下盡量減少要處理的單詞數,以此來降低向量空間維數,從而簡化計算,提高文本處理的速度和效率。

特徵選取的方式有2種:用映射或變換的方法把原始特徵變換為較少的新特徵(將原始特徵用新特徵表示);從原始特徵中挑選出一些最具代表性的特徵(只保留部分原始特徵,不產生新特徵),即根據某個特徵評估函數計算各個特徵的評分值,然後按評分值對這些特徵進行排序,選取若干個評分值最高的作為特徵詞,常見的特徵評估函數包括TF-IDF、信息增益、互信息等。

2. 文本表示

2.1 如何表示文檔

為了讓計算機能夠「計算」文本,就需要我們將文本數據轉換成計算機可以處理的結構化數據。常見的文本表示模型有布爾模型、向量空間模型、統計主題模型等。其中,向量空間模型概念簡單,把對文本內容的處理簡化為向量空間中的向量運算,並且它以空間上的相似度表達語義的相似度,直觀易懂,目前應用最廣。

2.2 如何確立權重

一篇文檔有很多詞,有些詞表達的語義很重要,有些相對次要,那麼如何確定哪些重要?哪些次要呢?因此,需要進一步對每個詞的重要性進行度量。常見的確立詞彙權重的演算法有TF-IDF、詞頻法等。

3. 相似性計算

要實現文本的分類和聚類,需要設計一種演算法計算出文檔與文檔、詞彙與詞彙之間的相似性。

3.1 文檔相似性

設定我們要比較X和Y間的差異,它們都包含了N個維的特徵,即X=(x1, x2, x3, … xn),Y=(y1, y2, y3, … yn)。下面來看看主要可以用哪些方法來衡量兩者的差異,主要分為距離度量和相似度度量。

a. 距離度量

距離度量(Distance)用於衡量個體在空間上存在的距離,距離越遠說明個體間的差異越大。常見的距離有歐幾里得距離(Euclidean Distance)、明可夫斯基距離(Minkowski Distance)、曼哈頓距離(Manhattan Distance)、切比雪夫距離(Chebyshev Distance)、馬哈拉諾比斯距離(Mahalanobis Distance)。

b. 相似性度量

相似度度量(Similarity),即計算個體間的相似程度,與距離度量相反,相似度度量的值越小,說明個體間相似度越小,差異越大。常見的相似性度量有向量空間餘弦相似度(Cosine Similarity)、皮爾森相關系數(Pearson Correlation Coefficient)、Jaccard相似系數(Jaccard Coefficient)、調整餘弦相似度(Adjusted Cosine Similarity)。

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

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

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

3.2 詞彙相似性

目前我接觸的常見詞彙相似性的方法有:

a. 傳統圖情領域:基於共現頻次這一基本統計量衍生出來的,如association strength、inclusion index、Jaccard』s coefficient、Salton』s cosine(Ochiia系數)等;

b. 計算機領域:一是基於語義詞典的方法,即依據詞典分類體系挖掘所包含的詞義知識,常用的詞典包括Wordnet、Hownet等;二是基於語料庫的方法,這里的語料庫較為多元,例如網路預料、唐詩宋詞預料等;;三是進行詞向量化,如Word2vec。

4. 文本分類/聚類演算法

有了文本表示方法,又有了計算相似性的公式,下一步就可以在此基礎上討論文本分類/聚類的演算法了。

4.1 文本分類

醫生對病人進行診斷就是一個典型的分類過程,任何一個醫生都無法直接看到病人的病情,只能觀察病人表現出的症狀和各種化驗檢測數據來推斷病情,這時醫生就好比一個分類器,而這個醫生診斷的准確率,與他當初受到的教育方式(構造方法)、病人的症狀是否突出(待分類數據的特性)以及醫生的經驗多少(訓練樣本數量)都有密切關系。

分類器是對樣本進行分類的方法的統稱,包含決策樹、邏輯回歸、樸素貝葉斯、神經網路等演算法。舉個例子:假如你想區分小明是好學生還是壞學生,那麼區分「好學生」和「壞學生」就是一個分類任務。

4.1.1 K最鄰近

「別和其他壞學生在一起,否則你也會和他們一樣。」 —— 家長

主要思想是通過離待預測樣本最近的K個樣本的類別來判斷當前樣本的類別。從K最近鄰演算法的角度來看,就是讓目標樣本與其他正樣本距離更近、與其他負樣本距離更遠,從而使得其近鄰中的正樣本比例更高,更大概率被判斷成正樣本。

4.1.2 樸素貝葉斯

「根據以往抓獲的情況來看,十個壞學生有九個愛打架。」 —— 教導主任

「十個壞學生有九個愛打架」就意味著「壞學生」打架的概率P(打架|壞學生)=0.9,假設根據訓導處歷史記錄壞學生占學生總數P(壞學生)=0.1、打架發生的概率是P(打架)=0.09,那麼這時如果發生打架事件,就可以通過貝葉斯公式判斷出當事學生是「壞學生」的概率P(壞學生|打架)=P(打架|壞學生)×P(壞學生)÷P(打架)=1.0,即該學生100%是「壞學生」。

4.1.3 決策樹

「先看抽不抽煙,再看染不染頭發,最後看講不講臟話。」 ——社區大媽

假設「抽煙」、「染發」和「講臟話」是社區大媽認為的區分「好壞」學生的三項關鍵特徵,那麼這樣一個有先後次序的判斷邏輯就構成一個決策樹模型。在決策樹中,最能區分類別的特徵將作為最先判斷的條件,然後依次向下判斷各個次優特徵。決策樹的核心就在於如何選取每個節點的最優判斷條件,也即特徵選擇的過程。

而在每一個判斷節點,決策樹都會遵循一套IF-THEN的規則:

IF 「抽煙」 THEN -> 「壞學生」 ELSE IF 「染發」 THEN -> 「壞學生」 ELSE IF 「講臟話」 THEN -> 「壞學生」 ELSE -> 「好學生」

4.1.4 邏輯回歸

「上課講話扣1分,不交作業扣2分,比賽得獎加5分。」 ——紀律委員

我們稱邏輯回歸為一種線性分類器,其特徵就在於自變數x和因變數y之間存在類似y=ax+b的一階的、線性的關系。假設「上課講話」、「不交作業」和「比賽得獎」的次數分別表示為x1、x2、和x3,且每個學生的基礎分為0,那麼最終得分y=-1 x1-2 x2+5*x3+0。其中-1、-2和5分別就對應於每種行為在「表現好」這一類別下的權重。

對於最終得分y,邏輯回歸還通過Sigmoid函數將其變換到0-1之間,其含義可以認為是當前樣本屬於正樣本的概率,即得分y越高,屬於「表現好」的概率就越大。也就是說,假如紀律委員記錄了某位同學分別「上課講話」、「不交作業」和「比賽得獎」各一次,那麼最終得分y=-2-1+5=2,而對2進行Sigmoid變換後約等於0.88,即可知該同學有88%的概率為「好學生」。

4.1.5 支持向量機

「我想個辦法把表現差的學生都調到最後一排。」 ——班主任

支持向量機致力於在正負樣本的邊界上找到一條分割界線(超平面),使得它能完全區分兩類樣本的同時,保證劃分出的間隔盡量的大。如果一條分割界線無法完全區分(線性不可分),要麼加上鬆弛變數進行適當的容忍,要麼通過核函數對樣本進行空間上的映射後再進行劃分。對於班主任來講,調換學生們的座位就相當於使用了核函數,讓原本散落在教室里的「好」、「壞」學生從線性不可分變得線性可分了。

4.2 文本聚類

4.2.1 基於分層的聚類

hierarchical methods: 對數據集進行逐層分解,直到滿足某種條件為止。可分為「自底向上」和「自頂向下」兩種。例如「自底向上」指初始時每個數據點組成一個單獨的組,在接下來的迭代中,按一定的距離度量將相互鄰近的組合並成一個組,直至所有的記錄組成一個分組或者滿足某個條件為止。代表演算法有:BIRCH,CURE,CHAMELEON等。自底向上的凝聚層次聚類如下圖所示。

4.2.2 基於劃分的聚類

partitioning methods: 給定包含N個點的數據集,劃分法將構造K個分組,每個分組代表一個聚類,這里每個分組至少包含一個數據點,每個數據點屬於且僅屬於一個分組。對於給定的K值,演算法先給出一個初始的分組方法,然後通過反復迭代的方法改變分組,使得每一次改進之後的分組方案較前一次好,這里好的標准在於同一組中的點越近越好,不同組中的點越遠越好。代表演算法有:K-means,K-medoids,CLARANS。K-means聚類過程圖解如下:

4.2.3 基於密度的聚類

density-based methods: 基於密度的方法的特點是不依賴於距離,而是依賴於密度,從而克服基於距離的演算法只能發現「球形」聚簇的缺點。其核心思想在於只要一個區域中點的密度大於某個閾值,就把它加到與之相近的聚類中去。代表演算法有:DBSCAN,OPTICS,DENCLUE,WaveCluster。DBSCAN的聚簇生成過程的簡單理解如下圖。

4.2.3 基於網格的聚類

gird-based methods: 這種方法通常將數據空間劃分成有限個單元的網格結構,所有的處理都是以單個的單元為對象。這樣做起來處理速度很快,因為這與數據點的個數無關,而只與單元個數有關。代表演算法有:STING,CLIQUE,WaveCluster。基於Clique的聚類過程可直觀如下圖進行理解。

4.2.4 基於模型的聚類

model-based methods: 基於模型的方法給每一個聚類假定一個模型,然後去尋找能很好的擬合模型的數據集。模型可能是數據點在空間中的密度分布函數或者其它。這樣的方法通常包含的潛在假設是:數據集是由一系列的潛在概率分布生成的。通常有兩種嘗試思路:統計學方法和神經網路方法。其中,統計學方法有COBWEB演算法、GMM(Gaussian Mixture Model),神經網路演算法有SOM(Self Organized Maps)演算法。下圖是GMM過程的一個簡單直觀地理解。

4.2.5 基於圖論的聚類

圖論聚類方法解決的第一步是建立與問題相適應的圖,圖的節點對應於被分析數據的最小單元,圖的邊(或弧)對應於最小處理單元數據之間的相似性度量。因此,每一個最小處理單元數據之間都會有一個度量表達,這就確保了數據的局部特性比較易於處理。圖論聚類法是以樣本數據的局域連接特徵作為聚類的主要信息源,因而其主要優點是易於處理局部數據的特性。典型演算法有譜聚類。

聚類問題的研究不僅僅局限於上述的硬聚類,即每一個數據只能被歸為一類,模糊聚類也是聚類分析中研究較為廣泛的一個分支。模糊聚類通過隸屬函數來確定每個數據隸屬於各個簇的程度,而不是將一個數據對象硬性地歸類到某一簇中。目前已有很多關於模糊聚類的演算法被提出,如著名的FCM演算法等。

熱點內容
怎麼連台式電腦的wifi密碼 發布:2025-03-22 07:03:14 瀏覽:541
海豚模擬器怎麼配置不卡 發布:2025-03-22 06:57:31 瀏覽:772
名字學演算法 發布:2025-03-22 06:57:27 瀏覽:753
加密的話 發布:2025-03-22 06:55:54 瀏覽:989
最吃配置的手機游戲有哪些 發布:2025-03-22 06:42:35 瀏覽:225
新聞開發android 發布:2025-03-22 06:40:27 瀏覽:94
應用程序緩存在哪裡 發布:2025-03-22 06:31:10 瀏覽:232
電量演算法 發布:2025-03-22 06:27:08 瀏覽:364
ip地址選擇伺服器 發布:2025-03-22 06:25:46 瀏覽:229
本店的密碼是多少 發布:2025-03-22 06:20:07 瀏覽:733