PCA-python实现综合评价求解-续
PCA-python实现综合评价求解-续
这个是接着前面写的一篇,链接在下面,数据集也有:
上一篇博客点击此处跳转
k是我们选择的主成分数量,我们最终会根据该主成分数量,得到我们的评价指标,我加入了写入功能可以将评价指标数据写入excel文件,完整代码如下:
import numpy as npdef pca_tre(Mat, k):p,n = np.shape(Mat) # shape of Matt = np.mean(Mat, 0) # mean of each column# substract the mean of each columnfor i in range(p):for j in range(n):Mat[i,j] = float(Mat[i,j]-t[j])# covariance Matrixcov_Mat = np.dot(Mat.T, Mat)/(p-1)# PCA by original algorithm# eigvalues and eigenvectors of covariance Matrix with eigvalues descendingU,V = np.linalg.eigh(cov_Mat) #U 是特征值index = np.argsort(-U) if k > n:print("k must lower than feature number")returnelse:selectVec = np.matrix(V.T[index[:k]]) finalData = Mat * selectVec.T return finalData,U#主成分import pandas as pd
data=pd.read_excel(r"C:\Users\gaoxi\Desktop\data.xlsx")
#print(data.iloc[:, 1:].values)
data=data.iloc[:, 1:].values
k=2
finalData,u=pca_tre(data,k)
sum=0
u.sort()
u=u[::-1]
u_sum=np.sum(u)
for i in range(2):sum=sum+u[i]/u_sum
print("sum : ",sum)def score_get(finalData,u,k):u.sort()u=u[::-1]u_sum=np.sum(u)# print(u_sum) score=[]for i in range(len(u)):u[i]=u[i]/u_sum#print(u)for i in range(len(finalData)):# print(finalData[i])c = []for x in finalData[i].flat:c.append(x)# print("score:",np.dot(u[:k],c))score.append(np.dot(u[:k],c))return scorescore=score_get(finalData,u,k)data=scorepath="C:/Users/gaoxi/Desktop/"#Excel数据
import xlwt
#生成xls工作薄
wb = xlwt.Workbook()wb.add_sheet('first_sheet', cell_overwrite_ok=True)
wb.get_active_sheet()ws_1 = wb.get_sheet(0)
print(data)for c in range(len(data)):ws_1.write(c, 0, data[c])wb.save(path + 'workbook.xls')
print(score)
如下是上述代码得到的评价指标数据:
PCA-python实现综合评价求解-续相关推荐
- python输入多个字符串、输入最长的一串_无重复字符的最长子串(Python之暴力求解)...
无重复字符的最长子串(Python之暴力求解) 例题: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例: (1) 输入: "abcabcbb" 输出: 3 ...
- python猜数游戏续_python猜数游戏续改编
answer=456 n=input('Enteranumber:') correct=len([iforiinnifiinstr(answer)]) exact=len([afora,binzip( ...
- [洛谷P1024]python一元三次方程求解
[洛谷P1024]python一元三次方程求解 首先将方程幂次形式转换为乘积形式(可节省代码运行时间) 其次使用零点定理F(x1)∗F(x2)<0F({x}_1)*F({x}_2)<0F( ...
- 基于 python pulp 库求解船舶泊位调度线性规划问题
目录 基于 python pulp 库求解船舶泊位调度线性规划问题 泊位调度问题建模 代码实现 准备包 代码讲解 绘制图像 完整代码 题外话 基于 python pulp 库求解船舶泊位调度线性规划问 ...
- python爬虫实现AI续写
python爬虫实现AI续写 前言:审核大大要是有侵权,能不能划出哪些字眼侵权啊!!!内容真的是原创啊!! 1.动机和效果展示 最近b站上有很多的AI续写工具: 感觉挺有趣的,但是自己python写这 ...
- 机器学习笔记之玻尔兹曼机(三)基于平均场理论变分推断的梯度求解(续)
机器学习笔记之玻尔兹曼机--基于平均场推断梯度求解[续] 引言 Λ 3 \Lambda_3 Λ3梯度求解 求解最优参数 ϕ ^ j \hat {\phi}_j ϕ^j 引言 基于玻尔兹曼机(三) ...
- python实现遗传算法求解函数极值问题
python实现遗传算法求解函数极值问题 import random import numpy as np #定义染色体类 class chromosome:def __init__(self,chr ...
- 手把手教你用Python调用SCIP求解最优化模型
手把手教你用Python调用SCIP求解最优化模型 一个简单的例子 Python调用SCIP求解最优化模型的一般步骤 创建模型对象 创建决策变量 设置目标函数 创建约束 创建一般约束 创建广义约束 求 ...
- python调用开源求解器scip求解运输问题
运输问题 运输问题(transportation problem)一般是研究把某种商品从若干产地运至若干个销地而使总运费最小的一类问题.一种特殊的线性规划问题,由于其技术系数矩阵具有特殊的结构,可以使 ...
最新文章
- C++实现tar包解析
- 脉冲神经网络在目标检测的首次尝试,性能堪比CNN | AAAI 2020
- blocked java线程_Java线程状态:BLOCKED与WAITING的区别
- ACM《数据结构》顺序表
- 如何将文件打包、压缩并分割成制定大小?
- linux mutt 使用指南,linux mutt详解
- 天梯—计算阶乘和(C语言)
- 【嵌入式系统开发08】STM32F103C8T6搭建电路实现流水灯详解
- python xlsxwriter 画图_python xlsxwriter创建excel图表的方法
- 存储结构的定义及其分类
- 机械动力学瑞利法matlab程序,机器人学回炉重造(4):动力学仿真(附牛顿-欧拉递归逆动力学算法matlab代码)...
- 2017.7.10日C组模拟赛总结
- arcgis api for JavaScript学习-Scalebar(比例尺)
- 破解携程中文验证码爬取机票价格数据
- 华为p30鸿蒙系统内测在哪申请,华为自研操作系统:已注册“华为鸿蒙”商标
- 怪异的JavaScript系列(三)
- GPS的相关指标的意思
- Prometheus怎么用来帮助解决性能问题之入门篇
- Docker 【Nginx集群部署】
- 如何策划一场App地推活动方案