В настоящее время я заканчиваю тетрадь по машинному обучению, чтобы, если можно так выразиться, успокоить ноги. Сейчас я работаю над набором данных по недвижимости: каждый экземпляр является округом Калифорнии и имеет несколько атрибутов, включая средний доход округа, который был масштабирован и ограничен до 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, в которой я должен опубликовать этот вопрос, поэтому, если я ошибся, пожалуйста, дайте мне знать, какой может быть соответствующий форум.
Спасибо!