5分钟玩转机器学习,0门槛体验人工智能

15786616462904e2926393cc17540a73-picture

一、概述

为了让大家可以简单拍出好看的照片,手机厂家和拍照APP公司不断优化拍照效果,让没有任何设计基础的普通用户也能拍出色彩饱满的美丽照片;

为了让网站搭建变得简单,现在有大量可视化建站工具辅助网站搭建,无需html,css,js基础,也能够快速搭建出移动网站;

机器学习同样如此,为了让AI技术更好的辅助商业决策,并更加易于使用,阿里PI,第四范式,九章云极,DataRobot等公司提供了解决方案–可视化机器学习实验平台,只要您手中有数据,并理解数据的含义,便可以通过简单拖拽完成二分类、多分类,聚类或协同推荐等负责机器学习模型训练。

AlphaGo一战成名,利用深度学习算法,战胜国际象棋冠军李世石,随后Mater更是以60:0的战绩横扫世界围棋大师,让世人看到了AI的强大,也知道了深度学习这个名词,但深度学习只是AI的一个方向,如下图所示:

63b6135ca3d85847a14e01d50245ef75-picture

深度学习在自然语言处理,语音识别,图像识别,模式识别等领域应用较多;而在商业智能、辅助决策、智能推荐等领域,机器学习技术更加成熟。

笔者今天和大家分享的是如何使用工具–第四范式先知平台,只需简单拖拽,5分钟便可以快速搭建一个心脏病预测实验。也就是将各种检查指标输入系统后,自动判定是否患有心脏病的一个机器模型。

二、5分钟玩转机器学习

2.1平台注册

输入网址:https://www.4paradigm.com/

点击右侧【点击试用】并注册账号

2.2数据准备及理解

心脏病是人类健康的头号杀手。全世界1/3的人口死亡是心脏病引起的。而我国,每年有几十万人死于心脏病,通过数据挖掘方式,分析不同特征对于心脏病的影响,预测是否患有心脏病意义重大,下文实验数据源于UCI开源数据集,所用数据为真实数据,包含了303条美国某区域的心脏病检测患者的数据,点击下方链接下载数据,实验数据笔者已经完成预处理,您可以可以到UCI主页选择其他数据做机器学习尝试。

数据意义如下所示:

e89d4f18e061fe0df88da1491b50f4eb-picture

status为目标数据,也就是判定是否患有心脏病的目标数据。

2.3机器学习实验构建

1、导入数据

进入先知系统,鼠标移至最左侧,点击我的数据

bb4965f775ad4556db83fbbdda81891c-picture

选择【本地文件】,上传刚刚下载的《心脏病预测数据.csv》文件,打开文件收房为字段名和随机预览按钮,确认无误后点击下一步,如下图所示:

1192e0cd9d7ca13618005ceadae1e836-picture

为数据表命名,点击确定,数据引用需要一段时间,状态变成【可用】时便可以继续操作了。

b0a3fcbfa326e84e0646f5b516acbc37-picture

2、新建项目并添加组件

进入先知系统,点击项目汇总后面的加号,新建项目,如下图所示:

2789ec6b5ce37513c2efcd0481abf3b4-picture

点击【项目数据】,点击数据源后面加号,选择刚刚导入数据,如下所示:

8fd1d8c09ba06a9aafaa79b527df843c-picture

按照提示顺序,将组件拖拽到画布当中,并完成链接,如下所示:

86ed7af6d7f87dd32c7fe61bdc2c1b80-picture

3、设置参数

点击数据拆分:选择拆分比例0.8

点击特征抽取:选择打开脚本编辑框,点击生成配置,输入目标值status,点击覆盖现有配置,然后点击保存,按照同样设置填写右侧特征抽取组件。

569f88e9d9596255c2e1117cb49eca0d-picture

拆分组件选择

fd27074479a61b036fbb5281a5d980a1-picture

点击评估组件,score字段输入prediction_score,目标值字段选择输入target_status。

e821464804fd07e10e65de23b821baa7-picture

4、运行并查看评估结果

点击底部【启动】,等待所有组件运行完成后,右键点击评估组件,选择【预览结果】,如下图所示:

61208a90de752b7d43fbbd131237ef9d-picture

我们可以看到,经过拆分组件运行,将80%用于实验训练,剩余20%用于训练验证,共有58个样本参与验证,准确率可以达到81%,auc值为0.876。您也可以尝试使用GBDT组件进行训练,看一下您可以做到什么样的准确率,经过GBDT调参,笔者使用GBDT组件将准确率做到84.5%,auc值达到0.916,也就是当病人提供同样字段数据,投入模型中,模型即可判定其是否患有心脏病,准确率可达到84.5%,理论上数据量越大,模型拟合的会越好,其准确率将越高。

e0c22f36975c745119959c8702467646-picture

结果详细含义见第三部分,如果需要进行文本分析,图像识别可以考虑使用阿里PI实现,简单阅读帮助文档,依然通过拖拽即可完成,如下图所示:

2065d0237e479d7b9c420024f4afb806-picture

三、相关知识介绍

3.1常用概念

数据挖掘:数据挖掘的概念比较宽泛,指从大量的数据中通过算法挖掘出有用的信息。通常数据挖掘的常用方法大多来自于机器学习算法。

监督学习:监督学习是用正确答案已知的例子来训练模型,也就是用标记过的数据。

无监督学习:无监督学习中使用的数据是没有标记过的,即不知道输入数据对应的输出结果是什么。无监督学习只能默默的读取数据,自己寻找数据的模型和规律,比如聚类(把相似数据归为一组)和异常检测(寻找异常)。

半监督学习:半监督学习训练中使用的数据,只有一小部分是标记过的,而大部分是没有标记的。因此和监督学习相比,半监督学习的成本较低,但是又能达到较高的准确度。

强化学习:强化学习也是使用未标记的数据,但是可以通过某种方法知道你是离正确答案越来越近还是越来越远(即奖惩函数)。

92d985938890c17b8aede3a624b70d00-picture

分类:分类是最简单也最普遍的一类机器学习算法,从机器学习的观点,分类技术是一种有指导的学习,即每个训练样本的数据对象已经有类标识,通过学习可以形成表达数据对象与类标识间对应的知识。从这个意义上说,数据挖掘的目标就是根据样本数据形成的类知识并对源数据进行分类,进而也可以预测未来数据的归类。我们将数据集分成两个分类的任务叫做二分类,如:是或不是,投资或不投资。将数据集分成多个类别时(大于2),则称为多分类。

聚类:在机器学习中,聚类是一种无指导学习。也就是说,聚类是在预先不知道欲划分类的情况下,根据信息相似度原则进行信息聚类的一种方法。聚类的目的是使得属于同类别的对象之间的差别尽可能的小,而不同类别上的对象的差别尽可能的大。

注:分类和聚类,监督学习、半监督学习和无监督学习关系如下图所示:

5c6b106c407d348ef4d5ef4d5e60d63e-picture

表:机器学习中的数据以表的形式存储,表是由行和列组成的二维结构,每行代表一条记录,每列表示相同数据类型的一个字段(特征),一条记录可以包含一个或多个列,各个列的名称和类型构成这张表的 Schema。

分区:分区表是指在创建表时指定分区空间,即指定表内的某几个字段作为分区列。大多数情况下,您可以将分区类比为文件系统下的目录,使用数据时,如果指定需要访问的分区名称,则只会读取相应的分区,可避免全表扫描,提高处理效率。

稀疏数据格式:稀疏数据是指绝大多数数据为零或者缺失的数据集。稀疏数据不是无用数据,只是信息量不够全面,需要通过合适的方法挖掘出有用的信息。

样本:已经知道结果的历史数据称为标记数据(Labeled data),每一条独立的标记数据叫做样本,如:一条用户购买记录。

训练集:训练过程中使用的数据叫做“训练集”,其中每条样本叫做一个“训练样本”,多条训练样本组成的集合叫做训练集。

验证集:通过学习训练样本得到模型后,使用模型进行对新的已标记数据进行预测的过程叫做验证,用于预测的样本就叫做验证样本。

注:训练集和验证集都是Labeled

data(标记数据),所以训练、验证集里label是有已知答案的。

预测集:通常把学得模型在实际预测使用中遇到的数据称为测试集,测试集的答案是未知的,需要通过模型去获得答案。

注:平台可以通过两次拆分组件使用,实现将数据拆分为训练集,验证集和测试集。

特征(属性/变量):特征是指描述一个对象的角度。比如对于一个人,可以从年龄、性别、职业等几个方面来描述,那么其中的每一项都是这个人的一个特征。在机器学习平台,数据集是以表的形式存储的,那么每个表的一列就是该数据集的一个特征。数据的特征对于机器学习来说是非常重要的,特征和数据决定了机器学习的上限,而模型和算法只是逼近这个上限。所以在进行机器学习实验之前,首先要进行特征处理,常见的特征处理方法包括数据预处理、特征选择、降维等。

降维:在机器学习方面,维是指描述一个数据集的特征。如果一个数据集有百万级的特征,那么机器学习训练的模型就会非常复杂,而且训练速度会非常缓慢。所以需要对数据进行降维,即通过算法,将影响很小的维度去掉,从众多的特征中提取出具有代表性的特征。机器学习平台上的降维算法包括PCA等。

连续变量:如果变量可以在某个区间内取任一实数,即变量的取值可以是连续的,这随机变量就称为连续型随机变量。如等车时间变量x。

离散变量:变量取值只能取离散型的自然数,就是离散型随机变量。如翻硬币20次,x次硬币正面朝上,x则为离散变量。

过拟合:把训练样本学得太过于好,把只有训练样本自己具有的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化能力下降,这种现象称为过拟合。即,在训练集和验证集上的效果差距很大。

欠拟合:对训练样本的一般性质尚未学好,模型未训练好。

c800710dc3b2af9e559ef6139b0c3e3c-picture

泛化能力:学到的模型适用于新样本的能力,称为“泛化”能力。

3.2评估结果解读

3.2.1二分类评估指标

total:验证集数据总数量,拆分组件右侧输出数据总量。

negatives:原始标签列中数值等于0的数据数量,下图中的N。

positives:原始标签列中数值等于1的数据数量,下图中P。

精确率(precision)是精确性的度量,表示被分为正例的示例中实际为正例的比例,precision=TP/(TP+FP)

召回率(recall)是覆盖面的度量,度量有多个正例被分为正例,recall=TP/(TP+FN)=TP/P=sensitive,可以看到召回率与灵敏度是一样的。

准确率(accuracy)是我们最常见的评价指标,accuracy = (TP+TN)/(P+N),这个很容易理解,就是被分对的样本数除以所有的样本数,通常来说,正确率越高,分类器越好。

特效度(specificity)= TN/N,表示的是所有负例中被分对的比例,衡量了分类器对负例的识别能力。

灵敏度(sensitive)= TP/P,表示的是所有正例中被分对的比例,衡量了分类器对正例的识别能力;

f1:是统计学中用来衡量二分类模型精确度的一种指标。它同时兼顾了分类模型的准确率和召回率。f1分数可以看作是模型准确率和召回率的一种加权平均,它的最大值是1,最小值是0。f1=2*precision*recall/(precision+recall)

AUC:auc(Area Under the ROC Curve)指标在模型评估阶段常被用作最重要的评估指标来衡量模型的准确性,横坐标为其中随机分类的模型AUC为0.5,所以模型的AUC基线值大于0.5才有意义。

auc是评估二分类优劣的综合指标,其数值越接近于1,则模型预测效果越好。

ROC图:模型的ROC曲线越远离对角线,说明模型效果越好,ROC曲线下的区域面积即为AUC值,AUC值越接近1模型的效果越好。随着阈值的减小,Sensitivity和1-Specificity也相应增加,所以ROC呈递增态势。

以下是一个模型评估报告ROC曲线示例,其AUC=0.914。

42d4659c9b0df3ad7d63c1b651fbcaaf-picture

Lift图:Lift =[TP/(TP+FP)] / [(TP+FN)/(TP+FP+FN+TN)] = PV_plus / pi1,它衡量的是,与不利用模型相比,模型的预测能力“变好”了多少,lift(提升指数)越大,模型的运行效果越好。

不利用模型,我们只能利用“正例的比例是(TP+FN)/(TP+FP+FN+TN)”这个样本信息来估计正例的比例(baseline

model),而利用模型之后,我们不需要从整个样本中来挑选正例,只需要从我们预测为正例的那个样本的子集TP+FP中挑选正例,这时预测的准确率PV_plus(Precision)为TP/(TP+FP)。

例如,不利用模型,凭借经验我们向10000个消费者发送营销短信,有1000个客户产生了回应,则正例的比例是10%,即(TP+FN)/(TP+FP+FN+TN)=10%。 通过建模进行分析,我们得到有可能比较积极的1000个消费者,发放1000条短信,即TP+FP=1000。如果此时这1000条短信中有300个客户有反应,即TP=300,TP/(TP+FP)=30%。 此时,我们的提升值lift=30%/10%=3,客户的响应率提升至原先的三倍,提高了投入产出比。

注:ROC曲线和lift曲线都能够评价逻辑回归模型的效果:类似信用评分的场景,希望能够尽可能完全地识别出有违约风险的客户,选择ROC曲线及相应的AUC作为指标;

类似数据库精确营销的场景,希望能够通过对全体消费者的分类而得到具有较高响应率的客户群从而提高投入产出比,选择lift曲线作为指标;

dc8044b02fa8d7a056ed746c120436e4-picture

Gain图:增益图是描述整体精准率的指标。按照模型预测出的概率从高到低排列,将每一个百分位数内的精准率指标标注在图形区域内,就形成了非累积的增益图。如果对每一个百分位及其之前的精准率求和,并将值标注在图形区域内,则形成累积的增益图。

注:Gains(增益) 与 Lift (提升)类似:Lift曲线是不同阈值下Lift和预测正例占比的轨迹,Gain曲线则是不同阈值下PV_plus和预测正例占比的轨迹,而PV_plus=Lift*pi1=

TP/TP+FP,所以它们显而易见的区别就在于纵轴刻度的不同。

88e89adee4712f0bcdfb186a12a93bb6-picture

PR图:PR曲线指的是Precision Recall曲线,翻译为中文为查准率-查全率曲线。Precision/Recall曲线是以每一次计算的查全率Recall为横坐标,每一次计算的查准率Precision为纵坐标。

Precision/recall曲线反映了分类器对正例的识别准确程度和对正例的覆盖能力之间的权衡。

如下图示例Precision/Recall曲线:

002d562c34c917f9ab72b55e8688e480-picture

3.2.2多分类评估指标说明

Labels:聚类数量。

Accuracy: accuracy = (TP+TN)/(P+N),数值详细解释见二分类评估指标说明。

Precision: precision=TP/(TP+FP),数值详细解释见二分类评估指标说明。

Kappa: kappa系数是用在统计学中评估一致性的一种方法,我们可以用他来进行多分类模型准确度的评估,这个系数的取值范围是[-1,1],实际应用中,一般是[0,1],与ROC曲线中一般不会出现下凸形曲线的原理类似。

这个系数的值越高,则代表模型实现的分类准确度越高。

kappa系数的计算方法可以这样来表示:k=(p0-pe)/(1-pe)

P0表示为总的分类准确度;

pe=(a1*b1+a2*b2+…+ai*bi)/n*n

3.2.3回归模型评估指标说明

MAE: (Mean Absolute Error) 平均绝对误差, 是基础的评估方法,后面的方法一般以此为参考对比优劣。

MSE: (Mean Square Error) 平均平方差。对比MAE,MSE可以放大预测偏差较大的值,可以比较不同预测模型的稳定性,应用场景相对多一点。该统计参数是预测数据和原始数据对应点误差的平方和的均值,也就是SSE/n,和SSE没有太大的区别,计算公式如下:

RMSE: (Root Mean Square Error) 方均根差。因为使用的是平均误差,而平均误差对异常点较敏感,如果回归器对某个点的回归值很不合理,那么它的误差则比较大,从而会对RMSE的值有较大影响,即平均值是非鲁棒的。也叫回归系统的拟合标准差,是MSE的平方根,就算公式如下:

R2:取值范围(负无穷,1],值越大表示模型越拟合训练数据;最优解是1;当模型 预测为随机值的时候,有可能为负;若预测值恒为样本期望,R2为0。

SSE:(The sum of squares due to error)和方差。该统计参数计算的是拟合数据和原始数据对应点的误差的平方和。SSE越接近于0,说明模型选择和拟合更好,数据预测也越成功。MSE和RMSE因为和SSE是同出一宗,所以效果一样。

SSR:Sum of squares of the regression,即预测数据与原始数据均值之差的平方和,公式如下:

SST:Total sum of squares,即原始数据和均值之差的平方和,公式如下:

3.2.5混淆矩阵指标说明

准确率(accuracy)、精确率(precision)、召回率(recall)和f1见二分类评估指标说明。

混淆矩阵结果如下图所示:

849023a7656fddd5b9e6b8c71522d7aa-picture

工具虽然让机器学习的使用门槛变得很低,但是为了将机器学习过程简化,工具还是封装了大量参数,如果希望成为AI产品或AI工程师,单纯靠阅读文章是远远不够的,还是需要系统的学习,可以考虑参加一些线上课程,快速掌握python,通过做一些小项目快速掌握机器学习的应用。

笔者也正在学习当中,感兴趣的朋友可以多交流。

未经允许不得转载(声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:net-net@foxmail.com进行举报,并提供相关证据,工作人员会在10个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。):策信智库资讯网 » 5分钟玩转机器学习,0门槛体验人工智能

赞 (0)