openGauss源码解析(186)

openGauss源码解析:AI技术(33)

8.7.3 关键源码解析

1. MADLib的项目结构

MADlib的文件结构及说明如表8-16所示,MADlib的代码可通过其官方网站获取:https://madlib.apache.org/

表8-16 MADlib的主要文件结构

文件结构

说明

cmake

-

Cmake相关文件

/array_ops

数组array操作模块

/kmeans

Kmeans相关模块

/sketch

词频统计处理相关模块

/stemmer

词干处理相关模块

/svec

稀疏矩阵相关模块

/svec_util

稀疏矩阵依赖模块

/utils

其他公共模块

src/bin

-

工具模块,用于安装、卸载、部署等

src/bin/madpack

-

数据库交互模块

src/dbal

-

词干处理相关模块

src/libstemmer

-

工具依赖文件

src/madpack

-

里面包含公共的模块

src/modules

-

关联规则算法

/assoc_rules

包括凸算法的实现

/convex

包括条件随机场算法

/crf

弹性网络算法

/elastic_net

广义线性模型

/glm

隐狄利克雷分配

/lda

线性代数操作

/linalg

线性系统模块

/linear_systems

概率模块

/prob

决策树和随机森林

/recursive_partitioning

回归算法

/regress

采样模块

/sample

数理统计类模块

/stats

时间序列

/utilities

包含pg,gaussdb平台相关接口

src/ports

-

接口,链接db

src/ports/postgres

-

针对pg系,相关算法

/dbconnector

关联规则算法

/modules

贝叶斯算法

/modules/bayes

共轭梯度法

/modules/conjugate_gradient

包括多层感知机

/modules/convex

条件随机场

/modules/crf

弹性网络

/modules/elastic_net

Prophet时序预测

/modules/gbdt

Gdbt算法

/modules/glm

广义线性模型

/modules/graph

图模型

/modules/kmeans

Kmeans算法

/modules/knn

Knn算法

/modules/lda

隐狄利克雷分配

/modules/linalg

线性代数操作

/modules/linear_systems

线性系统模块

/modules/pca

PCA降维

/modules/prob

概率模块

/modules/recursive_partitioning

决策树和随机森林

/modules/sample

回归算法

/modules/stats

采样模块

/modules/summary

数理统计类模块

/modules/svm

描述性统计的汇总函数

/modules/tsa

Svm算法

/modules/validation

时间序列

/modules/xgboost_gs

交叉验证

src/utils

-

Xgboost算法

2. MADlib在openGauss上的执行流程

用户通过调用UDF即可进行模型的训练和预测,相关的结果会保存在表中,存储在数据库上。以训练过程为例,MADlib在openGauss上执行的整体流程如图8-22所示。

图8-22 MADlib在openGauss上训练模型的流程图

posted @ 2024-05-06 10:45  openGauss-bot  阅读(2)  评论(0编辑  收藏  举报