pelinker.negative_screener¶
LDA/SVM binary screen for synthetic negative mentions before PCA→UMAP.
NegativeClassScreener
dataclass
¶
Fitted binary classifier: predict whether a row is negative_label.
When training data has only one class (no negative_label rows or no KB rows),
:attr:_estimator is None and :meth:predict_is_negative is always false
(PCA→UMAP still runs on all rows at predict time).
Source code in pelinker/negative_screener.py
decision_function(X)
¶
Signed margin when available (SVC, LDA); shape (n_samples,).
Source code in pelinker/negative_screener.py
fit_from_frame(dfr, config)
classmethod
¶
Fit on all rows of dfr (must include entity and embed).
Returns a trivial screener (no sklearn model) when labels are single-class so
:class:~pelinker.model.Linker always holds a non-None screener after fit.
Source code in pelinker/negative_screener.py
predict_is_negative(X)
¶
Boolean mask, shape (n_samples,) — True iff predicted negative class.
Source code in pelinker/negative_screener.py
evaluate_negative_screener_models(X, y, *, n_splits=20, test_size=0.2, random_state=42)
¶
Stratified CV for LDA and SVM (linear kernel); y is 0/1 with 1 = negative class.
Returns nested {model: {metric: {mean, std}}} or None if stratified CV is not feasible.