Серьезный беспорядок, которого может достичь случайный лес. несколько видов данных сильно отличаются от тех, которые мы используем для случайных лесов.

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

Почему случайный лес имеет более высокий рейтинг, чем деревья решений

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

Здесь на помощь приходит случайный лес. Вместо одного дерева случайный лес объединяет несколько деревьев для создания модели, что соответственно приводит к низкому смещению и низкому отклонению. Волшебство здесь происходит за счет затрат на вычислительную мощность из-за увеличения количества деревьев. Хорошо, вернемся к теме.

Случайный лес не проходит регрессию

Случайный лес не может поддерживать точность в некоторых случаях, какие из них:

  1. Экстраполяция
  2. Скудные данные

Экстраполяция (линейный или случайный лес)

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

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

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

Модель стандартной регрессии рассчитает базовую взаимосвязь между характеристиками опыта и заработной платы, используя уравнение y = mx + c.

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

Визуализация выполнена с использованием matplotlib.

Результат довольно ясен и не требует особых объяснений. Совершенно очевидно, что точки прогноза работают лучше, чем ожидалось даже с данными, которые модель еще не видела. Это то, что нужно, чтобы стать лучшей моделью.

Пришло время Случайный лес

Давайте создадим модель случайной регрессии лесов с 100 оценками (мы можем сказать 100 деревьев). Поскольку имя определяет случайное, оно выполняет случайную группировку и выполняет деревья решений.

После прогнозирования результатов для тестового набора мы можем визуализировать результат случайного леса.

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

Постарайтесь использовать эту информацию, если на пути к машинному обучению вы ее пересечете.

Разрозненные данные

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

Лучше рассматривать такого рода проблемы теоретически, чем писать набор кода, вы получите ответ на вопрос «почему?» в конце. Это не будет чисто теорией, это просто интуиция того, что будет происходить в разреженной матрице. мы не увидим проблемы с реальным набором данных.

По крайней мере, давайте создадим фиктивную разреженную матрицу, используя библиотеки NumPy и Sklearn. К счастью, у нас также есть возможность визуализировать разреженные данные с помощью Matplotlib.

Расшифровка фрагмента кода, который мы написали для создания фиктивной разреженной матрицы:

  1. «Make_sparse_spd_matrix» - это функция sklearn для создания разреженной матрицы, мы передаем два аргумента для получения этих данных.

Первое целое число обозначает размерность матрицы. В данном случае "1000" означает "1000 x 1000". Второй аргумент - это альфа, которая определяет вероятность нуля в матрице. Здесь у нас 98% точек данных как реальные значения, а остальные 2% загрязнено как нули.

2. «plt.spy» - это визуальное средство, помогающее нам увидеть глубокое понимание разреженной матрицы. Диагональ рассматривается как значения, где остаточный шум - это просто нулевые значения. (Все размеры уменьшены (2 размера) для лучшего обзора).

Понятно, что данные имеют два вида визуальных эффектов: один расположен по диагонали, что кажется четким из-за корреляции 98% точек данных в этом месте. Другой - шум, который, кажется, вообще не имеет какой-либо закономерности. Эти загрязнители влияют на случайный лес, чтобы предсказывать правильные значения даже в тренировочном пространстве. Нулевые значения не помогут при выполнении случайных лесов или деревьев решений. К счастью, у нас есть другие алгоритмы, которые могут помочь нам в этой ситуации. Самый полезный алгоритм - Linear SVM. Желаю вам удачи в поиске набора данных, который имеет много общего с разреженными данными.

Заключение

Наборы данных имеют разные формы. Каждый день он становится гибридным. Самая захватывающая задача - найти правильный алгоритм для работы с этим набором данных. Поскольку у случайного леса, похоже, более широкая аудитория, чем у других алгоритмов, у него все еще есть некоторые проблемы с небольшими видами данных. Несколько форм данных, которые могут привести к сбою случайного леса:

  1. Линейные наборы данных (проблема экстраполяции)
  2. Редкие наборы данных (нулевые значения)

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

Следовательно, случайный лес не подходит как для наборов данных линейной модели, так и для разреженных данных.

Модель решают данные, а не мы. Наша задача - найти идеальную модель.