F周刊:2017-06-08

基数估计算法概览

很多简单的问题假如上量复杂度就会大大提高,比如按用户统计站点的访问量(即UV)。基数估计则是应对这类问题的良招。其实现原理非常巧妙,理论基础类似连续抛硬币的实验:当出现连续n次硬币朝上时,反推可能抛掷硬币的次数。

说起来简单,但实际算法还是有一定复杂度的。本文的一大亮点就是阅读时不需要太强的数学基础,对于算法进行深入浅出的阐述,非常易懂。以上的理论来源当八卦看即可。

现在IT业的分工和差距越来越大,有些问题如果不是在特定场景,根本遇不到,更别谈如何实做了。这类算法本身其实不难理解,只不过是很多小公司或在校学生没有接触过,不得其门而入罢了。跟实际的能力和水平其实并没有多大关联。

关于基数估计,还有一些不错的资源值得了解:
解读Cardinality Estimation算法:1、2、3、4。
stream-lib里提供了开箱即用的基数估计算法类。
View Counting at Reddit介绍了Reddit如何使用Redis、Kafka和Cassandra来解决计数问题,非常值得一读。
postgresql-hll是PG的HLL扩展

7 Steps to Mastering Data Preparation with Python

初学者对算法和模型的关注可能甚于对于数据的关注,但没有数据或数据质量不高,算法和模型根本无用武之力。本文不仅点出了数据准备过程中需要的知识点和注意事项,而且还给出了丰富的参考文献和可用的工具,恰恰弥补大多数机器学习教材的空白,非常值得一读。

A practical explanation of a Naive Bayes classifier

用Naive Bayes进行NLP的一个简单例子,清晰明了,绝佳的入门文章。我一直认为,对于ML入门者,与其专研算法原理,不如先多看看应用的例子。有一定的敏感性之后,再读枯燥的数据推论不迟。

Writing a Firebase Clone with PostgreSQL and Node.js (Part I)

本文一个有趣的地方在于比较用各数据库实现Pub/Sub的方案。作者最终选定PG,因为它原生就提供了支持。PG的JDBC驱动也对Listen/Notify提供了支持,从文档中可以找到例子。

Would You Survive the Titanic? A Guide to Machine Learning in Python

以Jupyter Notebook的形式展示了用Python完成一个机器学习项目的完整过程,除了TensorFlow部分的代码因为版本老旧无法照搬之外,其他都还不错,适合入门者。

Email Spam Filtering : A python implementation with scikit-learn

另一篇ML入门练习文章,基于Python和Scikit-learn,除了Python代码不那么地道,有些小错之外,没啥缺点。

你可能感兴趣的:(F周刊:2017-06-08)