算法
文章平均质量分 77
超级无敌吉士堡
这个作者很懒,什么都没留下…
展开
-
word2vec的pytorch实现
文章目录词向量简介PTB 数据集Skip-gram的pytorch实现词向量简介ont-hot向量表示单词简单,但是不能表现出词语词之间的相似度word2vec词嵌入可以解决上面的问题。word2vec将词表示成一个定长的向量,然后通过在语料库中的预训练使得这些向量能够学习到词与词之间的相似关系和类比关系。word2vec有两种基本假设,一种是基于CBOW,另一种是基于Skip-gram。...原创 2020-02-27 00:57:26 · 911 阅读 · 0 评论 -
AlexNet、VGG11、NiN、GoogLeNet等网络的Pytorch实现
目录AlexNetAlexNet摘要AlexNet代码VGGVGG摘要VGG的优缺点代码NiNNiN摘要GoogLeNetGoogLeNet完整结构AlexNetAlexNet摘要由于受到计算机性能的影响,虽然LeNet在图像分类中取得了较好的成绩,但是并没有引起很多的关注。 知道2012年,Alex等人提出的AlexNet网络在ImageNet大赛上以远超第二名的成绩夺冠,卷积神经网络乃至...原创 2020-02-19 20:23:41 · 660 阅读 · 0 评论 -
Pytorch实现LeNet
文章目录Convolutional Neural NetworksLeNet 模型介绍LeNet 网络搭建运用lenet进行图像识别-fashion-mnist数据集Convolutional Neural Networks使用全连接层的局限性:图像在同一列邻近的像素在这个向量中可能相距较远。它们构成的模式可能难以被模型识别。对于大尺寸的输入图像,使用全连接层容易导致模型过大。使用卷积...原创 2020-02-17 12:58:23 · 683 阅读 · 0 评论 -
softmax回归模型对Fashion-MNIST训练集中的图像数据进行分类
softmax函数的引入在多分类神经网络中直接使用输出层的输出有两个问题:1. 一方面,由于输出层的输出值的范围不确定,我们难以直观上判断这些值的意义。例如,刚才举的例子中的输出值10表示“很置信”图像类别为猫,因为该输出值是其他两类的输出值的100倍。但如果o1=o3=103o_1=o_3=10^3o1=o3=103,那么输出值10却又表示图像类别为猫的概率很低。2. 另一方面,由于真...原创 2020-02-14 19:05:38 · 646 阅读 · 0 评论 -
线性回归的Pytorch简易实现
对于线性回归,损失函数有:L(w,b)=1n∑i=1nl(i)L(\mathbf{w}, b) =\frac{1}{n}\sum_{i=1}^n l^{(i)}L(w,b)=n1i=1∑nl(i)(w,b)=1n∑i=1n12(w⊤x(i)+b−y(i))2(\mathbf{w}, b) =\frac{1}{n} \sum_{i=1}^n \frac{1}{2}\left(\mathbf{...原创 2020-02-13 16:31:25 · 230 阅读 · 0 评论 -
《机器学习实战》第14章——利用SVD简化数据完全解读
本章内容介绍奇异值分解(Singular Value Decomposition,SVD)常用来简化数据、去除噪声。在这章先介绍SVD的一些应用,再从其算法来分析它为什么有效,然后建立一个基于协同过滤的系统。奇异值分解的应用在隐性语义索引中(Latent Semantic Indexing,LSI),我们将一个文档用一个矩阵(term-document)表示,在这个矩阵的基础上运用SVD对其...原创 2019-12-28 15:14:43 · 548 阅读 · 1 评论 -
《机器学习实战》第13章——利用PCA来简化数据完全解读
降维技术做过数据竞赛的同学应该都知道,数据集一般是m×nm \times nm×n维。有时候n、mn、mn、m会非常大,这会让我们的算法运行地非常慢。在某些时候,可以通过减少nnn方向上的维度,以达到缩减数据、加快程序运行的效果。那常见的降维方法有:1、主成分分析(Principal Component Analysis,PCA)。PCA的原理就是将数据转换到了新的坐标系,这个新的坐标系是根...原创 2019-12-28 15:04:56 · 393 阅读 · 0 评论 -
《机器学习实战》第11章——利用K-均值聚类算法对未标注的数据分组完全解读
本章介绍本章将介绍如何利用K-均值算法进行聚类。在进行聚类之后,分析如何通过后处理手段来提高聚类性能。探讨二分K-均值是如何克服局部最小值问题。最后将使用地理坐标在地图上进行聚类。K-均值算法在讲K-均值算法前,我们需要对无监督学习的概念有所了解。无监督学习的特点是训练样本点标记信息未知,目标是通过对无标记样本数据的学习,解释数据的内在性质与规律。聚类是无监督学习算法中的一大分支。聚类将数据...原创 2019-12-28 14:39:38 · 715 阅读 · 1 评论 -
中文分词技术小结
中文分词技术总结规则分词正向最大匹配逆向最大匹配双向最大匹配统计分词语言模型HMM模型其他分词算法小结规则分词正向最大匹配思想:假定分词词典中的最长词有i个汉字字符,则用被处理文档的当前字符串的前i个字作为匹配字段,查找字典。若字典存在这样的一个i字词,则匹配成功,将其切分出来。如果不存在,则匹配失败,将匹配字段最后一个字去掉,继续匹配。算法描述如下:1、从左到右取待切分汉语句的m个字符...原创 2019-07-08 01:35:02 · 408 阅读 · 0 评论 -
KNN算法原理与实现
KNN算法全称是:K-NearestNeighbor顾名思义,KNN算法就是用离这个样本最近的K的个样本对这个样本进行预测算法流程:1. 设定参数K2.计算样本与所有样本之间的距离并将这距离进行排序3.取前K个样本4.回归:用这K个样本拟合一条直线(说法不是很准确,理解就好),然后将这个样本放进直线去预测分类:计算K个样本的类别数量,类别数目最多的即为预测的类别...原创 2019-05-15 10:11:01 · 424 阅读 · 0 评论 -
算法设计与分析作业(一)实现几种不同情形的二分查找
实现几种不同情形的二分查找。1). 求等于x的最小的index,不存在返回-1。输入:3 5 5 7 7 10 11 120 7 7输出:3输入说明:一组整形数组:3 5 5 7 7 10 11 12查找的范围为:数组第0个元素至第7个元素查找的元素为:72). 求等于x的最大的index,不存在返回-1...原创 2019-03-15 15:58:05 · 2766 阅读 · 1 评论 -
递归以及动态规划
程序调用自身的编程技巧称为递归。它将一个规模较大的问题转化为计算一个相似的且规模较小的问题来求解。递归能用很简洁的语法优雅地描述出一个问题的特征并且解决它。但是也存在着不少问题1、速度问题。函数的调用时需要时间的,反复的调用会使得算法的速度下降2、重复计算。递归中非常容易出现重复计算一个值的问题。3、爆栈。如果说一个问题的规模很大,那就无法避免得要将很多个结果压进栈中,超出...原创 2019-01-30 21:05:38 · 289 阅读 · 0 评论 -
二叉树的学习
二叉树的递归遍历非常简单def qxbl(root):#前序遍历 if root == None:return else: print(root.val) qxbl(root.left) qxbl(root.right)def zxbl(root):#中序遍历 if root == None:return ...原创 2019-01-29 02:01:05 · 126 阅读 · 0 评论 -
队列堆排序以及滑动窗口最大值
队列与堆排序相比,队列是比较简单,容易理解的。说到底,队列就是受限的线性表。要求先进先出。主要有:顺序队列以及链队列。顺序队列出队入队的时间复杂度都是O(1)链队列设置一个尾指针,那出队入队的时间复杂度也是O(1),不然入队的时间复杂度要降为O(n)具体就不去操作了,毕竟真的写过很多遍了啊啊啊。今天的学习重点来了,堆排序。第一次接触堆排序我就在想,这神马玩意啊。...原创 2019-01-28 21:22:53 · 263 阅读 · 0 评论 -
动态规划
0-1背包问题假设有n个物体,编号为1到n,编号为i的物体价值为vi,重量为wi。现有一个背包,载重为W。求往里面装的物体的最大价值时的装法。(物体不可分割)思路:容易看出它的状态转移方程为:dp( i,j ) = Max( dp( i-1, j ), dp( i-1, j-w[i] ) + v[i] )dp( i,j )表示前i件物品,背包剩余容量为j时,所能取得的最大...原创 2019-02-01 21:37:49 · 108 阅读 · 0 评论 -
循环链表与快慢指针以及链表的转置
今天学习的内容之一是循环链表与快慢指针。初始化:将slow、fast 指向head结点更新规则是:慢指针走一步,快指针走两步slow = slow.next,fast = fast.next.next由于链表里有环,则有以下几点结论1、快慢指针必定在某个结点相遇(下文称为相遇结点)推导:试想一下,因为链表有环,是不存在结点指向None的情况,所以快慢指针会一直在环里...原创 2019-01-27 19:55:45 · 347 阅读 · 0 评论 -
最长回文子串(LeetCode)
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb" class Solution: def longestPalindrome(self, s): ""&quo原创 2018-12-20 19:21:48 · 213 阅读 · 0 评论 -
Z 字形变换(LeetCode)
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你实现这个将字符串进行指定行数变换的...原创 2018-12-27 11:03:38 · 259 阅读 · 0 评论 -
数字的补数(LeetCode)
给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。注意:给定的整数保证在32位带符号整数的范围内。 你可以假定二进制数不包含前导零位。示例 1:输入: 5输出: 2解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。示例 2:输入: 1输出: 0解释: 1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0。...原创 2018-12-16 23:01:13 · 356 阅读 · 0 评论 -
提莫攻击(LeetCode)
在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。现在,给出提莫对艾希的攻击时间序列和提莫攻击的中毒持续时间,你需要输出艾希的中毒状态总时长。你可以认为提莫在给定的时间点进行攻击,并立即使艾希处于中毒状态。示例1:输入: [1,4], 2输出: 4原因: 在第 1 秒开始时,提莫开始对艾希进行攻击并使其立即中毒。中毒状...原创 2018-12-16 23:25:09 · 494 阅读 · 0 评论 -
删除链表的倒数第 N 个元素
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?这道题最简单的做法是先遍历一次链表,得到长度,然后再利用for循...原创 2018-12-10 21:18:13 · 169 阅读 · 0 评论 -
三数之和(LeetCode)
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]'''这道题因为...原创 2018-12-17 21:42:03 · 203 阅读 · 0 评论 -
最大自序和(LeetCode)
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。'''这道题是简单题。有很多种解法。第一个是暴力法。...原创 2019-01-04 09:34:00 · 249 阅读 · 0 评论 -
盛最多水的容器(LeetCode)
题目描述:给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容...原创 2018-12-30 19:05:49 · 158 阅读 · 0 评论 -
Pow(x, n)(LeetCode)
实现pow(x,n),即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例2:输入: 2.10000, 3输出: 9.26100示例3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 <x< 10...原创 2018-12-31 10:08:08 · 197 阅读 · 0 评论 -
整数转罗马数字(LeetCode)
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1...原创 2019-01-05 00:15:09 · 207 阅读 · 0 评论 -
搜索旋转排序数组(LeetCode)
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2...原创 2019-01-01 19:39:55 · 170 阅读 · 0 评论 -
只出现一次的数字(LeetCode)
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4'''这是一道简单题。我做记录的时候一般都是挑选中等题,但这道简单题触及到我...原创 2019-01-02 00:52:43 · 134 阅读 · 0 评论 -
不同路径(LeetCode)
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例 1:输入: m = 3, n = 2输出: 3解释:...原创 2019-01-06 21:52:54 · 242 阅读 · 0 评论 -
Hash表以及应用
哈希表(Hash table,也叫散列表), 是根据关键码值(Key value)而直接进行访问的数据结构。哈希表的原理非常简单,通过一个固定的算法将Key转为一个数字,然后将该数字对数组长度取余,将取余结果作为数组下标,然后将Value存储在该数字为下标的数组里。不过想要找到一个好的哈希表非常难。原因就是通过那个固定算法得出的数字有可能会相同。显然一个下标指向的数组空间里是没有办法存储两...原创 2019-01-26 12:06:20 · 865 阅读 · 0 评论 -
实战递归
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上原创 2019-01-31 18:49:18 · 159 阅读 · 0 评论