每日記錄-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
相關文章
相關標籤/搜索