KNIME和H2O是数据科学和机器学习的两个重要的选择。

KNIMEH2O.ai是两个开源的Data Science和 Machine Learning解决方案,能很好的替代SAS和SPSS等商业软件。

Gartner-2018-Magic-Quadrant-for-Data-Science-and-Machine-Learning

Magic Quadrant for Data Science and Machine-Learning Platforms

KNIME Analytics Platform拥有超过1000个模块,数百个即可运行的示例,全面的集成工具,以及最广泛的高级算法选择,是任何数据科学家的完美工具箱。

KNIME和H2O,大家可持续关注和深入研究。

此外,SMACK也提供了完整的数据平台架构和软件基础设施堆栈参考:

SMACK

数据处理平台架构中的SMACK组合:Spark、Mesos、Akka、Cassandra以及Kafka

我们先在DC/OS上部署数据科学和机器学习软件基础设施,

然后对现有的数据做些分析。

Zeppelin & Spark on DC/OS可以作为初步的分析形态,它能快速切入数据分析领域。

一个参考架构:从搭台到唱戏,电商卷皮BI的实践演进和架构体系

使用了三个主要开源软件:

Saiku提供了一个多维分析的用户操作界面,可以通过简单拖拉拽的方式迅速生成报表,它的主要工作是根据事先配置好的schema,将用户的操作转化成MDX语句提供给Mondrian引擎执行。

Mondrian是一个OLAP分析的引擎,主要工作是根据事先配置好的schema,将输入的多维分析语句 MDX (Multidimensional Expressions )翻译成目标数据库/数据引擎的执行语言(比如SQL)。

Presto是一个分布式SQL查询引擎, 它被设计为用来专门进行高速、实时的数据分析。它支持标准的ANSI SQL,包括复杂查询、聚合(aggregation)、连接(join)和窗口函数(window functions)。

当前这个架构是我们第三个版本的架构。

第一个版本我们是直接用的Mondrian+Mysql,但是我们发现Mondrian的界面太丑了,所以在第二版加入了Saiku。但是随着业务数据量的增加,Mysql的查询性能很快就到瓶颈了,所以在第三个版本用Presto替代了Mysql。

Presto on DC/OS

Jupyter is the new front end for data science and AI.

基于PostgreSQL/Greenplum构建数据仓库(DW/OLAP) + Presto(SQL引擎)组成基础的数据仓库平台。

基于Zeppelin的数据分析和数据交互。

Apache-Zeppelin

修改不能导入超过1M JSON文件的限制,JSON file size cannot exceed 1 MB

docker run -it mesosphere/zeppelin:0.7.3-2-all-2.2.1-1-hadoop-2.6  bash

vim conf/zeppelin-env.sh 可上传4M

export ZEPPELIN_WEBSOCKET_MAX_TEXT_MESSAGE_SIZE="4096000"
./bin/zeppelin-daemon stop
./bin/zeppelin-daemon start

修改的数据没生效,应该是需要为镜像提供持久化服务,需为Zeppelin镜像分配一个持续化卷volume

基于IMDB电影评论的实验,此实验可用于对用户评论的分析。

在这里LDA(Latent Dirichlet allocation)是指隐含狄利克雷分布;另一个LDA缩写是线性判别分析(Linear Discriminant Analysis, LDA)也可一同了解,这是一种降维技术。

参考:线性判别分析LDA原理总结

LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。我们要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。如:红色和蓝色两类数据,让每一种类别数据的投影点尽可能的接近,而红色和蓝色数据中心之间的距离尽可能的大。

Latent-Dirichlet-allocation-LDA

步骤:

  • 数据读取:为方便可将部分mysql数据导入csv表
  • 数据预处理:
  • 主题检测:使用隐含狄利克雷分布(LDA),每个主题使用4个关键词,共8个主题。
  • 分组:

2000条评论数据,编号从Row0–>Row1999

IMDB

主题提取,并行LDA处理。4个关键词,8个主题。

每个评论划分为8个主题,指定分值高的为分配主题。ps:可理解为关键词出现频度,如:欢乐谷、好、很棒、不好等等。

IMDB-LDA

8个主题检测出来,也可以理解8种评论主题检测出来:

IMDB-Group

经典例子:鸢尾花数据集,通过花萼、花瓣的大小进行聚类。

iris-dataset

K-均值聚类算法

聚类是一种无监督的学习,将相似的对象归到同一个簇中。聚类与分类的最大不同在于分类的目标事先已知,而聚类则不知道。

K-均值聚类算法是发现给定数据集K个簇的算法。如下图所示,如果设定的聚类簇数是4,那么理想的K-均值算法可以按照两条黑线将所有数据分为4类:

iris-dataset-02

实战这个例子:

iris-dataset-KNIME

核心关键:Cluster Model,这里使用了 PMML Cluster Model,构建了9个群族。

iris-dataset-KNIME-PMML

通过H2O机器学习对鸢尾花进行分类。

iris-dataset-KNIME-H2O

Deploying a Load-Balanced Data Pipeline

twitter

以Twitter作为数据源(100K tweets),使用Kafka、Cassandra、Marathon-LB、Zeppelin进行数据分析。


发表评论

OpenID

电子邮件地址不会被公开。 必填项已用*标注

Anonymous

电子邮件地址不会被公开。 必填项已用*标注