特征降维

捋一捋少有人知的 Python "重试机制"

扶醉桌前 提交于 2021-02-01 11:14:46
点击上方“ Python爬虫与数据挖掘 ”,进行关注 回复“ 书籍 ”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 弃我去者,昨日之日不可留。 周末愉快,欢迎小伙伴积极学习,文末有 《 Python数据分析 》5本书籍的送书活动 ,记得参与噢~ 为了避免由于一些网络或等其他不可控因素,而引起的功能性问题。 比如在发送请求时,会因为网络不稳定,往往会有请求超时的问题。 这种情况下,我们通常会在代码中加入重试的代码。重试的代码本身不难实现,但如何写得优雅、易用,是我们要考虑的问题。 这里要给大家介绍的是一个第三方库 - Tenacity (标题中的重试机制并并不准确,它不是 Python 的内置模块,因此并不能称之为机制),它实现了几乎我们可以使用到的所有重试场景,比如: 在什么情况下才进行重试? 重试几次呢? 重试多久后结束? 每次重试的间隔多长呢? 重试失败后的回调? 在使用它之前 ,先要安装它 $ pip install tenacity 1. 最基本的重试 无条件重试,重试之间无间隔 from tenacity import retry @retry def test_retry () : print( "等待重试,重试无间隔执行..." ) raise Exception test_retry() 无条件重试,但是在重试之前要等待 2 秒 from

深入理解1*1卷积作用

时光毁灭记忆、已成空白 提交于 2020-12-28 09:32:51
1 . 前言 1*1 卷积在很多模型结构中都使用过, 例如最出名的 Inception 网络 其主要目的就是 进行一次 1 × 1 的卷积来减少特征映射的深度. 在实际操作中, 对于1*1的卷积操作, 我们可以通过改变输出的out channel 来使得输出维度的变化,也就是 降维和升维 , 例如 112 * 112 * 3 经过一个一维卷积 当我们的out channel 设置为32时候, 输出为 112 * 112 * 32 。 2. 二维卷积过程概述 因为1*1的卷积也是一个二维卷积, 所以我们可以先了解一下 二维卷积 是如何操作的 还是以112 * 112 * 3 的图片为例: 在图中, 高度 宽度 都是 112, 深度为3 , 我们经过一个3 * 3 的卷积,步长为1, padding 为1, out channel 为 3 , 输出的图像还是 112 * 112 * 3, 具体计算的话可以自己画个5 5的图 过 3 3 的卷积来操作, 一般公式为 : 新维度 = (图片长 - 卷积核长 + 2 * padding )/ 步长 我们的卷积核的维度为 3 * 3 * 3(深度) , 最后一维和图片本身的深度相同 一次卷积的过程如下: 每一层的 112*112 和 对应的 卷积核的 3 * 3 进行卷积 每一个 channel卷积的结果进行 求和 最后加上偏置 , 就得到

【完结篇】专栏 | 基于 Jupyter 的特征工程手册:特征降维

自作多情 提交于 2020-08-11 18:43:15
红色石头的个人网站: 红色石头的个人博客-机器学习、深度学习之路 ​ www.redstonewill.com 作者:陈颖祥、杨子晗 编译:AI有道 经过数据预处理和特征选择,我们已经生成了一个很好的特征子集。但是有时该子集可能仍然包含过多特征,导致需要花费太多的计算能力用以训练模型。在这种情况下,我们可以使用降维技术进一步压缩特征子集。但这可能会降低模型性能。 同时,如果我们没有太多时间进行特征选择,我们也可以在数据预处理之后直接应用降维方法。我们可以使用降维算法来压缩原始特征空间直接生成特征子集。 具体来说,我们将分别介绍PCA和LDA(线性判别分析)。 项目地址: YC-Coder-Chen/feature-engineering-handbook ​ github.com 本文将介绍特征工程中的特征降维。 目录: 1.1 Unsupervised Methods 非监督方 1.1.1 PCA (Principal Components Analysis) 主成分分析 主成分分析(PCA)是一种无监督机器学习模型,其目标为利用线性变换将原始特征投影为一系列线性不相关的单位向量,而同时保留尽可能多的信息(方差)。您可以从我们在Github中编写的repo中查看更多数学细节。 https://github.com/YC-Coder-Chen/Unsupervised-Notes

文本挖掘预处理之向量化与Hash Trick

醉酒当歌 提交于 2020-05-04 10:40:14
    在 文本挖掘的分词原理 中,我们讲到了文本挖掘的预处理的关键一步:“分词”,而在做了分词后,如果我们是做文本分类聚类,则后面关键的特征预处理步骤有向量化或向量化的特例Hash Trick,本文我们就对向量化和特例Hash Trick预处理方法做一个总结。 1. 词袋模型     在讲向量化与Hash Trick之前,我们先说说词袋模型(Bag of Words,简称BoW)。词袋模型假设我们不考虑文本中词与词之间的上下文关系,仅仅只考虑所有词的权重。而权重与词在文本中出现的频率有关。     词袋模型首先会进行分词,在分词之后,通过统计每个词在文本中出现的次数,我们就可以得到该文本基于词的特征,如果将各个文本样本的这些词与对应的词频放在一起,就是我们常说的向量化。向量化完毕后一般也会使用TF-IDF进行特征的权重修正,再将特征进行标准化。 再进行一些其他的特征工程后,就可以将数据带入机器学习算法进行分类聚类了。     总结下词袋模型的三部曲:分词(tokenizing),统计修订词特征值(counting)与标准化(normalizing)。     与词袋模型非常类似的一个模型是词集模型(Set of Words,简称SoW),和词袋模型唯一的不同是它仅仅考虑词是否在文本中出现,而不考虑词频。也就是一个词在文本在文本中出现1次和多次特征处理是一样的。在大多数时候

数据挖掘篇——特征工程之特征降维

六月ゝ 毕业季﹏ 提交于 2020-04-22 03:45:28
在业界广泛流传着一句话:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。 由此可见,数据和特征是多么的重要,而在数据大多数场景下,数据已经就绪,不同人对于同样的数据处理得到的特征却千差万别,最终得到的建模效果也是高低立现。从数据到特征这就要从特征工程说起了... 0. 特征工程 首先介绍下,特征工程是什么:利用数据领域的相关知识来创建 能够使机器学习算法达到最佳性能的 特征的过程 [1.wiki] 。特征工程是一个较大领域,它通常包括特征构建、特征提取和特征选择这三个子模块,重要性排序:特征构建>特征提取>特征选择。 先来介绍几个术语: 特征构建:从原始数据中构建出特征,有时也称作特征预处理,包括缺失值处理、异常值处理、无量纲化(标准化/归一化)、哑编码等。 特征提取:将原特征转换为一组具有明显物理意义或统计意义或核的新特征。 特征选择:从特征集合中挑选一组最具统计意义的特征子集。 其中本文主要总结下可统一用于特征降维的特征提取和特征选择技术方法,特征构建涉及技术点较少,下回再分解。 1. 特征降维 WHAT :将高维空间的特征通过删减或变换转为低维空间特征 WHY :降低时间/空间复杂度、降低提取特征开销、降噪、提升鲁棒性、增强可解释性、便于可视化; HOW :主要有两种方式,即特征选择和特征提取。 1.1 特征选择(子集筛选): 特征选择方法主要分为三种: