示例#1
0
 def getData(self):
     """
     获取进化后的数据集
     """
     #Setep1 获取差分进化后SMOTER参数
     de = DE(fitness=self.fitness,
             D=3,
             DRange=self.Drange,
             F=self.F,
             CR=self.CR,
             PopulationSize=self.PopulationSize,
             Lives=self.Lives)
     bestPars = de.evolution(otherPars=[self.data])
     #Step2 使用最佳参数获得数据集
     S = SMOTER(k=bestPars[0, 0],
                m=bestPars[0, 1],
                r=bestPars[0, 2],
                data=self.data)
     return (S.smoteR(), bestPars)
示例#2
0
 def transform(self, x, y):
     """
     用DE优化SMOTEND,针对特定数据集  模型和评估指标的优化
     
     Parameters:
     -------------------
     Drange,F,CR,PopulationSize,Live:
         DE的相关参数
         
     x,y:
         用于评估参数的数据集
         
     metric:
         评估指标
         
     modelName:
         用的模型
         
     times:
         验证时计算的次数 
         
     Return:
     -------
         (newX,newY,bestPars(array(1*d))) 
     """
     metric, modelName, DRange, F, CR, PopulationSize, Lives = self.metric, self.modelName, self.DRange, self.F, self.CR, self.PopulationSize, self.Lives
     #Setep1 获取差分进化后SMOTER参数
     de = DE(fitness=SMOTENDDE_Fitness,
             D=3,
             DRange=DRange,
             F=F,
             CR=CR,
             PopulationSize=PopulationSize,
             Lives=Lives)
     paras, _ = de.evolution(otherPars=(x, y, modelName, metric))
     #Step2 返回最后一代参数
     return paras