分类器

【深度之眼cs231n第七期】笔记(三)

不想你离开。 提交于 2020-01-10 05:40:33
线性分类器 神经网络可以由很多小的网络组成,就像一个大积木是由很多小的基本块组成一样。 比如我们想要一个模型:输入一幅图像,然后输出描述图片的句子。那么我们可以让卷积神经网络只关注图片,循环神经网络只关注语言,然后把两个网络组合在一起,就像搭积木一样,最后得到我们想要的模型。 而线性分类器是参数模型中最简单的例子,相当于积木中最基础的块。 在CIFAR中,我们将写一个关于图像x和参数W的函数F,输出是10个数字,代表10个类别的分数。我们希望W能总结训练数据中的知识,这样最后预测时就有可能运行在较小的终端设备上了。 假设我们的输入是32*32*3的一副图像,那么我们想要得到10个分数,我们的W就需要是10*3072大小的。我们通常还会添加一个偏置项,它是10*1的向量。它是关于类偏好的。比如,你的数据不均衡,猫的数据多于狗的。那么,猫这一项的偏置项就会比其他的高。 这里有个简单的例子关于线性分类器是如何运作的。这里的W和b就是我们想要训练得到的东西。 线性分类器也称为模板匹配,因为W矩阵中的每一行对应于图像的某个模板。也就是说,只有在图像像素较大的地方,W的数值也大,图像像素较小的地方,W的值也小,才会得到较高的分数,也就是说W和图像是相似的。 如果我们将W矩阵的行向量还原回一幅图像,我们可以更直接地看到为什么叫模板匹配。比如第二张图,整体上能看出比较像一辆车

DataWhale初级算法梳理—Task01:机器学习综述

梦想与她 提交于 2020-01-08 20:55:45
机器学习概述 1.机器学习分类 1.1 监督学习: 利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练或有教师学习。监督学习的训练集要求包括输入和输出,主要应用于分类和预测。 1.2 非监督学习: 从数据集中发现隐含的某种结构,获得样本数据的结构特征,判断哪些数据比较相似。 1.3半监督学习 监督学习和非监督学习的结合,其在训练阶段使用的是未标记的数据和已标记的数据,不仅要学习属性之间的结构关系,也要输出分类模型进行预测。 1.4 强化学习: 强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。 2.机器学习算法 2.1 线性算法(Linear Algorithms): 线性回归(Linear Regression)、套索回归(Lasso Regression)、岭回归(Ridge Regression)、逻辑回归(Logistic Regression) 2.2 决策树(Decision Tree): ID3、C4.5、CART 2.3 支持向量机(SVM) 2.4 朴素贝叶斯算法(Naive Bayes Algorithms): 朴素贝叶斯(Naive Bayes)

如何处理不均衡数据

和自甴很熟 提交于 2020-01-08 12:41:59
定义 以二分类问题为例,假设我们的数据集是S,数据集中的多数类为S_maj,少数类为S_min,通常情况下把多数类样本的比例为100:1,1000:1,甚至是10000:1,这种情况下为不平衡数据,不平衡数据的学习即需要在如此分布不均匀的数据集中学习到有用的信息。 问题:不均衡的数据理解预测起来很简单,永远都是预测多的数据的那一方,这样准没错,特别是数据多很多的情况的那一方,比如多的占了90%,少的占10%. 只要每一次都预测多的那一批数据,预测的准确性就可以达到90%了。 为什么类不平衡是不好的 1.从模型的训练过程来看 从训练模型的角度来说,如果某类的样本数量很少,那么这个类别所提供的“信息”就太少。 使用经验风险(模型在训练集上的平均损失)最小化作为模型的学习准则。设损失函数为0-1 loss(这是一种典型的均等代价的损失函数),那么优化目标就等价于错误率最小化(也就是accuracy最大化)。考虑极端情况:1000个训练样本中,正类样本999个,负类样本1个。训练过程中在某次迭代结束后,模型把所有的样本都分为正类,虽然分错了这个负类,但是所带来的损失实在微不足道,accuracy已经是99.9%,于是满足停机条件或者达到最大迭代次数之后自然没必要再优化下去,训练结束,于是模型没有学习到如何去判别出少数类。 2.从模型的预测过程来看 考虑二项Logistic回归模型

Python机器学习书-奠基之路

安稳与你 提交于 2020-01-07 08:42:49
来自百度百科: https://baike.baidu.com/item/Python%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/20499731?fr=aladdin 该书涵盖内容全面是一本很好的入门级图书。 《Python机器学习》是2017年 机械工业出版社 出版的图书,作者是塞巴斯蒂安·拉施卡(Sebastian Raschka) 作者:[美] 塞巴斯蒂安·拉施卡(Sebastian Raschka) 著 ISBN(书号):978-7-111-55880-4 丛书名:数据科学与工程技术丛书 出版日期:2017-03 版次:1/1 开本:16 定价:¥79.00 内容简介 本书将机器学习背后的基本理论与应用实践联系起来,通过这种方式让读者聚焦于如何正确地提出问题、解决问题。书中讲解了如何使用Python的核心元素以及强大的机器学习库,同时还展示了如何正确使用一系列统计模型。不管你是学习数据科学的初学者,还是想进一步拓展对数据科学领域的认知,本书都是一个重要且不可错过的资源,它能帮助你了解如何使用Python解决数据中的关键问题。 使用Python在深度学习、数据转换与数据可视化领域功能强大的开源库 学习关于提高机器学习系统与算法效率以及优化方面的有效策略和最佳实践 提出(并解决)数据方面的棘手问题,在大规模数据集基础上构建稳定的统计模型

【1】KNN(K-nearest neighbors algorithm)

隐身守侯 提交于 2020-01-05 15:09:08
基本原理 KNN算法又叫最近邻居法,是一种非常简单易于掌握的分类算法。 其基本原理是,存在一个已知标签的数据集合,也就是训练样本集。 这个样本集中的每一个数据所属的分类都是已知的。 当一个没有标签的新数据需要确定自己属于哪个分类的时候, 只需要把新数据的每个特征和训练集中的每个数据的特征进行比较, 找出其中和新数据最相似(最近邻)的k个数据, 算法取这k个数据中出现次数最多的标签作为新数据的类别。 通常k不大于20。 代码实现 假如现在又四个已知点 , [ 1.0 , 1.1 ], [ 1.0 , 1.0 ], [ 0 , 0 ], [ 0 , 0.1 ], 类别标签分别是A、A、B、B 如果给定一个新的点[0, 0],那么怎么判断它属于A还是B呢? 按照KNN算法原理,需要执行以下操作: 计算训练集中各点与当前点之间的距离(本文采用最经典的欧式距离) 计算训练集中各点与当前点之间的距离(本文采用最经典的欧式距离) 按照距离递增次序对各点排序 选取与当前点距离最小的k个点 确定前k个点所在类别的出现频率 返回前k个点出现频率最高的类别,即为分类结果。 以下代码实现了KNN算法的分类过程 # 创建训练数据集def creatDataSet(): group = array([[1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1]]) labels = ['A

机器学习(5)之集成学习(RF\\AdaBoost\\GBDT)

╄→гoц情女王★ 提交于 2020-01-03 12:35:23
目录 1 集成学习的思想 1.1 Bagging简介 1.2 Boosting简介 1.3 Stacking简介 2 随机森林(Random Forest) 2.1 算法流程 2.3 TRTE 2.4 Isolation Forest(IForest) 2.5 RF随机森林的优缺点 3 AdaBoost 3.1 算法原理 3.2 算法的构建过程 3.3 总结 4 GBDT 4.1 算法原理 4.2 GBDT回归算法和分类算法 4.3 总结 1 集成学习的思想 集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器。弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测的分类器(errorrate < 0.5)。 集成算法的成功在于保证弱分类器的多样性(Diversity)。而且集成不稳定的算法也能够得到一个比较明显的性能提升。 常见的集成学习思想有:Bagging、Boosting、Stacking 1.1 Bagging简介 Bagging方法又叫做自举汇聚法(Bootstrap Aggregating), 思想 :在原始数据集上通过 有放回的抽样 的方式,重新选择出S个新数据集来分别训练S个分类器的集成技术。也就是说这些模型的训练数据中允许存在重复数据。 Bagging方法训练出来的模型在预测新样本分类的时候,会使用 多数投票或者求均值

使用机器学习做文本分类知识点总结

孤街浪徒 提交于 2020-01-01 02:04:02
文本分类主要流程 获取数据集 使用爬虫从网上获取。 下载某些网站整理好的数据集。 公司内部数据资源。 数据预处理 数据预处理是按照需求将数据整理出不同的分类,分类预测的源头是经过预处理的数据,所以数据预处理非常重要,会影响到后期文本分类的好坏。 预处理主要分为以下几个步骤: 将数据集按类别做好不同分类 将分类好的数据集分为训练集和测试集 去除数据集中的空字段或对空字段添加标识 对文本进行分词 1. 加载自己需要的分词词典和停用词(使后期模型更加简单、准确) 2. 去除无用的字符符号 3. 进行分词 特征提取 对于文本分类的特征提取目前主要有Bag of Words(词袋法)、TfIdf、Word2Vec、Doc2Vec。 词袋法介绍 对于每一个训练文本,它只考虑每种词汇在该训练文本中出现的频率。没有考虑到单词的顺序,忽略了单词的语义信息。 TfIdf算法介绍 除了考量某词汇在文本出现的频率,还关注包含这个词汇的所有文本的数量,能够削减高频没有意义的词汇出现带来的影响,挖掘更有意义的特征,相对词袋法来说,文本条目越多,Tfidf的效果会越显著。缺点也是没有考虑到单词的顺序。 Word2Vec算法介绍 Word2Vec的优点就是考虑了一个句子中词与词之间的关系,关于两个词的关系亲疏,word2vec从两个角度去考虑。第一,如果两个词意思比较相近,那么他们的向量夹角或者距离

数据挖掘试题(150道)

a 夏天 提交于 2020-01-01 00:29:43
单选题 某超市研究销售纪录数据后发现,买啤酒的人很大概率也会购买尿布,这种属于数据挖掘的哪类问题?(A) A. 关联规则发现 B. 聚类 C. 分类 D. 自然语言处理 以下两种描述分别对应哪两种对分类算法的评价标准? (A) (a)警察抓小偷,描述警察抓的人中有多少个是小偷的标准。 (b)描述有多少比例的小偷给警察抓了的标准。 A. Precision, Recall B. Recall, Precision A. Precision, ROC D. Recall, ROC 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?© A. 频繁模式挖掘 B. 分类和预测 C. 数据预处理 D. 数据流挖掘 当不知道数据所带标签时,可以使用哪种技术促使带同类标签的数据与带其他标签的数据相分离?(B) A. 分类 B. 聚类 C. 关联分析 D. 隐马尔可夫链 什么是KDD? (A) A. 数据挖掘与知识发现 B. 领域知识发现 C. 文档知识发现 D. 动态知识发现 使用交互式的和可视化的技术,对数据进行探索属于数据挖掘的哪一类任务?(A) A. 探索性数据分析 B. 建模描述 C. 预测建模 D. 寻找模式和规则 为数据的总体分布建模;把多维空间划分成组等问题属于数据挖掘的哪一类任务?(B) A. 探索性数据分析 B. 建模描述 C. 预测建模 D. 寻找模式和规则

机器学习如何做好分布外异常检测?谷歌这篇 NeurIPS 2019 论文提出了方法

给你一囗甜甜゛ 提交于 2019-12-31 21:58:54
2019-12-30 10:16:57 编译 | 翻译官balala 编辑 | 丛末 对于机器学习而言,区分异常数据或有显著差异数据至关重要。谷歌在 NeurIPS 2019 论文中提出并发布了针对基因组序列 OOD 检测的现实基准数据集,进而提出一种基于似然比的解决方案,可显著提高 OOD 检测的准确性。 深度学习科学家要成功部署机器学习系统,需要系统能够区分出异常数据或与训练中使用的数据有显着差异的数据。 由于深度神经网络分类器可能会将以高置信度将分布外(O DD )的输入分类到分布内的类别中,因此区分异常数据或有显著差异数据是十分重要的。当我们利用这些预测为现实决策提供依据时,异常数据检测将尤为重要。 例如,将机器学习模型应用于基于基因组序列的细菌检测,就是一项具有挑战性的现实应用。细菌检测对于败血症等传染病的诊断和治疗,以及食源性病原体的鉴定都非常关键。 近些年来,随着新细菌种类不断被发现,虽然基于已知分类训练的神经网络分类器通过交叉验证达到了很高的测量准确性,但部署模型仍具有高的挑战性,因为现实数据在不断进化发展,并且将不可避免地包含以往训练数据中从未出现过的基因组(OOD 输入)。 图1 :近些年来,随着新的细菌种类逐渐地被发现。将已知的分类数据输入基于已知分类数据训练的分类器能够达到很高的准确性,这是因为输入的分类数据是已知的

SVM文本分类

南笙酒味 提交于 2019-12-28 21:09:32
一.理论方法介绍 SVM(Support Vector Machine)指的是支持向量机,是常见的一种判别方法。在机器学习领域,是一个有监督的学习模型,可以用来进行分类研究。 SVM二分类 SVM二分类的基本思想是在特征空间中寻找间隔最大的分离超平面使数据得到高效的二分类,有三种情况: 当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机; 当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机; 当训练数据线性不可分时,通过引入核函数技巧及软间隔最大化,学习非线性支持向量机。 svm多分类 svm本身是一个追求类别超平面间支持向量距离最大化的二分类器,本实验的目标是对于三种不同类型文本构造分类器,属于多分类问题。主要是通过组合多个二分类器来实现多分类器的构造,多分类通常有一对多,一对一,多对多等。实验中采取的是one-versus-rest一对多方法,简称OVR SVMs。训练步骤如下: 首先A类对应的向量作为正样本,B,C对应的样本作为负样本 B对应的向量作为正样本,A,C对应的向量作为负样本 C对应的向量作为正样本,A,B对应的向量作为负样本 这3个训练集分别进行训练,得到四个训练结果文件 测试时,把对应的测试向量分别利用这三个结果进行文件测试 得到三个分类结果:y1(x),y2(x),y3(x)