// // // //

04 2019 档案

 
目标检测(2)-SPPNet
摘要:引言 先简单回顾一下R-CNN的问题,每张图片,通过 Selective Search 选择2000个建议框,通过变形,利用CNN提取特征,这是非常耗时的,而且,形变必然导致信息失真,最终影响模型的性能。 由此引出了一系列问题 问题1:形变耗时又损失信息,为什么要形变 很简单,因为CNN的输入必须是 阅读全文
posted @ 2019-04-27 11:18 努力的孔子 阅读(1285) 评论(0) 推荐(0)
目标检测(1)-R-CNN
摘要:R-CNN全称为 Region-CNN,它是第一个成功地将深度学习应用到目标检测的算法,后续的改进算法 Fast R-CNN、Faster R-CNN都是基于该算法。 传统方法 VS R-CNN 传统的目标检测大多以图像识别为基础。一般是在图片上穷举出所有物体可能出现的区域框,然后对该区域框进行特征 阅读全文
posted @ 2019-04-25 10:33 努力的孔子 阅读(4177) 评论(0) 推荐(2)
超参数调优
摘要:在神经网络中,有许多超参数需要设置,比如学习率,网络层数,神经元节点数 所谓超参数,就是不需要训练的参数,需要人为设定的参数。 这些超参数对模型的训练和性能都有很大影响,非常重要,那么这些超参数该怎么设定呢? 一般我们可以根据经验来设定,但是经验毕竟有限,而且也不科学。 验证数据 在模型训练时,我们 阅读全文
posted @ 2019-04-23 11:42 努力的孔子 阅读(3073) 评论(0) 推荐(0)
支持向量机 SVM
摘要:SVM,中文名叫支持向量机。 在深度学习出现以前,它是数据挖掘的宠儿; SVM具有十分完整的数据理论证明,但同时理论也相当复杂。 初识SVM 同其他分类算法一样,SVM分类也是寻找合适的决策边界,为方便理解,以二分类为例。 假设存在二分类样本,我们一定可以找到一个超平面将类别分开,但是通常会存在很多 阅读全文
posted @ 2019-04-23 11:36 努力的孔子 阅读(778) 评论(2) 推荐(1)
LDA 线性判别分析
摘要:线性判别分析,简称LDA,是一种线性学习方法。 常用来降维,是一种有监督的降维方法,是基于最佳分类效果的降维方法。 核心思想 给定训练样本,带label,设法将样本投影到一条直线上,使得同类样例的投影尽可能接近,异类样例的投影尽可能远离; 在对新样本进行预测时,先将其投影到这条直线上,再根据投影点的 阅读全文
posted @ 2019-04-20 11:05 努力的孔子 阅读(1249) 评论(0) 推荐(0)
分类 - 模型评估
摘要:对模型进行评估时,可以选择很多种指标,但不同的指标可能得到不同的结果,如何选择合适的指标,需要取决于任务需求。 正确率与错误率 正确率:正确分类的样本数/总样本数,accuracy 错误率:错误分类的样本数/总样本数,error 正确率+错误率=1 这两种指标最简单,也最常用 缺点 1. 不一定能反 阅读全文
posted @ 2019-04-19 16:44 努力的孔子 阅读(1747) 评论(0) 推荐(0)
特征选择
摘要:特征选择顾名思义就是从众多特征中选出和目标相关的特征,它是机器学习中很重要的一个环节。 子集选择与评价 从众多特征中选出部分特征构成特征的一个子集,就叫子集选择, 子集特征是否能很好地表征目标,需要对子集特征进行评价。 子集选择可以有前向搜索、后向搜索和双向搜索三种方式。 前向搜索 假定给定特征集{ 阅读全文
posted @ 2019-04-18 18:58 努力的孔子 阅读(877) 评论(0) 推荐(0)
集成学习-Adaboost 参数选择
摘要:先看下ababoost和决策树效果对比 输出学习曲线 分析:随着样本数的增加,单决策树的预测精度稳定在0.5左右,是个弱分类器,而adaboost预测精度在0.85左右,明显高于单决策树,是个强分类器。 参数选择 上面的模型使用的是默认参数,其实还有优化的空间。 在集成学习中,参数调优一般是先选择框 阅读全文
posted @ 2019-04-18 11:47 努力的孔子 阅读(3899) 评论(0) 推荐(0)
sklearn-adaboost
摘要:sklearn中实现了adaboost分类和回归,即AdaBoostClassifier和AdaBoostRegressor, AdaBoostClassifier 实现了两种方法,即 SAMME 和 SAMME.R AdaBoostRegressor 用的 Adaboost.R2 框架参数 分类与 阅读全文
posted @ 2019-04-18 11:17 努力的孔子 阅读(2599) 评论(0) 推荐(0)
集成学习-Adaboost
摘要:Adaboost 中文名叫自适应提升算法,是一种boosting算法。 boosting算法的基本思想 对于一个复杂任务来说,单个专家的决策过于片面,需要集合多个专家的决策得到最终的决策,通俗讲就是三个臭皮匠顶个诸葛亮。 对于给定的数据集,学习到一个较弱的分类器比学习到一个强分类器容易的多,boos 阅读全文
posted @ 2019-04-18 10:19 努力的孔子 阅读(1124) 评论(0) 推荐(0)
random-numpy-tf 随机数
摘要:Random 生成单个随机数 # encoding:utf-8 import random ### 生成单元素 a = random.random() # 返回0-1之间的随机浮点数 print(a) # 0.2473362446838867 b = random.uniform(1, 10) # 阅读全文
posted @ 2019-04-16 08:58 努力的孔子 阅读(346) 评论(0) 推荐(0)
数据编码
摘要:把文本型、字符型数据转换成数值型的方法 标签编码(LabelEncode) 从名字上看,这是对标签进行编码,实际上可以对任何数据进行编码 作法很简单,就是将序列中不同值给个序号,以代表这个字符型数据。 示例代码 from sklearn.preprocessing import LabelEncod 阅读全文
posted @ 2019-04-15 11:55 努力的孔子 阅读(1425) 评论(0) 推荐(0)
缺失值处理
摘要:缺失值几种处理方式:不处理,删除,插值,前两种没什么说的,说说插值吧。 插值有多种方式 1. 均值、中位数、众数、固定值、插值 2. 邻近插值 3. 回归方法插值:曲线拟合 4. 插值法:专门插值的方法,如拉格朗日插值法,牛顿插值法,分段插值,样条插值等 回归是有误差的插值,,插值法是没有误差的插值 阅读全文
posted @ 2019-04-15 09:50 努力的孔子 阅读(1286) 评论(0) 推荐(0)
数据规范化
摘要:数据规范化就是消除量纲的影响,这点很重要。 对算法的作用 在以梯度和矩阵为核心的算法中,譬如逻辑回归、神经网络、svm,规范化能加快求解速度, 在以距离计算为核心的算法中,譬如KNN、Kmeans,规范化能提高模型的精度, 在树模型中,无需规范化。 概述 数据规范化有很多种方法,总体可以分为线性的和 阅读全文
posted @ 2019-04-13 16:53 努力的孔子 阅读(2259) 评论(0) 推荐(0)
设计模式-观察者模式
摘要:如果你理解了,它可以用于各种场景,如果你不理解,什么场景也用不了,所以重点在于理解,尝试去用。 直接上代码 一个东西被一堆东西围着,这种场景很多,都可以用观察者模式,如注册,监听等 观察者模式又叫发布-订阅模式 这里还加入了工厂模式。 所以理解了,随便用 阅读全文
posted @ 2019-04-13 10:37 努力的孔子 阅读(199) 评论(0) 推荐(0)
设计模式-工厂模式
摘要:工厂模式是最常用的设计模式之一,属于创造型模式,提供了创建对象的最佳方式。 工厂模式分为简单工厂模式,工厂模式,抽象工厂模式,什么意思,先上代码 简单工厂模式 图形解释 工厂模式 图形解释 抽象工厂模式 图形解释 是不是觉得越来越复杂,但是还是云里雾里?往下看。 对比分析传统方法 首先我们来思考一下 阅读全文
posted @ 2019-04-13 10:17 努力的孔子 阅读(308) 评论(0) 推荐(0)
类的构造器-init和new
摘要:提到构造器,大家都会想到 __init__,那么__new__是什么?也是构造器。 init 构造器 都很熟悉了,直接上代码 是不是很简单 别急,请跟着我的思路,方法m1的参数有个self,这个self就是实例,在调用m1之前这个实例肯定已经产生了;但是init的参数也有个self,在调用init之 阅读全文
posted @ 2019-04-12 17:12 努力的孔子 阅读(726) 评论(0) 推荐(0)
属性包装
摘要:属性包装是把类的方法包装成属性,实现python的魔法世界。 1. 限制属性,如类型、范围等 2. 只读属性 3. 不可删除属性 4. 虚拟属性 或者说 对属性进行处理 等关于属性的规则 直接上代码 上面 property 函数的原型为property(fget=None,fset=None,fde 阅读全文
posted @ 2019-04-12 15:54 努力的孔子 阅读(417) 评论(0) 推荐(0)
生成器
摘要:生成器是一种特殊的迭代器,应该说更高级,它也是用于节省内存。 生成器是包含yield的函数,就这么简单。 它的特点是:在函数运行过程中,如果遇到yield,会暂停,并且返回一个值,等到下次执行时,从上次停止的地方开始 生成器写法 注意 yield count的写法,后面会有不同 交互的生成器 1. 阅读全文
posted @ 2019-04-12 15:18 努力的孔子 阅读(236) 评论(0) 推荐(0)
迭代器
摘要:迭代器主要用于节省内存,迭代器可以迭代进行同样的操作。 比如迭代生成数据,那他就是一个数据容器,但是他是一个元素一个元素的生成,而不需要事先生成完整的序列,这就不需要很大的内存来存放这个序列,从而节省了内存。 迭代器是实现了__iter__和next方法的对象,iter返回迭代器自身,next读取下 阅读全文
posted @ 2019-04-12 15:18 努力的孔子 阅读(351) 评论(0) 推荐(0)
深拷贝-浅拷贝
摘要:深拷贝浅拷贝是个很容易迷糊的问题,本人帮你彻底搞清楚。 粗识内存 本人没学过c,内存略懂,有堆栈之分, 栈可以理解为程序自动分配的内存,堆可以理解为程序员对内存的引用,不重要,有感觉就行。 浅拷贝 浅拷贝并不是我们认知中的“复制”,浅拷贝只是对象的引用,是对一个对象的浅层拷贝,所以叫浅拷贝 或者说是 阅读全文
posted @ 2019-04-12 11:24 努力的孔子 阅读(246) 评论(0) 推荐(0)
装饰器-wrapper
摘要:我跟别人说我精通python,别人问我wrapper是啥,我说不知道,尼玛,原来wrapper就是装饰器,熟的不得了啊,英语真是我的克星啊。 闭包 closure 在认识装饰器之前先认识下闭包 闭包,顾名思义就是把什么东西封闭在保内,什么东西呢?变量和函数。 在一个函数里装了另一个函数,里面那个函数 阅读全文
posted @ 2019-04-12 09:49 努力的孔子 阅读(3372) 评论(0) 推荐(0)
类别不均衡
摘要:类别不均衡问题就是不同类别的样本数差别很大,很容易理解,不再赘述。 这种情况会导致模型的误判,比如2分类,正例998,反例2,那么即使我们所有的样本都识别为正例,正确率高达99.8%,然而并没有什么卵用。 对于类别不均衡问题,大体上主要有两种,即以数据为中心驱动和以算法为中心的解决方案。 数据策略 阅读全文
posted @ 2019-04-11 17:03 努力的孔子 阅读(562) 评论(0) 推荐(0)
参数优化-学习曲线
摘要:验证曲线是调节学习器的参数的,学习曲线是用来调节训练样本大小的。 从理论上来讲,如果数据“同质”,当数据量到达一定程度时,学习器可以学到所有的“特征”,继续增加样本没有作用。 那么到底多少样本是合适的呢? 做个实验 逐渐增大训练样本量,同时判断训练集和测试集的准确率,看看会发生什么 1. 首先从训练 阅读全文
posted @ 2019-04-11 11:57 努力的孔子 阅读(790) 评论(0) 推荐(0)
参数优化-验证曲线
摘要:通过验证一个学习器在训练集和测试集上的表现,来确定模型是否合适,参数是否合适。 如果训练集和测试集得分都很低,说明学习器不合适。 如果训练集得分高,测试集得分低,模型过拟合,训练集得分低,测试集得分高,不太可能。 示例代码 输出 参数gamma的调节 很小时,训练集和测试集得分都低,欠拟合 增大时, 阅读全文
posted @ 2019-04-11 11:32 努力的孔子 阅读(628) 评论(0) 推荐(0)
参数优化-API
摘要:网格搜索 对给定参数进行组合,用某标准进行评价,只适合小数据集 参数 estimator:一个学习器对象,它必须有.fit方法用于学习,.predict方法用于预测,.score方法用于评分 param_grid:字典或者字典的列表,每个字典是学习器的一个参数,key是参数名,value是备选参数序 阅读全文
posted @ 2019-04-11 10:54 努力的孔子 阅读(566) 评论(0) 推荐(0)
参数优化-偏差与方差
摘要:我们知道训练模型时经常会有一些误差,我们要想弥补这些误差,首先要搞清楚这些误差是怎么产生的。 误差的分解 假设我们要预测的模型为 y=f(x),但是通常数据都会有一些噪音,我们的数据集为y=f(x)+noise,通常我们会假设数据服从正态分布,也就是噪音会均分分布在曲线两侧,所以噪音和为0。 假设有 阅读全文
posted @ 2019-04-11 10:51 努力的孔子 阅读(898) 评论(0) 推荐(0)
决策树-回归
摘要:决策树常用于分类问题,但是也能解决回归问题。 在回归问题中,决策树只能使用cart决策树,而cart决策树,既可以分类,也可以回归。 所以我们说的回归树就是指cart树。 为什么只能是cart树 1. 回想下id3,分裂后需要计算每个类别占总样本的比例,回归哪来的类别,c4.5也一样 2. 回归问题 阅读全文
posted @ 2019-04-07 18:45 努力的孔子 阅读(2604) 评论(0) 推荐(0)
网络代理
摘要:代理,就是找个人代替你 正向代理 客户端的代理,找个IP替你访问web服务器 在浏览器中设置代理:设置==>高级设置==>代理服务器设置 不同浏览器设置方法不同,大致思路一致 反向代理 服务端的代理,找个服务器替你响应请求,有几个作用 1. 把请求分散到不同服务器上,减缓压力 2. 隐藏真实 IP, 阅读全文
posted @ 2019-04-07 15:53 努力的孔子 阅读(975) 评论(0) 推荐(0)
反爬与反反爬
摘要:很多网站都有反爬机制,自从有了爬虫,反爬与反反爬的斗争就没停过,而且都在不断升级。 下面介绍一些常见的反爬与反反爬机制。 基于headers的反爬 基于用户请求的headers反爬是最常见的反爬机制。 在请求头headers中,包含很多键值对,服务器会根据这些键值对进行反爬。 1. User-Age 阅读全文
posted @ 2019-04-07 14:28 努力的孔子 阅读(2065) 评论(0) 推荐(0)
朴素贝叶斯
摘要:朴素贝叶斯是一个概率模型,在数学上能用概率解释的模型一般被认为是好模型。 朴素贝叶斯常用于文本分类。 先介绍几个基础概念。 1. 概率 设x为符合某种特征的样本,H为某个假设,比如假设x属于类别c,那分类就是求这个假设发生的概率,即P(H|x)的大小。 P(H|X)是后验概率,或者说在条件X下,H的 阅读全文
posted @ 2019-04-06 08:39 努力的孔子 阅读(606) 评论(0) 推荐(0)
集成学习-xgboost
摘要:xgboost是个准确率很高的集成学习框架,在很多比赛中成绩优异。 大多数的集成学习都使用决策树作为基分类器,主要是因为本身要训练多个分类器,而决策树速度很快,总体时间相对较少。 决策树 在讲xgboost之前,先描述一下决策树,后面要用到这些符号 决策树是把输入x映射到一个叶节点中,这个过程我们记 阅读全文
posted @ 2019-04-04 14:38 努力的孔子 阅读(2045) 评论(0) 推荐(0)