Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple scopes for neighborhood feature #7196

Draft
wants to merge 6 commits into
base: annarailton/neighborhood-features
Choose a base branch
from

Conversation

@tiferet
Copy link

@tiferet tiferet commented Nov 20, 2021

This PR makes several changes to the existing feature:

  1. It allows the neighborhood to be the entire enclosing function.
  2. It creates multiple versions of enclosingFunctionBodyEndpointNeighborhood, each with a different threshold on the number of descendants.
  3. It fixes a bug in the original PR, which caused the neighborhood feature to often be absent: When getting the wrapper for the root node, we must give the container of the root node, not the endpoint, because they won't necessarily be the same for functions contained within functions.

TODO: enclosingFunctionBodyEndpointNeighborhood doesn't match enclosingFunctionBody even when the function is small, which is undesired behavior. enclosingFunctionBody includes the arguments to the function whereas enclosingFunctionBodyEndpointNeighborhood does not. We should find a way to fix this.

Description All six new features, plus enclosingFunctionBody Only the smallest three of the new features, plus enclosingFunctionBody Only the smallest three of the new features, excluding enclosingFunctionBody
AML runs 1, 2, 3 1, 2 1, 2
Evaluations 1, 2, 3 1, 2 1, 2
Results Neutral to bad Neutral to bad Neutral to bad
tiferet added 2 commits Nov 20, 2021
Create three versions of `enclosingFunctionBodyEndpointNeighborhood`, each with a different threshold on the number of descendants.
@tiferet tiferet added the WIP label Nov 20, 2021
@github-actions github-actions bot added the JS label Nov 20, 2021
tiferet added 4 commits Nov 22, 2021
For now don't allow the neighborhood to go all the way out to the outermostEnclosingFunction, because that causes bugs.

After this change, `enclosingFunctionBodyEndpointNeighborhood` doesn't match `enclosingFunctionBody` even when the function is small, which is undesired behavior. `enclosingFunctionBody` includes the arguments to the function whereas `enclosingFunctionBodyEndpointNeighborhood` does not. We should find a way to fix this.
When getting the wrapper for the root node, we must give the container of the root node, not the endpoint, because they won't necessarily be the same for functions contained within functions.
This will allow us to experiment with feature selection on the modeling side to pick out the best subset of scoped features.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

1 participant