異常檢測-基于相似度的方法

主要內(nèi)容包括:

  • 基于距離的度量
  • 基于密度的度量
  • LOF檢測樣例

1午乓、概述

??“異常”通常是一個主觀的判斷闸准,什么樣的數(shù)據(jù)被認(rèn)為是“異骋嬗”的,需要結(jié)合業(yè)務(wù)背景和環(huán)境來具體分析確定夷家。
??實際上蒸其,數(shù)據(jù)通常嵌入在大量的噪聲中,而我們所說的“異常值”通常指具有特定業(yè)務(wù)意義的那一類特殊的異常值瘾英。噪聲可以視作特性較弱的異常值枣接,沒有被分析的價值。噪聲和異常之間缺谴、正常數(shù)據(jù)和噪聲之間的邊界都是模糊的但惶。異常值通常具有更高的離群程度分?jǐn)?shù)值耳鸯,同時也更具有可解釋性。
??在普通的數(shù)據(jù)處理中膀曾,我們常常需要保留正常數(shù)據(jù)县爬,而對噪聲和異常值的特性則基本忽略。但在異常檢測中添谊,我們?nèi)趸恕霸肼暋焙汀罢?shù)據(jù)”之間的區(qū)別财喳,專注于那些具有有價值特性的異常值。在基于相似度的方法中斩狱,主要思想是異常點的表示與正常點不同

2耳高、基于距離的度量

??基于距離的方法是一種常見的適用于各種數(shù)據(jù)域的異常檢測算法,它基于最近鄰距離來定義異常值所踊。 此類方法不僅適用于多維數(shù)值數(shù)據(jù)泌枪,在其他許多領(lǐng)域,例如分類數(shù)據(jù)秕岛,文本數(shù)據(jù)碌燕,時間序列數(shù)據(jù)和序列數(shù)據(jù)等方面也有廣泛的應(yīng)用。
??基于距離的異常檢測有這樣一個前提假設(shè)继薛,即異常點的 k 近鄰距離要遠(yuǎn)大于正常點修壕。解決問題的最簡單方法是使用嵌套循環(huán)。 第一層循環(huán)遍歷每個數(shù)據(jù)遏考,第二層循環(huán)進(jìn)行異常判斷慈鸠,需要計算當(dāng)前點與其他點的距離,一旦已識別出多于 k 個數(shù)據(jù)點與當(dāng)前點的距離在 D 之內(nèi)诈皿,則將該點自動標(biāo)記為非異常值林束。 這樣計算的時間復(fù)雜度為O(N^{2}),當(dāng)數(shù)據(jù)量比較大時稽亏,這樣計算是及不劃算的壶冒。 因此,需要修剪方法以加快距離計算截歉。

2.1 基于單元的方法

??在基于單元格的技術(shù)中胖腾,數(shù)據(jù)空間被劃分為單元格,單元格的寬度是閾值D和數(shù)據(jù)維數(shù)的函數(shù)瘪松。具體地說咸作,每個維度被劃分成寬度最多為 \frac{D}{{2 \cdot \sqrt d }} 單元格。在給定的單元以及相鄰的單元中存在的數(shù)據(jù)點滿足某些特性宵睦,這些特性可以讓數(shù)據(jù)被更有效的處理记罚。

圖 1 基于單元的數(shù)據(jù)空間分區(qū)

??以二維情況為例,此時網(wǎng)格間的距離為 \frac{D}{{2 \cdot \sqrt d }} 壳嚎,需要記住的一點是桐智,網(wǎng)格單元的數(shù)量基于數(shù)據(jù)空間的分區(qū)末早,并且與數(shù)據(jù)點的數(shù)量無關(guān)。這是決定該方法在低維數(shù)據(jù)上的效率的重要因素说庭,在這種情況下然磷,網(wǎng)格單元的數(shù)量可能不多。 另一方面刊驴,此方法不適用于更高維度的數(shù)據(jù)姿搜。對于給定的單元格,其 L_{1} 鄰居被定義為通過最多1個單元間的邊界可從該單元到達(dá)的單元格的集合捆憎。請注意舅柜,在一個角上接觸的兩個單元格也是 L_{1} 鄰居。 L_{2} 鄰居是通過跨越2個或3個邊界而獲得的那些單元格攻礼。 上圖中顯示了標(biāo)記為 X的特定單元格及其 L_{1}L_{2} 鄰居集业踢。 顯然,內(nèi)部單元具有8個 L_{1} 鄰居和40個 L_{2} 鄰居礁扮。 然后,可以立即觀察到以下性質(zhì):

  • 單元格中兩點之間的距離最多為 D/2瞬沦。
  • 一個點與 L_{1} 鄰接點之間的距離最大為 D太伊。
  • 一個點與它的 Lr 鄰居(其中r > 2)中的一個點之間的距離至少為D

??唯一無法直接得出結(jié)論的是 L_{2} 中的單元格逛钻。 這表示特定單元中數(shù)據(jù)點的不確定性區(qū)域僚焦。 對于這些情況,需要明確執(zhí)行距離計算曙痘。 同時芳悲,可以定義許多規(guī)則,以便立即將部分?jǐn)?shù)據(jù)點確定為異常值或非異常值边坤。 規(guī)則如下:

  • 如果一個單元格中包含超過 k 個數(shù)據(jù)點及其 L_{1} 鄰居名扛,那么這些數(shù)據(jù)點都不是異常值。
  • 如果單元 A 及其相鄰 L_{1}L_{2} 中包含少于 k 個數(shù)據(jù)點茧痒,則單元A中的所有點都是異常值肮韧。

??此過程的第一步是將部分?jǐn)?shù)據(jù)點直接標(biāo)記為非異常值(如果由于第一個規(guī)則而導(dǎo)致它們的單元格包含 k 個點以上)。 此外旺订,此類單元格的所有相鄰單元格僅包含非異常值弄企。 為了充分利用第一條規(guī)則的修剪能力,確定每個單元格及其 L_{1} 鄰居中點的總和区拳。 如果總數(shù)大于 k 拘领,則所有這些點也都標(biāo)記為非離群值。

??接下來樱调,利用第二條規(guī)則的修剪能力约素。 對于包含至少一個數(shù)據(jù)點的每個單元格 A洽瞬,計算其中的點數(shù)及其 L_{1}L_{2} 鄰居的總和。 如果該數(shù)字不超過 k业汰,則將單元格A 中的所有點標(biāo)記為離群值伙窃。 此時,許多單元可能被標(biāo)記為異常值或非異常值样漆。

??對于此時仍未標(biāo)記為異常值或非異常值的單元格中的數(shù)據(jù)點需要明確計算其 k 最近鄰距離为障。即使對于這樣的數(shù)據(jù)點,通過使用單元格結(jié)構(gòu)也可以更快地計算出 k 個最近鄰的距離放祟△⒃梗考慮到目前為止尚未被標(biāo)記為異常值或非異常值的單元格A。這樣的單元可能同時包含異常值和非異常值跪妥。單元格 A 中數(shù)據(jù)點的不確定性主要存在于該單元格的 L_{2} 鄰居中的點集鞋喇。無法通過規(guī)則知道 AL_{2} 鄰居中的點是否在閾值距離 D 內(nèi),為了確定單元 A 中數(shù)據(jù)點與其L_{2} 鄰居中的點集在閾值距離 D 內(nèi)的點數(shù)眉撵,需要進(jìn)行顯式距離計算侦香。對于那些在 L_{1}L_{2} 中不超過 k 個且距離小于 D 的數(shù)據(jù)點,則聲明為異常值纽疟。需要注意罐韩,僅需要對單元 A 中的點到單元AL_{2}鄰居中的點執(zhí)行顯式距離計算台谊。這是因為已知 L_{1} 鄰居中的所有點到 A 中任何點的距離都小于 D绞绒,并且已知 Lr(r> 2) 的所有點與 A上任何點的距離至少為 D。因此愤炸,可以在距離計算中實現(xiàn)額外的節(jié)省蟆肆。

2.2 基于索引的方法

??對于一個給定數(shù)據(jù)集矾睦,基于索引的方法利用多維索引結(jié)構(gòu)(如 \mathrm{R} 樹、k-d 樹)來搜索每個數(shù)據(jù)對象 A 在半徑 D 范圍 內(nèi)的相鄰點炎功。設(shè) M 是一個異常值在其 D -鄰域內(nèi)允許含有對象的最多個數(shù)枚冗,若發(fā)現(xiàn)某個數(shù)據(jù)對象 AD -鄰域內(nèi)出現(xiàn) M+1 甚至更多個相鄰點, 則判定對象 A 不是異常值亡问。該算法時間復(fù)雜度在最壞情況下為 O\left(k N^{2}\right), 其中 k 是數(shù)據(jù)集維數(shù)官紫, N 是數(shù)據(jù)集包含對象的個數(shù)。該算法在數(shù)據(jù)集的維數(shù)增加時具有較好的擴(kuò)展性州藕,但是時間復(fù)雜度的估算僅考慮了搜索時間束世,而構(gòu)造索引的任務(wù)本身就需要密集復(fù)雜的計算量。

3床玻、基于密度的度量

??基于密度的算法主要有局部離群因子(LocalOutlierFactor,LOF)毁涉,以及LOCI、CLOF等基于LOF的改進(jìn)算法锈死。下面我們以LOF為例來進(jìn)行詳細(xì)的介紹和實踐贫堰。

??基于距離的檢測適用于各個集群的密度較為均勻的情況穆壕。在下圖中,離群點B容易被檢出其屏,而若要檢測出較為接近集群的離群點A喇勋,則可能會將一些集群邊緣的點當(dāng)作離群點丟棄。而LOF等基于密度的算法則可以較好地適應(yīng)密度不同的集群情況偎行。

距離檢測的困境-離群點.png

?? 那么川背,這個基于密度的度量值是怎么得來的呢?還是要從距離的計算開始蛤袒。類似k近鄰的思路熄云,首先我們也需要來定義一個“k-距離”。

3.1 k-距離(k-distance(p)):

??對于數(shù)據(jù)集D中的某一個對象o妙真,與其距離最近的k個相鄰點的最遠(yuǎn)距離表示為k-distance(p)缴允,定義為給定點p和數(shù)據(jù)集D中對象o之間的距離d(p,o),滿足:

  • 在集合D中至少有k個點 o'珍德,其中o'∈D\{p\}练般,滿足d(p,o')≤d(p,o)
  • 在集合D中最多有k-1個點o',其中o'∈D\{p\}菱阵,滿足d(p,o;)<d(p,o)

??直觀一些理解踢俄,就是以對象o為中心,對數(shù)據(jù)集D中的所有點到o的距離進(jìn)行排序晴及,距離對象o第k近的點p與o之間的距離就是k-距離。

[圖片上傳失敗...(image-4343ae-1611233243180)]

3.2 k-鄰域(k-distance neighborhood):

??由k-距離嫡锌,我們擴(kuò)展到一個點的集合——到對象o的距離小于等于k-距離的所有點的集合虑稼,我們稱之為k-鄰域:N_{k ? d i s t a n c e ( p )}( P ) = \{ q ∈ D \backslash\{ p \} ∣ d ( p , q ) ≤ k ? d i s t a n c e ( p )\}

??在二維平面上展示出來的話势木,對象o的k-鄰域?qū)嶋H上就是以對象o為圓心蛛倦、k-距離為半徑圍成的圓形區(qū)域。就是說啦桌,k-鄰域已經(jīng)從“距離”這個概念延伸到“空間”了溯壶。

3.3 可達(dá)距離(reachability distance):

??有了鄰域的概念,我們可以按照到對象o的距離遠(yuǎn)近甫男,將數(shù)據(jù)集D內(nèi)的點按照到o的距離分為兩類:

  • p_i在對象o的k-鄰域內(nèi)且改,則可達(dá)距離就是給定點p關(guān)于對象o的k-距離;
  • p_i在對象o的k-鄰域外板驳,則可達(dá)距離就是給定點p關(guān)于對象o的實際距離又跛。

??給定點p關(guān)于對象o的可達(dá)距離用數(shù)學(xué)公式可以表示為:r e a c h?d i s t_ k ( p , o ) = m a x \{k?distance( o ) , d ( p , o )\}
??這樣的分類處理可以簡化后續(xù)的計算若治,同時讓得到的數(shù)值區(qū)分度更高慨蓝。

3.4 局部可達(dá)密度(local reachability density):

??我們可以將“密度”直觀地理解為點的聚集程度感混,就是說,點與點之間距離越短礼烈,則密度越大弧满。在這里,我們使用數(shù)據(jù)集D中給定點p與對象o的k-鄰域內(nèi)所有點的可達(dá)距離平均值的倒數(shù)(注意此熬,不是導(dǎo)數(shù))來定義局部可達(dá)密度庭呜。
??給定點p的局部可達(dá)密度計算公式為:lrd_{MinPts}(p)=1/(\frac {\sum\limits_{o∈N_{MinPts}(p)} reach-dist_{MinPts}(p,o)} {\left\vert N_{MinPts}(p) \right\vert})

??由公式可以看出,這里是對給定點p進(jìn)行度量摹迷,計算其鄰域內(nèi)的所有對象o到給定點p的可達(dá)距離平均值疟赊。給定點p的局部可達(dá)密度越高,越可能與其鄰域內(nèi)的點 屬于同一簇峡碉;密度越低近哟,越可能是離群點。

3.5 局部異常因子:

局部異常因子公式.png

??表示點p的鄰域N_k(p)內(nèi)其他點的局部可達(dá)密度與點p的局部可達(dá)密度之比的平均數(shù)鲫寄。如果這個比值越接近1吉执,說明o的鄰域點密度差不多,o可能和鄰域同屬一簇地来;如果這個比值小于1戳玫,說明o的密度高于其鄰域點密度,o為密集點未斑;如果這個比值大于1咕宿,說明o的密度小于其鄰域點密度,o可能是異常點蜡秽。

??最終得出的LOF數(shù)值府阀,就是我們所需要的離群點分?jǐn)?shù)。在sklearn中有LocalOutlierFactor庫芽突,可以直接調(diào)用试浙。下面來直觀感受一下LOF的圖像呈現(xiàn)效果。

??LocalOutlierFactor庫可以用于對單個數(shù)據(jù)集進(jìn)行無監(jiān)督的離群檢測寞蚌,也可以基于已有的正常數(shù)據(jù)集對新數(shù)據(jù)集進(jìn)行新穎性檢測田巴。在這里我們進(jìn)行單個數(shù)據(jù)集的無監(jiān)督離群檢測。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.neighbors import LocalOutlierFactor

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus']=False
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

??首先構(gòu)造一個含有集群和離群點的數(shù)據(jù)集挟秤。該數(shù)據(jù)集包含兩個密度不同的正態(tài)分布集群和一些離群點壹哺。但是,這里我們手工對數(shù)據(jù)點的標(biāo)注其實是不準(zhǔn)確的煞聪,可能有一些隨機(jī)點會散落在集群內(nèi)部斗躏,而一些集群點由于正態(tài)分布的特性,會與其余點的距離相對遠(yuǎn)一些。在這里我們無法進(jìn)行區(qū)分啄糙,所以按照生成方式統(tǒng)一將它們標(biāo)記為“集群內(nèi)部的點”或者“離群點”笛臣。

np.random.seed(61)

# 構(gòu)造兩個數(shù)據(jù)點集群
X_inliers1 = 0.2 * np.random.randn(100, 2)
X_inliers2 = 0.5 * np.random.randn(100, 2)
X_inliers = np.r_[X_inliers1 + 2, X_inliers2 - 2]

# 構(gòu)造一些離群的點
X_outliers = np.random.uniform(low=-4, high=4, size=(20, 2))

# 拼成訓(xùn)練集
X = np.r_[X_inliers, X_outliers]

n_outliers = len(X_outliers)
ground_truth = np.ones(len(X), dtype=int)
# 打標(biāo)簽,群內(nèi)點構(gòu)造離群值為1隧饼,離群點構(gòu)造離群值為-1
ground_truth[-n_outliers:] = -1
plt.title('構(gòu)造數(shù)據(jù)集 (LOF)')
plt.scatter(X[:-n_outliers, 0], X[:-n_outliers, 1], color='b', s=5, label='集群點')
plt.scatter(X[-n_outliers:, 0], X[-n_outliers:, 1], color='orange', s=5, label='離群點')

plt.axis('tight')
plt.xlim((-5, 5))
plt.ylim((-5, 5))
legend = plt.legend(loc='upper left')
legend.legendHandles[0]._sizes = [10]
legend.legendHandles[1]._sizes = [20]
plt.show()
image.png

??然后使用LocalOutlierFactor庫對構(gòu)造數(shù)據(jù)集進(jìn)行訓(xùn)練沈堡,得到訓(xùn)練的標(biāo)簽和訓(xùn)練分?jǐn)?shù)(局部離群值)。為了便于圖形化展示燕雁,這里對訓(xùn)練分?jǐn)?shù)進(jìn)行了一些轉(zhuǎn)換诞丽。

# 訓(xùn)練模型(找出每個數(shù)據(jù)的實際離群值)
clf = LocalOutlierFactor(n_neighbors=20, contamination=0.1)

# 對單個數(shù)據(jù)集進(jìn)行無監(jiān)督檢測時,以1和-1分別表示非離群點與離群點
y_pred = clf.fit_predict(X)

# 找出構(gòu)造離群值與實際離群值不同的點
n_errors = y_pred != ground_truth
X_pred = np.c_[X,n_errors]

X_scores = clf.negative_outlier_factor_
# 實際離群值有正有負(fù)拐格,轉(zhuǎn)化為正數(shù)并保留其差異性(不是直接取絕對值)
X_scores_nor = (X_scores.max() - X_scores) / (X_scores.max() - X_scores.min())
X_pred = np.c_[X_pred,X_scores_nor]
X_pred = pd.DataFrame(X_pred,columns=['x','y','pred','scores'])

X_pred_same = X_pred[X_pred['pred'] == False]
X_pred_different = X_pred[X_pred['pred'] == True]

# 直觀地看一看數(shù)據(jù)
X_pred

??將訓(xùn)練分?jǐn)?shù)(離群程度)用圓直觀地表示出來僧免,并對構(gòu)造標(biāo)簽與訓(xùn)練標(biāo)簽不一致的數(shù)據(jù)用不同顏色的圓進(jìn)行標(biāo)注。

plt.title('局部離群因子檢測 (LOF)')
plt.scatter(X[:-n_outliers, 0], X[:-n_outliers, 1], color='b', s=5, label='集群點')
plt.scatter(X[-n_outliers:, 0], X[-n_outliers:, 1], color='orange', s=5, label='離群點')

# 以標(biāo)準(zhǔn)化之后的局部離群值為半徑畫圓捏浊,以圓的大小直觀表示出每個數(shù)據(jù)點的離群程度
plt.scatter(X_pred_same.values[:,0], X_pred_same.values[:, 1], 
            s=1000 * X_pred_same.values[:, 3], edgecolors='c', 
            facecolors='none', label='標(biāo)簽一致')
plt.scatter(X_pred_different.values[:, 0], X_pred_different.values[:, 1], 
            s=1000 * X_pred_different.values[:, 3], edgecolors='violet', 
            facecolors='none', label='標(biāo)簽不同')

plt.axis('tight')
plt.xlim((-5, 5))
plt.ylim((-5, 5))

legend = plt.legend(loc='upper left')
legend.legendHandles[0]._sizes = [10]
legend.legendHandles[1]._sizes = [20]
plt.show()
image.png

??可以看出懂衩,模型成功區(qū)分出了大部分的離群點,一些因為隨機(jī)原因散落在集群內(nèi)部的“離群點”也被識別為集群內(nèi)部的點金踪,但是一些與集群略為分散的“集群點”則被識別為離群點浊洞。
??同時可以看出,模型對于不同密度的集群有著較好的區(qū)分度胡岔,對于低密度集群與高密度集群使用了不同的密度閾值來區(qū)分是否離群點法希。
??因此,我們從直觀上可以得到一個印象靶瘸,即基于LOF模型的離群點識別在某些情況下苫亦,可能比基于某種統(tǒng)計學(xué)分布規(guī)則的識別更加符合實際情況。

4怨咪、練習(xí)

1.學(xué)習(xí)使用PyOD庫生成toy example并調(diào)用LOF算法

from __future__ import division
from __future__ import print_function

import os
import sys

from pyod.models.lof import LOF
from pyod.utils.data import generate_data
from pyod.utils.data import evaluate_print
from pyod.utils.example import visualize
contamination = 0.1  # percentage of outliers
n_train = 200  # number of training points
n_test = 100  # number of testing points

# Generate sample data
X_train, y_train, X_test, y_test = \
    generate_data(n_train=n_train,
                  n_test=n_test,
                  n_features=2,
                  contamination=contamination,
                  random_state=42)

# train LOF detector
clf_name = 'LOF'
clf = LOF()
clf.fit(X_train)

# get the prediction labels and outlier scores of the training data
y_train_pred = clf.labels_  # binary labels (0: inliers, 1: outliers)
y_train_scores = clf.decision_scores_  # raw outlier scores

# get the prediction on the test data
y_test_pred = clf.predict(X_test)  # outlier labels (0 or 1)
y_test_scores = clf.decision_function(X_test)  # outlier scores

# evaluate and print the results
print("\nOn Training Data:")
evaluate_print(clf_name, y_train, y_train_scores)
print("\nOn Test Data:")
evaluate_print(clf_name, y_test, y_test_scores)

#On Training Data:
#LOF ROC:0.9997, precision @ rank n:0.95

#On Test Data:
#LOF ROC:1.0, precision @ rank n:1.0
# visualize the results
visualize(clf_name, X_train, y_train, X_test, y_test, y_train_pred,
          y_test_pred, show_figure=True, save_figure=False)

image.png

參考資料:

  1. LOF: Identifying Density-Based Local Outliers
  2. https://scikit-learn.org/stable/auto_examples/neighbors/plot_lof_outlier_detection.html?highlight=lof

關(guān)于Datawhale

Datawhale是一個專注于數(shù)據(jù)科學(xué)與AI領(lǐng)域的開源組織著觉,匯集了眾多領(lǐng)域院校和知名企業(yè)的優(yōu)秀學(xué)習(xí)者,聚合了一群有開源精神和探索精神的團(tuán)隊成員惊暴。Datawhale以“for the learner,和學(xué)習(xí)者一起成長”為愿景趁桃,鼓勵真實地展現(xiàn)自我辽话、開放包容、互信互助卫病、敢于試錯和勇于擔(dān)當(dāng)油啤。同時Datawhale 用開源的理念去探索開源內(nèi)容、開源學(xué)習(xí)和開源方案蟀苛,賦能人才培養(yǎng)益咬,助力人才成長,建立起人與人帜平,人與知識幽告,人與企業(yè)和人與未來的聯(lián)結(jié)梅鹦。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市冗锁,隨后出現(xiàn)的幾起案子齐唆,更是在濱河造成了極大的恐慌,老刑警劉巖冻河,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件箍邮,死亡現(xiàn)場離奇詭異,居然都是意外死亡叨叙,警方通過查閱死者的電腦和手機(jī)锭弊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來擂错,“玉大人味滞,你說我怎么就攤上這事÷黻迹” “怎么了桃犬?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長行楞。 經(jīng)常有香客問我攒暇,道長,這世上最難降的妖魔是什么子房? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任形用,我火速辦了婚禮,結(jié)果婚禮上证杭,老公的妹妹穿的比我還像新娘田度。我一直安慰自己,他們只是感情好解愤,可當(dāng)我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布镇饺。 她就那樣靜靜地躺著,像睡著了一般送讲。 火紅的嫁衣襯著肌膚如雪奸笤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天哼鬓,我揣著相機(jī)與錄音监右,去河邊找鬼。 笑死异希,一個胖子當(dāng)著我的面吹牛健盒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼扣癣,長吁一口氣:“原來是場噩夢啊……” “哼惰帽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起搏色,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤善茎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后频轿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體垂涯,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年航邢,在試婚紗的時候發(fā)現(xiàn)自己被綠了耕赘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡膳殷,死狀恐怖操骡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情赚窃,我是刑警寧澤册招,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站勒极,受9級特大地震影響是掰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辱匿,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一键痛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧匾七,春花似錦絮短、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至邑贴,卻和暖如春限府,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背痢缎。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留世澜,地道東北人独旷。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嵌洼。 傳聞我的和親對象是個殘疾皇子案疲,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 異常檢測——基于相似度的方法 基于距離的度量 基于密度的度量 1.概述 “異常”通常是一個主觀的判斷麻养,什么樣的數(shù)據(jù)...
    許志輝Albert閱讀 979評論 0 2
  • Task01: 今天開始了異常值學(xué)習(xí)的第一天褐啡。我在本科階段學(xué)習(xí)過一些關(guān)于高維數(shù)據(jù)流故障診斷的知識。當(dāng)時主要學(xué)習(xí)的是...
    Jeremy__Wang閱讀 2,351評論 0 0
  • 一鳖昌、基本概念 異常對象被稱作離群點备畦。異常檢測也稱偏差檢測和例外挖掘。 常見的異常成因:數(shù)據(jù)來源于不同的類(異常對象...
    王爾德的小人書閱讀 1,993評論 0 0
  • 基于相似度的方法 基于距離的度量 基于密度的度量 概述 “異承碜颍”通常是一個主觀的判斷懂盐,什么樣的數(shù)據(jù)被認(rèn)為是“異常”...
    penta_ever閱讀 243評論 0 0
  • 一糕档、什么是異常檢測 數(shù)據(jù)中的異常數(shù)據(jù)通常被認(rèn)為是異常點莉恼、離群點或孤立點,這些數(shù)據(jù)的特征與大多數(shù)數(shù)據(jù)不一致速那,呈現(xiàn)出“...
    全村人民的希望閱讀 875評論 0 0