理论加案例,一文读懂数据分析中的分类建模

一、什么是分类

分类,是数据建模领域的重要分支,你每天也都会接触。

手机垃圾短信过滤,就是分类算法给短信打的标签,比如0代表正常短信,1代表垃圾短信。

1.png

在医学领域,根据影像检查判断肿瘤是良性还是恶性。在工业领域,根据设备工作特征做故障诊断。在材料领域,根据配方快速预测新材料的特性是否符合要求。

前面这些例子大多是二分类,即只有两个标签,更细的还有多分类。

比如电子邮件分为正常邮件、广告邮件、垃圾邮件或钓鱼邮件。贷款风险评估,分类为高风险中风险低风险。工厂的质量控制,分类为一级品、二级品以及废品。

 

二、分类算法

分类算法的核心逻辑是找到数据中特征与标签之间的映射关系。简单来说,就是找到一个“函数”,根据输入数据的特征,准确地判断数据所属的类别。

2.png

根据算法原理和实现方式,分类算法可以分为线性算法,非线性算法和集成学习算法。这三类算法分别适合不同的建模场景,训练出的模型复杂度一般也越来越高。

针对每一大类,数据建模软件DTEmpower也内置了多种算法。

3.png

比如线性算法里的逻辑回归算法Logistic,它的优点是简单高效计算成本低,且可解释性强,比如你能通过模型看出某个特征的重要性。

但线性算法更适合特征与目标变量之间存在线性关系的场景。所谓线性关系,就是因变量y可以写成y=ax1+bx2+cx3…这种形式。

4.png

非线性分类算法里的比较著名的KNN,K近邻算法。它的优点是原理简单且能处理非线性数据,对异常值不敏感。但缺点就是计算效率低,处理大数据时比较慢,因此也更适合数据量不大且数据集维度不高的情况。

集成学习算法里,RandomForest随机森林算法很有代表性,它最显著的优点是抗过拟合能力强。

所谓过拟合,指的是模型在训练数据上表现非常好,精度很高。但遇到新数据,精度就崩了。

除了抗过拟合,随机森林算法的鲁棒性也很强。如果数据存在异常值,模型也不会有明显的精度下降。

当然凡事都有两面性。随机森林算法的缺点之一就是模型训练过程的计算量大,而且得到的模型是一个黑箱模型。

相比线性模型,黑箱模型的可解释性差多了,你给它输入,它给你输出。这个结果的精度可能很高,但如果我问你它为什么输出这个结果,你很难解释清的。

下面我列出常见分类算法的优缺点以及适用场景,就不逐个介绍了。

5.png

之所以不逐个介绍,第一是我怕你睡着。

第二,即使你知道了每种算法的优缺点,当接触一个新场景或者拿到一组新数据,你也还依然不知道用什么算法。

比如我给你一个数据集,你怎么会知道变量之间是线性还是非线性关系呢?

6.png

实际的算法选择过程,都有一定的尝试成分。从易到难,从简到繁,最终在模型精度和计算量之间做权衡。

在实际操作时,我们推荐逻辑回归和决策树这两个基线算法。它们操作简单,易上手且性能尚可。当你不知道用什么算法时,就可以尝试用基线算法。

7.png

如果基线算法不满足要求,或者你想做更进一步的探索,可以再尝试其它的进阶算法。

比如集成学习算法里的Bagging算法,就可以作为首选的进阶算法。这种算法操作简单,且鲁棒性高,在处理高维度数据时表现不错。

 

三、分类模型可视化工具

你多次尝试之后,关键的问题来了,如何判断模型的好坏呢?

接下来介绍决策边界、混淆矩阵和ROC 曲线三个可视化工具,它们构成了判断模型精度的“黄金三角”。

第一个,决策边界

假设你有一堆手办,共分为两种,一种会打篮球,一种不会。现在你画一条线,把它们分成了两类。这条线,就是我们今天要讲的决策边界。

8.png

简单来说,决策边界就是分类模型用来区分不同类别数据的“分界线”。

第二个,混淆矩阵。

混淆矩阵其实是一个表格,展示了分类模型预测标签和实际标签之间的关系。

9.png

对于二分类,它就是一个2X2的表格,左上表示实际为正,预测也为正,预测对了,True Positive,简称TP。

右下表示实际为负,预测也为负数,也预测对了,True Negative, 简称TN。

那么另外两个区域,就表示预测错了,一个叫False Negative, FN。另一个叫False Positive, FP。

显然,TP+TN通常越大越好。因此判定模型的好坏,也有一个定量指标叫准确率。另外还有精确率、召回率和F1分数这几个指标,也都比较常用。

10.png

第三个,ROC曲线,全称叫受试者工作特征曲线(Receiver Operating Characteristic Curve)。

ROC曲线所在坐标的横轴叫假阳性率,也就是实际为负,但被预测为正的比例。纵轴是召回率,也就是实际为正,且被预测为正的比例。

11.png

下面说说这个曲线是如何生成的。

分类模型在做预测分类时,你觉得它对预测结果有百分百的信心吗?显然不会。

它实际是通过概率判断的,比如计算发现某个样本属于A类的概率是70%,你如果设置阈值是50%,那么你就可以输出结果判定这个样本属于A类。

当然,如果计算之后发现这个样本属于A类的概率只有40%,那你就能输出结果,判定它不属于A类。

所以,你设定的阈值不同,模型的表现也不同。

OK,下面做三件事。

第一,选择一系列不同的阈值。

第二,对于每一个阈值,计算出当前的假阳性率和召回率。

第三,把这些点连起来,就得到了ROC曲线。

12.png

如果你不做数据建模,而是随机猜测的,也就是分类正确的概率是50%,那么生成的ROC曲线就是从(0,0)到(1,1)的一条直线。

从ROC曲线的定义可知,这个曲线越靠近左上角,表示模型精度越高。所以ROC曲线也有个定量值,叫曲线下面积,简称AUC。显然,曲线下的面积AUC越大,也表示曲线越靠近左上角。

13.png

介绍完三种工具,那么最终如何判断呢?

通常情况下,你看混淆矩阵时,左上角和右下角的数越大越好。看ROC曲线时,曲线上方的面积越小越好。

为什么说通常情况下?因为分类模型好坏的判断,必须要结合业务背景。

举个例子,在地震预测时,我们希望尽可能预测到所有的地震,哪怕这些预测到的地震中只有少数真正发生了,这个时候我们就可以牺牲精确率。宁愿发出100 次警报但只对 10 次,也不希望预测了 10 次,但只有 8 次正确而漏掉2次,因为只要有 1 次地震没预测到都会造成巨大的损失。这是一个 “宁可抓错,不可放过” 的场景。

但另一个场景,垃圾邮件分类,我们虽然希望模型能够找到所有的垃圾邮件,但一旦有一封正常邮件被分到了垃圾信箱里,你肯定很生气。所以这时候宁可漏掉垃圾邮件,也不能把正常邮件分错。这就是一个“宁可放过,不可抓错” 的场景。

14.png

能体会出来吧?在不同的场合,我们在建模时需要根据实际情况,通过查看不同的参数指标来判断分类模型质量。

 

四、分类建模案例

理论部分讲解差不多了,下面做一个实际的数据建模分类案例。

工程背景是某种新材料的研制,这种材料由很多种配方组成,不同的组成对应不同的材料性能。

工厂经过多年的积累,已经有了大量数据。其中前83列是原材料,后面几列是配方对应的材料性能。而我们关心的是最后一列,耐弯折性。1表示耐弯折性达标,0表示不达标。

15.png

我们数据建模想做的事,是得到一个分类模型。基于这个模型,你输入一种新的配方,让模型判断配方组成的新材料的耐弯折性是否达标,省去做实验测试的过程。

开始操作。启动DTEmpower,新建工程选择专业模式,之后在画布上依次拖入数据读取、变量剔除、空值处理、变量设定、数据分割节点,然后依次连线,表示数据传递。

16.png

数据读取、变量剔除就不解释了,字面意思很简单。

空值处理的作用是删除存在空值的数据行,而数据分割是将数据分为训练集和测试集,默认按照3:1的比例分割。训练集用来训练模型,测试集用来测试模型精度。

再然后,拖入分类算法节点。这里我拖入极端随机树算法,节点配置保持默认。

注意,软件默认是打开交叉验证的,交叉验证是数据建模领域的一个重要概念,也是DTEmpower软件的底层能力。

交叉验证核心思想是:将数据集分成若干份,轮流使用其中一份作为验证集,其余的作为训练集,最后对模型进行多次的训练和评估,以检验模型的泛化能力。当然,打开交叉验证之后,也会增加训练时间。

最后再拖入模型对比节点,模型对比节点能给出分类算法的定量精度值。而计算计算精度值时,基于的数据就是数据分割节点分出来的测试集。

17.png

模型训练结束后,单击得到的分类模型,能看到模型信息,包括决策边界、ROC曲线以及混淆矩阵。

决策边界,能看出来有一条曲线,把界面分成了两部分,能大概展示模型对训练集的拟合程度。

18.png

混淆矩阵,可以看出来实际为0且预测为0的数据有26个。实际为1预测也为1的值有36个。

19.png

ROC曲线,它绘制了两条曲线,分别是0和1的。同时也给出了AUC的值,巧了,都是0.86。这个表现还不错,说明模型具有良好的区分能力。

20.png

这就是我们用随机树算法训练得到的分类模型,你如果感兴趣的话,可以尝试用其它算法试试,看能不能得到精度更高的模型。

欢迎前往天洑官网下载软件,免费试用30天,即下即用。

21.png

相关软件
Logo
DTEmpower 智能数据建模软件
DTEmpower数据建模软件是南京天洑软件有限公司通过对工业企业数据建模需求的深度挖掘,研发了一套针对工业用户的数据建模软件。数据建模软件DTEmpower围绕数据清理、特征生成、敏感性分析和模型训练等数据建模的各个环节,提供有大量算法。通过针对特定场景下算法的深度研发,利用智能调度引擎和超参优化等技术,提高模型质量的同时,降低了对用户数据建模经验的需求。同时DTEmpower提供一套图形化的建模开发环境,所有算法均可通过拖拽的方式进行调用,通过连线的方式进行数据的传递,大幅降低了用户的使用门槛。依托强大的算法和简便的操作,零基础用户也可以利用DTEmpower快速挖掘到优秀的模型。
相关厂商
logo
南京天洑软件有限公司
1.6w浏览
    南京天洑软件有限公司为中国智能工业软件研发领域的高新技术企业,专注于中国自主知识产权的智能设计、快速仿真、优化、运维类工业软件的研发。公司成立于2011年5月20日,总部位于南京,在北京、大连、宁波、上海、青岛、杭州、深圳设有分公司或子公司。 天洑自主研发的主打软件产品:智能热流体仿真软件AICFD、智能结构仿真软件AIFEM、智能优化设计软件AIPOD、智能数据建模软件DTEmpower、工业AI底座TFIIF、叶轮机械智能化设计软件AITurbo。 天洑在提供软件产品的同时,亦为企业客户提供定制开发服务,包括CAE前后处理开发、专用求解器开发、工业设计平台搭建、人工智能平台开发、辅助工具开发等。 天洑拥有一支由多名清华大学博士构成的经验丰富的研发和技术团队,聚合了强大的软件研发背景、智能制造背景、智能设计背景、智能运维背景、工程仿真技术背景和各行业的工程应用背景。天洑自成立以来一直坚持代码自主可控的自研道路,坚持核心求解器自主研发。天洑在业内率先采用AI加速算法体系,克服了流体及结构仿真分析耗时过长的业界难题。经过11年不断创新,天洑软件多款产品性能国际...
 
相关阅读
返回顶部