新聞中心
什么是PR查詢,掌握PR查詢方法

站在用戶的角度思考問題,與客戶深入溝通,找到河源網(wǎng)站設(shè)計與河源網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋河源地區(qū)。
1. PR查詢簡介
PR(Precision-Recall)是一種用于評估分類模型性能的指標,主要用于衡量模型在召回率(Recall)和精確度(Precision)之間的平衡,PR查詢是指通過計算不同閾值下的PR值,來確定最佳閾值的方法,這種方法可以幫助我們找到一個既能滿足精確度要求,又能達到較高召回率的閾值。
2. PR查詢方法
PR查詢主要包括以下幾個步驟:
2.1 準備數(shù)據(jù)
我們需要準備一個包含真實標簽和預(yù)測標簽的數(shù)據(jù)集,數(shù)據(jù)集通常是一個二維數(shù)組,其中每一行表示一個樣本,第一列是真實標簽,第二列是預(yù)測標簽。
import numpy as np
data = np.array([
['A', 'B'],
['B', 'A'],
['A', 'A'],
['B', 'B']
])
2.2 計算混淆矩陣
接下來,我們需要計算混淆矩陣,混淆矩陣是一個二維數(shù)組,其中行表示實際類別,列表示預(yù)測類別,對于每個樣本,我們可以將其真實標簽和預(yù)測標簽填入混淆矩陣中。
def confusion_matrix(data):
y_true = [row[0] for row in data]
y_pred = [row[1] for row in data]
return np.histogram2d(y_true, y_pred, bins=[2, 2])[0] / len(data)
cm = confusion_matrix(data)
print("Confusion Matrix:")
print(cm)
2.3 計算PR值
有了混淆矩陣后,我們可以計算PR值,PR值是一個二維數(shù)組,其中每個元素表示對應(yīng)閾值下的PR值,我們可以通過遍歷所有可能的閾值來計算這些值。
def pr_values(cm):
n = cm.shape[0] * cm.shape[1]
precision = np.zeros((n, n))
recall = np.zeros((n, n))
tp = np.diag(cm)
fp = np.sum(cm, axis=0) tp
fn = np.sum(cm, axis=1) tp
for i in range(n):
for j in range(n):
if i == j:
precision[i][j] = (tp[i] + tp[j]) / (tp[i] + fp[i] + fn[j]) if (tp[i] + tp[j]) > 0 else 0.5
recall[i][j] = tp[i] / (tp[i] + fn[j]) if (tp[i] + fn[j]) > 0 else 0.5
elif i < j:
precision[i][j] = precision[j][i] = (tp[j] + tp[i]) / (tp[j] + fp[j] + fn[i]) if (tp[j] + tp[i]) > 0 else 0.5
recall[i][j] = recall[j][i] = (tp[j] + tp[i]) / (tp[j] + fn[i]) if (tp[j] + fn[i]) > 0 else 0.5
else:
continue
idxs = np.argsort(recall[:, ::-1], axis=1)[:, ::-1].flatten()
max_idx = np.argmax(precision) if precision.any() else None
max_recall = recall[idxs, max_idx] if max_idx is not None else None
max_precision = precision[idxs, max_idx] if max_idx is not None else None
max_fscore = max_precision * max_recall if max_precision and max_recall else None
max_idxes = [np.unravel_index(idxs == i, recall.shape) for i in range(len(idxs)) if i != max_idx] if max_idx is not None else []
max_pr = [(precision[r], recall[r], fscore) for r in max_idxes] if max_idxes else []
return max_pr, max_recall, max_precision, max_fscore, max_idxes, cm[:, ::-1].T @ cm[:, ::-1].T == np.eye(2) * n
分享題目:什么是pr查詢,掌握pr查詢方法
新聞來源:http://www.5511xx.com/article/dheposc.html


咨詢
建站咨詢
