自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

奥古斯都

一万年太久 只争朝夕

  • 博客(381)
  • 收藏
  • 关注

原创 《机器学习算法》逻辑回归(Logistic Regression)

1、逻辑回归2、公式推导也就是说如果x区域正无穷的时候,概率值也就越接近1,对数几率也就接近1。对数几率优点:直接对分类的概率建模,无需实现假设数据分布,从而避免了假设分布不准确带来的问题(区别于生成式模型(朴素贝叶斯)) 不仅可以预测类别还可以预测概率,对于决策任务很有用。 对数几率函数是任意阶可导的凸函数,有许多函数值优化算法都可以求出最优解。3、损失函数既然使用极大似然估计法来求解,必须明确似然函数。4、求解...

2021-08-24 11:19:10 267

原创 《机器学习算法》决策树

1、决策树思想根据一定的if-then规则,形成一种描述对实例进行分类的树形结构。2、特征选择3、信息增益的算法决策树ID3就是利用信息增益选择划分特征的。缺点:这样选择的特征偏好取值类别较多(v较大)的特征(例如某个特征的取值类别数等于样本数,则根据此特征划分之后,样本的纯度都已经达到了最大)。因此在C4.5的时候有一定的改进,将特征选择的标准定为信息增益比。缺点:信息增益比产生的一个问题就是对可取值数目较少的属性有所偏好,因...

2021-08-23 21:27:05 168

原创 《机器学习算法-Boost》GBDT(Gradient Boosting Decision Tree)

1、提升树的思想提升树是以分类树或者回归树为基本分类器的提升方法,实际采用的是加法模型(基函数的线性组合),以决策树为基函数的提升方法称为提升树。提升树的核心思想就是在不断的拟合残差,比如一个人的年龄是25岁,第一次猜到16,那么9就是我们接下来要拟合的残差,不断的迭代更新这个树,最终使得误差或者迭代次数满足我们的要求即可。2、前向分布算法初始化一个基分类器,存在一个数据集T,通过进行M轮的迭代更新不断更新β和γ,再更新,最终得到加法模型。3、回归问题的...

2021-08-20 11:45:37 346

原创 《机器学习算法-Boost》AdaBoost Algorithm

1、AdaBoost思想首先AdaBoost是隶属于集成学习Boost家族的一个算法,也是一个比较算的上是入门级又能充分的体现boost的思想的算法。通过一个现实生活中的例子来聊聊AdaBoost这个算法。假设这么一个场景:你是一个非常优秀的数学老师,你的班级有10个学生,你想要提升这个班级的成绩,一开始给每个人辅导2h,发现经过一次考试之后有其中一半的学生成绩比较好,另一些成绩比较差,这个时候你会把时间重新做一个分配,将考的好的学生的时间降为1h,把多出来的时间给考...

2021-08-18 15:31:11 712

原创 《机器学习算法》KNN算法(K近邻)

1、什么是KNN算法 K近邻算法是一个基本的机器学习算法,可以完成分类和回归任务。对于分类任务的话,主要是遵循”近朱者赤;近墨者黑“的原理。对于其中一个测试的实例,根据其K个最近邻的训练实例的类别进行多数表决然后完成预测。也就是随机森林中的”投票法“原则。2、KNN算法的三要素 ①K值的选择 K值的选择是一个非常关键的问题,一般情况下我们通过k折交叉验证,来选取一个比较好的K值,因为K值的选取完全影响了这个算法的性能。举两个极端的...

2021-08-17 17:55:12 824

原创 机器学习知识点复习

特征工程: 归一化、标准化特征选择: Pearson相关系数 卡方验证 互信息和最大信息系数 距离相关系数 方差选择法过拟合和欠拟合的解决办法 pass 方差和偏差的影响 pass选择参数的策略 1、网格搜索 全空间扫描,比较慢 2、Random search 速度较快,但可能会错失空间上重要的一些点,精度不够 3、Hyperopt 是一种通过...

2021-07-21 14:47:48 553

原创 Attention机制:self_attention的原理及代码实现

attention机制的核心思想就是想让我们关注我们需要关注的东西,而把不重要的东西忽略掉,如果我们在说一句话或者一段文字里有的文字描述只是为了核心思想做铺垫,而attention机制的思想就是说我们根本不care铺垫的内容,我们只想把最核心的东西突出,因为核心的观点是对这段文字有最大的贡献值。那么attention机制开始的时候是在NLP领域有比较广泛的应用,再后来在图像视觉的领域也有极大的应用。比如我们在进行分类的时候我们只想关注目标而忽略背景,这个思想和attention的核心思想就对的上了,所以在视

2021-05-15 13:04:22 1809

原创 面试算法岗总结(持续更新.....)

寒假以来一直在投一些算法实习岗位,既然是算法,面大厂的话肯定少不了“手撕代码”的问题,怕自己忘掉,因此做已记录。目标是面试8个公司,现在已经面试了有三星、华为、快手,其中三星没有考代码题目。三星比较水,没有考代码问题。华为比较简单,就考察了一个斐波那契数列的问题。面试也是比较简单只考了一个算法题。class Solution: def fib(self, n: int) -> int: a, b = 0, 1 for _ in range

2021-01-28 17:32:44 649 4

原创 《机器学习算法》SVM进行多分类及代码实现

最近做了一个工作就是对属性进行分类,然后用了不同的分类器,其中就用到了SVM,再次做一个总结。1、什么是SVM?对于这个点已经介绍的非常多了,不管是西瓜书还是各种博客,就是我们需要找到一个超平面,用这个超平面把数据划分成两个类别,最开始的SVM就是在二分类的问题上应用,在之后被扩展到多类别的分类。对于SVM的推导公式不是很复杂,在此就不进行推导,大概清楚最基本的原理然后就进行应用就可以了。如下图所示,我们就是要找到中间这条线,使得||w||的值尽可能小,是正负样本离超平面的距离越大越好,分类的效

2020-10-27 22:36:28 31695 13

原创 Pyroch损失函数之BCELoss

这也是最近在做的一个模型中的损失函数,所有就一探究竟了解一下这个函数。首先它是一个二分类损失函数。可以是单标签的损失函数也可是多标签的损失函数。1、单标签这个图像是不是猫:1代表是,0代表不是。这就是单标签的二分类问题。2、多标签和单标签一样,不过这个是多标签而已,所以它的label就是[1,1]。第一列代表有没有狗,第二列代表有没有猫。所以也称之为二进制交叉熵。3、BCELoos损失函数class torch.nn.BCELoss(weight: Optional[to.

2020-07-02 15:46:28 19021 8

原创 Pytorch中的损失函数:CrossEntropyLoss和NLLLoss的区别

在网上也浏览了很多的博客,很多博主都从熵和信息量开始介绍,因为最近在使用损失函数过程中遇到一点问题,因此就想一探究竟到底pytorch中的交叉熵损失函数是如何计算的,所有最简单的从公式和代码开始看。接下来直接介绍这两个函数:1、NLLLossclass torch.nn.NLLLoss(weight=None, size_average=True)作用:训练一个n类的分类器 参数 weight:可选的,应该是一个tensor,里面的值对应类别的权重,如果样本不均衡的话,这个参数非常有用,长

2020-06-29 16:32:55 2665 2

原创 BP神经网络(手撕前向和反向传播)

昨天突然看到BP,然后就心里想手撕一下BP的原理和代码,所以就今天看了看。有一个国外哥们写BP写的特别好:BP神经网络。好了,接下来进从这几个方面讲述BP神经网络1、什么是BP?是一种按照误差逆向传播算法训练的多层前馈神经网络2、什么是反向传播?反向传播传播的是什么?我们反向传播的目标是更新网络中的每个权重,以便它们使实际输出更接近目标输出,从而将每个输出神经元和整个网络的误差最小化。传播的误差,更新权重使得loss最小。3、前向传播前向传播传数据的输入,特征的提取,分类。

2020-06-07 21:50:07 1084

原创 复现目标检测Faster R-CNN代码(Pytorch1.0版本)

最近开始做目标检测的这个模型了,里面有用到Faster R-CNN的部分,就是关于RPN网络。捣鼓了三天了,看了无数的博客,GitHub终于跑通了代码。故作以记录。一、代码下载地址https://github.com/jwyang/faster-rcnn.pytorch/tree/pytorch-1.0二、代码框架我是通过迅雷在GitHub上下载,然后解压之后在复制到服务器。与...

2020-01-19 21:30:29 3161 8

原创 搭建深度学习的环境

现在的研究方向是CV,那么必须要搭建深度学习的环境,因此我在折腾了一个中秋假期之后终于把服务器的环境搭建成功了!其中废了不少周折,因此想借此博文来记录一下。环境配置:Ubuntu14+TITAN X+CUDA10.1+CUDNN+Pytorch一、安装显卡驱动因为我的服务器目前只装了一块TITAN X 显卡,因此我必须要装支持我这个显卡的显卡驱动。官网地址:https://www....

2019-09-17 20:36:13 711

原创 采用curve_fit拟合曲线或者直线

拟合曲线;最小二乘法

2023-03-03 15:34:31 925 1

原创 秋招算法岗总结

昨天结束了秋招。这是我的第一次秋招,也是最后一次秋招。本科是双非网路工程,硕士是985是软件工程,找工作的方向是机器学习和计算机视觉。BAT等一线的大厂都有投递,算法竞争十分激烈,本人又无论文,最终只拿到美团和华为的offer。美团,工作地在上海,工作岗位是算法工程师。华为,工作地在西安,工作岗位是AI工程师。开奖时间间隔半个月,开奖数目相差不大。通过综合考虑,留在西安搬砖。秋招结束,论文开始。愿工作后还能持续写博客记录,保持好奇心,永远在路上!...

2021-10-27 15:39:24 353

原创 通过API快速下载Kaggle数据集

1、登陆账户 下载文件之前必修要有一个kaggle的账户。2、创建API 进入Account中去创建一个API。创建完API后会有一个kaggle.json的文件下载下来。3、通过pip安装kaggle 用win+r打开dos窗口,并输入pip install kaggle进行kaggel的下载安装。4、复制文件到相应目录 然后将文件复制到.kaggle中去。5、开始下载文件 ...

2021-10-09 11:17:57 1055

原创 kaggle

https://www.cnblogs.com/limitlessun/p/8489749.html

2021-08-30 23:43:49 220

原创 熵、信息熵、互信息、条件熵区别

1、熵 在初中化学中学过,熵越大表示其混乱程度越大,熵越小表示混乱程度越小。因此在决策树中分类节点中用到了信息熵的概念。2、信息熵 假设有个离散变量x,有一个概率分布p(x),信息熵H(x)3、条件熵定义:在一个条件下,随机变量的不确定性。4、信息增益在一个条件下,信息不确定性减少的程度H(X,Y) = H(x)-H(Y|X)5、互信息定义:指的是两个随机变量之间的相关程度。...

2021-08-26 16:21:43 1417

原创 《机器学习超参数调整利器》贝叶斯优化算法

1、贝叶斯优化算法思想利用之前已经搜索点的信息确定下一个搜索点,用于求解维数不高的黑盒优化问题;首先生成一个初始候选集合,然后根据这些点寻找下一个有可能是极值得点,将该点加入集合中,重复这一步骤,直至迭代终止。最后从这些点中找出极值点作为问题的解。2、贝叶斯优化伪代码根据已经搜索的点的函数值估计真实目标函数值的均值和方差(通过高斯过程回归实现) 根据均值和方差可以构造出采集函数,对每一点是函数极值点的可能性的估计,反映了每一个点值得搜索的程度,该函数的极值点...

2021-08-26 15:32:57 1642 8

原创 《机器学习算法》XGBT

1、XGBThttps://www.cnblogs.com/pinard/p/10979808.html2、面试https://mp.weixin.qq.com/s?__biz=MzI1MzY0MzE4Mg==&mid=2247485159&idx=1&sn=d429aac8370ca5127e1e786995d4e8ec&chksm=e9d01626dea79f30043ab80652c4a859760c1ebc0d602e58e13490bf525ad7608

2021-08-25 15:32:45 991

原创 Leetcode of August

class Solution: def triangleNumber(self, nums: List[int]) -> int: n = len(nums) nums.sort() ans = 0 # 固定最大边, a + b > c for i in range(n - 1, 1, -1): l, r = 0, i - 1 # 两数之和问题! ...

2021-08-05 10:33:21 143

原创 《Leetcode of July》

1104. 二叉树寻路class Solution: def pathInZigZagTree(self, label: int) -> List[int]: depth = 0 for i in range(1,10000): if label>=2**(i-1) and label<2**(i): depth = i break

2021-07-29 15:12:25 144

原创 《Leetcode of July》

# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def distanceK(self, root: TreeNode, target: TreeNode, k: int) -> Li...

2021-07-28 11:41:19 134

原创 读取PDF中表格的数据

昨天刚好需要读取PDF中表格的数据,但是表格的数据又太多了一个个复制粘贴不是很好弄,因此我需要用代码去解析pdf得到表格的数据,代码如下:import pdfplumberimport xlwt# 定义保存Excel的位置workbook = xlwt.Workbook() # 定义workbooksheet = workbook.add_sheet('Sheet1') # 添加sheeti = 0 # Excel起始位置path = r'C:\Users\xxx\Desktop

2021-07-14 09:28:07 729

原创 跨模态检索mAP的计算

1、跨模态检索输入qB:查询输入的汉明码,m*bit(64/128)rB:检索集的汉明码,n**bit(64/128)query_L:查询输入的标签,m*21(21个类别)retrieval_L:检索集的标签,n*212、跨模态检索mAP公式这个公式表示的就是如何计算Q个数据的检索,我们只需要计算每条数据的检索的Ap即可,也就是AveP(q)AveP中,其中分母表示有几个相关文档,rel(k)表示排名第k的文档是不是相关文档,P(k)表示排名第k个文档的精准率。3、跨模态检索代码实例

2021-06-22 16:17:19 961 1

原创 June——401、二进制手表

class Solution: def readBinaryWatch(self, num: int) -> List[str]: if num>8: return [] res = list() for h in range(12): for m in range(60): #只要分时和秒之和为num即可 if bin(h)..

2021-06-21 15:35:56 143

原创 Linxu常用的命令

1、统计一个目录下有多少文件数量ls -l|grep "^-"| wc -l

2021-06-11 16:59:46 138

原创 June——525.连续数组

class Solution: def findMaxLength(self, nums: List[int]) -> int: prefix_sum = [0] for num in nums: if num==1: prefix_sum.append(num+prefix_sum[-1]) else: prefix_sum.append(pr...

2021-06-03 09:12:14 75

原创 June——523.连续的子数组和

class Solution: def checkSubarraySum(self, nums: List[int], k: int) -> bool: #暴力出错 prefix_sum = [nums[0]] for i in range(1,len(nums)): prefix_sum.append(prefix_sum[-1]+nums[i]) for i in range(...

2021-06-02 11:19:45 58

原创 十大排序算法(python代码实现以及动图原理)

上周面试招行,问了我pa

2021-05-31 21:34:27 93

原创 【机器学习】优化器之Adam

上一个章节说了SGD和动量版本的SGD,这个优化算法目前也是比较常用的一个优化算法,但是它还是存在一些问题的,因此后面又出了几个不同的算法,比如AdaGrad、RMSProp、Adam等算法。

2021-05-30 17:10:14 7045

原创 May——477.汉明距离总和

class Solution: def totalHammingDistance(self, nums: List[int]) -> int: #暴力超时 # res = 0 # for i in range(len(nums)): # for j in range(i+1,len(nums)): # count = bin(nums[i]^nums[j]).count('1') ...

2021-05-29 09:58:56 146

原创 May——409. 最长回文串

class Solution: def longestPalindrome(self, s: str) -> int: dic = defaultdict(int) for char in s: dic[char]+=1 res = 0 tmp = 0 for k,v in dic.items(): if v%2==0: ...

2021-05-26 20:15:17 59

原创 【机器学习】优化器之梯度下降算法

不管在机器学习还是深度学习中,我们都是通过对loss函数求偏导,来更新要学习的参数。一般用的比较多的就是梯度下降算法,当然了梯度下降算法有几个变种,刚好面试问到这个问题了,因此在此做个记录。1、什么是梯度?梯度的本意是一个向量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。1)梯度是一个向量,即有方向有大小;  2)梯度的方向是最大方向导数的方向;(函数沿梯度方向函数有最大的变化率。)  3)梯度...

2021-05-26 11:10:27 548 1

原创 May——剑指 Offer 14- I. 剪绳子I,II

class Solution: def cuttingRope(self, n: int) -> int: #尽可能多的3组成,3越大积越大 if n<3: return 1 if n==3: return 2 res = 1 while n>4: n-=3 res*=3 return res*n ...

2021-05-25 10:38:41 80

原创 May——剑指 Offer 16. 数值的整数次方

class Solution: def myPow(self, x: float, n: int) -> float: if n == 0: return 1 elif n < 0: #必须保证n>0 return 1/self.myPow(x, -n) #如果是奇数的话,那么最终的结果:x*x^(n-1) elif n & 1: ...

2021-05-24 21:58:59 71

原创 循环神经网络之Long Short-Term Memory(LSTM)

1、LSTM简介长短期记忆神经网络,是基于RNN改进的一种可以处理有序数据的循环神经网络,由于它设计的输入门、输出门、遗忘门三个门结构很好的解决了RNN中存在梯度消失的问题,可以说是RNN的改进版,后续还有GRU网络,GRU是针对LSMT的一种改进。2、LSTM的结构标准的RNN中的单层神经网络包含重复模块的四层神经网络与RNN相比发现每一个时间步都是非常的复杂,不仅仅是一个激活函数而已。接下来将中间这个部分拆解开了,庖丁解牛。细胞状态是LSTM中非常重要的一个单元状态,它.

2021-05-21 16:29:24 897

原创 循环神经网络之Recurrent Neural Network(RNN)

1、什么是RNN?全名,叫做Recurrent neural network,它可以处理有序列的或者有前后关系的句子,利用前面的信息预测后面的信息,这个是RNN和CNN最大的区别。CNN不考虑顺序依赖关系,RNN考虑顺序依赖关系。2、RNN的结构这个图就是一个循环神经网络,它循环其实是一个"假"循环,就是将每个时间步的输入拆开即可。首先说一下RNN的输入和学习的参数。输入:x_t:每个时间步的输入,s_t每个时间步的隐状态向量。输出:o_t每个时间步的输出接下来说说如何得到隐状态

2021-05-21 11:37:25 385

原创 May——692. 前K个高频单词

1、哈希方法先对数组进行计数统计 然后对key进行排序,根据value的负数进行升序排序,然后如果出现次数相同的话,那么对key再进行升序的操作即可 这块的sorted()中待排序的只能是dic.keys()或者dic.values()class Solution: def topKFrequent(self, words: List[str], k: int) -> List[str]: dic = dict() for word in wo...

2021-05-20 09:34:03 66

空空如也

空空如也

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

TA关注的人

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