自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深度推荐系统入门

深度推荐系统入门1.DeepCrossing最近参加了datawhale组织的用深度学习来做推荐系统的学习,主要学习一些经典的模型,本文以此记录一下这个过程学习的一些心得。学习地址:https://github.com/datawhalechina/team-learning-rs/tree/master/DeepRecommendationModel1.DeepCrossingDeepCrossing模型中加入了embedding和残差等结构,其中embedding在深度推荐系统中是比较常见的,其

2021-03-16 22:52:55 286

原创 集成模型(4)lightGBM主要原理及其python实现

lightGBM主要原理及其python实现1主要原理1.1GOSS,基于梯度的单边采样1.2EFB,互斥特征绑定1.3Leaf-wise的决策树生长策略1.4类别特征的处理2总结3.python实现前言:lightGBM主要流程和XgBoost比较相似,都是GBDT的一种改进,相对于XgBoost而言lightGBM则解决了大样本高纬度环境下耗时的问题。以及本文的实现代码主要用于算法核心的理解,文中不对的的地方也欢迎指正。1主要原理如前面所说,lightGBM在目标函数的优化上面和XgBoost的一

2020-12-20 10:58:25 1885 9

原创 集成模型(3)XgBoost主要原理及其python实现

XgBoost主要原理及其python实现1基本思想1.1目标函数的优化推导1.2内部节点分裂2.总结3.python实现3.1基学习器的实现3.2XgBoost回归器的实现3.3XgBoost分类器的实现前言:本文的实现代码主要用于算法理解,以及文中有错误的地方欢迎指出。1基本思想首先XgBoost也是一种提升树模型,相对于传统的GBDT做出了一些优化。在传统的GBDT中,当我们训练第t轮的模型时,我们是去拟合前t-1轮模型在数据集上的残差,以此来让我们的强学习器的预测值更加接近真实值。对于XgBo

2020-12-18 17:27:51 809 1

原创 集成模型(2)GBDT用于分类和回归及其python实现

GBDT用于分类和回归及其python实现1.GBDT回归1.1基本思想1.2算法流程:2.GBDT二分类2.1基本思想2.2算法流程2.3python实现2.3.1回归树2.3.2GBDT实现adaboost用于分类的时候其实是模型为加法模型,损失函数为指数损失函数的算法,用于回归的时候是是损失函数为平方误差的损失函数,但是当损失函数为一般损失函数的时候,优化会变得比较复杂,例如我们分类使用对数损失函数,那么前面我们求解基函数权值和样本更新权值的过程就会变得比较复杂,这时候提出了一种新的解决方案——GB

2020-12-03 20:14:47 1770

原创 集成学习(1)AdaBoost分别应用于分类和回归及其python实现

AdaBoost分别应用于分类和回归及其python实现1.AdaBoost分类的基本思路1.1Boosting基本思路1.2AdaBoost分类的基本思路1.3AdaBoost的算法步骤1.4AdaBoost算法的解释前言:近期在做比赛的时候建模阶段普遍都是使用集成模型效果更好,如xgboost、lgb、catboost等,但是对其中原理并不了解,所以准备从adaboost开始慢慢学习这一系列的集成模型…1.AdaBoost分类的基本思路集成模型主要有bagging和boosting两种,这里都是b

2020-12-03 14:47:26 4063

原创 朴素贝叶斯NaiveBayes以及python实现

朴素贝叶斯NaiveBayes以及python实现

2020-10-26 21:05:28 1534

原创 极大似然估计及其应用

极大似然估计及其应用欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-10-23 09:57:23 4309

原创 特征工程之特征分箱(决策树分箱、卡方分箱、bestks以及评价标准WOE和IV)

特征工程之特征分箱:决策树分箱、卡方分箱、bestks以及评价标准

2020-09-27 20:57:16 17604 22

原创 机器学习决策树DecisionTree以及python代码实现

机器学习决策树DecisionTree标题本文参考西瓜书以及mooc上面的视频…标题

2020-09-10 17:44:37 1141

原创 python数据分析及特征工程(实战)

python数据分析及特征工程(实战)1.数据分析1.1单属性分析1.2多属性分析2.特征工程2.1 数据清洗2.2 特征选择2.3 特征构造2.4 特征降维1.数据分析1.1单属性分析1.2多属性分析2.特征工程2.1 数据清洗2.2 特征选择2.3 特征构造2.4 特征降维...

2020-06-18 14:15:11 4775 2

原创 keras学习率余弦退火CosineAnnealing

keras学习率余弦退火CosineAnnealing1.引言2.余弦退火的原理2.keras实现1.引言当我们使用梯度下降算法来优化目标函数的时候,当越来越接近Loss值的全局最小值时,学习率应该变得更小来使得模型不会超调且尽可能接近这一点,而余弦退火(Cosine annealing)可以通过余弦函数来降低学习率。余弦函数中随着x的增加余弦值首先缓慢下降,然后加速下降,再次缓慢下降。这种下...

2020-02-20 17:36:51 11089 2

原创 EfficientNet论文笔记及源码

EfficientNet笔记1.EfficientNet论文解读2.keras实现代码前面在做关于图片分类的项目时,在github上面发现了有的项目用的efficientnet网络结构的效果比较好,网上相关资料较少,找到了论文看一下,顺便记录一下。论文链接:https://arxiv.org/abs/1905.119461.EfficientNet论文解读说是解读肯定谈不上,只是一些个人的...

2020-02-10 15:31:47 2826 6

原创 keras通过model.fit_generator训练模型(节省内存)

keras通过model.fit_generator训练模型(节省内存)1.fit_generator函数简介2.generator实现2.1生成器的实现方式2.2使用Sequence实现generator前言前段时间在训练模型的时候,发现当训练集的数量过大,并且输入的图片维度过大时,很容易就超内存了,举个简单例子,如果我们有20000个样本,输入图片的维度是224x224x3,用float3...

2020-01-04 22:40:33 4097 4

原创 在Google Colab上面进行深度学习的模型训练

在Google Colab上面进行深度学习的模型训练1.使用步骤1.1准备工作先简单介绍介绍一下,google colab为我们提供了免费的GPU,感觉类似于服务器之类的,对于学生党来说还是不错的选择的。步入正题,在我们使用colab之前,得先能够“科学上网”才行,毕竟国内是没办法直接访问google的。1.使用步骤1.1准备工作(1)登录账号进入谷歌云盘,点击新建文件夹,文件夹名称随便...

2019-12-27 13:53:03 3976 3

原创 分别基于Tensorflow和Keras加载预训练模型实现迁移学习

分别基于Tensorflow和Keras加载预训练模型实现迁移学习1.什么迁移学习和预训练模型?2.实现迁移学习的方法及使用场景3.python代码实现3.1特征提取3.1.1基于keras实现3.1.2基于tensorflow实现3.2训练特定层,冻结其它层3.2.1基于keras的实现1.什么迁移学习和预训练模型?迁移学习(Tranfer Learning):神经网络可以从一个任务中习得知...

2019-12-26 22:20:34 2966 3

原创 基于tensorflow的手写数字体识别

基于tensorflow的手写数字体识别1.mnist数据集准备以及选取网络结构1.mnist数据集准备以及选取网络结构(1)准备数据集tensorflow社区mnist数据集下载:MNIST 数据下载点击上面的链接找到如图所示的位置,点击进行下载:百度网盘链接下载:(https://pan.baidu.com/s/1gKX9kKtducGvI5DeZKOkog) 提取码:av3...

2019-12-25 14:27:48 896

原创 在tensorflow中使用batch normalization及其原理

在tensorflow中使用batch normalization1.batch normalization的原理2.tf.nn.moments3.tf.train.ExponentialMovingAverage4.tf.control_dependencies5.tf.identity6.tf.cond最近看到了一段关于在tensorflow中如何使用batch normalization的...

2019-12-18 16:12:08 1269

原创 tf.nn.moments( )函数中参数的理解

tf.nn.moments函数中参数的理解1.对axes参数的理解1.1当输入的维度=[3,3],axes=[0]时1.1当输入的维度=[2,2,2,3],axes=[0,1,2]时2.补充最近在看batchnorm函数的时候,看到了tf.nn.moments( )函数,查看了相关文章,有了一些理解,主要是是对axes参数的理解。首先看到函数的定义:def moments( x, ...

2019-12-17 20:25:01 967

原创 对mini-batch梯度下降算法的理解以及代码实现

对mini-batch梯度下降算法的理解以及代码实现1.什么是mini-batch梯度下降1.什么是mini-batch梯度下降首先我们知道原始梯度下降算法是在整个训练集上进行的,把整个训练集作为数据传入,求解代价和梯度。但是我们在深度学习项目中很多时候数据集是非常庞大的,当我们把整个数据集传入矩阵进行运算的时候速度会很慢,并且对内存的要求也比较高。**mini-batch梯度下降(MBGD...

2019-12-13 14:47:40 6741 1

原创 反向传播算法的推导过程

反向传播算法的推导过程首先先看到神经网络的模型例子:我们知道在用梯度下降算法最小化代价函数的过程中,我们更新权重参数需要求代价函数关于其的偏导,而我们的反向传播算法的作用就是用于求其偏导数。给定训练集D={(x1,y1),(x2,y2),...,(xm,ym)}D={(x_1,y_1),(x_2,y_2), ...,(x_m,y_m)}D={(x1​,y1​),(x2​,y2​),...,...

2019-11-19 15:43:46 575

原创 线性回归——岭回归、lasso、前向逐步回归

线性回归——岭回归、lasso、前向逐步回归1.岭回归2.lasso3.前向逐步回归接上一篇文章线性回归——局部加权线性回归,我们知道如何解决欠拟合,现在我们介绍一下当出现过拟合时我们怎么解决。解决过拟合我们可以增加训练集、可以减少特征、也可通过正则化。首先回顾一下我们的标准线性回归中我们的回归系数w=(XTX)−1XTyw=(X^TX)^{-1}X^Tyw=(XTX)−1XTy,因为其中涉...

2019-11-12 19:35:02 3496

原创 线性回归——局部加权线性回归

线性回归虽然简单,但是容易出现问题:就是“欠拟合”和“过拟合”,欠拟合是由于我们并不能很好的拟合我们的训练数据,导致出现较大的训练误差;而过拟合是由于我们过度拟合训练数据,导致我们的模型过度复杂而产生较大的测试误差。如下图所示:左边的图就是欠拟合,很明显我们用直线是无法很好的拟合训练数据的,最右边的就是产生了过拟合,中间的曲线就是比较好的。解决欠拟合我们可以增加额外的特征,或者增加多项式(如...

2019-11-12 11:42:57 3393

原创 线性回归——正规方程推导过程

线性回归——正规方程推导过程我们知道线性回归中除了利用梯度下降算法来求最优解之外,还可以通过正规方程的形式来求解。首先看到我们的线性回归模型:f(xi)=wTxif(x_i)=w^Tx_if(xi​)=wTxi​其中w=(w0w1...wn)w=\begin{pmatrix}w_0\\w_1\\...\\w_n\end{pmatrix}w=⎝⎜⎜⎛​w0​w1​...wn​​⎠⎟⎟⎞​,x...

2019-11-07 13:18:08 1715 2

原创 支持向量机SVM(4)——核函数

支持向量机SVM——核函数接前面所讲博客,我们知道了当数据理想线性可分的话我们可以用硬间隔的方式解决,即使出现了噪声,软间隔依旧能够处理,但是这些的前提都是数据是线性可分的,但是在现实任务中,原始样本空间可能并不是线性可分的,那么我们如何解决?对于这样的问题,可以将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。例如如下这种情况,一个“异或”的例子:首先回顾一下...

2019-11-07 11:01:12 1203

原创 支持向量机SVM(3)——软间隔

支持向量机SVM——软间隔接上一篇博客支持向量机SVM(2)——拉格朗日乘数法前面我们的问题假设数据处于理想状态,而现实情况是数据可能是线性不可分的,或者可分但是存在噪声。对于有噪声这种情况,如果我们还是使用前面的方法,那么就会把噪声也分类,就会存在过拟合的情况。解决这个问题的一个方法就是存于我们的超平面出一点点错,这也就是“软间隔”(soft margin),而前面我们所讲的就是“硬间隔”(...

2019-11-07 10:59:06 631

原创 机器学习实战——ROC曲线和AUC值

机器学习实战——ROC曲线和AUC值1.查准率(Precision)和召回率(Recall)2.ROC曲线3.AUC值近期在做机器学习实战上的项目时,讲解roc部分的代码没有理解,查阅相关博客资料后有所感悟理解,做下笔记记录一下。1.查准率(Precision)和召回率(Recall)通过一个例子来理解一下:我们现在需要判断一群病人中是否患有癌症。上表中1表示患有癌症,0则不患有癌症。“...

2019-11-06 17:01:01 1316 2

原创 支持向量机SVM(5)——SMO算法

支持向量机SVM——SMO算法接上一篇博客支持向量机SVM(2)——拉格朗日乘数法回顾前面所讲的,我们现在的问题变成了:{maxλ  (−12∑i=1N∑j=1NλiλjyiyjxiTxj+∑i=1Nλi)s.t.0≤λi≤C∑i=1Nλiyi=0 \begin{cases}max_{\lambda}\;(-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda...

2019-11-01 13:17:13 372

原创 支持向量机SVM(2)——拉格朗日乘数法

支持向量机SVM——拉格朗日乘数法1.拉格朗日函数这里我们主要探讨有条件约束情况下的目标函数优化(求极值)这类问题也称为条件极值。1.拉格朗日函数首先我们看到一个二元函数的例子:求函数z=f(x,y)z=f(x,y)z=f(x,y)在条件ϕ(x,y)=0\phi(x,y)=0ϕ(x,y)=0限制下的极值?消元法:设函数f(x,y)f(x,y)f(x,y),ϕ(x,y)\phi(x,y...

2019-10-30 14:29:06 1972 2

原创 支持向量机SVM(1)——间隔最大化

支持向量机SVM——间隔最大化1.什么是超平面2.为什么要间隔最大化3.如何实现间隔最大化主要参考西瓜书…1.什么是超平面相信了解过逻辑回归的都知道,我们对于n=2(特征为2个,这里只是方便可视化)是通拟合一条曲线,作为决策边界。那么如果特征n等于3、4 . . . 1000呢?这个时候我们我们就称这个用来分割不同类别的“线”称为超平面(hyperplane),这里的超我理解的就是多维的意...

2019-10-29 21:39:24 5056 2

原创 吴恩达机器学习——反向传播算法

吴恩达机器学习——反向传播算法推导反向传播算法中误差的计算过程:首先,这里没有使用线性回归中的平方差来计算,而是直接定义了δ(4)=a(4)−y,即预测值减去实际值\mathrm{首先,这里没有使用线性回归中的平方差来计算,而是直接定义了} \delta^{(4)}=a^{(4)}-y,{即预测值减去实际值}首先,这里没有使用线性回归中的平方差来计算,而是直接定义了δ(4)=a(4)−y,...

2019-10-15 19:14:58 2453 2

原创 吴恩达机器学习——逻辑回归的梯度下降推导过程

吴恩达机器学习——逻辑回归的代价函数简化推导过程这里就简单推导一下,为了简洁就把x和y右上角的i去掉了。推导过程:

2019-10-11 21:12:43 1012 2

原创 面向对象三大特性之多态(3)

面向对象三大特性之多态(3)

2019-09-24 19:00:12 204

原创 面向对象三大特性之继承(2)

面向对象三大特性之继承(2)1.什么是继承?1.什么是继承?世间万物本就相互联系,java中的类也是如此,java中的类其实也就是对现实世界事物的抽象。而这些类之间也存在这各种关系,例如继承、依赖、关联、组合等。而其中的继承通俗理解就是子集的概念,即常说一个类继承于他的父类,也就是说他是他的父类的一个子集,学生是人类的子集,猫是动物的子集等。在java编程中继承关系的表示就是用extends...

2019-09-23 19:47:45 130

原创 面向对象三大特性之封装(1)

面向对象三大特性之封装(1)1.什么是封装?2.封装的实现步骤在最开始学Java的时候也是迷迷糊糊,对这些基本概念都不太清楚,可能在平时编码过程不需要了解也没有问题,但是对这些基本特性掌握之后无疑对我们的编码规范什么都是有帮助的,知其然也得知其所以然。1.什么是封装?简单来说,就是我们不能直接操作类的属性信息,而是要通过方法来操作属性。那么这么做有什么好处呢?最大的好处就是我们可以隐藏类...

2019-09-23 16:35:14 143

原创 Java中的static、final以及区别

Java中的static、final以及区别1.static关键字(1)static修饰变量(2)static修饰方法(3)static的补充使用——静态初始块2.final关键字(1)final修饰变量(2)final修饰属性(即类的成员变量)(3)final修饰类(4)final修饰的方法3.总结1.static关键字(1)static修饰变量在学习C语言的时候,老师就讲过可编程内存主要...

2019-09-23 15:13:07 522 1

空空如也

空空如也

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

TA关注的人

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