首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
1.1 为何选择机器学习
1.1.1 机器学习能够解决的问题
1.1.2 熟悉任务和数据
1.2 为何选择Python
1.3 scikit-learn
1.4 必要的库和工具
1.4.1 Jupyter Notebook
1.4.2 NumPy
1.4.3 SciPy
1.4.4 matplotlib
1.4.5 pandas
1.4.6 mglearn
1.5 Python 2 与Python 3 的对比
1.7 第 一个应用:鸢尾花分类
1.7.1 初识数据
1.7.2 衡量模型是否成功:训练数据与测试数据
1.7.3 要事第 一:观察数据
1.7.4 构建第 一个模型:k 近邻算法
1.7.5 做出预测
1.7.6 评估模型
2.1 分类与回归
2.2 泛化、过拟合与欠拟合
2.3 监督学习算法
2.3.1 一些样本数据集
2.3.2 k 近邻
2.3.3 线性模型
2.3.4 朴素贝叶斯分类器
2.3.5 决策树
2.3.6 决策树集成
2.3.7 核支持向量机
2.3.8 神经网络(深度学习)
2.4 分类器的不确定度估计
2.4.1 决策函数
2.4.2 预测概率
2.4.3 多分类问题的不确定度
3.1 无监督学习的类型
3.2 无监督学习的挑战
3.3 预处理与缩放
3.3.1 不同类型的预处理
3.3.2 应用数据变换
3.3.3 对训练数据和测试数据进行相同的缩放
3.3.4 预处理对监督学习的作用
3.4 降维、特征提取与流形学习
3.4.1 主成分分析
3.4.2 非负矩阵分解
3.4.3 用t-SNE 进行流形学习
3.5 聚类
3.5.1 k 均值聚类
3.5.2 凝聚聚类
3.5.3 DBSCAN
3.5.4 聚类算法的对比与评估
3.5.5 聚类方法小结
当前位置:
首页>>
技术小册>>
Python机器学习基础教程(上)
小册名称:Python机器学习基础教程(上)
### 2.4.1 决策函数 在Python机器学习的广阔领域中,决策函数(Decision Function)是一个核心概念,它直接关联到分类算法的输出层,是模型用于预测新样本类别的数学表达式。本节将深入探讨决策函数的基本原理、不同类型分类器中的决策函数表现形式,以及如何在Python中使用这些函数进行预测和评估。 #### 2.4.1.1 决策函数概述 决策函数是分类算法中的一个重要组成部分,它根据模型的参数和输入特征,直接计算出每个类别的“得分”或“距离”。这些得分或距离随后通过某种方式(如取最大值、阈值判断等)转化为最终的类别标签。与预测函数(predict method)不同,决策函数通常返回的是原始分数而非最终的类别标签,这使得它在进行概率估计、置信度分析等任务时尤为重要。 #### 2.4.1.2 线性分类器的决策函数 在线性分类器中,如逻辑回归(Logistic Regression)和线性判别分析(Linear Discriminant Analysis, LDA)中,决策函数通常表现为输入特征的线性组合。以逻辑回归为例,其决策函数形式如下: $$ f(x) = w^T x + b $$ 其中,$ x $ 是输入特征向量,$ w $ 是权重向量,$ b $ 是偏置项。对于二分类问题,逻辑回归通过sigmoid函数将$ f(x) $映射到(0, 1)区间内,作为属于正类的概率估计。然而,决策函数本身$ f(x) $直接给出了线性组合的结果,不经过sigmoid转换,这个值可以视为“对数几率”(log odds)或“线性得分”。 在LDA中,决策函数也表现为类似的线性形式,但LDA的目标是最大化类间散度与类内散度的比值,从而找到最佳的投影方向,使得投影后的数据在新空间中类间分离最大化。 #### 2.4.1.3 支持向量机(SVM)的决策函数 支持向量机(SVM)是一种强大的分类技术,其决策函数同样具有线性形式,但SVM的核心在于找到一个超平面,该超平面不仅正确分类训练数据,而且最大化两类数据之间的间隔(margin)。SVM的决策函数可以表示为: $$ f(x) = w^T x + b $$ 这里,$ w $ 和 $ b $ 的求解过程涉及到求解一个凸二次规划问题,其目标是最小化训练数据的分类误差(通过软间隔技术允许一定的错误)并最大化间隔。SVM的决策函数输出是点到超平面的距离,该距离的符号决定了样本的类别。 对于非线性SVM,通过引入核函数(Kernel Trick),可以将输入空间映射到一个更高维的特征空间,在这个空间中寻找线性超平面。尽管在原始输入空间中看起来是非线性的,但在特征空间中,决策函数仍然是线性的。 #### 2.4.1.4 决策树与随机森林的决策函数 与上述基于距离的线性或非线性分类器不同,决策树(Decision Trees)和随机森林(Random Forests)通过构建一系列的判断条件(决策节点)来进行分类。虽然它们没有显式的数学表达式作为决策函数,但每个内部节点实际上都在执行一个决策函数的角色,即根据输入特征的值将数据集分割成更小的子集。 随机森林通过构建多棵决策树并综合它们的预测结果来提高模型的稳定性和准确性。每棵树的决策过程可以视为一个复杂的条件逻辑系统,其“决策函数”是由这些条件逻辑组合而成的。 #### 2.4.1.5 Python中实现与应用 在Python中,我们可以使用`scikit-learn`库来轻松实现各种分类器,并访问它们的决策函数。以下是一个简单的示例,展示如何使用逻辑回归的决策函数: ```python from sklearn.linear_model import LogisticRegression from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split # 加载数据 X, y = load_iris(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 创建逻辑回归模型 clf = LogisticRegression(max_iter=200) clf.fit(X_train, y_train) # 访问决策函数 scores = clf.decision_function(X_test) # 打印部分样本的决策函数得分 print(scores[:5]) ``` 在上述代码中,`decision_function()`方法返回了测试集上每个样本对于每个类别的得分。对于多分类问题,这些得分通常是未经归一化的,表示样本属于各个类别的“原始”距离或分数。 #### 2.4.1.6 总结 决策函数是分类算法中至关重要的概念,它不仅直接决定了模型的预测结果,还为我们提供了深入理解模型内部工作原理的窗口。不同类型的分类器有着不同的决策函数形式,从简单的线性组合到复杂的条件逻辑系统,每一种都反映了其独特的分类机制和策略。在Python中,通过`scikit-learn`等强大的机器学习库,我们可以轻松实现这些分类器,并方便地访问和利用它们的决策函数进行进一步的分析和预测。
上一篇:
2.4 分类器的不确定度估计
下一篇:
2.4.2 预测概率
该分类下的相关小册推荐:
Python爬虫入门与实战开发(上)
Python甚础Django与爬虫
Python编程轻松进阶(四)
Python合辑10-函数
Python与办公-玩转Word
Python3网络爬虫开发实战(下)
Python高性能编程与实战
Python与办公-玩转Excel
机器学习算法原理与实战
Python合辑7-集合、列表与元组
Python高并发编程与实战
Python编程轻松进阶(二)