随笔分类 -  Algorithm

摘要:布隆过滤器的作用就是判断元素,在某个元素集中是否存在。 hashmap的问题 实际上hashmap也能达到同样的效果,但与布隆过滤器的区别如下: hashmap的大致原理就是,把所有装入的键值对都存到一个Entry对象里,然后根据key值hash出一个常数,作为该键值对的索引值,并把键值对存入与索引 阅读全文
posted @ 2019-05-14 21:33 Red_Code 阅读(268) 评论(0) 推荐(0)
摘要:ID3决策树 ID3决策树分类的根据是样本集分类前后的信息增益。 假设我们有一个样本集,里面每个样本都有自己的分类结果。 而信息熵可以理解为:“样本集中分类结果的平均不确定性”,俗称信息的纯度。 即熵值越大,不确定性也越大。 不确定性计算公式 假设样本集中有多种分类结果,里面某一种结果的“不确定性” 阅读全文
posted @ 2019-03-25 19:02 Red_Code 阅读(1973) 评论(0) 推荐(0)
摘要:说明:每个样本都会装入Data样本对象,决策树生成算法接收的是一个Array<Data>样本列表,所以构建测试数据时也要符合格式,最后生成的决策树是树的根节点,通过里面提供的showTree()方法可查看整个树结构,下面奉上源码。 Data.java DecisionTree.java Start. 阅读全文
posted @ 2019-02-22 19:05 Red_Code 阅读(772) 评论(0) 推荐(0)
摘要:前言 所谓构建决策树, 就是递归的对数据集参数进行“最优特征”的选择。然后按最优特征分类成各个子数据集,继续递归。 最优特征的选择:依次计算按照各个特征进行分类以后数据集的熵,各个子数据集的熵比较后,其中拥有最小的熵的数据集就是最优的分类结果,此次分类的特征就是最优特征。 熵的计算:熵计算的是数据集 阅读全文
posted @ 2018-10-26 15:10 Red_Code 阅读(1154) 评论(0) 推荐(0)
摘要:前言 逻辑回归与线性回归都是回归,使用什么回归函数,是通过数据来决定的。 而逻辑回归的数据的特点就是“x自变量向量组对应的y值只有1和0两个值”。 所以我们自然希望能找到一种方程,将x代入,得出来的值只有1或0两种。 根据经验可知sigmoid函数很符合我们的需求,sigmoid函数随着自变量的不断 阅读全文
posted @ 2018-09-03 19:33 Red_Code 阅读(307) 评论(0) 推荐(0)
摘要:以回归方程为例,最后的回归方程无论是直线还是曲线,方程除了应有的自变量外,还存在各种常量参数,这些参数的不同,直接影响着最终方程。 还是以回归问题为例。 假设我们要将数据线性回归到某条直线上(逻辑回归等其他回归同理)。 那么我们首先能设这个回归方程为:y(x) = θ1x+θ2 其中x和y在某种程度 阅读全文
posted @ 2018-08-24 19:24 Red_Code 阅读(645) 评论(0) 推荐(0)
摘要:分类算法 已知集合x,我们把这个集合称为特征集合,其中每一个元素是一个待分类项。 已知集合y,我们把这个集合称为类别集合,其中的每一个元素是一个类别。 我们现在要找到一个函数f,使得y=f(x),即x集合中的每一个待分类项,都能通过f函数找到对应的分类y。 分类算法的任务就是找到这个f函数。 朴素贝 阅读全文
posted @ 2018-08-21 20:04 Red_Code 阅读(292) 评论(0) 推荐(0)
摘要:基本概念 样本空间:{试验所有可能结果}-->一个试验所有可能结果的集合,用 Ω 表示。所以P(Ω) = 1 事件:样本空间的一个子集。用A、B、C表示。 条件概率 其实P(A|B)与P(AB)很相似,即“A和B都会发生”。 我们换一句话来解释这个P(AB):“在所有可能的结果下,a和b都发生的概率 阅读全文
posted @ 2018-08-21 16:45 Red_Code 阅读(6344) 评论(0) 推荐(0)
摘要:在散列函数中,有很多地方是根据模运算来进行散列,所以某两个整数都modn的值一样,这两个整数就可以看成是一个等价类的(比如某个简单的hash算法是槽值为模7的余数,那么模7余数相等的数就都是一个等价类的,都会被hash到同一个槽中)。 还比如:a,b∈Z,当且仅当a和b除以2的余数相同.这样所有的偶 阅读全文
posted @ 2017-06-20 22:16 Red_Code 阅读(722) 评论(0) 推荐(0)
摘要:优化了一些细节,速度比上一个快排快10% 阅读全文
posted @ 2017-04-29 11:04 Red_Code 阅读(278) 评论(0) 推荐(0)
摘要:在赛码网上看到的2016年的京东实习生在线编程题,赛码网上将其难度划为最高之一,于是就做了一下。 赛码网不让转载题目,原题目在这:http://exercise.acmcoder.com/online/online_judge_ques?ques_id=3816&konwledgeId=41 整体思 阅读全文
posted @ 2017-04-24 11:51 Red_Code 阅读(565) 评论(0) 推荐(0)
摘要:刚做完美图的笔试,两道编程题,第一道比较简单:找出一串用逗号隔开的字符串中不重复的那个数。 以下是第二道,时间有限,很多地方没来得及优化,整体逻辑应该没错。 question: You are playing the following Nim Game with your friend: Ther 阅读全文
posted @ 2017-04-16 21:32 Red_Code 阅读(1305) 评论(0) 推荐(0)
摘要:问题: 一个屋子里人数必须要达到多少人,才能使其中两人生日相同的机会达到50%? 为了回答这个问题,设: 1、设k是屋子里的总人数,对每一个人进行编号,则编号为1,2,3···k 2、设所有年份都是365天,最大天数n=365 3、bi表示第i个人的生日天数,所以1<=bi<=360,1<=i<=k 阅读全文
posted @ 2017-04-13 16:04 Red_Code 阅读(3152) 评论(0) 推荐(0)
摘要:算法代码: 速度测试: (1) 随机数范围:0-100 随机数数量:100 结果: 8种算法速度均在0ms左右,没有显著差别。 (2) 随机数范围:0-1000 随机数数量:1000 结果: 希尔排序、快速排序、堆排序、基数排序:0ms左右 直接插入排序、冒泡排序、直接选择排序、归并排序:1ms-1 阅读全文
posted @ 2017-03-30 11:20 Red_Code 阅读(5111) 评论(0) 推荐(0)