【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()
相关推荐
AngelPP3 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年3 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼3 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS3 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区4 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈5 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang5 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx
shengjk16 小时前
NanoClaw 深度剖析:一个"AI 原生"架构的个人助手是如何运转的?
人工智能
西门老铁8 小时前
🦞OpenClaw 让 MacMini 脱销了,而我拿出了6年陈的安卓机
人工智能