【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)

相关推荐
唐叔在学习9 分钟前
Python桌面端应用最小化托盘开发实践
后端·python·程序员
2501_9454235410 分钟前
使用Fabric自动化你的部署流程
jvm·数据库·python
2401_8463416512 分钟前
用Pandas处理时间序列数据(Time Series)
jvm·数据库·python
未知鱼22 分钟前
Python安全开发之子域名扫描器(含详细注释)
网络·python·安全·web安全·网络安全
2401_8318249625 分钟前
编写一个Python脚本自动下载壁纸
jvm·数据库·python
2401_8579182935 分钟前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
今儿敲了吗38 分钟前
python基础学习笔记第九章——模块、包
开发语言·python
二闹1 小时前
Python文件读取三巨头你该选择哪一个?
后端·python
独断万古他化1 小时前
Python+Pytest 接口自动化测试实战 —— 抽奖系统接口测试框架设计与实现
python·pytest·接口自动化·测试·allure·yaml·json schema
沪漂阿龙1 小时前
Python 面向对象编程完全指南:从新手到高手的进阶之路
开发语言·python·microsoft