决策树

python机器学习:决策树ID3、C4.5

爱⌒轻易说出口 提交于 2020-12-27 03:46:58
向AI转型的程序员都关注了这个号 👇👇👇 大数据挖掘DT机器学习 公众号: datayx 决策树又称为判定树,是运用于分类的一种树结构,其中的每个内部节点代表对某一属性的一次测试,每条边代表一个测试结果,叶节点代表某个类或类的分布。 决策树的决策过程需要从决策树的根节点开始,待测数据与决策树中的特征节点进行比较,并按照比较结果选择选择下一比较分支,直到叶子节点作为最终的决策结果。 决策树的学习过程 特征选择:从训练数据的特征中选择一个特征作为当前节点的分裂标准(特征选择的标准不同产生了不同的特征决策树算法)。 决策树生成:根据所选特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止声场。 剪枝:决策树容易过拟合,需要剪枝来缩小树的结构和规模(包括预剪枝和后剪枝)。 实现决策树的算法包括ID3、C4.5算法等。 ID3算法 ID3算法是由Ross Quinlan提出的决策树的一种算法实现,以信息论为基础,以信息熵和信息增益为衡量标准,从而实现对数据的归纳分类。 ID3算法是建立在奥卡姆剃刀的基础上:越是小型的决策树越优于大的决策树(be simple简单理论)。 奥卡姆剃刀(Occam's Razor, Ockham's Razor),又称“奥坎的剃刀”,是由14世纪逻辑学家、圣方济各会修士奥卡姆的威廉(William of Occam,约1285年至1349年

标准化和归一化

孤人 提交于 2020-12-27 00:59:37
一、是什么? 1. 归一化   是为了将数据映射到0~1之间,去掉量纲的过程,让计算更加合理,不会因为量纲问题导致1米与100mm产生不同。   归一化是 线性模型 做数据预处理的关键步骤,比如LR,非线性的就不用归一化了。   归一化就是让不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。 缺点: 这种方法有个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义 。 另外,最大值与最小值非常容易受异常点影响, 所以这种方法鲁棒性较差,只适合传统精确小数据场景 2. z-标准化   消除分布产生的度量偏差,例如:班级数学考试,数学成绩在90-100之间,语文成绩在60-100之间,那么,小明数学90,语文100,小花数学95,语文95,如何评价两个综合成绩好坏的数学处理方式。 二、怎么选? 1. 标准化 标准化更好保持了样本间距。当样本中有异常点时,归一化有可能将正常的样本“挤”到一起去。比如三个样本,某个特征的值为1,2,10000,假设10000这个值是异常值,用归一化的方法后,正常的1,2就会被“挤”到一起去。如果不幸的是1和2的分类标签还是相反的,那么,当我们用梯度下降来做分类模型训练时,模型会需要更长的时间收敛,因为将样本分开需要更大的努力!而标准化在这方面就做得很好,至少它不会将样本“挤到一起”。 标准化更符合统计学假设

数据科学导引(大纲)

我的梦境 提交于 2020-12-22 04:46:52
线性回归(Linear Regression) 求解方法 最小二乘法 极大似然估计法(MLE) 梯度下降法 推广 多项式线性回归 广义线性回归 正则化 L1正则化(Lasso) L2正则化(Ridge,岭回归) 代码 分类(Classification) 最近邻(Nearest Neighbor) K Nearest Neigbor(K近邻,KNN) kd树 决策树(Decision Tree) 感知机(Perceptron) 逻辑回归(Logistic Regression) 支持向量机(Support Vector Machine,SVM) 神经网络(Neural Networks) 朴素贝叶斯(Naive Bayes) 集成模型(Ensemble Models) Bootstrap Aggregating(Bagging) Boosting Stacking Bagging减少variance,Boosting减少bias? 聚类(Clustering) K-means 分层聚类(Hierarchical Clustering) 谱聚类(Spectral Clustering) 基于密度的聚类(Density-based Clustering) 聚类的评判标准 降维(Dimensionality Reduction) 线性降维方法 PCA(Principle

下载 | 9G火爆的Python爬虫教程+ 520页《图解机器学习》

眉间皱痕 提交于 2020-12-20 07:14:09
前段时间,小伙伴多次在后台留言询问 Python爬虫教程 的问题。经过这两个多月以来的收集与整理,汇集了 多个高校以及公开课视频教程 ,包括 python爬虫的入门、进阶与实践,共9G左右 。爬虫作为机器学习语料库构建的主要方式,建议大家都了解学习一下,现在不用并不代表将来用不到, 建议将视频资源收藏或保存 。 《 9G 爬虫视频教程 》已经打包好,可以通过下述步骤来获取: 1.扫描下方二维码 2. 回复关键词: 爬虫教程 👆长按上方二维码 2 秒 回复「 爬虫教程 」即可获取资料 另外 ,还有一份图文并茂的机器学习笔记送给你: 520页《图解机器学习》 , 以浅显易懂的方式去讲解它,降低大家的学习门槛 。我为此花费了数月时间,经常做到深夜,把自己的学习笔记整理成了这份教程。 既适合非专业人士了解有关机器学习的基础概念,又适合有专业背景的学生进一步学习。 《 图解机器学习 》PDF已经打包好,可以通过下述步骤来获取: 1.扫描下方二维码 2. 回复关键词: 机器学习 👆长按上方二维码 2 秒 回复「 机器学习 」即可获取资料 从结构来看,全部教程包含两部分: Part 1 介绍了基本概念,包括: 机器学习的流程 数据处理 建模 评估指标(如 MSE、ROC 曲线) 模型部署 过度拟合 正则化等 在 Part2,作者介绍了 常用的算法,包括: 线性回归 逻辑回归 神经网络 SVM

《Python与机器学习实战》笔记+源码

白昼怎懂夜的黑 提交于 2020-12-05 19:46:38
向AI转型的程序员都关注了这个号 👇👇👇 机器学习AI算法工程 公众号:datayx Python与机器学习这一话题是如此的宽广,仅靠一本书自然不可能涵盖到方方面面,甚至即使出一个系列的书也难能做到这点。单就机器学习而言,其领域就包括但不限于如下:有监督学习(Supervised Learning),无监督学习(Unsupervised Learning)和半监督学习(Semi-Supervised Learning)。而其具体的问题又大致可以分为两类:分类问题(Classification)和回归问题(Regression)。 Python本身带有许多机器学习的第三方库,但《Python与机器学习实战:决策树、集成学习、支持向量机与神经网络算法详解及编程实现》在绝大多数情况下只会用到Numpy这个基础的科学计算库来进行算法代码的实现。这样做的目的是希望读者能够从实现的过程中更好地理解机器学习算法的细节,以及了解Numpy的各种应用。不过作为补充,《Python与机器学习实战:决策树、集成学习、支持向量机与神经网络算法详解及编程实现》会在适当的时候应用scikit-learn这个成熟的第三方库中的模型。 《Python与机器学习实战:决策树、集成学习、支持向量机与神经网络算法详解及编程实现》适用于想了解传统机器学习算法的学生和从业者,想知道如何高效实现机器学习算法的程序员

机器学习经典算法之KNN

▼魔方 西西 提交于 2020-11-30 01:01:46
一、前言 KNN 的英文叫 K-Nearest Neighbor,应该算是数据挖掘算法中最简单的一种。 先用一个例子体会下。 /*请尊重作者劳动成果,转载请标明原文链接:*/ /* https://www.cnblogs.com/jpcflyer/p/11111817.html * / 假设,我们想对电影的类型进行分类,统计了电影中打斗次数、接吻次数,当然还有其他的指标也可以被统计到,如下表所示。 我们很容易理解《战狼》《红海行动》《碟中谍 6》是动作片,《前任 3》《春娇救志明》《泰坦尼克号》是爱情片,但是有没有一种方法让机器也可以掌握这个分类的规则,当有一部新电影的时候,也可以对它的类型自动分类呢? 我们可以把打斗次数看成 X 轴,接吻次数看成 Y 轴,然后在二维的坐标轴上,对这几部电影进行标记,如下图所示。对于未知的电影 A,坐标为 (x,y),我们需要看下离电影 A 最近的都有哪些电影,这些电影中的大多数属于哪个分类,那么电影 A 就属于哪个分类。实际操作中,我们还需要确定一个 K 值,也就是我们要观察离电影 A 最近的电影有多少个。 二、KNN 的工作原理 “近朱者赤,近墨者黑”可以说是 KNN 的工作原理。整个计算过程分为三步: 1. 计算待分类物体与其他物体之间的距离; 2. 统计距离最近的 K 个邻居; 3.对于 K 个最近的邻居,它们属于哪个分类最多

技术选型指南

核能气质少年 提交于 2020-11-26 17:53:19
文章转载自:ThoughtWorks洞见 作者:汪志成 这是一篇综合类技术选型指南,试图为你提供一份比较通用的技术选型思维框架。当你需要进行技术选型时,可以参照它来设计自己的决策树。这其中你需要考虑的主要维度包括目标产品、目标用户、目标团队和技术本身,下面我将分别细述,并在此基础上介绍一些反模式。 维度 目标产品 这是最重要的维度。产品本身的特征将影响技术选型时的很多因素。 短生命周期产品和长生命周期产品 短生命周期的产品通常要求快速起步:门槛低、书写 自由、不强制遵循任何最佳实践。当它的使命结束时,代码会被直接抛弃。所以,对于这类产品,“ 快糙猛 ”的技术是较好的选择,当然,能做到“ 快精猛 ”更佳。 而长生命周期的产品则会强烈要求可维护性,因为它们在很长时间内都是不可报废的。甚至对于一些生命线产品,连重写都会要求在重写期间线上系统平稳过渡,一点点迁移到新技术。 这种要求对团队的工程化能力是个极端的考验。如果没有相应的工程能力,其代价甚至会高于用新技术重新写一个功能相同的系统。 探索型的产品和守成型的产品 探索型产品往往也是短周期产品,但是同时也有自己的特点。它要求快速,但往往同时会要求高质量。探索型的产品如果证明了可行性,那么过渡到长生命周期的可能性很大。 这就要求它最好是一个微内核系统,提前留出一些扩展的空间。当然,设计微内核系统对架构师的能力具有相当的考验

面试了8家公司,他们问了我这些机器学习题目......

淺唱寂寞╮ 提交于 2020-11-26 13:57:02
翻译 | 王柯凝 出品|人工智能头条(公众号ID: AI_Thinker ) 【 导读 】 今年年初以来,作者一直在印度找数据科学、机器学习以及深度学习领域的工作。在找工作的这三十四天里,他面试了8到10家公司,其中也包括初创公司、基于服务的公司以及基于产品的公司。作者希望他的面试经验能够为求职者提供一些有用的信息,因而撰写了此文。希望你读后能够有所收获! 首先自我介绍一下: 我在机器学习(语音分析、文本分析和图像分析领域应用)领域有4年以上的从业经验。总的来说,我认为这个领域的大多数工作职位主要包括文本分析(自然语言处理)和图像分析(计算机视觉)。很少有公司招聘语音或音频分析的人才。我现在的目标是应聘一个中高级职位,可以带领一个深度学习或机器学习团队做一些有趣的项目。 下面是我在应聘过程中被问到的问题,希望能够对你有所帮助。 ▌ 公司一:基于全球性服务的某公司(面试时长:20-25min) 你在简历中提到曾经构建过一个文档挖掘系统,你都做了哪些工作?能否在主题建模(topic modeling)中使用LDA技术实现文档聚类? 假设你有数百兆字节的数据文件,这其中包括PDF文件、文本文件、图像、扫描的PDF文件等等,请你给出一个分类方案。 你如何阅读扫描版pdf文件或图像格式的书面文件的内容? 朴素贝叶斯为什么被称为“朴素”? 请详细介绍一下朴素贝叶斯分类器。 什么是深度学习

机器学习十大经典算法-KNN(最近邻学习笔记)

穿精又带淫゛_ 提交于 2020-11-24 09:54:48
机器学习十大经典算法-KNN(最近邻) 最近在学习机器学习,查阅了很多人的博客,受益颇多,因此自己也试着将过学的内容做一个总结,一方面可以提高自己对学习过的算法的认识,再者也希望能帮助到初学者,共勉。。。 1 K-近邻算法原理 K最近邻(kNN,k-NearestNeighbor)分类算法,见名思意: 找到最近的k个邻居(样本),在前k个样本中选择频率最高的类别作为预测类别,什么?怎么那么拗口,没图说个球球,下面举个例子,图解一下大家就会显而易见了,如下图: 我们的目的是要预测某个学生在数学课上的成绩。。。 先来说明几个基本概念:图中每个点代表一个样本(在这里是指一个学生),横纵坐标代表了特征(到课率,作业质量),不同的形状代表了类别(即:红色代表A(优秀),绿色代表D(不及格))。 我们现在看(10,20)这个点,它就代表着:在数学课上,某个学生到课率是10%,交作业质量是20分,最终导致了他期末考试得了D等级(不佳)。同理,这6个点也就代表了6个往届学生的平时状态和最终成绩,称之为训练样本。。。。 现在要来实现我们的预测目的了,想象一下现在一学期快过完了,张三同学马上要考试了,他想知道自己能考的怎么样,他在数学老师那里查到了自己的到课率85%,作业质量是90,那么怎么实现预测呢? 张三可以看做是(85,90)这个点–也被称之为测试样本,首先,我们计算张三到其他6位同学(训练样本

R语言简单实现决策树算法

放肆的年华 提交于 2020-11-23 22:48:19
常用的分支准则方法有三种:信息增益、信息增益率、基尼系数。其实,这里问题就来了,决策树是可以不加限制的生长到有可能到很深的吗?当然是不行的,这就是这一节需要介绍的主要内容之一决策树的修剪,当然还会对决策树算法规律稍微总结一下,并用几个小例子说明R语言的具体实现。 01 决策树的修剪 单单根据决策树算法完成树的建立后,各个叶节点代表不同的种类,部分叶节点可能只包含少数样本,有可能还是一些异常数据,没有足够的支持度,增加了树的深度,过度适配也会导致分类错误率的增加。这就需要修剪决策树,原理是:从树的底部开始,检查每个节点和该节点的子决策树,看是否能将该子决策树去掉而该节点就自然成为了叶节点代替原来的子决策树,生成一个分类错误率更低、树的深度更低的决策树。 决策树的修剪分为 事前修剪 事后修剪 顾名思义,事前修剪就是在决策树的生长过程中,比如叶节点中数据数要大于3或者信息增益值要大于一个事先设定的阈值;否则,就停止分支。事后修剪就是在树的生长完成后进行修剪,引入测试组样本来验证决策树对于新输入数据的分类与预测结果。事后修剪法较前者效率略微低下,但可避免产生稀疏叶节点,对噪声的忍耐程度也更强。这里我们主要介绍事后修剪法。 事后修剪法考虑成本复杂度,我们以R(t)代表t为起始节点的决策树分类错误率。给定一个复杂系数a可以理解为代表决策树节点个数的影响,因为我们定义他们是正比例关系的