《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL用SQL做数据分析(5)

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL用SQL做数据分析(5)

《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL用SQL做数据分析(4) https://developer.aliyun.com/article/1232907?groupCode=polardbforpg


(三)分析数据


前文演示了在PolarDB里做数据准备与处理数据的过程,现在正式进入第三步——分析数据。


1、降维


如前文所说,当前分析数据还非常依赖人工,因此需要通过数据可视化的方式分析数据的分布,即将表格形式转换成图片

形式。但原始数据包含花萼、花瓣的长度与宽度,就是4维数据,而图片一般只能展示2维数据。为了能在图片上展示高维

数据,需要先对数据降维,把四维的数据降低到二维数据。


image.png


如上图所示,使用降维方法之前,需要先修改一下flowers表:第一个ID是自增的唯一编号,因为降维算法运算结果,需要通过ID保存回来;后面还有feature1和feature2两个字段,用来保存降维后的两维数据。

有了保存的字段之后,就可以从插件里挑一个降维算法,把四维数据压缩成二维数据,然后再以散点图的方式呈现出来。


这里选择了一个比较常用的PCA降维算法,它包含四个参数:

1.第一个参数是一个字符串形式的表名,表明这个算法数据是存在哪张表。

2.第二个字段是一个唯一字段名。

3.第三个参数是一个字符串数组,告诉算法,原始的高维数据保存在哪些字段里。

4.第四个参数也是一个数组,告诉算法结果保存在哪些字段里。


上图的例子就是把flowers表里的数据,根据ID字段,把花瓣花萼的长度和宽度这四个字字段作为输入,降维完之后存到

feature1和feature2二维的数据里面。降维完成之后再通过散点图的函数展示出来,告诉散点图从哪个表里去拿x轴和y轴

的数据以及目标值的数据。如果一切顺利的话,大家能够看到上图右边这样一个散点图展示在终端。


2、可视化展示


同样的,咱们来实操一下。首先新增三个字段,一个是ID自增的,另外两个是feature1和feature2:


image.pngimage.png


然后用PCA降维算法把这四个特征变量降维成两个特征变量:


image.png


此时,feature1与feature2已经有降维后的值了:


image.png


最后再用散点图去展示数据:


image.png


可以看到三个花分别用不同的颜色标记出来,并且大体上能够被区分开来。


3、预置算法与绘图函数


同样的,插件中已经预置了一些算法函数以及绘图函数,包括降维、分类、回归、聚类、绘图等。


image.png


这些函数都是封装了第三方的Python函数:算法函数就是封装了 Scikit Learn 这个Python机器学习库;函数函数则是封

装了Matplotlib。这就是PolarDB的UDF最强大的地方,它海纳百川,可以直接把其他编程语言的生态封装到自己的生态

里,并统一用SQL函数的方式提供给使用者。大家可以参考插件的文档,查看有哪些已经封装好的函数,或者也可以自己来尝试封装。


4、模型训练及预测


通过可视化展示,我们已经知道数据大概是什么样的分布情况,最后我们就可以挑一个聚类算法函数来训练模型,并且用

这个模型来预测新数据。


image.png


如上图所示,我选择了高斯混合模型,因为它用起来最简单,用法和前面的降维函数有点类似。如果训练成功,最后得到

类似上图右侧的分布图,可以把三个数据进行聚类,简单的高斯混合模型聚类后效果看起来也还不错。


苹果公司股价回归分析案例


鸢尾花的分析案例中,使用的是非监督学习的聚类方法,插件中还包含一些监督学习算法。可以试试用线性回归模型方法

分析苹果股价的走势。过程与鸢尾花的分析一样,也分成四步:


image.png


其中,在数据准备环节,直接调用预置的load函数加载苹果公司自2015年以来每天的股价收盘价格,并以点图把它展示出来;接着再选择线性回归模型进行训练;最后以折性图的方式把它呈现出来。如果一切顺利,你将能在终端看到如下的折线图:


image.png


上图是用自增的ID作为特征变量,与股价做拟合。真正的股价走势分析是非常严谨和复杂的,本示例只作为演示用途,切

勿当真!


苹果公司股价回归分析案例


总结前文中涉及到的PolarDB数据库功能:


image.png


本文用纯粹的SQL完成了鸢尾花聚类与苹果股价分析。其中,在准备数据时,用到了CREATE TABLE创建数据库表,COPY

命令导入数据,也学会了如何调用UDF;在处理数据阶段,学会了添加新的列、给列添加默认值、INSERT语句、触发器等。


除了本文罗列的功能,还有许多今天没涉及到的、但非常有用的功能,例如,像面向对象一样的继承表,还有条件索引、

表达式索引、倒排索引、全文检索等等。通过这些特性,大家应该能感受到PolarDB是一个非常开放的平台,几乎允许你

以任何你喜欢的方式来管理数据。大家可以下载PolarDB,探索一下更多更好玩的功能。



















相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
SQL 机器学习/深度学习 数据可视化
《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL用SQL做数据分析(1)
《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL用SQL做数据分析(1)
1032 0
|
SQL 关系型数据库 数据挖掘
《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL用SQL做数据分析(2)
《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL用SQL做数据分析(2)
915 0
|
SQL 关系型数据库 数据挖掘
《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL用SQL做数据分析(3)
《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL用SQL做数据分析(3)
858 0
|
SQL 关系型数据库 数据挖掘
《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL用SQL做数据分析(4)
《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL用SQL做数据分析(4)
946 0
|
存储 SQL 运维
《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL开源路线图(3)
《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL开源路线图(3)
134 0
|
存储 SQL 运维
《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL开源路线图(2)
《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL开源路线图(2)
106 0
|
存储 SQL 关系型数据库
《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL开源路线图(1)
《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL开源路线图(1)
124 0
|
SQL 存储 分布式计算
《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL开源路线图(4)
《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL开源路线图(4)
108 0
|
存储 缓存 关系型数据库
《PolarDB for PostgreSQL源码与应用实战》——PolarDB-PostgreSQL开源核心Feature介绍(1)
《PolarDB for PostgreSQL源码与应用实战》——PolarDB-PostgreSQL开源核心Feature介绍(1)
352 0
|
存储 SQL 算法
《PolarDB for PostgreSQL源码与应用实战》——PolarDB-PostgreSQL开源核心Feature介绍(2)
《PolarDB for PostgreSQL源码与应用实战》——PolarDB-PostgreSQL开源核心Feature介绍(2)
285 0

相关产品

  • 云原生数据库 PolarDB