суббота, 22 декабря 2018 г.

40 вопросов джуниору от analyticsvidhya.com, часть 3





Вопросы 21-30




21. Чем отличаются два алгоритма на основе решающих деревьев Random Forest и Gradient Boosting?
Принципиальное различие в том, что Random Forest использует беггинг, а GBM использует бустинг.
В беггинге данные рандомно делятся на n выборок. Затем модель строится на всех выборках по одинаковому алгоритму. Затем полученные прогнозы объединяются с использованием голосования (классификация) или усреднения (регрессия). Все операции делаются параллельно.
При бустинге после первой „проходки“ алгоритм оценивает неправильно классифицированные прогнозы чтобы исправить их в следующей итерации. Этот последовательный процесс продолжается, пока не будет достигнут критерий остановки.
Random Forrest повышает точность модели за счет уменьшения дисперсии. Выращенные деревья некоррелированы, чтобы максимизировать уменьшение дисперсии.
GBM уменьшает смещение и дисперсию для повышения точности .



22. Алгоритм дерева бинарной классификации относительно прост. Как происходит деление дерева, т.е. как дерево решает, какую переменную разделить в корневом и последующих узлах?

В задачах классификации деревья принимают решение на основании индекса Джини и энтропии узла. Алгоритм дерева находит наилучший возможный признак, который разделит данные на дочерние узлы.
Индекс Джини говорит, что если мы случайно выберем два элемента из набора данных, то они должны быть одного класса, и вероятность этого равна 1. Мы можем рассчитать Джини следующим образом:
  1. Рассчитать Джини для подузлов, используя формулу суммы квадратов вероятности успеха и неудачи (p^2 + q^2).
  2. Рассчитайте Джини для деления, используя взвешенную оценку Джини каждого узла.

Энтропия это мера неупорядоченности, для бинарной классификации определяемая как -p * log2 p - q log 2 q (log по основанию 2)
Здесь p и q - вероятность успеха и неуспеха в этом узле. Энтропия равна нулю, когда узел однороден. Максимум энтропии составляет 50% на 50% и случается, когда оба класса присутствуют в узле. Чем ниже энтропия тем лучше.



23. Вы построили модель Random Forrest из 10000 деревьев. На train ошибка =0,00, на валидации =34,23. Почему так получилось?
Модель перебучена. Ошибка обучения 0,00 означает, что классификатор подстраивается в train до такой степени, что почти не работают в test. Когда этот классификатор запускался на test, он не мог найти свои шаблоны и возвращал прогноз с более высокой ошибкой.
В Random Forrest это происходит при использовании слишком большого количества деревьев. Чтобы избежать такой ситуации лучше использовать cross validation для настройки этого параметра.


24. У вас есть набор данных для работы, где p (количество признаков) > n (количество объектов). Почему использование OLS (Ordinary Least Squares, метод наименьших квадратов) будет плохим вариантом и какие методы лучше всего тут использовать?
В многомерных наборах данных дисперсии становятся бесконечными и мы не можем брать OLS и другие классические методы регрессии. В такой ситуации можно использовать штрафные методы регрессии типа Lasso, LARS (least angle regression, метод наименьших углов) и Ridge, которые могут сократить коэффициенты для уменьшения дисперсии. Ridge работает лучше всего в ситуациях, когда оценки наименьших квадратов имеют более высокую дисперсию. Полезной также может оказаться регрессия подмножества (subset regression) и пошаговая прямая регрессия (forward stepwise regression).


25. Что такое выпуклая кривая (convex hull)? Подсказка: вспомните про SVM.








В случае линейно разделимых данных выпуклая кривая представляет собой внешние границы двух групп точек данных.
Как только выпуклая оболочка создана, мы получаем MMH (maximum margin hyperplane, гиперплоскость с максимальным зазором) в виде перпендикулярной биссектрисы между двумя выпуклыми оболочками. MMH это линия, которая пытается создать наибольшее разделение между двумя группами. (В SVM „margin“ означает „зазор“, в других контекстах это „отступ“ - важное уточнение было в тексте Ю.Кашницкого). 




26. One hot encoding увеличивает размерность данных. Почему аналогичным образом не кодируются целевые переменные?
При использовании one hot encoder размерность данных увеличивается, потому что создаётся новый признак для каждого уровня, присутствующего в категориальных переменных. Например: допустим, у нас есть признак «цвет». Переменная имеет 3 уровня, а именно: красный, синий и зеленый. Одна горячая кодовая переменная «color» сгенерирует три новые переменные, такие как Color.Red, Color.Blue и Color.Green, содержащие значения 0 и 1. При кодировании целевых переменных уровни категориальных переменных кодируются как 0 и 1, поэтому новая переменная не создается. Кодирование меток в основном используется для двоичных переменных.




27. Какой вид cross validation вы бы использовали для „временных рядов“ - k-fold или LOOCV (Leave-One-Out-Cross-Validation)?
Никакой. В случае временных рядов k-fold может стать проблемой. Например в 4-м или 5-м году может быть некоторая закономерность, а в 3-м - нет. Повторные выборки повторят эти тенденции, и для исследований мы ограничимся только некоторыми годами, что неверно. Поэтому лучше использовать стратегию прямого объединения (forward chaining strategy) с 5-ю фолдами как показано ниже:
  • fold 1 : training [1], test [2]
  • fold 2 : training [1 2], test [3]
  • fold 3 : training [1 2 3], test [4]
  • fold 4 : training [1 2 3 4], test [5]
  • fold 5 : training [1 2 3 4 5], test [6]
где 1,2,3,4,5,6 представляет «год»


28. В наборе данных в 8 из 50 признаков больше 30% пропущенных значений. Что вы будете делать?
Мы можем применить следующие способы:
  • Присвоим уникальную категорию пропущенным значениям (возможно, пропущенные значения могли бы быть полезны).
  • Мы можем их удалить.
  • Мы можем проверить их распределение с помощью целевой переменной. Если найдется какая-то закономерность, мы сохраним пропущенные значения и присвоим им новую категорию.


29. «Люди, которые купили это, также купили…», полученные на Амазоне, являются результатом какого алгоритма?
Основная идея для механизма рекомендаций - совместная фильтрация. Алгоритм совместной фильтрации учитывает «поведение пользователя» для рекомендаций. Он используют поведение других пользователей и товаров с точки зрения истории транзакций, рейтингов, выбора и информации о покупке. Поведение других пользователей и предпочтения по элементам используются, чтобы рекомендовать товары новым пользователям. В этом случае особенности товаров не известны.


30. Что вы понимаете под ошибками Типа I и Типа II (Type I, Type II error)?
Нулевая гипотеза — базовое предположение науки, о том, что не существует связи между двумя наблюдаемыми событиями.
Ошибка Типа I (false positive) - нулевая гипотеза верна, и мы отвергаем её. Ошибка Типа II (false negative) - нулевая гипотеза ложна, и мы принимаем её. В контексте матрицы ошибок (confusion matrix) можно сказать, что ошибка Типа I возникает, когда мы классифицируем значение как положительное (1), хотя оно отрицательно (0). Ошибка Типа II возникает, когда мы классифицируем значение как отрицательное (0), когда оно положительное (1).













Комментариев нет:

Отправить комментарий