0

我正在尝试优化一个功能。但是这个函数需要一个 pandas 数据框作为参数。所以当我运行代码时,我得到了这个错误:

TypeError: 'DataFrame' 对象是可变的,因此它们不能被散列

我的评价函数:

def calc_sr(prices, allocs):
    cum_ret_prices = prices / prices.iloc[0]
    all_adj_prices = allocs * cum_ret_prices 
    daily_value = all_adj_prices.sum(1)
    sr = daily_value.mean()/daily_value.std()
    return(sr)

def eval_fn(allocs, prices):
    return 1/calc_sr(prices,allocs)
allocs = optimize.minimize(eval_fn,allocs,args={prices},method = 'Nelder-Mead', options={'maxiter':10000})

价格是一个熊猫数据框。

我该如何优化呢?还有一个问题是我的优化函数也需要传入初始猜测数组。那么当我设置 args 参数时,我该如何解释呢?

4

0 回答 0