RandomForestRegressor
- classsklearn.ensemble.RandomForestRegressor(n_estimators=100, *, criterion='squared_error', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=1.0, max_leaf_nodes=None, min_impurity_decrease=0.0, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, ccp_alpha=0.0, max_samples=None, monotonic_cst=None)[source]
-
Регрессор случайного леса.
Случайный лес — это мета-оценщик, который подбирает несколько регрессоров дерева решений на различных подвыборках набора данных и использует усреднение для повышения точности прогнозирования и контроля переобучения. Деревья в лесу используют наилучшую стратегию разделения, то есть эквивалентную передаче
splitter="best"в базовомDecisionTreeRegressor. Размер подвыборки контролируется параметромmax_samples, еслиbootstrap=True(по умолчанию), в противном случае для построения каждого дерева используется весь набор данных.Для сравнения моделей ансамблей на основе деревьев см. пример Сравнение моделей случайных лесов и градиентного бустинга с гистограммами.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- n_estimatorsint, default=100
-
Количество деревьев в лесу.
Изменено в версии 0.22: Значение по умолчанию для
n_estimatorsизменено с 10 на 100 в версии 0.22. - criterion{“squared_error”, “absolute_error”, “friedman_mse”, “poisson”}, default=”squared_error”
-
Функция для измерения качества разбиения. Поддерживаемые критерии: “squared_error” для среднеквадратичной ошибки, которая равна уменьшению дисперсии в качестве критерия выбора признаков и минимизирует потерю L2, используя среднее значение каждого терминального узла, “friedman_mse”, который использует среднеквадратическую ошибку с улучшением оценки Фридмана для потенциальных разбиений, “absolute_error” для средней абсолютной ошибки, которая минимизирует потерю L1, используя медиану каждого терминального узла, и “poisson”, который использует уменьшение отклонения Пуассона для поиска разбиений. Обучение с использованием “absolute_error” значительно медленнее, чем с использованием “squared_error”.
Добавлена в версии 0.18: Критерий средней абсолютной ошибки (MAE).
Добавлена в версии 1.0: Критерий Пуассона.
- max_depthint, default=None
-
Максимальная глубина дерева. Если None, узлы расширяются до тех пор, пока все листья не будут чистыми или пока все листья не будут содержать меньше min_samples_split образцов.
- min_samples_splitint or float, default=2
-
Минимальное количество образцов, необходимое для разделения внутреннего узла:
- Если int, то рассмотреть
min_samples_splitкак минимальное количество. - Если float, то
min_samples_splitявляется долей, аceil(min_samples_split * n_samples)- минимальное количество образцов для каждого разбиения.
Изменено в версии 0.18: Добавлены значения с плавающей точкой для долей.
- Если int, то рассмотреть
- min_samples_leafint or float, default=1
-
Минимальное количество образцов, необходимых для узла листа. Точка разбиения на любой глубине будет рассмотрена только в том случае, если она оставляет по крайней мере
min_samples_leafобучающих образцов в каждой из левой и правой ветвей. Это может иметь эффект сглаживания модели, особенно в регрессии.- Если int, то рассмотреть
min_samples_leafкак минимальное количество. - Если float, то
min_samples_leafявляется долей, аceil(min_samples_leaf * n_samples)- минимальное количество образцов для каждого узла.
Изменено в версии 0.18: Добавлены значения с плавающей точкой для долей.
- Если int, то рассмотреть
- min_weight_fraction_leaffloat, default=0.0
-
Минимальная взвешенная доля суммы весов (всех входных образцов), необходимая для узла листа. Образцы имеют равный вес, когда sample_weight не задан.
- max_features{“sqrt”, “log2”, None}, int or float, default=1.0
-
Количество признаков для рассмотрения при поиске лучшего разбиения:
- Если int, то рассмотреть
max_featuresпризнаков на каждом разбиении. - Если float, то
max_featuresявляется долей, аmax(1, int(max_features * n_features_in_))признаков рассматриваются на каждом разбиении. - Если “sqrt”, то
max_features=sqrt(n_features). - Если “log2”, то
max_features=log2(n_features). - Если None или 1.0, то
max_features=n_features.
Примечание
Значение по умолчанию 1.0 эквивалентно древесным деревьям, и большего случайности можно достичь, установив меньшие значения, например, 0,3.
Изменено в версии 1.1: Значение по умолчанию для
max_featuresизменено с"auto"на 1.0.Примечание: поиск разбиения не прекращается до тех пор, пока не будет найдено по крайней мере одно допустимое разбиение образцов узла, даже если это потребует эффективного проверки более чем
max_featuresпризнаков. - Если int, то рассмотреть
- max_leaf_nodesint, default=None
-
Выращивать деревья с
max_leaf_nodesв режиме «лучшее-сначала». Лучшие узлы определяются как относительное уменьшение неопределенности. - min_impurity_decreasefloat, default=0.0
-
Узел будет разделен, если это разбиение вызовет уменьшение неопределенности, большее или равное этому значению.
Уравнение взвешенного уменьшения неопределенности следующее:
N_t / N * (impurity - N_t_R / N_t * right_impurity - N_t_L / N_t * left_impurity)где
N- общее количество образцов,N_t- количество образцов в текущем узле,N_t_L- количество образцов в левом поддереве, иN_t_R- количество образцов в правом поддереве.N,N_t,N_t_RиN_t_Lвсе относятся к взвешенной сумме, еслиsample_weightпередано.Добавлена в версии 0.19.
- bootstrapbool, default=True
-
Используются ли образцы с подвыборкой при построении деревьев. Если False, для построения каждого дерева используется весь набор данных.
- oob_scorebool or callable, default=False
-
Используются ли образцы вне выборки для оценки обобщающей производительности. По умолчанию используется
r2_score. Предоставьте вызываемый объект с сигнатуройmetric(y_true, y_pred)для использования пользовательской метрики. Доступно только еслиbootstrap=True. - n_jobsint, default=None
-
Количество задач для выполнения параллельно.
fit,predict,decision_pathиapplyвсе паралелизуются по деревьям.Noneозначает 1, за исключением контекстаjoblib.parallel_backend.-1означает использование всех процессоров. Смотрите Справочник для получения более подробной информации. - random_stateint, RandomState instance or None, default=None
-
Управляет случайностью подвыборки образцов при построении деревьев (если
bootstrap=True) и выборкой признаков для рассмотрения при поиске лучшего разбиения в каждом узле (еслиmax_features < n_features). См. Справочник для получения подробной информации. - verboseint, default=0
-
Управляет подробностью вывода при подгонке и прогнозировании.
- warm_startbool, default=False
-
При установке
True, повторно использовать решение предыдущего вызова fit и добавить больше оценщиков в ансамбль, иначе просто подгонять весь новый лес. См. Справочник и Добавление дополнительных деревьев для получения подробной информации. - ccp_alphaнеотрицательное число с плавающей точкой, default=0.0
-
Параметр сложности, используемый для минимальной обрезки по стоимости-сложности. Поддерево с наибольшей сложностью стоимости, меньшей чем
ccp_alpha, будет выбрано. По умолчанию обрезка не выполняется. См. Минимальная обрезка по стоимости-сложности для получения подробной информации. См. Постобработка деревьев решений с обрезкой по стоимости-сложности для примера такой обрезки.Добавлена в версии 0.22.
- max_samplesint or float, default=None
-
Если bootstrap = True, количество образцов для извлечения из X для обучения каждого базового оценщика.
- Если None (значение по умолчанию), то извлечь
X.shape[0]образцов. - Если int, то извлечь
max_samplesобразцов. - Если float, то извлечь
max(round(n_samples * max_samples), 1)образцов. Таким образом,max_samplesдолжно находиться в интервале(0.0, 1.0].
Добавлена в версии 0.22.
- Если None (значение по умолчанию), то извлечь
- monotonic_cstмассив-подобный int формы (n_features), default=None
-
- Указывает монотонное ограничение, которое необходимо применить к каждому признаку.
-
- 1: монотонно возрастающий
- 0: нет ограничений
- -1: монотонно убывающий
Если monotonic_cst равно None, ограничения не применяются.
- Ограничения монотонности не поддерживаются для:
-
- многовыходной регрессии (т. е. когда
n_outputs_ > 1), - регрессий, обученных на данных с пропущенными значениями.
- многовыходной регрессии (т. е. когда
Подробнее см. Руководство пользователя.
Добавлена в версии 1.4.
- Атрибуты:
-
-
estimator_
DecisionTreeRegressor -
Шаблон дочернего оценщика, используемый для создания коллекции подгоняемых подмножеств-оценщиков.
Добавлен в версии 1.2:
base_estimator_был переименован вestimator_. - estimators_список DecisionTreeRegressor
-
Коллекция подгоняемых подмножеств-оценщиков.
-
feature_importances_массив с формой (n_features,) -
Важности признаков, основанные на ошибках.
- n_features_in_int
-
Количество признаков, увиденных во время fit.
Добавлен в версии 0.24.
-
feature_names_in_массив с формой (
n_features_in_,) -
Имена признаков, увиденные во время fit. Определены только тогда, когда
Xимеет имена признаков, которые все являются строками.Добавлен в версии 1.0.
- n_outputs_int
-
Количество выходов при выполнении
fit. - oob_score_float
-
Оценка обучающего набора данных, полученная с помощью оценки извне выборки. Этот атрибут существует только тогда, когда
oob_scoreравно True. - oob_prediction_массив с формой (n_samples,) или (n_samples, n_outputs)
-
Предсказание, вычисленное с помощью оценки извне выборки на обучающем наборе. Этот атрибут существует только тогда, когда
oob_scoreравно True. -
estimators_samples_список массивов -
Подмножество выбранных образцов для каждого базового оценщика.
-
estimator_
См. также
sklearn.tree.DecisionTreeRegressor-
Регрессор дерева решений.
sklearn.ensemble.ExtraTreesRegressor-
Ансамбль регрессоров деревьев с экстремально случайными выборками.
sklearn.ensemble.HistGradientBoostingRegressor-
Дерево регрессии градиентного бустинга на основе гистограммы, очень быстрое для больших наборов данных (n_samples >= 10_000).
Примечания
Значения по умолчанию для параметров, контролирующих размер деревьев (например,
max_depth,min_samples_leaf, и т.д.), приводят к полностью выращенным и непрореженным деревьям, которые могут быть очень большими для некоторых наборов данных. Для уменьшения потребления памяти сложность и размер деревьев следует контролировать, задавая значения этих параметров.Признаки всегда случайным образом переупорядочиваются на каждом разбиении. Поэтому наилучшее найденное разбиение может отличаться, даже с теми же данными обучения,
max_features=n_featuresиbootstrap=False, если улучшение критерия одинаково для нескольких разбиений, перечисленных во время поиска лучшего разбиения. Чтобы получить детерминированное поведение во время подгонки,random_stateдолжен быть фиксированным.Значение по умолчанию
max_features=1.0используетn_featuresвместоn_features / 3. Последнее изначально было предложено в [1], в то время как первое в последнее время эмпирически обосновано в [2].Ссылки
[1]- Breiman, «Случайные леса», Машинное обучение, 45(1), 5-32, 2001.
[2]P. Geurts, D. Ernst., и L. Wehenkel, «Экстремально случайные деревья», Машинное обучение, 63(1), 3-42, 2006.
Примеры
>>> from sklearn.ensemble import RandomForestRegressor >>> from sklearn.datasets import make_regression >>> X, y = make_regression(n_features=4, n_informative=2, ... random_state=0, shuffle=False) >>> regr = RandomForestRegressor(max_depth=2, random_state=0) >>> regr.fit(X, y) RandomForestRegressor(...) >>> print(regr.predict([[0, 0, 0, 0]])) [-8.32987858]
- apply(X)[source]
-
Применить деревья в лесу к X, вернуть индексы листьев.
- Параметры:
-
- X{массив-подобный, разреженная матрица} с формой (n_samples, n_features)
-
Входные образцы. Внутри его тип данных будет преобразован в
dtype=np.float32. Если предоставлена разреженная матрица, она будет преобразована в разреженнуюcsr_matrix.
- Возвращает:
-
- X_leavesмассив с формой (n_samples, n_estimators)
-
Для каждой точки данных x в X и для каждого дерева в лесу возвращает индекс листа, в который попадает x.
- decision_path(X)[source]
-
Возвращает путь принятия решений в лесу.
Добавлен в версии 0.18.
- Параметры:
-
- X{массив-подобный, разреженная матрица} с формой (n_samples, n_features)
-
Входные образцы. Внутри его тип данных будет преобразован в
dtype=np.float32. Если предоставлена разреженная матрица, она будет преобразована в разреженнуюcsr_matrix.
- Возвращает:
-
- indicatorразреженная матрица с формой (n_samples, n_nodes)
-
Возвращает матрицу индикаторов узлов, где ненулевые элементы указывают, что образцы проходят через узлы. Матрица имеет формат CSR.
- n_nodes_ptrмассив с формой (n_estimators + 1,)
-
Столбцы от indicator[n_nodes_ptr[i]:n_nodes_ptr[i+1]] дают значение индикатора для i-го оценщика.
- свойствоestimators_samples_
-
Подмножество выбранных образцов для каждого базового оценщика.
Возвращает динамически генерируемый список индексов, определяющих образцы, используемые для подгонки каждого члена ансамбля, т.е. образцы входящие в выборку.
Примечание: список пересоздается при каждом обращении к свойству для уменьшения занимаемой объектом памяти за счет того, что данные выборки не сохраняются. Таким образом, получение свойства может быть медленнее, чем ожидалось.
- свойствоfeature_importances_
-
Важности признаков, основанные на ошибках.
Чем выше, тем важнее признак. Важность признака вычисляется как (нормализованное) общее уменьшение критерия, внесенное этим признаком. Также известна как важность Джини.
Предупреждение: важности признаков, основанные на ошибках, могут вводить в заблуждение для признаков с высокой кардинальностью (много уникальных значений). См.
sklearn.inspection.permutation_importanceкак альтернативу.- Возвращает:
-
- feature_importances_массив с формой (n_features,)
-
Значения этого массива суммируются до 1, если все деревья являются деревьями с одним узлом, состоящими только из корневого узла, в этом случае это будет массив нулей.
-
- fit(X, y, sample_weight=None)[source]
-
Построить лес деревьев из обучающего набора (X, y).
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Входные обучающие образцы. Внутри его тип данных будет преобразован в
dtype=np.float32. Если предоставлена разреженная матрица, она будет преобразована в разреженнуюcsc_matrix. - yarray-like of shape (n_samples,) or (n_samples, n_outputs)
-
Целевые значения (метки классов в классификации, вещественные числа в регрессии).
- sample_weightarray-like of shape (n_samples,), default=None
-
Веса образцов. Если None, тогда образцы имеют равные веса. Разбиения, которые создадут узлы-потомки с нулевым или отрицательным весом, игнорируются при поиске разбиения в каждом узле. В случае классификации, разбиения также игнорируются, если они приведут к тому, что любой отдельный класс будет иметь отрицательный вес в любом узле-потомке.
- Возвращает:
-
- selfobject
-
Обученная модель.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, ознакомьтесь с Руководством пользователя о том, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
А
MetadataRequestencapsulating маршрутизацию информации.
- get_params(deep=True)[source]
-
Получить параметры для этого оценщика.
- Параметры:
-
- deepbool, default=True
-
Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные со значениями.
- predict(X)[source]
-
Предсказать целевое значение регрессии для X.
Предсказанное целевое значение регрессии входного образца вычисляется как среднее предсказанное целевое значение регрессии деревьев в лесу.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Входные образцы. Внутри его тип данных будет преобразован в
dtype=np.float32. Если предоставлена разреженная матрица, она будет преобразована в разреженнуюcsr_matrix.
- Возвращает:
-
- yndarray of shape (n_samples,) or (n_samples, n_outputs)
-
Предсказанные значения.
- score(X, y, sample_weight=None)[source]
-
Возвращает коэффициент детерминации предсказания.
Коэффициент детерминации \(R^2\) определяется как \((1 - \frac{u}{v})\), где \(u\) — сумма квадратов остатков
((y_true - y_pred)** 2).sum()и \(v\) — общая сумма квадратов((y_true - y_true.mean()) ** 2).sum(). Лучшее возможное значение равно 1.0, оно может быть отрицательным (потому что модель может быть произвольно хуже). Модель постоянного значения, которая всегда предсказывает ожидаемое значениеy, не учитывая входные признаки, получит значение \(R^2\) равное 0.0.- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Тестируемые образцы. Для некоторых оценщиков это может быть предварительно вычисленная матрица ядер или список общих объектов вместо нее с формой
(n_samples, n_samples_fitted), гдеn_samples_fitted— количество образцов, используемых при обучении оценщика. - yarray-like of shape (n_samples,) or (n_samples, n_outputs)
-
Истинные значения для
X. - sample_weightarray-like of shape (n_samples,), default=None
-
Веса образцов.
- Возвращает:
-
- scorefloat
-
\(R^2\) для
self.predict(X)относительноy.
Примечания
Значение \(R^2\), используемое при вызове
scoreдля оценщика регрессии, используетmultioutput='uniform_average'с версии 0.23, чтобы сохранить согласованность со значением по умолчанию дляr2_score. Это влияет наscoreметод всех оценщиков многовыходной регрессии (за исключениемMultiOutputRegressor).
- set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') RandomForestRegressor[source]
-
Запрос метаданных, переданных в метод
fit.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, ознакомьтесь с Руководством пользователя для получения информации о механизме маршрутизации.Доступные варианты для каждого параметра:
-
True: метаданные запрашиваются и передаются вfit, если они предоставлены. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-оценщик не передаст их вfit. -
None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь их предоставит. -
str: метаданные должны быть переданы мета-оценщику с этим псевдонимом вместо исходного имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, не затрагивая другие.Добавлен в версии 1.3.
Примечание
Этот метод актуален только в том случае, если данный оценщик используется как под-оценщик мета-оценщика, например, внутри
Pipeline. В противном случае он не оказывает влияния.- Parameters:
-
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвfit.
- Returns:
-
- selfobject
-
Обновленный объект.
-
- set_params(**params)[source]
-
Устанавливает параметры данного оценщика.
Метод работает как с простыми оценщиками, так и со вложенными объектами (такими как
Pipeline). Последние имеют параметры вида<component>__<parameter>, чтобы можно было обновить каждый компонент вложенного объекта.- Parameters:
-
- **paramsdict
-
Параметры оценщика.
- Returns:
-
- selfestimator instance
-
Экземпляр оценщика.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') RandomForestRegressor[source]
-
Запрос метаданных, переданных в метод
score.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, ознакомьтесь с Руководством пользователя для получения информации о механизме маршрутизации.Доступные варианты для каждого параметра:
-
True: метаданные запрашиваются и передаются вscoreесли они предоставлены. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-оценщик не передаст их вscore. -
None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь их предоставит. -
str: метаданные должны быть переданы мета-оценщику с этим псевдонимом вместо исходного имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, не затрагивая другие.Добавлен в версии 1.3.
Примечание
Этот метод актуален только в том случае, если данный оценщик используется как под-оценщик мета-оценщика, например, внутри
Pipeline. В противном случае он не оказывает влияния.- Parameters:
-
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвscore.
- Returns:
-
- selfobject
-
Обновленный объект.
-
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.ensemble.RandomForestRegressor.html