Created
June 2, 2022 04:01
-
-
Save Eligijus112/2f936013fff4bf20336e65209005d130 to your computer and use it in GitHub Desktop.
Calculation of feature importance
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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