所以,我有一组数据点要做线性回归,大部分大型计算都很顺利
from __future__ import division
data = [[0.0,0.0], [1.0,2.0], [2.0,4.0]]
#regression model
n = float(len(data))
sumx = 0.0
sumy = 0.0
sumxsquared = 0.0
sumxy = 0.0
rcoeff = 0.0
m = 0.0
print (n)
i=0
while (i < n):
sumx += data[i][0]
sumxsquared += (data[i][0])**2.0
sumxy += data[i][0]*data[i][1]
sumy += data[i][1]
i += 1
print ("total x: " + str(sumx))
print ("total y: " + str(sumy))
print ("total xy: " + str(sumxy))
print ("total x squared: " + str(sumxsquared))
但是,在我添加以下代码之后,我的'm'读取为零
m = ((sumy*sumxsquared-sumx*sumxy)/((n*sumxsquared)-sumx**2.0))
print ("m:" + str(m))
我正在努力寻找原因,能帮我点忙吗
将0除以6,即0:
输出:
你表达式的分子
是
6*5 - 3*10
,也就是30 - 30
或零,所以整个分数的计算结果当然是零请注意,您的数据是由三个点组成的,它们是一条直线(
(0,0)
、(1,2)
和(2,4)
),此外,这条直线穿过原点,因此基于这些点的许多统计数据都将为零相关问题 更多 >
编程相关推荐