今天翻看了下我电脑上的各种试验项目,已经积累到160个了。其中最好玩的应该是智能设计和智能写作这2部分相关的试验。从 0到1 实现一款智能产品是非常有趣的过程,需要解决非常多前人没有碰到的问题。今天聊聊算法的一些实践心得。我是非常倡导敏捷开发的方式的,不仅程序,包括设计、算法、运营等等,我都倾向于有想法立马实践,快速试错,不断迭代,找到最终最佳路径。我设计算法的时候,大部分的时候会碰到没有数据集的情况,这个时候,我会选择先制作小规模的数据集,一般在MB或者GB级。然后以规则为主,让项目先跑起来。当积累到一定程度,大批量地扩充数据,把数据集扩大100倍,然后再用一些常用的算法试验效果。这个时候是规则+算法并行。当积累的数据量达到GB、TB或者PB的时候,动用分布式的计算平台就显得非常重要了。此阶段真正的以算法为主。Spark 允许用户将数据加载到多台计算机所建立的 cluster 集群的内存中存储,执行分布式计算,再加上 Spark 特有的内存运算,让执行速度大幅提升,非常适合用于机器学习的算法。况且,spark包含大量开箱即用的机器学习库。算法包括分类与回归、支持向量机、回归、线性回归、决策树、朴素贝叶斯、聚类分析、协同过滤等。使用spark必须先了解Spark的核心——RDD分布式数据集Resiliennt Distributed Datasets(简称RDD)之上的,这使得 Spark 的各个组件可以无缝地进行集成,能够在同一个应用程序中完成大数据处理。RDD ,它是一种有容错机制的特殊数据集合,可以分布在集群的结点上,以函数式操作集合的方式进行各种并行操作。通俗点来讲,RDD 本质上是一个只读的分区记录集合。每个 RDD 可以分成多个分区,每个分区就是一个数据集片段。一个 RDD 的不同分区可以保存到集群中的不同结点上,从而可以在集群中的不同结点上进行并行计算。http://jadianes.github.io/spark-py-notebooks/
这是一个基于KDD CUP 1999 dataset 数据集做的实战教程。
KDD CUP 1999 dataset 是KDD竞赛在1999年举行时采用的数据集。该数据集记录的是1998年美国国防部高级规划署在MIT林肯实验室进行了一项入侵检测评估项目。林肯实验室建立了模拟美国空军局域网的一个网络环境,收集了9周时间的网络连接和系统审计数据,仿真各种用户类型、各种不同的网络流量和攻击手段,使它就像一个真实的网络环境。随后哥伦比亚大学的Sal Stolfo 教授和北卡罗莱纳州立大学的 Wenke Lee 教授采用数据挖掘等技术对数据集进行特征分析和数据预处理,形成了一个新的数据集。该数据集用于1999年举行的KDD CUP竞赛中,成为著名的KDD99数据集。KDD99数据集目前仍然是网络入侵检测领域的事实Benckmark,为基于计算智能的网络入侵检测研究奠定基础。我也会在后续更新中,把该教程中的一些要点总结出来。
没错,包括学习一项新技术,我都是倾向于直接找实践教程,边做边学,而不是老老实实地观看官方文档,或者是观看视频教程。