Я беру быстрый Введение в машинное обучение , и в Уроке 1 он использует Случайный Лес в наборе Синей книги для бульдозеров из Kaggle ,
При любопытном поступке ко мне инструктор не использовал pd.get_dummies()
или OneHotEncoder
из SKlearn для обработки категориальных данных. Вместо этого он назвал pd.Series.cat.codes
во всех категориальных столбцах.
Я заметил, что когда был вызван метод fit()
, он вычислялся намного быстрее (около 1 минуты) для набора данных с использованием pd.Series.cat.codes
, тогда как набор данных с фиктивными переменными падал на виртуальном сервере, который я запускал и использовал 60 ГБ ОЗУ.
Память каждого занятого кадра данных была примерно одинаковой ........ 54 МБ. Мне любопытно, почему один фрейм данных намного быстрее, чем другой?
Не потому ли, что с одним столбцом целых чисел случайный лес рассматривает только среднее значение этого столбца в качестве точки вырезания, что облегчает его вычисление? Или что-то еще?