from typing import List
import numpy as np
from Pyfrontier.domain.result import BaseResult
from Pyfrontier.frontier_model import EnvelopDEA
[docs]
class HierarchalDEA:
def __init__(self, dea_model: EnvelopDEA):
self.dea = dea_model
self.result: List[List[BaseResult]] = []
[docs]
def fit(self, inputs: np.ndarray, outputs: np.ndarray, index=np.nan):
while True:
self.dea.fit(inputs, outputs, index)
self.result.append([r for r in self.dea.result if r.score == 1])
if len(self.dea._get_dmu(False)) == 0:
break
inputs = self.dea._get_inputs(False)
outputs = self.dea._get_outputs(False)
index = self.dea._get_index(False)