J'ai formé un modèle de prédiction avec Scikit Learn in Python (Random Forest Regressor) et je veux extraire en quelque sorte les poids de chaque fonctionnalité pour créer un outil Excel pour la prédiction manuelle.
La seule chose que j'ai trouvée est la model.feature_importances_
mais ça n'aide pas.
Existe-t-il un moyen d'y parvenir?
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
Pour le moment, j'utilise le model.predict([features])
pour le faire, mais j'en ai besoin dans un fichier Excel.
decision trees
, donc vous n'obtiendrez pas une équation comme vous le faites avec la régression linéaire. Au lieu de cela, vous obtiendrez un tas deif, then, else
logique et de nombreuses équations finales pour transformer les feuilles finales en valeurs numériques. Même si vous pouvez visualiser l'arbre et retirer toute la logique, tout cela semble être un gros gâchis. Si vous travaillez dans Excel, pensez peut-être à simplement former votre modèle à Excel à l'aide d'Azure. Cependant, j'appellerais probablement le python depuis Excel.Réponses:
La bibliothèque SKompiler peut aider:
Découvrez cette vidéo .
la source
Au lieu d'exporter les poids, vous pouvez exporter le modèle dans un fichier de pickle et utiliser un xlwings pour lire les données de la feuille de calcul, charger le modèle mariné et exécuter une prédiction Voici des questions similaires .
la source
Je suppose que vous voulez extraire toute la logique suivie par les différents arbres pour finir sur le régresseur final. Pour cela, vous devez d'abord extraire la logique de chaque arbre, puis extraire comment ces chemins sont suivis. Scikit learn peut fournir cela via .decision_path (X), avec X un ensemble de données à prévoir. De là, vous aurez une idée de la façon dont la forêt aléatoire prédit et quelle logique est suivie à chaque étape.
Une fois que vous avez extrait le decision_path, vous pouvez utiliser Tree Interpreter pour obtenir la "formule" de la forêt aléatoire que vous avez formée. Je ne connais pas cet Tree Interpreter, mais il semble fonctionner directement sur le modeleur que vous avez formé, c'est-à-dire
la source