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

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

【視頻】主成分分析PCA降維方法和R語言分析葡萄酒可視化實(shí)例|數(shù)據(jù)分享

2022-06-15 16:03 作者:拓端tecdat  | 我要投稿

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

原文出處:拓端數(shù)據(jù)部落公眾號

?

降維技術(shù)之一是主成分分析?(PCA) 算法,該算法將可能相關(guān)變量的一組觀察值轉(zhuǎn)換為一組線性不相關(guān)變量。在本文中,我們將討論如何通過使用 R編程語言使用主成分分析來減少數(shù)據(jù)維度分析葡萄酒數(shù)據(jù)查看文末了解數(shù)據(jù)獲取方式。

主成分分析PCA降維方法和R語言分析葡萄酒可視化實(shí)例

主成分分析PCA降維方法和R語言分析葡萄酒可視化實(shí)例

,時(shí)長04:30

高維數(shù)據(jù)集的處理可能是一個(gè)復(fù)雜的問題,因?yàn)槲覀冃枰叩挠?jì)算資源,或者難以控制機(jī)器學(xué)習(xí)模型的過度擬合等。為避免此類問題,您可以降低數(shù)據(jù)集的維數(shù)。降維將數(shù)據(jù)從高維空間轉(zhuǎn)移到低維空間,使數(shù)據(jù)的低維表示只保留原始數(shù)據(jù)的重要方面。

這是將三維數(shù)據(jù)集轉(zhuǎn)換為三個(gè)二維數(shù)據(jù)集的可視化:該圖說明了一個(gè)三維特征空間被分成三個(gè)二維特征空間,之后,如果發(fā)現(xiàn)相關(guān),特征的數(shù)量可以進(jìn)一步減少。

主成分分析(PCA)

主成分分析(PCA)是最流行的線性降維算法之一。它是一種基于投影的方法,通過將數(shù)據(jù)投影到一組正交(垂直)軸上來轉(zhuǎn)換數(shù)據(jù)。

“PCA 的工作條件是,當(dāng)高維空間中的數(shù)據(jù)映射到低維空間中的數(shù)據(jù)時(shí),低維空間中數(shù)據(jù)的方差或散布應(yīng)該最大?!?/p>

假設(shè)我們必須將數(shù)據(jù)點(diǎn)的二維表示轉(zhuǎn)換為一維表示。因此,我們將嘗試在它們上找到一條直線并投影數(shù)據(jù)點(diǎn)。(直線是一維的)。選擇直線的可能性有很多。

假設(shè)藍(lán)色線將是我們的新維度。如果你看到藍(lán)線(連接紅點(diǎn)在藍(lán)線上的投影),即每個(gè)數(shù)據(jù)點(diǎn)與直線的垂直距離就是投影誤差。所有數(shù)據(jù)點(diǎn)的誤差之和將是總投影誤差。

我們的新數(shù)據(jù)點(diǎn)將是那些原始藍(lán)色數(shù)據(jù)點(diǎn)的投影(紅色點(diǎn))。正如我們所看到的,我們通過將二維數(shù)據(jù)點(diǎn)投影到一維空間(即直線)上,將它們轉(zhuǎn)換為一維數(shù)據(jù)點(diǎn)。

您從本質(zhì)上將數(shù)據(jù)的維度從二維減少到一維。一維空間(也就是直線)是二維坐標(biāo)系的子空間。

藍(lán)線是使用數(shù)學(xué)優(yōu)化構(gòu)建的,以盡可能地沿該線最大化數(shù)據(jù)點(diǎn)之間的方差,數(shù)據(jù)在二維空間中沿藍(lán)線具有最大方差。

我們稱這條線為我們的第一個(gè)主成分。自然,線上的點(diǎn)仍然比原始 2D 空間中的點(diǎn)更接近,因?yàn)槟谑^(qū)分它們的維度。但在很多情況下,通過降維實(shí)現(xiàn)的簡化超過了信息的損失,損失可以部分或全部重構(gòu)。

在我們之前的示例中,我們只有一個(gè)主成分。一旦進(jìn)入更高維空間,您可能會使用多個(gè)主成分,因?yàn)橛梢粋€(gè)主成分解釋的方差通常不足。主成分是相互正交的向量。這意味著它們形成 90 度角。在數(shù)學(xué)上,正交向量是獨(dú)立的,這意味著由第二個(gè)主成分解釋的方差與第一個(gè)主成分的方差不重疊。因此,它們盡可能有效地表示信息。第一個(gè)主成分將捕獲大部分方差;第二個(gè)主成分將捕獲第一個(gè)未解釋的方差的第二大部分,依此類推。

實(shí)際上,主成分是通過確保特征之間沒有信息重疊來盡可能有效地表示數(shù)據(jù)及其差異的特征組合。原始特征通常顯示出顯著的冗余,這也是主成分分析在降維方面如此有效的主要原因。

R語言主成分分析(PCA)葡萄酒可視化:主成分得分散點(diǎn)圖和載荷圖

我們將使用葡萄酒數(shù)據(jù)集進(jìn)行主成分分析。

數(shù)據(jù)

數(shù)據(jù)包含177個(gè)樣本和13個(gè)變量的數(shù)據(jù)框;vintages包含類標(biāo)簽。這些數(shù)據(jù)是對生長在意大利同一地區(qū)但來自三個(gè)不同栽培品種的葡萄酒進(jìn)行化學(xué)分析的結(jié)果:內(nèi)比奧羅、巴貝拉和格里格諾葡萄。來自內(nèi)比奧羅葡萄的葡萄酒被稱為巴羅洛。

這些數(shù)據(jù)包含在三種類型的葡萄酒中各自發(fā)現(xiàn)的幾種成分的數(shù)量。

  1. #?看一下數(shù)據(jù)

  2. head(no)

輸出

轉(zhuǎn)換和標(biāo)準(zhǔn)化數(shù)據(jù)

對數(shù)轉(zhuǎn)換和標(biāo)準(zhǔn)化,將所有變量設(shè)置在同一尺度上。

  1. #?對數(shù)轉(zhuǎn)換

  2. no_log?<-?log(no)


  3. #?標(biāo)準(zhǔn)化

  4. log\_scale?<-?scale(no\_log)

  5. head(log_scale)

主成分分析(PCA)

使用奇異值分解算法進(jìn)行主成分分析

  1. prcomp(log_scale,?center=FALSE)

  2. summary(PCA)

基本圖形(默認(rèn)設(shè)置)

帶有基礎(chǔ)圖形的主成分得分和載荷圖

  1. plot(scores\[,1:2\],?#?x和y數(shù)據(jù)

  2. ?????pch=21,?#?點(diǎn)形狀

  3. ????cex=1.5,?#?點(diǎn)的大小


  4. legend("topright",?#?legend的位置

  5. ???????legend=levels(vint),?#?圖例顯示


  6. plot(loadings\[,1:2\],?#?x和y數(shù)據(jù)

  7. ?????pch=21,?#?點(diǎn)的形狀


  8. text(loadings\[,1:2\],?#?設(shè)置標(biāo)簽的位置

此外,我們還可以在分?jǐn)?shù)圖中的組別上添加95%的置信度橢圓。

置信度橢圓圖函數(shù)

  1. ##?橢圓曲線圖

  2. ????????????????????????elev=0.95,?#?橢圓概率水平

  3. ????????????????????????pcol=NULL,?#?手工添加顏色,必須滿足長度的因素

  4. ????????????????????????cexsize=1,?#?點(diǎn)大小

  5. ????????????????????????ppch=21,?#?點(diǎn)類型,必須滿足因素的長度

  6. ????????????????????????legcexsize=2,?#?圖例字體大小

  7. ????????????????????????legptsize=2,?#?圖例點(diǎn)尺寸


  8. ????##?設(shè)定因子水平

  9. ????if(is.factor(factr)?{

  10. ????????f?<-?factr

  11. ????}?else?{

  12. ????????f?<-?factor(factr,?levels=unique(as.character(factr)))

  13. ????}

  14. ????intfactr?<-?as.integer(f)?#?設(shè)置與因子水平相匹配的整數(shù)向量


  15. ????##?獲取橢圓的數(shù)據(jù)

  16. ????edf?<-?data.frame(LV1?=?x,?LV2=y,?factr?=?f)?#?用數(shù)據(jù)和因子創(chuàng)建數(shù)據(jù)框

  17. ????ellipses?<-?dlply(edf,?.(factr),?function(x)?{


  18. ????????Ellipse(LV1,?LV2,?levels=elev,?robust=TRUE,?draw=FALSE)?#從dataEllipse()函數(shù)中按因子水平獲取置信度橢圓點(diǎn)

  19. ????})

  20. ????##?獲取X和Y數(shù)據(jù)的范圍

  21. ????xrange?<-?plotat(range(c(as.vector(sapply(ellipses,?function(x)?x\[,1\])),?min(x),?max(x))))

  22. ????##?為圖塊設(shè)置顏色

  23. ????if(is.null(pcol)?!=?TRUE)?{?#?如果顏色是由用戶提供的

  24. ????????pgcol?<-?paste(pcol,?"7e",?sep="")?#?增加不透明度


  25. ????#?繪圖圖形

  26. ????plot(x,y,?type="n",?xlab="",?ylab="",?main=""

  27. ????abline(h=0,?v=0,?col="gray",?lty=2)?#在0添加線條

  28. ????legpch?<-?c()?#?收集圖例數(shù)據(jù)的矢量

  29. ????legcol?<-?c()?#?收集圖例col數(shù)據(jù)的向量

  30. ????##?添加點(diǎn)、橢圓,并確定圖例的顏色

  31. ????##?圖例

  32. ????legend(x=legpos,?legend=levels(f),?pch=legpch,?

  33. ##?使用prcomp()函數(shù)的PCA輸出的軸圖示

  34. ????pcavar?<-?round((sdev^2)/sum((sdev^2))

基礎(chǔ)圖形

繪制主成分得分圖,使用基本默認(rèn)值繪制載荷圖

  1. plot(scores\[,1\],?#?X軸的數(shù)據(jù)

  2. ????????????scores\[,2\],?#?Y軸的數(shù)據(jù)

  3. ????????????vint,?#?有類的因素

  4. ????????????pcol=c(),?#?用于繪圖的顏色(必須與因素的數(shù)量相匹配)

  5. ????????????pbgcol=FALSE, #點(diǎn)的邊框是黑色的?

  6. ????????????cexsize=1.5,?#?點(diǎn)的大小?

  7. ????????????ppch=c(21:23),?#?點(diǎn)的形狀(必須與因子的數(shù)量相匹配)

  8. ????????????legpos="bottom?right",?#?圖例的位置???????????

  9. ????????????legcexsize=1.5,?#?圖例文字大小

  10. ????????????legptsize=1.5,?#?圖例點(diǎn)的大小?

  11. ????????????axissize=1.5,?#?設(shè)置軸的文字大小

  12. ????????????linewidth=1.5?#?設(shè)置軸線尺寸

  13. )?????????????????????????

  14. title(xlab=explain\[\["PC1"\]\],?#?PC1上解釋的方差百分比

  15. ??????ylab=explain\[\["PC2"\]\],?#?PC2解釋的方差百分比?

  16. ??????main="Scores",?#?標(biāo)題

  17. ??????cex.lab=1.5,?#?標(biāo)簽文字的大小

  18. ??????cex.main=1.5?#?標(biāo)題文字的大小


  19. plot(loadings\[,1:2\],?#?x和y數(shù)據(jù)

  20. ?????pch=21,?#?點(diǎn)的形狀

  21. ?????cex=1.5,?#?點(diǎn)的大小

  22. ????#?type="n",?#?不繪制點(diǎn)數(shù)

  23. ?????axes=FALSE,?#?不打印坐標(biāo)軸

  24. ?????xlab="",?#?刪除x標(biāo)簽

  25. ?????ylab=""??????????????#?刪除y標(biāo)簽

  26. )

  27. pointLabel(loadings\[,1:2\],?#設(shè)置標(biāo)簽的位置

  28. ???????????labels=rownames(PCAloadings),?#?輸出標(biāo)簽

  29. ???????????cex=1.5?#?設(shè)置標(biāo)簽的大小

  30. )?#?pointLabel將嘗試將文本放在點(diǎn)的周圍

  31. axis(1,?#?顯示x軸

  32. ?????cex.axis=1.5,?#?設(shè)置文本的大小

  33. ?????lwd=1.5?#?設(shè)置軸線的大小

  34. )

  35. axis(2,?#?顯示y軸

  36. ?????las=2,?#?參數(shù)設(shè)置文本的方向,2是垂直的

  37. ?????cex.axis=1.5,?#?設(shè)置文本的大小

  38. ?????lwd=1.5?#?設(shè)置軸線的大小

  39. )

  40. title(xlab=explain\[\["PC1"\]\],?#?PC1所解釋的方差百分比

  41. ??????ylab=explain\[\["PC2"\]\],?#?PC2解釋的方差百分比?


  42. ??????cex.lab=1.5,?#?標(biāo)簽文字的大小

  43. ??????cex.main=1.5?#?標(biāo)題文字的大小

  44. )

數(shù)據(jù)獲取

在下面公眾號后臺回復(fù)“葡萄酒數(shù)據(jù)”,可獲取完整數(shù)據(jù)。

點(diǎn)擊文末“閱讀原文”

獲取全文完整資料。

本文選自《R語言主成分分析(PCA)葡萄酒可視化:主成分得分散點(diǎn)圖和載荷圖》。

點(diǎn)擊標(biāo)題查閱往期內(nèi)容

數(shù)據(jù)分享|R語言用主成分分析(PCA)PCR回歸進(jìn)行預(yù)測汽車購買信息可視化

R語言主成分分析(PCA)葡萄酒可視化:主成分得分散點(diǎn)圖和載荷圖

主成分分析PCA譜分解、奇異值分解SVD預(yù)測分析運(yùn)動員表現(xiàn)數(shù)據(jù)和降維可視化

用回歸和主成分分析PCA 回歸交叉驗(yàn)證分析預(yù)測城市犯罪率數(shù)據(jù)

R語言k-means聚類、層次聚類、主成分(PCA)降維及可視化分析鳶尾花iris數(shù)據(jù)集

R語言有限混合模型(FMM,finite mixture model)EM算法聚類分析間歇泉噴發(fā)時(shí)間

R語言用溫度對城市層次聚類、kmean聚類、主成分分析和Voronoi圖可視化

R語言k-Shape時(shí)間序列聚類方法對股票價(jià)格時(shí)間序列聚類

R語言中的SOM(自組織映射神經(jīng)網(wǎng)絡(luò))對NBA球員聚類分析

Python、R對小說進(jìn)行文本挖掘和層次聚類可視化分析案例

R語言復(fù)雜網(wǎng)絡(luò)分析:聚類(社區(qū)檢測)和可視化

R語言中的劃分聚類模型

基于模型的聚類和R語言中的高斯混合模型

r語言聚類分析:k-means和層次聚類

SAS用K-Means 聚類最優(yōu)k值的選取和分析

R語言k-Shape時(shí)間序列聚類方法對股票價(jià)格時(shí)間序列聚類

基于LDA主題模型聚類的商品評論文本挖掘

R語言中實(shí)現(xiàn)層次聚類模型

用R語言進(jìn)行網(wǎng)站評論文本挖掘聚類

R語言鳶尾花iris數(shù)據(jù)集的層次聚類分析

R語言對用電負(fù)荷時(shí)間序列數(shù)據(jù)進(jìn)行K-medoids聚類建模和GAM回歸

R語言聚類算法的應(yīng)用實(shí)例

基于模型的聚類和R語言中的高斯混合模型


【視頻】主成分分析PCA降維方法和R語言分析葡萄酒可視化實(shí)例|數(shù)據(jù)分享的評論 (共 條)

分享到微博請遵守國家法律
中超| 青田县| 沿河| 阿拉善盟| 宁明县| 琼结县| 黔东| 冀州市| 宁化县| 团风县| 名山县| 临泉县| 苍山县| 新野县| 大安市| 绥中县| 靖宇县| 铁岭县| 遵化市| 喀什市| 裕民县| 乌鲁木齐市| 遵化市| 凌源市| 肇东市| 平定县| 合水县| 凭祥市| 阿图什市| 昭通市| 固安县| 武乡县| 札达县| 怀安县| 呈贡县| 综艺| 开阳县| 德令哈市| 成都市| 雷山县| 宜君县|