【AI知识】有监督学习之回归任务(附线性回归代码及可视化)

1. 回归的基本概念

在机器学习的有监督学习中,回归(Regression)是一种常见的任务,它的目标是通过观察数据来建立一个模型,用一个或多个自变量来预测因变量的值。

回归分析通常用于: a.预测 ,基于已有数据,预测未知的数据,b. 解释关系,分析自变量与因变量之间的关系和影响。

回归任务举例: 根据房屋的面积、位置、房龄等信息,预测房屋的市场价格。

回归模型的类型: 线性回归(Linear Regression)、 非线性回归(Nonlinear Regression)、岭回归(Ridge Regression)等

2. 线性回归(Linear Regression)

线性回归是最基础的回归方法,它假设自变量和因变量之间存在线性关系。常见的线性回归模型有:


3. 非线性回归(Nonlinear Regression)

当自变量和因变量之间的关系不再是线性时,可使用非线性回归,适用于那些数据呈现曲线而不是直线趋势的情况。这种回归模型包含了更复杂的数学关系,例如:


4. 回归任务的评估指标

回归模型的评估指标用来衡量模型的预测能力和拟合程度。常见的评估指标有:

5. 使用 scikit-learn 库进行单变量线性回归分析

python 复制代码
# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

# 生成模拟数据
np.random.seed(42)  # 为了可复现性
X = 2 * np.random.rand(100, 1)  # 生成100个随机自变量
Y = 4 + 3 * X + np.random.randn(100, 1)  # 生成因变量(线性关系加上噪声)

# 可视化数据
plt.scatter(X, Y, color='blue', label='Data Points')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Generated Data')
plt.show()
python 复制代码
# 数据集划分:80%训练,20%测试
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=42)

# 创建线性回归模型
model = LinearRegression()

# 训练模型
model.fit(X_train, Y_train)

# 进行预测
Y_pred = model.predict(X_test)

# 打印回归系数和截距
print(f"回归系数 (β1): {model.coef_[0]}")
print(f"截距 (β0): {model.intercept_}")
#回归系数 (β1): [2.79932366]
#截距 (β0): [4.14291332]
python 复制代码
# 评估模型
mse = mean_squared_error(Y_test, Y_pred)
r2 = r2_score(Y_test, Y_pred)
print(f"均方误差 (MSE): {mse}")
print(f"决定系数 (R²): {r2}")
#均方误差 (MSE): 0.6536995137170021
#决定系数 (R²): 0.8072059636181392

# 可视化结果
plt.scatter(X_test, Y_test, color='blue', label='True Data')
plt.plot(X_test, Y_pred, color='red', label='Regression Line')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Linear Regression Model')
plt.legend()
plt.show()
相关推荐
五号厂房4 小时前
🔥 Claude Code 源码解析(四):揭秘状态管理与数据流机制
人工智能
SelectDB技术团队4 小时前
预约发布会|核心产品力首发,如何构建面向 Agent 时代的企业级数据引擎
数据库·数据仓库·人工智能·数据分析·可观测·apache doris·selectdb
qq3621967054 小时前
APK版本选择完全指南——beta/stable/arm64/x86/bundle/universal怎么选?
网络·人工智能
张飞飞飞飞飞4 小时前
多模态目标检测-LLVIP数据集处理(清洗+YOLO格式)
人工智能·深度学习·目标检测
大树884 小时前
一滴冷却液,烧掉2000万算力
大数据·运维·服务器·人工智能
醒醒该学习了!4 小时前
人工智能的核心算法基础(理论篇)
人工智能
一切皆是因缘际会4 小时前
量化阈值拆解|2026端侧AI复盘
人工智能·架构·系统架构
圣殿骑士-Khtangc4 小时前
LLM 推理加速全攻略:vLLM、TensorRT-LLM 与量化技术实战
人工智能
meilindehuzi_a4 小时前
全栈进阶:告别 Node 繁琐配置,用下一代运行时 Bun 丝滑构建 AI Agent 客户端
人工智能·llm
龙腾AI白云4 小时前
用知识图谱重构搜索引擎
人工智能·virtualenv·scikit-learn