- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个矩阵,我试图使用 sklearn 中的 TruncatedSVD
类将其分解为更低的维度。对于构造函数中的 n_components
参数,我传递了 500。但是当我检查 fit_transform
方法返回的数据帧的形状时,列数不等于500.我不确定是什么原因造成的。这是代码-
# ORIGINAL DATAFRAME
tfidf_df.shape #(277, 51023)
# INITIALIZE SVD DECOMPOSER
svd_decomposer = TruncatedSVD(n_components=500, # Desired dimensionality of output data
algorithm='randomized', # SVD solver to use
n_iter=5, # Number of iterations for randomized SVD solver
random_state=42, # pseudo-random number generator
tol=0.0 # Tolerance for ARPACK
)
svd_decomposer.n_components #500
# DECOMPOSE THE DATAFRAME
tfidf_svd = svd_decomposer.fit_transform(tfidf_df)
tfidf_svd.shape # (277, 277)
输出数据帧 tfidf_svd
的形状不应该是 (277, 500)
。我不知道我在这里做错了什么。
最佳答案
这似乎是预期的行为。 TruncatedSVD
函数调用 randomized_svd
函数,其中包含以下代码:
if transpose == 'auto':
transpose = n_samples < n_features
if transpose:
# this implementation is a bit faster with smaller shape[1]
M = M.T
因此,您能够返回的组件的最大数量就是您拥有的样本数量。我不记得确切的原因,但我很确定有一个线性代数解释可以解释为什么您会限制保存的样本数量。您会在 scikit 中的两种 SVD 实现中看到相同的行为。
编辑
原因是(从 here 窃取):
如果n
是点数,p
是维度数,并且n≤p
则非主成分的数量-零方差不能超过n
(对原始数据进行PCA时)或n-1
(对中心数据进行PCA时 - 像往常一样)
关于python - TruncatedSVD 返回不正确的尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42558153/
我有一个矩阵,我试图使用 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
我是一名优秀的程序员,十分优秀!