Numpy处理多元线性回归

概念:

回归分析(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)比较: 

由图像可见,预测精确度有待提高。 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值