最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

R語言高維數(shù)據(jù)的主成分pca、 t-SNE算法降維與可視化分析案例報(bào)告

2020-11-24 13:19 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=6592

?

降低維度有兩個(gè)主要用例:數(shù)據(jù)探索和機(jī)器學(xué)習(xí)。它對于數(shù)據(jù)探索很有用,因?yàn)榫S數(shù)減少到幾個(gè)維度(例如2或3維)允許可視化樣本。然后可以使用這種可視化來從數(shù)據(jù)獲得見解(例如,檢測聚類并識別異常值)。對于機(jī)器學(xué)習(xí),降維是有用的,因?yàn)樵跀M合過程中使用較少的特征時(shí),模型通常會更好地概括。

在這篇文章中,我們將研究降維技術(shù):

  • 主成分分析(PCA):最流行的降維方法

  • 核PCA:PCA的一種變體,允許非線性

  • t-SNE?t分布隨機(jī)鄰域嵌入:非線性降維技術(shù)

這些方法之間的關(guān)鍵區(qū)別在于PCA輸出旋轉(zhuǎn)矩陣,可以應(yīng)用于任何其他矩陣以轉(zhuǎn)換數(shù)據(jù)。?

加載數(shù)據(jù)集

? 我們可以通過以下方式加載數(shù)據(jù)集:



  1. df <- read.csv(textConnection(f), header=T)

  2. # 選擇變量

  3. features <- c("Body", "Sweetness", "Smoky",

  4. "Medicinal", "Tobacco", "Honey",

  5. "Spicy", "Winey", "Nutty",

  6. "Malty", "Fruity", "Floral")

  7. feat.df <- df[, c("Distillery", features)]


關(guān)于結(jié)果的假設(shè)

在我們開始減少數(shù)據(jù)的維度之前,我們應(yīng)該考慮數(shù)據(jù)。

由于來自鄰近釀酒廠的威士忌使用類似的蒸餾技術(shù)和資源,他們的威士忌也有相似之處。
為了驗(yàn)證這一假設(shè),我們將測試來自不同地區(qū)的釀酒廠之間威士忌特征的平均表達(dá)是否不同。為此,我們將進(jìn)行MANOVA測試:


  1. ## ? ? ? ? ? Df Pillai approx F num Df den Df ? ?Pr(>F) ? ?

  2. ## Region ? ? 5 1.2582 ? 2.0455 ? ? 60 ? ?365 3.352e-05 ***

  3. ## Residuals 80 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

  4. ## ---

  5. ## Signif. codes: ?0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1


檢驗(yàn)統(tǒng)計(jì)量在5%水平上是顯著的,因此我們可以拒絕零假設(shè)(區(qū)域?qū)μ卣鳑]有影響)。

釀酒廠的地理位置

由于區(qū)域?qū)ν考善鹬匾饔?,我們將通過繪制其緯度和經(jīng)度來探索數(shù)據(jù)集中的釀酒廠所在的位置。以下蘇格蘭威士忌地區(qū)存在:

?

?

?

?

PCA

使用PCA可視化威士忌數(shù)據(jù)集:

?

?

在第二個(gè)圖中,我們將繪制釀酒廠的標(biāo)簽,以便我們可以更詳細(xì)地解釋類別。

?

總的來說,主成分似乎反映了以下特征:

  • PC1表示味道的強(qiáng)度:如煙熏味,藥用味(如Laphroaig或Lagavulin)與溫和味道(如Auchentoshan或Aberlour)

  • PC2表示味道的復(fù)雜性:即味道特征(例如Glenfiddich或Auchentoshan)與更具特色的味道特征(例如Glendronach或Macallan)

?


  1. ## ? Cluster Campbeltown Highlands Islands Islay Lowlands Speyside

  2. ## 1 ? ? ? 1 ? ? ? ? ? 2 ? ? ? ?17 ? ? ? 2 ? ? 2 ? ? ? ?0 ? ? ? 19

  3. ## 2 ? ? ? 2 ? ? ? ? ? 0 ? ? ? ? 8 ? ? ? 2 ? ? 1 ? ? ? ?3 ? ? ? 22

  4. ## 3 ? ? ? 3 ? ? ? ? ? 0 ? ? ? ? 2 ? ? ? 2 ? ? 4 ? ? ? ?0 ? ? ? ?0


對類別的合理解釋如下:

  • 群集1:?復(fù)合威士忌,主要來自Highlands / Speyside

  • 群集2:?均衡的威士忌,主要來自斯佩塞德和高地

  • 群集3:?煙熏威士忌,主要來自艾萊島

可視化有兩個(gè)有趣的觀察結(jié)果:

  • Oban和Clynelish是唯一一個(gè)類似于艾萊島釀酒廠口味的高地釀酒廠。

  • Highland和Speyside威士忌主要在一個(gè)方面不同。在一個(gè)極端是平滑,均衡的威士忌,如Glenfiddich。在另一個(gè)極端是具有更有特色的味道,如麥卡倫。

這包含了我們對PCA的可視化研究。我們將在本文末尾研究使用PCA進(jìn)行預(yù)測。

核PCA

內(nèi)核PCA(KPCA)是PCA的擴(kuò)展,它利用了內(nèi)核函數(shù),這些函數(shù)在支持向量機(jī)上是眾所周知的。通過將數(shù)據(jù)映射到再現(xiàn)內(nèi)核Hilbert空間,即使它們不是線性可分的,也可以分離數(shù)據(jù)。

?

在R中使用KPCA

要執(zhí)行KPCA,我們使用包中的kpca函數(shù)kernlab。

使用此核,可以按如下方式減少維數(shù):

?

檢索到新維度后,我們現(xiàn)在可以在轉(zhuǎn)換后的空間中可視化數(shù)據(jù):

?

就可視化而言,結(jié)果比我們使用常規(guī)PCR獲得的結(jié)果稍微粗糙一些。盡管如此,來自艾萊島的威士忌分離得很好,我們可以看到斯佩塞特威士忌的集群,而高地威士忌則分布較廣。

?

T-SNE

t-SNE已成為一種非常流行的數(shù)據(jù)可視化方法。

?

使用t-SNE可視化數(shù)據(jù)

在這里,我們將威士忌數(shù)據(jù)集的維度降低到兩個(gè)維度:

與PCA相比,簇的分離更加清晰,特別是對于簇1和簇2。

對于t-SNE,我們必須進(jìn)行解釋:

  • V1表示味道復(fù)雜性。這里的異常值是右側(cè)的煙熏艾萊威士忌(例如Lagavulin)和左側(cè)復(fù)雜的高地威士忌(例如麥卡倫)。

  • V2表示煙熏/藥用味道。

使用PCA進(jìn)行監(jiān)督學(xué)習(xí)

PCA是獨(dú)立完成的,這一點(diǎn)至關(guān)重要。因此,需要遵循以下方法:

  1. 在測試數(shù)據(jù)集上執(zhí)行PCA并在轉(zhuǎn)換后的數(shù)據(jù)上訓(xùn)練模型。

  2. 將訓(xùn)練數(shù)據(jù)中的學(xué)習(xí)PCA變換應(yīng)用于測試數(shù)據(jù)集,并評估模型在變換數(shù)據(jù)上的性能。

為此,我們將使用?最近鄰模型。此外,因?yàn)樗械淖兞渴窃谔卣骺臻g[0,4]。我們必須優(yōu)化k,因此我們還預(yù)留了用于確定此參數(shù)的驗(yàn)證集。

PCA轉(zhuǎn)換

首先,我們編寫一些函數(shù)來驗(yàn)證預(yù)測的性能。


  1. get.accuracy <- <strong>function</strong>(preds, labels) {

  2. correct.idx <- which(preds == labels)

  3. accuracy <- length(correct.idx) / length(labels)

  4. return (accuracy)

  5. }


在下面的代碼中,我們將對訓(xùn)練數(shù)據(jù)執(zhí)行PCA并研究解釋的方差以選擇合適的維數(shù)


  1. ## ? ? ? ? [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]

  2. ## N_dim ? ? ?1 ? ?2 ? ?3 ? ?4 ? ?5 ? ?6 ? ?7 ? ?8 ? ?9 ? ?10 ? ?11 ? ?12

  3. ## Cum_Var ? 22 ? 41 ? 52 ? 63 ? 72 ? 79 ? 85 ? 90 ? 94 ? ?97 ? ?99 ? 100


由于有足夠百分比的方差用3維可以解釋,我們將使用該值來設(shè)置訓(xùn)練,測試和驗(yàn)證數(shù)據(jù)集。

現(xiàn)在我們已經(jīng)將訓(xùn)練,驗(yàn)證和測試集轉(zhuǎn)換為PCA空間,我們可以使用k最近鄰居。

## [1] "PCA+KNN accuracy for k = 9 is: 0.571"

讓我們研究一下使用PCA的模型是否優(yōu)于基于原始數(shù)據(jù)的模型:

## [1] "KNN accuracy for k = 7 is: 0.524"

?


  1. # 威士忌特色的方差

  2. print(diag(var(data)))

  1. ## ? ? ?Body Sweetness ? ? Smoky Medicinal ? Tobacco ? ? Honey ? ? Spicy

  2. ## 0.8656635 0.5145007 0.7458276 0.9801642 0.1039672 0.7279070 0.6157319

  3. ## ? ? Winey ? ? Nutty ? ? Malty ? ?Fruity ? ?Floral

  4. ## 0.8700410 0.6752394 0.3957592 0.6075239 0.7310534


現(xiàn)在我們只能根據(jù)他們的口味確定蘇格蘭威士忌的六個(gè)區(qū)域,但問題是我們是否仍能獲得更好的表現(xiàn)。我們知道很難預(yù)測數(shù)據(jù)集中代表性不足的蘇格蘭地區(qū)。那么,如果我們局限于更少的地區(qū),會發(fā)生什么?

  • 島威士忌與艾萊島威士忌組合在一起

  • Lowland / Campbeltown威士忌與Highland威士忌組合在一起

通過這種方式,問題減少到三個(gè)區(qū)域:Island / Islay威士忌,Highland / Lowland / Campbeltown威士忌和Speyside威士忌。再次進(jìn)行分析:

## [1] "PCA+KNN accuracy for k = 13 is: 0.619"

我們可以得出61.9%的準(zhǔn)確度,我們可以得出結(jié)論,將我們樣品較少的威士忌區(qū)域分組確實(shí)是值得的。

KPCA用于監(jiān)督學(xué)習(xí)

應(yīng)用KPCA進(jìn)行預(yù)測并不像應(yīng)用PCA那樣簡單。在PCA中,特征向量是在輸入空間中計(jì)算的,但在KPCA中,特征向量來自核希爾伯特空間。因此,當(dāng)我們不知道所使用的顯式映射函數(shù)?,不可能簡單地轉(zhuǎn)換新數(shù)據(jù)點(diǎn)。

?


  1. # 注意:這會高估實(shí)際效果

  2. accuracy <- get.accuracy(preds.kpca, df$Region[samp.test])


?

摘要

我們看到了如何使用PCA,KPCA和t-SNE來降低數(shù)據(jù)集的維數(shù)。PCA是一種適用于可視化和監(jiān)督學(xué)習(xí)的方法。KPCA是一種非線性降維技術(shù)。t-SNE是一種最新的非線性方法,擅長可視化數(shù)據(jù),但缺乏PCA的可解釋性和穩(wěn)健性。

這可能表明以下兩點(diǎn)之一:

  1. 嘗試新的的威士忌仍有很大的潛力。

  2. 有很多種味道的組合是可能的,并且很好地結(jié)合在一起。

我傾向于選擇第二種選擇。為什么?在PCA圖中,右下角是沒有樣本所在的最大區(qū)域??粗拷@個(gè)區(qū)域的威士忌,我們發(fā)現(xiàn)那些是y軸上的Macallan和x軸上的Lagavulin。麥卡倫以其復(fù)雜的口味而聞名,Lagavulin以其煙熏味而聞名。

位于二維PCA空間右下方的威士忌將同時(shí)具有兩種特性:它既復(fù)雜又煙熏。我猜這種具有兩種特性的威士忌對于口感來說太好了。

?

?

?

非常感謝您閱讀本文,有任何問題請?jiān)谙旅媪粞裕?/h1>

?

參考文獻(xiàn)

1.matlab偏最小二乘回歸(PLSR)和主成分回歸(PCR)

2.R語言高維數(shù)據(jù)的主成分pca、 t-SNE算法降維與可視化分析

3.主成分分析(PCA)基本原理及分析實(shí)例

4.基于R語言實(shí)現(xiàn)LASSO回歸分析

5.使用LASSO回歸預(yù)測股票收益數(shù)據(jù)分析

6.r語言中對lasso回歸,ridge嶺回歸和elastic-net模型

7.r語言中的偏最小二乘回歸pls-da數(shù)據(jù)分析

8.r語言中的偏最小二乘pls回歸算法

9.R語言線性判別分析(LDA),二次判別分析(QDA)和正則判別分析(RDA)


R語言高維數(shù)據(jù)的主成分pca、 t-SNE算法降維與可視化分析案例報(bào)告的評論 (共 條)

分享到微博請遵守國家法律
民权县| 宁都县| 云霄县| 琼结县| 巩义市| 诏安县| 溧阳市| 崇义县| 根河市| 津市市| 德清县| 黔东| 金华市| 乐亭县| 大安市| 元阳县| 荣昌县| 南康市| 奉新县| 都昌县| 万安县| 连江县| 东辽县| 习水县| 通化县| 富阳市| 辽宁省| 克什克腾旗| 林口县| 前郭尔| 界首市| 巨鹿县| 墨江| 五河县| 兰坪| 博乐市| 东港市| 祁门县| 乌鲁木齐县| 阿鲁科尔沁旗| 竹山县|