我建立了一些分类器(朴素贝叶斯,K最近邻,逻辑回归),它们使用两个变量。使用classifier.predict_proba,它将生成给定数据点适合该类别的概率。
我想做的是与此相反,因此,如果我给它指定的概率(例如0.5),我将能够获得可能数据点的列表。希望我能在每个轴上用一个变量绘制它。
我能想到的最好的主意是运行循环以遍历变量的每个可能组合,为每个变量生成概率,然后将所有这些都放入一个巨大的数据框中,例如[variable1,variable2,概率]。然后,我可以选择所有概率为0.5(或更可能在0.495至0.505范围内)的数据点。
我宁愿希望有更好的方法来完成所有这些工作。
nb_classifier = GaussianNB()
nb_classifier.fit(m_d_train, labels_train)
all_combinations = []
for m in range(100):
for d in range(100):
p = nb_classifier.predict_proba([[m,d]])[0][1]
all_combinations.append([m, d, p])
df = pd.DataFrame(all_combinations, columns=['m', 'd', 'p'])
p_half = df[(df.p > 0.495) & (df.p < 0.505)]