【发布时间】:2016-10-12 13:54:39
【问题描述】:
我正在尝试学习机器学习的正规方程,但我不确定这个结果是否正确。参数太高了,我找不到这个参数的假设,这就是我的意思:
数据集:
2104,5,1,45,460
1416,3,2,40,232
1534,3,2,30,315
852,2,1,36,178
当我运行代码时,我正在获取参数 (theta)
[4.74289062e+02 1.65405273e-01 -4.68750000e+00 -1.16445312e+02
-2.13281250e+00]
但是这些数字太高了。这是正常的吗?此外,在我的代码的最后一行,我尝试仅为我的第一个数据集元素 (2104,5,1,45,460) 打印假设,但它给了我这样的错误:
print (q[0]*x[0][0])+(q[1]*x[0][1])+(q[2]*x[0][2])+(q[3]*x[0][3])+(q[4]*x[0][4])
IndexError: index out of bounds
我的代码:
data = np.loadtxt('bib', delimiter=',');
x=data[:,0:4];
y=data[:,4];
a=np.ones(shape=(y.size,x[0].size+1));
a[:,1:5]=x;
A=np.linalg.inv(a.transpose().dot(a));
B=np.dot(a.transpose(),y);
q=A.dot(a.transpose()).dot(y);
##print (q[0]*x[0][0])+(q[1]*x[0][1])+(q[2]*x[0][2])+(q[3]*x[0][3])+(q[4]*x[0][4])
我对这些结果并不满意。我怎样才能确保这些结果是真实的,我应该如何用这些参数找到我的假设?
【问题讨论】:
标签: python machine-learning normalization linear-regression