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

相关推荐
z44247532613 小时前
新买的电脑装哪个HTML函数工具最匹配_开箱即用教程【教程】
jvm·数据库·python
测试员周周13 小时前
【踩坑系列3】飞书机器人集体“失联“?3 个 Gateway 进程让我差点崩溃!一个测试老兵的排查实录
java·python
m0_7349497913 小时前
如何结合计划任务实现自动定时备份任务配置_全自动化运维管理
jvm·数据库·python
zhangzeyuaaa14 小时前
深入理解 Python GIL:从机制到释放时机
java·网络·python
PSLoverS14 小时前
c++如何读取和修改可执行文件的PE头信息_IMAGE_NT_HEADERS解析【进阶】
jvm·数据库·python
gmaajt14 小时前
React Native 单元测试中第三方依赖的正确 Mock 策略
jvm·数据库·python
明月照山海-14 小时前
机器学习周报四十二
机器学习
a95114164214 小时前
宝塔面板数据库查询响应慢_利用慢查询日志进行优化
jvm·数据库·python
zhangzeyuaaa14 小时前
深入理解 Python 进程间通信:Queue 与 Pipe 实战解析
网络·python·中间件
2401_8314194414 小时前
如何用 http 模块创建一个基础的 Web 服务器处理请求
jvm·数据库·python