Хобрук: Ваш путь к мастерству в программировании

Извлечение деревьев (предиктор) из случайного классификатора леса

У меня есть конкретный технический вопрос о sklearn, классификаторе случайных лесов.

После подбора данных с помощью метода «.fit(X,y)», есть ли способ извлечь фактические деревья из объекта оценки в каком-то общем формате, чтобы метод «.predict(X)» мог быть реализован вне питон?

12.12.2013

Ответы:


1

Да, деревья леса хранятся в атрибуте estimators_ объекта леса.

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

https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/tree/export.py

Вот документ по использованию этой функции:

http://scikit-learn.org/stable/modules/tree.html#classification

12.12.2013
  • Спасибо Оливье! Это действительно помогает 12.12.2013
  • Еще нет (начиная с 0.14.1). Здесь есть запрос на включение: github.com/scikit-learn/scikit-learn /тянуть/2530 07.01.2014
  • Есть ли какой-нибудь пример решения, которое было опробовано? Когда я пробовал в Google Colab, я получил ошибку, ---------------- ----------------------------------------------------------- ValueError Traceback (последняя call last) ‹ipython-input-1-131ec55b94e7› в ‹module›() 19 import numpy as np 20 ---› 21 from ..utils.validation import check_is_fitted 22 23 from . import _criterion ValueError: попытка относительного импорта за пределами пакета верхнего уровня 19.06.2019

  • 2

    Да, и ответ @ogrisel позволил мне реализовать следующий фрагмент, который позволяет использовать (частично обученный) случайный лес для прогнозирования значений. Это экономит много времени, если вы хотите перекрестно проверить случайную модель леса по количеству деревьев:

    rf_model = RandomForestRegressor()
    rf_model.fit(x, y)
    
    estimators = rf_model.estimators_
    
    def predict(w, i):
        rf_model.estimators_ = estimators[0:i]
        return rf_model.predict(x)
    

    Я объяснил это более подробно здесь: извлечение деревьев из случайного леса

    09.03.2021
    Новые материалы

    Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
    DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

    «Очень простой» эволюционный подход к обучению с подкреплением
    В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

    Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
    Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

    Фишинг — Упаковано и зашифровано
    Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..

    ВЫ РЕГРЕСС ЭТО?
    Чтобы понять, когда использовать регрессионный анализ, мы должны сначала понять, что именно он делает. Вот простой ответ, который появляется, когда вы используете Google: Регрессионный..

    Не зря же это называют интеллектом
    Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..

    LeetCode Проблема 41. Первый пропущенный положительный результат
    LeetCode Проблема 41. Первый пропущенный положительный результат Учитывая несортированный массив целых чисел, найдите наименьшее пропущенное положительное целое число. Пример 1: Input:..