python解决DEA模型–CCR

本人所用软件为gurobi,在python中运算。

gurobi的下载请自行前往官网:https://www.gurobi.com/。

本篇文章针对基础CCR模型,给出代码。

本篇例子的运行数据贴在下图,数据量很小,大家可自行敲在excel中运行。最后一列投入导向型CCR的效率结果。只需要把DMUs、x1、x2、y这四列输进表格即可:

注意:若大家用python的gurobi包运算出来的松弛值与文章中所给的不太一样,不是你算错了!当线性规划存在多解的情况时,python只是吐出了一组解,可能与用matlab、dea-solver等软件做出来的松弛值不一样。但是,效率值是相等的!


###包络形式的CCR模型import gurobipy
import pandas as pd
from gurobipy import quicksum# 分页显示数据, 设置为 False 不允许分页
pd.set_option('display.expand_frame_repr', False)# 最多显示的列数, 设置为 None 显示全部列
pd.set_option('display.max_columns', None)# 最多显示的行数, 设置为 None 显示全部行
pd.set_option('display.max_rows', None)class DEA(object):def __init__(self, DMUs_Name, X, Y, AP=False):self.m1, self.m1_name = X.shape[1], X.columns.tolist()self.m2, self.m2_name = Y.shape[1], Y.columns.tolist()self.AP = APself.DMUs, self.X, self.Y = gurobipy.multidict({DMU: [X.loc[DMU].tolist(),Y.loc[DMU].tolist()] for DMU in DMUs_Name})print(f'DEA(AP={AP}) MODEL RUNING...')# multidict扩展字典,便于处理同一个对象的不同属性约束def __CCR(self): ##input-orientedfor k in self.DMUs:MODEL = gurobipy.Model()OE = MODEL.addVar()lambdas = MODEL.addVars(self.DMUs)MODEL.update()## 更新变量环境MODEL.setObjective(OE, sense=gurobipy.GRB.MINIMIZE)MODEL.addConstrs(quicksum(lambdas[i] * self.X[i][j] for i in self.DMUs) <= OE * self.X[k][j] for j in range(self.m1))MODEL.addConstrs(quicksum(lambdas[i] * self.Y[i][j] for i in self.DMUs) >= self.Y[k][j] for j in range(self.m2))MODEL.setParam('OutputFlag', 0)MODEL.setParam('NonConvex',2)MODEL.optimize()self.Result.at[k, ('效益分析', '综合技术效益(CCR)')] = MODEL.objValreturn self.Resultdef dea(self):columns_Page = ['效益分析']columns_Group = ['综合技术效益(CCR)']self.Result = pd.DataFrame(index=self.DMUs, columns=[columns_Page, columns_Group])self.__CCR()return self.Resultdef analysis(self, file_name=None):Result = self.dea()file_name = 'DEA 数据包络分析报告.xlsx' if file_name is None else f'\\{file_name}.xlsx'Result.to_excel(file_name, 'DEA 数据包络分析报告')if __name__=='__main__':innum, outnum = 2, 1file = "C://Users//admin//Desktop//数据.xlsx"data = pd.read_excel(file, header=0, index_col=0)X = data[data.columns[:innum]]Y = data[data.columns[innum:innum+outnum]]dea = DEA(DMUs_Name=data.index, X=X, Y=Y)#dea.analysis()  # dea 分析并输出表格print(dea.dea())  # dea 分析,不输出结果

用python处理DEA模型--CCR相关推荐

  1. Python计算机视觉——照相机模型与增强现实

    Python计算机视觉--照相机模型与增强现实 文章目录 Python计算机视觉--照相机模型与增强现实 1 针孔照相机模型 1.1 照相机矩阵 1.2 三维点的投影 1.3 照相机矩阵的分解 1.4 ...

  2. Python为给定模型执行留一法交叉验证实战LOOCV(leave-one-out cross-validation)

    Python为给定模型执行留一法交叉验证实战LOOCV(leave-one-out cross-validation) 目录 Python为给定模型执行留一法交叉验证实战LOOCV(leave-one ...

  3. Python构建lassocv模型并输出Rad-score公式

    Python构建lassocv模型并输出Rad-score公式 'signature = wavelet-HLH_glszm_GrayLevelVariance*-0.0306874009798776 ...

  4. 独家 | 在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)

    作者:MOHD SANAD ZAKI RIZVI 翻译:吴金笛 校对:丁楠雅 本文约5500字,建议阅读15分钟. 本文首先介绍了TensorFlow.js的重要性及其组件,并介绍使用其在浏览器中构建 ...

  5. 超效率dea模型_【探索】基于超效率DEA模型的我国公立医院排行榜研究

    点击标题下「蓝色微信名」可快速关注 文章来源: 中华医院管理杂志, 2020,36 (11):896-901 作者: 郭淑岩  李萌  杨威  杨婷婷  尹畅  胡广宇  董四平 DOI:10.376 ...

  6. Python:pmml格式文件的简介、安装、使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略

    Python:pmml格式文件的简介.安装.使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略 目录 pmml格式文件的简介 1.PMML结构 pmml安装 pmm ...

  7. Python 多种算法模型对比

    Python 多种算法模型对比 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. 2 算法模型对比简介 可以对同一份训练数据集应用多 ...

  8. Python 交叉验证模型评估

    Python 交叉验证模型评估 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. 2 交叉验证模型评估简介 交叉验证(Cross V ...

  9. 如何在验证集加噪声_如何使用Python构建机器学习模型

    如何使用Python构建机器学习模型?在构建机器学习模型时,我们希望将误差保持在尽可能低的水平.对于任何打算学习Python进行大数据分析的人来说,这都是一项关键技能.误差的两个主要来源是偏差和方差. ...

  10. python模型训练框架_以Python撰写 AI模型框架

    以Python撰写 AI模型框架 by 高焕堂 1. 前言: 在AI(人工智慧)方面,由于当今的机器学习本质是一种<大数据相关性支撑的>归纳性推理.软体框架的复用(Reuse)性愈高,对于 ...

最新文章

  1. 小程序云开发常用语句宝库
  2. 【GAN】如何生动有趣地对GAN进行可视化?Google的GAN Lab推荐你了解一下
  3. mysql sql字符串连接函数_Mysql字符串连接函数 CONCAT()与 CONCAT_WS()
  4. java5个线程_java基础thread——java5之后的多线程(浅尝辄止)
  5. 同花顺通达信公式指标改写成python实现代码,纯numpy,无循环!
  6. 微信小程序video标签大小设置
  7. 阿里面试整个流程(已OC)
  8. Java前端Vue-5(复习Vue)
  9. GAN学习历程之CycleGAN论文笔记
  10. 本地测试dubbo远程调用找不到provider
  11. mac电脑最好用的图片浏览器,没有之一
  12. Mybatis入门(二)
  13. 豌豆荚PC端版本WanDouJia_2.80.1.7144_homepage.exe
  14. 金蝶kis数据库说明(转载)
  15. 随机数抽奖程序 html,半小时撸一个抽奖程序
  16. 总结开发者在合作过程中的典型交流方式
  17. 微信小程序入门与实战之rpx响应式单位与flex布局
  18. System Verilog clocking块
  19. 郝健:Linux下服务程序启动管理方式的分析与总结
  20. 读《深入理解Java虚拟机》笔记

热门文章

  1. 单片机开发软件keil4和proteus的使用教程(超详细)_☆往事随風☆的博客
  2. webstorm激活破解
  3. ArcGIS 对DEM数据进行剖面分析
  4. 啊哈c语言逻辑的挑战课后题答案,啊哈C语言 逻辑的挑战(修订版)pdf
  5. Tensorrt-caffee模型tensorrt部署教程
  6. mschart走势图 vc_VC++6.0中MsChart控件的用法
  7. MSchart控件在Win7 64位操作系统上的注册方法
  8. 米字格图片可打印_练字本米字格模板可打印行楷书
  9. java web学习心得
  10. 华三模拟器(路由器)实现ipsec穿越NAT实验