【发布时间】:2021-05-18 08:07:53
【问题描述】:
我想查看带有两个数据框的建模输出。
一个数据框的目标值是 1 到 8,另一个只有 1,2,3,5,6,7
我制作了一个字典来映射这些值,并编写了如下代码来计算概率。
my_dict ={1:'a', 2:'b', 3:'c', 4:'d', 5:'e', 6:'f', 7:'g', 8:'f'}
def func(val):
for key, value in my_dict.items():
if val == key:
return value
return "There is no such Key"
inputData = [1, 2, 3, 4, 5]
inputData2 = np.array([inputData])
index = 1;
result_data = OrderedDict()
for x in xgb_model.predict_proba(inputData2,ntree_limit=None, validate_features=False,base_margin=None)[0]:
result_data[func(index)] = round(x,2)
index += 1
print("result_name : ", max(result_data.items(), key=operator.itemgetter(1))[0])
print("result_value : ", max(xgb_model.predict_proba(inputData2, ntree_limit=None, validate_features=False, base_margin=None)[0]))
print(result_data)
但在第二个数据帧中,键值被推回。 比如应该出现a:0.2,b:0.2,c:0.1,e:0.1,f:0.1 g:0.3,但是在真实数据中,数据应该是: a:0.2, b:0.2, c:0.1, d:0.1, e:0.1, f:0.3
我不知道该怎么办。
所以我一直在研究下面的代码。 只有 a:0.2, b:0.2, c:0.1 出来并结束。
for x in xgb_model.predict_proba(inputData2,ntree_limit=None, validate_features=False,base_margin=None)[0]:
if index not in y.target.unique().tolist():
continue
result_data[func(index)] = round(x,2)
index += 1
如果您看不懂代码,请告诉我。 希望得到帮助。谢谢。
【问题讨论】:
标签: python for-loop if-statement python-3.7