
當我們只有非常少量的已標記數據,同時有大量未標記數據點時,可以使用半監督學習算法來處理。在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算法的迭代計算過程的詳細介紹:
和Label Propagation一樣,Label Spreading首先構建一個圖,圖中的每個節點代表一個數據樣本,節點可以是已標記的也可以是未標記的。
節點之間的邊表示數據點之間的相似性。這種相似性通常用距離度量(如歐氏距離)或核函數(如高斯核)來計算。邊的權重反映了兩個數據點之間的相似度。
每個數據點都有一個標簽分布向量。對于已標記的數據,這個向量直接表示其標簽信息。對于未標記的數據,初始時這個向量通常是均勻分布,或者有其他的初始化方法。
Label Spreading算法構建了一個傳播矩陣,用于在迭代過程中更新標簽信息。這個矩陣基于節點的相似性權重,但與Label Propagation不同的是,它會引入一個正則化項。
在每次迭代中,對于每個未標記節點,其標簽分布根據鄰居節點(包括已標記和未標記的節點)的標簽信息進行更新。具體地,一個節點的新標簽分布是其所有鄰居節點的標簽分布的加權平均,這個權重由傳播矩陣給出。
正則化是Label Spreading的一個關鍵特點。它幫助算法抵抗噪聲和過擬合,提高了算法的魯棒性。正則化參數控制著標簽信息在未標記數據之間傳播的強度。
更新完所有未標記節點的標簽分布后,這些分布通常需要被歸一化,確保它們是有效的概率分布。
算法重復迭代更新過程,直到滿足某個收斂條件,如迭代次數上限或者標簽分布的變化小于某個閾值。
一旦算法收斂,每個未標記數據點的標簽被確定為其標簽分布中概率最高的標簽。
總的來說,Label Spreading是一個強大而靈活的工具,適用于各種半監督學習場景,尤其是在數據標簽稀缺或包含噪聲的情況下。
在實際應用中,銀行利用標簽處理技術構建反欺詐模型,通過對用戶行為、交易特征等多維度數據進行分析,定義并應用各種風險標簽。這些標簽可以幫助銀行快速識別異常交易行為,提升反欺詐能力。例如,通過分析黑樣本案例特征,銀行可以定義如“當天還款后立即交易”等標簽,并將其應用于反詐模型的開發和訓練。
在Label Spreading算法中,正則化傳播矩陣是核心組件之一,用于在迭代過程中調整和傳播標簽信息。這個傳播矩陣通過結合圖的相似性結構和正則化機制,有效地平衡了標簽信息的傳播和抗噪聲能力。以下是正則化傳播矩陣的關鍵點:
首先,算法構建一個圖,為每個數據點準備一個標簽矩陣Y。對于已標記的數據點,標簽矩陣的相應行用其標簽的獨熱編碼(one-hot encoding)表示;對于未標記的數據點,標簽矩陣的相應行初始化為均勻分布或其他方式。
然后,基于KNN或RBF核等方法計算相似性矩陣(通常表示為S),其中每個元素Sij表示節點i和j之間的相似度。
相似性矩陣接著被歸一化,以便每個節點的相似度總和為1。這可以通過對矩陣S 的每一行進行歸一化來實現,得到歸一化的矩陣T。
正則化傳播矩陣由歸一化的相似性矩陣和一個正則化參數α構建而成。通常,P的計算公式為
其中I是單位矩陣,α是一個介于0和1之間的參數,用于控制傳播過程中的正則化程度。
作用:參數α控制了標簽信息在原始標簽和鄰居標簽間的平衡。較小的α值更強調鄰居節點的標簽信息,而較大的α值使算法更加傾向于保持原始標簽。 抗噪聲能力:通過調整α,Label Spreading算法能夠在保持數據內在結構的同時對噪聲數據具有一定的抵抗力。
在每次迭代中,當前的標簽矩陣Y通過乘以傳播矩陣P來更新,即
這樣,每個數據點的新標簽不僅反映了其鄰居的標簽信息,也考慮了自身的原始標簽α,且受正則化參數的影響。 更新后的標簽矩陣Y通常需要被重新歸一化,以確保每行(代表一個數據點的標簽分布)的總和為1。
這個更新過程重復進行,直到滿足某個收斂條件,例如標簽矩陣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
在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25在當今數字化時代,數據分析師的重要性與日俱增。但許多人在踏上這條職業道路時,往往充滿疑惑: 如何成為一名數據分析師?成為 ...
2025-04-24以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《劉靜:10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda ...
2025-04-23