我有一个形式的等式:
z = a x + b y + c
其中x,y,z是变量,a,b,c是常数。
我想找到a,b和c的最佳值。在python中执行此操作的最佳方法是什么? WITH "id" as pointToDelete
MATCH (P:Point {id: pointToDelete})
OPTIONAL MATCH (Prev:Point)-[:NEXT]->(P)
OPTIONAL MATCH (P)-[:NEXT]->(Next:Point)
FOREACH (x in CASE WHEN Prev IS NOT NULL THEN [1] ELSE [] END |
MERGE (Prev)-[:NEXT]->(Next)
)
DETACH DELETE P
仅适用于两个变量,而不是三个。
答案 0 :(得分:2)
你在做回归吗?如果是这样,optimize.curve_fit
适用于两个以上的变量,您只需要将变量作为列表传递:
def line(x, a, b, c):
return a * x[0] + b * x[1] + c
from scipy.optimize import curve_fit
import numpy as np
x = np.random.uniform(0., 100., 100)
y = np.random.uniform(0., 200., 100)
z = 3. * x + 2. * y + np.random.normal(0., 10., 100)
popt, pcov = curve_fit(line, [x, y], z)
print(popt)
结果:
array([ 2.99156418, 2.00992449, -0.2434515 ])