自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

sklearn 中的兩個半監(jiān)督標簽傳播算法 LabelPropagation和LabelSpreading

人工智能 機器學習
標簽傳播算法是一種半監(jiān)督機器學習算法,它將標簽分配給以前未標記的數(shù)據(jù)點。要在機器學習中使用這種算法,只有一小部分示例具有標簽或分類。在算法的建模、擬合和預測過程中,這些標簽被傳播到未標記的數(shù)據(jù)點。

標簽傳播算法是一種半監(jiān)督機器學習算法,它將標簽分配給以前未標記的數(shù)據(jù)點。要在機器學習中使用這種算法,只有一小部分示例具有標簽或分類。在算法的建模、擬合和預測過程中,這些標簽被傳播到未標記的數(shù)據(jù)點。

圖片


LabelPropagation

LabelPropagation是一種在圖中查找社區(qū)的快速算法。它只使用網(wǎng)絡結(jié)構作為指導來檢測這些連接,不需要預定義的目標函數(shù)或關于群體的先驗信息。標簽傳播通過在網(wǎng)絡中傳播標簽并基于標簽傳播過程形成連接來實現(xiàn)。

接近的標簽通常會被賦予相同的標簽。單個標簽可以在密集連接的節(jié)點組中占主導地位,但在稀疏連接的區(qū)域中會遇到麻煩。標簽將被限制在一個緊密連接的節(jié)點組中,當算法完成時,那些最終具有相同標簽的節(jié)點可以被視為同一連接的一部分。該算法使用了圖論,具體如下:-

LabelPropagation算法以下列方式工作:-

  • 每個節(jié)點都使用唯一的標簽進行初始化。
  • 這些標簽通過網(wǎng)絡傳播。
  • 在每次傳播迭代中,每個節(jié)點都會將其標簽更新為最大鄰居數(shù)所屬的標簽。
  • 當每個節(jié)點具有其鄰居的多數(shù)標簽時,標簽傳播算法達到收斂。
  • 如果達到收斂或用戶定義的最大迭代次數(shù),則標簽傳播算法停止。

為了演示LabelPropagation算法的工作原理,們使用 Pima Indians 的數(shù)據(jù)集,創(chuàng)建程序時,我導入了運行它所需的庫

圖片

復制一份數(shù)據(jù)并且將lable列作為訓練目標

圖片

使用matplotlib可視化:

圖片

使用隨機數(shù)生成器隨機化數(shù)據(jù)集中70%的標簽。然后隨機標簽被分配-1:-

在對數(shù)據(jù)進行預處理之后,定義因變量和自變量,分別為y和X。y變量是最后一列,X變量是剩下的所有部分:-

圖片

使用sklearn的LabelPropagation數(shù)來標記所有未標記的數(shù)據(jù)點:-

圖片

準確率為發(fā)現(xiàn)它是76.9%。

圖片

下面我們看看另外一個算法LabelSpreading。

LabelSpreading

LabelSpreading也是一種流行的半監(jiān)督學習方法。創(chuàng)建一個連接訓練數(shù)據(jù)集中樣本的圖,并通過圖的邊緣傳播已知的標簽來標記未標記的示例。

LabelSpreading是由 Dengyong Zhou 等人在他們 2003 年題為“Learning with Local and Global Consistency”的論文中提出的的。半監(jiān)督學習的關鍵是一致性的先驗假設,這意味著:附近的點可能具有相同的標簽,并且同一結(jié)構上的點(通常稱為簇流形)很可能具有相同的標簽。

LabelSpreading可以認為是LabelPropagation的正則化形式。在圖論中,拉普拉斯矩陣是圖的矩陣表示,拉普拉斯矩陣的公式為:

圖片

L是拉普拉斯矩陣,D是度矩陣,A是鄰接矩陣。

下面是一個簡單的無向圖標記的例子和它拉普拉斯矩陣的結(jié)果

圖片

本文將使用sonar數(shù)據(jù)集演示如何使用sklearn的LabelSpreading函數(shù)。

這里的庫比上面的多,所以簡單解釋一下:

  • Numpy執(zhí)行數(shù)值計算并創(chuàng)建Numpy數(shù)組
  • Pandas處理數(shù)據(jù)
  • Sklearn執(zhí)行機器學習操作
  • Matplotlib和seaborn來可視化數(shù)據(jù),為可視化數(shù)據(jù)提供統(tǒng)計信息
  • Warning,用于忽略程序執(zhí)行期間出現(xiàn)的警告

導入完成后使用pandas將讀入數(shù)據(jù)集:

圖片

我使用seaborn創(chuàng)建了熱圖:-

圖片

先做一個就簡單的預處理,刪除具有高度相關性的列,這樣將列數(shù)從 61 減少到 58:

圖片

然后對數(shù)據(jù)進行打亂重排,這樣在打亂的數(shù)據(jù)集中預測通常更準確,復制一個數(shù)據(jù)集的副本,并將 y_orig 定義為訓練目標:

圖片

使用matplotlib來繪制數(shù)據(jù)點的2D散點圖:-

圖片

使用隨機數(shù)生成器隨機化數(shù)據(jù)集中60%的標簽。然后隨機標簽被分配-1:-

圖片

在對數(shù)據(jù)進行預處理之后,定義因變量和自變量,分別為y和X。y變量是最后一列,X變量是剩下的所有部分:-

圖片

然后使用sklearn的LabelSpreading算法對未標記的行進行訓練和預測。

使用這種方法,能夠達到87.98%的準確率:-

圖片

簡單對比

1、labelspreading中含有alpha=0.2,alpha稱為夾緊系數(shù),指的是采用其鄰居的信息而不是其初始標簽的相對量,若為0,表示保留初始標簽信息,若為1,表示替換所有初始信息;設置alpha=0.2,意味著始終保留80%的原始標簽信息;

2、labelpropagation使用從數(shù)據(jù)中構造的原始相似矩陣,不做修改;labelspreading最小化具有正則化特性的損失函數(shù),對噪聲更加穩(wěn)健,迭代了原始圖的修改版,并通過計算歸一化拉普拉斯矩陣來標準化邊權重。

3、同時LabelSpreading非常占用CPU,物理內(nèi)存占用率還好;LabelPropagation 的CPU占用率還好,非常占用物理內(nèi)存,高緯度數(shù)據(jù)可能會有一些問題。

責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2024-08-16 08:15:02

2021-08-03 08:13:47

數(shù)據(jù)

2012-04-03 14:27:19

手機

2017-07-03 07:14:49

深度學習無監(jiān)督學習稀疏編碼

2021-09-08 09:52:34

語言

2020-04-17 10:13:51

Python開發(fā)工具

2019-08-28 10:00:34

Python測試工具命令

2011-04-19 16:06:57

typedef

2010-04-06 18:04:09

Oracle數(shù)據(jù)庫

2011-08-29 18:17:58

Ubuntu

2009-06-30 09:37:02

對象比較Java

2020-08-04 07:30:52

CSS控制層疊inherit

2020-10-26 08:19:53

算法隊列

2017-01-19 10:34:15

SDNNFV速度

2013-12-16 09:32:21

未來網(wǎng)絡ICNSDN

2022-06-17 09:46:51

Chrome 102Chrome瀏覽器

2010-04-08 13:55:18

Oracle數(shù)據(jù)處理

2015-05-15 09:37:24

iOS開發(fā)爭議

2013-08-29 13:44:53

2019-01-07 13:34:16

Riverbed數(shù)字性能數(shù)字體驗管理
點贊
收藏

51CTO技術棧公眾號