1.描述型分析:發生了什麼?
這是最常見的分析方法。在業務中,這種方法向數據分析師提供了重要指標和業務的衡量方法。
例如,每月的營收和損失賬單。數據分析師可以通過這些賬單,獲取大量的客戶數據。了解客戶的地理信息,就是“描述型分析”方法之一。利用可視化工具,能夠有效的增強描述型分析所提供的信息。
2.診斷型分析:為什麼會發生?
描述性數據分析的下一步就是診斷型數據分析。通過評估描述型數據,診斷分析工具能夠讓數據分析師深入地分析數據,鑽取到數據的核心。
良好設計的BI dashboard能夠整合:按照時間序列進行數據讀入、特徵過濾和鑽取數據等功能,以便更好的分析數據。
3.預測型分析:可能發生什麼?
預測型分析主要用於進行預測。事件未來發生的可能性、預測一個可量化的值,或者是預估事情發生的時間點,這些都可以通過預測模型來完成。
預測模型通常會使用各種可變數據來實現預測。數據成員的多樣化與預測結果密切相關。
在充滿不確定性的環境下,預測能夠幫助做出更好的決定。預測模型也是很多領域正在使用的重要方法。
4.指令型分析:需要做什麼?
數據價值和復雜度分析的下一步就是指令型分析。指令模型基於對“發生了什麼”、“為什麼會發生”和“可能發生什麼”的分析,來幫助用戶決定應該採取什麼措施。通常情況下,指令型分析不是單獨使用的方法,而是前面的所有方法都完成之後,最後需要完成的分析方法。
例如,交通規劃分析考量了每條路線的距離、每條線路的行駛速度、以及目前的交通管制等方面因素,來幫助選擇最好的回家路線。
2. 常用的大數據分析方法
1. Analytic Visualizations(可視化分析)
不管是對數據分析專家還是普通用戶,數據可視化是數據分析工具最基本的要求。可視化可以直觀的展示數據,讓數據自己說話,讓觀眾聽到結果。
2. Data Mining Algorithms(數據挖掘演算法)
可視化是給人看的,數據挖掘就是給機器看的。集群、分割、孤立點分析還有其他的演算法讓我們深入數據內部,挖掘價值。這些演算法不僅要處理大數據的量,也要處理大數據的速度。
3. Predictive Analytic Capabilities(預測性分析能力)
數據挖掘可以讓分析員更好的理解數據,而預測性分析可以讓分析員根據可視化分析和數據挖掘的結果做出一些預測性的判斷。
4. Semantic Engines(語義引擎)
由於非結構化數據的多樣性帶來了數據分析的新的挑戰,需要一系列的工具去解析,提取,分析數據。語義引擎需要被設計成能夠從「文檔」中智能提取信息。
5. Data Quality and Master Data Management(數據質量和數據管理)
數據質量和數據管理是一些管理方面的最佳實踐。通過標准化的流程和工具對數據進行處理可以保證一個預先定義好的高質量的分析結果。
3. 最常用的大數據分析方法有哪些
1、對比分析對比分析法不管是從生活中還是工作中,都會經常用到,對比分析法也稱比較分析法,是將兩個或兩個以上相互聯系的指標數據進行比較,分析其變化情況,了解事物的本質特徵和發展規律。
在數據分析中,常用到的分3類:時間對比、空間對比以及標准對比。
2、漏斗分析
轉化漏斗分析是業務分析的基本模型,最常見的是把最終的轉化設置為某種目的的實現,最典型的就是完成交易。
其中,我們往往關注三個要點:
①從開始到結尾,整體的轉化效率是多少?
②每一步的轉化率是多少?
③哪一步流失最多,原因在什麼地方?流失的用戶符合哪些特徵?
3、用戶分析
用戶分析是互聯網運營的核心,常用的分析方法包括:活躍分析,留存分析,用戶分群,用戶畫像,用戶細查等。
可將用戶活躍細分為瀏覽活躍,互動活躍,交易活躍等,通過活躍行為的細分,掌握關鍵行為指標;通過用戶行為事件序列,用戶屬性進行分群,觀察分群用戶的訪問,瀏覽,注冊,互動,交易等行為,從而真正把握不同用戶類型的特點,提供有針對性的產品和服務。
4、指標分析
在實際工作中,這個方法應用的最為廣泛,也是在使用其他方法進行分析的同時搭配使用突出問題關鍵點的方法,指直接運用統計學中的一些基礎指標來做數據分析,比如平均數、眾數、中位數、最大值、最小值等。在選擇具體使用哪個基礎指標時,需要考慮結果的取向性。
5、埋點分析
只有採集了足夠的基礎數據,才能通過各種分析方法得到需要的分析結果。
通過分析用戶行為,並細分為:瀏覽行為,輕度交互,重度交互,交易行為,對於瀏覽行為和輕度交互行為的點擊按鈕等事件,因其使用頻繁,數據簡單,採用無埋點技術實現自助埋點,即可以提高數據分析的實效性,需要的數據可立即提取,又大量減少技術人員的工作量,需要採集更豐富信息的行為。
4. 海量數據分析處理方法
海量數據分析處理方法
一、Bloom filter
適用范圍:可以用來實現數據字典,進行數據的判重,或者集合求交集
基本原理及要點:
對於原理來說很簡單,位數組+k個獨立hash函數。將hash函數對應的值的位數組置1,查找時如果發現所有hash函數對應位都是1說明存在,很明顯這個過程並不保證查找的結果是100%正確的。同時也不支持刪除一個已經插入的關鍵字,因為該關鍵字對應的位會牽動到其他的關鍵字。所以一個簡單的改進就是 counting Bloom filter,用一個counter數組代替位數組,就可以支持刪除了。
還有一個比較重要的問題,如何根據輸入元素個數n,確定位數組m的大小及hash函數個數。當hash函數個數k=(ln2)*(m/n)時錯誤率最小。在錯誤率不大於E的情況下,m至少要等於n*lg(1/E)才能表示任意n個元素的集合。但m還應該更大些,因為還要保證bit數組里至少一半為0,則m應該>=nlg(1/E)*lge 大概就是nlg(1/E)1.44倍(lg表示以2為底的對數)。
舉個例子我們假設錯誤率為0.01,則此時m應大概是n的13倍。這樣k大概是8個。
注意這里m與n的單位不同,m是bit為單位,而n則是以元素個數為單位(准確的說是不同元素的個數)。通常單個元素的長度都是有很多bit的。所以使用bloom filter內存上通常都是節省的。
擴展:
Bloom filter將集合中的元素映射到位數組中,用k(k為哈希函數個數)個映射位是否全1表示元素在不在這個集合中。Counting bloom filter(CBF)將位數組中的每一位擴展為一個counter,從而支持了元素的刪除操作。Spectral Bloom Filter(SBF)將其與集合元素的出現次數關聯。SBF採用counter中的最小值來近似表示元素的出現頻率。
問題實例:給你A,B兩個文件,各存放50億條URL,每條URL佔用64位元組,內存限制是4G,讓你找出A,B文件共同的URL。如果是三個乃至n個文件呢?
根據這個問題我們來計算下內存的佔用,4G=2^32大概是40億*8大概是340億,n=50億,如果按出錯率0.01算需要的大概是650億個bit。現在可用的是340億,相差並不多,這樣可能會使出錯率上升些。另外如果這些urlip是一一對應的,就可以轉換成ip,則大大簡單了。
二、Hashing
適用范圍:快速查找,刪除的基本數據結構,通常需要總數據量可以放入內存
基本原理及要點:
hash函數選擇,針對字元串,整數,排列,具體相應的hash方法。
碰撞處理,一種是open hashing,也稱為拉鏈法;另一種就是closed hashing,也稱開地址法,opened addressing。
擴展:
d-left hashing中的d是多個的意思,我們先簡化這個問題,看一看2-left hashing。2-left hashing指的是將一個哈希表分成長度相等的兩半,分別叫做T1和T2,給T1和T2分別配備一個哈希函數,h1和h2。在存儲一個新的key時,同時用兩個哈希函數進行計算,得出兩個地址h1[key]和h2[key]。這時需要檢查T1中的h1[key]位置和T2中的h2[key]位置,哪一個位置已經存儲的(有碰撞的)key比較多,然後將新key存儲在負載少的位置。如果兩邊一樣多,比如兩個位置都為空或者都存儲了一個key,就把新key存儲在左邊的T1子表中,2-left也由此而來。在查找一個key時,必須進行兩次hash,同時查找兩個位置。
問題實例:
1).海量日誌數據,提取出某日訪問網路次數最多的那個IP。
IP的數目還是有限的,最多2^32個,所以可以考慮使用hash將ip直接存入內存,然後進行統計。
三、bit-map
適用范圍:可進行數據的快速查找,判重,刪除,一般來說數據范圍是int的10倍以下
基本原理及要點:使用bit數組來表示某些元素是否存在,比如8位電話號碼
擴展:bloom filter可以看做是對bit-map的擴展
問題實例:
1)已知某個文件內包含一些電話號碼,每個號碼為8位數字,統計不同號碼的個數。
8位最多99 999 999,大概需要99m個bit,大概10幾m位元組的內存即可。
2)2.5億個整數中找出不重復的整數的個數,內存空間不足以容納這2.5億個整數。
將bit-map擴展一下,用2bit表示一個數即可,0表示未出現,1表示出現一次,2表示出現2次及以上。或者我們不用2bit來進行表示,我們用兩個bit-map即可模擬實現這個2bit-map。
四、堆
適用范圍:海量數據前n大,並且n比較小,堆可以放入內存
基本原理及要點:最大堆求前n小,最小堆求前n大。方法,比如求前n小,我們比較當前元素與最大堆里的最大元素,如果它小於最大元素,則應該替換那個最大元素。這樣最後得到的n個元素就是最小的n個。適合大數據量,求前n小,n的大小比較小的情況,這樣可以掃描一遍即可得到所有的前n元素,效率很高。
擴展:雙堆,一個最大堆與一個最小堆結合,可以用來維護中位數。
問題實例:
1)100w個數中找最大的前100個數。
用一個100個元素大小的最小堆即可。
五、雙層桶劃分-—其實本質上就是【分而治之】的思想,重在分的技巧上!
適用范圍:第k大,中位數,不重復或重復的數字
基本原理及要點:因為元素范圍很大,不能利用直接定址表,所以通過多次劃分,逐步確定范圍,然後最後在一個可以接受的范圍內進行。可以通過多次縮小,雙層只是一個例子。
擴展:
問題實例:
1).2.5億個整數中找出不重復的整數的個數,內存空間不足以容納這2.5億個整數。
有點像鴿巢原理,整數個數為2^32,也就是,我們可以將這2^32個數,劃分為2^8個區域(比如用單個文件代表一個區域),然後將數據分離到不同的區域,然後不同的區域在利用bitmap就可以直接解決了。也就是說只要有足夠的磁碟空間,就可以很方便的解決。
2).5億個int找它們的中位數。
這個例子比上面那個更明顯。首先我們將int劃分為2^16個區域,然後讀取數據統計落到各個區域里的數的個數,之後我們根據統計結果就可以判斷中位數落到那個區域,同時知道這個區域中的第幾大數剛好是中位數。然後第二次掃描我們只統計落在這個區域中的那些數就可以了。
實際上,如果不是int是int64,我們可以經過3次這樣的劃分即可降低到可以接受的程度。即可以先將int64分成2^24個區域,然後確定區域的第幾大數,在將該區域分成2^20個子區域,然後確定是子區域的第幾大數,然後子區域里的數的個數只有2^20,就可以直接利用direct addr table進行統計了。
六、資料庫索引
適用范圍:大數據量的增刪改查
基本原理及要點:利用數據的設計實現方法,對海量數據的增刪改查進行處理。
七、倒排索引(Inverted index)
適用范圍:搜索引擎,關鍵字查詢
基本原理及要點:為何叫倒排索引?一種索引方法,被用來存儲在全文搜索下某個單詞在一個文檔或者一組文檔中的存儲位置的映射。
以英文為例,下面是要被索引的文本: T0 = 「it is what it is」 T1 = 「what is it」 T2 = 「it is a banana」
我們就能得到下面的反向文件索引:
「a」: {2} 「banana」: {2} 「is」: {0, 1, 2} 「it」: {0, 1, 2} 「what」: {0, 1}
檢索的條件」what」,」is」和」it」將對應集合的交集。
正向索引開發出來用來存儲每個文檔的單詞的列表。正向索引的查詢往往滿足每個文檔有序頻繁的全文查詢和每個單詞在校驗文檔中的驗證這樣的查詢。在正向索引中,文檔占據了中心的位置,每個文檔指向了一個它所包含的索引項的序列。也就是說文檔指向了它包含的那些單詞,而反向索引則是單詞指向了包含它的文檔,很容易看到這個反向的關系。
擴展:
問題實例:文檔檢索系統,查詢那些文件包含了某單詞,比如常見的學術論文的關鍵字搜索。
八、外排序
適用范圍:大數據的排序,去重
基本原理及要點:外排序的歸並方法,置換選擇敗者樹原理,最優歸並樹
擴展:
問題實例:
1).有一個1G大小的一個文件,裡面每一行是一個詞,詞的大小不超過16個位元組,內存限制大小是1M。返回頻數最高的100個詞。
這個數據具有很明顯的特點,詞的大小為16個位元組,但是內存只有1m做hash有些不夠,所以可以用來排序。內存可以當輸入緩沖區使用。
九、trie樹
適用范圍:數據量大,重復多,但是數據種類小可以放入內存
基本原理及要點:實現方式,節點孩子的表示方式
擴展:壓縮實現。
問題實例:
1).有10個文件,每個文件1G,每個文件的每一行都存放的是用戶的query,每個文件的query都可能重復。要你按照query的頻度排序。
2).1000萬字元串,其中有些是相同的(重復),需要把重復的全部去掉,保留沒有重復的字元串。請問怎麼設計和實現?
3).尋找熱門查詢:查詢串的重復度比較高,雖然總數是1千萬,但如果除去重復後,不超過3百萬個,每個不超過255位元組。
十、分布式處理 maprece
適用范圍:數據量大,但是數據種類小可以放入內存
基本原理及要點:將數據交給不同的機器去處理,數據劃分,結果歸約。
擴展:
問題實例:
1).The canonical example application of MapRece is a process to count the appearances ofeach different word in a set of documents:
2).海量數據分布在100台電腦中,想個辦法高效統計出這批數據的TOP10。
3).一共有N個機器,每個機器上有N個數。每個機器最多存O(N)個數並對它們操作。如何找到N^2個數的中數(median)?
5. 數據統計分析方法有哪些
1、分解主題分析
所謂分解主題分析,是指對於不同分析要求,我們可以初步分為營銷主題、財務主題、靈活主題等,然後將這些大的主題逐步拆解為不同小的方面來進行分析。
2、鑽取分析
所謂鑽取分析,是指改變維的層次,變換分析的粒度。按照方向方式分為:向上和向下鑽取。向上鑽取是在某一維上將低層次的細節數據概括到高層次的匯總數據,或者減少維數;是自動生成匯總行的分析方法。向下鑽取是從匯總數據深入到細節數據進行觀察或增加新維的分析方法。
3、常規比較分析
所謂常規比較分析,是指一般比較常見的對比分析方法,例如有時間趨勢分析、構成分析、同類比較分析、多指標分析、相關性分析、分組分析、象限分析等。
4、大型管理模型分析
所謂大型管理模型分析,是指依據各種成熟的、經過實踐論證的大型管理模型對問題進行分析的方法。比較常見的大型管理模型分析包括RCV模型、阿米巴經營、品類管理分析等。
5、財務和因子分析
所謂財務和因子分析,主要是指因子分析法在財務信息分析上的廣泛應用。因子分析的概念起源於20世紀初的關於智力測試的統計分析,以最少的信息丟失為前提,將眾多的原有變數綜合成較少的幾個綜合指標,既能大大減少參與數據建模的變數個數,同時也不會造成信息的大量丟失,達到有效的降維。比較常用的財務和因子分析法有杜邦分析法、EVA分析、財務指標、財務比率、坪效公式、品類公式、流量公式等。
6、專題大數據分析
所謂專題大數據分析,是指對特定的一些規模巨大的數據進行分析。大數據常用來描述和定義信息爆炸時代產生的海量數據,並命名與之相關的技術發展與創新。常見特徵是數據量大、類型繁多、價值密度低、速度快、時效低。比較常見的專題大數據分析有:市場購物籃分析、重力模型、推薦演算法、價格敏感度分析、客戶分組分析等分析方法。