Tanpa judul

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

Узел дерева классификации и регрессии

Применительно ккатегориальным переменным мы можем рассматривать вопросительный знак какдополнительный знак в этой категории. Тут мы получаем данные и запускаем перекрёстную проверку на наших трёх моделях – эталонной, которой является логистическая регрессия, единичном дереве и случайном лесе. Вновь-таки, файлы данных должны быть в папке large_files, а сама эта папка – быть рядом с папкой кода. Если вы не хотите писать код самостоятельно, то соответствующий файл в репозитарии называется rf_classification.py.

Методслучайного леса как раз и пытается уменьшить эту корреляцию или, другимисловами, построить набор декоррелированных друг с другом деревьев. Мывидим, что эталонная модель оказалась худшей – 92,7%, единичное дерево чутьлучше – 93%, а случайных лес оказывается победителем с почти 94%. Я использовал100 деревьев, но вы можете попробовать 10, 20, 200 или даже 500.

Метод случайного леса. Регрессия

Что же касается регрессии, то они советуютустанавливать d равным целой части от D/3, вплоть до 5. Лучшимвыходом, как всегда, является подобрать ту размерность, которая лучше всегоподходит к вашим конкретным данным, воспользовавшись методами вроде перекрёстнойпроверки. Это из старой версии кода и на самом деле https://deveducation.com/ она не нужна для нашего набора данных, но может оказаться полезной при преобразовании данных из датафрейма Pandas, в котором есть нулевые значения. Я пользовался ею, когда тестировал различные наборы данных для данного курса. Главное отличие тут в том, что теперь мы импортируемклассификаторы, а не регрессоры.

Крометого, мы выводим ошибку проверочного набора для всех трёх моделей. Следующимидёт создание экземпляра преобразователя данных и само преобразование данных.Данные разделяются так, чтобы 70% составлял учебный набор, а 30% – проверочный.Обратите внимание, что мы берём логарифм от целевых переменных (представляющихсобой средние цены на недвижимость). Это общеупотребимая операция длямасштабирования числовых столбцов с большим разбросом значений, но необходимовнимательно следить за корректностью соотношения со значением.

Метод случайного леса

Мыпросто пройдёмся по коду, а не будем его писать с нуля, поскольку это было бы чересчурутомительно.

Узел дерева классификации и регрессии

По сути мы используем функцию StandardScaler библиотеки Sci-Kit Learnдля числовых столбцов и функцию LabelEncoder для столбцовкатегориальных. LabelEncoder пронумеруетметки от 0 до K – 1, что позже позволит нам использовать их вкачестве индексов. Аргументmax_feature сообщает случайному лесу, сколькопризнаков выбирать при каждом разделении. Обратите внимание, что по умолчаниюдля классификации стоит значение квадратного корня из D, а вот для регрессиизначение по умолчанию просто равно D, что не соответствует рекомендации выбирать значение D/3. Напомним,что мы уже говорили о том, как делать прогноз для ансамблей.

Метод случайного леса. Классификация

Для двоичнойклассификации можно просто округлить среднее значение, а для регрессии можновывести его. Поскольку об этом уже упоминалось, мы не будем здесьостанавливаться на данном вопросе. Главная сложность, когда речь идёт о методеслучайного леса, – это функция train. Обычномы выбираем размерность подмножества d, намного меньшую D, предполагая, что X – матрица размерности NxD. Изобретатели метода случайного лесасоветуют устанавливать d, равным целой части квадратного корня из D, если речь идёт оклассификации, вплоть до 1.

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

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

Имеется в виду,что если цена дома равна 10 тысячам долларов, а вы ошиблись на 5 тысяч – этоочень грубая ошибка. Но если дом стоит миллион долларов, а вы ошиблись на те же5 тысяч, то тут нет ничего страшного. Далееопределяется наш класс DataTransformer дляпреобразования данных с функциями fit, transform fit_transform.

  • Есливы посмотрите на данные, то увидите, что они состоят из 22 столбцов,представляющих из себя атрибуты гриба, такие как размер, форма, цвет и всёостальное, описывающее его вид.
  • Впрочем,для вас будет чудесным упражнением для тренировки навыков, если попробуетесделать это самостоятельно.
  • Для двоичнойклассификации можно просто округлить среднее значение, а для регрессии можновывести его.
  • Так что метод случайного леса – отличный выбор, если вы ищете решение в стиле «запусти и работай».

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

Метод случайного леса

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

Метод случайного леса. Классификация

Именно поэтому когда мне встречаются люди, интересующиеся глубоким обучением, но представляющие его как некое готовое решение, которое просто можно запустить и работать, я, как правило, рекомендую использовать метод случайного леса. Нейронные же сети могут давать очень разные результаты в зависимости от заданных гиперпараметров и, к тому же, существует их множество вариаций. Так что метод случайного леса – отличный выбор, если вы ищете решение в стиле «запусти и работай».

Ввидутого, что мы воспользуемся классом RandomForest библиотеки Ski-kit Learn, стоит взглянуть на ряд возможностей, который он предоставляет.Многие из них будут вам знакомы, поскольку мы говорили о них либо в этом курсе,либо в предыдущем. Преждевсего обнаруживается, что по умолчанию стоит 10 деревьев как для классификации,так и для регрессии. Если взглянуть на критерий разделения, то видно, что классификаториспользует критерий Джинни, тогда как регрессор – среднеквадратическую ошибку.Критерий Джинни аналогичен энтропии, так что большой разницы тут не будет. Напомню,что суть бэггинга заключалась в усреднении результатов моделей с большой дисперсиейи малым смещением. Деревья подходят для этого идеально, поскольку они могутбыть сколь угодно глубокими и охватывать сложные взаимодействия. Таким образом,в большинстве случаев они достигают 100% точности на учебном наборе данных или,другими словами, имеют нулевое смещение.

Мы знаем, чтос помощью деревьев легко добиться малого смещения, поскольку чем больше узловдерева, тем более оно переобучено. Поскольку каждое дерево имеет одно и то же ожидаемое значение, то иожидаемое значение ансамбля деревьев будет тем же, если только не изменитсясмещение. Позже мы рассмотрим бустинг – другой способ объединения деревьев,имеющих высокое смещение. Есливы посмотрите на данные, то увидите, что они состоят из 22 столбцов,представляющих из себя атрибуты гриба, такие как размер, форма, цвет и всёостальное, описывающее его вид. Обратите внимание, что в описании указываетсяоб отсутствующих значениях, помеченных знаком вопроса.

Tinggalkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *