伯努利響應的貝葉斯機器學習方法我有一個數據集,我有大約2000個觀察大約150個特徵或協變量。 我試圖預測0/1的結果。 結果是疾病風險評分R1。 該測定產生數據庫中的所有特徵值(F1,...,F150),以及相關疾病(R0)的風險值。 我們的想法是R0對R1具有高度預測性,如果我們使用F1,...,F150這些功能,我們可能會有一些更新規則,我們可以應用於R0。 換句話說,我正在考慮使用R0作為先前分佈R1的Bernoulli參數,並以某種方式訓練更新公式以基於F1,...,F150的值在R0上使用。
訓練算法必須允許建立0/1概率分數模型,其允許我們指定分數的先前值。 這聽起來像是一個相當棘手的貝葉斯問題。 但我之前沒有這樣做,我不確定如何將特徵信息合併到參數更新表達式中。
我們會產生第二個概率分數嗎?
我們會在進入logit變換之前使用線性預測器嗎?
我們會以某種加法方式修改R0,還是通過一些乘法因子來修改R0?
顯然,我有更多的問題而不是答案。 如果有人能指出我正確的方向,那將是偉大的。 如果JMP允許這種事情,我很樂意聽到它。
回复:伯努利響應機器學習的貝葉斯方法是的,100%的功能用於計算p0。 該系統實際上生成了數千個功能,但我們需要能夠驗證離線計算p0的算法。 所以我們發現(通過閱讀代碼)用於計算p0並保存它們的每個特徵。 請注意,作為功能函數的p0的“計算”過於復雜和隱含,以至於無法將其寫下來(並行和串行配置中的數百個二進制分類器,我沒有構建系統)。 但我們知道我們已經捕獲了所有必要和充分的功能來進行離線模擬並驗證p0的計算。
我的目標不是修改有關計算p0的模型的任何內容。 它是否偶然地看到,相同的特徵可能包含一些“魔法”信息,這些信息可以讓我們預測其他一些疾病。 我的想法是不太可能的,特別是因為特徵是以某種最佳和最小的方式專門生成,預測D0。 可能有一些信息理論方法來測試這種假設。
再一次,我需要提出一個公平的,有原則的觀察,要么表明這個概念不會起作用,要么就會發生。 很容易產生大量的紅旗(協變量漂移作為例子)。 我試圖使用某種修改過的“貝葉斯”方法是我使用設計生成的最佳統計數據的方式,然後查看是否存在某些獨立的,殘留的信息救命預測D1。 我是一個懷疑論者,但我是一個群體,其他人(管理層)有一種教條主義的觀點,機器學習可以神奇地解決任何可以想像的問題。 他們並不認為大多數這些模型(LASSO,ridge,PLS)在一天結束時只是簡單的主效應(廣義)線性模型。
再一次,我感謝您的參與。 這非常有幫助。
回复:伯努利響應機器學習的貝葉斯方法我有點困惑 - 你說你的模型使用了100%的功能(其中150個!)。實際上我運行的所有機器學習模型都沒有使用所有功能。您可以盡可能地輸入它們,但很少(從不)它們都被使用。 在任何情況下,如果您認為您的模型過於復雜,您可以單獨刪除每個功能(繁瑣,但有人可能會幫助編寫腳本)以查看性能下降的程度。另一個版本 - 我在其他軟件中看到但尚未在JMP中看到 - 是用隨機數據替換每個特徵(一次一個)並比較性能。
您似乎也希望通過向已有的模型添加內容來確定是否可以獲得更好的預測(如果所有功能都在其中,還有什麼可以添加?)。 我認為有很多方法可以做到這一點 - 但我更多地考慮嘗試不同的模型,並使用某種集成方法來組合它們,而不是使用其他功能。貝葉斯模型平均是實現此目的的一種方法。但是你最初使用你的第一個模型作為先驗然後添加功能來產生“貝葉斯更新”的想法對我來說仍然沒有意義。
回复:伯努利響應機器學習的貝葉斯方法謝謝戴爾,
我可能非常同意你的意見。 該項目的整個目的是查看已經用於在D0上訓練的特徵是否可能具有一些可用於預測D1的“正交”信息。 重申一下,p0的原始模型中的噪聲是否是100%基於特徵的極其複雜的模型,包含可用於訓練p1的任何信息。 我想保持p0作為初始估計值,因為它已被證明對D0非常有用。
如果我繼續前進並且非常地使用像LASSO(或脊或PLS或......)這樣的東西來根據特徵訓練p1的模型,我會比僅使用p0預測D1獲得更好的性能。 但我懷疑我可能會在不知不覺中接受所有簡歷的噪音培訓。 此外,我從獨立實驗中得到的證據表明,p1的模型存在協變量偏移,而p0對不同的數據集具有很強的彈性。
當然,歸結為我要對你的概念給出一個大拇指向上或向下,所以我想同時挑戰cocept並給它最好的機會。 這就是為什麼我傾向於這種“貝葉斯”方法。 我同意,將它稱為貝葉斯是一種拉伸,因為我們沒有觀察到伯努利事件,我們只能在模型中查看先前參數的謂詞。
我很感激你的想法。
回复:伯努利響應機器學習的貝葉斯方法我絕不是貝葉斯專家,但在我看來,你想做的事情是不正確的。貝葉斯更新通常是指合併新信息 - 例如附加數據點。為何添加其他功能?只需將它們放入原始模型中即可。或者,如果使用類似提升樹的東西,該算法已經將使用這些功能根據其進行錯誤分類的程度來“更新”其預測。換句話說,我認為你建議一種看似“貝葉斯”的裝置,但實際上只是考慮模型中的其他特徵,檢查每個特徵對模型的貢獻程度。這基本上就是所有預測模型所做的事情 - 手動保留一些功能,然後添加它們以查看預測變化的方式,就像手動執行預測模型自動執行的操作一樣。
如果我對此錯了,請有人理順我。