🔴
入学要求
💯
能力测试
🛣️
课程安排
🕹️
研究资源

练习

图像重构实验

根据以下代码框架,完成以下任务:

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处理代码框架(需要补充完整)
  1. 计算中心化后的数据矩阵(提示:每个像素减去均值)
  1. 正确计算协方差矩阵并执行特征分解
  1. 使用k=5/15/30个主成分重构图像
  1. 绘制原始图像与三个重构图像的对比图(要求使用2x2子图布局)

行业风险因子分析

根据以下数据获取代码,完成PCA分析:

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()

请完成:

  1. 对收益率数据执行标准化处理
  1. 通过PCA提取前三个主成分
  1. 计算累计方差贡献率并绘制碎石图
  1. 绘制三维散点图展示不同行业股票在主成分空间的分布(用颜色区分行业类别)