- 博客(47)
- 收藏
- 关注
原创 word2vec的pytorch实现
文章目录词向量简介PTB 数据集Skip-gram的pytorch实现 词向量简介 ont-hot向量表示单词简单,但是不能表现出词语词之间的相似度 word2vec词嵌入可以解决上面的问题。word2vec将词表示成一个定长的向量,然后通过在语料库中的预训练使得这些向量能够学习到词与词之间的相似关系和类比关系。 word2vec有两种基本假设,一种是基于CBOW,另一种是基于Skip-gram。...
2020-02-27 00:57:26
1034
原创 AlexNet、VGG11、NiN、GoogLeNet等网络的Pytorch实现
目录AlexNetAlexNet摘要AlexNet代码VGGVGG摘要VGG的优缺点代码NiNNiN摘要GoogLeNetGoogLeNet完整结构 AlexNet AlexNet摘要 由于受到计算机性能的影响,虽然LeNet在图像分类中取得了较好的成绩,但是并没有引起很多的关注。 知道2012年,Alex等人提出的AlexNet网络在ImageNet大赛上以远超第二名的成绩夺冠,卷积神经网络乃至...
2020-02-19 20:23:41
792
原创 Pytorch实现LeNet
文章目录Convolutional Neural NetworksLeNet 模型介绍LeNet 网络搭建运用lenet进行图像识别-fashion-mnist数据集 Convolutional Neural Networks 使用全连接层的局限性: 图像在同一列邻近的像素在这个向量中可能相距较远。它们构成的模式可能难以被模型识别。 对于大尺寸的输入图像,使用全连接层容易导致模型过大。 使用卷积...
2020-02-17 12:58:23
808
原创 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
776
原创 线性回归的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
322
原创 《机器学习实战》第14章——利用SVD简化数据完全解读
本章内容介绍 奇异值分解(Singular Value Decomposition,SVD)常用来简化数据、去除噪声。在这章先介绍SVD的一些应用,再从其算法来分析它为什么有效,然后建立一个基于协同过滤的系统。 奇异值分解的应用 在隐性语义索引中(Latent Semantic Indexing,LSI),我们将一个文档用一个矩阵(term-document)表示,在这个矩阵的基础上运用SVD对其...
2019-12-28 15:14:43
711
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
490
原创 《机器学习实战》第11章——利用K-均值聚类算法对未标注的数据分组完全解读
本章介绍 本章将介绍如何利用K-均值算法进行聚类。在进行聚类之后,分析如何通过后处理手段来提高聚类性能。探讨二分K-均值是如何克服局部最小值问题。最后将使用地理坐标在地图上进行聚类。 K-均值算法 在讲K-均值算法前,我们需要对无监督学习的概念有所了解。无监督学习的特点是训练样本点标记信息未知,目标是通过对无标记样本数据的学习,解释数据的内在性质与规律。聚类是无监督学习算法中的一大分支。聚类将数据...
2019-12-28 14:39:38
854
1
原创 爬虫(七)通过Selenium爬取网易云音乐评论
文正selenium相关介绍selenium环境配置解析网易云音乐评论使用selenium爬取网易云音乐评论Selenium的缺陷 selenium相关介绍 Selenium是一个用于Web应用程序测试的工具,它直接运行在浏览器中,就像真正的用户在操作一样。至于它有什么样的作用,慢慢来说。 如果我们去写web应用,我们该怎么封锁别人的爬虫呢。 我们常用的反爬手段有通过校检headers字段来反爬、...
2019-09-15 21:27:49
4221
6
原创 爬虫(六)查看Ajax,并爬取unsplash图片
https://images.unsplash.com/photo-1568280078491-6b7449ce3b46?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1099&q=80 https://images.unsplash.com/photo-15683026219...
2019-09-13 23:42:33
938
1
原创 爬虫(二)一个简单的爬虫程序与Robots协议
文章目录库的安装get请求、请求头与状态码BeautifulSoup爬取指定内容 库的安装 写程序之前,我们需要安装第三方库(采用的是Python语言) 这里需要安装的是requests库 操作流程:win + R - > 输入cmd -> Enter -> pip install requests,然后耐心等待(下面有图) 由于我已经安装好了requests库,就不再重新安...
2019-09-11 23:27:43
888
原创 爬虫(三)爬取豆瓣top250电影名称
链接在此:https://movie.douban.com/top250 观察到一页里只有25部电影,看一看页数,10页。那就刚刚好事250条数据。 翻到第二页看一看 发现URL变成了https://movie.douban.com/top250?start=25&filter= 继续翻页 URL变成了https://movie.douban.com/top250?start=50&a...
2019-09-11 02:32:23
1694
原创 爬虫(一)爬虫原理和网页构造
爬虫总结(一)爬虫原理和网页构造网络连接爬虫原理多页面爬虫流程跨页面爬虫流程网页构造(有网页基础的可不看) 爬虫原理和网页构造 网络连接 爬虫需要了解关于网络连接的知识不多,只需要知道最基本的连接原理即可 如下图所示: 在客户端点开一个连接就会向服务器发送出一个请求,服务器就会向客户端返回相应的文件。 比如上网买东西。你下单了,就是发送一个请求(请求里携带着你的地址系信息)给仓库,仓库就会发送相...
2019-09-11 02:07:02
1230
原创 Word Representation in Vector Space
Word Representation in Vector Space摘要模型构建Feedforward Neural Net Language Model (NNLM)Recurrent Neural Net Language Model (RNNLM)WordVecCBOWSkip-gram 摘要 当初的自然语言处理经常将单词看成原子,单词之间没有相似性,如:one-hot编码处理。这样做有一...
2019-08-09 20:22:05
528
原创 召回率、准确率、ROC曲线、AUC、PR曲线
评价指标混淆矩阵(confusion-matrix)召回率(recall rate)准确率(accuracy rate)ROC曲线AUC(Area Under ROC Curve)P-R曲线 混淆矩阵(confusion-matrix) 真阳性(True Positive,TP):样本的真实类别是正例,并且模型预测的结果也是正例 真阴性(True Negative,TN):样本的真实类别是负例,并...
2019-08-07 20:15:10
1455
原创 中文分词技术小结
中文分词技术总结规则分词正向最大匹配逆向最大匹配双向最大匹配统计分词语言模型HMM模型其他分词算法小结 规则分词 正向最大匹配 思想:假定分词词典中的最长词有i个汉字字符,则用被处理文档的当前字符串的前i个字作为匹配字段,查找字典。若字典存在这样的一个i字词,则匹配成功,将其切分出来。如果不存在,则匹配失败,将匹配字段最后一个字去掉,继续匹配。 算法描述如下: 1、从左到右取待切分汉语句的m个字符...
2019-07-08 01:35:02
531
原创 Word Representation in Vector Space
当初的自然语言处理经常将单词看成原子,单词之间没有相似性,如:one-hot编码处理。这样做有一定的好处,比如:简单、鲁棒而且在大量数据上训练的简单模型效果要比少量数据上训练的好。 随着最近几年机器学习技术的进步,有了在更大的数据集上训练更复杂模型的可能性;而且应该优于简单模型。可能最成功的概念是使用单词的分布式向量表示。例如,基于语言模型的神经网络就明显优于N-gram分布表示(distrib...
2019-06-30 19:50:03
251
原创 KNN算法原理与实现
KNN算法全称是:K-NearestNeighbor 顾名思义,KNN算法就是用离这个样本最近的K的个样本对这个样本进行预测 算法流程: 1. 设定参数K 2.计算样本与所有样本之间的距离并将这距离进行排序 3.取前K个样本 4. 回归:用这K个样本拟合一条直线(说法不是很准确,理解就好),然后将这个样本放进直线去预测 分类:计算K个样本的类别数量,类别数目最多的即为预测的类别 ...
2019-05-15 10:11:01
520
原创 算法设计与分析作业(一)实现几种不同情形的二分查找
实现几种不同情形的二分查找。 1). 求等于x的最小的index,不存在返回-1。 输入: 3 5 5 7 7 10 11 12 0 7 7 输出: 3 输入说明: 一组整形数组:3 5 5 7 7 10 11 12 查找的范围为:数组第0个元素至第7个元素 查找的元素为:7 2). 求等于x的最大的index,不存在返回-1...
2019-03-15 15:58:05
2876
1
原创 动态规划
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
164
原创 实战递归
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 说明: 尽管上
2019-01-31 18:49:18
221
原创 递归以及动态规划
程序调用自身的编程技巧称为递归。 它将一个规模较大的问题转化为计算一个相似的且规模较小的问题来求解。 递归能用很简洁的语法优雅地描述出一个问题的特征并且解决它。 但是也存在着不少问题 1、速度问题。函数的调用时需要时间的,反复的调用会使得算法的速度下降 2、重复计算。递归中非常容易出现重复计算一个值的问题。 3、爆栈。如果说一个问题的规模很大,那就无法避免得要将很多个结果压进栈中,超出...
2019-01-30 21:05:38
414
原创 二叉树的学习
二叉树的递归遍历非常简单 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
185
原创 队列堆排序以及滑动窗口最大值
队列与堆排序相比,队列是比较简单,容易理解的。 说到底,队列就是受限的线性表。要求先进先出。 主要有:顺序队列以及链队列。 顺序队列出队入队的时间复杂度都是O(1) 链队列设置一个尾指针,那出队入队的时间复杂度也是O(1),不然入队的时间复杂度要降为O(n) 具体就不去操作了,毕竟真的写过很多遍了啊啊啊。 今天的学习重点来了,堆排序。 第一次接触堆排序我就在想,这神马玩意啊。 ...
2019-01-28 21:22:53
338
原创 循环链表与快慢指针以及链表的转置
今天学习的内容之一是循环链表与快慢指针。 初始化: 将slow、fast 指向head结点 更新规则是:慢指针走一步,快指针走两步 slow = slow.next,fast = fast.next.next 由于链表里有环,则有以下几点结论 1、快慢指针必定在某个结点相遇(下文称为相遇结点) 推导: 试想一下,因为链表有环,是不存在结点指向None的情况,所以快慢指针会一直在环里...
2019-01-27 19:55:45
432
原创 Hash表以及应用
哈希表(Hash table,也叫散列表), 是根据关键码值(Key value)而直接进行访问的数据结构。 哈希表的原理非常简单,通过一个固定的算法将Key转为一个数字,然后将该数字对数组长度取余,将取余结果作为数组下标,然后将Value存储在该数字为下标的数组里。 不过想要找到一个好的哈希表非常难。原因就是通过那个固定算法得出的数字有可能会相同。显然一个下标指向的数组空间里是没有办法存储两...
2019-01-26 12:06:20
950
原创 不同路径(LeetCode)
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 例如,上图是一个7 x 3 的网格。有多少可能的路径? 说明:m 和 n 的值均不超过 100。 示例 1: 输入: m = 3, n = 2 输出: 3 解释: ...
2019-01-06 21:52:54
325
原创 整数转罗马数字(LeetCode)
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1...
2019-01-05 00:15:09
277
原创 最大自序和(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
335
原创 只出现一次的数字(LeetCode)
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 ''' 这是一道简单题。我做记录的时候一般都是挑选中等题,但这道简单题触及到我...
2019-01-02 00:52:43
204
原创 搜索旋转排序数组(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
237
原创 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
309
原创 盛最多水的容器(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
223
原创 Z 字形变换(LeetCode)
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。 请你实现这个将字符串进行指定行数变换的...
2018-12-27 11:03:38
371
原创 算法梳理Xgboost
XgboostXGBCART树算法原理损失函数分裂结点算法正则化对缺失值处理优缺点sklearn参数应用场景 XGB XGBoost是专注于梯度提升算法的机器学习函数库,此函数库因其优良的学习效果以及高效的训练速度而获得广泛的关注。 XGBoost 所应用的算法是梯度提升树(gradient boosting decision tree),既可以用于分类也可以用于回归问题中。 CART树 CART...
2018-12-24 19:18:08
263
原创 最长回文子串(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
293
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅