人工智能成像大气切伦科夫望远镜
aict-tools的Python项目详细描述
aict工具
对事实和CTA事件列表数据执行机器学习任务的可执行文件。 如果使用相同的文件格式,也可以处理其他实验的输入。
你想做的就是把你的IACT数据放在一个包里。本项目主要针对以下任务使用机器学习:
- 能量回归
- 伽马/强子分离
- 原点重建(目前为单声道)
安装
然后您可以通过以下方式安装AICT工具:
pip install aict-tools
默认情况下,这不会安装用于写入的可选依赖项
以onnx
或pmml
格式的模型。
如果要将模型序列化为这些格式,请使用:
$ pip install aict-tools[pmml] # for pmml support
$ pip install aict-tools[onnx] # for onnx support
$ pip install aict-tools[all] # for both
或者,您可以将repo cd
克隆到文件夹中,然后执行通常的pip install .
舞蹈。
用法
对于每个任务,都有两个可执行文件安装到您的PATH
。
每个文件都以yaml
配置文件和h5py
样式的hdf5文件作为输入。
使用joblib
和/或使用sklearn2pmml
将模型保存为pickle
。
aict_train_<...>
这个脚本用来训练一个关于已知真相事件的模型 目标变量的值,通常是蒙特卡罗模拟。aict_apply_<...>
此脚本应用一个给定的模型,该模型以前使用aict_train_<...>
进行过训练,并将其应用于数据(测试数据集或目标变量具有未知真值的数据)。
apply脚本可以使用
使用--chunksize=<N>
选项,这对于非常大的文件(100万个事件)非常方便。
能量回归
伽马射线的能量回归需要一个yaml
配置文件
以及事件列表格式的模拟伽马射线。
执行能量回归的两个脚本称为
aict_train_energy_regressor
aict_apply_energy_regressor
示例配置可以在examples/config_energy.yaml中找到。
要应用模型,请使用aict_apply_energy_regressor
。
分离
二进制分类或分离需要yaml
配置文件,
一个用于信号类的数据文件和一个用于后台类的数据文件。
执行分离的两个脚本称为
aict_train_separation_model
aict_apply_separation_model
。
示例配置可以在examples/config_separator.yaml中找到。
用disp方法重建伽马射线源
若要在摄影机坐标系中估计伽马射线的原点,请
disp
-可以使用方法。
在这里,它被实现为两步回归/分类任务。
一个回归模型被训练来估计abs(disp)
和
训练分类模型来估计sgn(disp)
。
训练需要模拟扩散伽马射线事件。
aict_train_disp_regressor
aict_apply_disp_regressor
示例配置可以在examples/config_source.yaml中找到。
注意:通过应用disp regressor,Theta
将从功能集中删除。
θ必须根据源预测计算,例如使用pyfact中的fact_calculate_theta
。
实用程序脚本
应用直切口
对于数据选择,例如为了消除不可重构的事件, 在应用机器学习模型之前,通常应用所谓的预切割或质量切割。
这可以使用要应用的剪切的aict_apply_cuts
和yaml
配置文件来完成。有关配置文件的示例,请参见examples/quality_cuts.yaml。
将数据拆分为训练/测试集
使用aict_split_data
,可以将一个数据集随机分成多个集合,
例如,将蒙特卡洛模拟数据集拆分为列车和测试集。