楼主: h791693840
2542 5

[问答] R 语言 optim问题 [推广有奖]

  • 0关注
  • 0粉丝

初中生

9%

还不是VIP/贵宾

-

威望
0
论坛币
7 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
69 点
帖子
7
精华
0
在线时间
7 小时
注册时间
2014-12-11
最后登录
2015-3-12

楼主
h791693840 发表于 2014-12-14 17:07:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在使用optim求极值的时候,如果规定要估计的参数必须是大于0 小于1 并且参数相加等于1  这个控制条件该写在哪个地方?以下是我写的代码,希望知道的给改正一下。 (红颜色的地方是我的困惑所在)

library(stats)     
mydata<-read.table("D:\\研究 论文\\R\\逻辑回归\\allFeaturesandType.txt",header=T,sep="\t")  #读:属性加类型的文件
fn<-function(v){                 #定义一个函数
sum<-0
t1<-v[1];
t2<-v[2];t3<-v[3];
diff<-v[4];var<-v[5];fake<-v[6]
repeatRatio<-v[7];
fgsize<-v[8];                    #参数v是一个向量,里面存放8个未知的参数
features<-t1+t2+t3+diff+var+fake+repeatRatio+fgsize;      #参数之和 规定要等于1
if(t1>0&t1<1&t2>0&t2<1&t3>0&t3<1&diff>0&diff<1&var>0&var<1&fake>0&fake<1&repeatRatio>0&repeatRatio<1&fgsize>0&fgsize<1&features==1){ #确保每个参数都是(0,1)范围内,并且总和等于1
sum(abs(t1*mydata$tightness1+t2*mydata$tightness2+t3*mydata$tightness3+diff*mydata$diffTime+var*mydata$var+fake*mydata$fakePRatio+repeatRatio*mydata$repeatRRatio+fgsize*mydata$fgsize-mydata$type));   #参数*每组属性值—此小组类型
}
return(sum);                    #当这个值最小的时候,迭代结束,得到最优参数向量
}
optim(c(1/8,1/8,1/8,1/8,1/8,1/8,1/8,1/8),fn)       #调用函数 optim 进行非线性优化



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Optim OPT Tim Library BRARY library

沙发
qoiqpwqr 发表于 2014-12-14 20:53:50
粘贴代码请用代码选项

藤椅
qoiqpwqr 发表于 2014-12-14 20:56:05
用constrOptim

板凳
h791693840 发表于 2014-12-15 08:45:09
qoiqpwqr 发表于 2014-12-14 20:56
用constrOptim
constrOptim支持数据框吗?我的数据集比较大。谢谢!

报纸
h791693840 发表于 2014-12-15 08:56:32
qoiqpwqr 发表于 2014-12-14 20:56
用constrOptim
我的问题是一个非线性的,constrOptim是线性的啊,我的上面的控制条件可以在自定义函数里面写吗?还有OPtim支持数据框吗?

地板
qoiqpwqr 发表于 2014-12-15 22:14:13
h791693840 发表于 2014-12-15 08:56
我的问题是一个非线性的,constrOptim是线性的啊,我的上面的控制条件可以在自定义函数里面写吗?还有OPt ...
constrOptim就是optim加上一些线性的约束条件

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-5 18:46