掘金 人工智能 04月29日 09:22
开发也能看懂的大模型:降维和度量学习
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入探讨了数据降维和度量学习,这两个在数据分析和机器学习中至关重要的概念。文章详细介绍了降维的目的、常见方法(如PCA、LDA、t-SNE),以及度量学习的核心思想和应用,包括k近邻分类。通过实例和代码,帮助读者理解如何在实际应用中结合使用这两种技术,以优化数据处理和模型性能。

💡降维旨在将高维数据映射到低维空间,核心目标是简化数据表示、降低计算复杂度并去除冗余特征。常见的降维方法包括主成分分析(PCA)、线性判别分析(LDA)和t-SNE,它们各有优缺点,适用于不同的数据类型和应用场景。

📏度量学习的目标是学习合适的距离函数,以更好地反映数据的语义关系,使得相似样本的距离更近,不同样本的距离更远。欧几里得距离、马氏距离和对比损失是常用的度量学习方法。

🤝降维与度量学习可以结合使用,降维可以为度量学习提供更简单的表示,而度量学习可以增强降维效果。例如,在k近邻分类中,降维后的数据可以更容易地应用于度量学习,从而提升分类性能。

降维与度量学习是数据分析与机器学习中的两个重要主题,主要用于高维数据处理、特征选择以及数据关系的建模。


一、降维

1. 什么是降维?

降维是将高维数据映射到低维空间的过程,同时尽量保持数据的主要信息和结构。


2. 常见降维方法

(1)主成分分析(PCA)

通过线性变换将数据投影到方差最大的方向上,找到信息量最大的低维子空间。

示例代码

from sklearn.decomposition import PCAimport numpy as np# 示例数据X = np.random.rand(100, 5)  # 100个样本,5个特征# PCA降维到2维pca = PCA(n_components=2)X_reduced = pca.fit_transform(X)print("原始维度:", X.shape)print("降维后:", X_reduced.shape)

(2)线性判别分析(LDA)

利用标签信息,通过最大化类间方差与类内方差的比值找到最优投影方向。

(3)t-SNE(t-分布随机邻域嵌入)

一种非线性降维方法,适合将高维数据映射到 2D 或 3D,用于可视化。


3. 降维中的注意事项

    信息损失

      降维可能导致部分特征丢失。在选择降维方法时需要权衡精度与效率。

    维度诅咒

      高维数据中的距离度量和统计特性可能失效。降维可以缓解这一问题。

    特征选择 vs 特征提取

      特征选择:选择部分原始特征。特征提取:生成新的低维特征。

二、度量学习

1. 什么是度量学习?

度量学习是一种学习合适的距离函数的技术,以更好地反映数据的语义关系。


2. 常见方法

(1)欧几里得距离(默认度量)

直接计算样本在特征空间的几何距离。

(2)马氏距离

衡量样本之间的相似性,考虑到数据分布的协方差结构。

(3)对比损失(Contrastive Loss)

用于学习嵌入空间中样本间的距离关系。

3. 结合度量学习的应用

(1)k 近邻分类(kNN)

kNN 默认使用欧几里得距离,通过度量学习 可以学习 自定义距离提升分类性能。

1. KNN 的基本步骤

    确定距离度量

      计算待分类样本与训练集中每个样本之间的距离。

      常见的距离度量方法:

        欧几里得距离曼哈顿距离马氏距离自定义距离

    选择最近的 K 个邻居

      根据距离从小到大排序,选择 K 个最近的邻居。

    投票或加权

      分类任务:邻居中占多数的类别作为预测结果。回归任务:邻居的平均值或加权平均值作为预测值。

2. 举例说明

假设有以下样本数据:

训练集

样本编号特征 X1特征 X2类别
A1.02.00
B2.03.00
C3.03.01
D6.05.01
E7.08.01

测试样本

特征为 (4.0,4.0)

预测过程

    计算距离(使用欧几里得距离):

    找到最近的 5 个邻居

      最近邻居:C(1.41),B(2.24),D(2.24),A(3.61),E(5.0)。

    统计类别

      类别 0:2 次(A, B)。类别 1:3 次(C, D, E)。

    预测结果

      投票多数的类别是 1,因此测试样本的预测类别为 1

示例代码

from sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.neighbors import KNeighborsClassifier# 加载数据集data = load_iris()X, y = data.data, data.target# 数据预处理scaler = StandardScaler()X = scaler.fit_transform(X)# 划分训练集和测试集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 创建 KNN 分类器knn = KNeighborsClassifier(n_neighbors=5)knn.fit(X_train, y_train)# 预测y_pred = knn.predict(X_test)print("测试集准确率:", knn.score(X_test, y_test))

三、降维与度量学习的关系

    降维为度量学习提供基础

      降维可以将高维数据映射到低维空间,为后续距离计算或度量学习提供更简单的表示。

    度量学习增强降维效果

      通过学习更合适的距离函数,使降维后的空间结构更接近语义关系。

总结

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

降维 度量学习 PCA k近邻
相关文章