分类数据

【机器学习】机器学习入门02 - 数据拆分与测试&算法评价与调整

风格不统一 提交于 2019-12-04 18:38:04
0. 前情回顾 上一周的文章中,我们通过kNN算法了解了机器学习的一些基本概念。我们自己实现了简单的kNN算法,体会了其过程。这一周,让我们继续机器学习的探索。 1. 数据集的拆分 上次的kNN算法介绍中,我们只是简单地实现了这样一个算法,并用一组测试数据进行了测试。 然而,在真正的工程应用中,我们设计出的机器学习算法,并不一定非常准确,甚至可能非常不准确。因此我们需要进行测试,如同我们设计好了一个数据结构后,需要使用尽可能涵盖各种情况的参数调用各个操作,并通过一定的方式观察是否符合我们对这种数据结构的预期。机器学习也是一样。 不过,如何对机器学习算法进行高效的测试呢? 这里,我们的方案是:将原始数据集拆分成两部分:训练数据 ( train ) 和测试数据 ( test )。顾名思义,训练数据就是真正提供给机器来进行学习的材料,而测试数据则用来检验算法在训练数据的作用下能否正确给出相应的预测。具体来说,我们将测试数据的指标部分 ( X_test ) 作为输入传给算法,得到的输出 ( y_predict ) 与测试数据的原本的分类标签 ( y_test ) 进行比较,通过其重合的程度来评估算法的好坏。 于是,我们需要一个算法,负责原始数据集的拆分。 1.1 准备工作 在这之前,我们先引入一个sklearn中的模块datasets,并通过以下代码创建一个原始数据集。 1 from

卷积神经网络-目标分类简述

泄露秘密 提交于 2019-12-04 14:04:11
目标分类基本框架 1. 数据准备 数据来源 --现有数据集的子集;网络采集;现有数据人工标注 http://deeplearning.net/datasets/ 数据扩充 -- https://blog.csdn.net/zhelong3205/article/details/81810743 作用----增加训练的数据量,提高模型的泛化能力,增加噪声数据,提升模型的鲁棒性 数据增强可以分为两类,一类是离线增强,一类是在线增强 离线增强 : 直接对数据集进行处理,数据的数目会变成增强因子 x 原数据集的数目 ,这种方法常常用于数据集很小的时候 在线增强 : 这种增强的方法用于,获得 batch 数据之后,然后对这个 batch 的数据进行增强,如旋转、平移、翻折等相应的变化,由于有些数据集不能接受线性级别的增长,这种方法长用于大的数据集,很多机器学习框架已经支持了这种数据增强方式,并且可以使用 GPU 优化计算。 常用的数据扩充技术: 翻转 :增强因子 2 或 3 数据翻转是一种常用的数据增强方法,这种方法不同于旋转 180 这种方法是做一种类似于镜面的翻折。 旋转 : 增强因子 2 到 4 旋转就是顺时针或者逆时针的旋转,注意在旋转的时候, 最好旋转 90 -180 度否则会出现尺度的问题    缩放 :增强因子任意 图像可以被放大或缩小。放大时,放大后的图像尺寸会大于原始尺寸

Tableau 分群

左心房为你撑大大i 提交于 2019-12-04 11:22:51
对数据的特征进行分析,分群。 数据选用的是Iris data 下载地址:http://archive.ics.uci.edu/ml/machine-learning-databases/iris/ 1.下载后的数据文件是.data格式,直接选择用Tableau导入,选择Text file,文件类型选所有类型将Iris.data添加进去 2.修改列名 3.分析的时候将工具栏->Analysis->Aggregate Measures关闭。 4.根据花萼宽和花萼长标记出每个点,再加上种类进行分类。如下图所示 5.根据花萼宽和花萼长进行分群,左侧Analytics->Cluster进行分群。Marks中选择Clusters,右击->Edit Clusters->Number of Clusters 选3个 因为3个种类。 将Clusters移到Dimensions作为一个维度,对该唯独Edit Group将三个群名字改为3个种类的名字。 创建一个判断分群的维度,计算公式如下。分群与类别相同时,则为真,否则为假。 6.通过判断分群的维度,给出直方图,测度选择Number of Records。 7.最后通过DashBoard给出详细的视觉化对比图。 通过添加Actoins 给出高亮效果,看出哪几个是分群错误的。分类和分群前面需要加上分群判断的Mark才可以联动。 最后可以看出

L0、L1、L2范数正则化

无人久伴 提交于 2019-12-04 10:46:46
参考资料(要是对于本文的理解不够透彻,必须将以下博客认知阅读,方可全面了解LR): (1). https://zhuanlan.zhihu.com/p/74874291 (2). 逻辑回归与交叉熵 (3). https://www.cnblogs.com/pinard/p/6029432.html (4). https://zhuanlan.zhihu.com/p/76563562 (5). https://www.cnblogs.com/ModifyRong/p/7739955.html 一、逻辑回归介绍   逻辑回归(Logistic Regression)是一种广义线性回归。线性回归解决的是回归问题,预测值是实数范围,逻辑回归则相反,解决的是分类问题,预测值是[0,1]范围。所以逻辑回归名为回归,实为分类。接下来让我们用一句话来概括逻辑回归(LR): 逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。 这句话包含了五点,接下来一一介绍: 逻辑回归的假设 逻辑回归的损失函数 逻辑回归的求解方法 逻辑回归的目的 逻辑回归如何分类 二、逻辑回归的假设 任何的模型都是有自己的假设,在这个假设下模型才是适用的。 逻辑回归的第一个基本假设是假设数据服从伯努利分布。 伯努利分布:是一个离散型概率分布,若成功,则随机变量取值1;若失败

通俗地说逻辑回归【Logistic regression】算法(二)sklearn逻辑回归实战

天大地大妈咪最大 提交于 2019-12-04 09:04:44
前情提要: 通俗地说逻辑回归【Logistic regression】算法(一) 逻辑回归模型原理介绍 上一篇主要介绍了逻辑回归中,相对理论化的知识,这次主要是对上篇做一点点补充,以及介绍sklearn 逻辑回归模型的参数,以及具体的实战代码。 1.逻辑回归的二分类和多分类 上次介绍的逻辑回归的内容,基本都是基于二分类的。那么有没有办法让逻辑回归实现多分类呢?那肯定是有的,还不止一种。 实际上二元逻辑回归的模型和损失函数很容易推广到多元 逻辑回归。比如总是认为某种类型为正值,其余为0值。 举个例子,要分类为A,B,C三类,那么就可以把A当作正向数据,B和C当作负向数据来处理,这样就可以用二分类的方法解决多分类的问题,这种方法就是最常用的one-vs-rest,简称OvR。而且这种方法也可以方便得推广到其他二分类模型中(当然其他算法可能有更好的多分类办法)。 另一种多元逻辑回归的方法是Many-vs-Many(MvM),它会选择一部分类别的样本和另一部分类别的样本来做逻辑回归二分类。 听起来很不可思议,但其实确实是能办到的。比如数据有A,B,C三个分类。 我们将A,B作为正向数据,C作为负向数据,训练出一个分模型。再将A,C作为正向数据,B作为负向数据,训练出一个分类模型。最后B,C作为正向数据,C作为负向数据,训练出一个模型。 通过这三个模型就能实现多分类,当然这里只是举个例子

机器学习 (一)------分类

别来无恙 提交于 2019-12-04 06:54:15
机器学习 (一)------分类 机器学习分类 机器学习分为监督学习和无监督学习两类。 监督学习是指在有标记的样本上建立机器学习的模型(这类算法知道预测什么,即目标变量的分类信息)。 无监督学习恰恰相反,是指没有标记的数据上建立学习模型。 主要任务: 分类:主要任务是将实例数据划分到合适的分类中。 回归:例如数据拟合曲线(根据给定数据点的最优拟合曲线),主要用于预测数值型数据。 如何选择合适的算法: 从上表中选择实际可用的算法,要考虑以下两个方面的问题: 1、使用机器学习算法的目的,想要算法完成何种任务; 2、需要分析和收集的数据是什么; 主要了解数据的以下特征:特征值是离散型变量还是连续型变量,特征值是否存在缺失值,何种原因造成的缺失,数据中是否存在异常值,某个特征发生的频率如何等。 使用算法创建应用程序的步骤: (1)收集数据(网络爬虫抽取、从RRS反馈或者API中得到,设备发送的实测数据); (2)准备输入数据(确保数据格式符合要求); (3)分析输入数据(人工分析以前得到的数据); (4)训练算法(将前面得到的格式化数据输入到算法,从中抽取知识或信息;无监督学习没有这一步); (5)测试算法(使用上一部机器学习得到的知识信息); (6)使用算法(将机器学习算法转换为应用程序)。 一、K-近邻算法 1、算法概述 简单地说,k-近邻算法采用测量不同特征值之间的距离方法进行分类。

论文阅读--LEMNA: Explaining Deep Learning based Security Applications

删除回忆录丶 提交于 2019-12-04 04:42:44
摘要: 在视觉和NLP领域的可解释性方法在安全领域不适用,会造成严重的错误理解和解释错误。提出LEMNA->使用可解释模型解释复杂网络的局部,可用于验证模型表现,排除分类错误,并自动修补目标模型的错误。 1.引言: 1)深度学习广泛应用于恶意代码分类、二进制逆向工程、网络侵入检测,且精度很高。 2)但深度学习的缺乏透明度。已有的可解释性方法(视觉、NLP)只能提供形式化的解释,并不精确且保真度不够,应用到安全领域会造成错误理解和解释错误。 3)本文方法:给定输入数据x和黑箱分类器(e.g. RNN),通过生成分类器在x附近的决策边界的局部近似来识别出对x有关键贡献的少量特征。 和以前的方法主要是假设不同,之前:假设局部近似是线性模型且特征相互独立 本文:保留局部非线性和特征依赖:1)混合的回归模型(喂入足够数据理论上可解释任何线性和非线性模型);2)通过在学习过程中加入熔融lasso,混合回归模型可以将特征作为一个整体,从而捕获相邻特征之间的依赖关系;具有高保真度。 LEMNA 1)可以解释分类器的决策行为;2)可以从分类其中提取新的知识;3)解释分类器的错误(分析人员可以通过为每个可解释的错误增加训练样本来自动生成目标补丁,并通过目标再训练来提高分类器的性能) 2.可解释的机器学习 白盒可解释方法(模型架构、参数和训练数据都是已知的) :   1)基于输入或结构遮挡的正向传播:

二、表的介绍、SQ语句的分类

淺唱寂寞╮ 提交于 2019-12-04 04:41:37
一、表的介绍   表的定义:     它是数据库的基本组成单元,所有的数据都以表格的形式组织起来的。     一个表包括行和列,其中行主要是数据/记录,列是由字段组成。     字段的属性组成:字段名、数据类型、相关的约束。 二、SQL语句的分类   1、DQL又叫数据查询语言:负责查询语句,其中select语句都是DQL。   2、DML又叫数据操作语言:负责对表中的数据进行增删改,如insert、delete、update语句。   3、DDL又叫数据定义语言:负责对表的结构进行增删改,如create、drop、alter语句。   4、TCL又叫事务控制语言:其中commit语句负责提交事务,rollback负责回滚事务。   5、DCL又叫数据控制语言:其中grant语言负责授权,revike负责撤销权限。 来源: https://www.cnblogs.com/xule-11/p/11831882.html

图神经网络概述第三弹:来自IEEE Fellow的GNN综述

。_饼干妹妹 提交于 2019-12-03 23:47:52
图神经网络(GNN)热度持续上升,之前我们曾介绍了清华两篇综述论文,参见:深度学习时代的图模型,清华发文综述图网络,和清华大学图神经网络综述:模型与应用。最近,IEEE Fellow、Senior Member 和 Member Zonghan Wu 等人又贡献了一篇图神经网络综述文章。这篇文章介绍了 GNN 的背景知识、发展历史、分类与框架、应用等,详细介绍了各种模型与方法,包括公式、模型图示、算法等,希望对大家有所帮助。 引言 深度网络的最新进展推进了模式识别和数据挖掘领域的研究。目标检测、机器翻译、语音识别等许多机器学习任务曾高度依赖手工特征工程来提取信息特征集合,但多种端到端深度学习方式(即卷积神经网络、长短期记忆网络和自编码器)改变了这种状况。深度学习在多个领域的成功主要归功于计算资源的快速发展(如 GPU)、大量训练数据的收集,还有深度学习从欧几里得数据(如图像、文本和视频)中提取潜在表征的有效性。例如 CNN 可以利用平移不变性、局部连通性和图像数据语意合成性,从而提取出与整个数据集共享的局部有意义的特征,用于各种图像分析任务。 尽管深度学习已经在欧几里得数据中取得了很大的成功,但从非欧几里得域生成的数据已经取得更广泛的应用,它们需要有效分析。例如,在电子商务领域,一个基于图的学习系统能够利用用户和产品之间的交互以实现高度精准的推荐。在化学领域,分子被建模为图

存储分类(四)-对象存储

柔情痞子 提交于 2019-12-03 20:59:51
而对象存储是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备,简称:OSD 典型设备 :内置大容量硬盘的分布式服务器 对象存储最常用的方案,就是多台服务器内置大容量硬盘,再装上对象存储软件,然后再额外搞几台服务作为管理节点,安装上对象存储管理软件。管理节点可以管理其他服务器对外提供读写访问功能。 之所以出现对象存储这种东西,是为了克服块存储与文件存储各自的缺点,发扬各自的优点。简单来说块存储读写快,不利于共享,文件存储读写慢,利于共享。能否弄一个读写块,利于共享的存储出来呢?于是就有了对象存储。 首先, 一个文件包含了属性(术语:metadata,元数据,例如该文件的大小、修改时间、存储路径等)以及内容(数据)。 像FAT32这种文件系统,是直接将一份文件与metadata一起存储的,存储过程先将文件按照文件系统的最小块大小来打散(比如4M的文件,假设文件系统要求一个块4K,那么就将文件打散称为1000个小块),再写进硬盘里,过程中没有区分数据和metadata的。而每个块最后会告知你下一个要读取的块地址,然后一直这样 顺序 的按图索骥,最后完成整份文件的所有块的读取。 这种情况下读写速率很慢,因为就算你有100个机械臂在读写,但是由于你只有读取到第一个块,才能知道下一个块在哪里,其实相当于只能有1个机械臂在实际工作。 而对象存储则将元数据独立出来了