💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在优快云上与你们相遇~💖
本博客的精华专栏:
【自动化测试】 【测试经验】 【人工智能】 【Python】
Sklearn 机器学习:数值指标与 Sigmoid 函数全解析
在机器学习中,数值输出指标(如概率、得分、置信度)不仅是模型性能评估的关键依据,更是模型可解释性的基础。而 Sigmoid 函数 则是连接模型输出与概率的重要桥梁,在逻辑回归、神经网络等模型中被广泛应用。
本文将带你深入理解 Sklearn 中常见的数值输出类型,并系统解析 Sigmoid 函数的数学原理、实际用途与可视化呈现,助你建立更扎实的模型解释基础。
🔍 一、Sklearn 中的数值输出有哪些类型?
在 Sklearn 中,分类模型的输出通常有三种:
1. 分类预测值(predict
)
用于输出离散的类别标签,是最常见的预测方式:
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train, y_train)
pred_class = model.predict(X_test)
print(pred_class[:5])
示例输出:
[1 0 0 1 1]
这代表模型对每个样本的直接分类判断。
2. 概率预测值(predict_proba
)
返回每个样本属于每个类别的概率。是许多评估指标(如 ROC/AUC)计算的基础:
prob = model.predict_proba(X_test)
print(prob[:3])
输出示例:
[[0.12 0.88]
[0.34 0.66]
[0.90 0.10]]
- 每行代表一个样本;
- 每列代表一个类别的概率(通常类别 0 在前,类别 1 在后);
- 多分类问题中,列数 = 类别数。
☑️ 额外说明:predict
的结果其实是 predict_proba
中最大概率对应的类别。
3. 决策函数得分(decision_function
)
该方法输出模型对样本的“原始打分值”或“边界距离”,对某些模型(如 SVM 和逻辑回归)非常有用:
score = model.decision_function(X_test)
print(score[:5])
输出:
[-1.23 0.87 2.45 -0.56 0.00]
- 对逻辑回归而言,这些值是对数几率(log-odds)
- 正值表示偏向正类,负值表示偏向负类
- 数值越大,模型对其所属类别的“置信”越高
☑️ 注意:虽然 SVM 也提供 decision_function
,但不能直接通过 Sigmoid 将其映射为概率。
🔗 二、三种输出之间的联系
上述三种输出之间存在内在联系,特别是:
predict_proba
是通过某种概率映射函数(如 Sigmoid)从原始得分(decision_function
)变换而来predict
实际是选取predict_proba
最大的那个类别
那么,Sigmoid 函数是如何完成这一步概率映射的呢?
🧮 三、Sigmoid 函数数学原理
Sigmoid 函数将任意实数映射到 (0, 1) 区间,非常适合用来表示概率:
σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1 + e^{-z}}