熱線電話:13121318867

登錄
首頁大數據時代【干貨】半監督學習(下)Label Spreading
【干貨】半監督學習(下)Label Spreading
2025-02-05
收藏

當我們只有非常少量的已標記數據,同時有大量未標記數據點時,可以使用半監督學習算法來處理。在sklearn中,基于圖算法的半監督學習有Label Propagation和Label Spreading兩種。他們的主要區別是第二種方法帶有正則化機制。

我們在上篇已經講解了Label Propagation,本篇我們講解帶有正則的Label Spreading。首先生成一些凹的數據。

# 生成環形數據
import numpy as np
from sklearn.datasets import make_circles
X, y = make_circles(n_samples=200, shuffle=False)
outer, inner = 0, 1
labels = np.full(200, -1.0)
labels[0] = outer
labels[-1] = inner

# 畫圖
import matplotlib.pyplot as plt
plt.figure(figsize=(4, 4))
plt.scatter(X[labels == outer, 0], X[labels == outer, 1],)
plt.scatter(X[labels == inner, 0], X[labels == inner, 1],)
plt.scatter(X[labels == -1, 0], X[labels == -1, 1], marker=".",);

Label Spreading(標簽擴散)算法是一種用于半監督學習的方法,它在Label Propagation的基礎上引入了正則化機制。這種機制使得算法在處理噪聲數據時更為穩定和健壯。下面是Label Spreading算法的迭代計算過程的詳細介紹:

1、構建圖

和Label Propagation一樣,Label Spreading首先構建一個圖,圖中的每個節點代表一個數據樣本,節點可以是已標記的也可以是未標記的。

2、計算相似性權重

節點之間的邊表示數據點之間的相似性。這種相似性通常用距離度量(如歐氏距離)或核函數(如高斯核)來計算。邊的權重反映了兩個數據點之間的相似度。

3、初始化標簽信息

每個數據點都有一個標簽分布向量。對于已標記的數據,這個向量直接表示其標簽信息。對于未標記的數據,初始時這個向量通常是均勻分布,或者有其他的初始化方法。

4、構建傳播矩陣

Label Spreading算法構建了一個傳播矩陣,用于在迭代過程中更新標簽信息。這個矩陣基于節點的相似性權重,但與Label Propagation不同的是,它會引入一個正則化項。

5、迭代更新標簽

在每次迭代中,對于每個未標記節點,其標簽分布根據鄰居節點(包括已標記和未標記的節點)的標簽信息進行更新。具體地,一個節點的新標簽分布是其所有鄰居節點的標簽分布的加權平均,這個權重由傳播矩陣給出。

6、應用正則化

正則化是Label Spreading的一個關鍵特點。它幫助算法抵抗噪聲和過擬合,提高了算法的魯棒性。正則化參數控制著標簽信息在未標記數據之間傳播的強度。

7、歸一化標簽分布

更新完所有未標記節點的標簽分布后,這些分布通常需要被歸一化,確保它們是有效的概率分布。

8、收斂判斷

算法重復迭代更新過程,直到滿足某個收斂條件,如迭代次數上限或者標簽分布的變化小于某個閾值。

9、確定最終標簽

一旦算法收斂,每個未標記數據點的標簽被確定為其標簽分布中概率最高的標簽。

關鍵要點

  • 正則化機制:正則化幫助算法在處理噪聲數據和不完全標記的數據時保持穩定。
  • 適用性:Label Spreading適用于有大量未標記數據的情況,尤其當數據包含噪聲或者不完全標記時。
  • 靈活性與穩健性:算法的性能依賴于圖的構建方式、相似性度量的選擇,以及正則化參數的設定。

總的來說,Label Spreading是一個強大而靈活的工具,適用于各種半監督學習場景,尤其是在數據標簽稀缺或包含噪聲的情況下。

在實際應用中,銀行利用標簽處理技術構建反欺詐模型,通過對用戶行為、交易特征等多維度數據進行分析,定義并應用各種風險標簽。這些標簽可以幫助銀行快速識別異常交易行為,提升反欺詐能力。例如,通過分析黑樣本案例特征,銀行可以定義如“當天還款后立即交易”等標簽,并將其應用于反詐模型的開發和訓練。

在Label Spreading算法中,正則化傳播矩陣是核心組件之一,用于在迭代過程中調整和傳播標簽信息。這個傳播矩陣通過結合圖的相似性結構和正則化機制,有效地平衡了標簽信息的傳播和抗噪聲能力。以下是正則化傳播矩陣的關鍵點:

1、構建圖和相似性矩陣

首先,算法構建一個圖,為每個數據點準備一個標簽矩陣Y。對于已標記的數據點,標簽矩陣的相應行用其標簽的獨熱編碼(one-hot encoding)表示;對于未標記的數據點,標簽矩陣的相應行初始化為均勻分布或其他方式。

然后,基于KNN或RBF核等方法計算相似性矩陣(通常表示為S),其中每個元素Sij表示節點i和j之間的相似度。

2、歸一化相似性矩陣

相似性矩陣接著被歸一化,以便每個節點的相似度總和為1。這可以通過對矩陣S 的每一行進行歸一化來實現,得到歸一化的矩陣T。

3、正則化傳播矩陣

正則化傳播矩陣由歸一化的相似性矩陣和一個正則化參數α構建而成。通常,P的計算公式為

其中I是單位矩陣,α是一個介于0和1之間的參數,用于控制傳播過程中的正則化程度。

4、正則化參數α

作用:參數α控制了標簽信息在原始標簽和鄰居標簽間的平衡。較小的α值更強調鄰居節點的標簽信息,而較大的α值使算法更加傾向于保持原始標簽。 抗噪聲能力:通過調整α,Label Spreading算法能夠在保持數據內在結構的同時對噪聲數據具有一定的抵抗力。

5、標簽更新和傳播

在每次迭代中,當前的標簽矩陣Y通過乘以傳播矩陣P來更新,即

這樣,每個數據點的新標簽不僅反映了其鄰居的標簽信息,也考慮了自身的原始標簽α,且受正則化參數的影響。 更新后的標簽矩陣Y通常需要被重新歸一化,以確保每行(代表一個數據點的標簽分布)的總和為1。

6、迭代直到收斂

這個更新過程重復進行,直到滿足某個收斂條件,例如標簽矩陣Y的變化小于某個預設的閾值,或者達到預設的最大迭代次數。

一旦算法收斂,每個未標記數據點的標簽被確定為其標簽分布中概率最高的那個標簽。

在Label Spreading算法中,標簽矩陣Y用于表示數據點的標簽信息。這個矩陣的結構取決于數據集中的標簽數量和數據點的數量。下面是標簽矩陣的一般結構和特點:

1.結構

尺寸:標簽矩陣Y的尺寸是 N*K ,其中N是數據集中數據點的總數(包括已標記和未標記的數據點),而K是不同標簽的數量。

內容:

對于已標記的數據點,每一行對應一個數據點,其中每個元素代表該數據點屬于某個標簽的概率。在典型的實現中,已標記數據的行會用獨熱編碼(one-hot encoding)表示,即對應該數據點實際標簽的位置為1,其余位置為0。

對于未標記的數據點,每一行一開始通常初始化為均勻分布,即每個標簽的概率相等,或者根據先驗知識進行初始化。

2.示例 假設有一個數據集,其中有3個不同的標簽(K = 3),共有5個數據點(N = 5),其中前2個點已標記,后3個點未標記。標簽矩陣Y可能如下所示:

在這個例子中,第一行和第二行分別表示第一個和第二個數據點的標簽(假設分別屬于第一個和第二個類別),而最后三行表示未標記數據點的標簽分布,這里初始化為均勻分布。

# Label Spreading
from sklearn.semi_supervised import LabelSpreading

label_spread = LabelSpreading(kernel="knn", alpha=0.8)  # 正則
label_spread.fit(X, labels)

# Label Spreading打標簽后的結果
output= np.asarray(label_spread.transduction_)
outer_numbers = np.where(output == outer)[0]
inner_numbers = np.where(output == inner)[0]

plt.figure(figsize=(4, 4))
plt.scatter(X[outer_numbers, 0], X[outer_numbers, 1],)
plt.scatter(X[inner_numbers, 0], X[inner_numbers, 1],)

抓住機遇,狠狠提升自己

隨著各行各業進行數字化轉型,數據分析能力已經成了職場的剛需能力,這也是這兩年CDA數據分析師大火的原因。和領導提建議再說“我感覺”“我覺得”,自己都覺得心虛,如果說“數據分析發現……”,肯定更有說服力。想在職場精進一步還是要學習數據分析的,統計學、概率論、商業模型、SQL,Python還是要會一些,能讓你工作效率提升不少。備考CDA數據分析師的過程就是個自我提升的過程。

CDA 考試官方報名入口:https://www.cdaglobal.com/pinggu.html

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢