Skip to content

Instantly share code, notes, and snippets.

@Eligijus112
Created June 2, 2022 04:01
Show Gist options
  • Save Eligijus112/2f936013fff4bf20336e65209005d130 to your computer and use it in GitHub Desktop.
Save Eligijus112/2f936013fff4bf20336e65209005d130 to your computer and use it in GitHub Desktop.
Calculation of feature importance
# Calculating the importance of each node
importance = {}
for node in node_pairs:
importance[node] = round(node_importance(node, *node_pairs[node], n_entries_weight, i_sq), 3)
print(f"Node importance: {importance}")
# Going from node importance to feature importance
feature_importance = {}
for node in node_pairs:
# Extracting the feature name
_ft_name = feature_in_node[node]
# Extracting the feature importance
_ft_imp = importance[node]
# Adding the feature importance to the feature importance dictionary
if _ft_name in feature_importance:
feature_importance[_ft_name] += _ft_imp
else:
feature_importance[_ft_name] = _ft_imp
# Adding any missing features
for feature in features:
if feature not in feature_importance:
feature_importance[feature] = 0
print(f"Feature importance before normalization: {feature_importance}")
# Dividing the feature importance by the sum of importances
_sum_importance = sum(feature_importance.values())
for feature in feature_importance:
feature_importance[feature] = round(feature_importance[feature]/_sum_importance, 3)
print(f"Feature importance after normalization: {feature_importance}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment