人工智能成像大气切伦科夫望远镜

aict-tools的Python项目详细描述


aict工具Build Status

对事实和CTA事件列表数据执行机器学习任务的可执行文件。 如果使用相同的文件格式,也可以处理其他实验的输入。

你想做的就是把你的IACT数据放在一个包里。本项目主要针对以下任务使用机器学习:

  • 能量回归
  • 伽马/强子分离
  • 原点重建(目前为单声道)

安装

然后您可以通过以下方式安装AICT工具:

pip install aict-tools

默认情况下,这不会安装用于写入的可选依赖项 以onnxpmml格式的模型。 如果要将模型序列化为这些格式,请使用:

$ 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_cutsyaml配置文件来完成。有关配置文件的示例,请参见examples/quality_cuts.yaml

将数据拆分为训练/测试集

使用aict_split_data,可以将一个数据集随机分成多个集合, 例如,将蒙特卡洛模拟数据集拆分为列车和测试集。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java两个构造函数?   java for(inti:x)做什么?   java如何将一个bean的构造函数参数传递给嵌套bean   java从易趣链接提取项目ID   java多线程BufferedReader   安卓全新应用程序在R.java中抛出“语法错误,插入“}”以完成类体”   java Spring启动依赖注入请求范围的bean   java给定的时间,然后约定和异常处理。和莫基托和朱尼特在一起   与Android Studio的java Oracle数据库连接   在web服务器(Heroku)上承载可运行jar文件(Discord bot)的java   java如何每隔n秒在imageview中更改图像   java不理解“volatile”关键字   java使用JPA编写自定义SQL查询   java如何使用filechannel作为参数来编写对象