每日记录-2020-01-03

记录下今天学习到的东西,分两部分:
1 了解了一些异常检测的算法算法

  1. 异常检测算法的分类:函数

    • 统计假设检验
      这个概念无非就是μ和σ,μ±3σ包含了正太分布的95%的数据,因此在这个范围之外的数据就是异常值,简单粗暴。
      缺点就是首先假设数据服从正太分布,但不必定,其次只适合一维数据。
    • Isolation Forest 孤立森林(周志华)
      ITree的概念其实也不算复杂,主要就是用树对数据进行建模,因为异常值和正常值的差别比较大,因此一般异常值离ROOT比较接近,并且没有字子节点。(诶,新人不太会写blog,这里就不贴详细的概念了)
    • Semi-supervised learning
      据说比较适合国内的环境,还没研究,有空能够看看。
    • 伪xgboost
      把异常检测当作是有监督的数据不平衡下的分类问题,而后就是可使用有监督的异常检测,如xgboost。
    • LOF
      LOF的主要概念还KNN的思想,只是它引入了绝对和相对局部可达密度这个概念(LRD),来衡量数据的离群程度。最终使用每一个数据的绝对利群几率来产生

以上只是对经常使用的异常检测算法进行了一个简述,具体还须要查阅资料。学习

2 pyspark的继续学习
今天看case study的时候学到了两个很是重要的函数spa

rdd.combineByKey(f1,f2,f3)       #输入的必须是pair rdd(k,v)

f1:初始函数,给全部非重复的k初始一个值
eg:lambda x:[x]    这个函数的意思就是把全部非重复的k赋初始值[v](把v变成了列表)

f2:合并函数,对全部拥有相同k的数据进行合并
eg: lambda x,y:x+[y]  有点像reduce的味道,就是把全部相同的k的v合并到一个list中去(可是这里只是产生累加器并未合并)

f3:lambda x,y:x+y 这里才是真正的合并操做 获得最后的结果

具体能够参考:https://blog.csdn.net/u010159842/article/details/71471655



还有一个takeOrdered(20, key=lambda s:-s)
rdd.takeOrdered(20, key=lambda s:-s) 这个函数的意思和take差很少,就是附带排序功能,若是想降序的话要这么写key=lambda s:-s
相关文章
相关标签/搜索