使用 SciKit Learn 进行机器学习的置信度分数?
Confidence score for machine learning with SciKit Learn?
我学习了一个将 SciKit Learning 的机器学习应用于面部识别的例子。
https://scikit-learn.org/stable/auto_examples/applications/plot_face_recognition.html#sphx-glr-auto-examples-applications-plot-face-recognition-py
我已经能够成功地使示例适应我自己的数据。但是,我迷失了一点:
在准备数据、训练模型之后,最终,您会得到以下行:
Y_pred = clf.predict(X_test_pca)
这会产生一个预测向量,每张脸一个。
我想不通的是如何获得与之对应的任何置信度测量值。
分类方法是一种强制选择,因此传入的每张面孔都必须被归类为已知面孔之一,即使它不是很接近。
我如何获得每张脸的数字,以反映结果与已知人脸的匹配程度?
您似乎在寻找 scikit-learn
估算器的 .predict_proba()
方法。它 returns 可能结果的概率而不是单一预测。
您所指的示例使用的是 SVC
。这个函数有点特别,因为它指出:
The model need to have probability information computed at training time: fit with attribute probability
set to True.
因此,如果您使用与示例中相同的模型,请将其实例化为:
SVC(kernel='rbf', class_weight='balanced', probability=True)
并使用 .predict_proba()
而不是 .predict()
:
y_pred = clf.predict_proba(X_test_pca)
这个 returns 形状数组 (n_samples, n_classes),即每个 class 的概率每个样品。例如,可以通过调用 y_pred[k]
来访问 class k
的概率。
我学习了一个将 SciKit Learning 的机器学习应用于面部识别的例子。 https://scikit-learn.org/stable/auto_examples/applications/plot_face_recognition.html#sphx-glr-auto-examples-applications-plot-face-recognition-py
我已经能够成功地使示例适应我自己的数据。但是,我迷失了一点:
在准备数据、训练模型之后,最终,您会得到以下行: Y_pred = clf.predict(X_test_pca)
这会产生一个预测向量,每张脸一个。 我想不通的是如何获得与之对应的任何置信度测量值。
分类方法是一种强制选择,因此传入的每张面孔都必须被归类为已知面孔之一,即使它不是很接近。
我如何获得每张脸的数字,以反映结果与已知人脸的匹配程度?
您似乎在寻找 scikit-learn
估算器的 .predict_proba()
方法。它 returns 可能结果的概率而不是单一预测。
您所指的示例使用的是 SVC
。这个函数有点特别,因为它指出:
The model need to have probability information computed at training time: fit with attribute
probability
set to True.
因此,如果您使用与示例中相同的模型,请将其实例化为:
SVC(kernel='rbf', class_weight='balanced', probability=True)
并使用 .predict_proba()
而不是 .predict()
:
y_pred = clf.predict_proba(X_test_pca)
这个 returns 形状数组 (n_samples, n_classes),即每个 class 的概率每个样品。例如,可以通过调用 y_pred[k]
来访问 class k
的概率。