自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 收藏
  • 关注

原创 网络协议复习笔记(九)套接字Socket

客户端和服务端在进行通信前,双方需要建立一个Socket。Socket编程进行的是端到端的通信,往往意识不到中间经过多少局域网,多少路由器,因而能够设置的参数,也只能是端到端协议之上网络层和传输层的。在网络层,Socket函数需要指定到底是IPv4还是IPv6,分别对应设置为 AF_INET和 AF_INET6。TCP协议是基于数据流的,所以设置为 SOCK_STREAM,而 UDP 是基于数据报的,因而设置为 SOCK_DGRAM。基于 TCP 协议的 Socket 程序函数调用过程TCP 的服务

2020-05-11 14:36:19 477

原创 网络协议复习笔记(八)传输层:TCP协议

TCP的哲学和UDP刚好相反,UDP认为网络世界单纯简单,而TCP认为网络世界复杂多元。

2020-04-28 19:23:26 486

原创 网络协议复习笔记(七)传输层:UDP协议

传输层里比较重要的两个协议,一个是 TCP,一个是 UDP。

2020-04-25 12:23:33 546

原创 网络协议复习笔记(六)从MAC层继续出发:IP层(网络层)

宿舍上网的原理学校给每个宿舍的网口分配了一个 IP。这个 IP 是校园网的 IP,完全由网管部门控制。宿舍网的 IP 地址多为 192.168.1.x。校园网的 IP 地址,假设是 10.10.x.x。有两个办法上网:让舍长再买一个网卡。这个时候舍长的电脑里就有两张网卡。一张网卡的线插到宿舍的交换机上,另一张网卡的线插到校园网的网口。而且,这张新的网卡的 IP 地址要按照学校网管部门分配的...

2020-04-22 22:41:24 792 1

原创 网络协议复习笔记(五)从物理层到MAC层

应用场景:如何自己组网玩联机游戏?

2020-04-19 17:40:42 920

原创 MySQL学习笔记(五)数据库里的锁:全局锁、表锁和行锁

数据库是多用户共享的资源,当出现并发访问时,通过锁这一数据结构来实现访问规则。数据库的锁大致分为全局锁/表级锁和行锁。全局锁对整个数据库实例加锁。当需要整个库处于只读状态时,可使用Flush tables with read lock (FTWRL),之后数据更新与居家(增删)、数据定义语句(建表、修改结构等)和更新类事务的提交语句会被阻塞。典型应用场景是全库逻辑备份。把整个库select...

2020-04-17 14:38:43 227

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

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

2020-02-17 11:46:04 2707 3

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

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

2020-02-11 11:57:43 8551 5

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

在建立时序模型时,若使用keras,我们在Input的时候就会在shape内设置好sequence_length(后面简称seq_len),接着便可以在自定义的data_generator内进行个性化的使用。这个值同时也就是time_steps,它代表了RNN内部的cell的数量,有点懵的朋友可以再去看看RNN的相关内容:个人总结:从RNN(内含BPTT以及梯度消失/爆炸)到 LSTM(内含GRU...

2020-01-15 16:17:03 7905 11

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

在想去除list中的特定重复词时,比如我们想去掉下列list中的'a',通常想到的办法是这样的words = ['a', 'a', 'c', 'b', 'c']stopwords = ['a']for word in words: if word in stopwords: words.remove(word)然而,结果却是诶,明明逻辑应该是对的...

2019-11-04 16:41:28 453

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

前言RNN擅长解决的问题是连续的序列,且序列的长短不一,比如基于时间的序列:一段段连续的语音等。这些序列比较长,且长度不一,比较难直接拆分成一个个独立的样本通过DNN/CNN进行训练。而RNN由于其独有的结构和优势,能够处理DNN/CNN所不能及的问题。RNN的5种不同架构声明:下列图中的方块或者圆圈都代表一个向量。one2one:一个输入对应一个输出。one2ma...

2019-10-11 16:19:04 4748 2

原创 C++ 结构导向滤波

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

2019-09-05 16:23:18 706

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

激活函数在普通的DNN中,如果不使用激活函数,相当于激活函数是f(x) = x。无论有多少隐藏层,输出的都是输入的线性组合,只能运用于线性分类。与没有隐藏层的效果相当,这就是原始的感知机。所以引入了非线性激活函数,增加神经网络的非线性。常见激活函数:(1)sigmoid函数在逻辑回归中使用的激活函数,。它的优点在于求导方便。但是有三大缺点:1、容易出现gradien...

2019-09-02 16:13:04 1186

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

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

2019-08-26 21:12:58 1468

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

前言word2vec,顾名思义,将一个词转化为向量,也经常会看到一个非常相关的词“词嵌入”,也就是word embedding。词嵌入是一类将词从高维空间映射到低维空间的过程的统称,核心思想是将每个词都映射为低维空间(通常K=50-300维)上的一个稠密向量。K维空间的每一维可以看做一个隐含的主题,只不过不像主题模型中的主题那么直观。假设每篇文章有N个词,每个词映射为K维的向量,那就可以用...

2019-08-22 15:43:44 2401 2

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

FM在推荐系统中,经常会碰到电影评分这样高度稀疏的数据,在之前的个人总结:推荐算法篇(附协同过滤等) 综述的基于模型的协同过滤中,提到了FunkSVD(LFM,Latent Factor Model),通过设置隐含特征,进行矩阵分解,来实现对未知评分的预测。这里FM,和LFM一样,也是隐变量模型。问题背景传统逻辑回归认为特征直接是相互独立的,但是很多情况下特征之间的依赖关系不可忽视,因...

2019-08-12 21:48:37 6057 2

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

广告分类合约广告一般在门户网站和视频网站中较为常见,例如,Hulu广告收入的绝大部分来自于合约广告。这是由于用户与视频广告的交互较少,缺乏点击等反馈数据,不宜直接评估后续的转化效果。合约广告的客户通常是品牌类广告主,它们的主要诉求是向公众宣传自己的品牌形象,并不显式地评估后续的转化效果。合约广告一般以CPM(Cost per mille,千次曝光成本)进行结算,即每完成一千次曝光流量平台向...

2019-08-09 10:48:56 663 1

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

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

2019-08-06 18:40:07 206

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

前言高斯分布,即正态分布,是一个很常见的分布,通常身高、分数等大致符合高斯分布。当研究各类数据时,假设同一类的数据符合高斯分布,也是简单自然的假设。所以在聚类时,我们希望将数据划分为一些簇时,可以假设不同簇中的样本各自服从不同的高斯分布,由此得到的聚类算法称为高斯混合模型。高斯混合模型假设数据可以看作多个高斯分布中生成出来的,每个分模型有自己的期望(均值)和方差,同时有一个权重,于是概...

2019-07-19 21:23:06 873

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

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

2019-07-18 11:16:58 1349

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

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

2019-07-04 16:15:33 704

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

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

2019-06-29 10:26:30 5209 1

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

前言提到K近邻,K-nearest neighbors(它的K是指有多少个邻居),总是容易想起另外一个叫K-means的聚类算法(它的K指有多少个质心),容易搞混淆,它们有一部分思路也很接近,但是KNN能做分类和回归。K近邻之所以叫K近邻,是因为它的思想就是“你与你的邻居很相似”。所以对于分类来说,找到K个最近的邻居,用投票法找出最多数的类别,就将数据点预测为该类别。同理,回归的话输出最近...

2019-06-26 20:22:23 1271

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

K-Means是无监督聚类算法,实现简单且效果不错。只看名字容易与可以分类回归的K-近邻搞混。原理它将样本按照距离的大小,将其划分为K个簇。簇内的点尽量紧密,簇间距离越大越好。假设簇有k个,分别为,为簇Ci的均值向量,称为质心或者簇心,表示为:于是我们的目标可以设为,使所有簇内数据到它对应的簇心的距离最小:求E的最小值是一个NP难问题,于是采用迭代方法如下图,红点和蓝点...

2019-06-25 21:59:39 841

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

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

2019-06-25 16:09:46 8303 2

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

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

2019-06-25 09:19:45 2440

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

降维在维度灾难、冗余,这些在数据处理中常见的场景,不得不需要我们进一步处理,为了得到更精简更有价值的信息,我们所用的的各种方法的统称就是降维。降维有两种方式:(1)特征抽取:我觉得叫做特征映射更合适。因为它的思想即把高维空间的数据映射到低维空间。比如PCA和LDA即为一种特征映射的方法。还有基于神经网络的降维等。(2)特征选择:过滤式(打分机制):过滤,指的是通过某个阈值进行过...

2019-06-24 09:35:26 1597

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

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

2019-06-20 14:47:43 2522 3

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

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

2019-06-14 11:16:10 1325

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

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

2019-06-11 16:14:30 886

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

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

2019-06-10 20:03:08 1506

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

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

2019-06-04 15:13:19 2366

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

上次讲到GBDT,就不得不提到现在应用最广泛,效果也是数一数二的XGBoost,我们可以用统一的视角看待它们,因为它们本质上其实是一样的,可以把XGBoost看作GBDT的工程实现。如果非要说一些区别的话,最明显的是,GBDT使用了一阶泰勒公式展开(梯度下降/最速下降),而XGBoost使用了二阶泰勒公式展开(牛顿法),但是这些并不影响它们其实是同样的东西。如果你很熟悉下面的基础知识,那么可...

2019-06-03 20:30:06 1057 1

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

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

2019-05-31 10:58:16 1016

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

降维在维度灾难、冗余,这些在数据处理中常见的场景,不得不需要我们进一步处理,为了得到更精简更有价值的信息,我们所用的的各种方法的统称就是降维。降维有两种方式:(1)特征抽取:我觉得叫做特征映射更合适。因为它的思想即把高维空间的数据映射到低维空间。比如马上要提到的PCA即为一种特征映射的方法。还有基于神经网络的降维等。(2)特征选择:过滤式(打分机制):过滤,指的是通过某个阈值进...

2019-05-30 20:46:54 3697

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

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

2019-05-29 10:21:04 2932 3

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

谈过了AdaBoost,就不由得要谈到提升树,谈到提升树,就不得不提到梯度提升树。提升树(boosting tree)。对于二类分类的算法,决策树内部为CART分类树,此时就为AdaBoost基学习器为CART分类树的特殊情况;对于回归问题,提升树内部决策树是二叉回归树,在每次迭代中通过拟合当前模型的残差生成一个新的回归树,并与之前的弱学习器结合生成新的强学习器,若最后生成的强学习器满足误差要...

2019-05-28 16:13:20 1661

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

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

2019-05-25 09:36:27 1626

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

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

2019-05-24 15:53:19 1060

原创 个人总结:决策树

决策树主要有ID3、C4.5、CART分类回归树。决策树的“规则”大体上来说类似于一个"if...then..."的过程。ID3ID3只能用于分类的问题。ID3不能使用连续特征,只能使用离散特征。ID3可以是多叉树。通过信息增益来达到分裂节点的目的,信息增益越大的特征,越可能成为被先选择分裂的节点。而信息增益,指的是在增加了该特征后,标签的不确定性减少的程度(熵减少的程度)。一般地,熵H(...

2019-05-23 22:54:17 876

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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