Python 数据分析实战:分类分析与决策树实现
何为分类分析
在机器学习和统计学中,分类(Classification)是基于包含其类别成员资格已知的观察(或实例)的训练数据集来识别新观察所属的一组类别(子群体)中的哪一个的问题。例如,将给定的电子邮件分配给'垃圾邮件'或'非垃圾邮件'类,并根据观察到的患者特征(性别、血压、某些症状的存在或不存在等)为给定患者分配诊断。分类是模式识别的一个典型例子。
在机器学习的术语中,分类被认为是监督学习(Supervised Learning)的一个实例,即学习可以获得正确识别的观察的训练集的情况。相应的无监督程序称为聚类(Clustering),并涉及基于固有相似性或距离的某种度量将数据分组,而无需预先定义的标签。
通常,将各个观察结果分析为一组可量化的属性,不同地称为解释变量或特征(Features)。这些属性可以不同地分类(例如,'A','B','AB'或'O',对于血型),序数(例如'大','中'或'小'),整数值(例如,电子邮件中特定单词的出现次数)或实际值(例如血压的测量值)。
实现分类的算法,特别是在具体实现中,被称为分类器(Classifier)。术语'分类器'有时也指由分类算法实现的数学函数,其将输入数据映射到类别。
跨领域的术语是多种多样的。在统计中,通常使用逻辑回归或类似程序进行分类,观察的属性称为解释变量(或独立变量,回归量等),要预测的类别称为结果,被认为是因变量的可能值。在机器学习中,观察通常被称为实例,解释变量被称为特征(被分组为特征向量),并且要预测的可能类别是类。其他领域可能使用不同的术语:例如,在社区生态学中,术语'分类'通常是指聚类分析,即一种无监督学习,而不是本文中描述的监督学习。
常用分类算法详解
常用的分类算法各有优劣,适用于不同的场景:
- 朴素贝叶斯(Naive Bayes):基于贝叶斯定理与特征条件独立假设的分类方法。计算简单,对小规模数据表现良好,常用于文本分类。
- 逻辑回归(Logistic Regression):虽然名字中有回归,但实际上是一种分类算法。它通过 Sigmoid 函数将线性回归的输出映射到 (0,1) 之间,输出概率值。适用于二分类问题,且能提供概率解释。
- 决策树(Decision Tree):通过一系列规则对数据进行划分,形成树状结构。易于理解和可视化,能够处理非线性关系,但容易过拟合。
- 随机森林(Random Forest):基于 Bagging 思想的集成学习方法,由多个决策树组成。通过投票机制提高准确率,减少过拟合风险,鲁棒性强。
- 支持向量机(SVM):寻找一个超平面使得不同类别的样本间隔最大化。在高维空间中表现优异,适合小样本、非线性及高维模式识别。
分类分析使用场景
用于分类预测
分类的主要用途和场景是'预测',基于已有的样本预测新样本的所属类别。例如信用评级、风险等级、欺诈预测等;同时,它也是模式识别的重要组成部分,广泛应用到机器翻译、人脸识别、医学诊断、手写字符识别、指纹识别的图像识别、语音识别、视频识别的领域;另外,分类算法也可以用于知识抽取,通过模型找到潜在的规律,帮助业务得到可执行的规则。
提炼应用规则
为数据化运用提供规则,也是分类分析的主要应用方向。例如:
- 对沉默会员做会员重新激活,应该挑选具有何种特征会员
- 商品选取何种促销活动清仓
- 哪些广告更适合 VIP 商家的投放需求
提炼特征规则利用的是在构建分类算法时产生的分类规则。
提取变量特征
从大量的输入变量的重要性特征,然后提取权重较高的几个特征是分类分析的重点应用之一。是数据归约和数据降维的重要方式。获取原始数据集并对数据预处理,然后将数据集放到分类算法中进行训练,然后从算法模型中提取特征权重信息。
处理缺失值
将缺失字段作为目标变量进行预测,从而得到较为可能的补全值。这是一种常见的数据清洗策略。
分类分析算法的选取
选择合适的算法对于模型效果至关重要:
- 文本分类:用到最多的是朴素贝叶斯,因其对词频特征敏感且计算高效。
- 训练集比较小:选择高偏差且低方差的分类算法效果较好,如朴素贝叶斯、支持向量机,这些算法不容易过拟合。
- 训练集比较大:选取何种方法都不会显著影响准确度,此时可考虑更复杂的模型如神经网络或深度集成方法。
- 省时好操作:选用支持向量机,不要使用神经网络,因为后者调参复杂且耗时。





