自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【设计模式】一、简介

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。模式:在某些场景下,针对某类问题的某种通用的解决方案。场景:项目所在的环境问题:约束条件,项目目标等解决方案:通用、可复用的设计,解决约束达到目标。GOFDesign Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用

2022-01-22 13:08:28 210

原创 【WebMagic】二、注解开发

注解开发简介WebMagic支持使用独有的注解风格编写一个爬虫,引入webmagic-extension包即可使用此功能。在注解模式下,使用一个简单对象加上注解,可以用极少的代码量就完成一个爬虫的编写。对于简单的爬虫,这样写既简单又容易理解,并且管理起来也很方便。注解模式的开发方式是这样的:1、首先定义你需要抽取的数据,并编写类。2、在类上写明@TargetUrl注解,定义对哪些URL进行下载和抽取。3、在类的字段上加上@ExtractBy注解,定义这个字段使用什么方式进行抽取。4、定义结果的

2022-01-19 19:47:16 968

原创 【WebMagic】一、知识点、quickstart

框架简介WebMagic框架包含四个组件,PageProcessor、Scheduler、Downloader和Pipeline。这四大组件对应爬虫生命周期中的处理、管理、下载和持久化等功能。这四个组件都是Spider中的属性,爬虫框架通过Spider启动和管理。一、WebMagic的四个组件1.DownloaderDownloader负责从互联网上下载页面,以便后续处理。WebMagic默认使用了Apache HttpClient作为下载工具。一般无需自己实现。2.PageProcess

2022-01-17 23:02:34 541

原创 【力扣】141. 环形链表

141. 环形链表给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。/** * Definition for singly-linked

2021-11-21 15:31:10 92

原创 【力扣】56. 合并区间

56. 合并区间以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入:intervals = [[1,

2021-11-19 15:33:47 506

原创 【力扣】53. 最大子序和

53. 最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [0]输出:0示例 4:输入:nums = [-1]输出:-1示例 5:输入:nums = [-100000]输出:-100000方法一:

2021-11-16 16:50:20 64

原创 【力扣】5. 最长回文子串

题目:5. 最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a”输出:“a”示例 4:输入:s = “ac”输出:“a”方法一:动态规划// An highlighted block// 1、动态规划// str[i,j] 是回文 <==>str[i+1.j-1]是回文 &

2021-11-14 17:15:25 173

原创 聚类算法:K-means和K-medoids

K-means算法核心思想通过迭代把数据对象划分到不同的簇中,以求目标函数最小化,从而使生成的簇尽可能地紧凑和独立。首先,随机选取k个对象作为初始的k个簇的质心;然后,将其余对象根据其与各个簇质心的距离分配到最近的簇;再求新形成的簇的质心。这个迭代重定位过程不断重复,直到目标函数最小化为止。目标函数为平方误差准则函数,采用欧几里得距离度量1、优点:在处理大数据集时,该算法是相对可扩展性的,并且具有较高的效率。算法复杂度为O(nkt),其中,n为数据集中对象的数目,k为期望得到的簇的数目,t

2021-05-20 20:21:35 2893

原创 经典算法:遗传算法(GA)

一、概念遗传算法(Genetic Algorithm, GA) 是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。基因型:性状染色体的内部表现表现型:染色体决定的性状的外部表现编码:表现型到基因型的映射解码:基因型到表现型的映射适应度:度量某个物种对于生存环境的适应程度。遗传算法并不保证你能获得问题的最优解,但是使用遗传算法的最大优点在于你不必去了解和操心如何去“找”最优解。二、进化环节1、编码编码方法影响到交叉算子、

2021-04-15 12:35:10 6420 1

原创 经典算法:模拟退火(SA)算法

一、概念二、特点1、接受新解的概率p越大,解空间搜索范围越小2、搜索范围前期大,后期小。前期避免陷入局部最优,后期注重局部搜索。3、随机接受新解的概率p∈[0,1],若为0,类似于爬山法,若为1,类似于蒙特卡洛...

2021-04-12 15:15:39 4430

原创 经典算法:蒙特卡洛方法(MCMC)

一、概念蒙特卡罗方法(Monte Carlo method),也称 统计模拟方法蒙特卡洛方法的理论基础是大数定律。大数定律是描述相当多次数重复试验的结果的定律,在大数定理的保证下:利用事件发生的 频率 作为事件发生的 概率 的近似值。所以只要设计一个随机试验,使一个事件的概率与某未知数有关,然后通过重复试验,以频率近似值表示概率,即可求得该未知数的近似值。样本数量越多,其平均就越趋近于真实值。此种方法可以求解微分方程,求多重积分,求特征值等。二、思考步骤蒙特卡罗方法一般分为三个步骤

2021-04-11 16:11:13 63246 5

原创 深度学习:吴恩达编程作业问题L2W1

作业:随机初始化将权重随机初始化为非常大,放大十倍parameters[‘W’ + str(l)] = np.random.randn(layers_dims[l],layers_dims[l-1]) *10运行结果:On the train set:Accuracy: 0.83On the test set:Accuracy: 0.86实验:不放大十倍,随机初始化的效果权重矩阵W随机初始化为parameters[‘W’ + str(l)] = np.random.randn(layers_

2020-09-04 13:37:45 539

原创 机器学习:损失函数、代价函数、正则化

1. 定义转载来自 几种常见的损失函数损失函数(Loss Function)是用来评估模型好坏程度,即预测值f(x)与真实值的不一致程度,通常表示为L(Y, f(x))的一个非负的浮点数。比如你要做一个线性回归,你拟合出来的曲线不会和原始的数据分布是完全吻合(完全吻合的话,很可能会出现过拟合的情况),这个差距就是用损失函数来衡量。那么损失函数的值越小,模型的鲁棒性也就越好,对新数据的预测能力也就越强损失函数(Loss Function) :直接作用于单个样本,用来表达样本的误差风险函数(R

2020-08-08 13:58:05 925

原创 深度学习:吴恩达编程作业问题L1W4

问题描述吴恩达《深度学习》编程作业L1W4的作业1中,L层神经网络 初始化使用的代码:def initialize_parameters_deep(layer_dims): np.random.seed(3) parameters = {} L = len(layer_dims) for l in range(1, L): parameters['W' + str(l)] = np.random.randn(layer_dims[l],laye

2020-08-06 22:30:10 1105 4

转载 深度学习:特征工程

搬运:使用sklearn做单机特征工程特征工程:有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。通过总结和归纳,人们认为特征工程包括以下方面:sklearn特征处理是特征工程的核心部分,sklearn提供了较为完整的特征处理方法,包括数据预处理,特征选择,降维等。数据预处理通过特征提取,我们能得到未经处理的特征,这时的特征可能有以下问题:

2020-07-10 21:01:33 2633

原创 深度学习:论文解读以及有关神经系统和符号系统

前言侵删。如果有不对,欢迎提出来!话不多说,先膜拜参考文献的作者们。导师:读论文不仅要读懂这篇论文的内容,还要深挖其内在:为什么作者选择这样的方式我:嗯嗯嗯嗯好好好【不是很了解,所以我来记录一下,渣渣本渣】论文Neural Collaborative Reasoning 于2020年5月发表,属于推荐系统方向摘要现状;协同过滤(CF)一直是推荐系统的重要途径。然而,现有的CF方法大多是基于匹配的思想来设计的,即通过使用浅层或深层模型从数据中学习用户和项目嵌入, 它们试图寻找数据中的关联,以

2020-07-07 23:15:19 1560

原创 stm32f407探索者开发板资料

ALIENTEK开发平台:MDK530pack包:Keil.STM32F4xx_DFP.2.14.0光盘资料 stm32f407探索者开发板.参考资料正点原子STM32开发板>f407探索者开发板https://blog.csdn.net/shizes1989/article/details/90754279MDK5.30下载来了,含镜像下载地址,ARM同时带来Cortex-M55调试展示(2020-05-05)https://blog.csdn.net/Simon223/artic

2020-06-29 13:15:26 2014

原创 拉普拉斯平滑(Laplacian smoothing)

概念零概率问题:在计算事件的概率时,如果某个事件在观察样本库(训练集)中没有出现过,会导致该事件的概率结果是0。这是不合理的,不能因为一个事件没有观察到,就被认为该事件一定不可能发生(即该事件的概率为0)。拉普拉斯平滑(Laplacian smoothing) 是为了解决零概率的问题。法国数学家 拉普拉斯 最早提出用 加1 的方法,估计没有出现过的现象的概率。理论假设:假定训练样本很大时,每个分量x的计数加1造成的估计概率变化可以忽略不计,但可以方便有效的避免零概率问题具体公式总结:分子加一

2020-06-07 16:16:46 22112

原创 隐马尔可夫模型(四)学习问题

学习问题已知观测序列O,估计模型λ的参数,使得在该模型下观测序列概率P(O|λ)最大。解决算法最大似然估计(有监督)有监督意味着在给定的训练集中观测序列O={o1,o2,…,oT}和隐状态序列I={i1,i2,…,iT}算法流程如下:转移概率aij的估计设样本中时刻 t 处于状态 i 时刻 t+1 转移到状态j的次数为 Aij,从状态转移到状态的概率aij的估计是: 其中,分母表示从状态 i 转移到任意状态的次数。观测概率bj(k)的估计:设样本中状态为 j 并观测为 k 的频数

2020-05-31 16:46:48 1169

原创 Git&GitHub(五)远程仓库GitHub

SSH Key简介Secure Shell (SSH) 是一个允许两台电脑之间通过安全的连接进行数据交换的网络协议。通过加密保证了数据的保密性和完整性。SSH采用公钥加密技术来验证远程主机,以及(必要时)允许远程主机验证用户。由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以首先我们要创建ssh以及完成一些操作。一些问题:一台电脑只需要一个 SSH key一个 SSH key 可以访问你的所有仓库,即使你有 1000000 个仓库,都没问题如果你新买了电脑,就在新电脑上重

2020-05-27 12:33:57 130

原创 隐马尔可夫模型(三)预测问题

概率计算问题已知模型λ和观测序列O,求对给定观测序列条件概率P(I|O)最大的状态序列。即给定观测序列,求最有可能的对应的状态序列。解决算法近似算法近似算法的核心思想是在每个时刻t选择在该时刻最有可能出现的状态 it*,从而得到一个近似状态序列。具体算法流程如下:给定隐马尔可夫模型λ和观测序列O,在时刻t处于状态qi的概率为:(详见向前向后算法)在每一时刻t最有可能的状态 it* 是:从而得到状态序列 I*:这种算法的优点是算法简单易理解。缺点是预测的序列可能有实际不发生的部分,

2020-05-27 01:15:04 1580

原创 隐马尔可夫模型(二)概率计算问题

概率计算问题给定模型λ和观测序列O,计算在模型λ下观测序列O出现的慨率P(O|λ)。具体问题描述假设已知模型 λ :状态集合 S:健康,发烧;可观测集合 O:正常、冷、头晕;初始概率的状态矩阵 π:转移矩阵 A:观测状态转移概率矩阵(发射矩阵)B:已知:观测序列 O :正常,冷,头晕问:在该模型 λ 下,观测序列 O出现的概率。遍历法在知道模型参数和观测序列的情况下,我们只需要列出所有可能的状态序列,然后求每个状态序列下的得到观察序列O的概率,再将这些概率相加起来就是我们最终

2020-05-26 15:19:06 1983 2

原创 隐马尔可夫模型(一)概念

隐马尔可夫模型(HMM)很多机器学习模型都有一个共同的假设:数据与数据之间是相互独立的,模型只关注当前数据的自变量与因变量之间的关系。但是在现实生活中,我会发现数据间的顺序对数据产生是有影响的。在学术上,具有这种特性的数据被称为序列数据(sequential data)。隐马尔可夫模型(HMM) 则可以很好地观测这类数据,它是关于时序的概率模型,用有向图表示。应用场景:在语音识别,词性自动标注,音字转换,概率文法等各个自然语言处理等应用领域。经过长期发展,尤其是在语音识别中的成功应用,使它成为一种通

2020-05-21 00:16:23 520

原创 Git&GitHub(四)分支

分支概念每次提交,Git 保存的不是文件的变化或者差异,而是一系列不同时刻的快照 。Git都把不同时刻的快照串成一条时间线,这条时间线就是一个分支。在之前的学习中,我们只有一条时间线,这个分支叫主分支,即master分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。分支作用假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大

2020-05-20 16:24:35 365

原创 Git&GitHub(三)版本回退和撤销操作

查看历史修改记录$ git log 列出历史提交记录查看历史记录的简洁的版本: $ git log --oneline$ git log --oneline我的测试结果如下:545f530 (HEAD -> master) delete test15473bcd modified readme,and add test1cc2f16f add a readme file逆向显示所有日志:$ git log --reverse查看历史中什么时候出现了分支、合并:$ g

2020-05-19 21:40:26 525

原创 Git&GitHub(二)一些概念和操作

Git 工作区、暂存区和版本库git可以分三个逻辑位置:工作区、暂存区和版本库工作区:就是你在电脑里能看到的目录。暂存区:一般存放在 “.git目录下” 下的index文件(.git/index)中,有时也叫作索引(index)版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。上图可以很清晰的看到三个逻辑位置的关系:用户在工作区中修改自己的目录,通过命令 $ git add < filename > 使git追踪到目标文件(添加索引),目标文件进入暂存

2020-05-19 18:31:18 176

原创 Git&GitHub(一)Git的初了解

前言当然是从蝙蝠说起,总之大家只能在家学习工作,之后几个同学搭伙做项目,每个人负责一个部分,每次进行整合修改,都需要copy来copy去,文件夹里慢慢被许许多多的相似版本填充,看着内存一点点减小,我心里慌啊。于是来发布我的第一篇博客,有关于Git和GitHub的学习。如果有写得不对的地方,欢迎指正。不会用git的码农,不是真正的码农。所以今天的我要入门了。Git 简介Git是由 Linus用C语言编写的一个分布式版本控制系统!版本控制系统可以分为集中式版本控制系统和分布式版本控制系统。在Git出

2020-05-18 22:05:37 117

空空如也

空空如也

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

TA关注的人

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