随机森林需要分训练集测试集吗_讨论记录用随机森林对生存数据降维,筛选signature...
昨晚,小伙伴收到了大魚海棠為我們帶來的FigureYa182RFSurv,使用隨機森林對生存數據降維,根據變量重要性排序并篩選基因組成prognostic signature。
這是我們第二次眾籌隨機森林相關分析,上次的FigureYa159LR_RF,是在LASSO降維的基礎上,采用logistic regression或Random forest的方法,進行5-fold cross-validation評估LASSO selected feature的預測效能。
大魚海棠為我們帶來了眾多或經典或酷炫的好用代碼,具有豐富的醫學統計分析經驗。這次建立FigureYa182RFSurv專屬討論群,請大魚海棠入群答疑。小伙伴就相關問題展開討論,小丫整理記錄下來,留下這寶貴資源。
HSZ:請問這個安裝是哪里出問題了,我百度也不知道怎么解決?
大魚海棠:https://share.weiyun.com/0Qk7bvR6,直接把這個拖到R的library下解壓試試,我以前這樣做似乎也可以用,在windows里。
ZJH問:老師,您好!imp.cutoff這個重要性閾值的怎么選擇?
大魚海棠:沒有固定cutoff。結果導向的,嫌結果太多就設高一點
LGM問:海棠哥好,請教一下篩選出來的特征要組合成預后signature,是還需要進一步使用多因素COX回歸來求變量的系數嗎?
大魚海棠:嗯我會建議這樣做,但是多因素這部不進行變量篩選了。
Allittis問:海棠老師的意思是直接多因素全部納入算一個系數即可,是不?
LGM問:不進行逐步回歸?
大魚海棠:對的,因為你已經認為RF得出來的是你感興趣的變量了。當然你非要再逐步回歸,從操作性上來講沒有問題。
零度反應問:如果這個得到的基因太多呢,可不可以再用逐步回歸?
大魚海棠:可以
零度反應:因為之前用過這個,也用過你寫的lasso回歸的方法,但最后得到的signature基因相對多一點,然后有時auc優勢也并不明顯
大魚海棠:survival的auc一般都不會那么高。。因為不僅僅是二分類問題,考慮了time-to-event
零度反應:所以又進行了多因素,最起碼基因會少一些,感覺上好那么一丟丟。
LGM問:關于組合成預后signature還想再請教一下
一篇文章使用COX回歸得到了感興趣的基因,但是risk score 的計算居然是表達量跟HR相乘。有這樣的處理方式嗎?
Allittis:HR的置信區間好大
唐淵:估計是數據沒有做歸一化處理導致HR 值這么大。
LZQ:scale一下一般會小一些
大魚海棠:多個數據集驗證的話,都會建議每個數據集都要scale,尤其是針對不同平臺。
CSJ問:請問R中可以獲取基因的coefficients值么,我看原文中提到這個值是由random forest algorithm得到的,但是我在結果中沒有找到這個值~
LZQ:這個應該是單因素cox的coef,決策樹是無參ML。HR=e^coef
對應的HR值轉化一下就得到了。
大魚海棠:我覺得也是,coef,HR以及對應的95%CI應該是后算的,單因素cox直接summary一下都有。
DMY問:我在分析數據的時候發現如果用TCGA做訓練集,而用GEO做驗證集,結果發現訓練集中獲得的關鍵基因在GEO數據集中不存在,那我應該反過來用GEO做訓練集呢?還是先取 TCGA和GEO的交集后再分析?謝謝啦!
砍柴人:先基因取交集啊
DMY:那用隨機森林和支持向量機這兩種方法篩選關鍵基因,那個更好呢?還是用組合的方式來篩選@大魚海棠
大魚海棠:組合的方式只是為了。。虛假的工作量吧,多寫幾段method。我不太認可這種做法,尤其是需要其中的指標時。比如LASSO和SVM一起用,那LASSO里的系數怎么辦?
DMY:那有沒有一個更好的組合呢?比如先差異篩選,再單COX,再隨機森林,最后多COX?
大魚海棠:這些方法最后都是結果導向型,沒有什么最好的組合。。
DMY:AUC值通常多少比較合適呢?必須0.7以上么?
大魚海棠:訓練集我會建議0.8以上吧。
砍柴人:訓練集0.8以上,那測試集可以得到多少?
大魚海棠:看運氣
DMY:嗯,有時候經常是在TCGA訓練集很高,到了GEO驗證的時候就很低了,不懂是不是數據需要歸一化處理。
大魚海棠:要歸一化處理
DMY:難怪呢,我平時都沒做歸一化,結果差別很大。有沒有同時對所有訓練集和驗證集進行歸一化處理的方法呢?謝謝啦!
大魚海棠:z-score最方便。個人覺得0-1區間變換最嚴謹,但是沒必要。
DMY:先取基因交集,然后合并所有數據集,再用Z-score歸一化,再拆分數據進行分析,是這個邏輯么?謝謝啦
大魚海棠:分別zscore,不會合并zscore。tcga數據要先log,用TPM。
DMY:謝謝啦,受益匪淺!
CGD:所以請問是先將tcga的tpm數據zscore后再建模,然后在geo的zscore后的數據中驗證模型是嗎?是這樣的順序嗎,感謝!
DMY:前面大魚海棠 有說,先在TCGA中對tpm進行log2后再zscore
LGM問:能不能再眾籌個不同平臺數據的標準化?
DMY:感覺可行,數據清理確實很重要。確實跨平臺驗證會面臨很多問題,同一平臺也會有批次效應,所以我在處理多GEO數據集的時候都先去除批次效應并合并后,再進行下面分析。
大魚海棠:你們可以了解一下gene pair,完美回避批次。是一個比較熱的,回避標準化的,跨平臺數據處理理念,但是數據的量級會比較大。
The one:gene pair[強][強][強],知道這個東西,沒嘗試過,晚上回去試下!
DMY:我前面看一些教程里面寫隨機森林對二分類變量預測效果最佳,比如生死,患病與否,但是病人的生存數據里還有生存時間,應該用二分類變量作為結局變量么?如生死,還是以連續性變量生存時間作為結局變量比較好,謝謝啦。
大魚海棠:有研究不關心時間,只關心生死的,看個人目的吧。隨機森林對二分類最佳也沒有這種說法,看觀測和變量的比例。邏輯回歸這種就很robust,而且可以寫出關系式,推薦的還是邏輯回歸。
DMY:那研究是否復發,或者轉移,也是不錯的選擇哈!
大魚海棠:是的。
Paul:老師您好,我想請一下xgboost會不會比隨機森林樹更好一些?
大魚海棠:沒有方法有絕對的優勢。。不然老方法就完全淘汰了不是嗎?分類算法、聚類算法都是result-oriented。我相信。。你們也會試不同的方法得到自己expected的結果吧!
DMY:感覺都是先用各種方法先分析,那個結果好就用那個,均衡來選擇,結果導向,今天又做到一個新知識,謝謝大神!
DMY:請問內部驗證應該分配多少樣品比例比較好呢?有些文章按照每組50%來分配,有些按照80%訓練和20%來分,那個更好呢?
Paul:7:3,1:1的都有用,結果導向。
大魚海棠:對,結果導向。五折多一些,只要不太離譜。
贊美太陽:請教個問題,為什么不用rfsrc這個函數篩選變量?
大魚海棠:沒有用新的函數包
贊美太陽:那么rfs之后可以自行再來一發var.select嗎?
大魚海棠:感覺沒必要
贊美太陽:嗯,我覺得只要能說通就可以了。
總結
以上是生活随笔為你收集整理的随机森林需要分训练集测试集吗_讨论记录用随机森林对生存数据降维,筛选signature...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将数据、代码、栈放入不同的段
- 下一篇: 实验五 编写、调试具有多个段的程序