gini

模型评估指标

僤鯓⒐⒋嵵緔 提交于 2020-10-28 20:04:51
0. 前言 模型的评价指标和评价体系是建模过程中的一个重要环节,针对不同类型的项目和模型,要合理选择不同的评价指标和体系。下面先给出二分类模型中预测值和实际值的混淆矩阵(confusion matrix)和定义,然后介绍几种评价指标。 二分类模型的预测值与实际值的结果 TP(True Positive):模型预测为正例(1),实际为正例(1)的观察对象的数量。 TN(True Negative):模型预测为负例(0),实际为负例(0)的观察对象的数量。 FP(False Positive):模型预测为正例(1),实际为负例(0)的观察对象的数量。 FN(False Negative):模型预测为负例(0),实际为正例(1)的观察对象的数量。 1. 正确率(Accuracy) $$ accuracy = \frac{TP + TN}{TP + FN + TN + FP} $$ 正确率和错误率是相对的两个概念,通常我们把分类错误的样本数占样本总数的比例称为错误率(error rate)。 2. 敏感度(Sensitivity)和 特异度(Specificity) $$ Sensitivity = \frac{TP}{TP + FN} $$ $$ Specificity = \frac{TN}{TN + FP} $$ 3. 查全率(Recall)、查准率(Precision)与F1

完成一个预测建模项目一般需要多长时间?

吃可爱长大的小学妹 提交于 2020-10-06 09:36:15
为了回答这个问题,我们先来了解一下建模的流程,通常一个完整的数据挖掘项目包含以下流程(1)业务理解、(2)数据理解、(3)数据准备、(4)数据预处理和建模、(5)模型评估、(6)模型部署应用。这个流程的操作性很强,也是业界公认标准。 业务理解的主要工作有需求调研,了解商务背景;明确业务目标和成功的标准。数据理解和业务理解一般是同时进行的,主要内容包括确定建模所需要的数据,描述数据,探索数据,检验数据质量,明确数据挖掘目标和成功标准。这两个阶段的主要任务就是明确挖掘目标和建模数据,目标和数据都明确以后就可以开始着手准备数据。 数据准备的目的是建立数据集市或者宽表,主要工作包括选择数据、清洗数据、构造数据、整合数据、格式化数据等等。如果企业的数据仓库建设比较完善,那么这个步骤的工作就非常简单,只需要做一些数据筛选,表的的关联工作即可。反之,如果数据都是一些非常原始的数据比如日志数据、流水数据,数据准备这部分就比较耗费时间和精力了,需要做很多数据汇总,特征提取的工作。 数据预处理和建模,这个环节是整个项目中含金量最高,难度最大的部分。不同的变量、数据类型、分布情况,对应的预处理的方式就不同,需要选择什么样的建模方法,参数如何调优,如何构建模型都是要考虑的问题。主要工作有:样本选取,确定训练样本、测试样本和验证样本、数据预处理、模型算法技术选型、筛选变量、模型训练、模型测试等

机器学习之决策树学习笔记分享

一个人想着一个人 提交于 2020-10-01 23:39:07
决策树思维导图 特征选择 特征选择是为了选取具有分类能力的特征,选取准则为信息增益或信息增益比 信息增益 def:特征A对训练数据D的信息增益为g(D,A),定义为集合D的经验熵H(D)和特征A给定条件下D的经验条件熵H(D|A)之差,即 g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g ( D , A ) = H ( D ) − H ( D ∣ A ) 其中熵的定义为: H ( P ) = − ∑ i = 1 n p i l o g 2 p i ( p i = p ( X = x i ) , i = 1 , 2 , 3... ) H(P)=-\sum_{i=1}^{n}p_ilog_2p_i (pi=p(X=x_i),i=1,2,3...) H ( P ) = − i = 1 ∑ n ​ p i ​ l o g 2 ​ p i ​ ( p i = p ( X = x i ​ ) , i = 1 , 2 , 3 . . . ) 熵越大随机变量的不确定性就越大 条件熵的定义为: H ( Y ∣ X ) = ∑ i = 1 n p i H ( Y ∣ X = x i ) ( p i = p ( X = x i ) , i = 1 , 2 , 3... ) H(Y|X)=\sum_{i=1}^{n}p_iH(Y|X=x_i)

基于Python的决策树分类器与剪枝

允我心安 提交于 2020-08-14 07:08:04
作者|Angel Das 编译|VK 来源|Towards Data Science 介绍 决策树分类器是一种有监督的学习模型,在我们关心可解释性时非常有用。 决策树通过基于每个层次的多个问题做出决策来分解数据 决策树是处理分类问题的常用算法之一。 为了更好地理解它,让我们看看下面的例子。 决策树通常包括: 根节点 -表示被进一步划分为同质组的样本或总体 拆分 -将节点分为两个子节点的过程 决策节点 -当一个子节点根据某个条件拆分为其他子节点时,称为决策节点 叶节点或终端节点 -不进一步拆分的子节点 信息增益 -要使用一个条件(比如说信息最丰富的特征)来分割节点,我们需要定义一个可以优化的目标函数。在决策树算法中,我们倾向于在每次分割时最大化信息增益。在测量信息增益时,通常使用三种度量。它们是基尼不纯度、熵和分类误差 数学理解 为了理解决策树是如何发展的,我们需要更深入地了解在每一步中如何使用度量使信息增益最大化。 让我们举一个例子,其中我们有包含学生信息的训练数据,如性别、年级、因变量或分类变量,这些变量可以识别学生是否是美食家。我们有以下概述的信息。 学生总数-20人 被归为美食家的学生总数-10 不属于美食家的学生总数-10 P(美食家),即学生成为美食家的概率=(10/20)=0.5 Q(非美食家),学生不是美食家的概率=(10/20)=0.5

机器学习10种经典算法的Python实现

一个人想着一个人 提交于 2020-08-14 03:07:09
广义来说,有三种机器学习算法 1、 监督式学习 工作机制:这个算法由一个目标变量或结果变量(或因变量)组成。这些变量由已知的一系列预示变量(自变量)预测而来。利用这一系列变量,我们生成一个将输入值映射到期望输出值的函数。这个训练过程会一直持续,直到模型在训练数据上获得期望的精确度。监督式学习的例子有:回归、决策树、随机森林、K – 近邻算法、逻辑回归等。 2、非监督式学习 工作机制:在这个算法中,没有任何目标变量或结果变量要预测或估计。这个算法用在不同的组内聚类分析。这种分析方式被广泛地用来细分客户,根据干预的方式分为不同的用户组。非监督式学习的例子有:关联算法和 K – 均值算法。 3、强化学习 工作机制:这个算法训练机器进行决策。它是这样工作的:机器被放在一个能让它通过反复试错来训练自己的环境中。机器从过去的经验中进行学习,并且尝试利用了解最透彻的知识作出精确的商业判断。 强化学习的例子有马尔可夫决策过程。 常见机器学习算法名单 这里是一个常用的机器学习算法名单。这些算法几乎可以用在所有的数据问题上: 线性回归 逻辑回归 决策树 SVM 朴素贝叶斯 K最近邻算法 K均值算法 随机森林算法 降维算法 Gradient Boost 和 Adaboost 算法 1、线性回归 线性回归通常用于根据连续变量估计实际数值(房价、呼叫次数、总销售额等)

机器学习 -- 初识决策树

不打扰是莪最后的温柔 提交于 2020-05-04 20:04:45
决策树 一、概述 1. 分类问题的步骤 2. 决策树的优点 3. 决策树解决问题的一般方法 4. 决策树的3个步骤 5. 决策树的特点 二、决策树建模与学习 1. 什么是决策树 2. 决策树与if-then规则 3. 如何学习一个决策树 三、特征选择 1. 什么是特征选择 2. 熵 3. 条件熵 4. 信息增益 5. ID3算法 6. 信息增益比 四、决策树生成 1. ID3算法 五、决策树的剪枝(Decision tree pruning) 1. 理想的决策树 2. 决策树面临的问题 3. 解决方法:剪枝 4. 判断剪枝的好坏 5. 决策树剪枝算法 6. CART算法 总结 一、概述 决策树是一种典型的分类方法 首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。 本质上决策树是通过一系列规则对数据进行分类的过程。 1. 分类问题 的 步骤 (1)模型构建(归纳)通过对训练集合的归纳,建立分类模型。 (2)预测应用(推论)建立的分类模型,对测试集合进行测试。 2. 决策树的优点 (1)推理过程容易理解,决策推理过程可以表示成If Then形式; (2)推理过程完全依赖于属性变量的取值特点; (3)可自动忽略目标变量没有贡献的属性变量,也为判断属性变量的重要性,减少变量的数目提供参考。 3. 决策树解决问题的一般方法 4. 决策树的3个步骤

用决策树(CART)解决iris分类问题

孤者浪人 提交于 2020-04-20 18:10:07
首先先看Iris数据集 Sepal.Length——花萼长度 Sepal.Width——花萼宽度 Petal.Length——花瓣长度 Petal.Width——花瓣宽度 通过上述4中属性可以预测花卉属于Setosa,Versicolour,Virginica 三个种类中的哪一类 决策树 by CART 决策树有挺多种,这里讲下 CART CART 的执行过程是这样的: 用特征值k和下限tk二分子集 不断二分,直到到达最大深度或者划分不能再减少不纯度为止 这一下sklearn都会自动帮我们完成,我们调用就行了 如何避免过拟合问题 减小最大深度等等 一个tip: ​ min_* 的调大 ​ max_*的调小 ​ 就是DecisionTreeClassifier里面的参数,具体看文档_(:з」∠)_ 损失函数的比较 sklearn提供了两种损失函数gini和entropy gini是通过计算每个节点的不纯度,具体公式如下↓ $J(k,t_k) = \frac{m_{left}}{m}G_{left} + \frac{m_{right}}{m}G_{right}$ entropy在这里就不再赘述了 sklearn默认的是调用gini,因为gini的速度会快点,而且两者最后的效果是差不多的,真要比的话entropy产生的决策树会更平衡点 接下来我们来看代码 from sklearn

《Python数据分析与机器学习实战-唐宇迪》读书笔记第7章--决策树

本秂侑毒 提交于 2020-04-13 20:18:34
【今日推荐】:为什么一到面试就懵逼!>>> python数据分析个人学习读书笔记-目录索引 第7章决策树   决策树算法是机器学习中最经典的算法之一。大家可能听过一些高深的算法,例如在竞赛中大杀四方的Xgboost、各种集成策略等,其实它们都是基于树模型来建立的,掌握基本的树模型后,再去理解集成算法就容易多了,本章介绍树模型的构造方法以及其中涉及的剪枝策略。 7.1决策树原理   先来看一下决策树能完成什么样的任务。假设一个家庭中有5名成员:爷爷、奶奶、妈妈、小男孩和小女孩。现在想做一个调查:这5个人中谁喜欢玩游戏,这里使用决策树演示这个过程,如图7-1所示。      图7-1 决策树分类方法   开始的时候,所有人都属于一个集合。第一步,依据年龄确定哪些人喜欢玩游戏,可以设定一个条件,如果年龄大于15岁,就不喜欢玩游戏;如果年龄小于15岁,则可能喜欢玩游戏。这样就把5个成员分成两部分,一部分是右边分支,包含爷爷、奶奶和妈妈;另一部分是左边分支,包含小男孩和小女孩。此时可以认为左边分支的人喜欢玩游戏,还有待挖掘。右边分支的人不喜欢玩游戏,已经淘汰出局。   对于左边这个分支,可以再进行细分,也就是进行第二步划分,这次划分的条件是性别。如果是男性,就喜欢玩游戏;如果是女性,则不喜欢玩游戏。这样就把小男孩和小女孩这个集合再次分成左右两部分。左边为喜欢玩游戏的小男孩

通俗讲解决策树:如何利用有效特征进行决策分类?

一世执手 提交于 2020-04-12 19:21:00
决策树 (Decision Tree) 是一种有监督学习方法,通过特征和标签构造一棵决策树,学习特征之间的规则,以解决分类和回归问题。 使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。 决策树由以下 3 种元素构成: 根节点:包含样本全集 内部节点:对应特征属性测试 叶节点:决策结果 (标签) 决策树如何辨别好瓜和坏瓜? (此图摘自周志华西瓜书,本人白板手绘版) 以上面的西瓜为例,我们要如何辨别一个瓜是好瓜。特点是:纹理清晰,根蒂稍蜷,触感青绿,恰好,你构建了一棵决策树,立马判断这是好瓜还是坏瓜? 判断步骤如下: 根据纹理清晰,已知是清晰,那么向左边走,看第一步 接着,由纹理清晰到达第 2 层,由决策树图,我们可以看到,根蒂是稍蜷 接着到第 3 层,色泽的特征的青绿,由此,我们可以得出结论,这是一个好瓜。 根据上面的示例,我们可以很直观的得到一个实例的类别判断,只要告诉各个特征的具体值,决策树的判定过程就相当于从树中从根节点到某一个叶子节点的遍历。每一步如何遍历是由数据各个特征的具体特征属性决定。 那么,基于上面的一棵树,我们又有如下疑问,为什么根节点是纹理,而不是根蒂或者别的特征呢? 决策树又是基于什么标准来选择特征的?如果构建决策树? 决策树学习的 3 个步骤 基于上面的问题

监督学习方法

血红的双手。 提交于 2020-04-11 13:52:06
学习资料:《统计学习方法 第二版》、《机器学习实战》、吴恩达机器学习课程 一. 感知机Proceptron 感知机是根据输入实例的特征向量 \(x\) 对其进行二类分类的线性分类模型: \(f(x)=\operatorname{sign}(w \cdot x+b)\) ,感知机模型对应于输入空间(特征空间)中的分离超平面 \(w \cdot x+b=0\) 。 感知机学习的策略是极小化损失函数: \(\min _{w, b} L(w, b)=-\sum_{x_{i} \in M} ;y_{i}\left(w \cdot x_{i}+b\right)\) ; 损失函数对应于误分类点到分离超平面的总距离。 感知机学习算法是基于随机梯度下降法的对损失函数的最优化算法。对于所有误分类的点,计算这些点到超平面的距离,目的是最小化这些点到平面的距离。 当训练数据集线性可分时,感知机学习算法存在无穷多个解,其解由于不同的初值或不同的迭代顺序而可能有所不同。 二. K近邻算法 K-近邻算法是一种 没有显示学习过程的算法 。数据集的可代表性就很重要! K-近邻原理:把数据集和输入实例点都映射到空间内,对给定的输入实例点,首先确定输入实例点的𝑘个最近邻训练实例点,这𝑘个训练实例点的类的多数就是预测的输入实例点的类。 K-近邻算法的 核心要素是K的值、距离度量(一般为欧式距离)、分类决策规则