- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
像这样使用 Sklearn PCA 算法时
x_orig = np.random.choice([0,1],(4,25),replace = True)
pca = PCA(n_components=15)
pca.fit_transform(x_orig).shape
我得到输出
(4, 4)
我期望(希望)它是:
(4,15)
我明白为什么会这样。在 sklearn ( here) 的文档中它说(假设他们的'=='是赋值运算符):
n_components == min(n_samples, n_features)
但他们为什么要这样做?另外,如何将形状为 [1,25] 的输入直接转换为 [1,10](无需堆叠虚拟数组)?
最佳答案
每个主成分是数据在数据协方差矩阵的特征向量上的投影。如果样本 n 少于特征,则协方差矩阵只有 n 个非零特征值。因此,只有 n 个有意义的特征向量/分量。
原则上,成分可能比样本多,但多余的成分将是无用的噪音。
Scikit-learn 会引发错误,而不是默默地做任何事情。这可以防止用户搬起石头砸自己的脚。样本少于特征可能表明数据有问题,或者对所涉及的方法有误解。
关于python - 为什么 Sklearn PCA 需要比新功能(n_components)更多的样本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51040075/
当我尝试使用 Scikit-Learn 中的 LDA 时,它总是只给我一个组件,即使我要求更多: >>> from sklearn.lda import LDA >>> x = np.random.r
像这样使用 Sklearn PCA 算法时 x_orig = np.random.choice([0,1],(4,25),replace = True) pca = PCA(n_components=
您好,我试图实现 PCA(),但出现错误,' TypeError: PCA() got an unexpected keyword argument 'n_components'. from skle
我正在尝试申请 LatentDirichletAllocation在数据集上。当我尝试为 LDA 的 n_component 参数赋值时。我收到以下错误。 TypeError
我的问题与 math domain error while using PCA 高度相关 我收到以下错误: File "$path$\Python\Python36\lib\site-packag
我对“使用 Dirichlet 过程作为集群数量的先验分布的无限混合模型”的理解是,集群的数量由数据决定,因为它们会收敛到一定数量的集群。 此R 实现 https://github.com/jacob
我的代码出现这样的错误 for n, df_process in enumerate(all_df): #Normalisasi data dengan metode
我是一名优秀的程序员,十分优秀!