首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python将对象作为arg传递到minimize()中

Python将对象作为arg传递到minimize()中
EN

Stack Overflow用户
提问于 2014-05-27 08:01:55
回答 1查看 1K关注 0票数 0

我试图将对象作为额外的参数传递给scipy.optimize.minimize(),但它说不能传递对象

代码语言:javascript
复制
  def myfun(C,gamma,deg,mysvc):
    from sklearn import cross_validation
    if(mysvc.kernel=="linear"):
       mysvc.C=C
    elif(mysvc.kernel=="rbf" or mysvc.kernel=="sigmoid"):
       mysvc.C=C
       myscv.gamma=gamma
    else: 
       mysvc.deg=deg
    scores = cross_validation.cross_val_score(mysvc,cross[:,:95], cross[:,96], cv=5)
    return mean(scores) 


  from scipy import optimize  
  for mysvc in [gsn,ply,sig,lin]:
    C,gamma,deg=sp.optimize.minimize(fun=myfun,x0=asarray([1,.5,3]),args=(mysvc))
    print [C,gamma,deg]

管子不灵活吗??mysvc是SVC类的对象,来自sklearn,我得到以下错误

代码语言:javascript
复制
  Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "e:\Anaconda\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py",  line 540, in runfile
 execfile(filename, namespace)
 File "C:/Users/sriramana/svm.py", line 43, in <module>
 C,gamma,deg=sp.optimize.minimize(fun=myfun,x0=asarray([1,.5,3]),args=(mysvc))
 File "e:\Anaconda\lib\site-packages\scipy\optimize\_minimize.py", line 372, in minimize
 return _minimize_bfgs(fun, x0, args, jac, callback, **options)
 File "e:\Anaconda\lib\site-packages\scipy\optimize\optimize.py", line 832, in  _minimize_bfgs
 gfk = myfprime(x0)
 File "e:\Anaconda\lib\site-packages\scipy\optimize\optimize.py", line 281, in  function_wrapper
 return function(*(wrapper_args + args))
 File "e:\Anaconda\lib\site-packages\scipy\optimize\optimize.py", line 604, in approx_fprime
 f0 = f(*((xk,) + args))
 File "e:\Anaconda\lib\site-packages\scipy\optimize\optimize.py", line 281, in function_wrapper
 return function(*(wrapper_args + args))
 TypeError: can only concatenate tuple (not "SVC") to tuple  
EN

回答 1

Stack Overflow用户

发布于 2014-05-27 08:14:34

args=(mysvc)需要一个逗号来生成一个元组:args=(mysvc,)

教程5.3.元组与序列

带有一个项的元组是通过在带有逗号的值后面构造的(在圆括号中包含一个值是不够的)。丑陋但有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23884041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档