数据挖掘利用python的numpy库计算矩阵均值,协方差矩阵,特征值,特征值向量,进行主成分分析。
程序员文章站
2024-03-07 17:46:45
...
我这里是一个三个特征的作业:
我们首先输入矩阵:(在这之前记得导入numpy库哈)
X = np.array([[149.5,162.5,162.7,162.2,156.5,156.1,172,173.2,159.5,157.7],[69.5,77,78.5,87.5,74.5,74.5,76.5,81.5,74.5,79],[38.5,55.5,50.8,65.5,49,45.5,51,59.5,43.5,53.5]])
计算均值:
np.mean(X)//所有元素求和,除以总个数
np.mean(X,axis=0)//计算行的均值
np.mean(X,axis=1)//计算列的均值
计算协方差矩阵
cov = np.cov(X)
x = cov*9/10
注意!!!这里有一步是乘以9除以10。
为什么这样做呢?
我们看一下数据挖掘主成分分析对协方差矩阵的定义:
是以n-1为分母的,但是我们实际计算时(如概率论)协方差矩阵是以n为分母的。我们这里*9/10就是为了把n-1换成n。
协方差矩阵的特征值,特征向量:
a,b = np.linalg.eig(x)//a为特征值,b为特征向量
然后计算出结果如下:
上一篇: Eigen求特征值与特征向量