- 博客(135)
- 资源 (6)
- 收藏
- 关注
原创 自己的python包发布经验
主要参考:https://python-packaging.readthedocs.io/en/latest/minimal.html以下经验是建立在上述参考文件之上的。有几点经验:1, 在 https://pypi.python.org/pypi 注册一个账号, 我的是seefeel.(Server response (410): Project pre-
2017-09-05 17:41:17 2916 3
原创 [Leetcode]database 相关题目的总结
Combine Two Tableshttps://leetcode.com/problems/combine-two-tables/解题思路: 合并table Person 和Address,其中提示说不管Address里有没有personId,Person里的记录都要显示全部。这是典型的 left join 功能。select P.FirstName, P.LastNa
2015-08-23 00:53:30 3523
原创 [leetcode]Validate Binary Search Tree
解题思路:1,二叉搜索树有一个特点,就是 in-order traversal 是一个递增的序列;2,设置一个pre节点,记录前一个访问的node,采用中叙遍历,遍历到的节点跟pre比较val大小 public class Solution { private TreeNode pre; public boolean isValidBST(TreeNode root)
2015-08-18 11:54:15 615
原创 [leetcode]Copy List with Random Pointer
解题思路1:一个深度的 copy。1,如果只有next,那就好办了,一个挨着一个的copy就好2,这里有random,最理想的就是 random指哪儿,我们就知道那里对应的copy在哪儿。 这个对应,就是map,立刻想到的就是hashmap /** * Definition for singly-linked list with a random pointer. * clas
2015-08-17 20:40:29 600
原创 [leetcode]Merge k Sorted Lists
解题思路1:1,用最小堆,size为lists的长度,Comparator定义为listNode.val2,初始化把k个list的非空head都放进堆里3,创建dummyhead用来引导这一切空间复杂度 O( k ) 假设有 k个链表,每个链表有n个元素,最小堆调整需要logk,要遍历所有nk个元素。所以时间复杂度为 O ( nk log(k) ) /** *
2015-08-17 19:26:13 479
原创 [推荐系统]mahout支持的对推荐引擎的评价方法
先说3种简单的评测方式1,平均绝对误差,Average Absolute difference,越小越好2,RMS,Root-mean-square,对偏离较大的值惩罚较大。也是越小越好3,准确率和召回率在有rating的评测里,要给 prcision 和 recall 设置一个 threashold 用于区分good recommendation和bad
2015-08-17 12:42:28 898
原创 [机器学习]overfitting 和regularization
overfitting,见下图。就是说,你的model太好了,好到只对training data有用,而test data可能并不待见。原因就是如图所说,太多feature,可能这些feature是冗余的呢。怎么解决这个问题i?首先想到的可能是 减少feature!但这个得人工来整。其次,换一个角度看问题(世界可能大不一样)。如果像上图那个overf
2015-08-17 01:05:58 1816
原创 [机器学习]逻辑回归,Logistic regression |分类,Classification
本文是 Andrew Ng 《机器学习》公开课的学习笔记现实中的例子有 ,垃圾邮件/非垃圾邮件, 肿瘤是良性还是恶性等等。怎么分类?我从高中数学积累了一个经验。假设直线方程是 f(x) = 0, 那么直线左边的点带入直线方程左边,得到的结果 0。所以,如果我们能找到这样一条直线,使它左边的点 属于 A类,右边的点 属于 B类,那么再有一个新的点进来,我们
2015-08-17 00:01:49 1244
原创 [mahout in action]mahout推荐引擎如何处理无rating数据
并不是所有的 user和item的关系都可以用评分来衡量的。例如 新闻应用,我们大多数情况下只有 user的浏览记录。电商网站,记录了user看过哪个商品。这些都代表着user的兴趣。或许对于电影评分,我们可以理解为,用户对这一类电影感兴趣(不感兴趣的连看都不会看,更不用说评分了),但是对个别电影的观后感不同导致评分不同。但如果还有该类型的电影,用户依然会去看(看完可能 评5分,也可能
2015-08-16 22:54:26 728
原创 [mahout in action]mahout中用于推荐引擎的数据结构(二)
DataModel是在Mahout中封装推荐引擎输入数据的抽象接口。实现类包括GenericDataModel,FileDataModelmahout中读取数据的方式有很多种,可以分为 手动录入,从file读取,从数据库读取这里参考 《mahout in action》简单说一下手动录入方式,以及从file读取的方式。从数据库读取可参考API文档手动:FastByI
2015-08-15 19:17:02 761
原创 [mahout in action]mahout中用于推荐引擎的数据结构(一)
本文基本上是对《mahout in action》相关内容的读书笔记推荐系统的好坏 大部分取决于 数据的质量和数量。正所谓“garbage in, garbage out”1,user 对 item的 preference数据Preference,一个接口,代表着 1个user(long) 对1个item (long) 的preference value(int),实现
2015-08-15 17:14:35 1025
原创 [机器学习]协同过滤,LFM(隐语义)算法
本文内容属于 Andrew Ng的《机器学习》公开课笔记,大部分截图均来自Andrew Ng的课件对于本节所讲的算法,Andrew Ng称为 Collaborative filtering(协同过滤),或者low rank matrix factorization(xx矩阵分解),向亮博士《推荐系统实践》那本书里叫做 LFM(隐语义模型)上一篇博客说道 基于内容的推荐
2015-08-15 01:53:12 4708
原创 [机器学习]content-based recommendation
本文内容属于 Andrew Ng的《机器学习》公开课笔记,大部分截图均来自Andrew Ng的课件所谓基于内容的推荐,就是说我们的item具备某些属性attrs,然后我们可以通过某个user的历史评分记录,计算出该user对各种 属性 attr的喜好程度,从而可以给user推荐具备他喜欢的attr的item比如说,每一部电影,都由 浪漫和动作 两种属性,如下图我
2015-08-15 01:20:03 2577
原创 [机器学习]k-means算法,非监督机器学习算法
本文内容算是 Andrew Ng 《机器学习》公开课的笔记监督机器学习算法中的分类算法,都是告诉你 label (分类标签) ,然后让你找条直线(以2类为例)把这些 样本分开,如下图:本文图片截取自Andrew Ng《机器学习》公开课非监督机器学习算法,就是给你一堆点,你给 爱分几类分几类,反正把在一起的都找出来本文图片截取自Andrew N
2015-08-14 00:17:30 1708
原创 [推荐系统]mahout中实现的几种相似度计算方法
1, pearson correlation similarity有以下缺点:1,如果2个人有200个common item,尽管ratings并不总是一样,但她们的相似度 可能没2个只有2 commen item的人的相似度好。看下图User1 和User5的相似度还不及User1和User4的,这好像不太科学2,如果2 users只有一个common item,
2015-08-13 23:38:24 2869 2
原创 [推荐算法]Pearson Correlation Similarity 的python实现
皮尔逊相似度是推荐算法中常见的 计算相似度的方法,其公式如下:从公式可以看出 该算法有几个缺点:1,如果用户A对所有item的评分都一样,那么将无法计算别人跟A的相似度(分母为0);所以该算法不适用于 like or dislike类型的推荐2,如果用户A只对1个item进行了评分,那么也无法计算别人跟A的相似度(分母为0);所以对于数据量较小,或者矩阵非常之稀疏的数据都不太好
2015-08-13 23:19:05 4633
原创 [LeetCode]Longest Substring Without Repeating Characters
思路:1,构建一个 hash表,把char map 到index,这样就可以知道 遍历的char 是否存在于之前的substring中了。2,因为要找最长的字串,用maxLeft标记字串最左边,maxLen标记当前找到的最长字串长度。3,如果遍历到一个char已经存在,先计算 len = i - maxLeft, 跟maxLen比较看是否需要更新,同时更新maxLeft为char索引
2015-08-13 00:35:44 499
原创 [机器学习]线性回归 被Andrew Ng讲的如此简单易懂
线性回归是什么?所谓线性回归(以单变量为例),说白了就是给你一堆点,你要从这一堆点中找出一条直线。如下图本文截图均出自 Andrew Ng的机器学习公开课>找到这条直线以后可以做什么? 我们假设我们找到了 代表这条直线的 a 和b,那么直线表达式为 y = a + b*x, 那么当 新来一个 x,我们就可以知道 y了。Andrew Ng第一节课就说过,什么是机
2015-08-12 21:11:01 3948
原创 [LeetCode]Valid Number
解题思路:首先要明确什么样的是 valid number,题目中给出了如下例子"0" => true" 0.1 " => true"abc" => false"1 a" => false"2e10" => true补充:“2e” => false“2e+” => false“2e+6” => true“1 1” => false“ + “ =
2015-08-12 17:58:02 580
原创 [推荐算法]Slope One算法
和其他类似算法相比,最大特点是算法简单,易于实现,执行效率高基本概念:现在 用户 X,Y,Z都对itemA进行评分,并且X,Y也对itemB进行了评分,那么Z对itemB的评分应该是多少呢? 根据 Slope One算法,?= 4 - [( 5 - 10 ) + ( 3 - 6 )] / 2 = 8解释一下,X对B的评分比A多5, Y对B的评分比A多3,那么平均
2015-08-12 11:48:20 737
转载 java Object类占用内存大小计算
在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任何属性的对象的大小。看下面语句:Object ob = new Object(); 这样在程序中完成了一个Java对象的生命,但是它所占的空间为:4byte+8byte。4byte是上面部分所说的Java栈中保存引用的所需要的空间。而那8byte则是Java堆中对象的信息。因为所有的Java非基本
2015-08-11 23:31:25 2508
原创 [LeetCode]Valid Palindrome
第二遍,解题思路:1,设定两个指针 i 和 j,分别指向s的开头和结尾,然后i 和 j相向而行,2,其间跳过非字符数字字符,3,比较大小时做一个大小写转换 public class Solution { public boolean isPalindrome(String s) { if (s.length() == 0) return true; // o
2015-08-11 08:37:31 359
原创 [LeetCode]Two Sum
解题思路:1,暴力法,O(n^2) time O(1) space2,可以利用 hash表,把 数组中的值 映射到 index, 每遍历到一个数x,就看一下hash表中是否存在 target-x,如果存在, 就return了;不存在,就把x加入到 hash表中 public class Solution { public int[] twoSum(int[]
2015-08-11 08:18:27 346
原创 [LeetCode]Longest Palindromic Substring
解题思路:遍历string,从每一个char往两边搜索(index:left,right),记录最大回文的 left 和 length有一点优化的地方,就是如果连续几个字符相同,那么right直接指向最右边那个字符。如果操作的优点是,不用区分 aba 和 abba 中的b带来的操作// C++实现:class Solution {public: stri
2015-08-10 18:32:02 349
原创 [LeetCode]Valid Anagram
解题思路:思路1,如果是anagram,那么给s ,t字符串排序之后,她们两个应该完全一样;思路2,利用 hashmap,如果两个字符串的内容有不一样的地方,一定可以在map的value中体现 //C++class Solution {public: bool isAnagram(string s, string t) { if (s.length() !=
2015-08-03 10:08:55 545
原创 [python]解析python打印出来的数组
今天遇到个问题,要把python数组打印到文件的字符串,从文件里读进来,存在数组里。举个例子,我们把python数组在程序中用 print arr 之后,输出的是 [‘123’, ‘456’, ‘789']当我们从文件里读取的时候,都到的是个字符串,要把这个字符串访问 python数组里,可以通过下面的方法 import stringitems = line.tran
2015-08-02 15:53:41 4655
原创 [日志分析]在nginx日志中,提取有效的request uri
最近在做公司的nginx log分析,其中一个需求是提取这个月每天被访问Top10的页面,及其访问量。做这个需求,首先要清洗出有效的页面访问。我采用排除法,去掉 .js .css之类的访问。但最初,我并不能全面的了解要去掉带有哪些后缀的request。经过清洗 -> 抽样 -> 清洗 -> 抽样 -> 清洗,最终需要过滤掉含有下列后缀的uri.js .css . gif
2015-08-01 10:24:54 2813
原创 [LeetCode]Word Ladder
解题思路:双向 宽度搜索1,BFS的基本思想是为了找到最短路径,这里为了提高搜索效率,采用双向搜索。2,是从beginWord方向寻找next level,还是从endWord方向寻找next level,取决于哪个方向要找寻的点少数据结构:1,unordered_set : unusedWords, wordDict中所有未被visit的words2,unordered_
2015-07-31 13:46:44 576
原创 [LeetCode]Kth Largest Element in an Array
解题思路:1,借用快排分治的思想;2,递归函数中,每次随机选取一个数作为标的mark;3,把 比mark大的存入一个数组larger,比mark小的存入另外一个数组smaller4,结束条件就是,所找的第k大的数, k == larger.size() + 1 // C++ 实现class Solution {public: int findKthL
2015-07-29 23:24:59 392
原创 [LeetCode]Path Sum II
太简单,不解释 # Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: # @para
2015-07-28 20:31:42 318
原创 [MapReduce]students on forums that communicate a lot between themselves
源自Udacity,Intro to hadoop这门课Final ProjectWe might want to help students form study groups. But first we want to see if there are already students on forums that communicate a lot between
2015-07-28 18:01:16 404
原创 [MapReduce] correlation between the length of a post and the length of answers
源自Udacity,Intro to hadoop这门课Final Project题目说想知道 帖子的长度跟回答的长度有没有相关性思路:Mapper 过滤出question和answer,输出id,type(question, answer), lengthReducer 统计每一个id对应的 question的len 以及 answer的average len
2015-07-28 17:55:21 487
原创 [MapReduce]Top 10 标签
源自Udacity,Intro to hadoop这门课Final Project题目要求,从给定的论坛帖子数据中,找出被使用最多的10个tag。tag存在于question中(因为comment和answer也存在于数据表中,所有需要在mapper中过滤)思路:mapper 从是question的记录中,提取tags,并输出reducer 给每个tags计数,保存
2015-07-28 17:47:50 909
原创 [MapReduce]找出每个用户最喜欢po贴的时间(以小时为单位)
源自Udacity,Intro to hadoop这门课Final Project题目要求,从论坛帖子的结构化数据中,找出每个用户po贴最多的时间。比如,用户A在每天的8点,po最多的帖子,数量标记为x那么reducer的输出就是 A x思路:Mapper需要输出 author_id;Reducer则对每个用户做一个{hour : count}的统计
2015-07-28 17:44:51 613
原创 [LeetCode]Add Two Numbers
解题思路:1,创建一个preHead,这样方便处理第一次运算;2,加一个carry用于保存 进位数;3,每一位的运算,都包括 l1.val + l2.val + carry4,每一次运算结果,都通过 除法和求余运算,得到 carry和当前位的数字# Definition for singly-linked list.# class ListNode:#
2015-07-28 09:55:05 317
原创 [LeetCode]Number of Islands
解题思路:图的连通性,一次遍历并不能遍历所有的island,要在深度搜索外加一个for循环,并做好被explored的点的标记class Solution {public: int numIslands(vector>& grid) { if(grid.size() == 0 || grid[0].size() == 0) return 0;
2015-07-27 21:44:00 406
原创 [MapReducer]求平均数
这是Udacity的课程 intro to hadoop and mapReduce里面Lesson4的练习只说一点,求平均不能在combiner中进行算法依然是计数,记录总和,最后输出 平均值#Mapper#!/usr/bin/pythonimport sysfrom datetime import datetimefor line in sys.stdin: data
2015-07-27 19:03:41 661
原创 [MapReduce]倒排索引任务
这是Udacity的课程 intro to hadoop and mapReduce里面Lesson4的练习其实这个任务与 word count类似,只不过这里Reducer输出索引,而word count的输出是 计数#mapperimport sysimport csvimport stringdef mapper(): reader = csv.reader
2015-07-27 18:59:34 977
原创 [MapReduce]Top N 任务的mapper
这是Udacity的课程 intro to hadoop and mapReduce里面Lesson4的练习求总体的Top N。首先在Mapper中求出局部的Top N,求Top N不能像word count那样来一句print一句,要把所有的line都读完,计数,排序,输入topN然后再Reducer中求出全局的 Top N。以下是Mapper 代码#!/usr/bin/py
2015-07-27 18:55:27 1264
原创 [MapReduce]Filter Pattern
这是Udacity的课程 intro to hadoop and mapReduce里面Lesson4的练习该练习完成了从大量的论坛post中,过滤出只有一句话的post。以下是题目具体描述以及python代码#!/usr/bin/pythonimport sysimport csv# To run this code on the actual data, please do
2015-07-27 18:49:49 878
文件批量重命名/python2.7.3/
2014-08-08
手把手教你在VS2010/2012/2013中配置opencv2,从第12页开始
2014-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人