8000 support for monotonicity & convexity; update v0.5.5 · SelfExplainML/GamiNet@3e238c9 · GitHub
  • [go: up one dir, main page]

    Skip to content

    Commit 3e238c9

    Browse files
    author
    [zebinyang]
    committed
    support for monotonicity & convexity; update v0.5.5
    1 parent 4a09fac commit 3e238c9

    File tree

    9 files changed

    +21744
    -5028
    lines changed

    9 files changed

    +21744
    -5028
    lines changed

    examples/FicoHeloc.ipynb

    Lines changed: 404 additions & 45 deletions
    Large diffs are not rendered by default.

    examples/results/fico_global.eps

    Lines changed: 20558 additions & 4148 deletions
    Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

    examples/results/fico_global.npy

    38.7 KB
    Binary file not shown.

    examples/results/fico_global.png

    36.2 KB
    Loading

    examples/results/fico_regu.eps

    Lines changed: 120 additions & 142 deletions
    Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

    examples/results/fico_regu.png

    2.43 KB
    Loading

    examples/results/fico_traj.eps

    Lines changed: 657 additions & 686 deletions
    Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

    examples/results/fico_traj.png

    1.74 KB
    Loading

    gaminet/gaminet.py

    Lines changed: 5 additions & 7 deletions
    Original file line numberDiff line numberDiff line change
    @@ -524,15 +524,13 @@ def prune_interaction(self, val_x, val_y, sample_weight=None):
    524524
    val_loss = self.evaluate(val_x, val_y, sample_weight[self.val_idx], main_effect_training=False, interaction_training=False)
    525525
    self.interaction_val_loss.append(val_loss)
    526526

    527-
    combined_val_loss = self.main_effect_val_loss[:len(self.active_main_effect_index) + 1] + self.interaction_val_loss[1:]
    528-
    best_idx = np.argmin(combined_val_loss)
    529-
    loss_best = np.min(combined_val_loss)
    530-
    loss_range = np.max(combined_val_loss) - np.min(combined_val_loss)
    527+
    best_idx = np.argmin(self.interaction_val_loss)
    528+
    loss_best = np.min(self.interaction_val_loss)
    529+
    loss_range = np.max(self.interaction_val_loss) - np.min(self.interaction_val_loss)
    531530
    if loss_range > 0:
    532-
    if np.sum(((combined_val_loss - loss_best) / loss_range) < self.loss_threshold) > 0:
    533-
    best_idx = np.where(((combined_val_loss - loss_best) / loss_range) < self.loss_threshold)[0][0]
    531+
    if np.sum(((self.interaction_val_loss - loss_best) / loss_range) < self.loss_threshold) > 0:
    532+
    best_idx = np.where(((self.interaction_val_loss - loss_best) / loss_range) < self.loss_threshold)[0][0]
    534533

    535-
    best_idx = best_idx - len(self.active_main_effect_index)
    536534
    self.active_interaction_index = sorted_index[:best_idx]
    537535
    interaction_switcher = np.zeros((self.interact_num, 1))
    538536
    interaction_switcher[self.active_interaction_index] = 1

    0 commit comments

    Comments
     (0)
    0