欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 机器学习实操 第一部分 机器学习基础 第8章 降维技术

机器学习实操 第一部分 机器学习基础 第8章 降维技术

2025/5/2 15:30:04 来源:https://blog.csdn.net/qq_26226783/article/details/147634415  浏览:    关键词:机器学习实操 第一部分 机器学习基础 第8章 降维技术

机器学习实操 第一部分 机器学习基础 第8章 降维技术

内容概要

第8章探讨了降维技术,这些技术在处理高维数据时至关重要。高维数据不仅会使训练过程变得极其缓慢,还会增加找到良好解决方案的难度,这就是所谓的维度灾难问题。幸运的是,在实际问题中,通常可以通过降维技术显著减少特征数量,将难以处理的问题转化为可处理的问题。本章详细介绍了降维的主要方法(投影和流形学习),并深入探讨了三种流行的降维技术:PCA(主成分分析)、随机投影和局部线性嵌入(LLE)。通过这些技术,读者将了解如何应对维度灾难,并提升模型的训练效率和性能。
在这里插入图片描述

主要内容

  1. 维度灾难

    • 定义:高维空间中数据的行为与低维空间截然不同,导致训练实例稀疏分布,增加过拟合风险。
    • 影响:高维数据需要指数级增长的训练实例来保持相同的密度,这在实际中是不可行的。
  2. 降维的主要方法

    • 投影:通过将数据投影到低维子空间来减少维度。适用于数据在低维子空间中分布的情况。
    • 流形学习:通过建模数据所在的低维流形结构来减少维度。适用于数据在高维空间中形成低维流形的情况。
  3. PCA(主成分分析)

    • 原理:识别数据方差最大的方向(主成分),并将数据投影到这些方向上。
    • 步骤:计算主成分,选择保留方差最大的方向,投影数据。
    • 应用:用于数据压缩、可视化和预处理。
  4. 随机投影

    • 原理:通过随机线性投影将数据映射到低维空间,同时保持数据间的距离关系。
    • 优点:简单、快速、内存高效,适用于高维数据。
  5. 局部线性嵌入(LLE)

    • 原理:通过保留数据局部线性关系来展开扭曲的流形结构。
    • 步骤:识别每个实例的最近邻,构建权重矩阵,找到低维表示以保留局部关系。
    • 应用:适用于非线性数据的降维。
  6. 其他降维技术

    • MDS(多维缩放):保留实例间的距离。
    • Isomap:保留测地线距离。
    • t-SNE:用于可视化,强调相似实例的聚集。
    • LDA(线性判别分析):用于分类任务的降维。

关键代码和算法

8.1 PCA降维

from sklearn.decomposition import PCA
from sklearn.datasets import load_iris# 加载数据
iris = load_iris()
X = iris.data
y = iris.target# 应用PCA降维到2维
pca = PCA(n_components=2)
X_reduced = pca.fit_transform(X)# 输出方差解释比例
print("Explained variance ratio:", pca.explained_variance_ratio_)# 可视化降维后的数据
import matplotlib.pyplot as plt
plt.scatter(X_reduced[:, 0], X_reduced[:, 1], c=y)
plt.xlabel('PC1')
plt.ylabel('PC2')
plt.show()

8.2 随机投影降维

from sklearn.random_projection import GaussianRandomProjection
from sklearn.datasets import fetch_openml# 加载MNIST数据
mnist = fetch_openml('mnist_784', as_frame=False)
X_train, y_train = mnist.data[:60_000], mnist.target[:60_000]# 应用随机投影降维
gaussian_rnd_proj = GaussianRandomProjection(eps=0.1, random_state=42)
X_reduced = gaussian_rnd_proj.fit_transform(X_train)# 输出降维后的形状
print("Reduced shape:", X_reduced.shape)

8.3 LLE降维

from sklearn.manifold import LocallyLinearEmbedding
from sklearn.datasets import make_swiss_roll# 生成Swiss roll数据
X_swiss, t = make_swiss_roll(n_samples=1000, noise=0.2, random_state=42)# 应用LLE降维
lle = LocallyLinearEmbedding(n_components=2, n_neighbors=10, random_state=42)
X_unrolled = lle.fit_transform(X_swiss)# 可视化降维后的数据
plt.scatter(X_unrolled[:, 0], X_unrolled[:, 1], c=t)
plt.xlabel('LLE1')
plt.ylabel('LLE2')
plt.show()

精彩语录

  1. 中文:降维技术不仅加快了训练速度,降低了过拟合风险,还使得数据可视化成为可能。
    英文原文:Dimensionality reduction not only speeds up training and reduces the risk of overfitting but also makes data visualization possible.
    解释:强调了降维技术的三大优势。

  2. 中文:PCA通过识别数据方差最大的方向来选择主成分。
    英文原文:PCA identifies the directions of maximum variance in the data to select principal components.
    解释:介绍了PCA的核心思想。

  3. 中文:随机投影利用随机线性投影来保持数据间的距离关系。
    英文原文:Random projection uses random linear projections to preserve the distance relationships between data points.
    解释:描述了随机投影的工作原理。

  4. 中文:LLE通过保留数据的局部线性关系来展开流形。
    英文原文:LLE preserves local linear relationships to unroll the manifold.
    解释:介绍了LLE的基本原理。

  5. 中文:t-SNE是一种强大的可视化工具,能够将高维数据映射到二维或三维空间。
    英文原文:t-SNE is a powerful tool for visualizing high-dimensional data by reducing it to two or three dimensions.
    解释:指出了t-SNE的适用场景。

总结

通过本章的学习,读者将掌握降维技术的核心概念和应用方法。这些内容包括维度灾难的原理、降维的主要方法(投影和流形学习),以及PCA、随机投影和LLE等具体技术。降维技术不仅能够提升模型的训练效率,还能帮助发现数据中的隐藏模式,提高模型的性能和可解释性。这些技术在处理高维数据时尤为重要,是机器学习中的关键工具。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词