《机器学习与深度学习》入门

1.🚀 Scikit-learn入门与线性回归实战指南

流程图:

python 复制代码
flowchart TD
A[Scikit-learn入门与线性回归实战] --> B[环境准备与安装]
A --> C[机器学习核心流程理解]
A --> D[线性回归模型实战]
A --> E[模型评估与结果解读]

B --> B1["安装Scikit-learn库<br>pip install scikit-learn"]
B --> B2["验证安装<br>import sklearn"]

C --> C1["数据加载与预处理"]
C --> C2["数据集划分"]
C --> C3["模型训练与评估"]

D --> D1["选择线性回归算法"]
D --> D2["训练模型"]
D --> D3["进行预测"]

E --> E1["计算MSE均方误差"]
E --> E2["计算R²决定系数"]
E --> E3["结果可视化"]

📦 1.1 环境准备与Scikit-learn安装

核心目标​:成功安装Scikit-learn库并验证安装。

1.1.1 安装Scikit-learn

  • 确保你的Conda虚拟环境(如ai_env)是激活状态。
  • 在终端中运行以下命令使用pip安装
bash 复制代码
# 使用pip安装,国内用户可添加清华源加速下载
pip install scikit-learn -i https://pypi.tuna.tsinghua.edu.cn/simple

# 或者使用conda安装(如果你更习惯conda)
# conda install scikit-learn

1.1.2 验证安装

安装完成后,在终端中启动Python解释器,输入以下命令

python 复制代码
import sklearn
print(sklearn.__version__)  # 输出安装的scikit-learn版本号

1.1.3 验收标准

  • ✅ 终端执行安装命令无报错。
  • ✅ 能成功导入sklearn库并打印出版本号。

🔄 1.2 理解机器学习流程与数据准备

核心目标​:理解机器学习的基本流程,并为线性回归模型准备数据。

1.2.1 机器学习基本流程

Scikit-learn中的机器学习工作流通常遵循以下步骤,理解它们对你后续的学习至关重要:

  • 数据加载与预处理:获取数据,并进行清洗、归一化、编码等操作。
  • 划分训练集/测试集:将数据集分为两部分,一部分用于训练模型,另一部分用于测试模型性能。
  • 选择模型:根据任务选择合适的算法。
  • 训练模型:使用训练数据来拟合模型。
  • 评估模型:使用测试数据评估模型的性能

1.2.2 加载与准备数据

创建一个新的Python脚本(如linear_regression_demo.py),使用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

# 加载内置的糖尿病数据集(这是一个常用的回归数据集)
from sklearn.datasets import load_diabetes
diabetes = load_diabetes()

# 查看数据集描述(可选,但有助于理解数据)
# print(diabetes.DESCR)

# 指定特征(X)和目标变量(y)
X = diabetes.data  # 所有特征
y = diabetes.target  # 目标变量:糖尿病指数

# 将数据划分为训练集和测试集[7,8](@ref)
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 确保每次分割的结果一致,便于复现结果

1.2.3 验收标准

  • ✅ 能清晰描述机器学习流程中的关键步骤。
  • ✅ 成功加载数据集并将其划分为训练集和测试集。

🤖 1.3 模型训练、评估与实战

核心目标​:训练你的第一个线性回归模型,并进行预测和评估。

1.3.1 训练线性回归模型

在同一个脚本中继续添加以下代码:

python 复制代码
# 创建线性回归模型对象
model = LinearRegression()

# 使用训练数据训练模型[6,8](@ref)
model.fit(X_train, y_train)

# 使用训练好的模型对测试集进行预测[6,8](@ref)
y_pred = model.predict(X_test)

1.3.2 评估模型性能

继续添加评估代码:

python 复制代码
# 计算均方误差(MSE)[9,11](@ref)
mse = mean_squared_error(y_test, y_pred)
print(f"均方误差(MSE): {mse:.2f}")

# 计算决定系数(R²分数)[9,11](@ref)
r2 = r2_score(y_test, y_pred)
print(f"决定系数(R²分数): {r2:.4f}")

# (可选)输出模型系数和截距,理解模型
print(f"模型系数: {model.coef_}")
print(f"模型截距: {model.intercept_}")

1.3.3 结果可视化

为了更直观地理解预测结果,可以绘制真实值与预测值的散点图:

python 复制代码
# 绘制真实值与预测值的散点图
plt.figure(figsize=(8, 6))
plt.scatter(y_test, y_pred, alpha=0.5)
plt.xlabel("真实值")
plt.ylabel("预测值")
plt.title("线性回归预测结果:真实值 vs 预测值")

# 添加理想拟合线(y=x)
min_val = min(y_test.min(), y_pred.min())
max_val = max(y_test.max(), y_pred.max())
plt.plot([min_val, max_val], [min_val, max_val], color='red', linestyle='--')

plt.tight_layout()
plt.show()

1.3.4验收标准

  • ✅ 成功训练线性回归模型并对测试集进行预测。
  • ✅ 计算并输出了MSE和R²分数。对于糖尿病数据集,R²分数通常在0.3到0.5之间,这属于正常范围。
  • ✅ (可选)成功绘制了真实值与预测值的对比图。
相关推荐
说私域5 分钟前
开源链动2+1模式、AI智能名片与S2B2C商城小程序:社群经济的数字化重构路径
人工智能·小程序·开源
lingchen19066 分钟前
卷积神经网络中的卷积运算原理
深度学习·计算机视觉·cnn
rengang668 分钟前
智能化的重构建议:大模型分析代码结构,提出可读性和性能优化建议
人工智能·性能优化·重构·ai编程
灵遁者书籍作品17 分钟前
语言的拓扑学约束公理:语言对实在的描述具有拓扑不变量——某些真理必须通过悖论、沉默或隐喻表达
人工智能·计算机视觉
一尘之中18 分钟前
觉醒的拓扑学:在量子纠缠与神经幻象中重构现实认知
人工智能·重构
金宗汉18 分钟前
《宇宙递归拓扑学:基于自指性与拓扑流形的无限逼近模型》
大数据·人工智能·笔记·算法·观察者模式
Joy T43 分钟前
海南蓝碳:生态财富与科技驱动的新未来
大数据·人工智能·红树林·海南省·生态区建设
N0nename1 小时前
TR3--Transformer之pytorch复现
人工智能·pytorch·python
北京耐用通信1 小时前
电力自动化新突破:Modbus如何变身Profinet?智能仪表连接的终极解决方案
人工智能·物联网·网络安全·自动化·信息与通信
MYX_3092 小时前
第七章 完整的模型训练
pytorch·python·深度学习·学习