决策树

读书笔记 -- 算法导论(第二部分 排序和顺序统计学)

混江龙づ霸主 提交于 2020-10-29 07:35:35
输入数据的结构 在实际中,待排序的数很少是孤立的值,它们通常是一个称为记录的数据集的一部分。每个记录有一个关键字key,它是待排序的值。记录的其他数据称为卫星数据,即它们通常以key为中心传送。在一个排序的算法中,当交换关键字时,卫星数据也必须交换。如果记录都很大,我们可以交换一组指向各个记录的指针而不是记录本身,以求将数据移动量减少到最小。 在一定意义上,正式这些实现细节才使得一个完整的程序不同于算法。不管我们要排序的是单个的数值还是包含数据的大型记录,就排序的方法来说它们都是一样的。因为,为了集中考虑排序问题,我们一般都假设输入仅由数值构成。将对数字的排序算法转换为对记录排序的程序是很直接的。当然,在具体的工程条件下,实际的程序设计可能还会遇到其他难以捉摸的挑战。 为什么要研究排序? 许多计算机科学家认为,排序算法是算法学习中最基本的问题。原因有以下几个: 有时候应用程序本身就需要对信息进行排序。e.g. 准本客户账目,银行的支票号码 许多算法通常把排序作为关键子程序。 现在已经有很多的排序算法,它们采用各种技术。事实上,在算法设计中使用的很多重要技术在已经发展很多年的排序算法中早已用到了。所以,排序是一个具有历史意义的问题。 在实现排序算法时很多工程问题即浮出水面。对于某个特定的应用场景来说,最快的排序算法可能与许多因素有关:譬如关键字值和卫星数据的先验知识

机器学习-常见的监督学习模型

纵饮孤独 提交于 2020-10-28 08:57:45
机器学习可以分为三大类:监督学习、非监督学习、强化学习。 今天学习监督学习模型,根据输出是连续的还是离散的,又分为 回归问题 和 分类问题。 监督学习的训练数据,都是带‘答案’的,通过输入和答案之间的对应关系,获取其中的规则。 1,朴素贝叶斯分类器 Naive Bayes Classifier 假设样本的特征(被观察现象的一个可以测量的属性)在给定分类的条件下是相互独立的。 选择重要的特性对于传统的机器学习方法至关重要。 简单来讲这就是个概率计算 假设输入 X = (x1,x2,...,xn) 在给定 x的条件下 分类Ck的概率: P(Ck|X) = ∏P(xi|Ck)P(Ck) / P(X) 解释:给定X, P(X) 是一个固定的归一化的常量,因此可以忽略;P(xi|Ck) 和 P(Ck) 是通过训练数据集获取计算来的; 这样就可以计算给定条件X下的各个分类的概率,取概率最大的作为分类结果。 需要注意个细节: 如果 Xi 过多,相乘可能出现下溢(0),可以把乘法转为取对数相加;对于训练集中未出现的值的概率,可以忽略。 2,逻辑回归 Logistic Regression 线性回归模型: y = w T x + b 这个输出范围是 负无穷 到 正无穷 要转换为分类问题,需要使用 Sigmoid 函数 σ(x) = 1 / (1 + e -x ) 范围 (0,1) 逻辑回归模型:f

商业智能bi行业现状,BI应用的3个层次

爷,独闯天下 提交于 2020-10-28 08:52:12
​商业智能bi行业现状。传统的报表系统技术上已经相当成熟,大家熟悉的Excel等都已经被广泛使用。但是,随着数据的增多,需求的提高,传统报表系统面临的挑战也越来越多。 数据太多,信息太少 密密麻麻的表格堆砌了大量数据,到底有多少业务人员仔细看每一个数据?到底这些数据代表了什么信息、什么趋势?级别越高的领导,越需要简明的信息。 难以交互分析、了解各种组合 定制好的报表过于死板。例如,我们可以在一张表中列出不同地区、不同产品的销量,另一张表中列出不同地区、不同年龄段顾客的销量。业务问题经常需要多个角度的交互分析。 难以挖掘出潜在的规则 报表系统列出的往往是表面上的数据信息,但是海量数据深处潜在含有哪些规则呢?什么客户对我们价值最大,产品之间相互关联的程度如何?越是深层的规则,对于决策支持的价值越大,但是,也越难挖掘出来。 难以追溯历史,数据形成孤岛 业务系统很多,数据存在于不同地方。太旧的数据(例如一年前的数据)往往被业务系统备份出去,导致宏观分析、长期历史分析难度很大。    商业智能bi行业现状?随着时代的发展,传统报表系统已经不能满足日益增长的业务需求了,企业期待着新的技术。目前国内报表系统领先者Smartbi报表的创新技术能较好的满足繁杂的业务需求。数据分析和数据挖掘的时代正在来临。值得注意的是,数据分析和数据挖掘系统的目的是带给我们更多的决策支持价值,并不是取代数据报表

【技术综述】多标签图像分类综述

自古美人都是妖i 提交于 2020-10-28 06:49:29
图像分类作为计算机视觉领域的基础任务,经过大量的研究与试验,已经取得了傲人的成绩。然而,现有的分类任务大多是以单标签分类展开研究的。当图片中有多个标签时,又该如何进行分类呢?本篇综述将带领大家了解多标签图像分类这一方向,了解更具难度的图像分类。 作者 | 郭冰洋 编辑 | 言有三 1 简介 随着科学技术的进步与发展,图像作为信息传播的重要媒介,在通信、无人驾驶、医学影像分析、航天、遥感等多个领域得到了广泛的研究,并在国民社会、经济生活中承担着更加重要的角色。人们对图像研究的愈发重视,也促使计算机视觉领域迎来了蓬勃发展的黄金时代。 作为计算机视觉领域的基础性任务,图像分类是目标检测、语义分割的重要支撑,其目标是将不同的图像划分到不同的类别,并实现最小的分类误差。经过近30年的研究,图像分类已经成功应用至社会生活的方方面面。如今,在我们的生活中随处可见——智能手机的相册自动分类、产品缺陷识别、无人驾驶等等。 根据分类任务的目标不同,可以将图像分类任务划分成两部分:(1)单标签图像分类;(2)多标签图像分类。 单标签图像分类是指每张图片对应一个类别标签,根据物体类别的数量,又可以将单标签图像分类划分成二分类、多类别分类。如下图所示,可以将该图的标签记为海洋,通过单标签图像分类我们可以判定该图像中是否含有海洋。 然而,现实生活中的图片中往往包含多个类别的物体,这也更加符合人的认知习惯

梯度提升树(GBDT)原理小结

試著忘記壹切 提交于 2020-10-27 05:42:43
    在 集成学习之Adaboost算法原理小结 中,我们对Boosting家族的Adaboost算法做了总结,本文就对Boosting家族中另一个重要的算法梯度提升树(Gradient Boosting Decison Tree, 以下简称GBDT)做一个总结。GBDT有很多简称,有GBT(Gradient Boosting Tree), GTB(Gradient Tree Boosting ), GBRT(Gradient Boosting Regression Tree), MART(Multiple Additive Regression Tree),其实都是指的同一种算法,本文统一简称GBDT。GBDT在BAT大厂中也有广泛的应用,假如要选择3个最重要的机器学习算法的话,个人认为GBDT应该占一席之地。 1. GBDT概述     GBDT也是集成学习Boosting家族的成员,但是却和传统的Adaboost有很大的不同。回顾下Adaboost,我们是利用前一轮迭代弱学习器的误差率来更新训练集的权重,这样一轮轮的迭代下去。GBDT也是迭代,使用了前向分布算法,但是弱学习器限定了只能使用CART回归树模型,同时迭代思路和Adaboost也有所不同。     在GBDT的迭代中,假设我们前一轮迭代得到的强学习器是$f_{t-1}(x)$, 损失函数是$L(y, f_{t-1

[scikit-learn 机器学习] 8. 非线性分类和决策树

懵懂的女人 提交于 2020-10-24 13:05:12
文章目录 1. 特征选择标准 2. 网页广告预测 2.1 数量处理 2.2 网格搜索模型参数 3. 决策树优缺点 本文为 scikit-learn机器学习(第2版) 学习笔记 相关知识:《统计学习方法》 决策树(Decision Tree,DT) 1. 特征选择标准 信息增益,得知特征X的信息而使得类Y的信息的不确定性减少的程度。 信息增益比,信息增益的占比,选择大的特征 基尼系数,表示经特征 A 分割后集合 D 的不确定性,选择基尼系数小的特征 2. 网页广告预测 import pandas as pd from sklearn . tree import DecisionTreeClassifier from sklearn . model_selection import train_test_split from sklearn . metrics import classification_report from sklearn . pipeline import Pipeline from sklearn . model_selection import GridSearchCV df = pd . read_csv ( './ad.data' , header = None ) df . head ( 10 ) 数据前3列为广告图片的宽高、长宽比

特征工程之特征选择

前提是你 提交于 2020-10-24 09:37:32
    特征工程是数据分析中最耗时间和精力的一部分工作,它不像算法和模型那样是确定的步骤,更多是工程上的经验和权衡。因此没有统一的方法。这里只是对一些常用的方法做一个总结。本文关注于特征选择部分。后面还有两篇会关注于特征表达和特征预处理。 1. 特征的来源     在做数据分析的时候,特征的来源一般有两块,一块是业务已经整理好各种特征数据,我们需要去找出适合我们问题需要的特征;另一块是我们从业务特征中自己去寻找高级数据特征。我们就针对这两部分来分别讨论。 2. 选择合适的特征     我们首先看当业务已经整理好各种特征数据时,我们如何去找出适合我们问题需要的特征,此时特征数可能成百上千,哪些才是我们需要的呢?     第一步是找到该领域懂业务的专家,让他们给一些建议。比如我们需要解决一个药品疗效的分类问题,那么先找到领域专家,向他们咨询哪些因素(特征)会对该药品的疗效产生影响,较大影响的和较小影响的都要。这些特征就是我们的特征的第一候选集。     这个特征集合有时候也可能很大,在尝试降维之前,我们有必要用特征工程的方法去选择出较重要的特征结合,这些方法不会用到领域知识,而仅仅是统计学的方法。     最简单的方法就是方差筛选。方差越大的特征,那么我们可以认为它是比较有用的。如果方差较小,比如小于1,那么这个特征可能对我们的算法作用没有那么大。最极端的,如果某个特征方差为0

使用Scikit Learn的分类器探索Iris数据集

↘锁芯ラ 提交于 2020-10-23 02:40:27
作者|Dehao Zhang 编译|VK 来源|Towards Data Science 暂时,想象一下你不是一个花卉专家(如果你是专家,那对你很好!)。你能区分三种不同的鸢尾属植物吗?刚毛鸢尾属,花色鸢尾属和维吉尼亚鸢尾属(setosa, versicolor, virginica)? 我知道我不能… 但是,如果我们有一个包含这些物种实例的数据集,以及它们的萼片和花瓣的测量结果呢? 换言之,我们能从这个数据集中学到什么来帮助我们区分这三个物种吗? 目录 我们为什么选择这个数据集? 我们想回答什么问题? 在这个数据集中我们能找到什么? 我们正在构建哪些分类器? 下一步该怎么办? 数据集 在这篇博文中,我将探索UCI机器学习库中的Iris数据集。它摘自其网站,据说这可能是模式识别文献中最著名的数据库。此外,Jason Brownlee,机器学习社区创建者,他称该数据集为机器学习的“ Hello World ”。 我将把这个数据集推荐给那些对数据科学感兴趣并渴望构建第一个ML模型的人。它的一些优良特性见下文: 150个具有4个属性的实例(相同的单位,全部为数字) 均衡的阶级分布 无缺失数据 如你所见,这些特性有助于将你在数据准备过程中花费的时间减至最少,这样你就可以专注于构建你的第一个ML模型。 并不是说准备阶段不重要。相反,这个过程是如此的重要,以至于对于一些初学者来说

推荐引擎算法学习导论:协同过滤、聚类、分类(2011年旧文)

不打扰是莪最后的温柔 提交于 2020-10-22 09:53:48
推荐引擎算法学习导论:协同过滤、聚类、分类 作者:July 出处:结构之法算法之道 引言 昨日看到几个关键词:语义分析,协同过滤,智能推荐,想着想着便兴奋了。于是昨天下午开始到今天凌晨3点,便研究了一下推荐引擎,做了初步了解。日后,自会慢慢深入仔细研究(日后的工作亦与此相关)。当然,此文也会慢慢补充完善。 本文作为对推荐引擎的初步介绍的一篇导论性的文章,将略去大部分的具体细节,侧重用最简单的语言简要介绍推荐引擎的工作原理以及其相关算法思想,且为了着重浅显易懂有些援引自本人1月7日在微博上发表的文字(特地整理下,方便日后随时翻阅),尽量保证本文的短小。不过,事与愿违的是,文章后续补充完善,越写越长了。 同时,本文所有相关的算法都会在日后的文章一一陆续具体阐述。本文但求微言导论,日后但求具体而论。若有任何问题,欢迎随时不吝赐教或批评指正。谢谢。 1、推荐引擎原理 推荐引擎尽最大努力的收集尽可能多的用户信息及行为,所谓广撒网,勤捕鱼,然后“特别的爱给特别的你”,最后基于相似性的基础之上持续“给力”,原理如下图所示(图引自本文的参考资料之一:探索推荐引擎内部的秘密): 2、推荐引擎的分类 推荐引擎根据不同依据如下分类: 根据其是不是为不同的用户推荐不同的数据,分为基于大众行为(网站管理员自行推荐,或者基于系统所有用户的反馈统计计算出的当下比较流行的物品)、及个性化推荐引擎(帮你找志同道合

游戏开发中的人工智能

泪湿孤枕 提交于 2020-10-21 06:44:55
前言 今天非常开心,观看cocos官方直播居然在几千人中中奖,可以买彩票了。 言归正传,所谓的人工智能,也就是大家常说的AI(Artificial Intelligence)。一说到AI可能就会让人觉得比较深奥,其实也就是非玩家角色思考和行为的综合。比如,在什么样的条件下,触发什么样的行为。 其实我们在游戏开发中的AI要比学术理论中的AI简单很多,甚至有些行为不需要AI也能体现。比如使用剧情对话体现非玩家角色的想法。 那么AI 都涉及到哪些东西呢? 控制器 我理解的控制器,就是非玩家角色的大脑,是用来思考事情的。例如通过执行决策树,得到一个有效的行为。使用不一样的控制器就会有不一样的思考方式。比如玩家的控制器就是根据按键操作触发不同的行为。阿猫,阿狗的可能又不一样了。 感知器 获得周围环境的情况,不如距离谁有多远,自身生命值多少,玩家生命值多少,等等。 反应 也就是控制器执行决策树后产生的有效行为。比如跳跃,跑,各种攻击,防御等等。 决策树 我理解为思考时的思路,比如应该在什么样的条件下执行什么样的反应。比如当我的血量低于百分之30的时候我要逃跑。具体案例体现在我的游戏《星际迷航》的第一个boss身上。 记忆 就是非玩家角色可以通过存储数据,供控制器执行的时候使用,以提高非玩家角色的智商。 学习 这个能力太牛逼了。实现起来也比较复杂,需要大量的数据和计算量为依托