Я обучил модель прогнозирования с помощью Scikit Learn на Python (Random Forest Regressor) и хочу каким-то образом извлечь вес каждой функции, чтобы создать превосходный инструмент для ручного прогнозирования.
Единственное, что я нашел, - model.feature_importances_
но это не помогает.
Есть ли способ добиться этого?
def performRandomForest(X_train, y_train, X_test, y_test):
'''Perform Random Forest Regression'''
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor()
model.fit( X_train , y_train )
#make predictions
expected = y_test
predicted = model.predict( X_test )
#summarize the fit of the model
mse = np.mean(( predicted - expected )** 2)
accuracy = ( model.score ( X_train , y_train ))
return model, mse, accuracy
На данный момент я использую model.predict([features])
это, но мне нужно это в файле Excel.
decision trees
, поэтому вы не получите одно уравнение, как с линейной регрессией. Вместо этого вы получите кучуif, then, else
логики и множество окончательных уравнений, чтобы превратить конечные листы в числовые значения. Даже если вы можете визуализировать дерево и извлечь всю логику, все это кажется большим беспорядком. Если вы работаете в Excel, подумайте о том, чтобы просто обучить свою модель в Excel с помощью Azure. Тем не менее, я бы, вероятно, просто назвал Python из Excel.Ответы:
Библиотека SKompiler может помочь:
Проверьте это видео .
источник
Вместо экспорта весов вы можете экспортировать модель в файл маринования и использовать xlwings, чтобы прочитать данные из электронной таблицы, загрузить маринованную модель и выполнить прогноз. Вот аналогичные вопросы .
источник
Я предполагаю, что вы хотите извлечь всю логику, которой следуют различные деревья, чтобы в конечном итоге оказаться в конечном регрессоре. Для этого вам нужно сначала извлечь логику каждого дерева, а затем извлечь, как эти пути следуют. Scikit learn может обеспечить это с помощью .decision_path (X), где X - некоторый набор данных для прогнозирования. Отсюда вы получите представление о том, как случайный лес предсказывает и какую логику следует соблюдать на каждом этапе.
После того как вы извлекли путь решения, вы можете использовать Tree Interpreter, чтобы получить «формулу» случайного леса, который вы обучили. Я не знаком с этим интерпретатором дерева, но, похоже, он работает непосредственно с разработчиком модели, т.е.
источник