You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Scikit-learn的PCA计算第一主成分?附实现代码

计算数据最大主成分的实用代码

我之前做金融时间序列分析的时候,写过一段经过验证的代码,用来计算数据的最大主成分,亲测可以正常运行,你可以直接参考:

import pandas as pd
from sklearn.decomposition import PCA

# 定义数据列名(包含日期和各类技术指标)
feature_columns = ['date', 'MA(1,9)', 'MA(1,12)', 'MA(2,9)', 'MA(2,12)', 'MA(3,9)', 'MA(3,12)', 
                   'MOM(9)', 'MOM(12)', 'VOL(1,9)', 'VOL(1,12)', 'VOL(2,9)', 'VOL(2,12)', 
                   'VOL(3,9)', 'VOL(3,12)']

# 从Excel读取数据,指定工作表、表头和自定义列名
df = pd.read_excel(filename, sheet_name='daily', header=0, names=feature_columns)

# 将日期列设置为DataFrame的索引,方便时间范围筛选
df = df.set_index('date')

# 截取指定时间区间内的数据
df = df.loc[start_date:end_date]

# 初始化PCA模型并拟合数据
pca = PCA()
pca.fit(df)

# 输出所有主成分结果,第一个元素就是方差贡献最大的主成分
print(pca.components_)
# 如果需要查看最大主成分的解释方差,取消下面的注释即可
# print(pca.explained_variance_[0])

几个关键点说明:

  • 记得提前导入pandas和sklearn的PCA模块,不然会报错
  • 自定义列名是为了确保Excel里的列和我们的分析对齐,避免列名混乱
  • 把日期设为索引后,用loc切片筛选时间范围非常方便
  • 拟合完成后,pca.components_[0]就是你要的最大主成分,对应的pca.explained_variance_[0]是这个主成分能解释的方差量,能帮你判断这个主成分的重要性

内容的提问来源于stack exchange,提问作者Évariste Galois

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:32:54