def anomaly_score(self, X=None):
"""Compute anomaly scores for test samples.
Parameters
----------
X : array-like of shape (n_samples, n_features), default None
Test samples.
Returns
-------
y_score : array-like of shape (n_samples,)
Anomaly scores for test samples.
"""
check_is_fitted(self, '_knn')
if X is None:
X = self._knn._fit_X
ind = self._knn.kneighbors(None, return_distance=False)
else:
X = check_array(X)
ind = self._knn.kneighbors(X, return_distance=False)
n_samples, _ = X.shape
try:
result = Parallel(self.n_jobs)(
delayed(_abof)(
X[s], ind[s], self._knn._fit_X
) for s in gen_even_slices(n_samples, self.n_jobs)
)
except FloatingPointError as e:
raise ValueError('X must not contain training samples') from e
return -np.concatenate(result)
评论列表
文章目录