高维数据映射为低维数据
将X中的每一行分别与 W k W_{k} Wk中的每一行相乘,就得到了k个数,k个数组成的向量就是该样本映射到 W k W_{k} Wk这个坐标系上得到的一个新的k维的向量,这样做 就可以把X中的m个样本全部映射到k维空间中
低维数据映射回高维数据
但是此时的 X m X_{m} Xm和原来的 X X X不一样
import numpy as np
class PCA:
def __init__(self, n_components):
"""初始化PCA"""
assert n_components >= 1, "n_components must be valid"
self.n_components = n_components
self.components_ = None
def fit(self, X, eta=0.01, n_iters=1e4):
"""获得数据集X的前n个主成分"""
assert self.n_components <= X.shape[1], \
"n_components must not be greater than the feature number of X