LinearRegression简单实现

线性回归LinearRegression的Numpy实现 线性回归LinearRegression的Numpy实现 Basic 本文是对Andrew Ng的Machine Learning课程里编程作业的一个numpy实现。 Hypothesis 定义为hθ(X)=Xθh_\theta (X) = X\thetahθ​(X)=Xθ 一元线性回归的例子:hθ(X)=Xθ=θ0+θ1x1h_\theta (X) = X\theta = \theta_0 + ... 阅读详情

目录

一、理论 

二、代码


一、理论 

 

 

二、代码

Y_pred = b0 + b1*X

import numpy as np
import matplotlib.pyplot as plt

class LinearRegression:
    def __init__(self, X, Y):
        self.X = X
        self.Y = Y
        self.b = [0, 0]

    # 更新参数
    def update_coeffs(self, learing_rate):
        Y_pred = self.predict()
        Y = self.Y
        X = self.X
        m = len(self.Y)
        b = self.b
        self.b[0] = b[0] - (learing_rate * (1/m * np.sum(Y_pred - Y)))
        self.b[1] = b[1] - (learing_rate * (1/m * np.sum((Y_pred - Y) * X)))

    def predict(self, X=[]):
        if not X:
            X = self.X
        b = self.b
        Y_pred = [b[1] * x + b[0] for x in X]
        return np.array(Y_pred)

    def compute_cost(self,Y_pred):
        Y = self.Y
        m = len(Y)
        J = 1/(2*m) * np.sum((Y_pred - Y) ** 2)
        return J

    def plot_best_fit(self, Y_pred, fig):
        f = plt.figure(fig)
        plt.scatter(self.X, self.Y,color = 'b')
        plt.plot(self.X, Y_pred,color = 'r')
        f.show()


def train():
    losses = []
    X = np.array([i for i in range(11)])
    Y = np.array([2*i for i in range(11)])
    regressor = LinearRegression(X,Y)
    learing_rate = 0.01
    regressor.update_coeffs(learing_rate)
    Y_pred = regressor.predict()
    loss = regressor.compute_cost(Y_pred)
    losses.append(loss)
    regressor.plot_best_fit(Y_pred,"Initial best fit line")

    while 1:
        regressor.update_coeffs(learing_rate)
        Y_pred = regressor.predict()
        loss = regressor.compute_cost(Y_pred)
        if loss < losses[-1]:
            losses.append(loss)
        else:
            break

    regressor.plot_best_fit(Y_pred,"best fit line")
    f = plt.figure("Verification")
    print(losses)
    plt.plot(range(10),losses[:10],color= 'g')
    f.show()
    return regressor


def test(regressor):
    test_X = [i for i in range(11, 30)]
    test_Y = [2*i for i in range(11,30)]
    test_Y_pre = regressor.predict(test_X)
    f = plt.figure("test")
    plt.scatter(test_X,test_Y,color = 'b')
    plt.plot(test_X,test_Y_pre,color = 'red')
    f.show()

if __name__ == '__main__':
    regressor = train()
    test(regressor)

参考:Gradient Descent in Linear Regression - GeeksforGeeks

Sklearn——用Sklearn实现线性回归(LinearRegression) 文章目录1.前言2.Sklearn实战线性回归2.1.导入必要模块2.2.加载数据2.3.训练+预测 1.前言 Sklearn 中的datasets,很多而且有用,可以用来学习算法模型。 比如: boston 房价, 糖尿病, 数字, Iris 花。 也可以生成虚拟的数据,例如用来训练线性回归模型的数据,可以用函数来生成。 例如,点击进入 boston 房价的数据,可以看到 sample 的总数... 阅读详情

相关推荐

机器学习笔记一:使用LinearRegression实现Boston房价线性回归

一、LinearRegression类 sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None) 参数 含义 fit_intercept 是否有截据,如果没有则直线过原点 normalize 是否将数据归一化 copy_X 默认为True,当为True时,X会被copi

耐心的小黑的博客 2781

(一)线性回归(LinearRegression)原理和代码实现

就是样本的似然函数,转化为数学中求解θ最大似然估计值的问题,即:最大似然估计法(这里有兴趣的可以去补习数学上这块的知识,不想学习,可以只看下面的求解过程能看懂就行)到此最小二乘法,求解θ得过程讲解完毕,最小二乘法得缺陷也很明显了,首先要求X^TX是可逆的,为了防止不可逆,做如下更改,之间的误差(机器学习不能求解到百分百准确的θ值,只能使得ξ^i值不断减小,也就是让预测值不断的逼近真实值y。求解J(θ)的最小值,可以采用求解导函数,并使导函数为0的方式实现。,假设是独立同分布的,服从均值为0,方差为。

user_28608的博客 271

ubuntu 24.04安装ros1 noetic

上面是参考链接给的修改内容。除了上面要修改的地方,我在编译的生活还有一个地方报错,修改成如下形式。因为我已经对文件rosconsole_log4cxx.cpp作了上面的修改,所有是不是188行不太确认了,如果报“log4cxx::spi::LocationInfo”问题,按照下面修改就可以了。我在编译时还报了一个问题,就是我之前安装的是jazzy。所以在编译时会报ros变量名不对,这时对变量名做修改就可以了。具体怎么修改,百度。a、将源文件中所有CMakelist中编译标准改为c++ 17.

yangpan011的博客 3207

机器学习--线性回归模型(LinearRegression)

包括模型和模型评价指标的代码实现(基于python)

weixin_43978744的博客 4276

Opencv计算相机响应函数(Camera Response Function)与Radiance

本文主要用于记录自己在学习CRF过程中遇到的一些问题。 CRF模型 I=f(V(t⋅L))I=f(V( t\cdot L))I=f(V(t⋅L)) 其中III为相机灰度值Intensity,LLL为环境中irradiance,ttt为曝光时间,VVV为相机镜头参数,fff为相机响应函数CRF。 有些论文中认为相机镜头参数是线性的不考虑,但有些考虑了衰减即靠近图像边缘亮度会暗一些,但没有看到二者同时计算的,如果同时计算两个非线性的函数,我觉得可能会有不确定性,在这里还请教一下了解的朋友。 控制

larrydong的博客 6001

SUMO从入门到精通:手把手教你用开源工具完成智能网联车仿真(附Python接口教程)

本文提供了一份SUMO开源交通仿真工具的完整实战指南,从环境搭建、基础仿真到Python接口TraCI的深度应用。重点讲解了如何利用SUMO的高度可定制性进行智能网联车仿真,包括实现动态信号优先等核心算法,并介绍了与网络仿真器集成以构建高保真车联网通信环境的方法。

weixin_28327051的博客 540

笔记——线性回归的实现

1. 简单线性回归 import numpy as np from metrics import r2_score class SimpleLinearRegression1: def __init__(self): """初始化SimpleLinearRegression模型""" self.a_=None self.b_=None def fit(self,x_train,y_train): """根据训练数据集x_trai

chairon的博客 277

紫光展锐面试——FPGA/IC设计面试面经案例总结

自我介绍;研究生的主要研究方向是什么?为什么想要应聘数字芯片相关的工作?简单介绍下数字IC设计流程。逻辑综合主要做什么?你有实际做过逻辑综合工作吗?你了解SS corner和FF corner吗?综合时应该使用哪个corner?综合时需要考虑hold吗?为什么?提高时钟频率对setup和hold有什么影响?为什么?hvt、rvt/svt、lvt有什么区别?c40、c50是指什么概念?有什么区别?你对EDA工具有过了解吗?

FPGA/MATLAB学习教程/源码/项目合作开发 1564

线性回归推导以及代码实现

数学推导 梯度下降法与最小二乘法 正则化推导 Python代码实现 最小二乘法 class LinearRegression_LS: def __init__(self): self._theta = None def fit(self, X_train, y_train): """ :param X_train: 训练特征集 :param y_train: 训练结果集 :return:

gjjshgu的博客 458

RK3588平台MIPI DSI屏幕调试记录

本文是基于RK3588平台,MIPI屏调试总结。调试过程中遇到的问题:一开始很久没亮,测量了电源电压和波形都正常。后来换了一组板子和屏幕做对比。最后是因为屏幕的座子没焊接好,二是接MIPI屏幕的排线太长会影响数据传输。换了一根短的线之后屏幕亮起。vp2vp3。

bingdund的博客 1391

『OPEN3D』1.2 mesh处理 python篇

介绍open3d对mesh的基本处理操作

NNNNNathan的博客 4648

机器学习实战-线性回归

线性回归 项目链接:https://github.com/Wchenguang/gglearn/blob/master/LinearRegression/机器学习实战:基于Scikit-Learn和TensorFlow讲解/LinearRegression.ipynb import numpy as np import matplotlib.pyplot as plt class LinearRe...

Mr_W1997的博客 323

基于Python的智能动漫更新监控爬虫系统:从原理到实战

本文详细介绍了如何使用Python构建一个智能化的动漫更新监控系统,涵盖从基础爬虫到高级自动化监控的全套解决方案。文章将深入探讨最新的网络爬虫技术,包括异步请求、反反爬策略、智能解析算法等,并提供完整的代码实现和性能优化方案。通过本系统,用户可以实时获取多个动漫平台的更新信息,并通过多种渠道接收通知。关键词:Python爬虫、动漫监控、自动化通知、异步爬虫、反反爬策略。

2201_76125261的博客 902

LinearRegression线性回归Python实现

本文回归模型用的数据是吴恩达机器学习中对应数据,本文用了2中方式实现:1.自己定义函数实现回归模型;2.sklearn第三方模块实现 1.自定义实现代码 “”" 自定义方法 “”" import numpy as np class ReadData: def init(self): self.data = [] def read_data(self,path): with open(path) a...

weixin_43207115的博客 413

模拟电路综合笔试题解析

本专栏预计更新60期,当前为第10期,文章约6000字,旨在帮助读者掌握模拟电路笔试的核心知识点与实战技巧。文章分为五个章节,涵盖基础理论、高频考点、大厂题目解析等内容。首先,文章详细解析了DC-DC与LDO的区别及选型依据,并通过真题分析帮助读者理解其应用场景。接着,文章深入探讨了运放电路设计、同步降压电路设计等高频考点,并结合实际案例提供解决方案。此外,文章还分享了特斯拉、华为、大疆等大厂的面试题及解析,帮助读者应对复杂电路设计挑战。最后,文章总结了模拟电路设计中的关键技巧与优化方法,为读者提供全面的笔

启芯硬件的博客 472

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

线性回归(LinearRegression)实现房价预测

线性回归主要运用于来连续型特征样本的预测,本次预测数据主要以波士顿房价数据为列训练并评估模型。本次使用基本的最小二乘法和sklearn模块分别用于预测房价。 1、首先使用线性回归算法最小二乘法实现预测 导入需要的python库 import numpy as np import pandas as pd import pylab 建立computer_error函数,构造误差函数 ∑_(...

飛鹰 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

python中的linearregression_线性回归( Linear Regression)的Python源码的实现

1. 前言本文主要讲解线性回归的代码的实现,想了解线性回归的知识可以去coursera上看吴恩达的机器学习的课程的第二周的课程,b站上也有该课程的视频,从第9个视频到第24视频都在讲线性回归的知识。链接如下:以下为该课程网上的相关笔记:若只想简单了解原理可以看以下文章:2. 源码讲解下面开始源码的讲解2.1 class l1_regularization():class l1_regulariza...

weixin_39940770的博客 773

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

使用TensorFlow实现简单的线性回归(LinearRegression)

线性模型基本形式 : 线性回归属于回归算法,表达监督学习的过程。通过属性的线性组合来预测函数:f(x)=w1x1+w2x2+...+wdxd+b \bbox[,5px,border:1px solid black] { {f(x)} = {w_1x_1+w_2x_2+...+w_dx_d}+{b} }一般向量形式写成:f(x)=wTx+b \bbox[,5px,border:1px solid

Rogel_Liu的博客 2837

python 实现linear regression线性回归算法

线性回归(Linear Regression)是一种在统计学中广泛使用的预测分析方法,它用于建立自变量(解释变量)和因变量(响应变量)之间的线性关系模型。简单来说,线性回归试图找到一个最佳的直线(或更一般地,一个线性模型),使得这条直线能够最好地拟合数据点(即使得实际观测值与通过模型预测的值之间的差异最小)。基本概念Yβ0β1X1β2X2⋯βnXnϵYβ0​β1​X1​β2​X2​⋯βn​Xn​ϵY 是因变量(响应变量),

luthane的博客 1264

LinearRegression-Python实现线性回归

线性回归算法:寻找一条直线,最大程度的拟合样本特征和样本输出标记之间的关系 衡量线性回归法的指标:MSE(求差的平方),RMSE(MSE求根号)和MAE(求差的绝对值) RMSE有放大样本中预测结果和真实结果中,较大的差距的趋势; 是直接反应的预测结果和真实结果的差距 from sklearn.metrics import mean_squared_error from sklearn.me...

成功唯有积累,没有奇迹。 2407

PyTorch实现线性回归--LinearRegression

pytorch入门,线性回归,博大家一笑

Bro3Rd的博客 765

机器学习之线性回归算法Linear Regression(python代码实现)

线性回归(Linear Regression)是一种非常简单、用处非常广泛、含义也非常容易理解的一类经典的算法,非常合适作为机器学习的入门算法。 线性回归就是拟合出一个线性组合关系的函数。要找一条直线,并且让这条直线尽可能地拟合所有数据点。即:试图找到一条直线,使所有样本到直线上的欧式距离之和最小。 一元线性回归(Linear Regression) 拟合出一个线性组合关系的函数:y = wx+b 。 拟合图像: 多元线性回归 多元线性回归比一元线性回归复杂,其组成的不是直线,而是一..

记录知识,学习分享 4万+

python中的linearregression_【python+机器学习(2)】python实现Linear Regression

欢迎关注哈希大数据微信公众号【哈希大数据】python实现多元线性回归算法(lr)想必大家在很早之前就接触过函数的概念,即寻找自变量和因变量之间的对应关系,一元一次、多元一次、一元二次等等,表示的就是变量间具有线性、非线性,相关关系或无关关系等。同样的在机器学习中,一个重要而且很常见的问题就是学习特征变量(自变量)与响应变量(因变量)之间的函数关系,进而对新出现的变量进行结果预测。这种寻找连续变量...

weixin_39972567的博客 1123

scikit-learn实现线性回归之LinearRegression模型

一.初识机器学习看了好多的模型训练文档,一直对数据的输入和输出感到有点懵,还好大佬点醒,少了好多头脑斗争,下面戳重点见图: 二.关于线性回归线性回归是一种有监督的学习算法,它介绍的自变量的和因变量的之间的线性的相关关系,分为一元线性回归和多元的线性回归。一元线性回归是一个自变量和一个因变量间的回归,可以看成是多元线性回归的特例。线性回归可以用来预测和分类,从回归方程可以看出自变量和因变量的相互影响

Totoro1745的博客 4176

sklearn库LinearRegression线性回归实现

来自HCIA-AI 实验。

yiyamala的专栏 937

linearregression_利用Python sklearn 实现linear Regression

说到Linear Regression ,许多人的第一反应就是我们初中学过的线性回归方程。其实上,线性回归方程就是当feature为一个时候的特殊情况。和许多机器学习一样,做 Linear Regression 的步骤也是三步:STEP1: CONFIRM A MODEL(function sets)例如:对于多对象用户,我们应该考虑每个特征值xj与其权重w乘积之和:所以我们的Linear M...

weixin_39884412的博客 680
上一篇: 箱线图(seaborn.boxplot)
下一篇: pycharm连接服务器
SmartDemo
博客等级 码龄9年 176粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值