AnonymousGM/MultiSetTransformerData
收藏数据集概述
MultiSetTransformerData 是一个大型数据集,旨在用于训练和验证神经符号回归模型。该数据集设计用于解决多集符号骨架预测(MSSP)问题,但也可用于训练通用的符号回归模型。
数据集内容
数据集包含人工生成的单变量符号骨架,从中采样数学表达式,然后用于生成数据集。数据集分为训练集和验证集,存储在 Q1 文件夹中。
Q1 数据集结构
- 训练集:包含多个 HDF5 文件,每个文件包含 5000 个块。
- 验证集:包含多个 HDF5 文件,每个文件包含 5000 个块。
每个 HDF5 文件的结构如下:
json { "block_1": { "X": "支持向量,形状 (10000, 10)", "Y": "响应向量,形状 (10000, 10)", "tokenized": "符号骨架表达式使用词汇表进行标记化,列表", "exprs": "符号骨架表达式,字符串", "sampled_exprs": "从共同骨架采样的十个数学表达式" }, "block_2": { "X": "支持,形状 (10000, 10)", "Y": "响应,形状 (10000, 10)", "tokenized": "符号骨架表达式使用词汇表进行标记化,列表", "exprs": "符号骨架表达式,字符串", "sampled_exprs": "从共同骨架采样的十个数学表达式" }, ... }
每个块对应一个单变量符号骨架(即未定义常数值的函数),例如 c + c/(c*sin(c*x_1) + c)。从该骨架中采样 10 个随机函数,例如:
-2.284 + 0.48/(-sin(0.787*x_1) - 1.136)4.462 - 2.545/(3.157*sin(0.422*x_1) - 1.826)
然后,对于第 (i) 个函数(其中 (i in [0, 1, ..., 9])),我们从一个均匀分布 (mathcal{U}(-10, 10)) 中采样一个包含 10000 个元素的支持向量 X[:, i]。支持向量 X[:, i] 在第 (i) 个函数上进行评估以获得响应向量 Y[:, i]。换句话说,一个块包含从 10 个共享相同符号骨架的不同函数生成的输入-输出数据。
数据加载
数据下载后,可以使用 Python 加载,如下所示:
python import os import glob import h5py
def open_h5(path): block = [] with h5py.File(path, "r") as hf: for group_name in hf: group = hf[group_name] X = group["X"][:] Y = group["Y"][:] tokenized = list(group["tokenized"]) exprs = group["exprs"][()].tobytes().decode("utf-8") sampled_exprs = [expr_str for expr_str in group["sampled_exprs"][:].astype(str)] block.append([X, Y, tokenized, exprs, sampled_exprs]) return block
train_path = data/Q1/training train_files = glob.glob(os.path.join(train_path, *.h5)) for tfile in train_files: block = open_h5(tfile)
词汇表和表达式生成
数据集使用的词汇表如下:
<p align="center"> <img src="images/vocabulary.jpg" alt="alt text" width="500"> </p>
我们使用一种递归构建表达式树的方法,以先序方式进行,这使我们能够有效地执行某些条件和约束。例如,我们禁止某些运算符组合,并设置一元运算符嵌套深度的最大限制。
引用
使用以下 Bibtex 引用此数据集:
bibtex @INPROCEEDINGS{MultiSetSR, author="Giorgio Morales and John W. Sheppard", title="Univariate Skeleton Prediction in Multivariate Systems Using Transformers", booktitle="Machine Learning and Knowledge Discovery in Databases", year="2024", location = {Vilnius, Lithuania} }




