如何解决sklearn PCA组件数_
使用sklearn的PCA:
m = np.random.randn(10,5)
mod = PCA()
mod.fit_transform(m)
mod.components_
将有5个组成部分,这对我来说很有意义,因为数据中有5个特征。
但是如果m = np.random.randn(10,20)
mod.components_
将包含10个组成部分
假设mod.components_
中的行与要素数量相对应,第二个示例中不应该有20个组件吗?数据中的要素数量应该不应该多吗?
解决方法
从scikit学习PCA
n_components : int,None or string
Number of components to keep. if n_components is not set all components are kept:
n_components == min(n_samples,n_features)
因此,在第一种情况min(10,5)=5
中,输出形状为(5,5),在第二种情况min(10,20)=10
中,输出形状为(10,20)
from sklearn.decomposition import *
import numpy as np
m = np.random.randn(10,5)
mod = PCA()
mod.fit_transform(m)
print(mod.components_.shape) # (5,5)
m = np.random.randn(10,20)
mod = PCA()
mod.fit_transform(m)
print(mod.components_.shape) # (10,20)
功能与组件:
假设您有一个数据集,包含3个名为(年龄,性别,Risk_Factor)的列和500行。在这里,要素数量是3,而不是500。实例/观察/组件的数量是500。每行如何可能是唯一的特性,而在这里,年龄,性别或Risk_Factor是唯一的特性。 希望一切都清楚。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。