我们作为天天搞计算机的,应该都听说过GitHub吧,不过可能很多人并不知道它可以用来做什么和怎么使用,今天,我将在这里做一个入门教学,希望大家人人都会用GitHub,都能用好GitHub。
在上一篇文章中,我们主要是写到了关联分析的概念和一些挖掘算法的原理,在本篇文章中我们将以一个应用实例来简介一下挖掘算法是怎么实现和起作用的。我们以一次美国国会投票记录作为案例,使用Apriori算法,支持度设为30%,置信度为90%,挖掘出高置信度的规则。
关联规则挖掘是数据挖掘领域中的一个非常重要的研究内容,其主要目标就是发现数据库中一组对象之间某种有意义的联系,所发现的联系可用关联规则或频繁项集来表示。频繁集的挖掘是关联规则挖掘的关键步骤,它在很大程度上决定了关联规则挖掘的效率。本文将介绍关联规则挖掘的算法,并使用例子来实际演示如何进行关联规则的挖掘。
本文转载自机器之心
做成一件事儿不容易,而坑恒在。
鲍捷博士于5月10日在将门创投的线上 talk 中盘点了人工智能项目的大坑小坑,选出了看上去非常反常识的十个经典坑。
这是一篇大实话合集,但别绝望,最后将会放出从二十年踩坑经验中总结出的彩蛋,共勉。
Dijkstra最短路径算法是图论中最经典的算法之一,这种算法广泛应用于地理信息系统(GIS),包括MapQuest和基于GPS的汽车导航系统。本文中将针对该问题,实现经典的Dijkstra最短路径算法,并对其进行优化。
给定由随机分布的绝缘材料和金属材料构成的组合系统:金属材料占多大比例才能使组合系统成为电导体?给定一个表面有水的多孔景观(或下面有油),水将在什么条件下能够通过底部排出(或油渗透到表面)?科学家们已经定义了一个称为渗透(percolation)的抽象过程来模拟这种情况。
我们都知道,机器学习需要大量的数据来训练模型,尤其是训练神经网络。在进行机器学习时,数据集一般会被划分为训练集和测试集,很多时候还会划分出验证集(个别人称之为开发集)。但是很多新手,尤其是刚刚接触到机器学习的人,往往对数据集的划分没有概念,甚至有的人把训练后得到的模型在训练数据上取得的正确率当做是实际正确率来说了,然后各种被怼。有人在答辩时说自己训练的模型正确率100%,在座的老师面面相觑,最后结果可想而知。所以我们需要搞清楚数据集的划分,以及训练集、验证集和测试集的区别和作用。
最近有联系过我的朋友应该知道,我的电脑在最近出现了硬盘损坏的情况,这直接导致了我的一些项目的进度和写博客文章的进度被推迟,同样也影响了我一些其他方面的使用。我们都知道,一旦硬盘损坏,数据很可能会丢失,所以,我们应当定期备份数据,而且,不能抱着侥幸心理,认为这样的事情不会发生在自己的身上。我曾经也是这样认为的,当硬盘损坏的事情真的发生在自己的身上时,想哭都来不及。对于我们做机器学习的人来说,硬盘损坏,就很可能意味着,我们之前大量的研究工作会付之东流,或者我们辛辛苦苦写的即将发表的论文丢失,导致一些很严重的后果。
矩阵的计算是并行计算里的一个很重要的问题。矩阵是一种网格化的数据,是一组同类型数值的集合,矩阵的出现,使得代数系统更完善,对各种实际问题的求解产生了巨大的作用。但是其庞大的计算量往往令人生畏,稍微大一点的矩阵,计算就变得非常繁琐,不仅仅是人,而且串行计算的程序,也同样会变得非常缓慢。这时我们就需要并行计算来解决这些问题了。
本文使用分治思想,利用主从节点方式,实现了一个并行计算的矩阵相乘程序,并将结果跟串行程序做了对比,计算了其加速比。
在各种各样的排序任务中,不同的算法有着不同的效果和性能,比如稳定性、时间开销、空间开销等。本文中实现了5种排序算法:
插入排序(Insertion Sort,IS)、
自顶向下归并排序(Top-down Mergesort,TDM)、
自底向上归并排序(Bottom-up Mergesort,BUM)、
随机快速排序(Random Quicksort,RQ)和
Dijktra 3路划分快速排序(Quicksortwith Dijkstra 3-way Partition,QD3P),
并且在同一台普通计算机上,针对不同输入规模的数据进行了测试,对比了上述排序算法的时间性能。