Structure encoding, i.e., representing structures in a vectorized format as input for ML models, plays a crucial role in model performance and interpretation. Here we encoded the perovskite structures with two categories of representations, i.e., atom and bond features. The details of various atom and bond features are shown in Table . We got nine types of atom features for each atom using the "mendeleev" Python package. As each perovskite unit cell comprises five atoms, we acquired a total of 45 atom features for each perovskite structure. For bond features, the interatomic bond distances between an atom and its 12 nearest neighbors were calculated using the Pymatgen package. Thus, each perovskite structure contributes 60 bond features. By combining both atom and bond features, we obtained a total of 105 features as input for CML training. In contrast, for GNN models, atom features were represented as node features in one-hot encoding, while interatomic bond distances were encoded as edge features.