Python 实现实现Numpy找到最大值的位置(PCA的实现)

np.sort()函数的作用,从小到大排序。(这里我也需要注意axis)
不写的话他的默认值为1.
使用x == np.max(x) 获得一个掩模矩阵,然后使用where方法即可返回最大值对应位置。
Python 实现实现Numpy找到最大值的位置(PCA的实现)_第1张图片
编程PCA算法的时候

x=np.array([[-1,-1,0,2,0],
            [-2,0,0,1,1]])
yuan=x
x=0.2*np.dot(x,x.T)
e,v=np.linalg.eig(x)
print(v)
re=np.where(e==np.max(e))
v=v.T[re]
print(re)
print(v)
x=np.dot(v,yuan)
# v=v[:,1]
# x=np.dot(v,yuan)
# print(x)

我一开始用的是下面三行代码计算降维之后的数组,但是我是直接看的结果比较的特征值的最大值,用

re=np.where(e==np.max(e))

获得特征值的最大位置
之后运用numpy的切片操作得到应有的特征向量
特征值分解矩阵原理
(1) 特征值与特征向量
如果一个向量v是矩阵A的特征向量,将一定可以表示成下面的形式:
A ν = λ ν A\nu=\lambda\nu Aν=λν
(2) 特征值分解矩阵
对于矩阵A,有一组特征向量v,将这组向量进行正交化单位化,就能得到一组正交单位向量。特征值分解,就是将矩阵A分解为如下式:
A = Q ∑ Q − 1 A=Q\sum Q^-1 A=QQ1

PCA就是干的是找坐标系的问题,使得信息在缩小维度的情况下信息损失是最小的。

你可能感兴趣的:(机器学习算法,python,线性代数,机器学习)