【发布时间】:2019-09-28 09:39:04
【问题描述】:
如果需要,我有 Theta 的起始值,函数可以从该值开始搜索 (0.01604 = Theta2, 1.143 = Theta1, 1.537 = Theta0)
我实现了Huber功能
def Huber(l,delta):
if m.fabs(l)<=delta:
return 1/2*(l)**2
else:
return delta*m.fabs(l)-1/2*delta**2
那我试试
def my_function(start, X, y):
Theta0, Theta1, Theta2 = start
u = Huber((y - (Theta0 + Theta1*X+Theta2*X*X)),7)
return u
optimized = minimize(my_function(start, X, y), start)
还有
TypeError: cannot convert the series to <class 'float'>
如何做到正确?
【问题讨论】:
-
你能贴出你的代码吗?
-
你确定你把方块放在了正确的地方吗?这个函数没有最小值。
-
“凝视点”是什么意思? θ是常数吗?或者您是否试图找到最小化箭头左侧函数值的θ?从这个符号看不清楚。
-
@rusu_ro1 我没有尝试过,因为我不明白如何将 scipy.minimize 用于具有一些变量(超过 1)的函数
-
那么@amitavory 是对的。您可以先添加 $Y_i$、$X_i$ 和 ${X_i}^2$(将总和扩展为 4 个总和)。因此,除非正方形在第一个或第二个括号之外,否则它将变为 A-theata0-theta1*B-theta2*C。没有最低限度。