Всем привет! Это моя первая запись в моем журнале по науке о данных на среднем уровне. Немного о себе; Меня зовут Бенги, я учусь в магистратуре наук о данных Университета Мангейма, Германия. Я начну это путешествие, чтобы поделиться тем, что я изучил до сих пор, со всеми вами, и я считаю, что это также хороший способ для меня практиковать то, что я изучил до сих пор. Если вы думаете, что то, что я написал, не совсем правильно, пожалуйста, не стесняйтесь обращаться ко мне, отправив мне электронное письмо или написав комментарий, пожалуйста, имейте в виду, что я всего лишь студент, и я новичок в этом мире науки о данных, так что, пожалуйста, потерпите меня.

Алгоритмы машинного обучения обычно используются для прогнозирования категориальных меток классов. Например, прогнозирование того, собирается ли клиент отток или прогнозирование того, собирается ли клиент покупать продукт. Модели, предсказывающие категориальные метки классов, также известны как модели классификации. Один из подходов машинного обучения, который используется для классификации, - ближайший сосед.

Классификатор ближайшего соседа оценивает результат одного наблюдения на основе выбранного числа его ближайших соседей. Для алгоритма ближайшего соседа вам понадобится набор сохраненных записей (обучающие данные), метрика расстояния для вычисления расстояния между записями и значение k, которое вы решите. Например, давайте возьмем рассматриваемый рисунок ниже и представим, что у нас есть два класса, класс A и B, и неизвестная запись, представленная звездочкой, класс которой я пытаюсь предсказать. Здесь, если я посмотрю на 3 (k) ближайших записи, другими словами 3 ближайших соседа, я бы назначил класс B неизвестной записи, так как в этом случае вероятность присвоения A составляет 1/3, а вероятность назначения B равна 2 / 3. Если я увеличу количество ближайших соседей до 6, то я бы назначил класс A неизвестной записи, поскольку в этом случае вероятность присвоения A составляет 4/6, а присвоения B - 2/6. В классификаторе ближайшего соседа выбор хорошего значения для k важен, потому что, если k слишком мало, он становится чувствительным к точкам шума, где, как если бы k слишком велик, он может включать точки из других классов. Лучший способ найти оптимальное количество k - запустить модель с разными значениями k и выбрать лучший k с максимальной точностью или то, к чему вы стремитесь. Мне также посоветовали проверить значения k от 1 до 10. Пример здесь основан на получении большинства голосов, но ближайшего соседа также можно вычислить путем взвешивания голосов в зависимости от расстояния.

Лог-потери - это мера эффективности модели классификации, которая учитывает вероятность, присвоенную цели. Цель каждой модели машинного обучения - минимизировать это значение. Ниже вы можете увидеть формулу, где y обозначает двоичную цель, которую вы пытаетесь предсказать с помощью модели, а p обозначает вероятность, присвоенную моделью.

Потеря журнала отличается от других показателей, поскольку учитывает фактор вероятности. Например, если цель, которую вы пытаетесь предсказать, равна 1, и если ваша модель присваивает вероятность 0,05 1, тогда ваши потери журнала будут выше (- (1 * log (0,05) + 0 * log (0,95)) = 1,30) , тогда как если ваша модель присваивает 0,95 (- (1 * log (0,95) + 0 * log (0,05)) = 0,02), то ваши потери в журнале будут ниже, к чему мы стремимся. Помните, что чем меньше потеря бревна, тем лучше. Итак, для потери журнала недостаточно просто предсказывать правильно, вы также должны предсказывать сильные. Метрика оценки потерь журнала обычно используется в качестве метрики оценки в соревнованиях Kaggle для задач классификации, и это действительно хороший показатель. Однако настоящий вопрос, который следует задать, заключается в том, является ли это хорошей метрикой для всех приложений машинного обучения классификации? И ответ нет.

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

  • Все соседние точки могут относиться к классу A, в этом случае вероятность того, что неизвестная точка будет A, будет равна 1 (3/3), и модель присвоит A этой записи.
  • 2 из 3 соседних точек относятся к классу A, в этом случае вероятность того, что неизвестная точка будет A, будет составлять 0,67 (2/3), и модель присвоит A этой записи. Здесь мы по-прежнему правы, но, как видите, сила нашего решения невелика.
  • 1 из 3 соседних точек относится к классу A, в этом случае вероятность того, что неизвестная точка будет A, будет 0,33 (1/3), и модель присвоит B этой записи. Здесь мы уже не правы.
  • 0 из 3 соседних точек относятся к классу A, в этом случае вероятность того, что неизвестная точка будет A, будет равна 0 (0/3), и модель назначит B этой записи. Здесь мы сильно ошибаемся.

Я хочу сказать, что по мере увеличения значения k сила нашего решения также будет увеличиваться, и, следовательно, наши потери в журнале будут ниже. Если у нас k 3, то наша наивысшая сила будет равна 1, за которой следует 0,67, тогда как, если у нас k равно 100, тогда наша самая высокая сила будет 1, за которой следует 0,99. Но более высокие значения k могут также привести к включению точек из других классов и, следовательно, могут снизить точность модели. Таким образом, не следует полагаться только на потерю журнала при оценке моделей ближайшего соседа с помощью техники большинства голосов, потому что это может привести к необоснованному увеличению числа k, чтобы уменьшить потерю журнала, и, в свою очередь, точность модели может резко снизиться.

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

использованная литература

ДеВильд, Б. (26 октября 2012 г.). [Алгоритм ближайшего соседа]. Получено с http://bdewilde.github.io/blog/blogger/2012/10/26/classification-of-hand-written-digits-3/