首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

从零开始学机器学习——了解回归

编程知识
2024年09月25日 08:09

首先给大家介绍一个很好用的学习地址:https://cloudstudio.net/columns

回归

今天我们将深入探讨回归分析的概念。回归分析是统计学中一种重要的方法,通常分为线性回归和逻辑回归两种类型。它们分别用于不同的数据模型和分析需求。为了更直观地理解它们的作用,让我们先通过一个图表来感受一下它们的应用场景和效果:

线性回归是一种统计学方法,通过利用已知相关数据来预测未知数据的值。它通过数学建模将未知变量(或因变量)与已知变量(或自变量)之间的关系表示为线性方程,从而揭示它们之间的线性关系。

image

逻辑回归是一种常用的数据分析技术,其目的在于通过数学建模揭示两个数据因子之间的关系。通过这种关系,逻辑回归可以根据其中一个因子的值来预测另一个因子的可能性。通常情况下,预测结果是有限的,例如二元分类(是或否)。

image

数据可视化

在机器学习领域,数据可视化对于深入理解数据的分布、特征之间的关系以及模型的表现至关重要。matplotlib作为一个功能强大的绘图库,提供了丰富的绘图功能,能够轻松地创建各种类型的图表,包括但不限于折线图、散点图、直方图等。这些图表不仅能够直观地展示数据,还能帮助分析者快速洞察数据的结构和趋势。

数据可视化还具有重要的演示作用,能够通过直观的图表帮助学者更轻松地理解数据,提升信息的可读性和传达效果。

import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model, model_selection
X, y = datasets.load_diabetes(return_X_y=True)
X = X[:, np.newaxis, 2]
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
model = linear_model.LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
plt.scatter(X_test, y_test,  color='black')
plt.plot(X_test, y_pred, color='blue', linewidth=3)
plt.show()

与 Python 中的某些库一样,Scikit-learn 库也附带了一组内置数据集。您需要先导入数据集库,才能访问所选的特定数据集。在以上示例中,导入数据集。该数据集包含来自糖尿病患者的数据,并包含某些特征,例如他们的 bmi(体重指数)、年龄、血压和葡萄糖水平

关键代码解析一下:

  • 使用model_selection.train_test_split()将数据集划分为训练集 (X_train, y_train) 和测试集 (X_test, y_test),其中测试集占比为33%
  • 使用训练集数据 (X_train, y_train) 对线性回归模型进行训练,即 model.fit(X_train, y_train)。
  • 使用训练好的模型对测试集 (X_test) 进行预测,得到预测值 y_pred。
  • 使用 matplotlib 绘制散点图 (plt.scatter()) 表示测试集数据点。
  • 使用 plt.plot() 绘制回归模型在测试集上的预测结果曲线,以及用蓝色线条表示的拟合直线。
  • 最后通过 plt.show() 显示图形。

以此为例,通过可视化图表展示的数据更加直观易懂。

image

总结

在本文中,我们探讨了回归分析在统计学和数据分析中的重要性和应用。线性回归和逻辑回归作为两种主要的回归分析方法,分别适用于不同类型的数据建模和预测需求。通过数学建模,它们能够揭示变量之间的关系,并且在实际应用中展现了强大的预测能力。

数据可视化在深入理解数据特征和模型表现方面起到了关键作用。通过图表如折线图、散点图和直方图,我们能够直观地展示数据分布和趋势,帮助分析者快速洞察数据的结构和模式。特别是在机器学习中,这些可视化技术不仅提升了数据分析的效率,还增强了信息的传达和理解效果。

通过本文的学习,我们不仅深入了解了回归分析的理论基础和实际操作,还通过实例展示了如何利用Python中的相关库进行数据建模和可视化分析。


我是努力的小雨,一名 Java 服务端码农,潜心研究着 AI 技术的奥秘。我热爱技术交流与分享,对开源社区充满热情。同时也是一位腾讯云创作之星、阿里云专家博主、华为云云享专家、掘金优秀作者。

💡 我将不吝分享我在技术道路上的个人探索与经验,希望能为你的学习与成长带来一些启发与帮助。

🌟 欢迎关注努力的小雨!🌟

From:https://www.cnblogs.com/guoxiaoyu/p/18413894
本文地址: http://www.shuzixingkong.net/article/2284
0评论
提交 加载更多评论
其他文章 我是如何开发一款支持IDEA、PyCharm、Android Sutdio 等JB全家桶的摸鱼插件的
公众号「古时的风筝」,专注于后端技术,尤其是 Java 及周边生态。 个人博客:www.moonkite.cn 大家好,我是风筝 前些天做了一款支持 Jetbrains 大部分 IDE 的摸鱼插件- 一款IDE摸鱼插件,没想到出乎意料的没什么人用,当初说 VsCode 里面的养宠物的插件时,一大堆人
我是如何开发一款支持IDEA、PyCharm、Android Sutdio 等JB全家桶的摸鱼插件的 我是如何开发一款支持IDEA、PyCharm、Android Sutdio 等JB全家桶的摸鱼插件的 我是如何开发一款支持IDEA、PyCharm、Android Sutdio 等JB全家桶的摸鱼插件的
线程状态转换?创建线程的几种方式?线程如何停止?
线程状态转换 新建(New) NEW:初始状态,线程被构建,但是还没有调用start()方法。 可运行(Runnable) RUNNABLE:可运行状态,可运行状态可以包括:运行中状态和就绪状态。也就是 可能正在运行,也可能正在等待 CPU 时间片。 包含了操作系统线程状态中的 Running 和
线程状态转换?创建线程的几种方式?线程如何停止? 线程状态转换?创建线程的几种方式?线程如何停止? 线程状态转换?创建线程的几种方式?线程如何停止?
Serilog文档翻译系列(五) - 编写日志事件
Serilog日志通过Log或ILogger接口记录,支持消息模板,属性名匹配参数。日志级别按重要性递增,如Verbose、Debug、Info等。日志事件可标记来源和标识符用于关联。提供动态级别调整及源上下文功能。
Serilog文档翻译系列(五) - 编写日志事件 Serilog文档翻译系列(五) - 编写日志事件 Serilog文档翻译系列(五) - 编写日志事件
k8s StorageClass 存储类
目录一、概述1、StorageClass 对象定义2、StorageClass YAML 示例二、StorageClass 字段1、provisioner(存储制备器)1.1、内置制备器1.2、第三方制备器2、reclaimPolicy(回收策略)3、allowVolumeExpansion(允许卷
k8s StorageClass 存储类 k8s StorageClass 存储类 k8s StorageClass 存储类
ArgoWorkflow教程(五)---Workflow 的多种触发模式:手动、定时任务与事件触发
上一篇我们分析了argo-workflow 中的 archive,包括 流水线GC、流水线归档、日志归档等功能。本篇主要分析 Workflow 中的几种触发方式,包括手动触发、定时触发、Event 事件触发等。 1. 概述 Argo Workflows 的流水线有多种触发方式: 手动触发:手动提交一
ArgoWorkflow教程(五)---Workflow 的多种触发模式:手动、定时任务与事件触发 ArgoWorkflow教程(五)---Workflow 的多种触发模式:手动、定时任务与事件触发 ArgoWorkflow教程(五)---Workflow 的多种触发模式:手动、定时任务与事件触发
关于建表字段是否该使用not null这个问题你怎么看?
大家好,我是 V 哥,在数据库设计中,是否使用 NOT NULL 是一个非常重要的决策,直接影响数据完整性、查询性能以及业务逻辑的复杂度。使用 NOT NULL 的关键在于理解业务需求和具体场景。 下面V哥通过一些场景来分析什么时候应该使用 NOT NULL,什么时候允许 NULL。一起聊聊经验之谈
Java序列化、反序列化、反序列化漏洞
目录1 序列化和反序列化1.1 概念1.2 序列化可以做什么?3 实现方式3.1 Java 原生方式3.2 第三方方式4 反序列化漏洞 1 序列化和反序列化 1.1 概念 Java 中序列化的意思是将运行时的对象转成可网络传输或者存储的字节流的过程。而反序列化正相反,是把字节流恢复成对象的过程。 1
Java Web 拾遗
许是年纪大了,老是回忆起以前的点点滴滴。翻看当初的代码,如同偶遇多年未见的前女友,曾经一起深入交流的情谊在颔首之间消散,令人烦躁。 今天就来聊聊老生常谈的 Java Web 开发。缘于一个简单的Spring Boot项目改造,笔者看着一坨注解和配置,苦于拾掇记忆的痛苦,择其一二记录,纪念逝去的青春。