【人工智能学习】线性回归模型使用Python实现简单的线性回归

embedded/2024/12/29 1:52:39/

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,
忍不住分享一下给大家。点击跳转到网站

学习总结

1、掌握 JAVA入门到进阶知识(持续写作中……
2、学会Oracle数据库入门到入土用法(创作中……
3、手把手教你开发炫酷的vbs脚本制作(完善中……
4、牛逼哄哄的 IDEA编程利器技巧(编写中……
5、面经吐血整理的 面试技巧(更新中……

在这里插入图片描述使用Python实现简单的线性回归

  1. 准备工作
    在开始编写代码之前,请确保你的Python环境中已经安装了必要的库。对于线性回归,我们将使用numpy(用于数值计算)和scikit-learn(一个流行的机器学习库)。

你可以使用以下命令安装这些库:

bash
pip install numpy scikit-learn
2. 导入库
首先,导入我们需要的库:

python
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt
3. 创建数据集
为了演示线性回归,我们将创建一个简单的数据集。假设我们有一个自变量X(例如,房屋面积)和一个因变量y(例如,房屋价格)。

python

创建数据集

X = np.array([[1], [2], [3], [4], [5]]) # 自变量(房屋面积),注意要二维数组
y = np.array([1, 3, 2, 3, 5]) # 因变量(房屋价格)
4. 划分训练集和测试集
为了评估模型的性能,我们将数据集划分为训练集和测试集。

python

划分训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
这里,test_size=0.2表示20%的数据将用于测试,random_state=42用于确保每次划分的结果相同,以便复现结果。

  1. 训练模型
    接下来,我们使用训练集来训练线性回归模型。

在这里插入图片描述

python

创建线性回归模型

model = LinearRegression()

训练模型

model.fit(X_train, y_train)
6. 预测和评估
现在,我们可以使用测试集来评估模型的性能。

python

使用测试集进行预测

y_pred = model.predict(X_test)

评估模型性能

mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

print(f"Mean Squared Error: {mse}“)
print(f"R^2 Score: {r2}”)
这里,我们使用了均方误差(MSE)和R²分数来评估模型的性能。MSE越小表示模型的预测越准确,R²分数越接近1表示模型的拟合效果越好。

  1. 可视化
    最后,我们可以将训练数据和拟合的直线可视化出来。

python

可视化

plt.scatter(X, y, color=‘blue’, label=‘Data’)
plt.plot(X_train, model.predict(X_train), color=‘red’, linewidth=2, label=‘Regression Line (Train)’)
plt.xlabel(‘House Area’)
plt.ylabel(‘House Price’)
plt.legend()
plt.show()
注意:由于测试集通常用于评估模型在未见过的数据上的性能,因此在实际应用中,我们不会将测试集的数据点绘制在训练数据的可视化图中。但在这里,为了演示方便,我们使用了整个数据集X和y。

结论
通过上面的步骤,我们实现了一个简单的线性回归模型,并使用Python代码进行了演示。这个示例展示了从准备数据、划分数据集、训练模型到评估性能和可视化的整个过程。希望这个示例能帮助你更好地理解线性回归算法,并为进一步学习更复杂的人工智能算法打下基础。

请注意,这个示例是一个非常基本的线性回归实现,实际应用中可能需要更多的数据预处理、特征工程和模型调优步骤。此外,对于更复杂的问题,可能需要使用更高级的机器学习算法或深度学习模型。

往期文章

 第一章:日常_JAVA_面试题集(含答案)
 第二章:日常_JAVA_面试题集(含答案)
 平安壹钱包JAVA面试官:请你说一下Mybatis的实现原理
 Java必备面试-热点-热门问题精华核心总结-推荐
 往期文章大全……
在这里插入图片描述

一键三连 一键三连 一键三连~

更多内容,点这里❤


http://www.ppmy.cn/embedded/149609.html

相关文章

STM32开发笔记123:使用STM32CubeProgrammer下载程序

文章目录 前言一、STM32CubeProgrammer二、一键下载电路三、STM32CubeProgrammer的使用1、配置2、连接3、擦除芯片4、下载程序(1)在STM32CubeIDE中编译出HEX文件(2)打开文件并下载(3)下载成功后,显示如下信息前言 本文介绍使用STM32CubeProgrammer下载程序到STM32微控制…

[阅读笔记]GPU-Util指标的重新理解

主要来自于文章 搞懂 NVIDIA GPU 性能指标 很容易弄混的一个概念: Utilization vs Saturation 这篇文章简单的来说,就是纠正我们对nvidia-smi中的GPU-Util这一个指标的直观理解。 在直观的理解中,这个指标应该表示GPU计算资源的饱和度&…

Linux增加回收站功能

功能简介 rm命令是非常危险的命令,为了防止用户误删文件,所以我们在执行rm命令时将文件添加到回收站,防止误删文件。 相关环境变量 名称描述TRASH_DIR 回收站目录,默认为/Recycle_Bin 文件命名规则 文件名生成格式为 原始文件名…

闲谭Scala(3)--使用IDEA开发Scala

1. 背景 广阔天地、大有作为的青年,怎么可能仅仅满足于命令行。 高端大气集成开发环境IDEA必须顶上,提高学习、工作效率。 开整。 2. 步骤 2.1 创建工程 打开IDEA,依次File-New-Project…,不好意思我的是中文版:…

16×16LED点阵字符滚动显示-基于译码器与移位寄存器(设计报告+仿真+单片机源程序)

资料下载地址:​1616LED点阵字符滚动显示-基于译码器与移位寄存器(设计报告仿真单片机源程序)​ 1、功能介绍 设计1616点阵LED显示器的驱动电路,并编写程序实现在1616点阵LED显示器上的字符滚动显示。1616点阵LED显示器可由4块88点阵LED显示器构成。可采…

vulnhub-Raven2靶机的测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、信息搜集 2、Getshell 3、提权 四、结论 一、测试环境 1、系统环境 渗透机:kali2021.1(192.168.119.129) 靶 机:3.16.0-6-amd64(192.168.119.128) 2、使用工…

第十五章 C++ 数组

C 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。 数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声…

PL/SQL语言的并发编程

标题:深入探讨PL/SQL语言中的并发编程 一、引言 在数据库应用程序开发中,多用户同时访问和操作数据的情况非常常见,这就要求数据库系统具备处理并发操作的能力。而Oracle数据库的PL/SQL语言,以其强大的并发处理能力,…