前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >当算法遇上敏捷开发

当算法遇上敏捷开发

作者头像
mixlab
发布2019-10-31 13:34:02
6080
发布2019-10-31 13:34:02
举报
文章被收录于专栏:MixLab科技+设计实验室
今天翻看了下我电脑上的各种试验项目,已经积累到160个了。其中最好玩的应该是智能设计和智能写作这2部分相关的试验。从 0到1 实现一款智能产品是非常有趣的过程,需要解决非常多前人没有碰到的问题。今天聊聊算法的一些实践心得。

我是非常倡导敏捷开发的方式的,不仅程序,包括设计、算法、运营等等,我都倾向于有想法立马实践,快速试错,不断迭代,找到最终最佳路径。

基于此,谈谈

我所理解的算法实现阶段

v1.0

我设计算法的时候,大部分的时候会碰到没有数据集的情况,这个时候,我会选择先制作小规模的数据集,一般在MB或者GB级。然后以规则为主,让项目先跑起来。

v2.0

当积累到一定程度,大批量地扩充数据,把数据集扩大100倍,然后再用一些常用的算法试验效果。这个时候是规则+算法并行。

v3.0

当积累的数据量达到GB、TB或者PB的时候,动用分布式的计算平台就显得非常重要了。此阶段真正的以算法为主。

Spark 作为一个用途广泛的大数据运算平台。

Spark 允许用户将数据加载到多台计算机所建立的 cluster 集群的内存中存储,执行分布式计算,再加上 Spark 特有的内存运算,让执行速度大幅提升,非常适合用于机器学习的算法。况且,spark包含大量开箱即用的机器学习库。

算法包括分类与回归、支持向量机、回归、线性回归、决策树、朴素贝叶斯、聚类分析、协同过滤等。

使用spark必须先了解Spark的核心——RDD

分布式数据集Resiliennt Distributed Datasets(简称RDD)之上的,这使得 Spark 的各个组件可以无缝地进行集成,能够在同一个应用程序中完成大数据处理。

RDD ,它是一种有容错机制的特殊数据集合,可以分布在集群的结点上,以函数式操作集合的方式进行各种并行操作。

通俗点来讲,RDD 本质上是一个只读的分区记录集合。每个 RDD 可以分成多个分区,每个分区就是一个数据集片段。一个 RDD 的不同分区可以保存到集群中的不同结点上,从而可以在集群中的不同结点上进行并行计算

习惯使用python的话,可以通过终端安装:

代码语言:javascript
复制
pip install pyspark

最后,推荐一个入门级的教程

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,为基于计算智能的网络入侵检测研究奠定基础。

我也会在后续更新中,把该教程中的一些要点总结出来。

没错,包括学习一项新技术,我都是倾向于直接找实践教程,边做边学,而不是老老实实地观看官方文档,或者是观看视频教程。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无界社区mixlab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档