數據分享|R語言用主成分PCA、 邏輯回歸、決策樹、隨機森林分析心臟病數據并高維可視化
全文鏈接:http://tecdat.cn/?p=22262
在討論分類時,我們經常分析二維數據(一個自變量,一個因變量)(點擊文末“閱讀原文”獲取完整代碼數據)。
但在實際生活中,有更多的觀察值,更多的解釋變量。隨著兩個以上的解釋變量,它開始變得更加復雜的可視化。
相關視頻
拓端
,贊9
拓端
,贊15
拓端
,贊9
拓端
,贊20
數據
我們使用心臟病數據(查看文末了解數據獲取方式),預測急診病人的心肌梗死,包含變量:
心臟指數
心搏量指數
舒張壓
肺動脈壓
心室壓力
肺阻力
是否存活

其中我們有急診室的觀察結果,對于心肌梗塞,我們想了解誰存活下來了,以得到一個預測模型。但是在運行一些分類器之前,我們先把我們的數據可視化。
主成分PCA
由于我們有7個解釋變量和我們的因變量(生存或死亡),我們可以去做一個PCA。
acp=PCA(X)

添加死亡生存變量,就把它當作數字0,1變量。
點擊標題查閱往期內容

數據分享|R語言邏輯回歸、Naive Bayes貝葉斯、決策樹、隨機森林算法預測心臟病
左右滑動查看更多
01

02

03

04

?是否存活=?是否存活=="存活")*1

結果不錯,我們看到因變量與部分自變量是同向的。也可以可視化樣本和類別
plot(cp??)

我們可以在這里推導出一個不錯的分類器。至少,在前兩個成分上投影時,我們可以看到我們的類別。
現在,我們不能在前兩個主成分上得到一個分類器并將其可視化嗎????因為PCA是簡單的基于正交投影的,所以我們可以(這里的數據是標準化的)。給定前兩個分量平面上的兩個坐標,給定我們的變換矩陣、歸一化分量和一個分類器(這里是基于邏輯回歸),我們可以回到原始空間,并對新數據進行分類。
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??}
?邏輯回歸
現在考慮一個邏輯回歸。只是為了簡化(去掉非顯著變量),我們使用一個逐步回歸的程序來簡化模型。
reg_tot=step(glm(是否存活~.?,
family=binomial))

可視化等概率線(如個人有50%的生存機會)使用以下
xgrid=seq(-5,5,length=25?)
ygrid=seq(-5,5,length=25?)
zgrid=ter(xgrid,ygrid,p)
然后,我們在之前的圖形上添加一條等高線
PCA(data,quali.sup=8?)
contour(?zgrid?)

結果不差,但我們應該可以做得更好。如果我們把所有的變量都保留在這里(即使它們不重要),會怎么樣呢?
?glm(是否存活~.,?
????????????family=binomial)
contour(xgrid,ygrid,zgrid?)

在現實生活中,要想真正說出我們的分類器的一些相關信息,我們應該在觀測值的一個子集上擬合我們的模型,然后在另一個子集上測試它。在這里,我們的目標更多的是在某個投影空間上得到一個函數來可視化我們的分類。
決策樹
默認分類樹
>?plot(?re,type=4,extra=6)

我們可以在此更改選項,例如每個節(jié)點的最小觀察數
rpart(factor(是否存活)~?,
+???????control=rpart.control(minsplit=10))

或者
?rpart(?
+????????control=rpart.control(minsplit=5))

要將該分類可視化,獲得前兩個成分的投影
>?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 觀測值,生長一些樹,然后,我們將預測值進行匯總。在網格上
?>?for(i?in?1:1200){
+?indice?=?sample(1:nrow(MYOCARDE),
?+?arbre_b?=?rpart(factor(是否存活)~.,
+}
>Zgrid?=?Z/1200
可視化

最后,可以使用隨機森林算法。
>?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,

點擊標題查閱往期內容
R語言高維數據的主成分pca、 t-SNE算法降維與可視化分析案例報告
R語言懲罰logistic邏輯回歸(LASSO,嶺回歸)高維變量選擇的分類模型案例
R語言有RStan的多維驗證性因子分析(CFA)
主成分分析(PCA)原理及R語言實現及分析實例
R語言無監(jiān)督學習:PCA主成分分析可視化
R語言使用Metropolis- Hasting抽樣算法進行邏輯回歸
R語言多元Logistic邏輯回歸 應用案例
R語言自適應LASSO 多項式回歸、二元邏輯回歸和嶺回歸應用分析
R語言用邏輯回歸、決策樹和隨機森林對信貸數據集進行分類預測
R語言基于樹的方法:決策樹,隨機森林,Bagging,增強樹
spss modeler用決策樹神經網絡預測ST的股票
R語言中自編基尼系數的CART回歸決策樹的實現
python在Scikit-learn中用決策樹和隨機森林預測NBA獲勝者
matlab使用分位數隨機森林(QRF)回歸樹檢測異常值
基于隨機森林、svm、CNN機器學習的風控欺詐識別模型
R語言懲罰logistic邏輯回歸(LASSO,嶺回歸)高維變量選擇的分類模型案例
R語言用標準最小二乘OLS,廣義相加模型GAM?,樣條函數進行邏輯回歸LOGISTIC分類
數據獲取
在下面公眾號后臺回復“心臟病數據”,可獲取完整數據。

點擊文末“閱讀原文”
獲取全文完整資料。
本文選自《R語言用主成分PCA、 邏輯回歸、決策樹、隨機森林分析心臟病數據并高維可視化》。
點擊標題查閱往期內容
R語言邏輯回歸logistic模型分析泰坦尼克titanic數據集預測生還情況
R語言是否對二分連續(xù)變量執(zhí)行邏輯回歸
R語言用lme4多層次(混合效應)廣義線性模型(GLM),邏輯回歸分析教育留級調查數據
R語言隨機森林RandomForest、邏輯回歸Logisitc預測心臟病數據和可視化分析
R語言基于Bagging分類的邏輯回歸(Logistic Regression)、決策樹、森林分析心臟病患者
R語言邏輯回歸(Logistic回歸)模型分類預測病人冠心病風險
R語言用局部加權回歸(Lowess)對logistic邏輯回歸診斷和殘差分析
R語言用主成分PCA、?邏輯回歸、決策樹、隨機森林分析心臟病數據并高維可視化
R語言用線性模型進行臭氧預測:加權泊松回歸,普通最小二乘,加權負二項式模型,多重插補缺失值
R語言Bootstrap的嶺回歸和自適應LASSO回歸可視化
R語言中回歸和分類模型選擇的性能指標
R語言多元時間序列滾動預測:ARIMA、回歸、ARIMAX模型分析
R語言用lme4多層次(混合效應)廣義線性模型(GLM),邏輯回歸分析教育留級調查數據
R語言計量經濟學:虛擬變量(啞變量)在線性回歸模型中的應用
R語言 線性混合效應模型實戰(zhàn)案例
R語言混合效應邏輯回歸(mixed effects logistic)模型分析肺癌數據
R語言如何用潛類別混合效應模型(LCMM)分析抑郁癥狀
R語言基于copula的貝葉斯分層混合模型的診斷準確性研究
R語言建立和可視化混合效應模型mixed effect model
R語言LME4混合效應模型研究教師的受歡迎程度
R語言 線性混合效應模型實戰(zhàn)案例
R語言用Rshiny探索lme4廣義線性混合模型(GLMM)和線性混合模型(LMM)
R語言基于copula的貝葉斯分層混合模型的診斷準確性研究
R語言如何解決線性混合模型中畸形擬合(Singular fit)的問題
基于R語言的lmer混合線性回歸模型
R語言用WinBUGS 軟件對學術能力測驗建立層次(分層)貝葉斯模型
R語言分層線性模型案例
R語言用WinBUGS 軟件對學術能力測驗(SAT)建立分層模型
使用SAS,Stata,HLM,R,SPSS和Mplus的分層線性模型HLM
R語言用WinBUGS 軟件對學術能力測驗建立層次(分層)貝葉斯模型
SPSS中的多層(等級)線性模型Multilevel linear models研究整容手術數據
用SPSS估計HLM多層(層次)線性模型模型
R語言高維數據的主成分pca、 t-SNE算法降維與可視化分析案例報告
R語言懲罰logistic邏輯回歸(LASSO,嶺回歸)高維變量選擇的分類模型案例
R語言有RStan的多維驗證性因子分析(CFA)
主成分分析(PCA)原理及R語言實現及分析實例
R語言無監(jiān)督學習:PCA主成分分析可視化
R語言使用Metropolis- Hasting抽樣算法進行邏輯回歸
R語言多元Logistic邏輯回歸 應用案例
R語言自適應LASSO 多項式回歸、二元邏輯回歸和嶺回歸應用分析
R語言用邏輯回歸、決策樹和隨機森林對信貸數據集進行分類預測
R語言基于樹的方法:決策樹,隨機森林,Bagging,增強樹
spss modeler用決策樹神經網絡預測ST的股票
R語言中自編基尼系數的CART回歸決策樹的實現
python在Scikit-learn中用決策樹和隨機森林預測NBA獲勝者
matlab使用分位數隨機森林(QRF)回歸樹檢測異常值
基于隨機森林、svm、CNN機器學習的風控欺詐識別模型
R語言懲罰logistic邏輯回歸(LASSO,嶺回歸)高維變量選擇的分類模型案例
R語言用標準最小二乘OLS,廣義相加模型GAM?,樣條函數進行邏輯回歸LOGISTIC分類