当前位置: 首页 > article >正文

2025-1-10-sklearn学习(36、37) 数据集转换-无监督降维+随机投影 沙上并禽池上暝。云破月来花弄影。

文章目录

  • sklearn学习(36、37) 数据集转换-无监督降维+随机投影
  • sklearn学习(36) 数据集转换-无监督降维
    • 36.1 PCA: 主成份分析
    • 36.2 随机投影
    • 36.3 特征聚集
  • sklearn学习(37) 数据集转换-随机投影
    • 37.1 Johnson-Lindenstrauss 辅助定理
    • 37.2 高斯随机投影
    • 37.3 稀疏随机矩阵

sklearn学习(36、37) 数据集转换-无监督降维+随机投影

文章参考网站:
https://sklearn.apachecn.org/

https://scikit-learn.org/stable/

sklearn学习(36) 数据集转换-无监督降维

如果你的特征数量很多, 在监督步骤之前, 可以通过无监督的步骤来减少特征. 很多的 无监督学习 方法实现了一个名为 transform 的方法, 它可以用来降低维度. 下面我们将讨论大量使用这种模式的两个具体示例.

Pipelining 非监督数据约简和监督估计器可以链接起来。 请看 Pipeline: 链式评估器.

36.1 PCA: 主成份分析

decomposition.PCA 寻找能够捕捉原始特征的差异的特征的组合. 请参阅 分解成分中的信号(矩阵分解问题).

示例 * Faces recognition example using eigenfaces and SVMs

36.2 随机投影

模块: random_projection 提供了几种用于通过随机投影减少数据的工具. 请参阅文档的相关部分: 随机投影.

示例 * The Johnson-Lindenstrauss bound for embedding with random projections

36.3 特征聚集

cluster.FeatureAgglomeration 应用 层次聚类 将行为类似的特征分组在一起.

示例 * Feature agglomeration vs. univariate selection * Feature agglomeration

特征缩放

  • 请注意,如果功能具有明显不同的缩放或统计属性,则 cluster.FeatureAgglomeration 可能无法捕获相关特征之间的关系.使用一个 preprocessing.StandardScaler 可以在这些 设置中使用.

sklearn学习(37) 数据集转换-随机投影

sklearn.random_projection 模块实现了一个简单且高效率的计算方式来减少数据维度,通过牺牲一定的精度(作为附加变量)来加速处理时间及更小的模型尺寸。 这个模型实现了两类无结构化的随机矩阵: Gaussian random matrix 和 sparse random matrix.

随机投影矩阵的维度和分布是受控制的,所以可以保存任意两个数据集的距离。因此随机投影适用于基于距离的方法。

参考资料:

  • Sanjoy Dasgupta. 2000. Experiments with random projection. In Proceedings of the Sixteenth conference on Uncertainty in artificial intelligence (UAI‘00), Craig Boutilier and Moisés Goldszmidt (Eds.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 143-151.
  • Ella Bingham and Heikki Mannila. 2001. Random projection in dimensionality reduction: applications to image and text data. In Proceedings of the seventh ACM SIGKDD international conference on Knowledge discovery and data mining (KDD ‘01). ACM, New York, NY, USA, 245-250.

37.1 Johnson-Lindenstrauss 辅助定理

支撑随机投影效率的主要理论成果是Johnson-Lindenstrauss lemma (quoting Wikipedia):

在数学中,johnson - lindenstrauss 引理是一种将高维的点从高维到低维欧几里得空间的低失真嵌入的方案。 引理阐释了高维空间下的一小部分的点集可以内嵌到非常低维的空间,这种方式下点之间的距离几乎全部被保留。 内嵌所用到的映射至少符合 Lipschitz 条件,甚至可以被当做正交投影。

有了样本数量, sklearn.random_projection.johnson_lindenstrauss_min_dim 会保守估计随机子空间的最小大小来保证随机投影导致的变形在一定范围内:

>>> from sklearn.random_projection import johnson_lindenstrauss_min_dim
>>> johnson_lindenstrauss_min_dim(n_samples=1e6, eps=0.5)
663
>>> johnson_lindenstrauss_min_dim(n_samples=1e6, eps=[0.5, 0.1, 0.01])
array([    663,   11841, 1112658])
>>> johnson_lindenstrauss_min_dim(n_samples=[1e4, 1e5, 1e6], eps=0.1)
array([ 7894,  9868, 11841])`

http://sklearn.apachecn.org/cn/0.19.0/_images/sphx_glr_plot_johnson_lindenstrauss_bound_0011.pnghttp://sklearn.apachecn.org/cn/0.19.0/_images/sphx_glr_plot_johnson_lindenstrauss_bound_0021.png

示例:

  • 查看 The Johnson-Lindenstrauss bound for embedding with random projections 里面有Johnson-Lindenstrauss引理的理论说明和使用稀疏随机矩阵的经验验证。

参考资料:

  • Sanjoy Dasgupta and Anupam Gupta, 1999. An elementary proof of the Johnson-Lindenstrauss Lemma.

37.2 高斯随机投影

The sklearn.random_projection.GaussianRandomProjection 通过将原始输入空间投影到随机生成的矩阵(该矩阵的组件由以下分布中抽取): N ( 0 , 1 n c o m p o n e n t s ) N(0, \frac{1}{n_{components}}) N(0,ncomponents1) 降低维度。

以下小片段演示了任何使用高斯随机投影转换器:

>>> import numpy as np
>>> from sklearn import random_projection
>>> X = np.random.rand(100, 10000)
>>> transformer = random_projection.GaussianRandomProjection()
>>> X_new = transformer.fit_transform(X)
>>> X_new.shape
(100, 3947)

37.3 稀疏随机矩阵

sklearn.random_projection.SparseRandomProjection 使用稀疏随机矩阵,通过投影原始输入空间来降低维度。

稀疏矩阵可以替换高斯随机投影矩阵来保证相似的嵌入质量,且内存利用率更高、投影数据的计算更快。

如果我们定义 s = 1 / density, 随机矩阵的元素由下式抽取。
{ − s n components 1 / 2 s 0 with probability 1 − 1 / s + s n components 1 / 2 s \begin{split}\left\{ \begin{array}{c c l} -\sqrt{\frac{s}{n_{\text{components}}}} & & 1 / 2s\\ 0 &\text{with probability} & 1 - 1 / s \\ +\sqrt{\frac{s}{n_{\text{components}}}} & & 1 / 2s\\ \end{array} \right.\end{split} ncomponentss 0+ncomponentss with probability1/2s11/s1/2s
其中 n components n_{\text{components}} ncomponents 是投影后的子空间大小。 默认非零元素的浓密度设置为最小浓密度,该值由Ping Li et al.:推荐,根据公式: 1 / n features 1 / \sqrt{n_{\text{features}}} 1/nfeatures 计算。

以下小片段演示了如何使用稀疏随机投影转换器:

>>> import numpy as np
>>> from sklearn import random_projection
>>> X = np.random.rand(100,10000)
>>> transformer = random_projection.SparseRandomProjection()
>>> X_new = transformer.fit_transform(X)
>>> X_new.shape
(100, 3947)

参考资料:

  • D. Achlioptas. 2003. Database-friendly random projections: Johnson-Lindenstrauss with binary coins. Journal of Computer and System Sciences 66 (2003) 671–687
  • Ping Li, Trevor J. Hastie, and Kenneth W. Church. 2006. Very sparse random projections. In Proceedings of the 12th ACM SIGKDD international conference on Knowledge discovery and data mining (KDD ‘06). ACM, New York, NY, USA, 287-296.

http://www.kler.cn/a/488703.html

相关文章:

  • Unity + Firebase + GoogleSignIn 导入问题
  • 《机器学习》——支持向量机(SVM)
  • awr报告无法生成:常见分析手段
  • android刷机
  • 麦田物语学习笔记:背包物品选择高亮显示和动画
  • 从SS到CSS:探索网页样式设计的奥秘
  • 二手母婴商品交易系统|Java|SSM|VUE| 前后端分离
  • JSON.stringify 实现深度克隆的缺陷
  • 《庐山派K230 从入熟悉到...》按键拍照保存
  • 牛客周赛74
  • Wireshark TCP 分析标志位说明汇总
  • 【Golang 面试题】每日 3 题(二十六)
  • MiniMind - 从0训练语言模型
  • 蓝桥杯python省赛备战day2--连续求和公式应用--829连续整数求和-枚举算法刷题学习笔记2--leetcode
  • ue5 动画通知
  • JavaScript 数组拓展:方法与实例全解析
  • 安科瑞 Acrel-1000DP 分布式光伏监控系统在工业厂房分布式光伏发电项目中的应用
  • 微信小程序评分小程序ssm+论文源码调试讲解
  • linux下MySQL的数据存放
  • ISP架构方案
  • ASP.NET Core 中使用 Cookie 身份验证
  • 爬取b站评论
  • 智元机器人完成 1000 台通用具身机器人下线
  • 计算机毕业设计Python机器学习农作物健康识别系统 人工智能 图像识别 机器学习 大数据毕业设计 算法
  • Linux Snort检测
  • 工商银行devops流程一体化工具