自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 关于matplotlib中的fig/axes/axis/subplot的区别

最近也在用matplotlib画图,研究了一天终于发现了关键的一点,我是在matplotlib.pyplot.subplots的文档里无意中注意到的,先贴图 ​ 注意到什么蹊跷了吗朋友们? axes这个单词是ax的复数形式啊! 所以我的理解是 ​所以我的结论是 figure/fig 空白画布 ...

2020-02-17 11:46:04

阅读数 77

评论数 0

原创 Pytorch 关于nn.CrossEntropyLoss()与nn.BCEloss()以及nn.BCEWithLogitsLoss()的区别【坑】

最近用pytorch做实验,踩中一些坑,有小有大,这个问题花了我不少时间找到原因,姑且算个大坑。 首先,这几个类分别对应的函数为: nn.CrossEntropyLoss() ——》nn.functional.cross_entropy() nn.BCEloss() ——》nn.functiona...

2020-02-11 11:57:43

阅读数 180

评论数 0

原创 Pytorch中如何理解RNN LSTM GRU的input(重点理解seq_len / time_steps)

在建立时序模型时,若使用keras,我们在Input的时候就会在shape内设置好sequence_length(后面简称seq_len),接着便可以在自定义的data_generator内进行个性化的使用。这个值同时也就是time_steps,它代表了RNN内部的cell的数量,有点懵的朋友可以...

2020-01-15 16:17:03

阅读数 284

评论数 0

原创 Python 去掉list中特定重复词的陷阱

在想去除list中的特定重复词时,比如我们想去掉下列list中的'a',通常想到的办法是这样的 words = ['a', 'a', 'c', 'b', 'c'] stopw...

2019-11-04 16:41:28

阅读数 56

评论数 0

原创 个人总结:从RNN(内含BPTT以及梯度消失/爆炸)到 LSTM(内含BiLSTM、GRU)Seq2Seq Attention

前言 RNN擅长解决的问题是连续的序列,且序列的长短不一,比如基于时间的序列:一段段连续的语音等。这些序列比较长,且长度不一,比较难直接拆分成一个个独立的样本通过DNN/CNN进行训练。 而RNN由于其独有的结构和优势,能够处理DNN/CNN所不能及的问题。 RNN的5种不同架构 声明:下...

2019-10-11 16:19:04

阅读数 193

评论数 0

原创 C++ 结构导向滤波

StuctureOrientedFilter_3D 使用结构导向滤波处理三维地震数据(也可以处理三通道彩色图片) 代码链接 结构导向滤波 输入/输出 matlab .mat格式 代码环境 armadillo-9.600.6 / matlab C++混合编程 / 未使用openCV 数据维度 In...

2019-09-05 16:23:18

阅读数 50

评论数 0

原创 个人总结:常见的激活函数 梯度下降家族与BatchSize 梯度消失和梯度爆炸

激活函数 在普通的DNN中,如果不使用激活函数,相当于激活函数是f(x) = x。无论有多少隐藏层,输出的都是输入的线性组合,只能运用于线性分类。与没有隐藏层的效果相当,这就是原始的感知机。所以引入了非线性激活函数,增加神经网络的非线性。 常见激活函数: (1)sigmoid函数 在逻...

2019-09-02 16:13:04

阅读数 70

评论数 0

原创 C++ 使用哈希表的思想完成稀疏矩阵乘法

题设 要求构建一种数据结构,完成稀疏矩阵乘法。 思路 采用了普遍使用的三元组思路,由于看网上实现的方法感觉略复杂,便想自己用易懂的方式自己写一遍。 构建的数据结构为,结构体sparse_node,表示矩阵中不为0的点。结构体sparse_mat,内部放置sparse_node以及行数和...

2019-08-26 21:12:58

阅读数 232

评论数 0

原创 个人总结:自然语言处理 word2vec(skip-gram/CBOW以及优化算法Hierarchical Softmax和Negative Sampling)

前言 word2vec,顾名思义,将一个词转化为向量,也经常会看到一个非常相关的词“词嵌入”,也就是word embedding。词嵌入是一类将词从高维空间映射到低维空间的过程的统称,核心思想是将每个词都映射为低维空间(通常K=50-300维)上的一个稠密向量。K维空间的每一维可以看做一个隐含的...

2019-08-22 15:43:44

阅读数 358

评论数 0

原创 个人总结:推荐算法 从MF(LFM) 到 FM FFM Wide&Deep DeepFM

FM 在推荐系统中,经常会碰到电影评分这样高度稀疏的数据,在之前的个人总结:推荐算法篇(附协同过滤等) 综述的基于模型的协同过滤中,提到了FunkSVD(LFM,Latent Factor Model),通过设置隐含特征,进行矩阵分解,来实现对未知评分的预测。这里FM,和LFM一样,也是隐变量模...

2019-08-12 21:48:37

阅读数 820

评论数 0

原创 个人总结:计算广告概述

广告分类 合约广告 一般在门户网站和视频网站中较为常见,例如,Hulu广告收入的绝大部分来自于合约广告。这是由于用户与视频广告的交互较少,缺乏点击等反馈数据,不宜直接评估后续的转化效果。合约广告的客户通常是品牌类广告主,它们的主要诉求是向公众宣传自己的品牌形象,并不显式地评估后续的转化效果。合...

2019-08-09 10:48:56

阅读数 139

评论数 0

原创 个人总结:电商搜索概论

搜索诞生的背景 信息爆炸 搜索目标 检索:文本 语音 图片 帮助用户明确搜索意图 节省搜索时间 提升用户体验 核心问题 用户引导 理解用户 普遍特点 时效性(越近的时间搜索意图更加接近)千人千面(每个人搜索同一个词时看到的东西是不一样的) 垂搜与大搜 垂直搜索:以某一特定类别为...

2019-08-06 18:40:07

阅读数 45

评论数 0

原创 个人总结:聚类 EM算法与高斯混合模型

前言 高斯分布,即正态分布,是一个很常见的分布,通常身高、分数等大致符合高斯分布。当研究各类数据时,假设同一类的数据符合高斯分布,也是简单自然的假设。所以在聚类时,我们希望将数据划分为一些簇时,可以假设不同簇中的样本各自服从不同的高斯分布,由此得到的聚类算法称为高斯混合模型。 高斯混合模型 ...

2019-07-19 21:23:06

阅读数 73

评论数 0

原创 个人总结:机器学习模型评估与调优 余弦相似度 余弦距离 欧氏距离 A/B测试 交叉验证 自助法 | 网格搜索 随机搜索 贝叶斯优化 过拟合欠拟合

模型评估 余弦相似度 对于两个向量A和B,其余弦相似度定义为,即两个向量夹角的余弦,关注的是向量之间的角度关系,并不关心绝对大小, 其取值范围为[-1,1]。有着“相同时为1,正交时为0,相反时为-1”的性质。当一对文本在长度相似度很大,但内容相近时,如果使用词频或者词向量作为特征,它们在特征...

2019-07-18 11:16:58

阅读数 128

评论数 0

原创 个人总结:朴素贝叶斯

朴素贝叶斯和绝大多数分类算法不同。对于大多数分类算法,如决策树,KNN,逻辑回归,支持向量机等都是判别方法,直接学习出特征输出Y和特征X之间的关系,要么是决策函数Y=f(X),要么是条件分布P(Y|X)。但是朴素贝叶斯是生成方法,直接找出特征输出Y和特征X的联合分布P(X,Y),然后得到条件概率分...

2019-07-04 16:15:33

阅读数 69

评论数 0

原创 个人总结:推荐算法篇(附协同过滤等) 综述

现代推荐系统 对于在线部分来说,一般要经历几个阶段。首先通过召回环节,将给用户推荐的物品降到千以下规模(因为在具备一定规模的公司里,是百万到千万级别,甚至上亿。所以对于每一个用户,如果对于千万级别物品都使用先进的模型挨个进行排序打分,明显速度上是算不过来的,资源投入考虑这么做也不划算);...

2019-06-29 10:26:30

阅读数 493

评论数 0

原创 个人总结:K近邻(KNN)

前言 提到K近邻,K-nearest neighbors(它的K是指有多少个邻居),总是容易想起另外一个叫K-means的聚类算法(它的K指有多少个质心),容易搞混淆,它们有一部分思路也很接近,但是KNN能做分类和回归。 K近邻之所以叫K近邻,是因为它的思想就是“你与你的邻居很相似”。所以对于...

2019-06-26 20:22:23

阅读数 74

评论数 0

原创 个人总结:聚类 K-Means

K-Means是无监督聚类算法,实现简单且效果不错。只看名字容易与可以分类回归的K-近邻搞混。 原理 它将样本按照距离的大小,将其划分为K个簇。簇内的点尽量紧密,簇间距离越大越好。 假设簇有k个,分别为,为簇Ci的均值向量,称为质心或者簇心,表示为: 于是我们的目标可以设为,使所有簇内...

2019-06-25 21:59:39

阅读数 58

评论数 0

原创 个人总结:机器学习分类模型评估指标 准确率、精确率、召回率、F1等以及关联规则支持度、置信度

机器学习分类中的常用指标,这几个指标最大的特点,其实是容易看完就忘。。 英文 TP true positive, 前面的字母代表预测是否正确,后面的字母代表预测的类型,TP是预测正确的正例,预测为1实际也为1 TN true negative预测正确的负例,预测为0实际也为0 FP fal...

2019-06-25 16:09:46

阅读数 570

评论数 0

原创 个人总结:数据、特征预处理(含word2vec)

缺失值处理 连续值 一般采用取平均值或者中位数来进行填充。 离散值 最频繁出现的类别(或者众数)来填充。 异常值清洗 异常数据可能给模型带来很大的偏差。 聚类清洗 例如,通过KMeans将训练样本分成若干簇,如果某一个簇里的样本数很少,而且簇质心和其他所有的簇都很远,那么这个簇...

2019-06-25 09:19:45

阅读数 250

评论数 0

原创 个人总结:降维 特征抽取与特征选择

降维 在维度灾难、冗余,这些在数据处理中常见的场景,不得不需要我们进一步处理,为了得到更精简更有价值的信息,我们所用的的各种方法的统称就是降维。 降维有两种方式: (1)特征抽取:我觉得叫做特征映射更合适。因为它的思想即把高维空间的数据映射到低维空间。比如PCA和LDA即为一种特征映射的方法...

2019-06-24 09:35:26

阅读数 193

评论数 0

原创 个人总结:从 白化(whitening) 到 批标准化(Batch Normalization)

白化 Whitening 由于图像中像素之间具有很强的相关性,所以用于训练时输入是冗余的。白化的目的是降低输入的冗余性,我们希望通过白化过程使得算法的输入有如下性质:1、特征间相关性较低。2、所有特征具有相同的方差。 z-score白化 将图片调整为平均像素值为0,方差为单位方差的分布。 ...

2019-06-20 14:47:43

阅读数 558

评论数 0

原创 个人总结:从 SVM分类 到 线性支持回归SVR

回顾前面的SVM分类模型中,我们的目标函数是让最小,同时让各个训练集中的点尽可能远离自己类别一边的支持向量,即;若加入一个松弛变量,则目标函数变为,对应约束条件变为。 线性支持回归也是尽量将训练集拟合到一个线性模型。但是损失不是使用常用的均方差作为损失函数,而是定义一个常量,对于某一个点,如果,...

2019-06-14 11:16:10

阅读数 216

评论数 0

原创 个人总结:从 感知机 到 SVM分类(详)(附:梯度下降家族)

前言 SVM是一个二元分类算法,线性分类和非线性分类都支持。经过演进,现在也可以支持多元分类,以及回归问题。而感知机在思想上可以看做SVM的前辈。 回顾感知机 感知机模型就是尝试找到一个超平面,能够把所有二元类分开。如果找不到这么一条直线,就说明类别线性不可分,也就意味着感知机模型不适合...

2019-06-11 16:14:30

阅读数 139

评论数 0

原创 个人总结 :SVM 与 拉格朗日函数、对偶问题 和 KKT条件 以及 SMO算法

提到SVM,可能首先想到的是令人头大的公式推导,通过确定思想,公式等式转化,拉格朗日函数,求梯度,约束变换,KKT、SMO。。。最后终于得到我们的最优解。而在这其中,不免作为核心的就是拉格朗日函数以及KKT条件,就像建筑高楼大厦前需要打地基,如果说SVM这个模型方法是高楼大厦的话,拉格朗日函数和K...

2019-06-10 20:03:08

阅读数 255

评论数 0

原创 个人总结:从 线性回归 到 逻辑回归 为什么逻辑回归又叫对数几率回归?

逻辑回归不是回归算法,是分类算法,可以处理二元分类以及多元分类。 线性回归 线性回归的模型是求出特征向量Y和输入样本矩阵X之间的线性关系系数θ,满足Y = Xθ。此时Y是连续的,所以是回归模型。 对应n维样本数据,对应的模型是这样的: 其中θ为模型参数。 一般用均方误差作为损失函数,损失...

2019-06-04 15:13:19

阅读数 353

评论数 0

原创 个人总结:从 GBDT 到 XGBoost和LightGBM 用统一的视角看待它们

上次讲到GBDT,就不得不提到现在应用最广泛,效果也是数一数二的XGBoost,我们可以用统一的视角看待它们,因为它们本质上其实是一样的,可以把XGBoost看作GBDT的工程实现。 如果非要说一些区别的话,最明显的是,GBDT使用了一阶泰勒公式展开(梯度下降/最速下降),而XGBoost使用了...

2019-06-03 20:30:06

阅读数 184

评论数 0

原创 个人总结:降维 从 PCA 到 LDA

在个人总结:PCA中,对PCA的原理以及理由进行了一个概述,PCA应该是降维领域名声最大的算法,但是提到PCA,就不得不联想到另外一个名气也不小的降维算法 LDA : Linear Discriminant Analysis,线性判别分析。它在模式识别领域(人脸识别等图像识别领域)用途广泛。同时需...

2019-05-31 10:58:16

阅读数 308

评论数 0

原创 个人总结:降维 PCA的两种解释与推导

降维 在维度灾难、冗余,这些在数据处理中常见的场景,不得不需要我们进一步处理,为了得到更精简更有价值的信息,我们所用的的各种方法的统称就是降维。 降维有两种方式: (1)特征抽取:我觉得叫做特征映射更合适。因为它的思想即把高维空间的数据映射到低维空间。比如马上要提到的PCA即为一种特征映射的...

2019-05-30 20:46:54

阅读数 263

评论数 0

原创 腾讯2019广告算法大赛总结

写在前面 第一次参加腾讯的广告赛,这次比赛需要自己提取训练数据和标签,除了维度以外,数据在其他方面都很接近真实业务,我本身也是第一次接触这样的数据。最后初赛B榜成绩85.2,排名第215。接下来做一些主观和客观的总结。 关于数据 今年的数据和往年一样,需要自己先转化为csv或者hdf5格式p...

2019-05-29 10:21:04

阅读数 1002

评论数 2

原创 个人总结:从 AdaBoost 到 GBDT 梯度提升树

谈过了AdaBoost,就不由得要谈到提升树,谈到提升树,就不得不提到梯度提升树。 提升树(boosting tree)。对于二类分类的算法,决策树内部为CART分类树,此时就为AdaBoost基学习器为CART分类树的特殊情况;对于回归问题,提升树内部决策树是二叉回归树,在每次迭代中通过拟合当...

2019-05-28 16:13:20

阅读数 381

评论数 0

原创 个人总结:从随机森林(Bagging)到AdaBoost

众所周知,随机森林采用的是Bagging策略,关于随机森林与Bagging的一些知识,在个人总结:从决策树到随机森林中有所涉猎。 谈到bagging,就不得不联想到集成学习的另外一种方式,boosting。它和bagging的主要区别是,bagging是一种并行的方式,每个基学习器之前的依赖关系...

2019-05-25 09:36:27

阅读数 477

评论数 0

原创 个人总结:从 决策树 到 随机森林

关于决策树的一些可能需要了解的知识点,在个人总结:决策树中有所涉猎。 谈到随机森林,就需要了解bagging,而谈到bagging,就需要了解集成学习。 集成学习:构建并租个多个学习器来完成任务。获得比单一学习器更优越的性能。 两种选择: 同质:比如都是决策树个体学习器,都是神经网络个体学...

2019-05-24 15:53:19

阅读数 253

评论数 0

原创 个人总结:决策树

决策树主要有ID3、C4.5、CART分类回归树。决策树的“规则”大体上来说类似于一个"if...then..."的过程。 ID3 ID3只能用于分类的问题。ID3不能使用连续特征,只能使用离散特征。ID3可以是多叉树。通过信息增益来达到分裂节点的目的,信息增益越大的特征,...

2019-05-23 22:54:17

阅读数 318

评论数 0

原创 网络协议复习笔记(四)DHCP与PXE:IP怎么来的,怎么消失的

如何配置IP地址? 可以用命令行配置一个地址。可以使用ifconfig,也可以使用ip addr。设置好了以后,用这两个命令,将网卡up一下。 使用net-tools: $ sudo ifconfig eth1 10.0.0.1/24 $ sudo ifconfig eth1 up 使用ip...

2019-05-21 20:27:33

阅读数 41

评论数 0

原创 MySQL学习笔记(四)索引(下)

在上述那个表中,如果执行了select * from T where k between 3 and 5,需要执行几次树的搜索操作,会扫描多少行? 表的初始化语句: mysql> create table T ( ID int primary key, k int NOT NULL DE...

2019-05-20 22:03:04

阅读数 18

评论数 0

原创 MySQL学习笔记(四)索引(上)

经常可能发生,某个SQL查询比较慢,分析完原因后,可能就会想到“给某个字段加个索引”这样的方案。 索引的出现就是为了提高数据查询的效率。 索引的常见模型 实现索引的方式有很多种,所以这里也就引入了索引模型。比较常见的,哈希表、有序数组和搜索树。 哈希表以键值对存储数据,只要输入对应的key...

2019-05-18 16:24:14

阅读数 72

评论数 0

原创 网络协议复习笔记(三)熟悉而又陌生的ipconfig/ifconfig

windows:ipconfig linux: if config linux上其他可以查看IP地址的命令:ip addr 运行ip addr: root@test:~# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc ...

2019-05-17 16:46:46

阅读数 33

评论数 0

原创 MySQL学习笔记(三)事务

事务就是保证一组数据库操作,要么全部成功,要么全部失败。MySQl,事务支持是在引擎层实现的。 隔离性与隔离级别 数据库多个事务同时执行,可能出现脏读(dirty read)/不可重复读(non-repeatable read)/幻读(phantom read)的问题。为了解决这些问题,就有了...

2019-05-16 17:00:55

阅读数 25

评论数 0

原创 网络协议复习笔记(二)网络为什么要分层

想象自己是一个处理网络包的程序,而且这个程序可以跑在电脑上,可以跑在服务器上,可以跑在交换机上,也可以跑在路由器上。想象自己有很多网口,从某个口拿进一个网络包,自己处理下再从另一个网口发送出去。 因为程序会非常复杂,所以复杂的程序需要分层,这是程序设计的要求。 当一个网络包从一个网口经过时...

2019-05-14 17:10:03

阅读数 207

评论数 0

提示
确定要删除当前文章?
取消 删除