• python--numpy实现pca算法


    Coding by Chang,2017/4/28

    编程环境:python27,

    依赖库:numpy,

    实现算法:主成分分析(pca)

    代码实现:

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    from numpy import *
    def loadDataSet(fileName,delim='	'):
        fr=open(fileName)
        #strip()去掉line中所有换行符,split('	')以'	'切割
        stringArr=[line.strip().split(delim) for line in fr.readlines()] #读取文件完成分割
        dataArr=[map(float,line) for line in stringArr]   #python36中的map回出现问题
        return mat(dataArr)                               #转换为matrix格式返回
    
    def pca(dataMat,topNfea=9999999):
        meanVals=mean(dataMat,axis=0)            #mean()求均值
        meanRemoved=dataMat-meanVals
        covMat=cov(meanRemoved,rowvar=0)         #cov()求协方差矩阵
        eigVals,eigVects=linalg.eig(mat(covMat)) #numpy.linalg库中提供了eig()函数求解特征值和特征向量
        eigValInd=argsort(eigVals)
        eigValInd=eigValInd[:-(topNfea+1):-1]    #取最大的topNfea个最大特征值
        redEigVects=eigVects[:,eigValInd]        #取对应的特征向量,组成转换矩阵redEigVects
        lowDDataMat=meanRemoved*redEigVects      #实现降维
        reconMat=(lowDDataMat*redEigVects.T)+meanVals     #重构数据
        return lowDDataMat,reconMat              #返回降维矩阵和重构矩阵
  • 相关阅读:
    建设全功能团队
    gwt之mvc4g
    SQLServer代码差异备份
    DateTimePicker选择到秒
    SQL定时备份并删除过期备份
    Div文本垂直居中
    WinForm当前窗口抓图
    web架构设计经验分享(转)
    用yui compressor 压缩 javascirpt脚本
    查看sqlserver连接数
  • 原文地址:https://www.cnblogs.com/cygalaxy/p/6780467.html
Copyright © 2020-2023  润新知