机器学习第十章-降维与度量学习

目录

10.1k近邻学习

10.2低维嵌入

10.3主成分分析

10.4核化线性降维

10.5流形学习

10.5.1等度量学习

10.5.2局部线性嵌入

10.6度量学习


10.1k近邻学习

        K近邻学习是一种简单的监督学习算法,用于分类和回归任务。其基本步骤如下:

  1. 训练阶段:存储训练数据及其标签,没有显式的训练过程。

  2. 预测阶段

    • 对于每个待预测的数据点,计算它与所有训练数据点的距离。
    • 选择距离最近的K个邻居。
    • 对这些K个邻居的标签进行投票(分类)或计算均值(回归),得到最终的预测结果。
        给定测试样本 x,若其最近邻样本为z 则最近邻分类器出错的概率就是x与z类别标记不同的概率,即:                        P(e r r)=1-\sum_{c \in \mathcal{Y}} P(c \mid \boldsymbol{x}) P(c \mid \boldsymbol{z}) \text {. }        

10.2低维嵌入

        在高维情形下出现的数据样本稀疏、 距离计算困难等问是所有机器学习方法共同面的严重障碍, 被称为" 维数灾难"。缓解维数灾难的一个重要途径是降维"多维缩放" (  MDS) 经典的降维方法 ,下面做个简单的介绍:

步骤如下:

  1. 计算距离矩阵:计算数据点之间的相似度或距离,通常使用欧氏距离或其他度量方式,得到一个距离矩阵。

  2. 中心化距离矩阵:通过对距离矩阵进行中心化,得到一个双中心化的矩阵,通常用来消除均值影响。计算方法涉及对距离矩阵进行矩阵变换。

  3. 特征分解:对中心化的距离矩阵进行特征值分解,得到特征值和特征向量。

  4. 选择维度:根据需要选择前k个最大的特征值及其对应的特征向量。k是目标低维空间的维度。

  5. 构建低维坐标:利用选择的特征向量和特征值构建低维坐标,得到数据点在低维空间的表示。

  6. 可视化与分析:将低维数据可视化,用于进一步分析数据的结构和模式。

下面是关于MDS算法的实验代码及分析结果:

        

import numpy as np
import matplotlib.pyplot as plt
from sklearn.manifold import MDS
from sklearn.datasets import load_iris
from sklearn.metrics import pairwise_distances

# 加载示例数据
data = load_iris()
X = data.data
labels = data.target

# 计算距离矩阵
dist_matrix = pairwise_distances(X)

# 应用 MDS
mds = MDS(n_components=2, dissimilarity='precomputed', random_state=42)
X_mds = mds.fit_transform(dist_matrix)

# 结果可视化
plt.figure(figsize=(8, 6))
scatter = plt.scatter(X_mds[:, 0], X_mds[:, 1], c=labels, cmap='viridis', edgecolor='k', s=50)
plt.colorbar(scatter, label='Class Label')
plt.title('MDS Projection of Iris Dataset')
plt.xlabel('Dimension 1')
plt.ylabel('Dimension 2')
plt.show()

# 输出分析结果
print("Explained stress:", mds.stress_)
分析:
  1. 降维可视化

    散点图展示了通过 MDS 降维得到的结果。不同的颜色表示不同的鸢尾花品种(类别),帮助我们观察降维后的数据结构和类别分布。
  2. 解释的应力(Stress)

    mds.stress_ 输出了应力值,这是衡量低维空间距离与原始距离矩阵一致性的指标。较低的应力值表示更好的维度缩放效果。

距离矩阵:通过 pairwise_distances 计算所有数据点对之间的距离。

MDS应用:将距离矩阵作为输入,降维到2维空间。

结果可视化:帮助直观理解数据在低维空间的分布情况。

        该代码通过 MDS 将高维数据降维至二维,并可视化了不同类别的数据点,以便分析数据在低维空间中的关系和结构。

实验结果:

10.3主成分分析

        主成分分析 (PCA)是最常用的一种降维方法,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值