- 博客(53)
- 收藏
- 关注
原创 数据结构与算法之美(二) 数组
一、定义数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。1、什么是线性表:数据排成一条线,每个线性表上的数据最多只有前后两个方向。数组、链表、队列、栈均为线性表结构。与之对应的非线性表结构包括:二叉树、堆、图等。2、连续的内存空间+相同类型的数据,保证了数组具有“随机访问”的特性。二、如何实现随机访问?以一个长度为10的int型的数组int[] a = new int[10]为例,计算机给数组a分配了一块连续的内存空间1000~1039,其中
2022-06-12 17:23:25 137
原创 数据结构与算法之美(一) 概述&复杂度
一、定义数据结构是一组数据的存储结构,常用的10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树。算法是操作数据的一组方法,常用的10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。数据结构和算法解决的是如何更省、更快地存储和处理数据的问题,也就是空间复杂度和时间复杂度都尽可能小。......
2022-03-09 22:54:26 247
原创 推荐系统精排模型中的ID特征
一、ID特征包括什么?单ID特征包括:用户ID和物品ID。ID序列特征主要指的是:用户有过行为的物品ID List。比如:用户最近点击过的物品ID集合。二、物品ID特征怎么加进推荐系统?2.1 StrHash——将物品ID映射到bucket大小的int空间hash = ((hash << 5) + hash) + c;其中,hash的初始值为5381,c代表输入值。djb2:一个产生简单的随机分布的哈希函数 - 范加索尔拉 - 博客园2.2 通过Hash值查
2021-11-18 11:46:23 1823
原创 LeetCode5. 深度优先搜索,回溯,广度优先搜索
深度优先搜索(Depth-first Search, DFS),广度优先搜索(breadth-first Search, BFS)一、简介和对比思考1、怎么理解DFS和BFS的区别?DFS: 是按深度遍历的,在搜索到一个节点时,立即对该节点遍历其左右子节点。因此需要用先入后出的栈来实现。也可以通过与栈等价的递归来实现。BFS:是按层遍历的,因此需要用先入先出的队列来实现。由于BFS的按层遍历,它常被用来处理最短路径问题。DFS:理解如何通过栈或者递归,实现二叉树中和为某固定值的路径的搜索
2021-09-05 18:05:29 172
原创 LeetCode4. 排序算法
1、快速排序:主要思路:参考https://www.cnblogs.com/skywang12345/p/3596746.html选择一个分界值,一般初始可以是数组的第一个元素。第一次排序:使得大于等于该元素的值都在右边,小于该元素的值都在左边。相当于将数组分成两个独立的子数组,再递归对两个子数组进行排序。void quick_sort(vector<int> &nums, int l, int r) { if (l + 1) >= r return; int
2021-08-28 19:27:54 215
原创 LeetCode 3. 二分查找
1. 算法解释二分查找,也称二分法或折半查找。通过将待查找区间分为两部分并都取一部分继续查找,将查找的复杂度大大减少。二分查找适用于对有序或部分有序的数组进行查找。2. LeetCode 69 求X的平方根https://leetcode-cn.com/problems/sqrtx/submissions/题目:计算并返回x的平方根,其中x是非负整数。返回结果向下取整。思路:如果x>0, x的平方根一定是在[1,x]区间内的,而这个区间是增序的,所以可以对它进行二分查找。写的...
2021-08-22 19:49:23 65
原创 LeedCode 2. 玩转双指针
1.算法解释:双指针主要用于遍历数组,两个指针指向不同的元素。如果两个指针指向同一个数组,但是遍历方向相反,则可以用来搜索。通常这个数组时排好序的。2. 指针函数与函数指针:指针函数是指返回类型为指针的函数,函数指针是指向函数的指针。可详细通过如下示例来理解。//addition是指针函数,一个返回类型为指针的函数int* additition(int a, int b) { int* sum = a + b; return sum;}int subtractio.
2021-08-22 16:55:37 69
原创 LeetCode 1. 贪心算法
1、算法解释保证每次操作都是局部最优,从而使最后得到的结果是全局最优的。2、分配问题leetcode 455: Assign Cookies一堆孩子和一堆饼干,最多有多少孩子可以吃饱?思路:将孩子的饥饿度和饼干大小,都按照从小到大排序,给饥饿度最小的孩子喂刚刚好的饼干,这样最后喂饱的孩子数量就是最多的。int findContentChildren(vector<int>& children, vector<int>& cookies) {.
2021-08-16 13:22:03 111
原创 Tips:tensorflow跑GPU
内存用多少取多少,防止代码将GPU上的所有内存占满:config = tf.ConfigProto()config.gpu_options.allow_growth = True
2018-06-03 22:43:00 361 1
原创 focal loss
def focal_loss(prediction, target, weights=None, alpha=0.22, gamma=2): """Compute focal loss for predictions. Multi-labels Focal loss formula: FL = -alpha ...
2018-05-31 16:17:28 1190
原创 【TensorFlow】从训练好的模型中获取参数值
checkpoint_file = tf.train.latest_checkpoint(FLAGS.checkpoint_dir)graph = tf.Graph()with graph.as_default(): session_conf = tf.ConfigProto( allow_soft_placement=FLAGS.allow_soft_placement, ...
2018-05-31 15:29:21 11617
原创 python counter
counter.most_common(n) 返回数目最多的前n个元素和对应个数a.substract(b) 返回一个Counter,Counter a减去Counter b,多的元素个数为正值,少的元素个数为负值counter.elements() 返回一个element列表,其中每个元素有多少个就重复多少次counter.values() 返回个数列表,通常配合sum(counter.valu...
2018-05-28 18:33:48 1241
原创 linux下更改权限
#chmod –R 777 * :参数-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更) *:通配符,指当前目录下的所有文件及目录将当前目录下的所有文件及子目录的文件拥有者权限设置为读、写、可执行,文件拥有者所在的用户组成员具备读、写、可执行权限,其它用户也具备读、写、可执行权限...
2018-05-28 18:28:16 725
转载 字典与hash表
为什么使用dictionary进行查找时,时间复杂度为o(1)?---》 存储位置=hash(键)在查找时,首先对键进行hash运算,把求得的值当做“键-值对”的存储位置,在结构中按照此位置取“键-值对”进行比较,若键相等,则表示搜索成功。在存储“键-值对”的时候,依照相同的hash函数计算存储位置,并按此位置存放,这种方法就叫做哈希方法,也叫做散列方法。在哈希方法中使用的转换函数hash被称作哈...
2018-05-25 09:31:51 3196
原创 TensorFlow常用记录
变量定义:1、 tf.get_variable(initializer = tf.constant_initializer(value), shape=[10], name="w")2、 tf.Variable(tf.variable(tf.random_normal([2,3])), name="w", dtype=float32)------------------------------...
2018-05-22 20:08:50 177
原创 【tensorflow】 tensor的默认name & operation 默认name
import tensorflow as tfwith tf.name_scope("name1"): with tf.variable_scope("var1"): w = tf.get_variable("q",shape=[2]) scores_sigmoid = tf.nn.sigmoid(w)g = tf.get_default_graph()...
2018-05-09 10:20:45 1710
转载 Python 中的几种矩阵乘法 np.dot, np.multiply, *
Python中的几种矩阵乘法1. 同线性代数中矩阵乘法的定义: np.dot()np.dot(A, B):对于二维矩阵,计算真正意义上的矩阵乘积,同线性代数中矩阵乘法的定义。对于一维矩阵,计算两者的内积。见如下Python代码:import numpy as np# 2-D array: 2 x 3two_dim_matrix_one = np.array([[1, 2, 3], [4, 5...
2018-05-07 15:41:39 348
原创 tf笔记——placeholder
tf.placeholder(dtype, shape=None, name=None)placeholder,占位符,在tensorflow中类似于函数参数,运行时必须传入值。dtype:数据类型。常用的是tf.float32,tf.float64等数值类型。shape:数据形状。默认是None,就是一维值,也可以是多维。比如[2,3]; [None, 3]表示列是3,行不定; [None,]就...
2018-04-08 19:39:49 392
原创 word2vec
一 般来说,CBOW模型适用于小规模的 数据 集合上, 能够 对分布式信 息进行平滑处理,而Skip-gram模型比较适用于大 规模 的数据集上
2018-04-08 18:10:00 181
原创 jupyter安装记录
系统环境:centos7,python2.7.51、升级pip,使用pip安装:python -m pip install --upgrade pippython -m pip install jupyter2、中间在安装Tornado包时报错,提示python版本过低因为自动安装时 会给你安成Tornado5.0版本 但是其实你只需要大于Tornado4.0就好了所以最后考虑单独安装好Torn...
2018-03-31 15:13:56 266
转载 网站点击率等相关名词介绍
Impression的意思是“显示”,很简单,一个广告被显示了多少次,它就计数多少。Click是指互联网用户点击这个广告的次数。什么是CTR呢?我们把这个广告的实际被点击(Click)的数量除以它的Impression的数量,就是Click Through Rate,汉语名字是点击通过率,或简称点击率 (CTR)bounce_count:Bounce是指,你在下载完B.htm进入B网站后,却没有用...
2018-03-05 14:27:31 808
原创 Hive使用总结
1、USE qiso (其中USE表示切换到某一个数据库,qiso为数据库名称)2、INSERT OVERWRITE DIRECTORY '$HDFS_INTENT_QUERY_PATH' (数据导出到hadoop的指定路径)3、
2018-03-03 16:02:46 179
原创 liblinear相关学习
liblinear是一个适用于大规模数据集的线性分类器,可处理多分类问题。 建议的训练步骤(来源于libSVM,感觉对这个也有帮助,所以也标记在这):1)将我们的训练数据和测试数据转换为该SVM软件包支持的格式;2)对数据进行简单的尺度化scale;3)先考虑用RBF核;4)使用交叉检验方法去寻找最优的参数C和γ;5)使用找到的最好的参数C和γ来
2018-01-03 17:18:08 3775
原创 linux学习
删除一个文件: rm -f 文件名删除一个文件夹下的所有文件: rm -rf 文件夹 (其中r代表向下递归,f代表强行删除没有提示)
2018-01-02 18:37:25 182
原创 install liblinear on python (centos7)
1、git clone https://github.com/cjlin1/liblinear.git (默认下载master版本)2、cd liblinear3、make4、cd python5、make6、cp *.py /usr/lib/python2.7/site-packages/7、cd ..8、cp liblinear.so.3 /usr/lib/pyt
2018-01-01 21:18:19 956
转载 最小二乘法与极大似然估计
最小二乘法:最小二乘的思想就是要使得观测点和估计点的距离的平方和达到最小。比如下图,我们有三个样本点,如何划出他的线性回归直线呢?那我们就可以找到一条直线,这条直线到三个样本点的距离的平方和是最小的。这就是最小二乘法。公式如下。极大似然估计:对于极大似然法,当从模型总体随机抽取n组样本观测值后,最合理的参数估计量应该使得从模型中抽取该n组样本观测值的概率最大。在
2017-12-17 15:10:53 1151
原创 关于维特比算法的一些笔记
维特比算法是在HMM和CRF常用的预测算法,主要思想是用动态规划求解概率最大路径(即最优路径,这个我们可以想象成在已知观测句子x时,求概率最大的对应的标记序列y)直观的理解可以参考维基百科上的动图:https://en.wikipedia.org/wiki/File:Viterbi_animated_demo.gif
2017-12-14 17:23:29 308
转载 快速排序
转自http://developer.51cto.com/art/201403/430986.htm快速排序有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来
2017-12-13 12:10:51 203
转载 C++枚举类型详解
转载来源:http://www.cnblogs.com/shrimp-can/p/5171110.html 一、枚举类型的定义enum 类型名 {枚举值表};类型名是变量名,指定枚举类型的名称。枚举值表也叫枚举元素列表,列出定义的枚举类型的所有可用值,各个值之间用“,”分开。例:enum Suit { Diamonds, Hearts, Club
2017-11-24 14:27:36 194
转载 tf.nn.rnn_cell.DroupoutWrapper函数的用法
tf.nn.rnn_cell.DrououtWrapper(cell, input_keep_prob=1.0, output_keep_prob=1.0)主要的参数就是三个第一个就是输入的循环神经网络的cell,可以设定为BasicLSTMCell等等。第二个参数就是输入数据使用dropout,后面的概率,如果是一,就不会执行dropout。第三个参数是输出数据使
2017-11-22 16:52:52 878
原创 leetcode486动态规划&playerAB从数组两端挑数字,求最大player
题目大意:给一个整型数组nums,两个人依次从数组中的头或者尾拿一个数,判断是否player1拿到的总数大于或者等于player2~如果是就返回true,否则返回false~在动态规划问题中,需要考虑的是,怎么把一个问题分解成递归的子问题,然后找到这个递归表达式这道题的关键思路在于:1、我们不需要去考虑玩家A拿到的数字总和究竟是多少,只要他大于玩家二即可。2、这个问题应
2017-11-21 12:06:01 1992
转载 数据结构——四种基本的数据存储结【顺序存储】【链接存储】【索引存储】【哈希存储】
转自:http://www.cnblogs.com/fengty90/p/3768826.html存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储。顺序结构和链接结构适用在内存结构中。索引结构和散列结构适用在外存与内存交互结构。顺序存储:在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素,称作线性表的顺序存储结构。
2017-11-03 22:11:48 2511
转载 数据结构——前缀树 后缀树 后缀数组
前缀树:http://www.cnblogs.com/luosongchao/p/3239521.html后缀树:http://www.cnblogs.com/gaochundong/p/suffix_tree.html#undefined后缀数组:https://zhuanlan.zhihu.com/p/21283102
2017-11-03 17:55:35 418
转载 数据结构笔记-————归并排序
转自:http://www.cnblogs.com/chengxiao/p/6194356.html归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。下图是归并排序的一个总
2017-11-03 09:57:06 221
转载 数据结构笔记————堆排序
为什么堆排序构建堆的时间复杂度是N,而重调堆的时间复杂度是logN?建堆:假如有N个节点,那么高度为H=logN,最后一层每个父节点最多只需要下调1次,倒数第二层最多只需要下调2次,顶点最多需要下调H次,而最后一层父节点共有2^(H-1)个,倒数第二层公有2^(H-2),顶点只有1(2^0)个,所以总共的时间复杂度为s = 1 * 2^(H-1) + 2 * 2^(H-2) + ...
2017-11-02 20:16:31 246
原创 深度【文本分类】【关系抽取】模型中,如何读取并处理输出的训练文件(TXT格式)
1、一般在此类模型中,需要原始文件四个:train.txt 一般格式为(分类类型 句子)或(关系类型 头实体 尾实体 句子)test.txt 格式同上relation2id.txt (关系类型 关系id)vec.txt (word, vec1,...,vec50)假设Embedding的维度为50注意:要保证这些txt文件都是utf-8编码的2、先处理vec.
2017-10-31 12:14:13 1131
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人