欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【机器学习】(十二)分类器的不确定度估计

程序员文章站 2022-05-20 19:35:05
...

分类器:不确定度估计

分类器不仅能够给出测试点属于哪一个类别,还包括它对这个预测的置信程度。
scikit-learn提供了两个函数可以用于获取分类器的不确定度估计函数:(大部分分类器至少含有其中一个)

决策函数decision_function
二分类问题返回形状为(n_samples, ),为每个样本返回一个浮点数。正值表示对正类(classes_[1])的偏好,负值对应其反类(classes_[0])。
多分类问题返回形状(n_samples,n_classes),每一列对用每个类别的确定度分数(浮点数)。
n_samples是样本数,n_classes是类别数。
浮点数的值可以在任意范围,取决于数据于模型参数。分数较高的可能性大,为预测结果。

预测概率predict_proba
返回形状(n_samples,n_classes),返回为0-1之间的类别概率。每个样本类别概率和为1。预测结果为类别概率大的分类。

如果模型给出的不确定度符合实际情况,那么这个模型被称为校正模型

在Iris数据集上应用GradientBoostingClassifier分类器

不确定度:

from sklearn.ensemble import GradientBoostingClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

iris = load_iris()
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=42)

gbrt = GradientBoostingClassifier(learning_rate=0.01, random_state=0).fit(x_train, y_train)

print(gbrt.decision_function(x_test).shape)
print(gbrt.decision_function(x_test)[:6, :])

print(gbrt.predict_proba(x_test).shape)
print(gbrt.predict_proba(x_test)[:6, :])

【机器学习】(十二)分类器的不确定度估计
预测结果:numpy.argmax(array, axis) 用于返回一个numpy数组中最大值的索引值。
【机器学习】(十二)分类器的不确定度估计