参考:https://blog.youkuaiyun.com/hustqb/article/details/78394058
# -*-coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
'''
简化数据的原因:
1、数据更易使用
2、降低算法计算开销
3、降噪
4、使结果易懂
方法:
1、主成分分析法(PCA)-----目前应用最广泛
2、因子分析
3、独立成分分析
PCA新坐标轴由原始数据决定:(1)第一个新坐标轴为原始数据中方差最大的方向;(2)第二个轴
与第一个轴正交且具有最大方差的方向;(3)重复次数为原数据的特征数目
通过数据集的协方差矩阵及其特征值、特征向量得到主成分的值具体算法步骤:
设有M个N维数据:
1、将原始数据按列组成N行M列矩阵X
2、将X的每一行进行零均值化,即减去每一行的均值
3、求出X的协方差矩阵C=(X*X.T)/M
4、求出协方差矩阵C的特征值及对应的特征向量,C的特征值就是Y的每维元素的方差,也是
D的对角线元素,从大到小沿对角线排列构成D。
5、将特征向量按对应特征值大小从上到下按行排列成矩阵,根据实际业务场景,取前R行组
成矩阵P
6、Y=PX即为降到R维后的目标矩阵
'''
'''
加载数据
'''
def loadDataSet(fileName,delim='\t'):
dataArr=[]
fr = open(fileName)
for line in fr.readlines():
lineArr = line.strip().split(delim)
dataArr.append([np.floa