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

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

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

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

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

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

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

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

PNN 架構(gòu)

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

圖 1. PNN 架構(gòu)

 

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

PNN 算法

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

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

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

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

清單 1. PNN 分類(lèi)器的 C 代碼

 

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

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

 

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

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

 

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

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

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

DBSCAN 算法

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

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

任何不滿(mǎ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)滿(mǎn)足此條件并被添加到集群中。我們添加了兩個(gè)鄰近(密度可達(dá))點(diǎn)用于測(cè)試,并繼續(xù)執(zhí)行該流程。只要每個(gè)點(diǎn)在 epsilon 距離內(nèi)至少有兩個(gè)鄰近點(diǎn),它們就會(huì)被添加到集群中并稱(chēng)為核心點(diǎn))。密度可達(dá)但本身不滿(mǎn)足密度標(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 流程

 

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

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

 

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

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

 

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

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

結(jié)束語(yǔ)

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

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

2018-04-16 11:11:56

2020-06-01 14:11:39

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

2021-10-22 06:53:45

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

2023-10-10 09:13:15

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

2021-08-09 15:00:36

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

2009-09-28 09:47:55

Hibernate數(shù)據(jù)

2022-08-02 09:32:47

pandas移動(dòng)計(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ù)清理

2022-11-02 14:45:24

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

2009-08-28 15:16:32

C#實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)

2010-11-12 14:16:21

SQL游標(biāo)

2015-10-15 14:13:56

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

2024-01-31 09:15:25

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

2015-11-13 10:06:27

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

2022-01-17 14:13:17

人工智能AI深度學(xué)習(xí)

2020-09-11 13:36:47

Teradata大數(shù)據(jù) Vantage

2019-06-05 15:17:45

點(diǎn)贊
收藏

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