Orange 学习3 – Evaluate模块简介-1

目录

1. 创建案例

2. Test and score

Test and Score 模块介绍-分类(classification)

采样方法:

Cross validation (交叉验证):

Cross validation by feature (根据属性进行交叉验证):

Random sampling(随机采样):

 Leave-one-out(指的是留一法):

Test on train data(对训练数据进行测试):

Test on test data(对测试数据进行测试):

性能度量

AUC (Area under ROC):

CA(Classification ):

F1():

Precision 和recall

F1:

3. Prediction 模块

4. Confusion Matrix


1. 创建案例

首先,导入泰坦尼克号幸存者数据(titanic.tab)

如下图所示

泰坦尼克是一个很不错的新手入坑和上手的数据集。记录着登上泰坦尼克号中乘客的个人信息,包含姓名、年龄等等,后面会详细介绍每一个维度的具体含义及分布情况。还记录着那些乘客最终是否从泰坦尼克号的灾难中幸免。Target 为幸存和遇难,其中幸存是yes,遇难为no

 拖拽不同的model模块,本文选择Tree(决策树)、SVM(支持向量机)以及Logistic Regression(逻辑回归)进行机器学习,参数默认即可,如下图所示

2. Test and score

选用Evaluate模块进行不同模型的评价,首先选用 【Test and Score】模块,将其与三个机器学习模块连接,如下图所示:

Test and Score 模块介绍-分类(classification)

Inputs (可输入的数据包括以下几种)

  • Data: input dataset
  • Test Data: separate data for testing
  • Learner: learning algorithm(s)

output:

Evaluation Results: results of testing classification algorithms(检测不同分类算法的结果)

双击【test and score】模块,如下图所示

采样方法:

首先,左侧一列为不同的采样方法(sampling method)

Cross validation (交叉验证):

先将数据集分成k个(也就是参数number of folds)大小相似的互斥子集。在该过程中,每个子集尽可能保持数据分布的一致性。然后,每次用k-1个自己的并集作为训练集,余下的那个子集作为测试集;这样就可以获得k组的训练/测试集,从而进行k次的训练和测试,最终返回的结果市k个测试结果的均值。显然,交叉验证法评估结构的稳定性和保证性取决于k的取值,一般将交叉验证法称为“k折交叉验证”。k的常用取值为10,称为10折交叉验证

勾选【stratified】-->意味着分层采样。什么是分层采样呢?

分层采样,举一个例子,通过对D进行分层采样而获得含70%样本的训练集S和含有30%样本的测试集T,若D中包含500个可归类为【A】的样本,和500个可归类为【B】的样本,则S中会包含350个A和350个B,T中则会包含150个A和150个B。这样可以避免由训练集/测试集数据分布所带来的误差

Cross validation by feature (根据属性进行交叉验证):

performs cross-validation but folds are defined by the selected categorical feature from meta-features.  --》目前还没搞明白咋用,后续慢慢琢磨一下

Random sampling(随机采样):

按照给定比例(Trainning set size)随机划分训练集和测试集,在该图中训练集的比例为66%,也就是说66%的样本数据为训练集,34%的样本数据为测试集,并且重复取Repeat train /test次,在该过程,为10次,最终返回的结果为取10次的平均值

 Leave-one-out(指的是留一法):

可以理解为普通交叉验证的极端情况,即将所有N个样本分成N份,进行N折的交叉验证,优点,评估结果比较准确;缺点,数据量较大时,需要计算的时间长

Test on train data(对训练数据进行测试):

将全部的数据用于训练,并将全部数据用于测试,该方法的结果不准确

Test on test data(对测试数据进行测试):

the above methods use the data from Data signal only. To input another dataset with testing examples (for instance from another file or some data selected in another widget), we select Separate Test Data signal in the communication channel and select Test on test data.    该方法仅使用来自数据信号(Data signal)的数据,这个暂时不是很明白,后续再好好研究一下

性能度量

在图片的右侧最上方,有一行【Evaluation results for target】指的是对不同Target的性能度量

目前,点击右侧的下拉,会显示出,如下图所示

None,show average over classes (返回作为所有类的加权平均值的分数) 在该例子中,yes和no结果整体的加权平均值的分数

no(返回Targete 为no时的分数,如CA为no的准确率)

yes(返回Targete 为yes时的分数,如CA为yes的准确率)

在model 后面,有AUC、 CA、 F1、Precision、 Recall几个度量参数

AUC (Area under ROC):

The area under the receiver-operating curve.指的是ROC曲线下的面积。AUC的取值范围在0.5和1之间。AUC越接近1.0,检测方法真实性越高;等于0.5时,则真实性最低,无应用价值。其具体解释见(The Area Under an ROC Curve (unmc.edu)

CA(Classification ):

The proportion of correctly classified examples。

是分类正确的样本数占样本总数的比例。越大越好

F1():

A weighted harmonic mean of precision and recall

介绍完precision 和 recall再介绍

Precision 和recall

precision为查准率 recall为查全率

以本数据库为例,将【Test and Score】输出结果出入到【Confusion Matrix】混淆矩阵中,如下图所示

 双击【Confusion Matrix】,结果如下所示,目前展示的结果是Tree模型得到的

 针对目前这个问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(True posotive)、假正例(False positive)、真反例(Ture negative)以及假反例(False negative),其对应的数量分别为TP、FP、TN、FN,在本例中,分别为1465、441、270、25

查准率 Precision

Precision=frac{TP}{TP+FP}

查全率 Recall

Recall=frac{TP}{TP+FN}

一般来说,查准率与查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低。

只有在一些简单任务中,才可能使得查全率和查准率都高

F1:

F1分数(F1-score)是分类问题的一个衡量指标。一些多分类问题的机器学习竞赛,常常将F1-score作为最终测评的方法。它是精确率和召回率的调和平均数,最大为1,最小为0。

F1=frac{2*Precision*Recall}{Precision+Recall}

此外还有F2分数和F0.5分数。F1分数认为召回率和精确率同等重要,F2分数认为召回率的重要程度是精确率的2倍,而F0.5分数认为召回率的重要程度是精确率的一半。计算公式为:

Fbeta =(1+beta ^{2})*frac{Precision*Recall}{beta ^{2}*Precision+Recall}

下图所示部分,暂时没搞明白 

3. Prediction 模块

prediction,也就是预测模块

Inputs

  • Data: input dataset                         
  • Predictors: predictors to be used on the data    (需要预测的数据)

Outputs

  • Predictions: data with added predictions           (预测的结果)
  • Evaluation Results: results of testing classification algorithms

自己编一个需要预测的数据,我需要预测的如下图所示:

由于导入的文件类型是csv,所以我将【CSV File import】模块拉入,【predictions】拉入,输入到【Data Table】

 这是我的预测结果

Tree (no)与Tree(yes)是Tree模型预测为no和yes的几率,哪个大,最后的结果就是哪个

所以预测的结果为yes,yes,no,yes

这是其他模型的预测结果 

4. Confusion Matrix

Confusion Matrix已经在Test and score中做了一个简单的介绍

展示的结果为在Tree模型下的

右上角,show:后面跟着不同的显示属性,首先是默认的Number of instances (也就是样本数量)

 Proportion of predicted 

如图所示,76.9%的no预测准确,还有23.1%的预测的no 实际应该是yes

 Proportions of actual :

98.3%的实际的no被分为no,还有1.7%被分成yes

 Sum of probabilities:

暂时没搞明白

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>