0 h j" N8 r5 K: d 4 |9 O1 |$ T, x6 T* a. J2 X2 Z异常检测0 F. e- c7 C0 I0 p/ r
信用卡诈骗 $ @9 S# [) D, T8 T: q制造业产品异常检 ! U1 R& b8 Q) {5 v0 m0 d数据中心机器异常检 3 r. G. l3 K% J& i7 R/ {- w8 A* @& ^入侵检测 " ]4 b6 F6 v3 l6 c& X# j/ j8 Q" G& O监督学习 , \: D. m) z: n1 r) @! `1 Q垃圾邮件识别 ( U" B' D( x9 _2 q4 D新闻分类 # e+ m5 o: @- a9 C3 m; x! f二、异常检测算法 # T5 L/ E- @! U 2 E/ m; v0 W" R1 J) g7 k( p& _0 s T; ~0 C
/ t& k3 o% L/ o: e
8 \$ k/ ^9 m# S& @2 M2 K5 r. J1 [3 ?/ K
; j- }' e9 V! c& \
import tushare 6 C# c/ m' m; z- k6 gfrom matplotlib import pyplot as plt ) j) [6 I# W, V6 U3 C 5 q5 o& g) Y; B- f- r
df = tushare.get_hist_data("600680") , ~' P7 h8 T j4 ?6 _0 tv = df[-90: ].volume # G& ~9 C; K- E/ N* y4 zv.plot("kde") ! E6 X/ K$ g* g! k# \" x( s& Y7 ?plt.show() 0 N; ]- k' s2 d. U- r. c1 # _8 E; }8 _$ n) R4 |2 ; ?. s9 f) @# r" z3; z! w9 q; R) b* {7 z, _8 l
49 Z1 y( ~ E) j8 H* B% i% _2 Q
5 3 g4 i# R0 D3 V' |1 A, l6 j6 + X: p2 N3 h% p& f. b `4 {77 b3 G; ?$ J0 S' ?0 g! S. n
近三个月,成交量大于200000就可以认为发生了异常(天量,嗯,要注意风险了……) 6 B+ f# F" Z$ N% f: {" k+ ` + c7 U" d4 n3 ?& g8 P/ \" Q2 n ) z6 J+ x5 K: J' i ) L7 H$ u# a/ l7 B7 R! C 1 i8 G5 d6 H7 y7 Q: f/ `; i # H5 z" d0 L3 Z+ { # g! N& J; x4 m: q. p) u; B - q9 h, L3 ]0 a+ p6 B' V% M% ?+ {% N5 b: z; g
2. 箱线图分析' w3 n, T" ~9 }4 i9 l" `
import tushare4 D0 x- o" X6 s: t9 z3 s6 z( r) M
from matplotlib import pyplot as plt I# w( V) L# V8 U
. }9 B& v/ y! ~
df = tushare.get_hist_data("600680")! P; H5 |. F- d
v = df[-90: ].volume9 s9 _6 T1 k. j6 g, |! B
v.plot("kde"); O% C$ Y. j6 k/ k" i2 e+ i [, d
plt.show()1 Y' `" J+ X; }% ?. T9 J
1- O$ ~2 c: v: z x0 i7 d- z
2 # }9 h2 P* b W( B3# E2 H6 [* c, U
40 B& G" w5 b6 W8 y0 \$ N
5 ; A4 ^1 a6 S. \! @$ l& g M1 Y# E6, K6 o& r7 e) x' u) g5 T" K
7 ) z8 i3 [2 S @4 A" M 2 i) N5 ]+ H+ b) a- {* ?; S3 W* k& C' G1 t1 j
大体可以知道,该股票在成交量少于20000,或者成交量大于80000,就应该提高警惕啦!# |2 M3 d! K! n. k
- x- _* {+ l( I5 `
) r# h* P3 p( {3. 基于距离/密度4 w& ^9 X- e, W. Z+ ?
典型的算法是:“局部异常因子算法-Local Outlier Factor”,该算法通过引入“k-distance,第k距离”、“k-distance neighborhood,第k距离邻域”、“reach-distance,可达距离”、以及“local reachability density,局部可达密度 ”和“local outlier factor,局部离群因子”,来发现异常点。 ( G6 b5 A: V1 M3 A: [* r. M# l& T
* b3 O% Q2 i P) U& v( @8 ]1 V' j7 x
用视觉直观的感受一下,如图2,对于C1集合的点,整体间距,密度,分散情况较为均匀一致,可以认为是同一簇;对于C2集合的点,同样可认为是一簇。o1、o2点相对孤立,可以认为是异常点或离散点。现在的问题是,如何实现算法的通用性,可以满足C1和C2这种密度分散情况迥异的集合的异常点识别。LOF可以实现我们的目标。& c+ F6 J* e/ ]/ w, P; e
* U! z4 u1 \! Q) t. \
2 o' b' e! s9 T/ z0 e7 ^+ Y 1 x9 n* L) v9 c. w8 A1 A Q9 s& [1 \6 N) \6 ?& u& B L
; v- @4 ?: Q3 }3 w! ?/ g
: }5 m! Q! y, Y H/ |# ^& C
( n$ y; e! |: @7 S
, {4 s$ t( w9 @; G4. 基于划分思想 " C/ N, Y6 ?2 E$ b4 P, n( E9 @典型的算法是 “孤立森林,Isolation Forest”,其思想是:/ L M( y X" X