自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 我的CSDN博客之结语

眨眼间,2019年就快要结束了,早知道就不眨眼了 CSDN博客也写了两年多了,记录着自己学习、科(mo)研(yu)、编程、算(lian)法(dan)等一点点的经验,算是自己研究生一路以来的历程吧 起初写博客,是因为自己解决了自己遇到的一点点小小的问题,想要记录下来,万一以后又遇到了呢。同时,如果能...

2019-12-30 21:24:22

阅读数 26

评论数 2

原创 win10下怎么用微软拼音输入直角引号「」『』和其他特殊符号

在文案写作中,「直角引号」是一个小清新的存在,简约美观,甩 “双引号” 一条街,但不容易打出来,下面就介绍一下怎么用微软拼音打出「直角引号」。 step1:首先要检查一下U模式输入是否处于开启状态,一般情况都是开启的。顺序为设置→时间和语言→区域和语言→中文(中华人民共和国)→选项→微软拼音→选...

2020-01-13 11:13:25

阅读数 5943

评论数 2

原创 一幅图理解LSTM的物理结构

下图是我看过对LSTM物理结构描述最清楚的图,参考自LSTM神经网络输入输出究竟是怎样的? 答主在图中对三种架构有简要的说明,这里根据自己的理解,再对它做进一步的解释。 图中的第一部分是LSTM的时序结构版本,它是单个LSTM Cell在多个时间步上展开的形式,实际上是只有一个Cell,因此也可...

2019-10-29 21:28:23

阅读数 86

评论数 0

原创 Python实现-BIT*-Batch Informed Tree 运动规划算法

RRT系列的采样规划算法,其随机采样特性可以有效解决维度灾难的问题 RRT*通过改进RRT的节点扩展方式,加入重连的机制,可以实现路径质量的渐近最优 BIT*结合了采样规划算法和搜索规划算法的优势,引入节点排序和边排序,在超椭球子集中执行排序搜索,可以避免将无价值的节点和边加入到生成树中,下面是B...

2019-10-29 21:13:30

阅读数 66

评论数 0

原创 三维异面直线的距离和垂足求解

在论文中遇到了求解三维异面直线的距离和垂足的问题,网上资源参差不齐,遂把它记录下来,万一你也用得上呢 本文参考自:求3维度空间异面直线的垂足点 在此基础上做了更详细的论述、扩展和python实现 题设:假设有两条直线 L1,L2 ,以及两条直线的方向向量V1,V2,求其最短距离及其垂足。 直接求距...

2019-09-27 20:57:06

阅读数 69

评论数 0

原创 两种方式判断有向图是否有环-python实现

两种方式判断有向图是否有环-python实现 1. DFS判断有向图是否有环 假设图以邻接矩阵表示,一条深度遍历路线中如果有结点被第二次访问到,那么有环。我们用一个变量来标记某结点的访问状态(未访问,访问过,其后结点都被访问过),然后判断每一个结点的深度遍历路线即可。 def dfs(G,i,co...

2019-09-27 20:41:13

阅读数 473

评论数 0

原创 链表的快排和归并排序

链表快排 对一个单链表用快排的方式排序 快排的关键在于partition函数,因为单链表是不能倒序遍历的,因此不能通过头尾双指针向内夹的partition函数,而是用都是从头开始的双指针方式,具体的两种partition函数可以参考:快排的两种partition函数 这里链表快排和数组快排part...

2019-08-31 19:45:27

阅读数 256

评论数 0

原创 快排的两种partition函数

partition函数就是快排的关键部分,作用是将数组划分成两部分,左边小于基数,右边大于基数 但实际上它也不仅仅用于快排,在求top(K)问题中也常常会用到。 下面介绍两种partition函数,他们都是双指针的方法,但具体会有差异: 函数一:头尾指针向中间夹 def partition(arr...

2019-08-31 19:43:12

阅读数 110

评论数 0

原创 LeetCode之Unique Binary Search Trees I and II python解法

LeetCode之Unique Binary Search Trees I and II python解法 题: Unique Binary Search Trees I Given n, how many structurally unique BST’s (binary search tree...

2019-07-27 14:43:29

阅读数 50

评论数 0

原创 背包问题-三种动态规划解法-逐步减少空间复杂度

题目描述:有编号分别为1,2,3,4,5的五件物品,它们的重量分别是2,2,6,5,4,它们的价值分别是6,3,5,4,6,现在给你个承重为10的背包,如何让背包里装入的物品具有最大的价值总和? 背包问题是典型的动态规划问题,也有一定的规律可循,通常采用自底向上的方式,先解决小问题,并存储,再解决...

2019-07-05 23:24:44

阅读数 1251

评论数 0

原创 LeetCode之Reverse Linked List II-python递归解法

题: Reverse a linked list from position m to n. Do it in one-pass. Note: 1 ≤ m ≤ n ≤ length of list. Example: Input: 1->2->3->4->5->NUL...

2019-06-15 11:31:06

阅读数 115

评论数 0

原创 LeetCode之Word Break-动态规划python解法

Word Break LeetCode 139 Given a non-empty string s and a dictionary wordDict containing a list of non-emptywords, determine if s can be segmented in...

2019-06-02 11:50:25

阅读数 116

评论数 0

原创 LeetCode之排列[ Permutations ] 组合[ Combinations ]与实现[ Python ]

leetcode中有两道经典的题目,求一个数组的排列和组合,都可以用深度优先递归搜索的方式来求解,让我们一起来look look。 排列[ Permutations ] 题:Given a collection of distinct integers, return all possible p...

2019-05-28 21:32:16

阅读数 85

评论数 0

原创 通过梯度下降和牛顿法求解一个数的平方根

梯度下降 梯度下降法(Gradient descent)是一个一阶最优化算法,就是让参数沿着损失函数负梯度的方向更新。迭代的步长,也就是学习率是事先给定的,如果负梯度的绝对值越大,这次更新的幅度也会越大,越接近极值点时,负梯度会越小,这时更新就会较慢。 牛顿法 牛顿法是一个二阶最优化算法,它将损失...

2019-05-23 09:52:40

阅读数 471

评论数 0

原创 TensorFlow和Keras的模型保存及载入模型参数继续训练

Keras在之前训练的基础上,加载参数继续训练,就像加载参数进行预测一样: 首先在模型训练好之后进行模型的保存: def save(self): self.actor.save_weights('model/ddpg_actor.h5') self.critic...

2019-04-26 21:33:31

阅读数 1658

评论数 0

原创 BN和Dropout在训练和测试时的差别

Batch Normalization BN,Batch Normalization,就是在深度神经网络训练过程中使得每一层神经网络的输入保持相近的分布。 BN训练和测试时的参数是一样的嘛? 对于BN,在训练时,是对每一批的训练数据进行归一化,也即用每一批数据的均值和方差。 而在测试时,比如进行一...

2019-04-07 16:19:01

阅读数 4730

评论数 2

原创 算法思想中的两点法和滑动窗口法及python实例

两点法(Two Pointer Approach),也就是双指针法,它一般可以把复杂度从穷举法的O(n^2)减小到O(n) 两点法非常有用,很多问题都可以用,如快慢指针,还有求排序数组中的两数和问题 两点法对应了两个指针,左右指针之间也就是一个窗口,当左右指针变化时,也就对应着窗口的滑动。所以实际...

2019-03-10 15:04:37

阅读数 866

评论数 0

原创 语言模型困惑度的两种形式及python实现

在自然语言处理中,对于一个语言模型,一般用困惑度来衡量它的好坏,困惑度越低,说明语言模型面对一句话感到困惑的程度越低,语言模型就越好。 在网上关于语言模型困惑度的介绍文章中,一般会看到以下两种形式: 实际上两种形式是一样的,只不过是不一样的表达: 对于左边的式子,两边取对数之后,再反解出 PP(...

2019-02-27 17:41:40

阅读数 2171

评论数 7

原创 通过数据生成器解决大文件无法一次性载入内存训练的问题

通过数据生成器解决大文件无法一次性载入内存训练的问题 from keras.models import Model def process_line(line): tmp = [float(val) for val in line.strip().split(',')...

2019-02-12 22:04:34

阅读数 977

评论数 0

原创 AdaBoost、GBDT、RF、XGboost、lightGBM的对比分析

文章目录AdaBoostGBDTRandom ForestXGboostLightGBM对比分析 AdaBoost 简单介绍 AdaBoost是基于boosting的思想,通过多个弱分类器的线性组合来得到强分类器,训练时重点关注被错分的样本,准确率高的弱分类器权重大。 更深一步的介绍 在训练过程中...

2019-01-31 23:09:56

阅读数 793

评论数 1

原创 pandas中遍历dataframe的每一个元素

假如有一个需求场景需要遍历一个csv或excel中的每一个元素,判断这个元素是否含有某个关键字 那么可以用python的pandas库来实现。 方法一: pandas的dataframe有一个很好用的函数applymap,它可以把某个函数应用到dataframe的每一个元素上,而且比常规的for循...

2019-01-27 20:27:50

阅读数 6864

评论数 0

原创 python实现统一形式的二叉树前中后序非递归遍历

对于二叉树的遍历,递归形式非常简单,可以很快写出来,而对于非递归的形式,在不熟的情况下,还是需要一番思考的,因为二叉树的非递归遍历并没有一个统一的形式方便理解和记忆,对于前序和中序非递归遍历,还算统一,而一般的非递归后序遍历,和前两者有很大的差异。 参考python实现二叉树和它的七种遍历,给出一...

2018-12-31 11:36:36

阅读数 320

评论数 0

原创 从控制中的反馈角度理解循环神经网络

反馈是控制理论中最经典的思想,PID方法即基于此,下面是PID的结构图。 下面是PID公式: e=r−ye=r-ye=r−y u(n)=Kpe(n)+Ki∑i=0n(e(i))+Kd(e(n)−e(n−1))u(n)=K_{p}e(n)+K_{i}\sum_{i=0}^{n}(e(i))+K_{...

2018-12-25 11:20:30

阅读数 197

评论数 0

原创 Embedding理解与代码实现

Embedding 字面理解是 “嵌入”,实质是一种映射,从语义空间到向量空间的映射,同时尽可能在向量空间保持原样本在语义空间的关系,如语义接近的两个词汇在向量空间中的位置也比较接近。 下面以一个基于Keras的简单的文本情感分类问题为例解释Embedding的训练过程: 首先,导入Keras的相...

2018-12-19 16:39:49

阅读数 12219

评论数 1

原创 推荐系统介绍

推荐系统 推荐系统是一种信息过滤系统,为了解决信息过载问题 系统组成一般包括日志系统,推荐算法和内容展示UI 其中推荐算法为核心,它一般又可以分为三层:基础层,推荐(召回)层,排序层。基础层为召回层提供特征,召回层为排序层提供候选集,排序层输出排序后的推荐结果。 上图参考自:微博推荐系统介绍 ...

2018-12-16 11:21:35

阅读数 791

评论数 0

原创 强化学习适合解决什么样的问题

问:强化学习解决的是什么样的问题? 答:“序列决策问题。” 面试官又问:“多臂老虎机只是一步,没有序列呀?” … 上述问题和回答参考自:再励学习面试真题 无论是在面试中,还是在实际的业务中,强化学习能够解决的问题、适合解决的问题都需要理解的非常深刻。 在上面提及的问题中,多臂老虎机其实可以看作一种...

2018-11-24 21:23:53

阅读数 1591

评论数 0

原创 图解GBDT的构造和预测过程

GBDT 及其改进版本(XGboost, lightGBM)在数据竞赛中占了大半江山,网上讲解的文章也很多,但大多是文字和公式的形式,这里尝试用简单的图解形式,去理解 GBDT 的基本操作过程。 参考《统计学习方法》P149中的例子,说明 GBDT 的构造和预测过程。 GBDT的构造 GBDT 采...

2018-11-03 16:36:45

阅读数 2286

评论数 0

原创 python绘制带误差线的条形图

绘制格式: plt.bar(index, values, yerr = std, error_kw = {'ecolor' : '0.2', 'capsize' :6}, alpha=0.7) yerr关键字参数:可传入包含标准差...

2018-11-01 19:31:26

阅读数 3291

评论数 0

原创 决策树知识思考

1、决策树的模型策略和算法 模型:决策树的学习本质上就是从训练数据集中归纳出一组分类规则,使它与训练数据矛盾较小的同时具有较强的泛化能力。从另一个角度看,学习也是基于训练数据集估计条件概率模型。 策略:决策树的损失函数通常是正则化的极大似然函数,学习的策略是以损失函数为目标函数的最小化。 算...

2018-11-01 19:25:44

阅读数 177

评论数 0

原创 Windows下的Mysql安装和超详解入门教程推荐

####一、Windows下的Mysql安装 在Windows下,MySQL有两种安装方式: ######1、ZIP安装 ZIP安装包下载链接:https://dev.mysql.com/downloads/mysql/ 点击download之后,出现下方图片,无需注册,点击下图中的 ...

2018-10-30 10:50:45

阅读数 262

评论数 0

原创 UCB公式的理解

UCB公式的理解 在解决探索与利用平衡问题时,UCB1 策略是一个很有效的方法,而探索与利用平衡问题中最经典的一个问题就是多臂赌博机问题(Multi-Armed Bandit)。 图来自[1] 问题假设:按下摇臂后的回报取值为 1 或 0,每个摇臂获得回报的概率服从不同的分布,但事先并不...

2018-10-25 19:17:07

阅读数 3208

评论数 0

原创 python pandas中 inplace 参数理解

pandas 中 inplace 参数在很多函数中都会有,它的作用是:是否在原对象基础上进行修改 ​ inplace = True:不创建新的对象,直接对原始对象进行修改; ​ inplace = False:对数据进行修改,创建并返回新的对象承载其修改结果。 默认...

2018-10-04 15:40:07

阅读数 14219

评论数 1

原创 机器学习+特征工程vs深度学习—如何选择

对于数据挖掘和处理类的问题,使用一般的机器学习方法,需要提前做大量的特征工程工作,而且特征工程的好坏会在很大程度上决定最后效果的优劣(也就是常说的一句话:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已)。 使用深度学习的话,特征工程就没那么重要了,特征只需要做些预处理就可以了,因...

2018-10-04 15:37:41

阅读数 2293

评论数 0

原创 支持向量机SVM的策略和过拟合问题

统计学习方法由三要素构成:模型,策略和算法。 支持向量机的三要素: 模型:分离超平面 w*x+b=0 和决策函数 f(x)=sign(w*x+b) 策略:结构风险最小化,具体对于SVM是间隔最大化 算法:凸二次规划 对于支持向量机的模型和算法,都比较好理解,那它的策略间隔最大化,为什么是...

2018-09-01 10:59:44

阅读数 4447

评论数 0

原创 为什么ROC曲线不受样本不均衡问题的影响

在对分类模型的评价标准中,除了常用的错误率,精确率,召回率和F1度量外,还有两类曲线:ROC曲线和PR曲线,它们都是基于混淆矩阵,在不同分类阈值下两个重要量的关系曲线。 在二分类问题中,分类器将一个实例分类为正样本和负样本,全部分类样本可以用一个混淆矩阵来表示。混淆矩阵有四个分类,如下表: ...

2018-09-01 10:56:16

阅读数 3513

评论数 2

原创 Logistic回归中的Logit函数和sigmoid函数

在线性回归中,y=wTxy=wTxy=w^{T}x,是用直线去拟合数据,实现最小二乘意义下的最小预测误差。 在逻辑回归中:logit(p)=log(p1−p)=wTxlogit(p)=log(p1−p)=wTxlogit(p)=log(\frac{p}{1-p})=w^{T}x,可以看作是用直线...

2018-09-01 10:47:57

阅读数 6198

评论数 0

原创 数组中的逆序对—Python非归并解法

题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 该问题的最好解法是类似归并排序的解法,时间复杂度为O(nlogn),网上相关介绍博客也很多,这里给出一个非归并解法,复杂度会高一点,但想法非常巧妙,代码非常简易。 ...

2018-09-01 10:37:24

阅读数 564

评论数 2

原创 Python实现-RRT-Rapidly-exploring Random Tree-快速搜索随机树

RRT是Rapidly-exploring Random Tree的简写,是基于随机采样的一种路径规划方法,它能够快速地搜索整个状态空间,并偏向于还未探索的空间。 主体部分是节点扩展过程: 前提:已知起点、终点和地图。 步骤:首先,在空间中随机采样一个节点qrand...

2018-08-23 15:49:00

阅读数 1925

评论数 0

原创 超实用可执行程序-PDF文字复制后的回车符去除和谷歌百度英汉翻译-python GUI

超实用python程序-PDF文字复制后的回车符去除和谷歌百度英汉翻译 超实用python程序-PDF文字复制后的回车符去除和谷歌百度英汉翻译 痛点 界面与功能 功能详细说明: 过程记录 代码和组件分析 exe程序生成记录 结语 痛点 PDF文档文字复制会包括...

2018-08-21 17:03:57

阅读数 1967

评论数 2

原创 Python实现二叉树的层次遍历及按层输出的两种方法

二叉树的层次遍历 二叉树的层次遍历即从上往下、从左至右依次打印树的节点。 其思路就是将二叉树的节点加入队列,出队的同时将其非空左右孩子依次入队,出对到队列为空即完成遍历。 # -*- coding:utf-8 -*- # class TreeNode: # def __init__(...

2018-08-15 16:40:24

阅读数 5684

评论数 0

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