總覽:編號
方法1經驗判斷
23σ
3dbscan
4lof
5isolation tree
6one class svm
一. 經驗判斷
x=
iqr=0.75 分位數 - 0.25 分位數
outlier_min=0.25分位數-1.5iqr
outlier_max=0.75分位數+1.5iqr
判斷標準:< outlier_min 或者 > outlier_max 則為異常值 ;
備註:非引數方法
二.3σ原則
若x~n(u,σ)
p(|x−μ|>3σ)≤0.003
三.dbscan
鄰域:對於x_i 來說,若x_j 到x_i的距離小於c,則稱x_j為x_i的鄰域
核心物件:若x_i鄰域的x_j的數量超過d個,則成x_i為核心物件
密度直達:x_i 為核心物件,若x_j在x_i的鄰域內,則成x_j 到 x_j密度直達
密度可達:x_i → x_j → x_k , 其中 x_i → x_j 密度直達 x_j →x_k 密度直達,則 x_i → x_k 密度可達
密度相連:x_k 為核心樣本, x_i,x_j均有x_k密度可達,那麼x_i,x_j密度連
'''
'''from sklearn.cluster import dbscan
from sklearn import datasets
import numpy as np
import matplotlib.pyplot as plt
# 測試樣本
iris=datasets.load_iris()
x=iris.data
y=iris.target
# 獲取eps
def dist(x,y):
x=np.array(x)
y=np.array(y)
return np.sqrt(np.sum(np.square(x - y)))
k=4k_dist=
for i in range(len(x)):
dist_i=
for j in range(len(y)):
dist_i.sort()
dist_i_k=dist_i[k]
# k-dist 圖
#plt.plot([ele for ele in range(len(k_dist))],k_dist)
#plt.show()
eps=np.percentile(np.array(k_dist),80)
clustering=dbscan(eps=eps,min_samples=4).fit(x)
y_hat=clustering.fit_predict(x)
print(y_hat) # -1為雜訊點
四. lof (local outlier factor)
第一步是要先找到距離p k近個的集合o
第二步 計算lrd(o) 以及 lrd(p)
from sklearn.datasets import load_iris
from sklearn.neighbors import localoutlie***ctor
iris=load_iris()
x=iris.data
cls=localoutlie***ctor(n_neighbors=20,algorithm='auto',contamination=0.1)
cls.fit(x)
res=cls.fit_predict(x)
print(res) # 1表示為正常值,-1表示為異常值
五.isolation tree
流程:
1.劃分n份樣本集
2.對於每份樣本集構造乙個itree,如何構造?
step1: 隨機選擇乙個特徵
step2:隨機選擇乙個特徵中的隨機值,隨機值》= min , 隨機<=max
step3:根據隨機值,進行樣本劃分
滿足條件 : 深度到達一定條件 或者 節點只包含乙個樣本
3.計算每個點距離根節點的平均長度(平均的意思是對多顆itree的深度做的平均)
那麼平均長度如何度量呢? 看**:
bst: binary search tree 二叉搜尋樹
h:harmonic number 調和級數,可以用ln + 尤拉係數進行估計,證明如下;
c(n) : 給定n,h(n)的平均
e(c(n)): 對於一系列itree的c(n)的平均
s(n,x):為異常得分
e 與 s(n,x)的關係
from sklearn.datasets import load_iris
from sklearn.ensemble import isolationforest
''' 引數說明
contamination : 異常值比例
n_estimators: 樹的數量
max_samples:每顆樹,樣本的比例0
max_features:每顆樹,特徵個數和比例
bootstrap: true表示有放回,false表示無返回
'''iris=load_iris()
x=iris.data
cls=isolationforest(contamination=0.1,n_estimators=30,max_features=3,max_samples=100)
cls.fit(x)
y=cls.predict(x)
print(y) # -1 表示異常值,1表示正常值
六.one class svm
from sklearn.svm import oneclasssvm
'''kernel 根據經驗判斷資料可能是那種分布。『linear』:線性;『rbf』:高斯分布,預設的;
nu:異常資料百分比
'''from sklearn.datasets import load_iris
iris=load_iris()
x=iris.data
cls=oneclasssvm(nu=0.1,kernel='rbf')
cls.fit(x)
y=cls.predict(x)
print(y) # -1表示異常,1表示正常
風險識別方法
德爾菲法 優點 1 吸收專家參與 充分利用專家的經驗和學識 2 採用匿名或背靠背的方式,能使每一位專家獨立自由地作出自己的判斷 3 過程幾輪反饋,使專家的意見逐漸趨同。缺點 過程比較複雜,花費時間較長。swot分析方法 是一種根據企業自身的既定內在條件進行分析,找出企業的優勢 劣勢及核心競爭力之所在...
語音識別方法 筆記
語音識別方法 基於引數模型的隱馬爾科夫模型 hmm 的方法和基於非引數模型的向量量化 vq 的方法。基於人工神經網路 ann 的語音識別方法。傳統的會與動態時間規劃的演算法 dtw 在連續語音識別中仍然是主流方法。同時,在小詞彙量 孤立字識別系統中,也已有許多改進的dtw演算法被提出。提高系統的識別...
人臉識別方法簡述
基於 子空間變換的方法 基於子空間變換的方法首先對訓練影象進行代數變換,求得乙個由基影象張成的子空間,然後計算每個影象在該子空間中的投影係數,作為影象的特徵。基於機器學習 的方法 基於機器學習的方法包括神經元網路 artificial neural nctwork,ann 方法和支援向量機 s up...