概念:
回归分析(regression analysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。
数据
Windsor房价数据集,其中包含有关安大略省温莎市区房屋销售的信息。
分析过程
读取数据,将数据区分为自变量与结果变量
def readData():
X = []
y = []
with open('Housing.csv') as f:
rdr = csv.reader(f)
# Skip the header row
next(rdr)
# Read X and y
for line in rdr:
xline = [1.0]
for s in line[:-1]:
xline.append(float(s))
X.append(xline)
y.append(float(line[-1]))
return (X,y)
将数据再细分为训练数据与测试数据
测试数据是必需的,它用来衡量模型的准确程度
X=np.array(X0[:-10])
y=np.array(y0[:-10])
计算回归系数
采用公式 β = (XT X)-1 XT y
Xtx=np.dot(X.T,X)
Xty=np.dot(X.T,y)
beta=np.linalg.solve(Xtx,Xty)
计算预测数据并于真实数据比较,评价预测精度
for data,actual in zip(X0[-10:],y0[-10:]): #打个包,一起来遍历
x=np.array(data)
prediction=np.dot(x,beta)
print(prediction)
pre.append(prediction)
act.append(actual)
rang=np.arange(0,10)
plt.plot(rang,pre,label='pre')
plt.plot(rang,act,label='act')
plt.legend()
plt.show()
预测结果(pre)与真实结果 (act)比较:
由图像可见,预测精确度有待提高。