- 机器学习基础
- 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 - 轮
- ML - 感知器
- ML - 正则化
- ML - 过拟合
- ML - P值
- ML - 熵
- ML - MLOps
- ML - 数据泄露
- ML - 机器学习的商业化
- ML - 数据类型
- 机器学习 - 资源
- ML - 快速指南
- ML - 速查表
- ML - 面试题
- ML - 有用资源
- ML - 讨论
机器学习 - 随机梯度下降
梯度下降是一种流行的优化算法,用于最小化机器学习模型的成本函数。它的工作原理是迭代地调整模型参数,以最小化预测输出与实际输出之间的差异。该算法通过计算成本函数相对于模型参数的梯度,然后沿梯度的反方向调整参数来工作。
随机梯度下降是梯度下降的一种变体,它为每个训练样本更新参数,而不是在评估整个数据集后更新参数。这意味着 SGD 只使用单个训练样本计算成本函数的梯度,而不是使用整个数据集。这种方法允许算法更快收敛,并且需要更少的内存来存储数据。
随机梯度下降算法的工作原理
随机梯度下降通过从数据集中随机选择单个训练样本并使用它来更新模型参数来工作。此过程会重复进行固定数量的轮次,或者直到模型收敛到成本函数的最小值。
以下是随机梯度下降算法的工作原理:
将模型参数初始化为随机值。
对于每个轮次,随机打乱训练数据。
对于每个训练样本:
计算成本函数相对于模型参数的梯度。
沿梯度的反方向更新模型参数。
重复直到收敛
随机梯度下降和普通梯度下降之间的主要区别在于梯度的计算方式和模型参数的更新方式。在随机梯度下降中,使用单个训练样本计算梯度,而在梯度下降中,使用整个数据集计算梯度。
在 Python 中实现随机梯度下降
让我们来看一个如何在 Python 中实现随机梯度下降的例子。我们将使用 scikit-learn 库在 Iris 数据集上实现该算法,这是一个用于分类任务的流行数据集。在这个例子中,我们将使用它的两个特征(萼片宽度和萼片长度)来预测鸢尾花的种类:
示例
# Import required libraries import sklearn import numpy as np from sklearn import datasets from sklearn.linear_model import SGDClassifier # Loading Iris flower dataset iris = datasets.load_iris() X_data, y_data = iris.data, iris.target # Dividing the dataset into training and testing dataset from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler # Getting the Iris dataset with only the first two attributes X, y = X_data[:,:2], y_data # Split the dataset into a training and a testing set(20 percent) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=1) # Standarize the features scaler = StandardScaler().fit(X_train) X_train = scaler.transform(X_train) X_test = scaler.transform(X_test) # create the linear model SGDclassifier clfmodel_SGD = SGDClassifier(alpha=0.001, max_iter=200) # Train the classifier using fit() function clfmodel_SGD.fit(X_train, y_train) # Evaluate the result from sklearn import metrics y_train_pred = clfmodel_SGD.predict(X_train) print ("\nThe Accuracy of SGD classifier is:", metrics.accuracy_score(y_train, y_train_pred)*100)
输出
运行此代码时,将产生以下输出:
The Accuracy of SGD classifier is: 77.5
广告