机器学习:纯代码版本的线性回归

简介: 机器学习:纯代码版本的线性回归

机器学习:纯代码版本的线性回归

数据链接

链接: https://pan.baidu.com/s/1uDG_2IZVZCn9kndZ_ZIGaA?pwd=nec2 提取码: nec2

导入数据

import numpy as np

path = '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_weights
        self.w = np.random.rand(num_weights, 1)
       
        self.b = 0
        #前向计算
    def forward(self, x):
        z = np.dot(x, self.w) + self.b 
        return z
        #计算loss
    def loss(self, z, y):
        cost = (z-y)*(z-y)
        cost = np.mean(cost)
        return cost
        #计算梯度
    def gradient(self, z, y):
        w = (z-y)*train_x
        w = np.mean(w, axis = 0)
        w = np.array(w).reshape([13,1])
        b = z-y
        b = np.mean(b)
        return w, b
        #更新参数
    def update(self, gradient_w, gradient_b, eta):
        self.w = self.w - eta*gradient_w
        
        self.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 loss

    

训练

net = Network(13)
net.train(1000000, eta= 6e-6)

目录
相关文章
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
|
2天前
|
机器学习/深度学习 传感器 算法
【机器学习】多元线性回归基本概念
【1月更文挑战第23天】【机器学习】多元线性回归基本概念
|
2天前
|
机器学习/深度学习 测试技术
机器学习第6天:线性回归模型正则化
机器学习第6天:线性回归模型正则化
37 0
|
2天前
|
机器学习/深度学习 分布式计算 算法
机器学习PAI常见问题之下载了很多版本依赖包导致超时如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。
|
20小时前
|
机器学习/深度学习 数据采集 人工智能
【机器学习】解释什么是线性回归?
【5月更文挑战第15天】【机器学习】解释什么是线性回归?
|
2天前
|
机器学习/深度学习
机器学习基础入门(二)(线性回归与成本函数)
已知一系列房子的大小以及其对应的价格的数据,要求是已知房子大小预测其房子的价格
|
2天前
|
机器学习/深度学习 算法 数据挖掘
【Python 机器学习专栏】Python 中的线性回归模型详解
【4月更文挑战第30天】本文介绍了Python中的线性回归模型,包括基本原理、实现步骤和应用。线性回归假设因变量与自变量间存在线性关系,通过建立数学模型进行预测。实现过程涉及数据准备、模型构建、参数估计、评估和预测。常用的Python库有Scikit-learn和Statsmodels。线性回归简单易懂,广泛应用,但对异常值敏感且假设线性关系。其扩展形式如多元线性、多项式回归和正则化方法能适应不同场景。理解并运用线性回归有助于数据分析和预测。
|
2天前
|
机器学习/深度学习 人工智能 分布式计算
人工智能平台PAI产品使用合集之负采样版本DSSM双塔模型训练好之后,怎么分别获取user tower的embedding和item tower的embedding
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
2天前
|
机器学习/深度学习 人工智能 分布式计算
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理

热门文章

最新文章