003-基于Sklearn的机器学习入门:回归分析(上)

本节及后续章节将介绍机器学习中的几种经典回归算法,所选方法都在Sklearn库中聚类模块有具体实现。本节为上篇,将介绍基础的线性回归方法,包括线性回归、逻辑回归、多项式回归和岭回归等。

2.1 回归分析概述

回归Regression)分析是机器学习领域中最古老、最基础,同时也是最广泛应用的问题之一,应用十分广泛。

简而言之,回归分析旨在建立一个模型,使用这个模型可以用一组特征(自变量)来预测一个连续的结果(因变量)。举一个容易理解的例子,我们可以使用房间的面积、楼层、位置、周边配套等特征来预测该商品房的房价高低,在这个例子中,房价是因变量,且是连续变化的,可以在一定非负区间内取任何实数值,而影响房价的各个因素,成为自变量,自变量可以是各种类型的值,但为了回归分析方便,通常将自变量也转换为数值类型。

2.1.1 回归与分类

回归问题是预测一个连续值的输出(因变量)基于一个或多个输入(自变量或特征)的机器学习任务。换句话说,回归模型尝试找到自变量和因变量之间的内在关系。

回归和分类是两类典型的监督学习问题,两者的主要区别在于输出类型和评价指标不同,如下:

  • 输出类型:回归模型通常用来预测连续值(如价格、温度等),分类模型用来预测离散标签(如0/1)。
  • 评估指标:回归通常使用均方误差(MSE)、R²分数等作为评估指标,而分类则使用准确率、F1分数等。

2.1.2 常见的回归方法

在此主要介绍Sklearn中实现的几类典型的回归方法,

  • 线性回归:线性回归是回归问题中最简单也最常用的一种算法。它的基本思想是通过找到最佳拟合直线来模拟因变量和自变量之间的关系。
  • 多项式回归:与线性回归尝试使用直线拟合数据不同,多项式回归使用多项式方程进行拟合。
  • 支持向量回归:它是支持向量机(SVM)的回归版本,用于解决回归问题。它试图找到一个超平面,以便在给定容忍度内最大程度地减小预测和实际值之间的误差。
  • 决策树回归:它是一种非参数的、基于树结构的回归方法。它通过将特征空间划分为一组简单的区域,并在每个区域内进行预测。

回归算法全解析!一文读懂机器学习中的回归模型-腾讯云开发者社区-腾讯云 (tencent.com)

2.2 线性回归

线性回归,顾名思义,其目标值(对应因变量)可以看作是各个特征值(对应自变量)的线性组合。

线性回归模型的有效性建立在以下关键假设之上:

  • 线性关系:因变量与自变量间存在线性关系。
  • 独立性:观测值之间应相互独立。
  • 无多重共线性:模型中的任何一个自变量都不应该是其他自变量的精确线性组合。
  • 同方差性:对于所有的观测值,误差项的方差应相等。
  • 误差项的正态分布:误差项应呈正态分布。

上述假设确保了线性回归模型能够提供可靠的预测和推断。

下图列出的是与线性回归相关的思维导图。

线性回归知识图​​​

2.2.1 经典线性回归模型

(1)数学模型

经典的线性回归数学模型可用下式描述:

\hat{\mathbf{y}}(\mathbf{w}, \mathbf{x}) = w_0 + w_1 x_1 + ... + w_p x_p

这显然是一条直线方程,其中,\hat{\mathbf{y}}表示预测值,\mathbf{w} = (w_1, ..., w_p)为系数,而w_0为斜率。

这个模型的关键在于找到最适合数据的\mathbf{w}值,使得模型能够准确预测因变量的值。

Sklearn使用LinearRegression函数完成线性模型的拟合。所使用的准则是“最小均方误差”准则,即是使观测数据与预测数据之间的均方误差取得最小值,用数学表达式表示就是:

\min_{\mathbf{w}} ||\mathbf{w} \mathbf{x} - \mathbf{y}||_2^2

(2)数学模型

 在SKlearn中,使用LinearRegression函数实现线性回归问题。

以下是该函数的声明:

看一下LinearRegression函数的声明:

sklearn.linear_model.LinearRegression(*, fit_intercept=True, copy_X=True, n_jobs=None, positive=False)

部分参数说明

  • fit_intercept:是否计算该模型的截距,默认为True。如果使用中心化的数据,可以考虑设置为False,即不计算截距。
  • copy_X:是否对X进行复制,默认为True。如果设为False,在运行过程中新数据会覆盖原数据。
  • n_jobs:处理时设置任务个数,默认值为None。该参数对于目标个数大于1,且足够大规模的问题有加速作用,如果设置为-1,则代表使用所有的CPU。
  • positive:默认为False,如果设为Ture,则将各个系数强制设为正数。

属性值

  • coef_:拟合得到的系数值。如果是单目标问题,返回一个以为数组;如果是多目标问题,返回一个二维数组。
  • rank_:矩阵X的秩,仅X为稠密矩阵时有效。
  • singular_:矩阵X的奇异值,仅X为稠密矩阵时有效。
  • intercept_:截距,线性模型中的独立项,如果fit_intercept设为False,则intercept_值为0。

该函数在使用时,调用了以下函数:

  • fit:用于模型训练
  • get_params:获取估计器的参数值
  • set_params:设置估计器的参数
  • predict:模型预测
  • score:模型评估

(3)实例

本节将介绍如何使用LinearRegression函数实现对线性拟合的一个实例,该实例来自Sklearn官网,详细介绍见代码的注释。

# Code source: Jaques Grobler
# License: BSD 3 clause

import matplotlib.pyplot as plt
import numpy as np

from sklearn import datasets, linear_model
from sklearn.metrics import mean_squared_error, r2_score

# Load the diabetes dataset
diabetes_X, diabetes_y = datasets.load_diabetes(return_X_y=True)

# Use only one feature
diabetes_X = diabetes_X[:, np.newaxis, 2]

# Split the data into training/testing sets
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]

# Split the targets into training/testing sets
diabetes_y_train = diabetes_y[:-20]
diabetes_y_test = diabetes_y[-20:]

# Create linear regression object
regr = linear_model.LinearRegression()

# Train the model using the training sets
regr.fit(diabetes_X_train, diabetes_y_train)

# Make predictions using the testing set
diabetes_y_pred = regr.predict(diabetes_X_test)

# The coefficients
print("Coefficients: \n", regr.coef_)
# The mean squared error
print("Mean squared error: %.2f" % mean_squared_error(diabetes_y_test, diabetes_y_pred))
# The coefficient of determination: 1 is perfect prediction
print("Coefficient of determination: %.2f" % r2_score(diabetes_y_test, diabetes_y_pred))

# Plot outputs
plt.scatter(diabetes_X_test, diabetes_y_test, color="black")
plt.plot(diabetes_X_test, diabetes_y_pred, color="blue", linewidth=3)

plt.xticks(())
plt.yticks(())

plt.show()

输出结果为:

Coefficients: 
 [938.23786125]
Mean squared error: 2548.07
Coefficient of determination: 0.47

下图展示了拟合结果,其中黑色点代表测试数据点,蓝线表示拟合出的直线。

官网给出的实例,有些复杂。下面给出一个简单直观的例子。

sklearn——线性回归与逻辑回归_sklearn线性回归-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3-3 超参数

3-3 超参数 什么是超参数 超参数也是一种参数,它具有参数的特性,比如未知,也就是它不是一个已知常量。是一种手工可配置的设置,需要为它根据已有或现有的经验,指定“正确”的值,也就是人为为它设定一个值&…

SAP PS学习笔记01 - PS概述,创建Project和WBS

本章开始学习PS(Project System)。 1,PS的概述 PS(Project System)是SAP企业资源规划系统中的一个关键模块,主要用于项目管理。 它提供了一个全面的框架来规划、控制和执行项目,涵盖了从项目启…

AttackGen:一款基于LLM的网络安全事件响应测试工具

关于AttackGen AttackGen是一款功能强大的网络安全事件响应测试工具,该工具利用了大语言模型和MITRE ATT&CK框架的强大功能,并且能够根据研究人员选择的威胁行为组织以及自己组织的详细信息生成定制化的事件响应场景。 功能介绍 1、根据所选的威胁行…

03:Spring MVC

文章目录 一:Spring MVC简介1:说说自己对于Spring MVC的了解?1.1:流程说明: 一:Spring MVC简介 Spring MVC就是一个MVC框架,Spring MVC annotation式的开发比Struts2方便,可以直接代…

【TB作品】脉搏测量,ATMEGA8单片机,Proteus仿真,ATmega8控制脉搏测量与显示系统

硬件组成: LCD1602脉搏测量电路(带灯)蜂鸣器报警按键设置AT24C02 功能: (1)LCD1602主页显示脉搏、报警上限、报警下限; (2)五个按键:按键1:切换设…

数据库测试|Elasticsearch和ClickHouse的对决

前言 数据库作为产品架构的重要组成部分,一直是技术人员做产品选型的考虑因素之一。 ClkLog会经常遇到小伙伴问支持兼容哪几种数据库?为什么是选择ClickHouse而不是这个或那个。 由于目前市场上主流的数据库有许多,这次我们选择其中一个比较典…

(软件06)串口屏的应用,让你的产品显得高级一点(下篇)

本文目录 学习前言 单片机代码实现 学习前言 目前市面上我记得好像有IIC的屏幕、SPI的屏幕、并口屏幕、还有就是今天我们介绍的这个串口屏了,串口屏,就是用串口进行通讯的,上篇我们已经介绍了屏幕供应商提供的上位机软件进行配置好了&#…

2000-2019年各省市资源错配指数

资源错配指数(Misallocation Index)是衡量一个地区或国家资源配置效率的重要经济指标。以下是对资源错配指数相关数据的介绍: 数据简介 定义:资源错配指数是一个反映生产要素配置合理性的指标,高指数意味着资源配置效…

Science期刊政策反转:允许生成式AI用于论文写作,意味着什么?

我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 关于各大top期刊和出版社对于生成式AI用于论文写作中的规定,娜姐之前写过一篇文章: 如何合理使用AI写论文?来看Top 100学术期刊和出版社的…

Go 中的类型推断

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

昇思25天学习打卡营第08天 | 模型训练

昇思25天学习打卡营第08天 | 模型训练 文章目录 昇思25天学习打卡营第08天 | 模型训练超参数损失函数优化器优化过程 训练与评估总结打卡 模型训练一般遵循四个步骤: 构建数据集定义神经网络模型定义超参数、损失函数和优化器输入数据集进行训练和评估 构建数据集和…

东芝TB6560AHQ/AFG步进电机驱动IC:解锁卓越的电机控制性能

作为一名工程师,一直在寻找可靠且高效的组件来应用于你的项目中。东芝的TB6560AHQ/AFG步进电机驱动IC能够提供精准且多功能的电机控制,完全符合现代应用的高要求,保证高性能和易用性。在这篇文章中,我们将探讨TB6560AHQ/AFG的主要…

CentOS 7.9 停止维护(2024-6-30)后可用在线yum源 —— 筑梦之路

众所周知,centos 7 在2024年6月30日,生命周期结束,官方不再进行支持维护,而很多环境一时之间无法完全更新替换操作系统,因此对于yum源还是需要的,特别是对于互联网环境来说,在线yum源使用方便很…

直播预告 | VMware大规模迁移实战,HyperMotion助力业务高效迁移

2006年核高基专项启动,2022年国家79号文件要求2027年央国企100%完成信创改造……国家一系列信创改造政策的推动,让服务器虚拟化软件巨头VMware在中国的市场份额迅速缩水。 加之VMware永久授权的取消和部分软件组件销售策略的变更,导致VMware…

移动端UI风格营造舒适氛围

移动端UI风格营造舒适氛围

XXL-JOB中断信号感知

目录 背景 思路 实现逻辑 总结 背景 在使用xxl-job框架时,由于系统是由线程池去做异步逻辑,然后主线程等待,在控制台手动停止时,会出现异步线程不感知信号中断的场景,如下场景 而此时如果人工在控制台停止xxl-job执…

insert阻塞了insert?

一、发现问题 在arms监控页面看到某条insert语句的执行时长达到了431毫秒。 数据库中存在,insert语句受到了行锁阻塞,而阻塞的源头也在执行同样的insert语句,同样都是对表USERSYS_TASK_USER_LOG_TEMP01的插入操作,很是费解。 二…

idea创建的maven项目pom文件引入的坐标报红原因

如下所示 我们在引入某些依赖坐标的时候,即使点击了右上角的mavne刷新之后还是报红。 其实这是正常现象,实际上是我们的本地仓库当中没有这些依赖坐标,而idea就会通过报红来标记这些依赖来说明在我们的本地仓库是不存在的。 那有的同学就会…

ODOO17的邮件机制-系统自动推送修改密码的邮件

用户收到被要求重置密码的邮件: 我们来分析一下ODOO此邮件的工作机制: 1、邮件模板定义 2、渲染模板的函数: 3、调用此函数的机制: 当用户移除或增加了信任的设备(如电脑、手机端等),系统会自…

农业气象站:现代农业的守护者与引领者

随着科技的飞速发展,农业领域也在经历着前所未有的变革。在这一变革中,农业气象站以其独特的功能和作用,逐渐成为了现代农业的守护者与引领者。 农业气象站,顾名思义,是专门用于观测和记录农田气象要素的设施。这些气象…