- 机器学习基础
- ML - 首页
- ML - 简介
- ML - 入门
- ML - 基本概念
- ML - 生态系统
- ML - Python 库
- ML - 应用
- ML - 生命周期
- ML - 必备技能
- ML - 实现
- ML - 挑战与常见问题
- ML - 局限性
- ML - 真实案例
- ML - 数据结构
- ML - 数学基础
- ML - 人工智能
- ML - 神经网络
- ML - 深度学习
- ML - 获取数据集
- ML - 分类数据
- ML - 数据加载
- ML - 数据理解
- ML - 数据准备
- ML - 模型
- ML - 监督学习
- ML - 无监督学习
- ML - 半监督学习
- ML - 强化学习
- ML - 监督学习 vs. 无监督学习
- 机器学习数据可视化
- ML - 数据可视化
- ML - 直方图
- ML - 密度图
- ML - 箱线图
- ML - 相关矩阵图
- ML - 散点矩阵图
- 机器学习统计学
- ML - 统计学
- ML - 均值、中位数、众数
- ML - 标准差
- ML - 百分位数
- ML - 数据分布
- ML - 偏度和峰度
- ML - 偏差和方差
- ML - 假设
- 机器学习中的回归分析
- ML - 回归分析
- ML - 线性回归
- ML - 简单线性回归
- ML - 多元线性回归
- ML - 多项式回归
- 机器学习中的分类算法
- ML - 分类算法
- ML - 逻辑回归
- ML - K近邻算法 (KNN)
- ML - 朴素贝叶斯算法
- ML - 决策树算法
- ML - 支持向量机
- ML - 随机森林
- ML - 混淆矩阵
- ML - 随机梯度下降
- 机器学习中的聚类算法
- ML - 聚类算法
- ML - 基于中心的聚类
- ML - K均值聚类
- ML - K中心点聚类
- ML - 均值漂移聚类
- ML - 层次聚类
- ML - 基于密度的聚类
- ML - DBSCAN 聚类
- ML - OPTICS 聚类
- ML - HDBSCAN 聚类
- ML - BIRCH 聚类
- ML - 亲和传播
- ML - 基于分布的聚类
- ML - 凝聚层次聚类
- 机器学习中的降维
- ML - 降维
- ML - 特征选择
- ML - 特征提取
- ML - 向后消除法
- ML - 向前特征构建
- ML - 高相关性过滤器
- ML - 低方差过滤器
- ML - 缺失值比率
- ML - 主成分分析
- 强化学习
- ML - 强化学习算法
- ML - 利用与探索
- ML - Q学习
- ML - REINFORCE 算法
- ML - SARSA 强化学习
- ML - 演员-评论家方法
- 深度强化学习
- ML - 深度强化学习
- 量子机器学习
- ML - 量子机器学习
- ML - 使用 Python 的量子机器学习
- 机器学习杂项
- ML - 性能指标
- ML - 自动化工作流程
- ML - 提升模型性能
- ML - 梯度提升
- ML - 自举汇聚 (Bagging)
- ML - 交叉验证
- ML - AUC-ROC 曲线
- ML - 网格搜索
- ML - 数据缩放
- ML - 训练和测试
- ML - 关联规则
- ML - Apriori 算法
- ML - 高斯判别分析
- ML - 成本函数
- ML - 贝叶斯定理
- ML - 精度和召回率
- ML - 对抗性
- ML - 堆叠
- ML - 迭代周期 (Epoch)
- ML - 感知器
- ML - 正则化
- ML - 过拟合
- ML - P值
- ML - 熵
- ML - MLOps
- ML - 数据泄露
- ML - 机器学习的货币化
- ML - 数据类型
- 机器学习 - 资源
- ML - 快速指南
- ML - 速查表
- ML - 面试问题
- ML - 有用资源
- ML - 讨论
机器学习 - 迭代周期 (Epoch)
在机器学习中,迭代周期(Epoch)指的是在模型训练过程中完整遍历整个训练数据集的一次迭代。简单来说,就是在训练阶段算法遍历整个数据集的次数。
在训练过程中,算法对训练数据进行预测,计算损失,并更新模型参数以减少损失。目标是通过最小化损失函数来优化模型的性能。当模型对所有训练数据都进行了预测后,一个迭代周期就完成了。
迭代周期是训练过程中的一个重要参数,因为它会显著影响模型的性能。迭代周期设置得太低会导致模型欠拟合,而设置得太高则会导致过拟合。
欠拟合是指模型未能捕捉数据中的潜在模式,在训练集和测试集上的表现都很差。当模型过于简单或训练不足时就会发生这种情况。在这种情况下,增加迭代周期可以帮助模型从数据中学习更多信息并提高其性能。
另一方面,过拟合是指模型学习了训练数据中的噪声,在训练集上表现良好,但在测试集上表现很差。当模型过于复杂或训练迭代周期过多时就会发生这种情况。为了避免过拟合,必须限制迭代周期的数量,并使用其他正则化技术,例如提前停止或 dropout。
Python 实现
在 Python 中,迭代周期的数量是在机器学习模型的训练循环中指定的。例如,当使用 Keras 库训练神经网络时,可以使用 "fit" 方法中的 "epochs" 参数设置迭代周期的数量。
示例
# import necessary libraries import numpy as np from keras.models import Sequential from keras.layers import Dense # generate some random data for training X_train = np.random.rand(100, 10) y_train = np.random.randint(0, 2, size=(100,)) # create a neural network model model = Sequential() model.add(Dense(16, input_dim=10, activation='relu')) model.add(Dense(1, activation='sigmoid')) # compile the model with binary cross-entropy loss and adam optimizer model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) # train the model with 10 epochs model.fit(X_train, y_train, epochs=10)
在这个例子中,我们生成一些随机训练数据,并创建一个简单的神经网络模型,该模型包含一个输入层、一个隐藏层和一个输出层。我们使用二元交叉熵损失和 Adam 优化器编译模型,并在 "fit" 方法中将迭代周期数设置为 10。
在训练过程中,模型对训练数据进行预测,计算损失,并更新权重以最小化损失。完成 10 个迭代周期后,模型被认为已完成训练,我们可以使用它对新的、未见过的数据进行预测。
输出
执行此代码时,将产生类似这样的输出:
Epoch 1/10 4/4 [==============================] - 31s 2ms/step - loss: 0.7012 - accuracy: 0.4976 Epoch 2/10 4/4 [==============================] - 0s 1ms/step - loss: 0.6995 - accuracy: 0.4390 Epoch 3/10 4/4 [==============================] - 0s 1ms/step - loss: 0.6921 - accuracy: 0.5123 Epoch 4/10 4/4 [==============================] - 0s 1ms/step - loss: 0.6778 - accuracy: 0.5474 Epoch 5/10 4/4 [==============================] - 0s 1ms/step - loss: 0.6819 - accuracy: 0.5542 Epoch 6/10 4/4 [==============================] - 0s 1ms/step - loss: 0.6795 - accuracy: 0.5377 Epoch 7/10 4/4 [==============================] - 0s 1ms/step - loss: 0.6840 - accuracy: 0.5303 Epoch 8/10 4/4 [==============================] - 0s 1ms/step - loss: 0.6795 - accuracy: 0.5554 Epoch 9/10 4/4 [==============================] - 0s 1ms/step - loss: 0.6706 - accuracy: 0.5545 Epoch 10/10 4/4 [==============================] - 0s 1ms/step - loss: 0.6722 - accuracy: 0.5556
广告