hivemall之時間序列資料異常檢測

2021-08-06 05:48:02 字數 3779 閱讀 1564

安裝hivemall

$ git clone 

$ cd incubator-hivemall

$ bin/build.sh

啟動hive和匯入相關 jar

add jar /home/hadoop/incubator-hivemall/target/hivemall-core

-0.4

.2-rc

.2-with

-dependencies

.jar;

source /home/hadoop/incubator-hivemall/resources/ddl/define-all.hive;

create

database

twitter;

usetwitter;

建立外部表及設定外部資料存放位置

create

external

table timeseries (

num int,

value

double

) row format delimited

fields terminated by

'#'stored as textfile

location '/dataset/twitter/timeseries';

源資料格式

182.478

176.231

183.917

177.798

165.469

181.878

184.502

183.303

177.578

171.641

匯入資料格式

1

#182.478

2#176.231

3#183.917

4#177.798

5#165.469

6#181.878

7#184.502

8#183.303

9#177.578

10#171.641

資料上傳hdfs

hadoop fs -put twitter.t /dataset/twitter/timeseries
使用sst

select

num,

sst(value, "-threshold 0.005") as result

from

timeseries

order

by num asc;

結果示例:

7551    

7552

7553

7554

7555

7556

7557

7558

7559

7560

outlier and change-point detection using changefinder

select

num,

changefinder(value, "-outlier_threshold 0.03 -changepoint_threshold 0.0035") as result

from

timeseries

order

by num asc;

結果示例:

16

1718

1920

21

日期          平台     平台訪問次數   序號      outlier_score   changepoint_score   is_outlier  is_changepoint

2016/9/13 weixin 163770

820.517939405

0.002799403

true

false

2016/8/13 weixin 163770

2060.971553367

0.002563691

true

false

2016/7/13 weixin 163770

3290.978151518

0.002569553

true

false

2016/6/12 weixin 163770

4530.893766225

0.005063597

true

true

2016/5/12 weixin 163770

5790.846256467

0.183253975

true

true

2016/4/11 weixin 163770

7041.125480999

2.552122451

true

true

2016/3/11 weixin 163770

8280.799214319

1.437753369

true

true

2016/2/9 weixin 163770

9490.768004277

2.03710669

true

true

2016/1/9 weixin 163770

1075

1.019095702

3.674865513

true

true

2015/12/9 weixin 163770

1197

0.726433576

1.354028448

true

true

2015/11/8 weixin 163770

1321

0.740644184

2.317692273

true

true

2015/10/8 weixin 163770

1447

0.961904857

3.609401953

true

true

2015/9/7 weixin 163770

1572

0.917379836

2.44891755

true

true

篩選出 is_outlier=true

挑選出weixin平台,發現2016和2015部分資料的平台訪問次數相同

檢視原始16年和15年順豐資料

2016/01、2016/03、2016/05、2016/07、2016/08、2015/10、2015/12資料大小相等。

初步斷定資料重複

通過對其下子檔案大小比較,基本斷定上述日期資料為同乙個資料

himall官方手冊:

時間序列資料

出生 gdp溫度 時間要素 年 季度 月 周 日 數值要素 長期變動趨勢 相當長的一段時間,受長期趨勢影響 持續上公升 下降 不規則變動 隨機擾動項 含白噪音 迴圈變動 市場經濟的商業週期 或者整個國家的經濟週期 1 資料具有週期性才能使用時間序列分解,例如資料是月份資料,季度資料,如果是年份資料則...

pandas之時間序列

pandas中提供了許多用來處理時間格式文字的方法,包括按不同方法生成乙個時間序列,修改時間的格式,重取樣等等。in 7 import pandas as pd 按起始和終止日期以及步長生成時間序列 in 8 pd.date range start 20171212 end 20180101 fre...

Python處理時間序列資料

初償用python處理時間序列的資料,碰到一些坑。以此文記錄一下,希望後來者可以少走彎路。背景說明 我是用乙個已有的csv資料表作為原材料進行處理的。目的 實現時間序列的視覺化,及週期性的視覺化。1 碰到的第乙個坑是,匯入到時間資料,預設的是字串的資料型別。因此,在視覺化的時候,會出現沒有按時間先後...