保存时间:2026/4/3 07:24:21
(k+1)^(m+1) - k^(m+1) 这个式子展开。展开后,它会包含从 k^m 到 k^0 的各种低次项。(n+1)^(m+1) - 1。右边则变成高次幂求和与低次幂求和的组合。S(n) = 1² + 2² + ... + n²:m=2,考虑 (k+1)^3 - k^3,展开得 3k² + 3k + 1。(2³ - 1³) + (3³ - 2³) + ... + ((n+1)³ - n³) = (n+1)³ - 13(1² + 2² + ... + n²) + 3(1 + 2 + ... + n) + n = 3S(n) + 3*(n(n+1)/2) + n(n+1)³ - 1 = 3S(n) + 3n(n+1)/2 + nS(n) = n(n+1)(2n+1)/6# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
# 1. 加载数据
# 鸢尾花数据集有 4 个特征(花瓣长度、宽度等)
data = load_iris()
X = data.data # 形状为 (150, 4),150 个样本,每个样本 4 个特征
y = data.target # 标签,用于绘图时区分不同种类的花
# 2. 创建并训练 PCA 模型
# n_components=2 表示我们希望降到 2 维
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X) # 对数据进行降维
# 3. 查看结果
print("原始数据形状:", X.shape)
print("降维后数据形状:", X_pca.shape)
# 4. 可视化降维后的数据
plt.figure(figsize=(8, 6))
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='viridis', edgecolor='k')
plt.xlabel('主成分 1')
plt.ylabel('主成分 2')
plt.title('PCA 降维:鸢尾花数据集 (4D -> 2D)')
plt.colorbar(label='花的种类')
plt.show()
fit_transform 完成训练和降维。X = [[1, 2], [2, 3], [3, 4]][[-1, -1], [0, 0], [1, 1]]C = [[1, 1], [1, 1]][-√2, 0, √2]PCA.fit_transform() 做的是同一件事。det(C - λI) = 0det 指的是计算矩阵的行列式,I 是和 C 同尺寸的单位矩阵。C - λI:C - λI = [[1-λ, 1], [1, 1-λ]]det([[1-λ, 1], [1, 1-λ]]) = 0(1-λ)(1-λ) - 1×1 = 01 - 2λ + λ² - 1 = 0λ² - 2λ = 0λ(λ - 2) = 0λ₁ = 0 和 λ₂ = 2numpy.linalg.eig)可以直接调用,几行代码就能搞定。