流数据分析技术笔记1 流数据简介
文章目錄
- 1.1 流數據的來源
- 1.2 流數據的特別之處
- 1.3 基礎架構與算法
1.1 流數據的來源
大數據
大數據概念:大數據技術描述了一個技術和體系更新的新時代,唄設計與從大規模多樣化的數據中通過高素捕獲、發現和分析技術提取數據的價值
3V定義:高容量(Volume)、高度變化(Velocity)、多樣化(Variety)
傳統的數據挖掘方式:抽樣的數據、準確的數據建模、精確的處理結果
大數據的挖掘方式:精確性不是目標(從抽樣到全樣、從精確到非精確、從因果到關聯)
流數據來源
數據(data)是事實或觀察的結果,是對客觀事物的邏輯歸納,是用于表示客觀事物的未經加工的的原始素材,例如聲音、圖像、符號、文字等。
很多企業為了支持決策分析而構建的數據倉庫系統,其中存放的大量歷史數據就是靜態數據。技術人員可以利用數據挖掘和OLAP(On-Line Analytical Processing)分析工具從靜態數據中找到對企業有價值的信息。
近年來,在Web應用、網絡監控、傳感監測等領域,興起了一種新的數據密集型應用——流數據,即數據以大量、快速、時變的流形式持續到達。
流數據的來源多種多樣,例如數據移動系統,剛開始是為LinkedIn、Yahoo!和Facebook的網站分析與在線廣告處理數據,設計這樣的處理系統是為了應對Twitter和LinkedIn這樣的社交網絡所帶來的社交媒體數據處理的挑戰;再如在線廣告,Google公司的商業帝國與在線廣告息息相關,其通過深度學習技術利用超大規模神經網絡來學習復雜模式。
通過使物聯網以及其他高度分布式的數據采集手段經濟可行,這些系統甚至正在開辟數據采集和分析的全新領域。目前主要的流數據來源為:運行監控 Web分析 在線廣告 社交媒體 移動數據和物聯網。
1.2 流數據的特別之處
流數據與靜態數據區別包括很多方面:數據快速持續到達;數據來源眾多,格式復雜;數據量大,一旦經過處理,要么被丟棄,要么被歸檔存儲;注重數據的整體價值,不過分關注個別數;數據順序顛倒,或不完整。其中最為重要的三個方面可以總結如下:
始終在線,持續流動
松散結構
高基數的存儲
始終在線,持續流動
數據流是流式的,數據始終可得,新數據不斷生成,這為數據分析帶來了機遇和挑戰,一方面,很少會出現數據不足的情況;另一方面,過去80年間所開發的統計工具多數集中于離散實驗,許多標準的分析方法并不一定很適合流式數據。
數據的持續抵達將會導致:實時性、易失性、突發性、無序性
因此,流數據采集和分析系統的設計需滿足兩點要求:
首先,采集系統本身要有非常好的健壯性;
其次,數據是持續流動的這一事實意味著系統的處理要能夠跟得上數據的流動速度。
松散結構
與其他許多數據集相比,流數據經常顯得結構松散。部分原因似乎在于流環境下所感興趣的數據類型,有些數據來源有嚴格的結構,然而還有許多數據來源包含了任意的數據載荷,更難以應付的是,這些數據是自然語言形式的。另一個原因是流數據項目的“廚房水槽”心態。多數項目非常年輕,探索的是未知的領域,隨著時間的推移,這會有所改變,也開始使用容易修改的格式。
數據采集的實時屬性還意味著每個維度都可能在任何給定時刻存在或消失。例如,將IP地址轉換為地理位置的服務可能臨時中斷。對于批處理系統,這不會帶來什么問題,服務再次上線時就可以重新進行分析。流處理系統則不然,它必須能夠處理每一維上的變化,并盡力做到最好。
高基數的存儲
基數指的是一部分數據可能的不同取值個數。高基數數據經常具有“長尾”特征:對于一個給定的維度(或維度組合),存在一個包含不同數據狀態的小集合,這個小集合十分常見,通常占據所觀察數據的絕大部分,其他數據狀態只占很小的比例,從而形成一個“長尾”。
批處理環境下,通常可以對數據集進行多遍處理。流處理環境下,數據通常是單遍處理的。流處理環境下對存儲空間的要求要比批處理環境下更加嚴格,因為與批處理環境不同,流處理通常必須使用快速的主存儲器,而不是速度緩慢的硬盤這樣的第三級存儲器。隨著高性能固態硬盤(SSD)的出現,這種情況有所緩解,但SSD仍然要比主存儲器慢好幾個數量級。
流數據的概念
流數據是一種實時到達的具有閨蜜的、基數高、統計特征復雜變化特征的數據流
流數據分析模型:對上述這種有時效性要求的時間序列的數據分析模型,如獲取模式或進行頻繁項統計、聚類、分類及趨勢預測等。
流數據處理:考慮到數據流大規模實時持續到達的特征,考慮到數據基數大的特點,針對流數據的分析可能需要我們接受近似解決的方案(滑動窗口處理)
1.3 基礎架構與算法
流計算:實時獲取來自不同數據源的海量數據,經過實時分析處理,獲得有價值的信息。
流計算:實時獲取來自不同數據源的海量數據,經過實時分析處理,獲得有價值的信息。
流計算秉持的理念:數據的價值隨著時間的流逝而降低
實時流架構設計與構建應滿足:高性能、海量式、實時性、分布式、易用性、可靠性。
批處理模型:數據先存儲,再分析
有界數據:在時間和空間范圍上有限的數據
無界數據:在時間和空間范圍內趨于無限的數據
流處理模型:數據在線持續處理
窗口模型:固定窗口模型、滑動窗口模型、會話窗口模型
由于流數據具有持續抵達、高基數、統計特征隨時間變化等特性,這意味著將數據收全之后再進行數據分析處理是不現實的,也不符合流數據實時計算的需求。
頻繁項挖掘算法
頻繁項:流數據中指定項目出現的頻繁程度
傳統算法:Apriori算法、FP-Growth算法,主要針對全量數據或界標類型窗口數據,不能適應流數據的快速變化。
主要挑戰:流數據頻繁項挖掘算法需要很高的內存效率;需要時間來區分頻繁項和不頻繁項,頻繁項挖掘的實時處理十分困難
常用算法:基于計數的頻繁項挖掘、基于抽樣的頻繁項挖掘、基于草圖的頻繁項挖掘
聚類算法
聚類分析:把數據按照一定的規則分為幾個簇,使得簇內對象具有較高相似度,簇間對象具有較高相異度。
傳統算法:K-Means算法、K-Medoids算法,要對數據進行多次遍歷和計算,不能適應流數據環境下的聚類分析。
主要挑戰:流數據的聚類處理過程必須是增量式,聚類算法必須根據有限的緩存數據和已有的聚類挖掘結果進行聚類中心的更新;離群點的影響。
常用算法:基于劃分的聚類方法、基于層次的聚類方法、基于密度的聚類方法、基于網格的聚類方法
分類算法
分類:學習一個分類函數或分類模型,并使用該函數或模型將數據映射到指定類別中的某個類別上;與聚類放啊不同,分類方法并不關心分類后的同類數據項之間是否有相似度,而僅關心被分類的數據項與分類類別的相似性
主要挑戰:多數傳統分類模型的訓練需要先標注數據項的分類;若不希望預先標注數據,而直接從數據中學習并構建模型,會面臨流數據持續抵達特性帶來的問題;分類器是否能夠具有持續更新的能力;一些基于距離的分類算法僅能在一些數據量相對不大、實時性要求不高的場景下使用
常用算法:基于距離的分類方法、基于決策樹的分類方法、貝葉斯分類方法
流數據分類性能評價:
傳統:將數據隨機劃分為訓練集、評估記、測試集
流數據:固定式、交錯式
回歸算法
回歸:目標是學習一個函數或模型,使該函數或模型能夠估計一個或多個自變量與因變量之間的關系,檢驗這些關系的可信程度,判斷自變量是否存在影響,并估計未知參數的取值。本質是使用一個函數或模型對輸入樣本進行“擬合”
回歸、聚類、分類的差異:
目標差異:聚類目標是對已知數據的分布特征規律進行挖掘以獲得不同集合;分類強調根據挖掘出的特征規律對新到達數據的歸屬集合進行判定;回歸強調通過學習到的特征規律,或預測未來數據的分布位置(線性回歸),或預測未來數據的二分類分布規律(邏輯回歸)
特征規律差異:聚類強調類內對象的高相似度和類間對象的高相異度;分類強調類間的區分度及目標對象與類的相似度;回歸強調對數據的分布特征函數的擬合。
回歸算法分類:參數回歸(如線性回歸)、非參數回歸(如k近鄰回歸、核回歸、局部加權線性回歸)、邏輯回歸
主要挑戰:流數據的持續抵達特性導致流數據的回歸處理過程也必須是增量是;離群點的影響;回歸同樣面臨流數據的統計特征變化特征的影響。
常用算法:參數型回歸中的線性回歸、非參數型回歸中的k均值回歸、邏輯回歸。
總結
以上是生活随笔為你收集整理的流数据分析技术笔记1 流数据简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 各省名称的来历
- 下一篇: uniapp 模块权限配置 权限管理 权