【机器学习sklearn实战】线性回归

news2024/12/26 23:42:13

一 基础概念

广义线性模型(2)线性回归

【机器学习】一文看尽 Linear Regression 线性回归

二 步骤

使用sklearn中的库,一般使用线性回归器

  • 首先,导入包: from sklearn.linear_model import LinearRegression
  • 创建模型: linear =LinearRegression()
  • 拟合模型: linear.fit(x,y)
  • 模型的预测值: linear.predict(输入数据)
  • 模型评估:计算 mean_squared_errorr2_score
  • 线性回归模型的权重linear.coef_和偏置linear.intercept_

三 示例

3.1 单变量线性回归

  1. 导入包

    # 导入包
    import matplotlib.pyplot as plt
    import numpy as np
    
    from sklearn import linear_model
    from sklearn.metrics import mean_squared_error, r2_score
    
  2. 加载数据

    # 产生数据
    x = np.linspace(0,10,50) # 0到10等间隔产生50个数
    b = 1
    noise = np.random.uniform(-2, 2, size=50)
    y= 5*x + b + noise
    
  3. 创建模型

    # 创建模型
    lr = linear_model.LinearRegression()
    
  4. 模型预测

    # 模型训练
    lr.fit(np.reshape(x,(-1,1)),np.reshape(y,(-1,1)))
    
  5. 模型预测

    # 模型预测
    y_pred =lr.predict(np.reshape(x,(-1,1)))
    
  6. 数据可视化

    # 数据可视化
    plt.figure(figsize=(5,5))  # 产生一个窗口
    plt.scatter(x,y)  # 画散点图
    plt.plot(x,y_pred,color='red')
    plt.show()
    

  7. 模型评估

    # 模型评估
    # The mean squared error
    print("Mean squared error: %.2f" % mean_squared_error(np.reshape(y,(-1,1)), y_pred))
    # The coefficient of determination: 1 is perfect prediction
    print("Coefficient of determination: %.2f" % r2_score(np.reshape(y,(-1,1)), y_pred))
    

    Mean squared error: 1.47
    Coefficient of determination: 0.99

  8. 打印权重

    # 打印权重
    print("Coefficients: ", lr.coef_)
    print("Intercept: ", lr.intercept_)
    

    Coefficients: [[5.01215851]]
    Intercept: [0.99046872]

3.2 多变量线性回归

本例中使用 sklearn 提供的一个内置的糖尿病数据集 (diabetes dataset),它通常用于回归分析的教学示例。这个数据集包含442个患者的10个生理特征以及一年后疾病级别的量化指标。详情请查看:

  • 【sklearn实战】datasets数据集简介
  • 【sklearn实战】sklearn 数据集之 Toy datasets
# 导入所需的库
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
import numpy as np

# 加载糖尿病数据集
diabetes = datasets.load_diabetes()

# 使用所有特征
X = diabetes.data
y = diabetes.target

# 将数据分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建线性回归对象
regr = LinearRegression()

# 训练模型
regr.fit(X_train, y_train)

# 预测测试集的结果
y_pred = regr.predict(X_test)

# 输出结果
print("Coefficients: \n", regr.coef_)
print("Mean squared error: %.2f" % mean_squared_error(y_test, y_pred))
print("Coefficient of determination (R^2): %.2f" % r2_score(y_test, y_pred))

# 如果需要查看更详细的模型信息,可以输出以下内容
print("Intercept: ", regr.intercept_)
print("Feature names: ", diabetes.feature_names)

# 输出
Coefficients: 
 [  37.90402135 -241.96436231  542.42875852  347.70384391 -931.48884588
  518.06227698  163.41998299  275.31790158  736.1988589    48.67065743]
Mean squared error: 2900.19
Coefficient of determination (R^2): 0.45
Intercept:  151.34560453985995
Feature names:  ['age', 'sex', 'bmi', 'bp', 's1', 's2', 's3', 's4', 's5', 's6']

这段代码首先加载了糖尿病数据集,并将其分为训练集和测试集。然后,创建了一个线性回归模型并用训练集对其进行拟合。最后,它在测试集上预测了目标变量,并计算了均方误差(MSE)和决定系数(R2R2),以评估模型的表现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1962991.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PHP回收废品平台系统小程序源码

🌍绿色行动,从“回收废品平台系统”开始!🚚 🚪【家门口的环保站,废品不再无处安放】 你是否曾为家里的旧报纸、空瓶子、废旧电器等废品头疼不已,不知该如何处理?现在,“…

java-数据结构与算法-02-数据结构-07-优先队列

1. 概念 队列是一种先进先出的结构,但是有些时候,要操作的数据带有优先级,一般出队时,优先级较高的元素先出队,这种数据结构就叫做优先级队列。 比如:你在打音游的时候,你的朋友给你打了个电话…

安全基础学习-CRC理解与计算

由于一些任务要求需要了解CRC校验,于是来学习一下。 新人学习,大佬绕路。 前言 CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC&…

《计算机工程与应用》投稿经验

目录 前言期刊简介详细过程第1步:网站投稿第2步:交审稿费第3步:等外审第4步:返修所需材料描述 第5步:外审/复审/录用第6步:录用 前言 记录下投《计算机工程与应用》的正刊投稿经验。 整理了一些投稿期间常…

【C#】 使用GDI+获取两个多边形区域相交、非相交区域

一、使用GDI获取两个多边形区域相交、非相交区域 在 C# 中使用 GDI(Graphics Device Interface Plus)处理图形时,你可以使用 System.Drawing 和 System.Drawing.Drawing2D 命名空间中的类来操作区域(Region)。下面是一…

取图小程序搭建教程,达人+流量主+会员快速部署上线指南

目录 一、取图小程序是什么? 二、搭建教程 (一)前期准备 (二)开发环境搭建 (三)部署与上线 三、部分代码展示 一、取图小程序是什么? 取图小程序以其多元化的功能而著称&…

抖音本地生活城市代理保证金多少?最新标准出炉!

随着本地生活的前景和潜力不断显现,抖音本地生活城市代理的申请热度不断攀升,并逐渐成为众多创业者入局本地生活的首要选择,而与之相关的问题,如抖音本地生活城市代理保证金等更是长居相关社群话题榜的前列。 而就目前的市场情况来…

2024华为数通HCIP-datacom最新题库(H12-831变题更新⑧)

请注意,华为HCIP-Datacom考试831已变题 请注意,华为HCIP-Datacom考试831已变题 请注意,华为HCIP-Datacom考试831已变题 近期打算考HCIP的朋友注意了,如果你准备去考试,还是用的之前的题库,切记暂缓。 1、…

抖音开放平台API接口如何开发||抖音相关接口数据采集数据分析 【附实例】

抖音开放平台提供了多种接口,包括授权登录、用户信息、视频管理、评论互动、消息通知、数据分析等。 以下是开发抖音接口的一些步骤: 1. 注册开发者账号:在抖音开放平台上注册开发者账号,获取开发者身份认证。 2. 创建应用&…

学习鸿蒙-利用Code Linter检查代码

如何检查: 1.在已打开的代码编辑器窗口单击右键点击Code Linter,或在工程管理窗口中鼠标选中单个或多个工程文件/目录,右键选择Code Linter > Full Linter执行代码全量检查。 2.通过git 提交,可在commit界面右下角点击齿轮图标…

嵌入式开发问题总汇

1. 事情经过:有天快下班的时候,我们采购经理找到我,说,生成的bin文件通过软件上传烧录时,烧录就会重启,但是其他的板子就不会。最后他换了一个A厂家的flash芯片,就可以了。但是,B厂…

使用 Postman 进行 Trello API 自动化测试的完整指南

文章目录 前言一、自动化测试是什么?二、比较自动化测试与手工测试1. 自动化测试2. 手工测试 三、环境搭建1.创建Collection2.创建环境变量3.添加API请求 四、设计测试用例1. API简单调用2. 获取所有emoji3. 创建一个新看板:4. 获得创建的看板信息5. 在看…

【Git】git 从入门到实战系列(一)—— Git 的诞生,Linus 如何在 14 天内编写出 Git?

<> 博客简介&#xff1a;Linux、rtos系统&#xff0c;arm、stm32等芯片&#xff0c;嵌入式高级工程师、面试官、架构师&#xff0c;日常技术干货、个人总结、职场经验分享   <> 公众号&#xff1a;嵌入式技术部落   <> 系列专栏&#xff1a;C/C、Linux、rt…

【机器学习】决策边界的基本概念以及如何在逻辑回归中找到决策边界

引言 在机器学习中&#xff0c;决策边界是分类算法用来区分不同类别数据点的线、面或超平面。这些边界通常是模型的预测规则&#xff0c;用于将特征空间中的点分配到不同的类别。决策边界可以是线性的&#xff0c;也可以是非线性的&#xff0c;取决于数据的分布和所使用的分类算…

探索开明软件包:应用开发指南轻松掌握,快速上手!

开明软件包格式&#xff0c;是openKylin社区Kaiming SIG为应对传统包格式存在的系统与应用无明确界限、发行版碎片化、兼容性等问题而开发的一款全新软件包格式&#xff0c;满足ISV&#xff08;Independent Software Vendors&#xff09;应用发布和应用独立发布需求&#xff0…

AI绘画:PS+comfyUI 工作流,直接在PS搞AI!

前言 直接在PS搞AI要不要&#xff1f; 大神 Nima Nazari 发布了一个可以无缝链接PS和comfyUI的工作流。 小编对该工作流进行了一个安装使用的测评&#xff0c;该工作流可以无缝与PS进行互联操作&#xff0c;切换模型和修改参数时还是需要在PS和ComfyUI间切换。总体而言&#x…

CSCP、CPIM和CLMP三大证书的区别?如何选择?

在制造型企业、供应链和运营管理专业人士都会不断寻找方法来提升他们的技能和职业前景。三种流行的认证——CSCP&#xff08;Certified Supply Chain Professional&#xff09;、CPIM&#xff08;Certified in Planning and Inventory Management&#xff09;以及CLMP&#xff…

其他:trycatch模块捕获循环错误,避免中断程序

介绍 今天有位同事问我怎么在某次循环报错后仍然可以继续程序运行&#xff0c;最后我们使用了trycatch模块。 代码解读 任务&#xff1a;在循环中&#xff0c;如果某次循环的calc出现错误则跳过这次循环并重新赋值结果 res_list <- list() # 创建一个空列表来存储结果fo…

整箱排柜不返工?用易境通散拼系统就OK

想必困扰散货拼柜小伙伴们一大难题就是&#xff0c;怎么把错乱纷繁的货物有序地整箱排柜&#xff0c;并且要保证集装箱高效利用&#xff0c;运输成本尽量降低。这不仅要求操作者具备卓越的统筹规划能力&#xff0c;更需长期积累的实践经验和敏锐的应变能力。易境通散拼系统可以…

[python] 启发式算法库scikit-opt使用指北

scikit-opt是一个封装了多种启发式算法的Python代码库&#xff0c;可以用于解决优化问题。scikit-opt官方仓库见&#xff1a;scikit-opt&#xff0c;scikit-opt官网文档见&#xff1a;scikit-opt-doc。 scikit-opt安装代码如下&#xff1a; pip install scikit-opt # 调用scik…