Mlstatkit - это всеобъемлющая библиотека Python, предназначенную для беспрепятственной интеграции установленных статистических методов в проекты машинного обучения. Он охватывает различные инструменты, в том числе тест Делонга для сравнения областей под двумя коррелированными рабочими характеристиками приемника (ROC), начальная загрузка для расчета доверительных интервалов, AUC2OR для преобразования области под управляющей характеристикой приемника (AUC) в несколько родственных статистических данных, таких как Cohen's D, Pearson's Rpbbbbbbe-Ratio, и естественные. Значимость разницы между метриками двух моделей путем случайного перетасовки данных и пересчитывания метрик для создания распределения различий. Благодаря модульной конструкции, MLStatkit предлагает исследователям и ученым для данных гибкий и мощный инструментарий, чтобы дополнить их анализ и модельные оценки, удовлетворяя широкий спектр статистических потребностей в тестировании в области машинного обучения.
Установите Mlstatkit непосредственно из PYPI с помощью PIP:
pip install MLstatkit Функция Delong_test позволяет статистической оценке различий между областями под двумя коррелированными рабочими характеристиками (ROC), полученными из различных моделей . Это облегчает более глубокое понимание сравнительной производительности модели.
Верно : массивная форма (n_samples,)
Истинные двоичные метки в диапазоне {0, 1}.
prob_a : массивная форма (n_samples,)
Прогнозируемые вероятности по первой модели.
prob_b : массивная форма формы (n_samples,)
Прогнозируемые вероятности по второй модели.
Z_SCORE : float
Z -оценка от сравнения AUC двух моделей.
P_Value : Float
Значение P от сравнения AUC двух моделей.
from MLstatkit . stats import Delong_test
# Example data
true = np . array ([ 0 , 1 , 0 , 1 ])
prob_A = np . array ([ 0.1 , 0.4 , 0.35 , 0.8 ])
prob_B = np . array ([ 0.2 , 0.3 , 0.4 , 0.7 ])
# Perform DeLong's test
z_score , p_value = Delong_test ( true , prob_A , prob_B )
print ( f"Z-Score: { z_score } , P-Value: { p_value } " ) Это демонстрирует использование Delong_test для статистически сравнить AUC двух моделей на основе их вероятностей и истинных метков. Возвращенные z-показатели и p-значение помогают в понимании того, является ли разница в характеристиках моделей статистически значимой.
Функция Bootstrapping вычисляет доверительные интервалы для указанных метрик производительности с использованием начальной загрузки, обеспечивая меру надежности оценки. Он поддерживает расчет для AUROC (площадь под кривой ROC), AUPRC (площадь под кривой точного рецидива) и показателей баллов F1.
from MLstatkit . stats import Bootstrapping
# Example data
y_true = np . array ([ 0 , 1 , 0 , 0 , 1 , 1 , 0 , 1 , 0 ])
y_prob = np . array ([ 0.1 , 0.4 , 0.35 , 0.8 , 0.2 , 0.3 , 0.4 , 0.7 , 0.05 ])
# Calculate confidence intervals for AUROC
original_score , confidence_lower , confidence_upper = Bootstrapping ( y_true , y_prob , 'roc_auc' )
print ( f"AUROC: { original_score :.3f } , Confidence interval: [ { confidence_lower :.3f } - { confidence_upper :.3f } ]" )
# Calculate confidence intervals for AUPRC
original_score , confidence_lower , confidence_upper = Bootstrapping ( y_true , y_prob , 'pr_auc' )
print ( f"AUPRC: { original_score :.3f } , Confidence interval: [ { confidence_lower :.3f } - { confidence_upper :.3f } ]" )
# Calculate confidence intervals for F1 score with a custom threshold
original_score , confidence_lower , confidence_upper = Bootstrapping ( y_true , y_prob , 'f1' , threshold = 0.5 )
print ( f"F1 Score: { original_score :.3f } , Confidence interval: [ { confidence_lower :.3f } - { confidence_upper :.3f } ]" )
# Calculate confidence intervals for AUROC, AUPRC, F1 score
for score in [ 'roc_auc' , 'pr_auc' , 'f1' ]:
original_score , conf_lower , conf_upper = Bootstrapping ( y_true , y_prob , score , threshold = 0.5 )
print ( f" { score . upper () } original score: { original_score :.3f } , confidence interval: [ { conf_lower :.3f } - { conf_upper :.3f } ]" ) Функция Permutation_test оценивает статистическую значимость разницы между метриками двух моделей путем случайного перетасовки данных и пересчитывая метрики для создания распределения различий. Этот метод не предполагает конкретного распределения данных, что делает его надежным выбором для сравнения производительности модели.
from MLstatkit . stats import Permutation_test
y_true = np . array ([ 0 , 1 , 0 , 0 , 1 , 1 , 0 , 1 , 0 ])
prob_model_A = np . array ([ 0.1 , 0.4 , 0.35 , 0.8 , 0.2 , 0.3 , 0.4 , 0.7 , 0.05 ])
prob_model_B = np . array ([ 0.2 , 0.3 , 0.25 , 0.85 , 0.15 , 0.35 , 0.45 , 0.65 , 0.01 ])
# Conduct a permutation test to compare F1 scores
metric_a , metric_b , p_value , benchmark , samples_mean , samples_std = Permutation_test (
y_true , prob_model_A , prob_model_B , 'f1'
)
print ( f"F1 Score Model A: { metric_a :.5f } , Model B: { metric_b :.5f } " )
print ( f"Observed Difference: { benchmark :.5f } , p-value: { p_value :.5f } " )
print ( f"Permuted Differences Mean: { samples_mean :.5f } , Std: { samples_std :.5f } " ) Функция AUC2OR преобразует область под значением кривой (AUC) в соотношение шансов (OR) и, необязательно возвращает промежуточные значения, такие как T, Z, D и LN_OR. Это преобразование полезно для понимания взаимосвязи между AUC, общей метрикой в бинарной классификации и или или, которая часто используется в статистическом анализе.
from MLstatkit . stats import AUC2OR
AUC = 0.7 # Example AUC value
# Convert AUC to OR and retrieve all intermediate values
t , z , d , ln_OR , OR = AUC2OR ( AUC , return_all = True )
print ( f"t: { t :.5f } , z: { z :.5f } , d: { d :.5f } , ln_OR: { ln_OR :.5f } , OR: { OR :.5f } " )
# Convert AUC to OR without intermediate values
OR = AUC2OR ( AUC )
print ( f"OR: { OR :.5f } " ) Реализация Delong_test в mlstatkit основана на следующей публикации:
Метод Bootstrapping для расчета доверительных интервалов напрямую не ссылается на ни одну публикацию, но является широко принятым статистическим методом для оценки распределения метрики путем повторной выборки с заменой. Для получения комплексного обзора методов начальной загрузки см.
Permutation_tests используются для оценки значимости разницы в показателях производительности между двумя моделями путем случайного перераспределения наблюдений в группах и вычисления метрики. Этот подход не делает конкретные предположения о распределении, что делает его универсальным для различных типов данных. Для основополагающей дискуссии о тестах на перестановку см. В:
Эти ссылки закладывают основу для статистических тестов и методологий, реализованных в Mlstatkit, предоставляя пользователям глубокое понимание их научной основы и применимости.
Функция AUR2OR преобразует область в соответствии с кривой рабочей характеристики приемника (AUC) в несколько связанных статистических данных, включая D-D, RPB, RPB Пирсона, коэффициенты и естественные бревенчатые шансы. Это преобразование особенно полезно при интерпретации производительности классификационных моделей. Для подробного объяснения математических формул, используемых в этом преобразовании, см.
Эти ссылки предоставляют математическую основу для функции AUR2OR, гарантируя, что пользователи могут точно интерпретировать статистическую значимость и практические последствия своих показателей производительности модели.
Мы приветствуем вклад в Mlstatkit! Пожалуйста, смотрите наши рекомендации по вкладу для получения более подробной информации.
Mlstatkit распределяется по лицензии MIT. Для получения дополнительной информации см. Файл лицензии в репозитории GitHub.
0.1.7 Обновление README.md0.1.6 отладка.0.1.5 Обновление README.md , добавить функцию AUC2OR .0.1.4 Обновление README.md , добавить функцию Permutation_tests , повторные параметры Bootstrapping .0.1.3 Обновление README.md .0.1.2 Добавить дисплей процесса процесса начальной Bootstrapping .0.1.1 Обновление README.md , setup.py . Добавить CONTRIBUTING.md .0.1.0 Первое издание