Ash*_*ish 7 python time-series python-2.7 anomaly-detection
Luminol图书馆的Github链接:https://github.com/linkedin/luminol
任何人都可以用示例代码向我解释,如何使用此模块来查找数据集中的异常.
我想使用这个模块来查找我的时间序列数据中的异常.
PS:我尝试了README.md中提供的示例1,但是收到错误,所以有人请给我一个查找异常的工作示例.
示例1将异常分数放入列表中.
from luminol.anomaly_detector import AnomalyDetector
my_detector = AnomalyDetector(ts)
score = my_detector.get_all_scores()
anom_score = list()
for (timestamp, value) in score.iteritems():
t_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(timestamp))
anom_score.append([t_str, value])
Run Code Online (Sandbox Code Playgroud)
获取值错误:(22,'无效参数')在行:t_str = time.strftime('%Y-%m-%d%H:%M%S',time.localtime(timestamp))
使用Python 2.7
谢谢 :)
该示例在添加import time和定义ts. time.localtime的使用假定您的起始数据使用 unix 时间。此处注明了 AnomalyDetector 的其他参数。可用算法在此处定义。如果algorithm_name未指定,则 AnomalyDetector 回退到使用default_detector,它使用指数平均值和导数的加权总和。这些幻灯片也可能有帮助。
数据.csv
1490323038, 3
1490323048, 4
1490323058, 6
1490323068, 78
1490323078, 67
1490323088, 5
Run Code Online (Sandbox Code Playgroud)
应用程序
from luminol.anomaly_detector import AnomalyDetector
import time
# ts = 'data.csv' # or
ts = {
'1490323038': 3,
'1490323048': 4,
'1490323058': 6,
'1490323068': 78,
'1490323078': 67,
'1490323088': 5,
}
my_detector = AnomalyDetector(ts)
score = my_detector.get_all_scores()
anom_score = []
for (timestamp, value) in score.iteritems():
t_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(timestamp))
anom_score.append([t_str, value])
for score in anom_score:
print(score)
Run Code Online (Sandbox Code Playgroud)
输出:
['2017-03-23 19:37:18', 0.0]
['2017-03-23 19:37:28', 0.02482518793211144]
['2017-03-23 19:37:38', 0.06951052620991202]
['2017-03-23 19:37:48', 2.5187085350547482]
['2017-03-23 19:37:58', 1.201340494410737]
['2017-03-23 19:38:08', 0.9673414624904575]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4689 次 |
| 最近记录: |