- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 truncatedSVD 和 30000 x 40000 大小的术语文档矩阵来将维度减少到 3000 维度,
使用“随机化”时,方差比约为 0.5 (n_iter=10)
使用 'arpack' 时,方差比约为 0.9
“随机化”算法的方差比低于“arpack”之一。
那么为什么 scikit-learn truncatedSVD 使用“随机化”算法作为默认值?
最佳答案
速度!
根据docs , sklearn.decomposition.TruncatedSVD
由于 Halko, Martinson, and Tropp (2009). 可以使用随机算法这篇论文声称他们的算法要快得多。
对于密集矩阵,它的运行时间为 O(m*n*log(k)),而经典算法需要 O(m*n*k) 的时间,其中 m 和 n 是您想要的矩阵的维度第 k 个最大的组件。随机化算法也更容易有效地并行化,并减少对数据的传递。
论文的表 7.1(第 45 页)显示了一些算法的性能作为矩阵大小和组件数量的函数,随机算法通常快一个数量级。
输出的准确性也声称非常好(图 7.5),尽管有一些修改和常量可能会影响它,而且我还没有浏览 sklearn 代码来查看他们做了/没有做什么。
关于scikit-learn - 为什么 scikit-learn truncatedSVD 默认使用 'randomized' 算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36812129/
我有一个矩阵,我试图使用 sklearn 中的 TruncatedSVD 类将其分解为更低的维度。对于构造函数中的 n_components 参数,我传递了 500。但是当我检查 fit_transf
对于 sci-kit learn 中的 RandomizedPCA,我可以在 explained_variance_ratio_ 属性中看到每个组件解释的方差。我可以从 TruncatedSVD 得到
我看到 sklearn.decomposition.TruncatedSVD 的文档和 scipy.sparse.linalg.svds提到他们都表演 SVD对于稀疏矩阵。它们之间有什么区别? 谢谢。
执行链接中给出的 kmeans 聚类代码时出现以下错误:http://scikit-learn.org/stable/auto_examples/document_clustering.html Tr
我正在将 sklearn.decomposition.TruncatedSVD 应用于非常大的矩阵。如果矩阵超过一定大小(例如 350k x 25k),svd.fit(x) 将耗尽 RAM。 我将 s
我有以下代码 import pandas as pd import numpy as np from sklearn.decomposition import TruncatedSVD df = df
这个问题在这里已经有了答案: Why Sklearn TruncatedSVD's explained variance ratios are not in descending order? (1
我遇到了一个只有 2 个类的文档分类问题,并且在 CountVectorizer/TfidfVectorizer 变为 (40,845 X 218,904) (unigram) 后我的训练数据集矩阵大
谁能详细告诉我PCA(主成分分析)、TruncatedSVD(截断奇异值分解)和ICA(独立成分分析)之间的区别吗? 最佳答案 详细说明将需要长页 PDF 文档:-)。 但这个想法很简单: 主成分分析
我正在使用 Sci-kit Learn 的 TruncatedSVD 算法在稀疏矩阵上执行 LSA。我希望转换后的密集矩阵具有数据类型 float16 而不是 float64。注意:我不想在转换后更改
我正在尝试绘制在我的数据集上运行聚类的结果,但出现错误: File "cluster.py", line 93, in Z = kmeans.predict(np.c_[xx.ravel
我使用 truncatedSVD 和 30000 x 40000 大小的术语文档矩阵来将维度减少到 3000 维度, 使用“随机化”时,方差比约为 0.5 (n_iter=10) 使用 'arpack
我是一名优秀的程序员,十分优秀!