В следующем посте вы прочтете о следующих пунктах;

  • Гауссово ядро
  • Функция плотности вероятности или PDF
  • оценка плотности ядра или KDE

Если вы заинтересованы в работе с проблемами регрессии в машинном обучении, вы анализируете свои окончательные результаты, чтобы лучше проверить производительность модели.
Вы можете спросить, у нас уже есть соответствующие показатели, такие как RMSE, MSE, R2 и т. д.; Итак, что мы должны подробнее проанализировать в модели машинного обучения?

Это был и мой вопрос, но когда я начал изучать регрессоры и сравнивать разные модели вместе, я столкнулся с проблемой, как я могу четко показать производительность модели машинного обучения, чтобы иметь лучшее сравнение между моделями.

Поэтому я исследовал, чтобы найти лучший подход для своих экспериментов, и нашел свой ответ, которым я делюсь этим решением в этой теме. Но сначала мы должны рассмотреть некоторые основные темы.

Обратите внимание, что я включил соответствующие встроенные строки кода Python, и вы можете получить доступ к полному коду Python и примеру, пожалуйста, обратитесь к моим kaggle и Github.

Гауссово ядро

В машинном обучении ядро ​​относится к форме используемой функции. Следовательно, в гауссовском ядре у нас есть ядро ​​с гауссовской формой распределения. Мы часто используем функцию Гаусса для описания нормального распределения.

Функция плотности вероятности

функция плотности вероятности (PDF). PDF относится к функции вероятности случайной непрерывной переменной, которая возвращает вероятность входных данных. Мы используем PDF, чтобы иметь вероятность переменной.

Давайте вместе решим пример, чтобы получить четкое представление о PDF.
Предположим, что прогнозируемое значение одной конкретной цели регрессии для одного экземпляра обычно находится между двумя и четыре. Вероятность получить прогнозируемое значение с точным значением три равна нулю. Слишком много случаев, когда их предсказания примерно три с половиной, но не три. Если вероятность предсказания между 3 и 3,20 измерима и предположим, что она составляет около 3%. Следовательно, вероятность наличия значения прогноза между 3 и 3,21 можно измерить с помощью предыдущей вероятности. Расчет этого PDF в движущемся окне показывает вероятность предсказанных значений в определенном окне.

Оценка плотности ядра

Зная функцию плотности вероятности PDF, нам нужен инструмент для ее оценки для случайной непрерывной переменной. Оценка плотности ядра (KDE) в данном случае является непараметрической.

import scipy.stats as st
st.gaussian_kde(dataset)

Он будет оценивать распределение данных, и когда мы имеем дело с большими точками данных, это будет хороший инструмент для использования и анализа результатов.

Прогноз

Поскольку основное внимание в этом исследовании уделяется не обучению машинному обучению, я пропускаю эту часть, и мы предполагаем, что мы уже обучили регрессионную модель и получили прогнозируемые и истинные значения. Итак, далее мы используем эти две переменные для статистических тестов и пытаемся их интерпретировать.

Анализ производительности

гаусс KDE

Здесь мы предполагаем, что хотим оценить результат регрессионной модели, для которой у нас уже есть прогнозируемые значения. Поэтому нам нужно использовать гауссовский KDE из `scipy.stats`.

import scipy.stats as st

Наш анализ будет двухмерным, поэтому у нас должен быть массив с двумя измерениями, включая прогнозируемые и реальные значения.

x = predicted_values
y = y_test
xy = np.vstack((x, y))

Первая строка - прогнозируемые значения

xy[0, :] == x

создать объект KDE как

kernel = st.gaussian_kde(xy)
print(kernel)
>>> <scipy.stats._kde.gaussian_kde at 0x20a430ef7f0>

мы применяем созданный pdf на 2-D сетке из NumPy. Для этого мы преобразуем массив в плотный слой сетки и объединяем как предсказанные, так и реальные значения.

xx, yy = np.mgrid[x.min():x.max():100j, y.min():y.max():100j]
concat = np.dstack((xx, yy))

Concat — это трехмерный массив, включающий предсказанные и реальные значения.

Время вернуть плотный слой pdf;

z = np.apply_along_axis(kernel, 2, concat)
z = z.reshape(100, 100)
print(z.shape)
>>> (100, 100)

Окончательный сюжет будет следующим;

Вы можете иметь этот график в трехмерной форме следующим образом. Разница между 2-D и 3-D графиками заключается в том, что я изменил два 2-D измерения ядра для 3-D графика.

or

Основной файл хранится в репозитории GitHub.

Гексбин сюжет

Еще одним полезным инструментом для этой интерпретации является график hexbin. Поскольку у нас есть две большие числовые переменные со слишком большим количеством точек данных. Этот инструмент наносит точки данных на разные шестигранники и указывает подсчет с помощью цветной полосы.

Заключение

В этом эксперименте я рассмотрел игрушечный набор данных регрессии с 1500 экземплярами и двумя целями. Я обучил модель регрессора машинного обучения набору данных и применил инструмент gaussian_kde для оценки распределения точек данных для прогнозируемых и реальных значений.
Я проиллюстрировал результаты сравнения в различных подходах, включая каркасные, трехмерные, двумерные и шестигранные графики.