机器学习之决策树简析

模型训练算法介绍

 

机器学习致力于研究如何通过计算的手段,利用经验来善系统自身的性能在计算机系统中,"经验"通常以"数据"形式存 在,因此机器学习所研究的主要内容是关于在计算机上从数据中产生"模型" (model) 的算法,即"学习算法" (learning algorithm). 有了学习算法,我们把经验数据提供给它,它就能基于这些数据产生模型;在面对新的情况时(例如看到一个没剖开的西瓜),模型会给我们提供相应的判断(例如好瓜) .

根据训练数据是否拥有标记(Target)信息,学习任务可大致划分为两大类"监督学习" (Supervised Learning) 和"无监督学习" (Unsupervised Learning) ,监督学习根据所解决的问题又可分为分类和回归。

1. 简单算法入门

1.1. 决策树介绍

决策树(decision tree) 是一常见的机器学习方法.以二分类任务为例,我们希望从给定训练数据集学得一个模型用以对新示例进行分类,这个把样本分类的任务可看作对"当前样本属于正类吗?"这个问题的"决策"或"判定"过程.顾名思义,决策树是基于树结构来进行决策的,这恰是人类在面临决策问题时一种很自然的处理机制.

1.2. 决策树思想

决策树分类的思想类似于找对象。现想象一个女孩的母亲要给这个女孩介绍男朋友,于是有了下面的对话:

女儿:多大年纪了?母亲:26

女儿:长的帅不帅?母亲:挺帅的。

女儿:收入高不?母亲:不算很高,中等情况。

女儿:是公务员不?母亲:是,在税务局上班呢。

女儿:那好,我去见见

图例

 

 

2. 算法指标

2.1.混淆矩阵

对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(True Positive) 、假正例 (False Positive) 、真反(True Negative) 假反例 (False Negative) 四种情形,令 TP FP TN FN 分别表示其对应的样例数,则显然有 TP+FP+TN+FN=样例总数.分类结果的“混淆矩阵" (Cousion Matrix) 如所示

 

TP —— True Positive (真正, TP)被模型预测为正的正样本;可以称作判断为真的正确率

TN —— True Negative(真负 , TN)被模型预测为负的负样本 ;可以称作判断为假的正确率

FP ——False Positive (假正, FP)被模型预测为正的负样本;可以称作误报率

FN——False Negative(假负 , FN)被模型预测为负的正样本;可以称作漏报率

 

2.2TPR

True Positive Rate(真正率 , TPR)或灵敏度(sensitivity)

计算公式:TPR = TP /(TP + FN)   

被预测为正的正样本结果数 / 正样本实际数recall性质是一样的

2.2FPR

False Positive Rate (假正率, FPR)

计算公式:FPR = FP /(TN + FP)

被预测为正的负样本结果数 /负样本实际数

2.3.  precision(精确率)

计算公式:precision = TP / (TP + FP)    

被预测为正的正样本结果数 / 被预测为正样本的总数精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。

2.4.  recall(召回率)

计算公式:recall = TP / (TP + FN)         

被预测为正的正样本结果数 / 正样本实际数召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了

2.5.  accuracy (准确率)

计算公式:accuracy = (TP + TN) / (TP + FP + TN + FN)

预测正确的总数/全部样本总数在二分类中,当正反比例不平衡的情况下,尤其是当我们对少数的分类更感兴趣的时时候,准确率评价基本就没什么参考价值。

2.6.  F1 Score

计算公式:F1 Score = 2*P*R/(P+R)

其中P和R分别为 precision 和 recall定义为准确率和召回率的调和平均数

2.7.  KS

KS值越大,表示模型能够将正、负客户区分开的程度越大。 通常来讲,KS>0.2即表示模型有较好的预测准确性。KS的值其实就是tpr - fpr的最大值

举例:

假设一共有100人,其中80人为好人,20人为坏人

预测结果也显示80个人为好人,20个人为坏人,那么这个模型是好不好呢?

先假设一种情况,预测为80人好人中实际有60个是好人,20个人是坏人,

预测为20人好人中实际都是坏人,此时

TP = 60TN = 0 FP = 20   FN = 20

precision = TP / (TP + FP) = 60/(60+20) = 0.75

TPR = TP /(TP + FN)= 60/(60 + 20) = 0.75

accuracy = (TP + TN) / (TP + FP + TN + FN)  = 0.6

FPR = FP /(TN + FP)= 20/(0 + 20)  = 1

 

 

3.过拟合和欠拟合

当学习器把训练样本学得"太好"了的时候,很可能经把训练样本自身的一些特点当作了所有潜在样本都 会具有的一般性质,这样就会导致泛化性能下降这种现象在机器学习中称为 "过拟合" (overfitting). 与"过拟合"相对的是"欠拟合" (underfitting) ,这是指对训练样本的一般性质尚未学好.

图例

 

数据决定了机器学习的上限,而算法只是尽可能逼近这个上限

 

 

你可能感兴趣的:(机器学习)