图像重构实验#
根据以下代码框架,完成以下任务:
code
import numpy as np
import matplotlib.pyplot as plt
def generate_test_image(m, n):
X = np.zeros((m, n))
X[50:150, 50:150] = 1 # 正方形
X[75:125, 75:125] = 0 # 中心挖空
X += np.random.randn(*X.shape)*0.1 # 添加噪声
return X
# 生成测试图像
X = generate_test_image(200, 200)
# PCA处理代码框架(需要补充完整)-
计算中心化后的数据矩阵(提示:每个像素减去均值)
-
正确计算协方差矩阵并执行特征分解
-
使用k=5/15/30个主成分重构图像
-
绘制原始图像与三个重构图像的对比图(要求使用2x2子图布局)
行业风险因子分析#
根据以下数据获取代码,完成PCA分析:
code
import yfinance as yf
from sklearn.preprocessing import StandardScaler
# 获取不同行业股票数据(2020-2023年)
tech_stocks = ['MSFT', 'GOOG', 'META']
energy_stocks = ['XOM', 'CVX', 'SHEL']
retail_stocks = ['WMT', 'TGT', 'HD']
all_symbols = tech_stocks + energy_stocks + retail_stocks
data = yf.download(all_symbols, start='2020-01-01', end='2023-12-31')['Close']
returns = data.pct_change().dropna()请完成:
-
对收益率数据执行标准化处理
-
通过PCA提取前三个主成分
-
计算累计方差贡献率并绘制碎石图
-
绘制三维散点图展示不同行业股票在主成分空间的分布(用颜色区分行业类别)