现现在,大数据、数据科学和机器学习不只是技术圈的热门话题,也是当今社会的重要组成。数据就在每一个人身边,同时天天正以惊人的速度快速增加,据福布斯报道:到 2025 年,每一年将产生大约 175 个 Zettabytes 的数据量。git
目前咱们所熟知的行业都愈来愈依赖于对大数据的高级处理和分析,如金融、医疗保健、农业、能源、媒体、教育等全部重要的社会发展行业,然而这些庞大的数据集让数据分析、数据挖掘、机器学习和数据科学面临了巨大的挑战。github
数据科学家和分析师在尝试对于海量数据的分析时会面临数据处理流程复杂、报表查询缓慢等问题,但在实践中发现可经过 Apache Kylin 与 Python 的集成解决这一大难题,从而帮助分析师和数据科学家最终得到对大规模(TB 级和 PB 级)数据集的自由访问。算法
机器学习(ML)工程师和数据科学家在对大数据运行计算时遇到的主要挑战之一是处理更大容量的数据时带来的更大的计算复杂度 。数据库
所以,随着数据集的扩大,即便是微不足道的操做也会变得昂贵。此外,随着数据量的增长,算法性能愈来愈依赖于用于存储和移动数据的技术架构,同时数据量越大,并行数据结构,数据分区和存储以及数据复用变得更加剧要。apache
Apache Kylin 是一个开源的分布式大数据分析引擎,旨在为 Hadoop上的多维分析(MOLAP)提供 SQL 接口。它容许企业使用和其余大数据分析工具相比更短的的时间快速分析海量数据集。编程
借助 Apache Kylin,数据团队可以大幅减小分析处理时间以及相关的 IT 和运营成本。它能够经过将大型数据集预先计算到一个(或另外一个很是少许)的 OLAP 多维数据集中并将它们存储在列式数据库中来实现查询加速。这使机器学习工程师,数据科学家和分析师可以快速访问数据并执行数据挖掘,轻松发现数据中隐藏的趋势。数据结构
下图显示了在引入 Apache Kylin 时,大数据上的机器学习和数据科学活动如何变得更加简单。架构
Apache Kylin 如何与大数据平台配合使用并发
目前 Python 风头正盛,做为领先的编程语言之一,凭借其易用性和丰富的库,Python 已经在大数据中被普遍应用。机器学习
Python 还提供了大量数据挖掘工具来协助处理数据,同时也提供已经在机器学习和数据科学社区运行的应用程序。简而言之,若是您正在使用大数据,那么 Python 可能会让您的工做变得更轻松。
使用 Kylinpy 库,Apache Kylin 能够轻松与 Python 集成。Kylinpy 是一个提供 SQLAlchemy 方言实现的 Python 库。所以,任何使用 SQLAlchemy 的应用程序如今均可以查询 Kylin OLAP 多维数据集。此外,它还容许用户经过 Pandas 数据帧访问数据。
经过 Pandas 访问数据的示例代码:
使用 Pandas 链接 Apache Kylin
数据集:
咱们将一个 IMDB 电影数据集(来源:Movielens)导入咱们的 Kylin OLAP 多维数据集,并使用 Python 读取数据并执行探索性分析,以便在指定时间段内查找不一样流派的电影评级趋势。
目的:
数据生命周期
为了经过 Python 分析数据,使用了 Kylinpy 库并编写了 SQL 来为相关分析提取相关数据。经过 SQL 返回的数据集存储为 Pandas 数据帧,而后对数据帧进行数据处理,以使数据造成适合咱们分析的结构。咱们利用 Matplotlib 和 Seaborn 库来可视化数据。下图说明了每一个阶段的数据生命周期。
Apache Kylin 数据生命周期
分析
让咱们首先看一下排名靠前的几部电影。能够看出,前 15 部电影中,除了前 2 部以外,13 部电影的评分人数几乎相同。此信息是相关发现的起点,能够进一步深刻查找咱们评分人数较高的电影之间的相关性。
一样,下面的柱状图显示了每种流派电影的评分人的性别比较。这显示了男女观影时对不一样流派电影的偏好。
从下面的相关矩阵(热图)中,咱们能够说出观影人职业和电影流派之间的关系。例如:农民不喜欢观看悬疑片,而大学生更喜欢侦探片或纪录片。
下图显示了某特定年份每周用户对不一样流派电影的平均评分趋势。从图表中能够看出,纪录片和犯罪电影是人们的最爱,而儿童电影的平均评分老是最低的。
Apache Kylin Python SQL 趋势线图
下面的两个散点图用于并排比较,以推断男性和女性的评级之间的相关性。
左图:散点图显示男性和女性(全部电影)的平均评分呈线性增加趋势,图中高度集中的部分均匀分布在参考线的两侧,这代表除了少数电影收视率,男性和女性观影偏好趋同。
右图:散点图是经过仅隔离评级超过 400 次的电影而产生的。在这种状况下,咱们也能够看到男性和女性的评分类似,这代表咱们的初步推论是准确的。
咱们讨论了 Python 如何使用 Kylinpy 库轻松地与 Apache Kylin 的 OLAP 技术集成,而 Kylinpy 库又用于在咱们的示例电影数据集上运行高级分析。咱们还使用 Pandas,Matplotlib 和 Seaborn 库来操做和可视化 Apache Kylin 多维数据集中的数据。
这样的分析让咱们深刻了解人们对不一样电影类型的喜爱随着时间的推移而变化。它还告诉咱们不一样电影类型变化趋势之间的关联度。像这样的看法可能对电影评论家有用。
若是您或您的团队在访问大量数据集时遇到问题,并但愿利用 Kylin 的大数据 OLAP 方法进行机器学习或数据科学操做,那么 Apache Kylin(及其相关企业大数据平台 Kyligence)将为您提供帮助。