我寫了一個自定義的em算法函數。我有三個參數需要估計。這三個參數都在0和1之間,加起來就是1.所以我認爲我只需要在函數中放入兩個參數alpha和beta,第三個參數就是1-alpha-beta。我的問題是如何讓函數知道這兩個輸入只能取0到1之間的值?如何在R中限制自定義函數中的輸入值?
0
A
回答
1
我不太清楚有問題的功能是否依賴於這些值(α,β)或返回他們...
難道是這麼簡單:
fun1 <- function(a,b){
if(a<=0 | b<=0) warning("value of a or b <=0")
if(a>=1 | b>=1) warning("value of a or b >=1")
### function does something
a1 <- a
b1 <- b
return(c(a1,b1,(1-a1-b1)))
}
在這裏,你在運行函數之前檢查輸入。
該功能仍會運行,但會警告用戶,例如
> fun1(0.25,0.5)
[1] 0.25 0.50 0.25
但
> fun1(1.25,-0.5)
[1] 1.25 -0.50 0.25
Warning messages:
1: In fun1(1.25, -0.5) : value of a or b <=0
2: In fun1(1.25, -0.5) : value of a or b >=1
見?stop
如果你想停止執行,由於輸入值,並返回一個錯誤。
0
如果你不使用R封裝之一,像mixtools
,實現EM(期望最大化)算法,你的問題其實不是R.
你必須要對如何限制的算法決定您的參數值,alpha
和beta
。您可能正在尋找所謂的約束優化,因爲建議使用Paul Hiemstra。這個決定將取決於你試圖解決的問題的統計(或數學或物理等)含義。
如果您處於初學者級別,我建議從最簡單和嚴格的方法開始:在迭代過程中,如果參數超出允許的時間間隔,請將其值設置爲相應的限制。類似這樣的:
alpha = min(1, max(0, alpha))
相關問題
- 1. 如何限制Angular自定義輸入控件中的輸入屬性值?
- 2. 如何將參數輸入傳遞給R中的自定義函數?
- 3. 在R中選擇用戶自定義函數中的輸出
- 4. 如何將多個data.frames作爲R中的輸入應用自定義函數?
- 5. 用戶定義的函數如式輸入中的R
- 6. 如何定義TextBox輸入限制?
- 7. R中自定義函數的圖例
- 8. 如何在R中編寫自定義S3類的c()函數
- 9. 在R中的用戶定義函數中,我如何檢查輸入在R中的格式是否正確?
- 10. R中有2個輸出的自定義函數的優化
- 11. 如何在R中輸入xgb.train函數中的數據?
- 12. 如何在不限制輸入值的情況下限制輸入計算值?
- 13. 如何在聚合中應用自定義函數R
- 14. 如何在R中使用geom_bar()來定義條的限制?
- 15. 自定義函數(R)
- 16. 如何限制函數的長度R
- 17. coq中的遞歸函數定義,限制可能的輸入集合
- 18. 如何在jtextfield中嚴格限制輸入值爲double值?
- 19. 如何在VBA中定義的自定義函數中使用excel函數?
- 20. java中的自定義繪製函數
- 21. 如何在用戶自定義函數中重複輸出
- 22. 如何在R中的qt函數中正確定義變量
- 23. 如何限制float輸入中給定的數字量? (Python)
- 24. HTML輸入類型數,如何在自定義值
- 25. 如何在while循環中包含輸入值的限制?
- 26. 在r中改變參考值限制三次樣條函數
- 27. 如何爲SequenceFileInputFormat定義映射函數的鍵和值輸入?
- 28. 繪製R函數限制函數
- 29. 如何在xcode中創建自定義數據輸入視圖?
- 30. 在python中定義自定義函數
你想在函數的一個參數超出該範圍的情況下做什麼? – joran
或者你想要一些約束優化嗎? –