瑕不掩瑜
2009-07-19
Programming Collective Intelligence 作为一本机器学习的入门书,很优雅地摘去了那些看似神奇的推荐系统、垃圾邮件过滤系统或是游戏AI头上的光环,将它们还原为一行行实在的代码,并相对浅显易懂地介绍了当中涉及的数学原理,仿佛是在带领读者去揭穿一个个魔术背后的障眼把戏,让读者在“哦”的醒悟之余大呼“妙绝”。
虽说这是一本讲原理的书,却一点都不枯燥,而且还很实用。全书十二章中,除去头尾两章,其余的每一章分别介绍了一类算法,从简单的相似度计算到有点玄乎的 genetic programming,都先以作者杜撰的简易数据开场,再拿现实数据(从提供API的 web 2.0 网站上抓取)开刀,既讲清楚了道理,又能启发读者利用这些算法去做实际的应用。
但这本书并不是完美无缺的,主要问题出现在代码中:
1. 作者可能不太熟悉 Python,所以经常会看到 for i in range(len(xx)) 这种十分不 Pythonic 的遍历方式;
2. 代码可读性不高——变量名太简短,滥用列表解析;
3. 不知是排版错误还是作者根本没测试,部分代码与文本对不上号。
不过,瑕不掩瑜,这本书还是很不错的。如果你想跳出传统的“框架+数据库”模式、为你的网站增添一些智能而人性化的元素,如果你想以人工智能为研究方向而正在寻找入门书,可以考虑它。