【问题标题】:How good are the predictions relative to the true values?相对于真实值的预测有多好?
【发布时间】:2018-12-05 15:23:38
【问题描述】:
import pickle

def compare_pred_with_true_values(weights):
    for vect in weights:
        if vect[1] <= 0.5:
            vect[1] = 0
        else:
            vect[1] = 1
    return weights

def counter(weights): 
    count_0_knowing_0 = 0
    count_1_knowing_1 = 0
    count_0_knowing_1 = 0
    count_1_knowing_0 = 0

    for vect in weights:
        if int(vect[0])==0 and vect[0]==vect[1]:
            count_0_knowing_0 += 1
        elif int(vect[0])==1 and vect[0]==vect[1]:
            count_1_knowing_1 += 1
        elif int(vect[0])==1 and vect[0]!=vect[1]:
            count_0_knowing_1 += 1
        else: 
            count_1_knowing_0 +=1

    json = {"count_0_knowing_0": count_0_knowing_0,
            "count_1_knowing_1": count_1_knowing_1,
            "count_0_knowing_1": count_0_knowing_1,
            "count_1_knowing_0": count_1_knowing_0}
    return json


if __name__ == "__main__":
    weights = pickle.load(open("weights_extension.pkl", "rb"))
    weights = [[vect[0], vect[1]] for vect in weights]

    weights_copy = compare_pred_with_true_values(weights)
    json = counter(weights_copy)
    print(json)

weights 只是[[0, 0.0013], [1, 0.578], ..., [0, 0.0012]] 形式的列表,输出为{"count_0_knowing_0": 4283, "count_1_knowing_1": 39717, "count_0_knowing_1": 1283, "count_1_knowing_0": 320} 该代码用于查看“预测相对于真实值有多好?”

代码开始时用于测试,但现在我需要将其插入到我的主代码中,但这远非最佳。我不知道我们是否能找到一个可以做同样工作的 python 库。使用 Scikit-learn 还是 scipy?

我们如何扩展该代码以便它可以处理多种类型的标签?这里使用标签 0 和 1,但是我们可以扩展它以便它可以使用标签 {-n, .., -2, -1, 0, 1, 2, 3, 4, ..., m}

【问题讨论】:

  • 是的,有一种简洁的方法。任何重复都可以*删除。你在哪里迷茫? *在这种情况下

标签: python machine-learning


【解决方案1】:

counter() 函数可以这样写:

首先,像这样创建json 变量:

json = {'count_{!s}_knowing_{!s}'.format(a, b): 0
        for a in range(2) for b in range(2)}

然后,像这样引用变量:

count_0_knowing_0

变成……

 json['count_0_knowing_0']

然后在最后只是return json 而无需再次创建 json 变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2018-11-04
    • 2021-09-05
    相关资源
    最近更新 更多