vasco
使用MIC发现数据中隐含的关联
仓库
Florents-Tselai/vasco
https://github.com/Florents-Tselai/vasco
源码
vasco-0.1.0.tar.gz
vasco-0.1.0.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
vasco | 0.1.0 | FUNC | GPL-3.0 | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 4660 | vasco | 否 | 是 | 否 | 是 | 否 | 是 | - |
| 相关扩展 | pg_idkit pgx_ulid pg_uuidv7 pg_hashids sequential_uuids ddsketch tdigest uuid-ossp |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.1.0 | 1817161514 | vasco | - |
| RPM | PIGSTY | 0.1.0 | 1817161514 | vasco_$v | - |
| DEB | PIGSTY | 0.1.0 | 1817161514 | postgresql-$v-vasco | - |
构建
您可以使用 pig build 命令构建 vasco 扩展的 RPM / DEB 包:
pig build pkg vasco # 构建 RPM / DEB 包
安装
您可以直接安装 vasco 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install vasco; # 当前活跃 PG 版本安装
pig ext install -y vasco -v 18 # PG 18
pig ext install -y vasco -v 17 # PG 17
pig ext install -y vasco -v 16 # PG 16
pig ext install -y vasco -v 15 # PG 15
pig ext install -y vasco -v 14 # PG 14
dnf install -y vasco_18 # PG 18
dnf install -y vasco_17 # PG 17
dnf install -y vasco_16 # PG 16
dnf install -y vasco_15 # PG 15
dnf install -y vasco_14 # PG 14
apt install -y postgresql-18-vasco # PG 18
apt install -y postgresql-17-vasco # PG 17
apt install -y postgresql-16-vasco # PG 16
apt install -y postgresql-15-vasco # PG 15
apt install -y postgresql-14-vasco # PG 14
创建扩展:
CREATE EXTENSION vasco;
用法
使用最大信息系数(MIC)和 MINE 系列统计量发现数据中隐藏的相关性。
CREATE EXTENSION vasco;
聚合函数
| 函数 | 描述 |
|---|---|
mic(x, y) | 最大信息系数——检测任何关系 |
mas(x, y) | 最大不对称分数——偏离单调性的程度 |
mev(x, y) | 最大边值——连续函数采样的程度 |
mcn(x, y) | 最小单元数——关联的复杂度 |
mcn_general(x, y) | MCN,其中 eps = 1 - MIC |
tic(x, y) | 总信息系数 |
gmic(x, y) | 广义平均信息系数 |
工具函数
| 函数 | 描述 |
|---|---|
vasco_corr_matrix(table_name, output_table) | 计算所有列对的 MIC 并存储为相关矩阵表 |
配置
SET vasco.mic_estimator = 'ApproxMIC'; -- 或 'MIC_e'
SET vasco.mine_c = ...;
SET vasco.mine_alpha = ...;
示例
-- 计算列对之间的 MIC
SELECT mic(x, cubic), mic(x, periodic), mic(x, rand_y)
FROM vasco_data;
-- 1, 1, 0.15
-- 创建完整的相关矩阵
SELECT vasco_corr_matrix('my_table', 'mic_my_table');
SELECT * FROM mic_my_table;