2016-03-04 1 views
0

Я пытался подготовить классификатор randomforest в python. Однако в моем исходном pandas.dataframe есть float64, object, datetime64, int64 и booldtypes (почти все виды dtypes разрешены в пандах).Какой dtype лучше работает при тренировке randomforest в python?

  • Нужно ли преобразовать BOOL в поплавок или INT?
  • Для два-значением объекта колонка, я должен преобразовать его в BOOL, INT или поплавок? Какой из них будет лучше? Или это не имеет значения?

Спасибо!

+0

Вы не пробовали '% timeit' самостоятельно? – Alexander

ответ

1

Почти все оценки scikit-learn преобразуют входные данные в float перед запуском алгоритма, независимо от исходных типов в массиве. Это справедливо для случайной реализации леса.

+0

Спасибо @jakevdp! Следующий вопрос: если у меня есть переменная object (string) из двух значений (A/B value), нужно ли ее преобразовать в float? Или это не имеет значения? –

+0

Да - взгляните на [Кодирующие категориальные функции] (http://scikit-learn.org/stable/modules/preprocessing.html#encoding-categorical-features) в документации на scikit-learn. Обратите внимание, что Random Forests - один из немногих алгоритмов, в которых истинные категориальные функции могут (теоретически) обрабатываться очень естественно без трюков, таких как одноразовое кодирование. К сожалению, реализация sklearn в настоящее время не предназначена для обработки данных в этой форме. – jakevdp

+0

Цените! @jakevdp –