本文简要介绍python语言中 sklearn.neighbors.LocalOutlierFactor
的用法。
用法:
class sklearn.neighbors.LocalOutlierFactor(n_neighbors=20, *, algorithm='auto', leaf_size=30, metric='minkowski', p=2, metric_params=None, contamination='auto', novelty=False, n_jobs=None)
使用局部异常因子 (LOF) 进行无监督异常值检测。
每个样本的异常分数称为局部异常值因子。它测量给定样本的密度相对于其邻居的局部偏差。它是局部的,因为异常分数取决于对象相对于周围邻域的隔离程度。更准确地说,局部性由k-nearest 个邻居给出,其距离用于估计局部密度。通过将样本的局部密度与其邻居的局部密度进行比较,可以识别出密度大大低于其邻居的样本。这些被认为是异常值。
- n_neighbors:整数,默认=20
kneighbors
查询默认使用的邻居数量。如果 n_neighbors 大于提供的样本数,则将使用所有样本。- algorithm:{‘auto’, ‘ball_tree’,‘kd_tree’, ‘brute’},默认='自动'
用于计算最近邻的算法:
注意:拟合稀疏输入将使用蛮力覆盖此参数的设置。
- leaf_size:整数,默认=30
Leaf 是传递给
BallTree
或KDTree
的大小。这会影响构建和查询的速度,以及存储树所需的内存。最佳值取决于问题的性质。- metric:str 或可调用,默认='minkowski'
该度量用于距离计算。可以使用来自 scikit-learn 或 scipy.spatial.distance 的任何度量。
如果 metric 是“precomputed”,X 被假定为一个距离矩阵并且必须是正方形。 X 可能是一个稀疏矩阵,在这种情况下,只有 “nonzero” 个元素可以被视为邻居。
如果 metric 是一个可调用函数,则在每对实例(行)上调用它并记录结果值。可调用对象应将两个数组作为输入并返回一个值,指示它们之间的距离。这适用于 Scipy 的指标,但效率低于将指标名称作为字符串传递。
指标的有效值为:
- 来自scikit-learn:[‘cityblock’, ‘cosine’, ‘euclidean’,‘l1’, ‘l2’,‘manhattan’]
- 来自 scipy.spatial.distance: [‘braycurtis’, ‘canberra’, ‘chebyshev’, ‘correlation’, ‘dice’, ‘hamming’, ‘jaccard’, ‘kulsinski’, ‘mahalanobis’, ‘minkowski’, ‘rogerstanimoto’, ‘russellrao’, ‘seuclidean’, ‘sokalmichener’, ‘sokalsneath’, ‘sqeuclidean’, ‘yule’]
有关这些指标的详细信息,请参阅scipy.spatial.distance 的文档:https://docs.scipy.org/doc/scipy/reference/spatial.distance.html.
- p:整数,默认=2
来自
sklearn.metrics.pairwise.pairwise_distances
的 Minkowski 度量的参数。当 p = 1 时,这相当于使用 manhattan_distance (l1),而对于 p = 2,则使用 euclidean_distance (l2)。对于任意 p,使用 minkowski_distance (l_p)。- metric_params:字典,默认=无
度量函数的附加关键字参数。
- contamination:‘auto’ 或浮点数,默认='auto'
数据集的污染量,即数据集中异常值的比例。拟合时,它用于定义样本分数的阈值。
- 如果‘auto’,阈值的确定与原论文相同,
- 如果是浮点数,则污染应在 (0, 0.5] 范围内。
- novelty:布尔,默认=假
默认情况下,LocalOutlierFactor 仅用于异常值检测(novelty=False)。如果您想使用 LocalOutlierFactor 进行新颖性检测,请将新颖性设置为 True。在这种情况下请注意,您应该只对新的看不见的数据而不是训练集使用预测、decision_function 和score_samples。
- n_jobs:整数,默认=无
为邻居搜索运行的并行作业数。
None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有处理器。有关详细信息,请参阅词汇表。
- negative_outlier_factor_:ndarray 形状 (n_samples,)
训练样本的相反 LOF。越高越正常。 Inliers 的 LOF 分数往往接近 1(
negative_outlier_factor_
接近 -1),而异常值的 LOF 分数往往更高。样本的局部异常值 (LOF) 捕获其假定的“异常程度”。它是样本的局部可达密度与其k-nearest邻居的局部可达密度之比的平均值。
- n_neighbors_:int
用于
kneighbors
查询的实际邻居数量。- offset_:浮点数
用于从原始分数获取二进制标签的偏移量。 negative_outlier_factor 小于
offset_
的观察被检测为异常。偏移量设置为 -1.5(内点得分约为 -1),除非提供了不同于 “auto” 的污染参数。在这种情况下,偏移量的定义方式是我们在训练中获得预期的异常值数量。- effective_metric_:str
用于距离计算的有效度量。
- effective_metric_params_:dict
度量函数的有效附加关键字参数。
- n_features_in_:int
拟合期间看到的特征数。
- feature_names_in_:ndarray 形状(
n_features_in_
,) 拟合期间看到的特征名称。仅当
X
具有全为字符串的函数名称时才定义。- n_samples_fit_:int
它是拟合数据中的样本数。
参数:
属性:
参考:
- 1
Breunig, M. M.、Kriegel, H. P.、Ng, R. T. 和 Sander, J.(2000 年 5 月)。 LOF:识别基于密度的局部异常值。在 ACM sigmod 记录中。
例子:
>>> import numpy as np >>> from sklearn.neighbors import LocalOutlierFactor >>> X = [[-1.1], [0.2], [101.1], [0.3]] >>> clf = LocalOutlierFactor(n_neighbors=2) >>> clf.fit_predict(X) array([ 1, 1, -1, 1]) >>> clf.negative_outlier_factor_ array([ -0.9821..., -1.0370..., -73.3697..., -0.9821...])
相关用法
- Python sklearn LocalOutlierFactor.kneighbors_graph用法及代码示例
- Python sklearn LocalOutlierFactor.kneighbors用法及代码示例
- Python sklearn LocallyLinearEmbedding用法及代码示例
- Python sklearn LogisticRegression用法及代码示例
- Python sklearn LogisticRegressionCV用法及代码示例
- Python sklearn LarsCV用法及代码示例
- Python sklearn Lars用法及代码示例
- Python sklearn LeavePOut用法及代码示例
- Python sklearn Lasso用法及代码示例
- Python sklearn LabelPropagation用法及代码示例
- Python sklearn LassoLars用法及代码示例
- Python sklearn LeaveOneOut用法及代码示例
- Python sklearn LassoLarsIC用法及代码示例
- Python sklearn LedoitWolf用法及代码示例
- Python sklearn LassoCV.path用法及代码示例
- Python sklearn LinearDiscriminantAnalysis用法及代码示例
- Python sklearn LassoCV用法及代码示例
- Python sklearn LabelSpreading用法及代码示例
- Python sklearn LabelEncoder用法及代码示例
- Python sklearn LinearRegression用法及代码示例
- Python sklearn LabelBinarizer用法及代码示例
- Python sklearn LinearSVR用法及代码示例
- Python sklearn LinearSVC用法及代码示例
- Python sklearn LassoLarsCV用法及代码示例
- Python sklearn LatentDirichletAllocation用法及代码示例
注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.neighbors.LocalOutlierFactor。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。