網(wǎng)站后臺無法審核淘寶seo搜索引擎原理
前言
提醒:
文章內(nèi)容為方便作者自己后日復(fù)習(xí)與查閱而進(jìn)行的書寫與發(fā)布,其中引用內(nèi)容都會使用鏈接表明出處(如有侵權(quán)問題,請及時聯(lián)系)。
其中內(nèi)容多為一次書寫,缺少檢查與訂正,如有問題或其他拓展及意見建議,歡迎評論區(qū)討論交流。
文章目錄
- 前言
- 聚類算法
- 經(jīng)典應(yīng)用場景
- 自組織映射(Self-Organizing Maps, SOM)
- 優(yōu)點:
- 缺點:
- 簡單實例(函數(shù)庫實現(xiàn))
- 數(shù)學(xué)表達(dá)
- 。。。。。。。
聚類算法
聚類算法在各種領(lǐng)域中有廣泛的應(yīng)用,主要用于發(fā)現(xiàn)數(shù)據(jù)中的自然分組和模式。以下是一些常見的應(yīng)用場景以及每種算法的優(yōu)缺點:
經(jīng)典應(yīng)用場景
-
市場細(xì)分:根據(jù)消費者的行為和特征,將他們分成不同的群體,以便進(jìn)行有針對性的營銷。
-
圖像分割: 將圖像劃分為多個區(qū)域或?qū)ο?#xff0c;以便進(jìn)行進(jìn)一步的分析或處理。
-
社交網(wǎng)絡(luò)分析:識別社交網(wǎng)絡(luò)中的社區(qū)結(jié)構(gòu)。
-
文檔分類:自動將文檔分組到不同的主題或類別中。
-
異常檢測識別數(shù)據(jù)中的異常點或異常行為。
-
基因表達(dá)分析:在生物信息學(xué)中,根據(jù)基因表達(dá)模式對基因進(jìn)行聚類。
自組織映射(Self-Organizing Maps, SOM)
Self-Organizing Maps (SOM),也稱為自組織映射或Kohonen網(wǎng)絡(luò),是一種無監(jiān)督的機器學(xué)習(xí)方法,主要用于降維和聚類。以下是SOM聚類方法的優(yōu)缺點:
優(yōu)點:
- 降維:SOM能夠?qū)⒏呔S數(shù)據(jù)映射到低維空間(通常是二維),同時保持?jǐn)?shù)據(jù)的拓?fù)浣Y(jié)構(gòu),這使得數(shù)據(jù)可視化變得更加容易。
- 拓?fù)浔3?/strong>:SOM在映射過程中努力保持原始數(shù)據(jù)中相似性關(guān)系的拓?fù)浣Y(jié)構(gòu),即相似的輸入向量在映射后仍然接近。
- 無監(jiān)督學(xué)習(xí):SOM不需要預(yù)先標(biāo)記的數(shù)據(jù),可以自動發(fā)現(xiàn)數(shù)據(jù)中的結(jié)構(gòu)和模式。
- 可解釋性:SOM的輸出是一個網(wǎng)格,每個網(wǎng)格節(jié)點代表一個聚類中心,這種結(jié)構(gòu)使得聚類結(jié)果具有一定的可解釋性。
- 靈活性:SOM可以適應(yīng)不同形狀和密度的聚類。
- 噪聲魯棒性:SOM對噪聲數(shù)據(jù)有一定的魯棒性,能夠在一定程度上忽略小的數(shù)據(jù)擾動。
缺點:
- 參數(shù)敏感:SOM的性能對初始參數(shù)(如網(wǎng)格大小、學(xué)習(xí)率、鄰域函數(shù)等)非常敏感,需要仔細(xì)選擇和調(diào)整。
- 計算復(fù)雜度:SOM的訓(xùn)練過程可能比較耗時,特別是對于大型數(shù)據(jù)集和復(fù)雜的網(wǎng)格結(jié)構(gòu)。
- 缺乏全局優(yōu)化:SOM的訓(xùn)練過程是局部的,可能導(dǎo)致無法達(dá)到全局最優(yōu)解。
- 邊界效應(yīng):SOM的邊界節(jié)點可能沒有足夠的鄰居,這可能導(dǎo)致邊界區(qū)域的映射不夠準(zhǔn)確。
- 難以確定最佳網(wǎng)格大小:選擇合適的網(wǎng)格大小是一個挑戰(zhàn),過小可能無法捕捉數(shù)據(jù)的復(fù)雜性,過大則可能導(dǎo)致過度擬合。
- 對初始化敏感:SOM的最終結(jié)果可能受到初始權(quán)重隨機化的影響,不同的初始化可能導(dǎo)致不同的聚類結(jié)果。
- 不適合非凸聚類:SOM在處理非凸形狀的聚類時可能表現(xiàn)不佳,因為其本質(zhì)上是基于距離的聚類方法。
總的來說,SOM是一種強大的工具,適用于多種數(shù)據(jù)分析和聚類任務(wù),但也需要仔細(xì)考慮其參數(shù)設(shè)置和適用場景。在實際應(yīng)用中,可能需要結(jié)合其他方法或技術(shù)來克服其局限性。
簡單實例(函數(shù)庫實現(xiàn))
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from minisom import MiniSom# 生成示例數(shù)據(jù)
n_samples = 500
n_centers = 3
X, _ = make_blobs(n_samples=n_samples, centers=n_centers, cluster_std=0.7, random_state=42)# 自組織映射的參數(shù)
som_size = 7 # SOM的網(wǎng)格大小
som = MiniSom(som_size, som_size, X.shape[1], sigma=1.0, learning_rate=0.9)# 初始化并訓(xùn)練SOM
som.random_weights_init(X)
som.train_random(X, num_iteration=100)# 獲取SOM的輸出
win_map = som.win_map(X)
labels = np.zeros(X.shape[0])# 將每個數(shù)據(jù)點分配給最近的SOM節(jié)點
for i in range(som_size):for j in range(som_size):if (i, j) in win_map:for x in win_map[(i, j)]:# 使用SOM的網(wǎng)格位置來標(biāo)記index = np.argmin(np.linalg.norm(X - x, axis=1))labels[index] = (i * som_size + j)
# 可視化結(jié)果
plt.figure(figsize=(8, 6))
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis', marker='o', edgecolor='k', s=50)
plt.title('Self-Organizing Map Clustering Result')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.grid(True)
plt.show()
代碼運行結(jié)果:
學(xué)習(xí)效果不是很好,是很不好,原因以后再說吧
數(shù)學(xué)表達(dá)
自組織映射(Self-Organizing Maps, SOM)是一種基于神經(jīng)網(wǎng)絡(luò)的無監(jiān)督學(xué)習(xí)算法,旨在通過無監(jiān)督的方式對高維數(shù)據(jù)進(jìn)行降維和聚類。其核心思想是通過競爭學(xué)習(xí)使得相似的數(shù)據(jù)點在低維空間中盡可能靠近。下面我們將結(jié)合數(shù)學(xué)公式詳細(xì)講解SOM的工作原理。
- 網(wǎng)絡(luò)結(jié)構(gòu)
SOM通常由一個二維的神經(jīng)元網(wǎng)格組成,每個神經(jīng)元都有一個權(quán)重向量 w j ∈ R n \mathbf{w}_j \in \mathbb{R}^n wj?∈Rn,與輸入數(shù)據(jù)的維度相同。設(shè)網(wǎng)絡(luò)中有 m × n m \times n m×n 個神經(jīng)元,權(quán)重向量表示為:
W = { w 1 , w 2 , … , w m × n } \mathbf{W} = \{ \mathbf{w}_1, \mathbf{w}_2, \ldots, \mathbf{w}_{m \times n} \} W={w1?,w2?,…,wm×n?}- 輸入信號
給定一個輸入樣本 x ∈ R n \mathbf{x} \in \mathbb{R}^n x∈Rn,SOM的目標(biāo)是找到一個最接近的神經(jīng)元,即最佳匹配單元(Best Matching Unit, BMU),其位置為 b \mathbf b:
b = arg ? min ? j ∥ x ? w j ∥ 2 \mathbf = \arg\min_{j} \|\mathbf{x} - \mathbf{w}_j\|^2 b=argjmin?∥x?wj?∥2
這里, ∥ ? ∥ \|\cdot\| ∥?∥ 表示歐幾里得距離。- 更新權(quán)重
一旦確定了BMU,下一步是更新BMU及其鄰域神經(jīng)元的權(quán)重,以使它們更接近輸入向量 x \mathbf{x} x。權(quán)重更新規(guī)則如下:
w j ( t + 1 ) = w j ( t ) + α ( t ) ? h b , j ( t ) ? ( x ? w j ( t ) ) \mathbf{w}_j(t + 1) = \mathbf{w}_j(t) + \alpha(t) \cdot h_{b,j}(t) \cdot (\mathbf{x} - \mathbf{w}_j(t)) wj?(t+1)=wj?(t)+α(t)?hb,j?(t)?(x?wj?(t))
其中:
- t t t 表示當(dāng)前的訓(xùn)練迭代次數(shù)。
- α ( t ) \alpha(t) α(t) 是學(xué)習(xí)率,隨著時間的推移通常會逐步降低。
- h b , j ( t ) h_{b,j}(t) hb,j?(t) 是鄰域函數(shù),表示與BMU相鄰的神經(jīng)元的影響程度,一般定義為:
h b , j ( t ) = { exp ? ( ? d b , j 2 2 σ ( t ) 2 ) if? j is?a?neighbor?of? b 0 otherwise h_{b,j}(t) = \begin{cases} \exp\left(-\frac{d_{b,j}^2}{2\sigma(t)^2}\right) & \text{if } j \text{ is a neighbor of } b \\ 0 & \text{otherwise} \end{cases} hb,j?(t)={exp(?2σ(t)2db,j2??)0?if?j?is?a?neighbor?of?botherwise?
這里 d b , j d_{b,j} db,j? 是BMU和神經(jīng)元 j j j 之間的距離, σ ( t ) \sigma(t) σ(t) 是鄰域范圍,通常也隨著時間衰減。- 學(xué)習(xí)率和鄰域函數(shù)
- 學(xué)習(xí)率 α ( t ) \alpha(t) α(t):通常定義為:
α ( t ) = α 0 ? ( 1 ? t T ) \alpha(t) = \alpha_0 \cdot \left(1 - \frac{t}{T}\right) α(t)=α0??(1?Tt?)
其中 α 0 \alpha_0 α0? 是初始學(xué)習(xí)率, T T T 是總訓(xùn)練迭代次數(shù)。- 鄰域范圍 σ ( t ) \sigma(t) σ(t):通常定義為:
σ ( t ) = σ 0 ? ( 1 ? t T ) \sigma(t) = \sigma_0 \cdot \left(1 - \frac{t}{T}\right) σ(t)=σ0??(1?Tt?)
其中 σ 0 \sigma_0 σ0? 是初始鄰域范圍。- 算法步驟
SOM算法的主要步驟如下:
- 初始化權(quán)重向量 W \mathbf{W} W。
- 對于每個輸入樣本 x \mathbf{x} x:
- 找到BMU b \mathbf b。
- 更新BMU及其鄰域的權(quán)重。
- 重復(fù)步驟2,直到達(dá)到設(shè)定的訓(xùn)練次數(shù)或收斂條件。
- 結(jié)果與聚類
訓(xùn)練完成后,SOM將高維數(shù)據(jù)映射到低維網(wǎng)格上,具有相似特征的數(shù)據(jù)點會被映射到相鄰的神經(jīng)元。通過分析每個神經(jīng)元的權(quán)重向量,可以識別出數(shù)據(jù)的聚類結(jié)構(gòu)。
總結(jié)
自組織映射(SOM)是一種強大且直觀的聚類和可視化方法。通過競爭學(xué)習(xí)和權(quán)重更新機制,SOM能夠有效地將高維數(shù)據(jù)映射到低維空間,同時保持?jǐn)?shù)據(jù)的拓?fù)浣Y(jié)構(gòu)。其數(shù)學(xué)基礎(chǔ)包括歐幾里得距離計算、權(quán)重更新規(guī)則以及鄰域函數(shù)的設(shè)計,是理解SOM算法的關(guān)鍵。
。。。。。。。
學(xué)習(xí)日記_20241110_聚類方法(K-Means)
學(xué)習(xí)日記_20241115_聚類方法(層次聚類)
學(xué)習(xí)日記_20241115_聚類方法(DBSCAN)
學(xué)習(xí)日記_20241117_聚類方法(高斯混合模型)
學(xué)習(xí)日記_20241123_聚類方法(高斯混合模型)續(xù)
學(xué)習(xí)日記_20241123_聚類方法(MeanShift)
學(xué)習(xí)日記_20241126_聚類方法(譜聚類Spectral Clustering)
學(xué)習(xí)日記_20241126_聚類方法(聚合聚類Agglomerative Clustering)
學(xué)習(xí)日記_20241126_聚類方法(Affinity Propagation)
九個聚類算法終于搞完了,終于。
我要刷視頻放松去了。