python - ValueError:n_components=4 必须介于 0 和 min(n_samples, n_features)=2 之间,且 svd_solver='full'
问题描述
我的代码出现这样的错误
for n, df_process in enumerate(all_df):
#Normalisasi data dengan metode Standard Scaler
scaler=StandardScaler()
scaler.fit(df_process)
scaled_data=scaler.transform(df_process)
#Menentukan jumlah komponen dalam PCA
if n == 0:
pca=PCA(n_components=total_faktor_positif, svd_solver='full')
else:
pca=PCA(n_components=total_faktor_negatif, svd_solver='full')
#Fitting PCA dari data yang sudah normalisasi
pca.fit(scaled_data)
#Dicari PCA dari data yang sudah normalisasi
x_pca=pca.transform(scaled_data)
factor = []
for pc in x_pca:
factor.append(np.argmax(pc))
all_factor.append(factor)
print (all_factor)
all_pca.append(x_pca)
集群 dari hasil PCA yang sudah didapatkan
我该如何修复它们?请帮忙:(因为今天是我的作文
解决方案
的必须低于n_components
。PCA
min(n_samples, n_features)
在这种情况下,min(n_samples, n_features)=2
, 所以n_components
只接受 [0,2] 之间的值,但你给它4
。
您可以尝试:n_components=2
推荐阅读
- php - MySql查询根据时间戳获取结果
- r - 将特定值分配为 NA
- excel - Excel 数据透视表,过滤基于公式的值
- java - 没有“org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory”类型的合格bean
- python - python将嵌套数据转换为数组
- python - 当条件为真时如何对熊猫列的值求和(Python)
- laravel - Laravel - 将贝宝付款链接到订单 ID
- typescript - 打字稿:检查字符串变量值是作为类型 T 给出的类的属性名称的一部分
- android - 用动画改变 RadioButtons 的重量
- reactjs - React.js:从 useState 数组中获取特定字符串