В следующем посте вы прочтете о следующих пунктах;
- Гауссово ядро
- Функция плотности вероятности или 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 для оценки распределения точек данных для прогнозируемых и реальных значений.
Я проиллюстрировал результаты сравнения в различных подходах, включая каркасные, трехмерные, двумерные и шестигранные графики.