reflect-bothОценка сходства

В этом подразделе представлена количественная оценка схожести с помощью индексов схожести. Примеры приведены в './examples/similarity' в корневом каталоге SAUNA.

Оценить, насколько два разных моделй схожи с помощью индексов схожести, можно с использованием возможностей SAUNA. Сначала SAUNA необходимо импортировать.

import sauna

Для оценки схожести требуются два экземпляра Sensitivities, содержащие чувствительности для двух разных моделей, хотя могут быть использованы и одинаковые модели для проверки корректности работы функции (ожидая единицу для индекса). В этом примере используются чувствительности собственных значений (eigenvalue) для MET1000 и Jezebel, полученные с помощью кода SCALE.

sensitivities_1 = sauna.Sensitivities()
sensitivities_1.from_scale('../../models/MET1000_FC_NFP.2025.02.28T10.09.44.sdf', 'B', 'Eigenvalue')

sensitivities_2 = sauna.Sensitivities()
sensitivities_2.from_scale('../../models/Jezebel_NFP.2025.03.07T19.12.19.sdf', 'B', 'Eigenvalue')

Теперь можно вычислить EE и GG индексы массово с различными комбинациями.

E11    = sauna.Analysis.compare(sensitivities_1, sensitivities_1, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'E')
E12    = sauna.Analysis.compare(sensitivities_1, sensitivities_2, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'E')
E21    = sauna.Analysis.compare(sensitivities_2, sensitivities_1, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'E')
E22    = sauna.Analysis.compare(sensitivities_2, sensitivities_2, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'E')
G11    = sauna.Analysis.compare(sensitivities_1, sensitivities_1, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'G')
G12    = sauna.Analysis.compare(sensitivities_1, sensitivities_2, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'G')
G21    = sauna.Analysis.compare(sensitivities_2, sensitivities_1, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'G')
G22    = sauna.Analysis.compare(sensitivities_2, sensitivities_2, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'G')

Метод GG индекс может быть рассчитан с использованием выбранного набора реакций. Например, учесть те же реакции, что и в SCALE, можно следующим образом, передав список интересующих реакций в качестве аргумента.

G11_x  = sauna.Analysis.compare(sensitivities_1, sensitivities_1, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'G', reactions = [2,4,18,102,103,104,105,106,107])
G12_x  = sauna.Analysis.compare(sensitivities_1, sensitivities_2, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'G', reactions = [2,4,18,102,103,104,105,106,107])
G21_x  = sauna.Analysis.compare(sensitivities_2, sensitivities_1, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'G', reactions = [2,4,18,102,103,104,105,106,107])
G22_x  = sauna.Analysis.compare(sensitivities_2, sensitivities_2, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'G', reactions = [2,4,18,102,103,104,105,106,107])

Финальный индекс, ckc_k требует дополнительного аргумента — ковариаций. Следовательно, их необходимо предоставить для вычисления этого индекса.

Наконец, теперь можно оценить, в какой степени неопределенности разделяются между двумя моделями.

Последнее обновление