MCPcopy Create free account
hub / github.com/THESIS-AGENT/AIRouter / get_combinedRanking

Method get_combinedRanking

LoadBalancing.py:161–200  ·  view source on GitHub ↗

融合两个不同指标的排序 将两个不同指标的排序结果按给定权重融合为一个新的排序结果。 Args: ranking_1 (dict): 第一个指标的排序结果 ranking_2 (dict): 第二个指标的排序结果 weight (float): ranking_2的权重,范围[0,1] Returns: dict: 融合后的排序结果

(self, ranking_1, ranking_2, weight)

Source from the content-addressed store, hash-verified

159 return False
160
161 def get_combinedRanking(self, ranking_1, ranking_2, weight):
162 """融合两个不同指标的排序
163
164 将两个不同指标的排序结果按给定权重融合为一个新的排序结果。
165
166 Args:
167 ranking_1 (dict): 第一个指标的排序结果
168 ranking_2 (dict): 第二个指标的排序结果
169 weight (float): ranking_2的权重,范围[0,1]
170
171 Returns:
172 dict: 融合后的排序结果
173 """
174 ranking_3 = {}
175
176 len_1 = len(ranking_1)
177 len_2 = len(ranking_2)
178
179 # 创建副本避免修改原始数据
180 tmp_ranking_1 = ranking_1.copy()
181 tmp_ranking_2 = ranking_2.copy()
182
183 # 处理ranking_1中的所有键
184 for key_1 in ranking_1:
185 if key_1 in ranking_2:
186 # 如果键在两个排序中都存在,按权重融合
187 ranking_3[key_1] = ranking_1[key_1] * (1 - weight) + ranking_2[key_1] * weight
188 else:
189 # 如果键只在ranking_1中存在,将其在ranking_2中的排名设为最低
190 tmp_ranking_2[key_1] = len_2 + 1
191 ranking_3[key_1] = ranking_1[key_1] * (1 - weight) + tmp_ranking_2[key_1] * weight
192
193 # 处理ranking_2中的所有键
194 for key_2 in ranking_2:
195 if key_2 not in ranking_1:
196 # 如果键只在ranking_2中存在,将其在ranking_1中的排名设为最低
197 tmp_ranking_1[key_2] = len_1 + 1
198 ranking_3[key_2] = tmp_ranking_1[key_2] * (1 - weight) + ranking_2[key_2] * weight
199
200 return ranking_3
201
202 def is_health_data_empty(self, model_name):
203 """检查健康数据是否为空

Callers 1

get_configMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected