函数能否在python中返回numpy参数?
作为ML uni课程的一部分,我正在学习线性回归。奇怪的是,我遇到了以下问题,我不知道该怎么办 给定两个向量x和y:函数能否在python中返回numpy参数?,python,function,numpy,linear-regression,data-science,Python,Function,Numpy,Linear Regression,Data Science,作为ML uni课程的一部分,我正在学习线性回归。奇怪的是,我遇到了以下问题,我不知道该怎么办 给定两个向量x和y: x = np.linspace(x_min, x_max,50) y = np.random.randint(-5/2,5/2, size=50) y = y + 3 + 2*x 我需要用这两种方法填写代码: def linear_hypothesis(theta_0, theta_1): ''' Combines given arguments in a linea
x = np.linspace(x_min, x_max,50)
y = np.random.randint(-5/2,5/2, size=50)
y = y + 3 + 2*x
我需要用这两种方法填写代码:
def linear_hypothesis(theta_0, theta_1):
''' Combines given arguments in a linear equation and returns it as a function
Args:
theta_0: first coefficient
theta_1: second coefficient
Returns:
lambda that models a linear function based on theta_0, theta_1 and x
'''
def mse_cost_function(x, y):
''' Implements MSE cost function as a function J(theta_0, theta_1) on given tranings data
Args:
x: vector of x values
y: vector of ground truth values y
Returns:
lambda J(theta_0, theta_1) that models the cost function
'''
然后应通过以下代码调用上述函数:
j = mse_cost_function(x, y)
print(j(2.1, 2.9))
这就是让我困惑的地方。我不确定每个函数的返回类型应该是什么,我不明白这一行
j(2.1,2.9)
应该做什么,因为j是这个方法的返回值。有人能启发我吗?谢谢你的帮助 mse\u cost\u函数是一个返回函数的函数
lambda J(θ0,θ1)对成本函数进行建模
因此j是一个函数。
与任何函数(或更一般的可调用函数)一样,它可以获得输入(本例中为两个)
为了更简单的解释,这里有一个函数add_x
,它取x并返回一个新函数,该函数取z并计算z+x
def add_x(x):
return lambda z: z+x
g = add_x(3)
print(type(g)) # -> <class 'function'>
print(g(2)) # 5
def add_x(x):
返回λz:z+x
g=加上x(3)
打印(键入(g))#->
印刷品(g(2))#5
写得非常清楚-mse\u cost\u函数
应该返回一个函数(lambda),这就是为什么在Python函数中执行j(2.1,2.9)
是完全合理的,就像几乎所有其他函数一样,这意味着可以将它们存储在变量中,并将它们作为参数或其他函数的返回值传递。