本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。