dragon-ml-toolbox 20.12.0__py3-none-any.whl → 20.13.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dragon-ml-toolbox
3
- Version: 20.12.0
3
+ Version: 20.13.0
4
4
  Summary: Complete pipelines and helper tools for data science and machine learning projects.
5
5
  Author-email: Karl Luigi Loza Vidaurre <luigiloza@gmail.com>
6
6
  License-Expression: MIT
@@ -1,5 +1,5 @@
1
- dragon_ml_toolbox-20.12.0.dist-info/licenses/LICENSE,sha256=L35WDmmLZNTlJvxF6Vy7Uy4SYNi6rCfWUqlTHpoRMoU,1081
2
- dragon_ml_toolbox-20.12.0.dist-info/licenses/LICENSE-THIRD-PARTY.md,sha256=0-HBRMMgKuwtGy6nMJZvIn1fLxhx_ksyyVB2U_iyYZU,2818
1
+ dragon_ml_toolbox-20.13.0.dist-info/licenses/LICENSE,sha256=L35WDmmLZNTlJvxF6Vy7Uy4SYNi6rCfWUqlTHpoRMoU,1081
2
+ dragon_ml_toolbox-20.13.0.dist-info/licenses/LICENSE-THIRD-PARTY.md,sha256=0-HBRMMgKuwtGy6nMJZvIn1fLxhx_ksyyVB2U_iyYZU,2818
3
3
  ml_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  ml_tools/constants.py,sha256=3br5Rk9cL2IUo638eJuMOGdbGQaWssaUecYEvSeRBLM,3322
5
5
  ml_tools/ETL_cleaning/__init__.py,sha256=gLRHF-qzwpqKTvbbn9chIQELeUDh_XGpBRX28j-5IqI,545
@@ -46,7 +46,7 @@ ml_tools/ML_evaluation/_loss.py,sha256=1a4O25i3Ya_3naNZNL7ELLUL46BY86g1scA7d7q2U
46
46
  ml_tools/ML_evaluation/_regression.py,sha256=UZA7_fg85ZKJQWszioWDtmkplSiXeHJk2fBYR5bRXHY,11225
47
47
  ml_tools/ML_evaluation/_sequence.py,sha256=gUk9Uvmy7MrXkfrriMnfypkgJU5XERHdqekTa2gBaOM,8004
48
48
  ml_tools/ML_evaluation/_vision.py,sha256=abBHQ6Z2GunHNusL3wcLgfI1FVNA6hBUBTq1eOA8FSA,11489
49
- ml_tools/ML_evaluation_captum/_ML_evaluation_captum.py,sha256=eWxd6HRQSaqFYNek6x1hZBKi8qeHqk4oOkqrjQgKjZk,19611
49
+ ml_tools/ML_evaluation_captum/_ML_evaluation_captum.py,sha256=eCP19o4sxfG0XlAVKiuuIxdtxO5lqCc0SuhWXx6eObY,20079
50
50
  ml_tools/ML_evaluation_captum/__init__.py,sha256=DZDoZXexCI49JNl_tTmFfYW4hTUYK5QQLex01wMfhnk,333
51
51
  ml_tools/ML_finalize_handler/_ML_finalize_handler.py,sha256=g-vkHJDTGXZsKOUA-Yfg7EuA1SmaHjzesCPiAyRMg2k,7054
52
52
  ml_tools/ML_finalize_handler/__init__.py,sha256=VQyLbCQUcliAAFiOAsnPhyJ7UVYgbSqAbAnpqeOnRSg,198
@@ -119,7 +119,7 @@ ml_tools/ensemble_learning/_ensemble_learning.py,sha256=MHDZBR20_nStlSSeThFI3bSu
119
119
  ml_tools/excel_handler/__init__.py,sha256=AaWM3n_dqBhJLTs3OEA57ex5YykKXNOwVCyHlVsdnqI,530
120
120
  ml_tools/excel_handler/_excel_handler.py,sha256=TODudmeQgDSdxUKzLfAzizs--VL-g8WxDOfQ4sgxxLs,13965
121
121
  ml_tools/keys/__init__.py,sha256=-0c2pmrhyfROc-oQpEjJGLBMhSagA3CyFijQaaqZRqU,399
122
- ml_tools/keys/_keys.py,sha256=Kr73o9SaH5Y3DT0z0H-1eLwlBplJmjisjoO_EoUNkAg,9388
122
+ ml_tools/keys/_keys.py,sha256=YE_Ux2FYObfWurcQvfCvA3ZehwOvKvtCvIViUuYAYNM,9447
123
123
  ml_tools/math_utilities/__init__.py,sha256=K7Obkkc4rPKj4EbRZf1BsXHfiCg7FXYv_aN9Yc2Z_Vg,400
124
124
  ml_tools/math_utilities/_math_utilities.py,sha256=BYHIVcM9tuKIhVrkgLLiM5QalJ39zx7dXYy_M9aGgiM,9012
125
125
  ml_tools/optimization_tools/__init__.py,sha256=KD8JXpfGuPndO4AHnjJGu6uV1GRwhOfboD0KZV45kzw,658
@@ -143,7 +143,7 @@ ml_tools/utilities/__init__.py,sha256=h4lE3SQstg-opcQj6QSKhu-HkqSbmHExsWoM9vC5D9
143
143
  ml_tools/utilities/_translate.py,sha256=U8hRPa3PmTpIf9n9yR3gBGmp_hkcsjQLwjAHSHc0WHs,10325
144
144
  ml_tools/utilities/_utility_save_load.py,sha256=EFvFaTaHahDQWdJWZr-j7cHqRbG_Xrpc96228JhV-bs,16773
145
145
  ml_tools/utilities/_utility_tools.py,sha256=bN0J9d1S0W5wNzNntBWqDsJcEAK7-1OgQg3X2fwXns0,6918
146
- dragon_ml_toolbox-20.12.0.dist-info/METADATA,sha256=VH-wt974dX5kNOfVShO_N5HJJCIhqP2V_7uihSwlYzE,7889
147
- dragon_ml_toolbox-20.12.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
148
- dragon_ml_toolbox-20.12.0.dist-info/top_level.txt,sha256=wm-oxax3ciyez6VoO4zsFd-gSok2VipYXnbg3TH9PtU,9
149
- dragon_ml_toolbox-20.12.0.dist-info/RECORD,,
146
+ dragon_ml_toolbox-20.13.0.dist-info/METADATA,sha256=bTnTpMlvOFu2IlYpmc0QphbYeqbslxzptluUbEWaO-s,7889
147
+ dragon_ml_toolbox-20.13.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
148
+ dragon_ml_toolbox-20.13.0.dist-info/top_level.txt,sha256=wm-oxax3ciyez6VoO4zsFd-gSok2VipYXnbg3TH9PtU,9
149
+ dragon_ml_toolbox-20.13.0.dist-info/RECORD,,
@@ -202,6 +202,13 @@ def _process_single_target(ig: 'IntegratedGradients', # type: ignore
202
202
  mean_abs_attr = mean_abs_attr[:min_len]
203
203
  feature_names = feature_names[:min_len]
204
204
 
205
+ # Calculate percentages (Before Min-Max scaling to preserve relative importance)
206
+ total_attr_sum = np.sum(mean_abs_attr)
207
+ if total_attr_sum > 0:
208
+ attr_percentages = (mean_abs_attr / total_attr_sum) * 100.0
209
+ else:
210
+ attr_percentages = np.zeros_like(mean_abs_attr)
211
+
205
212
  # Min-Max Scaling
206
213
  target_min = 0.01
207
214
  target_max = 1.0
@@ -222,7 +229,8 @@ def _process_single_target(ig: 'IntegratedGradients', # type: ignore
222
229
  # --- Save Data to CSV ---
223
230
  summary_df = pd.DataFrame({
224
231
  CaptumKeys.FEATURE_COLUMN: feature_names,
225
- CaptumKeys.IMPORTANCE_COLUMN: mean_abs_attr
232
+ CaptumKeys.IMPORTANCE_COLUMN: mean_abs_attr,
233
+ CaptumKeys.PERCENT_COLUMN: attr_percentages
226
234
  }).sort_values(CaptumKeys.IMPORTANCE_COLUMN, ascending=False)
227
235
 
228
236
  csv_name = f"{CaptumKeys.SAVENAME}{file_suffix}.csv"
@@ -230,11 +238,13 @@ def _process_single_target(ig: 'IntegratedGradients', # type: ignore
230
238
  summary_df.to_csv(csv_path, index=False)
231
239
 
232
240
  # --- Generate Plot ---
233
- plot_df = summary_df.head(20).sort_values(CaptumKeys.IMPORTANCE_COLUMN, ascending=True)
241
+ plot_df = summary_df.head(20).sort_values(CaptumKeys.PERCENT_COLUMN, ascending=True)
234
242
  plt.figure(figsize=(10, 8), dpi=300)
235
- plt.barh(plot_df[CaptumKeys.FEATURE_COLUMN], plot_df[CaptumKeys.IMPORTANCE_COLUMN], color='mediumpurple')
236
- plt.xlim(0, 1.05) # standardized scale
237
- plt.xlabel("Mean Absolute Attribution")
243
+ plt.barh(plot_df[CaptumKeys.FEATURE_COLUMN], plot_df[CaptumKeys.PERCENT_COLUMN], color='mediumpurple')
244
+ # plt.xlim(0, 1.05) # standardized scale # Removed to reflect actual percentages
245
+ plt.xlim(left=0) # start at 0
246
+ # plt.xlabel("Scaled Mean Absolute Attribution")
247
+ plt.xlabel("Relative Importance (%)")
238
248
 
239
249
  title = "Feature Importance"
240
250
 
ml_tools/keys/_keys.py CHANGED
@@ -99,8 +99,9 @@ class SHAPKeys:
99
99
 
100
100
  class CaptumKeys:
101
101
  """Keys for Captum functions"""
102
- FEATURE_COLUMN = "feature"
103
- IMPORTANCE_COLUMN = "importance"
102
+ FEATURE_COLUMN = "Feature"
103
+ IMPORTANCE_COLUMN = "Scaled Mean Attribution"
104
+ PERCENT_COLUMN = "Relative Importance(%)"
104
105
  SAVENAME = "captum_summary"
105
106
  PLOT_NAME = "captum_importance_plot"
106
107