偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

數(shù)據(jù)科學(xué)簡介:通過對(duì)數(shù)據(jù)分類進(jìn)行預(yù)測(cè)(二)

大數(shù)據(jù)
機(jī)器學(xué)習(xí)已成功應(yīng)用于許多預(yù)測(cè)和分類問題,包括航班晚點(diǎn)、信用評(píng)分和股票價(jià)格。在這里,我將探討兩種重要算法:概率神經(jīng)網(wǎng)絡(luò)和基于密度的聚類 (DBSCAN)。

你可以從原始數(shù)據(jù)提取出的一種關(guān)鍵價(jià)值是,能夠構(gòu)建一個(gè)可用于預(yù)測(cè)或分類的模型。應(yīng)用此模型,您可以將觀察值轉(zhuǎn)換為具有明顯價(jià)值的預(yù)測(cè)或分類。本教程延續(xù)了第 1 部分:“數(shù)據(jù)、結(jié)構(gòu)和數(shù)據(jù)科學(xué)管道”中引入的原則,探討兩種使用監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)的分類方法(一種預(yù)測(cè)形式)。

分類是機(jī)器學(xué)習(xí)算法的一種常見應(yīng)用。您可以使用監(jiān)督學(xué)習(xí)來實(shí)現(xiàn)預(yù)測(cè)和分類,使用以前的觀察值構(gòu)建一個(gè)模型,以便根據(jù)未見過的觀察值來預(yù)測(cè)結(jié)果。也可以使用無監(jiān)督學(xué)習(xí)來實(shí)現(xiàn)這一過程,將觀察值聚類到集合中,以便根據(jù)與新觀察值最接近的集群來預(yù)測(cè)它們的行為。

機(jī)器學(xué)習(xí)已成功應(yīng)用于許多預(yù)測(cè)和分類問題,包括航班晚點(diǎn)、信用評(píng)分和股票價(jià)格。在這里,我將探討兩種重要算法:概率神經(jīng)網(wǎng)絡(luò)和基于密度的聚類 (DBSCAN)。

概率神經(jīng)網(wǎng)絡(luò)

概率神經(jīng)網(wǎng)絡(luò) (PNN) 是 1966 年創(chuàng)建的,類似于我在“神經(jīng)網(wǎng)絡(luò)深入剖析”中討論的反向傳播(back-propagation)神經(jīng)網(wǎng)絡(luò)。二者都是多層的前饋神經(jīng)網(wǎng)絡(luò),但 PNN 不依靠誤差反向傳播,它采用了一種不同的訓(xùn)練方法。您可以使用 PNN 執(zhí)行模式識(shí)別、聚類、分類,以及預(yù)測(cè)。

PNN 架構(gòu)

PNN 是一種監(jiān)督學(xué)習(xí)方法,依賴于一個(gè)包含標(biāo)簽(用于標(biāo)識(shí)每個(gè)觀察值的類)的訓(xùn)練集。PNN 由 4 層組成,如下所示。

圖 1. PNN 架構(gòu)

 

輸入層 (input layer) 代表輸入矢量,具有一個(gè)包含問題的特征數(shù)量的維度。模式層 (pattern layer) 也稱為隱藏層,由訓(xùn)練數(shù)據(jù)集中每個(gè)觀察值對(duì)應(yīng)的神經(jīng)元組成。模式神經(jīng)元計(jì)算離訓(xùn)練樣本(由神經(jīng)元表示)的歐氏距離,并將該距離表示為該類的特征矢量圖心的輸入特征矢量。匯總層 (summation layer) 包含該數(shù)據(jù)集表示的每個(gè)類所對(duì)應(yīng)的神經(jīng)元。顧名思義,匯總層中的神經(jīng)元會(huì)計(jì)算出它們所代表的特定類的模式層神經(jīng)元的輸出之和(其中包括一個(gè)基于該類的觀察值數(shù)量的平均值)。***,輸出層,也稱為決策層 (decision layer),實(shí)現(xiàn)了一種贏家通吃的方法:它識(shí)別匯總層中具有***值的類神經(jīng)元。然后,這個(gè)類表示了所預(yù)測(cè)的輸入矢量的類。

PNN 算法

您很快就會(huì)在一段代碼中看到,訓(xùn)練和使用 PNN 的算法很簡單。不需要訓(xùn)練,因?yàn)橛?jì)算一個(gè)預(yù)測(cè)值只需迭代整個(gè)數(shù)據(jù)集來計(jì)算匯總層中的神經(jīng)元。與之相反,在傳統(tǒng)的反向傳播中,會(huì)在訓(xùn)練每個(gè)觀察值之后調(diào)整權(quán)重值。因此,反向傳播網(wǎng)絡(luò)使用起來可能更快,但花費(fèi)的訓(xùn)練時(shí)間可能更長(根據(jù)一個(gè)關(guān)于數(shù)據(jù)集大小的函數(shù))。

該流程從一個(gè)示例特征矢量(表示您希望預(yù)測(cè)其類的觀察值)和包含帶標(biāo)簽觀察值的數(shù)據(jù)集開始。對(duì)于匯總層中的每個(gè)神經(jīng)元(表示一個(gè)類),可以迭代該數(shù)據(jù)集,并計(jì)算該類的示例特征矢量和每個(gè)數(shù)據(jù)集觀察值的平方和,然后應(yīng)用一個(gè)平滑系數(shù)。當(dāng)利用數(shù)據(jù)集中表示的(該類的)觀察值計(jì)算了所有匯總神經(jīng)元后,會(huì)通過贏者通吃的方法選擇***的值。這個(gè)類表示了該示例的預(yù)測(cè)類。

PNN 實(shí)現(xiàn)

可以在 GitHub 上找到這個(gè) PNN 的完整實(shí)現(xiàn)。清單 1 提供了分類器函數(shù),該函數(shù)接受一個(gè)示例觀察值并返回它應(yīng)該屬于的類(預(yù)測(cè)結(jié)果)。正如前面所討論的,此代碼從匯總層開始,使用示例觀察值來計(jì)算該類中包含的數(shù)據(jù)集觀察值的匯總神經(jīng)元。然后將匯總神經(jīng)元傳遞給一個(gè)名為 winner_takes_all 的函數(shù),該函數(shù)只確定哪個(gè)神經(jīng)元具有***值(贏者)。

清單 1. PNN 分類器的 C 代碼

 

在我為 PNN 提供一些數(shù)據(jù)用于預(yù)測(cè)時(shí),您就可以看到它的實(shí)際效果。在本例中,我返回到我的動(dòng)物園數(shù)據(jù)集,其中包含一組基于動(dòng)物特征(毛發(fā)、羽毛、產(chǎn)卵情況、空氣傳播等)的動(dòng)物。我將構(gòu)造一些樣本觀察值,以查看該算法對(duì)類(哺乳動(dòng)物、昆蟲、兩棲動(dòng)物等)的預(yù)測(cè)結(jié)果。清單 2 提供了該數(shù)據(jù)集的元數(shù)據(jù)(特征矢量描述和類描述)。

清單 2. 動(dòng)物園數(shù)據(jù)集元數(shù)據(jù)

 

清單 3 給出了示例特征矢量的樣本代碼,以及用于演示使用 PNN 分類器的類預(yù)測(cè)結(jié)果的輸出。此輸出表明,一種有牙齒的跳蚤仍是昆蟲;一種有毛發(fā)的掠食動(dòng)物是哺乳動(dòng)物;一種水生的、產(chǎn)卵的、有 6 條腿的動(dòng)物是無脊椎動(dòng)物。

清單 3. 特征矢量和預(yù)測(cè)示例

 

基于數(shù)據(jù)的聚類

DBSCAN 創(chuàng)建于 1996 年,是一種可自動(dòng)確定自然集群數(shù)量的簡單聚類方法。該方法能夠以可靠方式處理異常樣本(DBSCAN 稱之為噪聲)。可以在“用于數(shù)據(jù)分類的無監(jiān)督學(xué)習(xí)”中進(jìn)一步了解聚類算法。DBSCAN 最初被定義為用在數(shù)據(jù)庫中,因識(shí)別(大小和形狀)不規(guī)則的集群而聞名,而且適用于 k-均值無法順利實(shí)現(xiàn)聚類的數(shù)據(jù)。

DBSCAN 是無監(jiān)督的,它嘗試使用數(shù)據(jù)的隱藏特征來提供數(shù)據(jù)結(jié)構(gòu)。它使用了兩個(gè)參數(shù):最少的點(diǎn)數(shù)和 epsilon 距離。

DBSCAN 算法

DBSCAN 處理一個(gè)多維空間中的點(diǎn)。每個(gè)點(diǎn)由一個(gè)特征矢量表示,而且給定了兩個(gè)矢量,您可以使用一個(gè)指標(biāo)來計(jì)算它們之間的距離(比如歐氏距離)。

該算法從一個(gè)點(diǎn)開始,您可以識(shí)別離原始點(diǎn)給定距離(稱為 epsilon 距離)內(nèi)的鄰近點(diǎn)數(shù)量。如果鄰近點(diǎn)數(shù)量滿足或超出了閾值(稱為最少點(diǎn)數(shù)或 MINPTS),則將這個(gè)點(diǎn)稱為核心點(diǎn),并將它與一個(gè)新集群相關(guān)聯(lián)。否則,會(huì)將這個(gè)點(diǎn)標(biāo)為噪聲。對(duì)于每個(gè)鄰近點(diǎn)(稱為密度可達(dá)點(diǎn)),只要它繼續(xù)滿足條件(離此點(diǎn) epsilon 距離內(nèi)的 MINPTS 點(diǎn)),就繼續(xù)執(zhí)行此操作并對(duì)它執(zhí)行聚類。如果您到達(dá)一個(gè)沒有密度可達(dá)點(diǎn)的點(diǎn),那么可以將該點(diǎn)包含在集群中,但不使用超過此點(diǎn)的點(diǎn)來合并新點(diǎn)。

任何不滿足條件(epsilon 距離內(nèi)的 MINPTS)的點(diǎn)都被定義為噪聲,但是,如果發(fā)現(xiàn)它們是一個(gè)集群中另一個(gè)點(diǎn)的密度可達(dá)點(diǎn),那么最終可以將它們移動(dòng)到該集群中。

讓我們?cè)趫D 2 的上下文中看看此流程。首先在左圖中(名為 Start),我挑選了一個(gè)點(diǎn)并檢查它的鄰近點(diǎn)。如果 MINPTS == 2,我的點(diǎn)滿足此條件并被添加到集群中。我們添加了兩個(gè)鄰近(密度可達(dá))點(diǎn)用于測(cè)試,并繼續(xù)執(zhí)行該流程。只要每個(gè)點(diǎn)在 epsilon 距離內(nèi)至少有兩個(gè)鄰近點(diǎn),它們就會(huì)被添加到集群中并稱為核心點(diǎn))。密度可達(dá)但本身不滿足密度標(biāo)準(zhǔn)的點(diǎn)是非核心點(diǎn)(例如藍(lán)色的點(diǎn))。該算法在右側(cè)結(jié)束(名為 End)。綠色的點(diǎn)(核心點(diǎn))和藍(lán)色的點(diǎn)(非核心點(diǎn),但密度可達(dá))都包含在集群中。右上角的紅色點(diǎn)是異常值,被視為噪聲。

圖 2. 完整的 DBSCAN 流程

 

接下來,我將介紹 DBSCAN 實(shí)現(xiàn)的核心。

DBSCAN 實(shí)現(xiàn)

可以在 GitHub 上找到這個(gè) DBSCAN 實(shí)現(xiàn)?,F(xiàn)在我們探討一下實(shí)現(xiàn)該算法的核心的兩個(gè)關(guān)鍵函數(shù)。剩余函數(shù)處理距離計(jì)算和鄰近點(diǎn)內(nèi)存管理。

dbscan 函數(shù)(參見清單 4)實(shí)現(xiàn)了聚類算法的外部循環(huán)。它迭代數(shù)據(jù)集,確定觀察值是否滿足密度函數(shù)(epsilon 距離內(nèi)的 MINPTS 觀察值)。如果不滿足,則將該觀察值標(biāo)為噪聲;否則,會(huì)創(chuàng)建一個(gè)集群并處理它的鄰近點(diǎn)。

清單 4. 主 dbscan 函數(shù)

 

process_neighbor 函數(shù)(參見清單 5)圍繞一個(gè)滿足密度限制的點(diǎn)構(gòu)建一個(gè)集群。它迭代鄰近點(diǎn)列表(稱為種子集),查看它們是否在當(dāng)前集群內(nèi)。以前定義為噪聲的觀察值會(huì)被加載到該集群中,已加載到該集群中的觀察值會(huì)被忽略。然后檢查當(dāng)前(未被忽略的)觀察值的鄰近點(diǎn);此觀察值的所有(滿足此條件的)鄰近點(diǎn)都會(huì)加載到種子集中,以針對(duì)此集群進(jìn)行檢查。這個(gè)過程會(huì)一直持續(xù)到?jīng)]有新觀察值被加載到種子集中,并且種子集中的所有觀察值都已檢查。返回時(shí),dbscan 函數(shù)會(huì)挑選下一個(gè)觀察值并繼續(xù)執(zhí)行該流程(可能添加新的集群)。

清單 5. 密度可達(dá)點(diǎn)之后的 process_neighbor 函數(shù)

 

在不到 50 行的核心 C 代碼中,我創(chuàng)建了一個(gè)簡單的聚類解決方案,它與更傳統(tǒng)的方法相比具有明顯優(yōu)勢(shì)??紤]使用前面的動(dòng)物園數(shù)據(jù)集的 DBSCAN:必須調(diào)整 DBSCAN 來選擇正確的 MINPTS 和 epsilon。在這個(gè)示例中,我選擇了 epsilon = 1.7 和 MINPTS = 4。通過這些參數(shù),DBSCAN 創(chuàng)建了 6 個(gè)類,14 個(gè)觀察值是噪聲,整體準(zhǔn)確率為 74%。它***地對(duì)鳥和魚的類別進(jìn)行了聚類,但將哺乳動(dòng)物集群拆分為一個(gè)大型集群和一個(gè)小型集群。

使用前面的測(cè)試案例,它將“flea with teeth”和“six-legged aquatic egg layer”都劃分到昆蟲類別中,將“predator with hair”劃分為噪聲。調(diào)整 epsilon 距離和 MINPTS 參數(shù)可以提高此數(shù)據(jù)集的準(zhǔn)確率。

結(jié)束語

預(yù)測(cè)和分類是機(jī)器學(xué)習(xí)的兩個(gè)有許多應(yīng)用的重要方面。從預(yù)測(cè)消費(fèi)者的行為(基于他們對(duì)類似消費(fèi)者的分類)到預(yù)測(cè)保險(xiǎn)政策的風(fēng)險(xiǎn)(基于描述政策和申請(qǐng)者的特征),通過分類進(jìn)行預(yù)測(cè)是一個(gè)真實(shí)的機(jī)器學(xué)習(xí)應(yīng)用示例。

責(zé)任編輯:未麗燕 來源: 網(wǎng)絡(luò)大數(shù)據(jù)
相關(guān)推薦

2018-04-16 11:11:56

2020-06-01 14:11:39

AdaBoost數(shù)據(jù)科學(xué)分類器

2021-10-22 06:53:45

脫敏處理數(shù)據(jù)

2022-08-02 09:32:47

pandas移動(dòng)計(jì)算

2009-09-28 09:47:55

Hibernate數(shù)據(jù)

2023-10-10 09:13:15

Python數(shù)據(jù)的操作轉(zhuǎn)換

2021-08-09 15:00:36

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

2019-12-20 09:35:40

數(shù)據(jù)中心IT技術(shù)私有云

2022-08-19 07:38:51

數(shù)據(jù)備份系統(tǒng)存儲(chǔ)

2018-02-01 16:25:55

2021-02-02 10:50:30

數(shù)據(jù)數(shù)據(jù)科學(xué)數(shù)據(jù)清理

2009-08-28 15:16:32

C#實(shí)現(xiàn)對(duì)數(shù)據(jù)庫訪問

2022-11-02 14:45:24

Python數(shù)據(jù)分析工具

2010-11-12 14:16:21

SQL游標(biāo)

2024-01-31 09:15:25

數(shù)據(jù)環(huán)境OLAP數(shù)據(jù)工程

2015-10-15 14:13:56

博弈論數(shù)據(jù)科學(xué)家

2015-11-13 10:06:27

數(shù)據(jù)科學(xué)大數(shù)據(jù)入門

2022-07-15 09:00:00

SQL數(shù)據(jù)庫據(jù)科學(xué)家

2017-12-26 11:45:36

數(shù)據(jù)中心IDCIT基礎(chǔ)設(shè)施

2022-01-17 14:13:17

人工智能AI深度學(xué)習(xí)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)