基础概念
1. AI, ML, DL 关系
AI (人工智能) 是顶层概念,旨在让机器模拟人类智能。ML (机器学习) 是实现 AI 的核心方法,通过算法从数据中学习。DL (深度学习) 是 ML 的一个分支,使用多层神经网络处理复杂任务。关系为:AI ⊃ ML ⊃ DL。
2. 常用数据分析库
- Pandas: 数据处理与分析 (DataFrame)。
- NumPy: 科学计算 (多维数组 ndarray)。
- Matplotlib/Seaborn: 数据可视化。
- Scikit-learn: 机器学习算法库。
- OpenCV: 计算机视觉。
- jieba: 中文分词。
# 读取CSV
import pandas as pd
data = pd.read_csv('file.csv')
3. 训练集、验证集、测试集
三者应互不重叠。训练集用于模型学习参数;验证集用于调整超参数和模型选择(如调 K 值);测试集用于最终评估模型的泛化能力,只在最后用一次。
4. 拟合与泛化能力
拟合指模型学习训练数据的过程。欠拟合是模型太简单,训练和测试误差都高;过拟合是模型太复杂,在训练集上表现好,但在测试集上差。泛化能力指模型对未见过的新数据的预测能力,是衡量模型好坏的关键。
5. 机器学习方法分类
- 监督学习: 使用带标签的数据进行训练,用于分类和回归。算法:KNN, SVM, 决策树。
- 非监督学习: 处理无标签数据,发现数据结构。算法:K-Means, PCA。
- 半监督学习: 结合少量有标签和大量无标签数据。
- 强化学习: 通过与环境交互和奖励机制来学习最优策略。算法:Q-learning。
模型评估
1. 常用性能指标
分类任务:
- 准确率 (Accuracy): 适合类别均衡数据。
- 精确率 (Precision): 预测为正中实际为正的比例。
- 召回率 (Recall): 实际为正中预测为正的比例。
- F1 分数: 精确率和召回率的调和平均值。
- 混淆矩阵: 直观展示各类别预测情况。
- ROC 曲线与 AUC 值: 评估分类器整体性能。
回归任务:
- MSE (均方误差): 预测值与真实值差的平方的均值。
- RMSE (均方根误差): MSE 的平方根。
- MAE (平均绝对误差): 预测值与真实值差的绝对值的均值。
- R²分数: 衡量模型拟合优度,越接近 1 越好。
聚类任务:
- 轮廓系数: 值越接近 1,聚类效果越好。
- Davies-Bouldin / Calinski-Harabasz 指数。
2. 评估方法
- 交叉验证: (如 K 折交叉验证) 多次划分数据集评估模型稳定性。
- 留出法: 简单划分为训练集和测试集。
- 自助法: 有放回抽样,适用于小数据集。
核心算法与流程
1. KNN (K-最近邻)
思想: “物以类聚”,一个样本的类别由其最近的 K 个邻居的类别投票决定。
流程: ①数据准备与标准化 → ②选择 K 值 → ③计算新样本与所有训练样本的距离 → ④找出最近的 K 个邻居 → ⑤投票决定类别 → ⑥评估模型。
2. K-Means 聚类
思想: 将数据划分为 K 个簇,使簇内点间距离小,簇间距离大。
流程: ①随机选 K 个初始质心 → ②将各样本分配到最近的质心簇 → ③重新计算每个簇的均值作为新质心 → ④重复②和③直到质心不再变化。
优缺点: 优点是简单高效;缺点是需预设 K 值,对初始质心和噪声敏感。
3. 回归算法 (以线性回归/岭回归为例)
思想: 预测连续值,建立输入特征 X 与输出目标 y 的函数关系。
流程: ①准备数据 (X, y) 并划分 → ②数据预处理 (如标准化) → ③选择并训练模型 (model.fit()
) → ④预测 (model.predict()
) → ⑤评估 (MSE, R²)。
# 岭回归示例
from sklearn.linear_model import Ridge
# ... 数据准备和标准化 ...
model = Ridge(alpha=1.0) # alpha为正则化强度
model.fit(X_train_scaled, y_train)
y_pred = model.predict(X_test_scaled)
4. 支持向量机 (SVC)
思想: 在特征空间中寻找一个能将不同类别样本最大间隔分开的超平面。
# SVC 使用示例
from sklearn.svm import SVC
# ... 数据准备和标准化 ...
# kernel常用'rbf','linear','poly'
model = SVC(kernel='rbf', C=1.0)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
5. Scikit-learn 标准流程
①导入库与模型 → ②加载并划分数据 (train_test_split
) → ③特征预处理 (如StandardScaler
) → ④创建模型实例 → ⑤训练模型 (model.fit()
) → ⑥预测
(model.predict()
) → ⑦评估模型 (accuracy_score
等)。
神经网络参数计算
1. 全连接层
参数量 = (输入神经元数 * 输出神经元数) + 输出神经元数
示例: `Dense(256, input_shape=(625,))`
参数 = (625 * 256) + 256 = 160,256
2. 卷积层
参数量 = (卷积核宽 * 卷积核高 * 输入通道数 + 1) * 卷积核个数(输出通道数)
示例: `Conv2D(16, (5,5), input_shape=(64,64,3))`
参数 = (5 * 5 * 3 + 1) * 16 = 1,216