失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 机器学习:numpy版本线性回归预测波士顿房价

机器学习:numpy版本线性回归预测波士顿房价

时间:2021-10-02 13:14:40

相关推荐

机器学习:numpy版本线性回归预测波士顿房价

机器学习:numpy版本线性回归预测波士顿房价

导入数据划分数据模型

数据链接

链接: /s/1uDG_2IZVZCn9kndZ_ZIGaA?pwd=nec2 提取码: nec2

导入数据

import numpy as nppath = 'Desktop/波士顿房价/trian.csv'data = np.loadtxt(path, delimiter = ",", skiprows=1)data.shape

划分数据

train = data[:int(data.shape[0]*0.8)]test = data[int(data.shape[0]*0.8):]print(train.shape, test.shape)train_x = train[:,:-1]train_y = train[:,13:]test_x = test[:,:-1]test_y = test[:,13:]print(train_x.shape, train_y.shape)

模型

class Network:def __init__(self, num_weights):self.num_weights = num_weightsself.w = np.random.rand(num_weights, 1)self.b = 0#前向计算def forward(self, x):z = np.dot(x, self.w) + self.b return z#计算lossdef loss(self, z, y):cost = (z-y)*(z-y)cost = np.mean(cost)return cost#计算梯度def gradient(self, z, y):w = (z-y)*train_xw = np.mean(w, axis = 0)w = np.array(w).reshape([13,1])b = z-yb = np.mean(b)return w, b#更新参数def update(self, gradient_w, gradient_b, eta):self.w = self.w - eta*gradient_wself.b = self.b - eta*gradient_b#训练def train(self, items, eta):for i in range(items):z = self.forward(train_x)loss = self.loss(z, train_y)gradient_w, gradient_b = self.gradient(z, train_y)self.update(gradient_w, gradient_b, eta)if i%100 ==0:test_loss = self.test()print('item:',i,'loss:', loss, 'test_loss:', test_loss)#测试def test(self):z = self.forward(test_x)loss = self.loss(z,test_y)return lossnet = Network(13)net.train(1000000, eta= 6e-6)

如果觉得《机器学习:numpy版本线性回归预测波士顿房价》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。