Это искусство отбирать лучшее

В этом сообщении блога мы обсудим выборку и связанные с ней компоненты. Этой теме обычно не придают особого значения по сравнению с другими причудливыми статистическими терминами, такими как байес, частота, распределение и т. Д.

Тема семплирования достаточно сухая и требует от читающего пользователя особых усилий. Моя цель из этого блога - поделиться темой выборки в более наглядной форме.

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

Типы отбора проб

  • Невероятностный отбор
  • Случайная или вероятностная выборка

Невероятностная выборка

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

Удобная выборка. Выбор подмножества зависит от наличия. Таким образом это удобно.

Выборка «снежный ком»: существующее подмножество помогает найти следующий набор подмножества. Он перекатывается от одной выборки к другой.

Выборка суждения: выбор подмножества на основе рекомендаций экспертов, которые оценивают выборку для выполнения задачи.

Выборка квот. Выбор подмножества происходит в заранее определенном порядке из доступных квот без какой-либо рандомизации.

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

Примеры не вероятностной выборки

  • При написании обзора на Amazon люди, имеющие доступ к Интернету или желающие писать, фиксируются как данные.
  • Модели обучения языкам, доступность данных из Википедии или Reddit, а это не все возможные данные в Интернете, предвзятость выбора.
  • Записи пациентов о наличии заболевания.

Случайная или вероятностная выборка

При случайной выборке выбор каждой выборки из генеральной совокупности имеет равные вероятности. Рассмотрим игровой автомат, в котором каждый барабан представляет собой набор элементов или число, предположим, что на каждом барабане есть 10 элементов, вероятность каждого элемента на каждом барабане составляет 1/10, а выбор выполняется случайным образом.

Реализовать вышеупомянутую выборку довольно просто, но рассмотрим ситуацию, когда мы хотим выбрать 10% всех выборок. И если есть какие-то редкие классы, которые встречаются только у 0,1% населения, тогда есть большой шанс полностью пропустить образцы из этого редкого класса. Модель, обученная такому процессу отбора, может подумать, что редкий класс недоступен.

Стратифицированная выборка

Предположим, у нас есть 10 различных классов для прогнозирования, и каждый класс имеет некоторый набор точек данных для представления класса. Теперь, когда мы выполняем случайную выборку, например, выбираем 10% из каждого класса, мы не можем полностью пропустить класс. Это называется стратифицированной выборкой.

В стратифицированной выборке мы группируем выборки на основе некоторой общей связи и выбираем соответственно. Например, мы можем разделить группу по полу и выбрать по 10% от каждой, сохранив вариативность в выборках. Каждая группа называется стратами.

Обратной стороной стратифицированной выборки является то, что мы не можем создать подгруппу из доступных выборок или когда одна выборка может принадлежать нескольким подгруппам. Это сложно, если у вас есть задача с несколькими ярлыками, а образец может относиться как к классу A, так и к классу B. Например, в задаче классификации сущностей имя может быть как PERSON, так и LOCATION.

Взвешенная выборка

При взвешенной выборке каждой выборке присваивается вес, который определяет вероятность ее выбора. Например, если вы хотите, чтобы образец отбирался в 30% случаев, присвойте ему вес 0,3. Этот метод позволяет встроить экспертизу в предметной области. Например, если вы знаете, что более свежие данные более ценны для вашей модели, вы можете придать последним данным больший вес.

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

Выборка по важности

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

Из Wiki: Выборка по важности - это метод уменьшения дисперсии, который можно использовать в методе Монте-Карло. Идея выборки по важности заключается в том, что определенные значения входных случайных величин в моделировании оказывают большее влияние на оцениваемый параметр, чем другие. Если эти важные значения подчеркиваются путем более частой выборки, то дисперсия оценки может быть уменьшена. Следовательно, основная методология выборки по важности состоит в том, чтобы выбрать распределение, которое поощряет важные ценности.

Сложность выборки по важности состоит в том, чтобы найти распределение, которое поощряет важные ценности. Выборка по важности имеет широкое применение в ЛР

Для более глубокого изучения выборки по важности: RL - Выборка по важности (Джонатан Хуэй)

Отбор проб из резервуара

Мотивация между отбором проб из коллектора: предположим, мы видим последовательность элементов, по одному. Мы хотим сохранить в памяти десять элементов и хотим, чтобы они выбирались случайным образом из последовательности. Если мы знаем общее количество элементов n и можем обращаться к ним произвольно, то решение простое: выберите 10 различных индексов i между 1 и n с равной вероятностью и оставим i -ые элементы. Проблема в том, что мы не всегда знаем заранее точное n.

Ключевым моментом здесь является то, что мы хотим случайным образом выбрать k элементов, каждый из которых имеет равную вероятность из неизвестного размера выборки n.

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

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

Одно из решений - отбор проб из коллектора. Алгоритм выглядит так:

  1. Первые k элементов помещаются в резервуар.
  2. Для каждого входящего i-го элемента сгенерируйте случайное число j от 1 до i.
  3. Если 1 ≤ j ≤ k: заменить j-е в резервуаре на i-е.

Каждый входящий i-й элемент имеет (k / i) вероятность нахождения в резервуаре. Вы также можете доказать, что каждый элемент в резервуаре имеет (k / i) вероятность присутствия там.

#Reservoir Sampling
(* S has items to sample, R will contain the result *)
ReservoirSample(S[1..n], R[1..k])
  // fill the reservoir array
  for i := 1 to k
      R[i] := S[i]

  // replace elements with gradually decreasing probability
  for i := k+1 to n
    (* randomInteger(a, b) generates a uniform integer from the inclusive range {a, ..., b} *)
    j := randomInteger(1, i)
    if j <= k
        R[j] := S[i]

Например, мы можем обработать поток с тремя элементами следующим образом:

  1. Сохраните первый элемент.
  2. Сохраните второй элемент с вероятностью 1/2. Теперь оба элемента имеют равную вероятность нахождения в резервуаре.
  3. Сохраните третий элемент с вероятностью 1/3. У двух предыдущих элементов также есть окончательная вероятность выбора (1/2) ∗ (2/3) = 1/3.

Спасибо за чтение. Если вам понравилось читать мои статьи, загляните в Math + Computing = AI, чтобы увидеть больше статей.

Свяжитесь со мной в LinkedIn и Twitter 🐅 ✋

Ссылка