DecisionTreeRegressor
- classsklearn.tree.DecisionTreeRegressor(*, criterion='squared_error', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, ccp_alpha=0.0, monotonic_cst=None)[source]
-
Регрессионное дерево решений.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- criterion{“squared_error”, “friedman_mse”, “absolute_error”, “poisson”}, default=”squared_error”
-
Функция для измерения качества разбиения. Поддерживаемые критерии: “squared_error” для средней квадратичной ошибки, которая равна снижению дисперсии как критерий выбора признаков и минимизирует потерю L2, используя среднее значение каждого терминального узла, “friedman_mse”, который использует среднюю квадратичную ошибку с улучшением по Фридману для потенциальных разбиений, “absolute_error” для средней абсолютной ошибки, которая минимизирует потерю L1, используя медиану каждого терминального узла, и “poisson”, который использует снижение половинной средней ошибки Пуассона для поиска разбиений.
Добавлен в версии 0.18: Критерий средней абсолютной ошибки (MAE).
Добавлен в версии 0.24: Критерий ошибки Пуассона.
- splitter{“best”, “random”}, default=”best”
-
Стратегия, используемая для выбора разбиения в каждом узле. Поддерживаемые стратегии: “best” для выбора наилучшего разбиения и “random” для выбора наилучшего случайного разбиения.
- max_depthint, default=None
-
Максимальная глубина дерева. Если None, узлы расширяются до тех пор, пока все листья не будут чистыми или пока все листья не будут содержать менее min_samples_split образцов.
Пример того, как
max_depthвлияет на модель, см. в Регрессия дерева решений. - 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_featuresint, float or {“sqrt”, “log2”}, default=None
-
Количество признаков для рассмотрения при поиске лучшего разбиения:
- Если 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, то
max_features=n_features.
Примечание: поиск разбиения не прекращается до тех пор, пока не будет найдено по крайней мере одно допустимое разбиение образцов узла, даже если для этого потребуется эффективно проверить более
max_featuresпризнаков. - Если int, то рассмотреть
- random_stateint, RandomState instance or None, default=None
-
Управляет случайностью оценщика. Признаки всегда случайным образом переставляются при каждом разбиении, даже если
splitterустановлено в"best". Когдаmax_features < n_features, алгоритм случайным образом выберетmax_featuresна каждом разбиении перед поиском лучшего разбиения среди них. Однако найденное наилучшее разбиение может различаться при разных запусках, даже еслиmax_features=n_features. Это случается, если улучшение критерия одинаково для нескольких разбиений и одно разбиение должно быть выбрано случайным образом. Для получения детерминированного поведения во время подгонкиrandom_stateдолжен быть фиксирован целым числом. См. Справочник для получения подробной информации. - max_leaf_nodesint, default=None
-
Выращивание дерева с
max_leaf_nodesв порядке поиска наилучшего разбиения. Лучшие узлы определяются как относительное уменьшение неоднородности. Если None, то неограниченное число листов. - 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.
- ccp_alphaнеотрицательное число с плавающей запятой, по умолчанию 0.0
-
Параметр сложности, используемый для обрезки по минимальной стоимости и сложности. Поддерево с наибольшей сложностью по стоимости, меньшей чем
ccp_alphaбудет выбрано. По умолчанию обрезка не выполняется. См. Минимальная обрезка по стоимости и сложности для получения подробной информации. См. Постобработка деревьев решений с обрезкой по стоимости и сложности для примера такой обрезки.Добавлен в версии 0.22.
- monotonic_cstмассив-подобный int формы (n_features), по умолчанию None
-
- Указывает ограничение монотонности для каждого признака.
-
- 1: монотонный рост
- 0: без ограничения
- -1: монотонное убывание
Если monotonic_cst равно None, ограничения не применяются.
- Ограничения монотонности не поддерживаются для:
-
- регрессий с несколькими выходами (т.е. когда
n_outputs_ > 1), - регрессий, обученных на данных с пропущенными значениями.
- регрессий с несколькими выходами (т.е. когда
Подробнее см. в Руководстве пользователя.
Добавлен в версии 1.4.
- Атрибуты:
-
-
feature_importances_массив ndarray формы (n_features,) -
Возвращает важность признаков.
- max_features_int
-
Выведенное значение max_features.
- n_features_in_int
-
Количество признаков, увиденных во время fit.
Добавлен в версии 0.24.
-
feature_names_in_массив ndarray формы (
n_features_in_,) -
Имена признаков, увиденные во время fit. Определены только тогда, когда
Xимеет имена признаков, которые все являются строками.Добавлен в версии 1.0.
- n_outputs_int
-
Количество выходов при выполнении
fit. - tree_экземпляр дерева
-
Базовый объект дерева. Обратитесь к
help(sklearn.tree._tree.Tree)для атрибутов объекта дерева и Понимание структуры дерева решений для основного использования этих атрибутов.
-
См. также
DecisionTreeClassifier-
Классификатор дерева решений.
Примечания
Значения по умолчанию для параметров, контролирующих размер деревьев (например,
max_depth,min_samples_leaf, и т. д.) приводят к полностью выращенным и необрезанным деревьям, которые могут быть очень большими для некоторых наборов данных. Для уменьшения потребления памяти сложность и размер деревьев следует контролировать, задавая значения этих параметров.Ссылки
- [2]
Л. Брейман, Дж. Фридман, Р. Олшен и К. Стоун, «Деревья классификации и регрессии», Wadsworth, Белмонт, Калифорния, 1984.
[3]Т. Хасти, Р. Тибширани и Дж. Фридман. «Элементы статистического обучения», Springer, 2009.
[4]Л. Брейман и А. Катлер, «Случайные леса», https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm
Примеры
>>> from sklearn.datasets import load_diabetes >>> from sklearn.model_selection import cross_val_score >>> from sklearn.tree import DecisionTreeRegressor >>> X, y = load_diabetes(return_X_y=True) >>> regressor = DecisionTreeRegressor(random_state=0) >>> cross_val_score(regressor, X, y, cv=10) ... ... array([-0.39..., -0.46..., 0.02..., 0.06..., -0.50..., 0.16..., 0.11..., -0.73..., -0.30..., -0.00...])- apply(X, check_input=True)[source]
-
Возвращает индекс листа, к которому предсказан каждый образец.
Добавлен в версии 0.17.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Входные образцы. Внутри они будут преобразованы в
dtype=np.float32и, если предоставлена разреженная матрица, в разреженнуюcsr_matrix. - check_inputbool, default=True
-
Разрешает пропустить несколько проверок входных данных. Не используйте этот параметр, если вы не знаете, что делаете.
- Возвращает:
-
- X_leavesarray-like of shape (n_samples,)
-
Для каждой точки данных x в X возвращает индекс листа, в который попадает x. Листы пронумерованы внутри
[0; self.tree_.node_count), возможно, с пробелами в нумерации.
- cost_complexity_pruning_path(X, y, sample_weight=None)[source]
-
Вычисляет путь обрезки при минимальной стоимости-сложности обрезки.
См. Минимальная обрезка с учетом стоимости и сложности для получения подробной информации о процессе обрезки.
- Параметры:
-
- 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, то образцы весят одинаково. Разбиения, которые создадут дочерние узлы с нулевым или отрицательным весом, игнорируются при поиске разбиения в каждом узле. Также игнорируются разбиения, которые приведут к тому, что любой отдельный класс будет иметь отрицательный вес в любом из дочерних узлов.
- Возвращает:
-
-
ccp_path
Bunch -
Объект, подобный словарю, с указанными ниже атрибутами.
- ccp_alphasndarray
-
Эффективные альфы поддерева во время обрезки.
- impuritiesndarray
-
Сумма нечистот листьев поддерева для соответствующего значения альфы в
ccp_alphas.
-
ccp_path
- decision_path(X, check_input=True)[source]
-
Возвращает путь принятия решений в дереве.
Добавлен в версии 0.18.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Входные образцы. Внутри они будут преобразованы в
dtype=np.float32и, если предоставлена разреженная матрица, в разреженнуюcsr_matrix. - check_inputbool, default=True
-
Разрешает пропустить несколько проверок входных данных. Не используйте этот параметр, если вы не знаете, что делаете.
- Возвращает:
-
- indicatorsparse matrix of shape (n_samples, n_nodes)
-
Возвращает разреженную матрицу указателя узла, где ненулевые элементы указывают, что образцы проходят через узлы.
- propertyfeature_importances_
-
Возвращает важности признаков.
Важность признака вычисляется как (нормализованное) общее уменьшение критерия, внесенное этим признаком. Он также известен как важность Джини.
Предупреждение: важности признаков, основанные на нечистотах, могут быть вводящими в заблуждение для признаков с высокой кратностью (много уникальных значений). См.
sklearn.inspection.permutation_importanceв качестве альтернативы.- Возвращает:
-
- feature_importances_ndarray of shape (n_features,)
-
Нормализованное общее уменьшение критерия по признаку (важность Джини).
- fit(X, y, sample_weight=None, check_input=True)[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)
-
Целевые значения (вещественные числа). Используйте
dtype=np.float64иorder='C'для максимальной эффективности. - sample_weightarray-like of shape (n_samples,), default=None
-
Веса образцов. Если None, то образцы весят одинаково. Разбиения, которые создадут дочерние узлы с нулевым или отрицательным весом, игнорируются при поиске разбиения в каждом узле.
- check_inputbool, default=True
-
Разрешает пропустить несколько проверок входных данных. Не используйте этот параметр, если вы не знаете, что делаете.
- Возвращает:
-
- selfDecisionTreeRegressor
-
Обученный оценщик.
- get_depth()[source]
-
Возвращает глубину дерева решений.
Глубина дерева — это максимальное расстояние между корнем и любым листом.
- Возвращает:
-
- self.tree_.max_depthint
-
Максимальная глубина дерева.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, ознакомьтесь с Руководством пользователя о том, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
Объект
MetadataRequest, содержащий информацию о маршрутизации.
- get_n_leaves()[source]
-
Возвращает количество листьев дерева решений.
- Возвращает:
-
- self.tree_.n_leavesint
-
Количество листьев.
- get_params(deep=True)[source]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, вернёт параметры этого оценщика и вложенных под-объектов, являющихся оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров и их значения.
- predict(X, check_input=True)[source]
-
Предсказать класс или значение регрессии для X.
Для модели классификации возвращается предсказанный класс для каждой выборки в X. Для модели регрессии возвращается предсказанное значение на основе X.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Входные выборки. Внутренне будет преобразовано в
dtype=np.float32и, если предоставлена разреженная матрица, в разреженнуюcsr_matrix. - check_inputbool, по умолчанию=True
-
Разрешить пропустить несколько проверок ввода. Не используйте этот параметр, если вы не знаете, что делаете.
- Возвращает:
-
- yarray-like формы (n_samples,) или (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 формы (n_samples, n_features)
-
Тестовые выборки. Для некоторых оценщиков это может быть предварительно вычисленный ядровой матрицей или списком общих объектов вместо этого с формой
(n_samples, n_samples_fitted), гдеn_samples_fitted— количество выборок, используемых при подгонке для оценщика. - yarray-like формы (n_samples,) или (n_samples, n_outputs)
-
Истинные значения для
X. - sample_weightarray-like формы (n_samples,), по умолчанию=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$') DecisionTreeRegressor[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:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') DecisionTreeRegressor[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.tree.DecisionTreeRegressor.html