基于Python的投资策略聚类问题:PCA降维后K-Means效果不佳
PCA降维后K-Means聚类结果异常:beta差异大的基金被归为同一簇
我正在用Python开展聚类分析,目标是探究投资策略的本质。先以不同指数作为回归因子做滚动回归,得到的R²值和beta系数都符合预期,具备实际意义。接下来想用K-Means算法将基金按策略聚类,理论上相似管理策略的基金应该被划分到同一簇,但实际结果不符合预期——beta差异极大的基金被归到了同一簇。
我先把8维的beta数据集通过PCA降至2维,再用肘部法确定最优簇数后运行K-Means。尝试过增加簇数(即使接受更高的WCSS),结果依然不理想,怀疑是降维环节存在问题。无法提供最小可复现示例,以下是部分代码供参考:
pca = PCA(n_components=2) pca_X = pca.fit_transform(betas) wcss = [] for i in range(1, 11): kmeans = KMeans(n_clusters=i, random_state=0) kmeans.fit(pca_X) wcss.append(kmeans.inertia_) kl = KneeLocator(range(1, 11), wcss, curve="convex", direction="decreasing") best_cluster = kl.elbow kmeans = KMeans(n_clusters=best_cluster) kmeans.fit(pca_X)
有没有人遇到过类似的问题?
内容的提问来源于stack exchange,提问作者Marco Piazza
相关产品推荐
相关产品推荐

