Понимание стратифицированной выборки в numpy - PullRequest
0 голосов
/ 06 апреля 2019

В настоящее время я заканчиваю тетрадь по машинному обучению, чтобы, если можно так выразиться, успокоить ноги. Сейчас я работаю над набором данных по недвижимости: каждый экземпляр является округом Калифорнии и имеет несколько атрибутов, включая средний доход округа, который был масштабирован и ограничен до 15. Гистограмма среднего дохода показывает, что большинство значений среднего дохода сгруппированы в диапазоне от 2 до 5, но некоторые значения выходят далеко за пределы 6. Автор хочет использовать стратифицированную выборку, основываясь на показателях медианного значения дохода. Он предлагает следующий фрагмент кода для создания атрибута категории дохода.

housing["income_cat"] = np.ceil(housing["median_income"] / 1.5)
housing["income_cat"].where(housing["income_cat"] < 5, 5.0, inplace=True)

Он объясняет, что он делит median_income на 1,5, чтобы ограничить количество категорий, и что затем он сохраняет только те категории ниже 5 и объединяет все остальные категории в категорию 5.

Чего я не понимаю, так это

  • Почему математически обоснованно делить median_income каждого экземпляра для создания страт? Что именно означает результат этого деления? Существуют ли другие способы расчета / ограничения количества страт?
  • Как деление ограничивает количество категорий и почему он выбрал 1,5 в качестве делителя вместо другого значения? Как он узнал, какую ценность выбрать?
  • Почему ему нужны только 5 категорий и как он заранее знал, что будет как минимум 5 категорий?

Любая помощь в понимании этих решений будет принята с благодарностью.

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

Спасибо!

1 Ответ

0 голосов
/ 07 апреля 2019

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

СТРАТИФИКАЦИЯ ОТБОРА ПРОБ: предположим, у вас есть набор данных с потребителями, которые едят разные фрукты.Одной из функций является «тип фруктов», и теперь эта функция имеет 10 различных категорий (яблоко, апельсин, виноград… и т. Д.), Если вы просто отбираете данные из набора данных, существует вероятность того, что данные выборки могут не охватывать все категории.Что очень плохо, когда тренируешь данные.Чтобы избежать такого сценария, у нас есть метод, называемый стратифицированной выборкой, в этой вероятности выборки каждая отдельная категория одинакова, чтобы мы не пропустили никаких полезных данных.

Пожалуйста, дайте мне знать, если у вас все еще есть какие-либо вопросы,Я был бы очень рад помочь вам.

...