Treinei um modelo de previsão com o Scikit Learn em Python (Random Forest Regressor) e quero extrair de alguma forma os pesos de cada recurso para criar uma ferramenta de excel para previsão manual.
A única coisa que encontrei é a model.feature_importances_
mas não ajuda.
Existe alguma maneira de conseguir isso?
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
No momento, eu uso o model.predict([features])
para fazê-lo, mas preciso em um arquivo do Excel.
decision trees
, portanto, você não obterá uma equação como a regressão linear. Em vez disso, você terá um monte deif, then, else
lógica e muitas equações finais para transformar as folhas finais em valores numéricos. Mesmo se você puder visualizar a árvore e retirar toda a lógica, tudo isso parece uma grande bagunça. Se você estiver trabalhando no Excel, talvez pense em apenas treinar seu modelo no Excel usando o Azure. No entanto, eu provavelmente chamaria o python no excel.Respostas:
A biblioteca SKompiler pode ajudar:
Confira este vídeo .
fonte
Em vez de exportar os pesos, você pode exportar o modelo para um arquivo pickle e usar um xlwings para ler os dados da planilha, carregar o modelo pickled e executar uma previsão. Aqui estão algumas perguntas semelhantes .
fonte
Eu acho que você deseja extrair toda a lógica seguida pelas diferentes árvores para terminar no regressor final. Para isso, é necessário extrair primeiro a lógica de cada árvore e, em seguida, extrair como esses caminhos são seguidos. O Scikit learn pode fornecer isso através de .decision_path (X), com X alguns conjuntos de dados para prever. A partir daqui, você terá uma idéia de como a floresta aleatória prevê e qual lógica é seguida em cada etapa.
Depois de extrair o caminho da decisão, você pode usar o Tree Interpreter para obter a "fórmula" da Floresta Aleatória que você treinou. Não conheço esse intérprete de árvore, mas ele parece funcionar diretamente no modelador que você treinou, ou seja,
fonte