30 accelerate cpi by using batch prediction and numpy array operations instead of for loop #31
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
New implementation of the method
CPI.predict
. The idea is to replace the for loop over permutation by a single batched prediction over all permuted arrays.N: number of samples
D: number of features
B: number of permutations
New
Previous
Results
Using pytest benchmark I obtain very important computation time improvement.
Reproducibility
The above benchmark can be reproduced as follow:
add the following test to the
test_cpi,py
fileRun the benchmark on the previous (main branch) implementation:
Run the benchmark on the new implementation and compare restults:
Consistency with previous implementation
The random seeding is done in a way that guarantees the exact consistency with the previous implementation.