数据
将XYZ坐标转换为分子描述符
参数
XYZ2X
XYZfile=[带有XYZ坐标的输入文件S]
XfileOut=[带有X值的输出文件S]
分子描述符参数
如果用户仅使用 XYZfile
参数提供XYZ文件,首先需要将XYZ坐标转换为分子描述符。
molDescriptor=[分子描述符]
molDescrType=[分子描述符的类型]
unsorted
[RE的默认值]sorted
[CM的默认值]permuted
(可选,RE和CM均可用)unsorted
描述符是原始的描述符,但它们不能保证同核原子的排列不变性。sorted
描述符确保排列不变性,通常用于CM描述符(其中CM按其规范排序)。在正则描述符的情况下,排序是由核排斥完成的。它可以用于 基于结构的采样 ,但在插值中引入了不连续性,不应用于模拟。相关选项:XYZsortedFileOut
,permInvGroups
,permInvNuclei
。请参见 相关教程 。permuted
使用用户定义原子的排列来扩充描述符。相关参数:permInvKernel
,permInvGroups
,permInvNuclei
。请参见 相关教程 。
XYZsortedFileOut=[带有有序XYZ坐标的输出文件]
可选。
仅可与
molDescriptor=RE molDescrType=sorted
一起使用。按核斥力对选定的原子进行排序后,保存带有XYZ坐标的文件。按核斥力对选定的原子进行分类并打印。
permInvNuclei=[置换不变的原子核]
可选。
应与
molDescrType=permuted
(通常还有permInvKernel
)一起使用例如,
permInvNuclei=2-3.5-6
会改变原子2,3和6,7的排列。请参见 相关教程 。
permInvGroups=[置换不变群]
可选。
应与
molDescrType=permuted
(通常还有permInvKernel
)一起使用例如,对于水二聚体
permInvGroups=1,2,3-4,5,6
通过翻转二聚体中的单体产生排列原子指数。
示例
MLatom.py XYZ2X XYZfile=CH3Cl.xyz XfileOut=CH3Cl.x
分析数据集
MLatom可以通过对比数据集来进行分析,例如,主要是通过计算ML预测值相对于可用参考值的误差。所有文件都是输入文件,MLatom输出的是统计分析。
参数
analyze
Yfile=[带值的输入文件]
YgradXYZfile=[带有XYZ坐标梯度的输出文件]
YestFile=[带有预估的Y值的输入文件]
YgradXYZestFile=[带有预估的XYZ梯度的输入文件]
示例
MLatom.py analyze Yfile=en.dat YestFile=enest.dat
采样和切片
采样和切片的参数
sample
在
iTrainOut
,CVtest
,LOOtest
,CVopt
,LOOopt
中至少选择一个参见 教程
XYZfile=[带有XYZ坐标的文件]
或XfileIn=[带有输入向量X的文件]
必选。
iTrainOut=[带有训练点索引的文件]
无默认文件名。
生成训练集的索引。
iTestOut=[带有测试点索引的文件]
无默认文件名。
生成测试集的索引。
iSubtrainOut=[带有子训练点索引的文件]
无默认文件名。
生成子训练集的索引。
iValidateOut=[带有验证点索引的文件]
无默认文件名。
生成验证集的索引。
CVtest
可选。
相关选项
NcvOptFolds
生成用于切片的N倍交叉验证的索引。默认情况下,使用5倍交叉验证。
NcvTestFolds=[CV折叠数]
5
[默认]。仅可与
CVopt
一起使用。如果这个数字等于数据点的数量,则执行留一交叉验证。交叉验证只能使用随机抽样或不使用抽样。
LOOtest
可选。
留一交叉验证。只能使用随机抽样或不使用抽样。
iCVtestPrefOut=[带有CVtest索引的文件前缀]
无默认前缀。
文件名将包含所需的前缀。
CVopt
可选。
相关选项
NcvOptFolds
生成用于超参数优化的N倍交叉验证的索引。默认情况下,使用5倍交叉验证。
NcvOptFolds=[CV折叠数]
5
[默认]。仅可与
CVopt
一起使用。如果这个数字等于数据点的数量,则执行留一交叉验证。交叉验证只能使用随机抽样或不使用抽样。
LOOopt
可选。
留一交叉验证。只能使用随机抽样或不使用抽样。
iCVoptPrefOut=[带有CVopt索引的文件前缀]
无默认前缀。
文件名将包含所需的前缀。
采样的其他可选参数
参数需与 sample
一起使用。
sampling=[数据集采样切片的类型]
random
[默认] 随机采样none
简单地将未整理的数据集分成训练集和测试集(按此顺序)(以及子训练集和验证集)structure-based
基于结构的采样farthest-point
最远点遍历迭代过程
Nuse=[要使用的数据集文件的前N个条目]
100% [默认]
可选。
Ntrain=[子训练点的数量或训练点的一小部分]
默认是总集的80% 。
如果参数是小于1的十进制数,则认为它是总集的一部分。
Ntest=[验证点的数量或训练点的一小部分]
默认情况下,是总集减去训练点后的剩余点。
如果参数是小于1的十进制数,则认为它是总集的一部分。
Nsubtrain=[子训练点的数量或训练点的一小部分]
默认是训练集的80% 。
如果参数是小于1的十进制数,则认为它是训练集的一部分。
Nvalidate=[验证点的数量或训练点的一小部分]
默认情况下,是训练集减去子训练点后的剩余点。
如果参数是小于1的十进制数,则认为它是训练集的一部分。
示例
基于结构的采样:
mlatom sample sampling=structure-based XYZfile=CH3Cl.xyz Ntrain=1000 Ntest=10000 iTrainOut=itrain.dat iTestOut=itest.dat
切片
有时,按描述符到平衡描述符的欧几里得距离对数据进行切片很有用。参见 教程 。
切片的参数:
|
必选。 |
|
必选。 |
|
必选。 |
|
|
从切片中采样的参数:
|
|
|
必选。 |
|
|
从切片合并索引的参数:
|
|
|
必选。 |
|
|
示例
参见 教程 。
MLatom.py slice Nslices=3 XfileIn=x_sorted.dat eqXfileIn=eq.x
mlatom sampleFromSlices Nslices=3 sampling=structure-based Ntrain=4480
mlatom mergeSlices Nslices=3 Ntrain=4480