- 博客(42)
- 收藏
- 关注
原创 目标跟踪系列总结
sort算法流程图关联成功的检测box与追踪box处理:使用检测的box对追踪结果进行KalmanFilter权重以及参数更新,同时记录关联追踪box的计数次数;未关联成功的box处理:对检测的box进行KalmanFilter初始化,并且加入追踪列表中;未关联成功的追踪box处理:首先判断该追踪box失去关联的计数次数是否大于最大的阈值max_age,如果大于则从追踪列表删除;否则,就将失去关联计数加1。当然,还会存在关联几次min_hits之后在追踪列表显示进行输出;
2023-02-24 11:27:23
1949
原创 PCA模型原生python实现
#使用梯度上升法import numpy as npimport matplotlib.pyplot as pltX = np.empty((100,2)) ##返回一个100X2的数组 ##size为样本个数X[:,0] = np.random.uniform(0.,100.,size =100)#随机生成100个实数在(0-100)范围内个数X[:,1] = 0.75*X[:,0] + 3.+ np.random.normal(0,10., .
2022-04-27 21:50:13
1814
原创 KNN模型
KNN模型分为等权和加权模型:等权模型:'''import numpy as npimport pandas as pd##初始化训练数据T = [[3, 104, -1], [2, 100, -1], [1, 81, -1], [101, 10, 1], [99, 5, 1], [98, 2, 1] ]##预测数据x_test = [18, 90]##邻居K = 5###列表 [[dis1,标签1],[dis2,标签
2022-04-27 21:39:10
6504
原创 决策树实战鸢尾花
# -- encoding:utf-8 --"""只要是机器学习中,代码的编写流程一般和下面这个一样!!!!Create on 19/3/2"""import warningsimport sysimport numpy as npimport pandas as pdimport matplotlib as mplimport matplotlib.pyplot as pltfrom sklearn.preprocessing import StandardScaler, Lab.
2022-04-27 20:40:46
472
原创 决策树代码部分
决策树实战的原始的直观理解为if-else的逻辑结构def predict(x1, x2, x3): if x3 >= 97.5: return 1 else: if x1 == 1: return 1 else: if x2 == 0: return 0 elif x2 == 1: return
2022-04-27 20:26:24
324
原创 bert论文笔记
本文所有图表均来自https://arxiv.org/pdf/1810.04805.pdf论文中1。为什么要提出bert模型,相比于其他模型bert模型的 区别和优势在传统的语言模型中,在这里bert主要比较的是GPT和之前的RNN,相较于RNN模型,bert采用的tranformer的encoder可以并行的优势发挥出来,相较于ELMo,bert采用了tranfoermer特征提取器,使得特征提取的更加完善,而相比于GPT,bert提取文本双向的信息。在bert之后,预训练模式出圈了 ,所
2022-04-27 18:03:46
501
原创 transformer论文介绍
title :Attention Is All you need1 abstract :说明了transformer不同于CNN 和RNN,transfomer只使用了注意力机制,就完成了seq-seq任务,并且取得不错的效果。2.结论是相比于RNN等传统的循环神经网络网络模型,可以更好的实现并行,并且在翻译质量上更好主要的模型结构是...
2022-04-26 17:16:52
2235
原创 pytorch中的contiguous
contigous 在英文中为连续的意思,何为连续,就是语义相同的张量存储在连续的内存空间中,为什么要使用contigous?因为view()操作需要连续的tensortranspose、permute 操作虽然没有修改底层一维数组,但是新建了一份Tensor元信息,并在新的元信息中的 重新指定 stride。torch.view 方法约定了不修改数组本身,只是使用新的形状查看数据。如果我们在 transpose、permute 操作后执行 view,Pytorch 会抛出以下错误。
2022-04-24 17:05:29
1576
原创 pytorch,改变元数据而使原本数据不变的方法
'''pytorch中,不改变tensor内容本身,而只是重新定义下标的对应关系的操作另一中解释:这种操作不进行数据拷贝和数据的改变,变的是元数据元数据:用于描述原始数据的数据,譬如,数据的索引,关系,约束等改变元数据的操作有:narrow() pytorch 中的narrow函数起到了筛选一定维度上的数据作用view()expand()tranpose()'''##narrow example'''narrow(input: Tensor, dim: _int, sta.
2022-04-24 10:45:40
1341
1
原创 近期的随笔
今天写这一期,不写技术,而是关乎自己的感悟和惰性,然而这很不符合,程序员这一行的开水原则,在很多的技术细节上会浅尝辄止,在许多现实的干扰下放弃了沸水前的一刻。这是一个很致命的打击,在写程序的时候就会严重拖累自己的编写进度 ,让自己效率降低,丢失了自己对于时间的掌握。进而不断拖延自己的学习目标。放到具体的学习过程中就是对于,学习时间的密度不尊重,密度过低导致自己所接受知识的含金量下降,从而导致的结果。感谢,陈同学的监督,接下来,我将以任务为导向,完成工作。而不在区分工作的某一个部分。相较于你,
2022-04-16 22:42:56
257
1
原创 crf基础
crf全程条件随机场:什么是条件随机场?给定一组输入随机变量的条件下,另一组输出随机变量的条件概率分布条件随机场常用在序列标注任务中,例如,命名实体识别,分词,词性标准,基因测序,降噪和对象检测等任务中。随机场:又称马尔可夫随机场,一个由无向图表示的联合概率分布。无向图模型: 无向图表示没有标注方向的图模型如上图所示,设有联合概率分布,其中Y是一组随机变量,由无向图表示概率分布,在图中,节点表示一个随机变量,;边表示随机变量之间的依赖关系。得到CRF的表达...
2022-04-15 21:51:07
140
1
原创 爬虫总结1
爬虫是在今天大数据时代,数据的主要来源之一,数据是模型训练的先决条件,如何高质量的获取网页上的信息,可以采用爬虫来进行,前提知识是具有基本的html知识,可以在浏览器的开发者模式中找到标签的位置。目前常用的有一下几种模块和工具进行爬虫,正则表达式xpathbeautifulsoup等以博客园为例:爬取博客园中的小标题,摘要,发表时间,阅读数,评论数,推荐数等关键信息指标。...
2022-04-15 11:08:20
630
原创 决策树预备知识
决策树是一个简单的判别模型,并且可以出现在训练集上100%的准确率决策树的内部节点是特征,叶子表示的就是标签在具体介绍决策树之前,首先介绍它的先驱概念1.如何通过比特(01)来表示一个随机变量X的序列例如:: BACADDCBAC.....转化成为01001000111110010010.......假如:P(A)= P(B)=P(C)=P(D),需要四种不同的比特来表示,且概率相等,那么笔者认为可以借助抛硬币的的方式决定,一枚硬币可以产生(0,1)两种信息表示,那么用两枚硬币,便可
2022-04-12 10:55:04
488
原创 jieba总结
jieba是最常用的分词工具,现在总结jieba并不常用的其他模式words_a='上海自来水来自海上,所以吃葡萄不吐葡萄皮'seg_a=jieba.cut(words_a,cut_all=True)print("全模式:","/".join(seg_a))seg_b=jieba.cut(words_a)print("精确模式:","/".join(seg_b))seg_c=jieba.cut_for_search(words_a)print("搜索引擎模式","/".join(seg
2022-04-08 12:13:20
623
原创 机器学习的数据特征处理
特征工程的意义:所有一切让模型效果变好的数据处理方式都属于特征工程。特征预处理数据清洗归一化和标准化数据清洗:1.数据去重2.用正则去除的明显错误数据清洗的方式:from sklearn.preprocessing import Imputer1.均值填充2.中值填充3.众数填充...
2022-04-08 09:35:26
1159
原创 LSTM详解核心
LSTM 解决梯度弥散和消失的核心要素是在求细胞状态的的嘶吼采用了加法(与残差类似),通过这样的情况,避免了BP 的时候连乘导致的梯度消失或者爆炸。LSTM(Long Short Term Memory)出现的目的是解决RNN对于长期依赖可能产生的梯度消失或者梯度爆炸的问题LSTM相较于RNN,出现细胞状态并且是三个输出两个结果,具体如下Ct和Ht两种不同的输出:首先是忘记门忘记门,通过x,和ht-1状态,获得忘记门的系数,以用来更新记忆信息更新门,获得it参数,已经原.
2022-04-06 23:55:58
1212
1
原创 tfidf代码实现
#encoding:utf8import reimport osimport jiebaimport jieba.posseg as psegimport numpy as npclass TFIDFCounter: #构造方法 def __init__(self): #对象属性 self.tfs = {}#每篇文章的每个词的词频{"docid1":{'苹果':tf值, '乔布斯':tf值,.....},"docid2":{'手机':tf值,.
2022-02-28 21:59:53
2749
2
原创 评价指标reacll@10,mrr@10,ndcg@10,hit@10的含义
在知识图谱补全和推荐系统中常用到recall,mrr,ndcg,hit的评价指标知识图谱补全也成为链接预测,是用来预测三元组(h,r,t)中缺失实体h,t或r的任务,对于每一个缺失的实体,模型将被要求用所有的知识图谱中的实体作为候选项进行计算,在测试阶段,对于每个待测试三元组,用知识图谱中的除去h与t之外的其他实体作为候选项来替换头实体或尾实体,并且按大小顺序给出这些实体的评分函数f_r。还是按照上述进行f函数值排列,然后去看每个testing triple正确答案是否排在序列的前十,如果在的话
2022-02-25 10:35:11
19400
4
原创 opencv模板匹配
模板匹配的定义:模板匹配是一项在一幅图像中寻找与另一幅模板图像最匹配(相似)部分的技术。模板匹配不是基于 直方图的, 而是通过在输入图像上滑动图像块(模板)同时比对相似度, 来对模板和输入图像进行匹配 的一种方法def matchTemplate(image, templ, method, result=None, mask=None)image: 待搜索图像(大图) templ: 搜索模板, 需和原图一样的数据类型且尺寸不能大于源图像 result: 比较结果的映射图像
2022-02-22 21:34:48
2615
原创 opencv细节补充
1. 图像的大小变化:cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) -> dstsrc :需要改变尺寸的图像 dsize:目标图像大小 dst:目标图像 fx:w方向上的缩放比例 fy:h方向上的缩放比例 interpolation - 插值方法。共有5种:value 含义cv2.INTER_NEAREST 最近邻插值法插值后的边缘效果:由于是以最近的点作为新的插入点,因此边缘不会出现缓慢的渐...
2022-02-18 16:08:07
185
原创 OPENCV总结
特别提醒:opencv的版本问题:建议使用cv2的 '3.4.2'的版本因为在3.4版本之后,因为sift的算法申请专利,如无法使用该函数sift = cv2.xfeatures2d.SIFT_create()基础知识部分1.图像的组成与读取import cv2 #opencv读取的格式是BGRimport numpy as npimport matplotlib.pyplot as plt#Matplotlib是RGB%matplotlib inline img=.
2022-02-12 11:02:48
2066
原创 装饰器的作用
首先装饰器是非常常用的python 高阶方法。笔者带领大家依次去了解装饰器产生的目的装饰器 的定义:装饰器本质上就是一个python函数,它可以让其它函数在不需要做任何代码改动的前提下增加额外的功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景中,比如-- >插入日志、性能测试、事务处理、缓存、权限校验等场景。首先python的装饰器的功能可以不通过装饰器来完成例如计算统计时间:import timedef f1(): # print(time.time())
2022-01-06 16:23:06
1586
原创 python用栈实现括号匹配
1.栈是一种先进后出的序列,2.栈主要由栈顶,栈底,两个部分:第一步栈的创建:class Stack: def __init__(self): self.stack = [] def push(self,element): self.stack.append(element) def pop(self): return self.stack.pop() def get_top(self): if l
2022-01-03 23:12:56
983
原创 python实现堆排序
堆排序,首先要理解堆的概念,堆是由树组成,首先需要涉及到的概念就是,树,二叉树,完全二叉树。,大根堆,小根堆,可根据别的网站搜索或者https://www.jb51.net/article/216519.htm访问可知上述的答案:然后 大根堆:所有的孩子节点没有自己大的的完全二叉树:小根堆:所有的孩子节点都比自己大的完全二叉树:然后了解堆的自我调整:#构建一个堆#1.建立堆#2.得到堆顶元素,为最大元素#3.去掉堆顶,将堆最后一个元素放到堆顶,此时可以通过..
2022-01-03 22:56:50
6656
2
原创 python实现插入排序
算法思想:插入排序,首先是将列表表示成一副扑克,def Insert_Sort(li): for i in range(1,len(li)):##表示摸到手里的牌的下标 j = i-1##表示手里的牌的下标 temp = li[i] #手里的牌存起来 while j >= 0 and li[j] > temp:###手里的牌>摸到手里的 li[j+1] = li[j]##现在手里的牌向后移动
2022-01-02 20:53:11
448
原创 python实现选择排序
算法思想:以从小到大举例,从所有数据中找到最小的数放置在元素的第一个位置,再从第二项开始,待排序的区域选择一个最小的数据放到第二个位置,依次类推,直到排序完成具体看程序代码,最简版:def Select_Sort(li): new_list = [] ##设置一个恐列表,用来存放最小值 for i in range(len(li)):#遍历原始列表 min_val = min(li)##选择出原始列表的最小值 new_list.appe
2021-12-29 19:43:33
483
原创 python实现冒泡排序
def Bubble_Sort(li): for i in range(len(li)-1):##总共执行的趟数 for j in range(len(li)-1-i):##每一趟需要走过的元素数量 if li[j]>li[j+1]:##判断大小 li[j],li[j+1] =li[j+
2021-12-29 17:12:03
934
原创 python实现二分查找
实现二分查找的前提,是将序列首先经过排序,排序之后,进行二分查找:首先找到首元素和尾元素,然后找到中间元素,代码如下:def binary_search(li,val): left =0 right = len(li)-1 while left<= right: mid = (left+right)//2 if li[mid]==val: return mid elif li[mi..
2021-12-28 20:45:57
285
原创 python实现顺序查找
1.顺序查找也成为线性查找,其核心思想是遍历列表挨个查找元素:def linear_search(li,val): for ind, v in enumerate(li): # print(ind) # print(ind,v) if v == val: return ind return Noneimport randomli = list(range(100))random.shuffle(li)
2021-12-28 14:24:28
1727
原创 pandas总结
目前常分为Series和DataFrame两部分,且,Series是DataFrame的基础首先了解其创建与使用Series:Series能够保存任何类型的数据(整数,字符串,浮点数,# python对象)的一维标记数组,标签统称为索引创建过程:import pandas as pdobj = pd.Series([4,7,-5,3])obj0 41 72 -53 3dtype: int64还可以自定义索引:obj2 = pd.Se
2021-12-10 20:12:56
362
原创 numpy知识点总结
如何创建numpy数组? 数组和列表的区别? 数组的常用属性? 数组的切片和索引? 数组的广播机制? 常见的运算函数? reshape(-1)的理解? numpy矩阵的tranpose()函数通过对以上问题的总结,全面了解numpy的基础知识对于学习AI的同学来说,numpy是最最最常见和常用的,这次做一个个小总结,希望帮助大家省些时间。1.创建数组通常有三种形式,第一种用列表调用np.array()函数,第二种可以用arrange()函数生成有序的数组。第三种调用random模块进
2021-12-10 00:06:39
1669
原创 为什么需要对数值类型的特征做归一化?
因为在数据存在不同的量纲,为了消除不同量纲数值的影响,使得不同指标之间具备可比性。for example:分析一个人的身高和体重对健康的影响,如果 使用米(m)和千克(kg)作为单位,那么身高特征会在1.6~1.8m的数值范围内,体重特征会在50~100kg的范围内,分析出来的结果显然会倾向于数值差别比 较大的体重特征。想要得到更为准确的结果,就需要进行特征归一化(Normalization)处理,使各指标处于同一数值量级,以便进行分析。归一化的方法有线性函数归一化(Min-Ma
2021-11-28 10:48:24
596
原创 python常见细节
今天在编码过程中发现在数字列表排序的过程中,无法直接打印num.sort()进行数组排序,会返回None值而应该执行num.sort(),然后输出num,就是排序好的数组例如:a = [1,4,5,2,3,7]print(a.sort())会输出None值a = [1,4,5,2,3,7]a.sort()print(a)则会输出[1, 2, 3, 4, 5, 7]第二条:前提是string,number都为list类型将字符串转化为数字字符列表,使用map函数
2021-11-26 23:43:53
489
原创 函数调用
值传递和引用传递当我们调用一个函数时,会在内存中建立起一块特殊区域,称为“程序堆栈,这块特殊的区域提供了每一个函数参数的存储空间,它提供了函数所定义的每个对象的内存空间——我们将这些对象称为localobject,一旦函数完成,这块内存就会被释放掉经典值传递:#include using namespace std;void swap(int a, int b){cout <&...
2019-09-04 23:58:32
147
原创 Essential C++的关键知识
主要在array和vectorarray的大小必须是常量表达式int size =20int array[size];vector容器:可以存放连续数值向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组Vector<类型>标识符...
2019-09-04 19:07:02
177
原创 在pip安装sklearn失败后,建议使用conda
我在装sklearn用 pip install sklearn 命令安装屡次报错后,改用 conda install scikit-learn命令安装,
2019-03-09 11:06:12
2693
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人