數(shù)據(jù)分享|R語言用主成分PCA、 邏輯回歸、決策樹、隨機(jī)森林分析心臟病數(shù)據(jù)并高維可視化
全文鏈接:http://tecdat.cn/?p=22262
在討論分類時(shí),我們經(jīng)常分析二維數(shù)據(jù)(一個(gè)自變量,一個(gè)因變量)?(?點(diǎn)擊文末“閱讀原文”獲取完整代碼數(shù)據(jù)********?)。
但在實(shí)際生活中,有更多的觀察值,更多的解釋變量。隨著兩個(gè)以上的解釋變量,它開始變得更加復(fù)雜的可視化。
數(shù)據(jù)
我們使用心臟病數(shù)據(jù)?(?查看文末了解數(shù)據(jù)獲取方式?)?,預(yù)測(cè)急診病人的心肌梗死,包含變量:
心臟指數(shù)
心搏量指數(shù)
舒張壓
肺動(dòng)脈壓
心室壓力
肺阻力
是否存活
其中我們有急診室的觀察結(jié)果,對(duì)于心肌梗塞,我們想了解誰存活下來了,以得到一個(gè)預(yù)測(cè)模型。但是在運(yùn)行一些分類器之前,我們先把我們的數(shù)據(jù)可視化。
主成分PCA
由于我們有7個(gè)解釋變量和我們的因變量(生存或死亡),我們可以去做一個(gè)PCA。
acp=PCA(X)
添加死亡生存變量,就把它當(dāng)作數(shù)字0,1變量。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
數(shù)據(jù)分享|R語言邏輯回歸、Naive Bayes貝葉斯、決策樹、隨機(jī)森林算法預(yù)測(cè)心臟病
左右滑動(dòng)查看更多
01
02
03
04
?是否存活=?是否存活=="存活")*1
結(jié)果不錯(cuò),我們看到因變量與部分自變量是同向的。也可以可視化樣本和類別
plot(cp??)
我們可以在這里推導(dǎo)出一個(gè)不錯(cuò)的分類器。至少,在前兩個(gè)成分上投影時(shí),我們可以看到我們的類別。
現(xiàn)在,我們不能在前兩個(gè)主成分上得到一個(gè)分類器并將其可視化嗎????因?yàn)镻CA是簡(jiǎn)單的基于正交投影的,所以我們可以(這里的數(shù)據(jù)是標(biāo)準(zhǔn)化的)。給定前兩個(gè)分量平面上的兩個(gè)坐標(biāo),給定我們的變換矩陣、歸一化分量和一個(gè)分類器(這里是基于邏輯回歸),我們可以回到原始空間,并對(duì)新數(shù)據(jù)進(jìn)行分類。
PCA(X,ncp=ncol(X))function(d1,d2,Mat,reg){
??z=Mat?%*%?c(d1,d2,rep(0,ncol(X)-2))
??newd=data.frame(t(z*s+m))pred(reg,?newd??}
?邏輯回歸
現(xiàn)在考慮一個(gè)邏輯回歸。只是為了簡(jiǎn)化(去掉非顯著變量),我們使用一個(gè)逐步回歸的程序來簡(jiǎn)化模型。
reg_tot=step(glm(是否存活~.?,family=binomial))
可視化等概率線(如個(gè)人有50%的生存機(jī)會(huì))使用以下
xgrid=seq(-5,5,length=25?)ygrid=seq(-5,5,length=25?)zgrid=ter(xgrid,ygrid,p)
然后,我們?cè)谥暗膱D形上添加一條等高線
PCA(data,quali.sup=8?)contour(?zgrid?)
結(jié)果不差,但我們應(yīng)該可以做得更好。如果我們把所有的變量都保留在這里(即使它們不重要),會(huì)怎么樣呢?
?glm(是否存活~.,?
????????????family=binomial)
?contour(xgrid,ygrid,zgrid?)
在現(xiàn)實(shí)生活中,要想真正說出我們的分類器的一些相關(guān)信息,我們應(yīng)該在觀測(cè)值的一個(gè)子集上擬合我們的模型,然后在另一個(gè)子集上測(cè)試它。在這里,我們的目標(biāo)更多的是在某個(gè)投影空間上得到一個(gè)函數(shù)來可視化我們的分類。
決策樹
默認(rèn)分類樹
>?plot(?re,type=4,extra=6)
我們可以在此更改選項(xiàng),例如每個(gè)節(jié)點(diǎn)的最小觀察數(shù)
rpart(factor(是否存活)~?,
+???????control=rpart.control(minsplit=10))
或者
?rpart(?
+????????control=rpart.control(minsplit=5))
要將該分類可視化,獲得前兩個(gè)成分的投影
>?p=function(d1,d2)?pred2(d1,d2?)
>?zgrid=Outer(xgrid,ygrid,p)
?PCA(??quali.sup=8,graph=TRUE)
>?image(xgrid,ygrid,zgrid?)
>?contour(xgrid,ygrid,zgrid,add=TRUE,levels=.5)
也可以考慮這種情況
?rpart(?control=rpart.control(minsplit=5))
最后,我們還可以生成更多的樹,通過采樣獲得。這就是bagging的概念:我們boostrap 觀測(cè)值,生長一些樹,然后,我們將預(yù)測(cè)值進(jìn)行匯總。在網(wǎng)格上
?>?for(i?in?1:1200){
+?indice?=?sample(1:nrow(MYOCARDE),
?+?arbre_b?=?rpart(factor(是否存活)~.,
+}
>Zgrid?=?Z/1200
可視化
最后,可以使用隨機(jī)森林算法。
>?fore=?randomForest(factor(是否存活)~.,
>?pF=function(d1,d2)?pred2(d1,d2,Minv,fore)
>?zgridF=Outer(xgrid,ygrid,pF)
PCA(data,.sup=8,graph=TRUE)
>?image(xgrid,ygrid,Zgrid,add=TRUE,
>?contour(xgrid,ygrid,zgridF,
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
R語言高維數(shù)據(jù)的主成分pca、 t-SNE算法降維與可視化分析案例報(bào)告
R語言懲罰logistic邏輯回歸(LASSO,嶺回歸)高維變量選擇的分類模型案例
R語言有RStan的多維驗(yàn)證性因子分析(CFA)
主成分分析(PCA)原理及R語言實(shí)現(xiàn)及分析實(shí)例
R語言無監(jiān)督學(xué)習(xí):PCA主成分分析可視化
R語言使用Metropolis- Hasting抽樣算法進(jìn)行邏輯回歸
R語言多元Logistic邏輯回歸 應(yīng)用案例
R語言自適應(yīng)LASSO 多項(xiàng)式回歸、二元邏輯回歸和嶺回歸應(yīng)用分析
R語言用邏輯回歸、決策樹和隨機(jī)森林對(duì)信貸數(shù)據(jù)集進(jìn)行分類預(yù)測(cè)
R語言基于樹的方法:決策樹,隨機(jī)森林,Bagging,增強(qiáng)樹
spss modeler用決策樹神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)ST的股票
R語言中自編基尼系數(shù)的CART回歸決策樹的實(shí)現(xiàn)
python在Scikit-learn中用決策樹和隨機(jī)森林預(yù)測(cè)NBA獲勝者
matlab使用分位數(shù)隨機(jī)森林(QRF)回歸樹檢測(cè)異常值
基于隨機(jī)森林、svm、CNN機(jī)器學(xué)習(xí)的風(fēng)控欺詐識(shí)別模型
R語言懲罰logistic邏輯回歸(LASSO,嶺回歸)高維變量選擇的分類模型案例
R語言用標(biāo)準(zhǔn)最小二乘OLS,廣義相加模型GAM?,樣條函數(shù)進(jìn)行邏輯回歸LOGISTIC分類
數(shù)據(jù)獲取
在下面公眾號(hào)后臺(tái)回復(fù)“心臟病數(shù)****據(jù)”,可獲取完整數(shù)據(jù)。
點(diǎn)擊文末?“閱讀原文”
獲取全文完整資料。
本文選自《R語言用主成分PCA、 邏輯回歸、決策樹、隨機(jī)森林分析心臟病數(shù)據(jù)并高維可視化》。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
R語言邏輯回歸logistic模型分析泰坦尼克titanic數(shù)據(jù)集預(yù)測(cè)生還情況R語言是否對(duì)二分連續(xù)變量執(zhí)行邏輯回歸
R語言用lme4多層次(混合效應(yīng))廣義線性模型(GLM),邏輯回歸分析教育留級(jí)調(diào)查數(shù)據(jù)
R語言隨機(jī)森林RandomForest、邏輯回歸Logisitc預(yù)測(cè)心臟病數(shù)據(jù)和可視化分析
R語言基于Bagging分類的邏輯回歸(Logistic Regression)、決策樹、森林分析心臟病患者
R語言邏輯回歸(Logistic回歸)模型分類預(yù)測(cè)病人冠心病風(fēng)險(xiǎn)
R語言用局部加權(quán)回歸(Lowess)對(duì)logistic邏輯回歸診斷和殘差分析R語言用主成分PCA、?邏輯回歸、決策樹、隨機(jī)森林分析心臟病數(shù)據(jù)并高維可視化
R語言用線性模型進(jìn)行臭氧預(yù)測(cè):加權(quán)泊松回歸,普通最小二乘,加權(quán)負(fù)二項(xiàng)式模型,多重插補(bǔ)缺失值R語言Bootstrap的嶺回歸和自適應(yīng)LASSO回歸可視化
R語言中回歸和分類模型選擇的性能指標(biāo)
R語言多元時(shí)間序列滾動(dòng)預(yù)測(cè):ARIMA、回歸、ARIMAX模型分析
R語言用lme4多層次(混合效應(yīng))廣義線性模型(GLM),邏輯回歸分析教育留級(jí)調(diào)查數(shù)據(jù)
R語言計(jì)量經(jīng)濟(jì)學(xué):虛擬變量(啞變量)在線性回歸模型中的應(yīng)用
R語言 線性混合效應(yīng)模型實(shí)戰(zhàn)案例
R語言混合效應(yīng)邏輯回歸(mixed effects logistic)模型分析肺癌數(shù)據(jù)
R語言如何用潛類別混合效應(yīng)模型(LCMM)分析抑郁癥狀
R語言基于copula的貝葉斯分層混合模型的診斷準(zhǔn)確性研究
R語言建立和可視化混合效應(yīng)模型mixed effect model
R語言LME4混合效應(yīng)模型研究教師的受歡迎程度
R語言 線性混合效應(yīng)模型實(shí)戰(zhàn)案例
R語言用Rshiny探索lme4廣義線性混合模型(GLMM)和線性混合模型(LMM)
R語言基于copula的貝葉斯分層混合模型的診斷準(zhǔn)確性研究
R語言如何解決線性混合模型中畸形擬合(Singular fit)的問題
基于R語言的lmer混合線性回歸模型
R語言用WinBUGS 軟件對(duì)學(xué)術(shù)能力測(cè)驗(yàn)建立層次(分層)貝葉斯模型
R語言分層線性模型案例
R語言用WinBUGS 軟件對(duì)學(xué)術(shù)能力測(cè)驗(yàn)(SAT)建立分層模型
使用SAS,Stata,HLM,R,SPSS和Mplus的分層線性模型HLM
R語言用WinBUGS 軟件對(duì)學(xué)術(shù)能力測(cè)驗(yàn)建立層次(分層)貝葉斯模型
SPSS中的多層(等級(jí))線性模型Multilevel linear models研究整容手術(shù)數(shù)據(jù)
用SPSS估計(jì)HLM多層(層次)線性模型模型R語言高維數(shù)據(jù)的主成分pca、 t-SNE算法降維與可視化分析案例報(bào)告
R語言懲罰logistic邏輯回歸(LASSO,嶺回歸)高維變量選擇的分類模型案例
R語言有RStan的多維驗(yàn)證性因子分析(CFA)
主成分分析(PCA)原理及R語言實(shí)現(xiàn)及分析實(shí)例
R語言無監(jiān)督學(xué)習(xí):PCA主成分分析可視化
R語言使用Metropolis- Hasting抽樣算法進(jìn)行邏輯回歸
R語言多元Logistic邏輯回歸 應(yīng)用案例
R語言自適應(yīng)LASSO 多項(xiàng)式回歸、二元邏輯回歸和嶺回歸應(yīng)用分析
R語言用邏輯回歸、決策樹和隨機(jī)森林對(duì)信貸數(shù)據(jù)集進(jìn)行分類預(yù)測(cè)
R語言基于樹的方法:決策樹,隨機(jī)森林,Bagging,增強(qiáng)樹
spss modeler用決策樹神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)ST的股票
R語言中自編基尼系數(shù)的CART回歸決策樹的實(shí)現(xiàn)
python在Scikit-learn中用決策樹和隨機(jī)森林預(yù)測(cè)NBA獲勝者
matlab使用分位數(shù)隨機(jī)森林(QRF)回歸樹檢測(cè)異常值
基于隨機(jī)森林、svm、CNN機(jī)器學(xué)習(xí)的風(fēng)控欺詐識(shí)別模型
R語言懲罰logistic邏輯回歸(LASSO,嶺回歸)高維變量選擇的分類模型案例
R語言用標(biāo)準(zhǔn)最小二乘OLS,廣義相加模型GAM?,樣條函數(shù)進(jìn)行邏輯回歸LOGISTIC分類