当前位置: 首页 > news >正文

PCA降维

先利用xlrd_read_data函数读取数据,然后用pca降维,降维后的数据存放在lowDDataMat中

def xlrd_read_data(path):
    table = xlrd.open_workbook(path).sheets()[0] #读取第一个表格
    row = table.nrows  # 行数
    col = table.ncols  # 列数
    datamatrix = np.zeros((row, col))#生成一个nrows行ncols列,且元素均为0的初始矩阵
    for x in range(col):
        cols = np.matrix(table.col_values(x))  # 把list转换为矩阵进行矩阵操作
        datamatrix[:, x] = cols # 按列把数据存进矩阵中
    return datamatrix
def pca(dataMat,topNfeat=999999):
    meanVals=np.mean(dataMat,axis=0)
    meanRemoved=dataMat-meanVals
    covMat=np.cov(meanRemoved,rowvar=0)
    eigVals,eigVects=np.linalg.eig(np.mat(covMat))
    eigValInd=np.argsort(eigVals)
    eigValInd=eigValInd[:-(topNfeat+1):-1]
    redEigVects=eigVects[:,eigValInd]
    lowDDataMat=meanRemoved*redEigVects
    reconMat=(lowDDataMat*redEigVects.T)+meanVals
    return lowDDataMat,reconMat
   path= r'c:\Users\Liugengxin\Desktop\数学建模\2018E模拟\Data_For_Oneyear\16indicators.xlsx'
data=xlrd_read_data(path)
data_pca,recon=pca(data,5)
DataFrame(data_pca).to_excel(r'c:\Users\Liugengxin\Desktop\testpca.xlsx')

 

转载于:https://www.cnblogs.com/Liu269393/p/10276458.html

相关文章:

  • PHP 全局变量
  • 朋友圈继续扩大!科蓝软件联合蚂蚁金服发布“移动金融逸平台”
  • MySQL面试题之如何优化一条有问题的SQL语句?
  • UOJ131 [NOI2015] 品酒大会
  • uoj#349. 【WC2018】即时战略(动态点分治)
  • 未来科技展亮相杭州 七大5G应用领域打开全新想象
  • 在Linux下创建文件,文件名中包含当前时间
  • Java源码解析 - ThreadPoolExecutor 线程池
  • 通过sys.objects查询SQL SERVER数据库改动内容
  • 共轭分布
  • 为什么要用IPython/Jupyter?
  • Java8实用技能
  • 悉尼将举办农历节庆典迎猪年
  • 2018,你的专属云上回忆录
  • transform matrix阅读后的理解
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 07.Android之多媒体问题
  • Bytom交易说明(账户管理模式)
  • Docker 笔记(2):Dockerfile
  • GraphQL学习过程应该是这样的
  • javascript 总结(常用工具类的封装)
  • JDK9: 集成 Jshell 和 Maven 项目.
  • PaddlePaddle-GitHub的正确打开姿势
  • Spring核心 Bean的高级装配
  • STAR法则
  • Vue学习第二天
  • 阿里云Kubernetes容器服务上体验Knative
  • 对象引论
  • 力扣(LeetCode)22
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 如何学习JavaEE,项目又该如何做?
  • 实习面试笔记
  • 无服务器化是企业 IT 架构的未来吗?
  • 云大使推广中的常见热门问题
  • 再谈express与koa的对比
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • UI设计初学者应该如何入门?
  • $.each()与$(selector).each()
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (新)网络工程师考点串讲与真题详解
  • (转载)从 Java 代码到 Java 堆
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .a文件和.so文件
  • .net 4.0发布后不能正常显示图片问题
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .Net core 6.0 升8.0
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .Net 代码性能 - (1)