【Python机器学习】多分类问题的不确定度

decision_function和predict_proba也适用于多分类问题。还是以鸢尾花数据集为例:

python 复制代码
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.datasets import make_circles,load_iris
import numpy as np
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=0
)

gbrt=GradientBoostingClassifier(learning_rate=0.01,random_state=0)
gbrt.fit(X_train,y_train)
print('决策函数结果的形状:{}'.format(gbrt.decision_function(X_test).shape))
print('决策函数结果:{}'.format(gbrt.decision_function(X_test)[:6,:]))

可以看到,对于多分类的情况, decision_function的形状为(n_samples,n_classes),每一列对应每个类别的"确定度分数",分数较高的类别可能性更大,得分较低的分类可能性小,可以找到每个数据点的最大元素,也就是预测结果:

python 复制代码
print('决策函数得分最高的分类:{}'.format(np.argmax(gbrt.decision_function(X_test),axis=1)))
print('模型预测结果:{}'.format(gbrt.predict(X_test)))

predict_proba输出的形状相同,也是(n_samples,n_classes),每个数据点的所有可能类别的概率相加为1:

python 复制代码
print('预测每个分类的概率:{}'.format(gbrt.predict_proba(X_test)[:6]))

总之,decision_function和predict_proba的形状始终相同,都是(n_samples,n_classes)

相关推荐
paopao_wu2 分钟前
LangChainV1.0[05]-记忆管理
人工智能·python·langchain·ai编程
佛祖让我来巡山2 分钟前
Numpy
机器学习·数据分析·numpy·矢量运算
007不打工人13 分钟前
STC-GS安装pip install submodules/diff-gaussian-rasterization-radar报错
人工智能·机器学习
头发够用的程序员16 分钟前
Ultralytics 代码库深度解读【六】:数据加载机制深度解析
人工智能·pytorch·python·深度学习·yolo·边缘计算·模型部署
No0d1es21 分钟前
2025年12月 GESP CCF编程能力等级认证Python二级真题
开发语言·python·青少年编程·gesp·ccf
num_killer34 分钟前
小白的Jenkins学习
运维·python·学习·jenkins
青春不败 177-3266-052035 分钟前
python语言生物信息多组学大数据深度挖掘与论文整理技巧
开发语言·python·生物信息·多组学·高通量测序
雨大王51238 分钟前
汽车焊接工艺自适应控制技术的系统解析与工业实践
人工智能·python·汽车
540_54039 分钟前
ADVANCE Day43
人工智能·python·深度学习
小途软件40 分钟前
基于深度学习的垃圾识别分类研究与实现
人工智能·pytorch·python·深度学习·语言模型