[問題] R的規劃求解 optim()、constrOptim()

看板R_Language作者 (MrSomebody)時間7年前 (2016/06/29 21:02), 編輯推噓2(204)
留言6則, 2人參與, 最新討論串1/1
[問題類型]: 程式諮詢 [軟體熟悉度]: 入門 [問題敘述]: 最近在研究SVM,但同樣資料用R和matlab跑出來結果不一樣,所以想嘗試寫演算法, 在過程中有地方卡住,故上PTT求助各位大大。 http://imgur.com/5c2wQue
解線性kernal的SVM演算法,即解出函數max{L_D function}(如圖中紅框), x_i為解釋變數(已知)、y_i為反應變數(已知), 要求alpha_i帶入甚麼值時使L_D function最大。 可利用optim() 函數求主要L_D最大值,但無法加入條件式(圖中藍框兩條件式); constrOptim() 函數可以加不等式條件,但只限定alpha_i線性組合之不等式,無法設 sum(alpha_i&y_i)=0條件式。 不知R是否有其他函數可以求類似的問題? 謝謝大家耐心看完。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.165.34.184 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1467205354.A.397.html

06/30 00:05, , 1F
sum(\alpha_i*y_i)=0是線性的,可以寫成矩陣式
06/30 00:05, 1F

06/30 07:11, , 2F
謝謝Q大回應,但constrOptim函數已設定不等式為大於
06/30 07:11, 2F

06/30 07:11, , 3F
等於,但sum條件為等於,解出來得alpha無法滿足,悲劇
06/30 07:11, 3F

06/30 07:11, , 4F
...
06/30 07:11, 4F

06/30 12:19, , 5F
你的問題用kernlab套件的ipop或quadprog套件應該比較合適
06/30 12:19, 5F

06/30 19:25, , 6F
謝謝Q大! 我用ipop可以解這個問題!
06/30 19:25, 6F
文章代碼(AID): #1NSyRgEN (R_Language)