-
Notifications
You must be signed in to change notification settings - Fork 662
Isolation Forest follow-up work #8420
Open
Assignees
Description
Tracks deferred robustness, scalability, interoperability, API-parity, and cuml.accel work following #8226.
C++ API robustness
- Handle
n_rows == 0in the public C++ scoring path before launching a zero-block CUDA kernel, and use checked launch-dimension casts. Isolation Forest Implementation #8226 (comment)
Sampling quality and scalability
- Avoid the linear duplicate checks used for row and feature sampling at large
max_samplesormax_features. Consider a fast path whenmax_samples == n_rowsand a scalable sampling strategy. Isolation Forest Implementation #8226 (comment) - Select uniformly among nonconstant features when splitting a node, avoiding sensitivity to column order. Isolation Forest Implementation #8226 (comment)
Python interoperability and persistence
- Support fitted IsolationForest conversion to scikit-learn #8479
- Remove the local workaround for missing
n_node_samplesin exported isolation forest #8488 - Investigate using
nvforestfor inference, and dropping the C++ model entirely (++) - Preserve fitted model behavior across pickle round trips, potentially using the serialized Treelite model and nvForest inference path, and remove the
check_estimators_picklexfail. Remove native model from Isolation Forest estimators #8493 - Raise
NotFittedErrorfrom unfitted estimator methods and remove the corresponding common-estimator-check xfail. Raise NotFittedError from unfitted IsolationForest methods #8475 - Implement or deprecate the unsupported
sample_weightargument FIX Remove spuriousIsolationForestarguments #8486 - Implement or deprecate the unsupported
warm_startargument FIX Remove spuriousIsolationForestarguments #8486 - Support
estimator_,estimators_,estimators_features_, andestimators_samples_attributes. Partly done in Support fitted IsolationForest conversion to scikit-learn #8483 for cuml.accel.estimators_samples_is not done yet there.
cuml.accel support
Treelite usage
- Set
task_type=kIsolationForestin the Treelite representation - Use the built-in postprocessor
exponential_standard_ratioin Treelite/nvForest; remove the transforms(x) = 2^(-E[h(x)] / c(n))from the Python layer. - Set
data_countanddata_count_present. Right now, cuML IsolationForests sets alldata_countas 0.
Activity
Metadata
Metadata
Assignees
Labels
No labels