#coding:utf-8
from numpy import *
"""
将数据转换成前N个主成分的伪代码如下:
去除平均值
计算协方差矩阵
计算协方差矩阵的特征值和特征向量
将特征值从大到小排序
保留最上面的N个特征向量
将数据转换到上述N个特征向量构建的新空间中
"""
def loadDataSet(filename,delim=' '):
fr = open(filename)
stringArr = [line.strip().split(delim) for line in fr.readlines()]
dataArr = [list(map(float,line)) for line in stringArr] #map()的结果是惰性的,必须加list使其返回list
#print(shape(stringArr))
#print(shape(dataArr))
return mat(dataArr)
def pca(dataMat,topNfeat=99999): #topNfeat是应用的N个特征,也就是降到topNfeat维
meanVals = mean(dataMat,axis=0) #axis=0表示是对行压缩,即对列求平均,返回1*n的矩阵
print(type(meanVals))
meanRemoved = dataMat-meanVals
covMat = cov(meanRemoved,rowvar=0)
#如果`rowvar`为True(默认值),则每行代表一个变量,并在列中显示。 否则,转换关系:每列代表一个变量,在行中显示。
pr
《机器学习实战》PCA源码
最新推荐文章于 2022-10-04 16:32:45 发布
本文深入探讨了《机器学习实战》中PCA(主成分分析)的实现过程,包括如何处理包含缺失值的数据,通过平均值填充等方法进行预处理,为机器学习模型提供有效的特征降维。
摘要由CSDN通过智能技术生成