琐事闲谈 & Pandas安利
2018-5-4 22:52:7 Author: mp.weixin.qq.com(查看原文) 阅读量:1 收藏

0x00 先吃一口安利:Pandas + Numpy

最近几周都沉迷机器学习不可自拔,非常有 “相见恨晚” 的感觉,想丢下一切跟机器学习走 :)

后果就是工作进度拉下不少 o(╥﹏╥)o,趁着周五疯狂赶进度。

有这样一个场景:Agent 每隔一段时间会回传 CPU 的占用情况(数据存在 ElasticSearch 里),需要提取一天内 CPU 占用率过高的主机列表发邮件提醒我。

原本代码是这样写的:

但是一台机器可能会触发多次CPU占用率过高的记录(无需重复提醒),还有一些机器只触发了一次的CPU占用率过高(偶发事件,应该忽略),这都需要特殊处理下。

大脑放空...这大概得做个 groupby 吧...要是改这个ES查询语句,我可能又要改半天了...说起来,pandas 的 groupby 是真好用啊...要是 pandas 能用在这个破项目里就好了...诶诶,怎么不能用啊?

查了下资料,[dict1, dict2, dict3...] 这种格式的可以直接转化为 dataframe 对象。处理完的 dataframe 对象也可以轻松的转化为各种形式的 Python 内置数据类型。代码如下:

处理后的告警结果如下(按平均 CPU 占用率排序。不过港真,这种单核 CPU 占用率在30%的辣鸡 Agent 真的是我写出来的吗?)

想想参加个比赛,被各种数据虐来虐去,groupby用了多少次准确率还是低到令人发指。用在这犄角旮旯统计的事情上,几行代码分分钟解决问题。

这是一个多么痛的领悟:Pandas、Numpy 用于科学计算,并非机器学习专用

写完又开始神游天边,在我没接触机器学习,也没用过 Pandas、Numpy 之前,是不是花了很多冤枉时间来写辣鸡代码?

0x01 机器学习

突然让我感受到机器学习的重要性,是从隔壁组做了个基于机器学习的流量分析开始。将贝叶斯算法应用于预处理阶段,可以过滤掉大部分的正常请求,比正则或者字符串的匹配效率要高很多。再对剩下的数据进行二次处理,由于数据量不大,正则表达式的效率问题也就不那么突出了。

而后,我想做个服务端监控,和领导聊我的一些想法的时候,领导丢给我了一个词:UEBA。本来以为是个IT圈的新词,搜索的时候发现竟然和安全有千丝万缕的关系。(https://www.jianshu.com/p/49b93dd261b8)

春节放假的时候,想研究一下开源的 HIDS —— ossec,买了本巨厚的《OSSIM最佳实践》翻了一遍,ossec Agent 源码也看了一部分,独独空下了 Server 端事件分析、上下文关联这部分的内容。当时觉得太复杂,没想到最后还是逃不开命运。

四月份开始正儿八经的开始看书看视频,跟着吴恩达老师学了两周,了解了一些简单算法的原理,在数学公式里一脸懵逼。用octave做出第一个仿真的时候,开心到炸裂~

万能的朋友推荐了本书(Machine Learning and Deep Learning in python using Scikit-Learn and TensorFlow, github: https://github.com/ageron/handson-ml),用 Jupyter 一步步跟着复现。人生中头一次看原文书,竟然还能理解的差不多,感谢我的高中老师 ヽ( ̄▽ ̄)و

书还没看到一半,万能的朋友再次出现,给我安利了一个机器学习比赛。选了个业务安全方向的题目,自己折腾了一周多,晚上睡觉都梦到 pd.merge,训练出的准确率还是惨不忍睹。积累了一丢丢实践经验,准备回去继续看书,毕竟厚积才能薄发

0x02 近期计划

作为一只机器学习界的萌新,还是要把常用算法都实践一波。YSRC开源的驭龙 HIDS 源码要看,OSSIM 的事件关联分析部分要看。

沿着 “漏洞发现” 这条路,我从扫描器和 SDL 做到 HIDS。之后会沿着 “安全感知” 的这条路,结合威胁数据分析和机器学习,希望能找到适合我的新方向 (~ ̄▽ ̄)~


文章来源: https://mp.weixin.qq.com/s?__biz=MzU4NjIxNzkyNQ==&mid=2247483757&idx=1&sn=9b2d5d4e3715388bdf17da1ce9639f0a&chksm=fdffe1c7ca8868d19cf3e3a796085aada4e1110b6c3ee5e35bb952608c96b26c6d687bfe37b7&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh