分类数据

数据可视化库之Seaborn教程(catplot)

て烟熏妆下的殇ゞ 提交于 2019-11-30 00:32:04
catplot(): 用分类型数据(categorical data)绘图 在关系图教程中,我们了解了如何使用不同的可视化表示来显示数据集中多个变量之间的关系。在这些例子中,我们关注的主要关系是两个数值变量之间的情况。如果其中一个主要变量是“分类”(分为不同的组),那么使用更专业的可视化方法可能会有所帮助。 下面所有函数的最高级别的整合接口:catplot() Categorical scatterplots: stripplot() (with kind=“strip”; the default) swarmplot() (with kind=“swarm”) Categorical distribution plots: boxplot() (with kind=“box”) violinplot() (with kind=“violin”) boxenplot() (with kind=“boxen”) Categorical estimate plots: pointplot() (with kind=“point”) barplot() (with kind=“bar”) countplot() (with kind=“count”) import seaborn as sns import matplotlib . pyplot as plt sns . set (

Keras Sequential顺序模型

為{幸葍}努か 提交于 2019-11-29 17:58:34
keras是基于tensorflow封装的的高级API,Keras的优点是可以快速的开发实验,它能够以 TensorFlow , CNTK , 或者 Theano 作为后端运行。 模型构建 最简单的模型是 Sequential 顺序模型 ,它由多个网络层线性堆叠。对于更复杂的结构,你应该使用 Keras 函数式 API ,它允许构建任意的神经网络图。 用Keras定义网络模型有两种方式, Sequential 顺序模型 Keras 函数式 API模型 1、Sequential 顺序模型 from keras.models import Sequential model = Sequential() 我们可以通过将网络层实例的 列表 传递给 Sequential 的构造器,来创建一个 Sequential模型,: from keras.models import Sequential from keras.layers import Dense, Activation model = Sequential([ Dense(32, input_shape=(784,)), Activation('relu'), Dense(10), Activation('softmax'), ]) 也可以通过 .add()的方法将各层添加到网络中 from keras.layers import

几个常用算法的适应场景及其优缺点!

℡╲_俬逩灬. 提交于 2019-11-29 07:56:30
机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验。通常最开始我们都会选择大家普遍认同的算法,诸如SVM,GBDT,Adaboost,现在 深度学习 很火热, 神经网络 也是一个不错的选择。 假如你在乎精度(accuracy)的话,最好的方法就是通过交叉验证(cross-valida ti on)对各个算法一个个地进行 测试 ,进行比较,然后调整参数确保每个算法达到最优解,最后选择最好的一个。但是如果你只是在寻找一个“足够好”的算法来解决你的问题,或者这里有些技巧可以参考,下面来分析下各个算法的优缺点,基于算法的优缺点,更易于我们去选择它。 1.天下没有免费的午餐 在机器学习领域,一个基本的定理就是“没有免费的午餐”。换言之,就是没有算法能完美地解决所有问题,尤其是对监督学习而言(例如预测建模)。 举例来说,你不能去说神经网络任何情况下都能比决策树更有优势,反之亦然。它们要受很多因素的影响,比如你的数据集的规模或结构。 其结果是,在用给定的测试集来评估性能并挑选算法时,你应当根据具体的问题来采用不同的算法。 当然,所选的算法必须要适用于你自己的问题,这就要求选择正确的机器学习任务。作为类比,如果你需要打扫房子,你可能会用到吸尘器、扫帚或是拖把,但你绝对不该掏出铲子来挖地。 2. 偏差

林轩田机器学习基石笔记3—Types of Learning

我怕爱的太早我们不能终老 提交于 2019-11-29 04:41:31
上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA。PLA能够在平面中选择一条直线将样本数据完全正确分类。而对于线性不可分的情况,可以使用Pocket Algorithm来处理。本节课将主要介绍一下机器学习有哪些种类,并进行归纳。 一、Learning with Different Output Space Y(根据输入空间变化划分) 银行根据用户个人情况判断是否给他发信用卡的例子,这是一个典型的二元分类(binary classification)问题。也就是说输出只有两个,一般y={-1, +1},-1代表不发信用卡(负类),+1代表发信用卡(正类)。 二元分类的问题很常见,包括信用卡发放、垃圾邮件判别、患者疾病诊断、答案正确性估计等等。二元分类是机器学习领域非常核心和基本的问题。二元分类有线性模型也有非线性模型,根据实际问题情况,选择不同的模型。 除了二元分类,也有多元分类(Multiclass Classification)问题。顾名思义,多元分类的输出多于两个,y={1, 2, … , K}, K>2. 一般多元分类的应用有数字识别、图片内容识别等等。 二元分类和多元分类都属于分类问题,它们的输出都是离散值。 对于另外一种情况,比如训练模型,预测房屋价格、股票收益多少等,这类问题的输出y=R,即范围在整个实数空间,是连续的。这类问题,我们把它叫做回归

GCN和GCN在文本分类中应用

跟風遠走 提交于 2019-11-29 02:39:12
1.GCN的概念 传统CNN卷积可以处理图片等欧式结构的数据,却很难处理社交网络、信息网络等非欧式结构的数据。一般图片是由c个通道h行w列的矩阵组成的,结构非常规整。而社交网络、信息网络等是图论中的图(定点和边建立起的拓扑图)。 传统CNN卷积面对输入数据维度必须是确定的,进而CNN卷积处理后得到的输出数据的维度也是确定的。欧式结构数据中的每个点周边结构都一样,如一个像素点周围一定有8个像素点,即每个节点的输入维度和输出维度都是固定的。而非欧式结构数据则不一定,如社交网络中A和B是朋友,A有n个朋友,但B不一定有n个朋友,即每个节点的输入维度和输出维度都是不确定的。 所以不能使用CNN来对社交网络、信息网络等数据进行处理,因为对A节点处理后得到输出数据的维度和对B节点处理后得到输出数据维度是不一样的。为了得到社交网络、信息网络的空间特征所以我们使用GCN(Graph Convolutional Network)来处理。 2. GCN工作原理 图1 一个GCN的实例(图片来源网页[3]) 同一般的卷积神经网络不同,GCN输入的数据是一个图拓扑矩阵,这个拓扑矩阵一般是图的邻接矩阵。 2.1 概念定义 概念 定义 G 一个拓扑图定义为G=(V,E) 其中V是节点集合,E是边集合。 N N是图中节点个数,即|V| F 节点的特征数,不同学习任务F不同 X 网络初始化矩阵,

MySQL语言分类——DDL

只愿长相守 提交于 2019-11-29 01:55:23
DDL的全称Data Definition Language,即数据定义语言   DDL的语法有:create、alter、drop、rename、truncate。对此做一个详细的解释: create (创建)   create 可以创建数据库 # 创建数据库 create database database_name; # 然后进入该数据库 use database_name;   create 可以创建表格     创建表格的语法:方括号的表示可以省略       create [temporary] table [if not exits] table_name(         column_name data_type [not null | null] [default default_value] [auto_increment] [Constraints约束条件],       );     [if not exits] 如果新建表不存在,则会创建新表;如果存在,不会报错,数据也不会被覆盖 create table if not exits table_name( id int, name varchar(20) );     [temporary] 创建临时表 用于存储临时计算的数据,生命周期只限于本次连接 create temporary table

2017 Github优秀开源项目整理

安稳与你 提交于 2019-11-28 22:43:42
所有项目整理到一张思维导图 : http://chenhaoact.com/github-project-recommend.html github项目地址(每周更新,欢迎star) : https://github.com/chenhaoact/github-project-recommend 写在前面 目前开源社区Github涌现出不少优秀的项目,关注和使用这些项目,一方面可以很好的提升开发效率与质量,另一方面研究开源项目的源码,参与其贡献,也是提升技术能力一个不错的方法。 基于自己团队的需求,以后每周会整理一些不错的Github开源项目(每周3-6个),范围主要包括:编程基础,前端开发,客户端开发,图形图像,网络,通用工具等,但不局限于此,一些服务端技术以及前沿技术(如:AI,AR,loT等)也可能会涉及到。相信多开阔眼界,方能看的更远! 所有的项目都会第一时间整理到上面的 思维导图 中,通过这种形式能够实时的跟踪每个项目的star数,在需要用的时候也可以快点检索和查找。 如果对你的工作或学习有所帮助,请到项目的 github star 支持一下哈,不胜感激! 以下是以往各期收集的项目( 持续更新中… ): 第十八期(2017-12-29) 分类 项目名称与地址 项目简介 推荐理由 star数 canvas react-canvas https://github.com

2018 Github优秀开源项目整理

两盒软妹~` 提交于 2019-11-28 22:30:25
目前开源社区Github涌现出不少优秀的项目,关注和使用这些项目,一方面可以很好的提升开发效率与质量,另一方面研究开源项目的源码,参与其贡献,也是提升技术能力一个不错的方法。 基于自己团队的需求,以后每周会整理一些不错的Github开源项目(每周3-6个),范围主要包括:编程基础,前端开发,客户端开发,图形图像,网络,通用工具等,但不局限于此,一些服务端技术以及前沿技术(如:AI,AR,loT等)也可能会涉及到。相信多开阔眼界,方能看的更远! 所有的项目都会第一时间整理到上面的思维导图中,通过这种形式能够实时的跟踪每个项目的star数,在需要用的时候也可以快点检索和查找。 如果对你的工作或学习有所帮助,请到项目的github star 支持一下哈,不胜感激! 以下是以往各期收集的项目( 持续更新中… ): 第十八期(2017-12-29) 分类项目名称与地址项目简介推荐理由star数 canvasreact-canvas https://github.com/Flipboard/react-canvasReact Canvas增加了React组件渲染到canvas而不是DOM的能力。它带来了Web开发人员熟悉的一些API,并将它们与高性能绘图引擎混合在一起。与本地应用程序相比,移动Web应用程序感觉缓慢的原因是DOM。 CSS动画和过渡是在Web上实现平滑动画的最快途径

KNN与K-MEANS的区别

冷暖自知 提交于 2019-11-28 21:55:55
1. k-means聚类算法过程与原理 k-means算法(k-均值聚类算法)是一种基本的已知聚类类别数的划分算法。它是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。它是使用欧氏距离度量的(简单理解就是两点间直线距离,欧氏距离只是将这个距离定义更加规范化,扩展到N维而已)。它可以处理大数据集,且高效。聚类结果是划分为k类的k个数据集。根据聚类结果的表达方式又可以分为硬 k-means(H CM)算法、模糊k-means算法(F CM)和概率k-means算法(P CM)。 1.1.基本思想 它是基于给定的聚类目标函数,算法采用迭代更新的方法,每一次迭代过程都是向目标函数减小的方向进行,最终聚类结果使得目标函数取得极小值,达到较好的分类效果 1.2 原理 原始的k-means算法首先随机选取k个点作为初始聚类中心,然后计算各个数据对 象到各聚类中心的距离,把数据对象归到离它最近的那个聚类中心所在的类; 调整后的新类计算新的聚类中心,如果相邻两次的聚类中心没有任何变化,说明 数据对象调整结束,聚类准则函数f已经收敛。在每次迭 代中都要考察每个样本的分类是否正确,若不正确,就要调整。在全部数据调整 完后,再修改聚类中心,进入下一次迭代。如果在一次迭代算法中,所有的数据 对象被正确分类,则不会有调整,聚类中心也不会有任何变化

XGBoost和LightGBM的参数以及调参

℡╲_俬逩灬. 提交于 2019-11-28 19:59:22
一、XGBoost参数解释 XGBoost的参数一共分为三类: 通用参数 :宏观函数控制。 Booster参数 :控制每一步的booster(tree/regression)。booster参数一般可以调控模型的效果和计算代价。我们所说的调参,很这是大程度上都是在调整booster参数。 学习目标参数 :控制训练目标的表现。我们对于问题的划分主要体现在学习目标参数上。比如我们要做分类还是回归,做二分类还是多分类,这都是目标参数所提供的。 Note: 我下面介绍的参数都是我觉得比较重要的, 完整参数请戳 官方文档 1.通用参数 booster :我们有两种参数选择, gbtree 和 gblinear 。gbtree是采用树的结构来运行数据,而gblinear是基于线性模型。 silent :静默模式,为 1 时模型运行不输出。 nthread : 使用线程数,一般我们设置成 -1 ,使用所有线程。如果有需要,我们设置成多少就是用多少线程。 2.Booster参数 n_estimator : 也作 num_boosting_rounds 这是生成的最大树的数目,也是最大的迭代次数。 learning_rate : 有时也叫作 eta ,系统默认值为 0.3 ,。 每一步迭代的步长,很重要。太大了运行准确率不高,太小了运行速度慢。我们一般使用比默认值小一点, 0.1 左右就很好。