C++程序设计陷阱读书笔记(一) 差不多有三年没系统地温习C++程序设计了,但面试官问起这方面的知识时,我有种恍然隔世的感觉。年龄越大越难静下心来读完一本专业书,越学心越浮躁。将所看所思记录下来能稍微提高一下学习效率。下面是我读了这本书之后,联系平常的日常工作所获得的一些感悟。1、注释很重要,注释不是越多越好,如果代码本身就具有很好的可读性,那就不用画蛇添足了。我曾经接手过两个软件。一个软件A几乎没有任何注释,很多人都动过里面
研究生和本科有什么不同? 本科学了4年计算机,研究生又学了2年计算机,感觉两个阶段的生活学习还是挺不一样的。一、在同学间的交流方面,大学生比研究生交流更频繁,交友更广泛。 初中高中时,大家座位固定,每天面对的都是熟悉得不能再熟悉的面孔,“同桌的你”在各大初中高中上演着,已不足为奇。大学时,教室座位随便坐
网易游戏2016校园招聘数据挖掘研究员在线笔试题和答案 刚做完网易在线笔试题,感触最深的地方是,虽然题目形式和ACM题目相似,但是内容更偏向于实际应用。总共有四个题目,第一个题目属于字符串匹配类型,难度较低,第二个题目是模拟SQL语句的输出,第三个题目是KNN算法,第四个题目是贝叶斯算法。题目偏基础,算法思想很容易想到,但如果平常从来没写过这类算法,再加上代码能力不是很强的话,写起来还是有点吃力的。下面是第一题,第三题,第四题的答案。题目1
半监督学习漫谈 半监督学习漫谈 机器学习主要分三种形式,监督学习、非监督学习、半监督学习。最常见的是监督学习中的分类问题。监督学习的训练样本都含有“label”,非监督学习的训练样本中都不含“label”,半监督学习介于监督学习和非监督学习之间。在半监督学习领域,半监督分类问题是最受欢迎的,比如蛋白质搜索引擎中的后处理过程就常常采用半监督学习框架进行过滤。 在监督学习中,因为训练集
你可能不知道的一些机器学习事儿 你可能不知道的一些机器学习事儿 最近零零碎碎地看了很多机器学习方法的东西,增长了不少新知识。有很多小技巧虽然不会出现在教科书中,但它们真的很实用。(1)随机森林模型不适合用稀疏特征。(2)测试集必须使用与训练集相同的方法进行预处理。(3)L1正则(特征选择)最小样本数目m与特征n呈log关系,m = O(log n) ; L2正则(旋转不变)最小样本
2015年机器学习/数据挖掘面试总结 2015年机器学习/数据挖掘面试总结 明年硕士毕业,今年开始找工作。在北方呆的太久,想回湿润的南方。 第一站(3月份),阿里数据挖掘实习生面试。个人觉得,阿里的面试是最人性化的,几乎不需要提前准备什么。不需要刷题,不需要死记硬背一些概念。他们看重的是你的项目经历和解决实际问题的能力。每一场面试都不难,但是面试的次数是我所知道的公司中最多的。面试的题目有:1)自我
机器学习漫谈 机器学习漫谈 数据挖掘/机器学习项目一般包括四个关键部分,分别是,数据分析,特征工程,建立模型,验证。1 数据分析 从广义上讲,数据分析包括数据收集,数据处理,数据清洗,探究性数据分析,建模和算法设计,数据可视化等等[1]。从狭义上讲,数据分析指的是探究性数据分析(EDA)。 所谓探索性数据分析(ExploratoryD
Two big challenges in machine learning 红色是我翻译的部分,绿色是我加的注释。 Two big challenges in machine learning机器学习的两大挑战LÉON BOTTOUFACEBOOK AI RESEARCH ICML 2015 - LILLE
Delete Node in a Linked List Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with value
排列算法 之前一直没有正儿八经写过排列算法,顶多就是把经过一些化妆后的排列算法作为一个子算法混在大算法里面,今天看书时突然发现排列算法的影子无处不在,TSP问题就是从众多排列中选出最佳排列的问题。下面是利用递归思想的排列算法代码,其中的visited数组有一个俗称叫“禁忌表”,另外调用递归函数之后一定不要忘了恢复“原貌”喔!
第8章 基于重新排序的排名方法 阅读 这一章的方法和前7章的方法大不一样,前7章都会先计算评分向量,再根据评分向量得到排名向量,而第8章直接计算排名向量。这章包含排名差距和评分差距两部分内容,两者的差别在于差距矩阵中的元素是用名次之差,还是分数之差。因为两种方法的原理极其相似,所以掌握其中的一种方法后就能轻松掌握另一种方法。 排名差距法可以抽象成求解最优化问题,通常是求解二次整数规划,这个问题非常有挑战性,计算量也比较
第7章 攻防评分法(HITS的孩子) 实例和程序 OD(攻防)评分法是HITS(超链接诱导主题搜索)算法的一个非线性情形下的类似算法。OD法顾名思义,就是有两个评分向量,一个评分向量能反映一支队伍的进攻能力,称为进攻向量,另一个评分向量能反映一支队伍的防守能力,称为防守向量。这两个向量相互依赖,与HITS评分算法中的枢纽评分和权威评分非常相似。 为了方便理解,举一个5只队伍比赛的简单例子。 设队伍数目
《谁排第一?关于评价和排序的科学》中文版的纠错 最近,我读了一本好书——《谁排第一?关于评价和排序的科学》。这本书的作者是Amy N. Langville和Carl D.Meyer,译者是郭思羽。这本书的姊妹篇是《网页排名PR值及其他——搜索引擎排序的科学》。《谁排第一?关于评价和排序的科学》的内容挺好,但书中有一些很明显的错误,我不清楚是原书的bug,还是翻译时弄错了。我发现的错误如下:1、第12页,公式中矩阵大P和向量小p写混淆了。
第6章 马尔可夫法(PageRank的孩子) 实例和程序 马尔可夫法的主要思想是:两支队伍之间的每次较量,都是弱队给强队投票的机会。举个例子如下: 设投票矩阵V中第 i 行,第 j 列的元素是vij,vij表示队伍 i 输给了队伍 j 。 对V中的各行进行归一化,得到矩阵N。 矩阵N中第二行全为0,这与悬挂结点问题类似。网页排名领域中,悬挂结点指的是
Reverse Linked List Reverse a singly linked list.单链表的逆序有两种方法,一种是递归的,另一种是非递归的(头插法)。递归解法如下,耗时11ms:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(
Sort List Sort a linked list in O(n log n) time using constant space complexity. 一看到这个题目,首先想到归并排序。归并排序需要将数据近似划成两等分,可以用快慢指针法,慢指针一次走一步,快指针一次走两步,快指针走到链表末尾时,慢指针刚好走到一半。本题的递归解法如下:/** * Definition for sing
第5章 埃洛体系(Facebook的前世) ELO算法一般指Elo rating system,以创造者埃洛(ELO)命名。ELO算法比上一章的基纳法更出名,它是一种衡量各类对弈活动水平的评价方法,是当今对弈水平评估的公认的权威方法。ELO算法最开始是为了改善象棋评分系统而设计的,但它也适用于含多个玩家的游戏,足球比赛等等。在影片《社交网络》中,爱德华在窗户上写下埃洛法的公式,所以,有人猜测扎克伯格可能使用了埃洛法。 埃洛法
第4章 基纳法 阅读(PageRank的兄弟) 基纳法的步骤如下:1、选择体现实力的属性。例如队伍 i 击败队伍 j 的次数,或队伍 i 从队伍 j 身上取得的分数。2、设 aij = 队伍 i 从队伍 j 身上取得的分数, 保证每个 aij 均为非负数。3、aij 的第一次替换。利用拉普拉斯的“承续法则”,重新定义aij , aij = ( aij+ 1 ) / ( aij + aji +2 )。4、aij 的第二次替换。
EM算法 实例讲解 第一次接触EM算法,是在完成半隐马尔科夫算法大作业时。我先在网上下载了两份Baum-Welch算法的代码,通过复制粘贴,修修补补,用java实现了HMM算法(应用是韦小宝掷两种骰子的问题)。然后,参考有关半隐马尔科夫算法的论文,照着论文中的公式修改隐马尔科夫算法,完成了大作业。现在回想起来,就隐隐约约记得有一大堆公式。最近,我看到一篇很好的文章,对EM算法的计算有了进一步的了解,文章链接为http
第3章 科利法 阅读 传统获胜率ri = wi / ti,即队伍 i 的获胜率等于该队赢得的比赛场数除以该队参与的比赛场数。 科利法在传统获胜率公式的基础上做了一个小小的改动,即ri = (1+wi) / (2+ti).这一修改的主要优点在于它考虑了赛程强度,即一支队伍的对手强弱。 科利法的思想源于拉普拉斯的“承续法则”。科利法最引人注目的一点是它只考