简介
🍝 欢迎使用fusilli
🍝,这是机器学习中多模态数据融合的终极库!Fusilli让数据融合变得轻而易举,为高效组合不同数据类型提供了一个平台。
Fusilli能做什么?
多模态数据融合是为了达成某个共同目标而结合不同类型数据(或数据模态)的过程。例如,同时使用血液检测结果和神经成像来预测某人是否会患病。有许多不同的方法可以组合数据模态,而fusilli
的目标是为任何人提供一个平台,以比较不同方法之间的优劣。
Fusilli基于PyTorch Lightning和PyTorch Geometric构建,目前支持以下场景:
- 表格-表格融合:结合两种不同类型的表格数据。
- 表格-图像融合:结合一种表格数据和图像数据(2D或3D)。
Fusilli支持多种预测任务,包括回归、二元分类和多类分类。 请注意,它目前不支持聚类或分割等任务。
想了解更多?这里是阅读文档的链接。
安装
要品尝fusilli
的美味,你可以使用pip安装:
pip install fusilli
快速入门
这里有一个快速示例,展示如何使用fusilli
训练回归模型并绘制真实值与预测值的对比图。
from fusilli.data import prepare_fusion_data
from fusilli.train import train_and_save_models
from fusilli.eval import RealsVsPreds
import matplotlib.pyplot as plt
# 导入示例融合模型
from fusilli.fusionmodels.tabularfusion.example_model import ExampleModel
data_paths = {
"tabular1": "path/to/tabular_1.csv",
"tabular2": "path/to/tabular_2.csv",
"image": "path/to/image_file.pt",
}
output_paths = {
"checkpoints": "path/to/checkpoints/dir",
"losses": "path/to/losses/dir",
"figures": "path/to/figures/dir",
}
# 准备数据
data_module = prepare_fusion_data(prediction_task="regression",
fusion_model=ExampleModel,
data_paths=data_paths,
output_paths=output_paths)
# 训练模型
trained_model = train_and_save_models(data_module=data_module,
fusion_model=ExampleModel)
# 通过绘制真实值与预测值的对比图来评估模型
RealsVsPreds_figure = RealsVsPreds.from_final_val_data(trained_model)
plt.show()
如何引用
Florence Townend, Patrick J. Roddy, & Philipp Goebl. (2024). florencejt/fusilli: Fusilli v1.1.0 (v1.1.0). Zenodo. https://doi.org/10.5281/zenodo.10463697
贡献!
如果你开发了新的融合方法或想改进Fusilli,请查看我们的贡献指南以开始。PyTorch模板和贡献指南在贡献文档中。
作者和致谢
fusilli
的作者是Florence J Townend、James Chapman和James H Cole。
Florence J Townend得到了UCL UKRI人工智能驱动医疗保健博士培训中心的支持(EP/S021612/1)。
许可证
本项目采用AGPLv3许可。详情请见LICENSE文件。