特征值分解与奇异值分解
PCA
PCA的作用主要是分析数据主成分,降低数据维度,方便计算。数据降到1、2、3维之后还可以可视化。在对数据执行PCA处理之前要对数据进行预处理,使每个特征维度上的数据具有相同均值并归一化到同一范围内。
#feature scaling
scaler = StandardScaler()
train_norm = scaler.fit_transform(train_data[0::,1::])
test_norm = scaler.fit_transform(test_data)
主成分个数的选择
一般来说,我们根据方差百分比来选择要保留的主成分个数。如我们要保留99%的方差(以下示例为matlab代码):
[u,s,v] = svd(x);
k = 0; % Set k accordingly
eigenvalues = diag(s);
current_var = 0;
total_var = sum(eigenvalues);
while ...