You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用pyDEA开展DEA项目时遭遇AttributeError:模块无DEAProblem属性

使用pyDEA开展DEA项目时遭遇AttributeError:模块无DEAProblem属性

嘿,我看了你的问题,这个报错其实是因为DEAProblem并不是直接在pyDEA根模块下面的,它藏在core子模块里——从你打印的dir(pyDEA)结果里能看到core这个项,这就是突破口。

给你几个解决的小步骤:

  1. 修正导入语句
    你需要从pyDEA.core.dea_problem里导入DEAProblem类,而不是直接用pyDEA调用。修改后的导入代码可以是这样:

    from pyDEA.core.dea_problem import DEAProblem
    

    要是你习惯保留模块层级调用,也可以这么写:

    import pyDEA.core as dea_core
    # 后面调用的时候就用这个路径
    CCR_problem = dea_core.dea_problem.DEAProblem(inputs, outputs, kind='CCR')
    
  2. 修复代码里的变量名错误
    我注意到你定义了output变量,但后面创建问题对象的时候用的是outputs,这会触发NameError;而且输入输出最好保持相同的数据格式(都是numpy数组),所以把这行代码改一下:

    outputs = df[['Average Gross Profit']].values
    
  3. 修改后的完整代码示例
    把这些调整整合后,你的代码应该是这样的:

    import pandas as pd
    from sklearn.preprocessing import StandardScaler
    from sklearn.pipeline import Pipeline
    from pyDEA.core.dea_problem import DEAProblem
    
    df = pd.read_excel('/Users....')
    
    inputs = df[['Counted Rejections', 'Average Cost', 'Items with Complaint']].values
    outputs = df[['Average Gross Profit']].values
    
    # 创建CCR模型的DEA问题对象
    CCR_problem = DEAProblem(inputs, outputs, kind='CCR')
    # 求解模型
    CCR_results = CCR_problem.solve()
    

你可以先试试这个调整,应该就能解决那个属性错误了。要是还有问题,可以再检查一下pyDEA的安装是否完整,或者看看它的模块结构确认类的位置~

备注:内容来源于stack exchange,提问作者Farah Aboucha

火山引擎 最新活动