Значение с плавающей запятой для количества элементов для каждой ячейки в матрице путаницы в Azure ML

Я работаю со службой машинного обучения Azure для моделирования. Чтобы отслеживать и анализировать результат задачи бинарной классификации, я использую метод score-classification в библиотеке azureml.training.tabular.score.scoring. Я вызываю метод следующим образом:

metrics = score_classification(
        y_test, y_pred_probs, metrics_names_list, class_labels, train_labels, sample_weight=sample_weights, use_binary=True)

Входные аргументы:

  • y_test — это массив из 0 и 1.
  • y_pred — это массив значений с плавающей запятой для каждого элемента.
  • metrics_names_list — это список имен метрик, которые я хочу рассчитать: ['f1_score_classwise', 'confusion_matrix'].
  • class_labels — это массив из двух элементов [0, 1].
  • train_labels — это список из двух пунктов ['False', 'True'].

Когда он вычисляет метрики, которые я отправил как metrics_names_list, результаты отображаются на портале машинного обучения Azure на странице метрик.

Матрица путаницы — одна из метрик, которые я рисую каждый раз. Он имеет поле со списком для представления. Это поле со списком может быть установлено как «Необработанное», чтобы отображать количество элементов для каждой ячейки, и «Нормализированное», чтобы отображать процент ячеек.

Проблема в том, что я вижу число с плавающей запятой вместо целых чисел для Raw конфигурации этой матрицы! Я не знаю, как справиться с этой проблемой?

Какой тип числа вы ожидаете увидеть в качестве необработанных значений?

Seyfi 10.04.2023 16:54

Абсолютно целые значения! Все ячейки матрицы путаницы представляют собой целочисленные значения, поскольку они представляют количество подсчетов TP, TN, FN и FT. @Сейфи

elldora 10.04.2023 17:04
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
4
2
88
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы используете веса выборки, значения матрицы путаницы будут рассчитываться как сумма весов выборки для каждой ячейки, что может привести к плавающим значениям. Если вы хотите видеть целочисленные значения в матрице путаницы, вы можете попробовать не передавать какие-либо веса выборки в метод score_classification.

classification_metrics = list(constants.CLASSIFICATION_SCALAR_SET)
scores = scoring.score_classification(
            y_test_df.values, predicted, classification_metrics, class_labels, train_labels
        )

Другие вопросы по теме