標籤:

如何有效地進行數據挖掘和分析?

  1. 線上數據是如何統計出來的?常用的衡量指標有哪些?
  2. 如何根據項目確定不同數據的重要程度?數據的變化如何解讀?
  3. 如何界定數據的有效性?不同數據間的關聯是怎樣的?


我想吐個槽,最近看數據挖掘的資料和文章看的快吐了。各種演算法和理論,我想提一個老掉牙但很重要的觀點。先問自己三遍,你真的了解自己的業務嗎?你了解你的用戶是如何來到你的網站,是如何行為的嗎?用戶的需求是什麼?樓上以及樓上上所說的真的只是基礎,基礎而已,不過非常重要。怎麼有效的挖掘,拋開那些基礎的數據,先找三到五個指標來衡量業務的進展情況,其他的可以分衡量產品數據、用戶活躍度、用戶體驗等等各種指標,分層分級進行。


1,數據通過網站日誌或用戶cookie留下的信息,結合數據挖掘演算法獲取。指標根據統計的目標去設置,一般有瀏覽量,用戶數,停留時間,有註冊的用戶信息也是數據來源之一。

2、看你是要衡量、監控的項目或產品是哪方面,側重點也不一樣。比如我前面有提到過:騰訊關注的數據,07年以前是用戶註冊相關;08年主要是活躍用戶數;現在基本有三類,活躍度、性能類和用戶體驗類。當然,是建立在長期積累和優化的數據挖掘系統的基礎上。

數據化後的信息就可以通過曲線來看變化趨勢。

3、數據有效性是在數據分析前期需要處理,異常處理是一個常用方法。海量數據需要用大型數據分析工具做前期處理,像spss,sas。

數據關聯是指啥?像spss中有聚類和回歸等方法,是用在處理數據的變數之間的關係,做加權處理。

總結,數據分析是一個工具,要有目標的做數據分析,做數據分析要麼發現問題,要麼判斷趨勢。


數據挖掘是利用業務知識從數據中發現和解釋知識(或稱為模式)的過程,這種知識是以自然或者人工形式創造的新知識。

當前的數據挖掘形式,是在20世紀90年代實踐領域誕生的,是在集成數據挖掘演算法平台發展的支撐下適合商業分析的一種形式。也許是因為數據挖掘源於實踐而非理論,在其過程的理解上不太引人注意。20世紀90年代晚期發展的CRISP-DM,逐漸成為數據挖掘過程的一種標準化過程,被越來越多的數據挖掘實踐者成功運用和遵循。

雖然CRISP-DM能夠指導如何實施數據挖掘,但是它不能解釋數據挖掘是什麼或者為什麼適合這樣做。在本文中我將闡述我提出數據挖掘的九種準則或「定律」(其中大多數為實踐者所熟知)以及另外其它一些熟知的解釋。開始從理論上(不僅僅是描述上)來解釋數據挖掘過程。

我的目的不是評論CRISP-DM,但CRISP-DM的許多概念對於理解數據挖掘是至關重要的,本文也將依賴於CRISP-DM的常見術語。CRISP-DM僅僅是論述這個過程的開始。

第一,目標律:業務目標是所有數據解決方案的源頭。

它定義了數據挖掘的主題:數據挖掘關註解決業務業問題和實現業務目標。數據挖掘主要不是一種技術,而是一個過程,業務目標是它的的核心。 沒有業務目標,沒有數據挖掘(不管這種表述是否清楚)。因此這個準則也可以說成:數據挖掘是業務過程。

第二,知識律:業務知識是數據挖掘過程每一步的核心。

這裡定義了數據挖掘過程的一個關鍵特徵。CRISP-DM的一種樸素的解讀是業務知識僅僅作用於數據挖掘過程開始的目標的定義與最後的結果的實施,這將錯過數據挖掘過程的一個關鍵屬性,即業務知識是每一步的核心。

為了方便理解,我使用CRISP-DM階段來說明:

商業理解必須基於業務知識,所以數據挖掘目標必須是業務目標的映射(這種映射也基於數據知識和數據挖掘知識);

數據理解使用業務知識理解與業務問題相關的數據,以及它們是如何相關的;

數據預處理就是利用業務知識來塑造數據,使得業務問題可以被提出和解答(更詳盡的第三條—準備律);

建模是使用數據挖掘演算法創建預測模型,同時解釋模型和業務目標的特點,也就是說理解它們之間的業務相關性;

評估是模型對理解業務的影響;

實施是將數據挖掘結果作用於業務過程;

總之,沒有業務知識,數據挖掘過程的每一步都是無效的,也沒有「純粹的技術」步驟。 業務知識指導過程產生有益的結果,並使得那些有益的結果得到認可。數據挖掘是一個反覆的過程,業務知識是它的核心,驅動著結果的持續改善。

這背後的原因可以用「鴻溝的表現」(chasm of representation)來解釋(Alan Montgomery在20世紀90年代對數據挖掘提出的一個觀點)。Montgomery指出數據挖掘目標涉及到現實的業務,然而數據僅能表示現實的一部分;數據和現實世界是有差距(或「鴻溝」)的。在數據挖掘過程中,業務知識來彌補這一差距,在數據中無論發現什麼,只有使用業務知識解釋才能顯示其重要性,數據中的任何遺漏必須通過業務知識彌補。只有業務知識才能彌補這種缺失,這是業務知識為什麼是數據挖掘過程每一步驟的核心的原因。

CRISP-DM Diagram

第三,準備律:數據預處理比數據挖掘其他任何一個過程都重要。

這是數據挖掘著名的格言,數據挖掘項目中最費力的事是數據獲取和預處理。非正式估計,其佔用項目的時間為50%-80%。最簡單的解釋可以概括為「數據是困難的」,經常採用自動化減輕這個「問題」的數據獲取、數據清理、數據轉換等數據預處理各部分的工作量。雖然自動化技術是有益的,支持者相信這項技術可以減少數據預處理過程中的大量的工作量,但這也是誤解數據預處理在數據挖掘過程中是必須的原因。

數據預處理的目的是把數據挖掘問題轉化為格式化的數據,使得分析技術(如數據挖掘演算法)更容易利用它。數據任何形式的變化(包括清理、最大最小值轉換、增長等)意味著問題空間的變化,因此這種分析必須是探索性的。 這是數據預處理重要的原因,並且在數據挖掘過程中佔有如此大的工作量,這樣數據挖掘者可以從容地操縱問題空間,使得容易找到適合分析他們的方法。

有兩種方法「塑造」這個問題空間。第一種方法是將數據轉化為可以分析的完全格式化的數據,比如,大多數數據挖掘演算法需要單一表格形式的數據,一個記錄就是一個樣例。數據挖掘者都知道什麼樣的演算法需要什麼樣的數據形式,因此可以將數據轉化為一個合適的格式。第二種方法是使得數據能夠含有業務問題的更多的信息,例如,某些領域的一些數據挖掘問題,數據挖掘者可以通過業務知識和數據知識知道這些。 通過這些領域的知識,數據挖掘者通過操縱問題空間可能更容易找到一個合適的技術解決方案。

因此,通過業務知識、數據知識、數據挖掘知識從根本上使得數據預處理更加得心應手。 數據預處理的這些方面並不能通過簡單的自動化實現。

這個定律也解釋了一個有疑義的現象,也就是雖然經過數據獲取、清理、融合等方式創建一個數據倉庫,但是數據預處理仍然是必不可少的,仍然佔有數據挖掘過程一半以上的工作量。此外,就像CRISP-DM展示的那樣,即使經過了主要的數據預處理階段,在創建一個有用的模型的反覆過程中,進一步的數據預處理的必要的。

第四,試驗律(NFL律:No Free Lunch):對於數據挖掘者來說,天下沒有免費的午餐,一個正確的模型只有通過試驗(experiment)才能被發現。

機器學習有一個原則:如果我們充分了解一個問題空間(problem space),我們可以選擇或設計一個找到最優方案的最有效的演算法。一個卓越演算法的參數依賴於數據挖掘問題空間一組特定的屬性集,這些屬性可以通過分析發現或者演算法創建。但是,這種觀點來自於一個錯誤的思想,在數據挖掘過程中數據挖掘者將問題公式化,然後利用演算法找到解決方法。事實上,數據挖掘者將問題公式化和尋找解決方法是同時進行的—–演算法僅僅是幫助數據挖掘者的一個工具。

有五種因素說明試驗對於尋找數據挖掘解決方案是必要的:

數據挖掘項目的業務目標定義了興趣範圍(定義域),數據挖掘目標反映了這一點;

與業務目標相關的數據及其相應的數據挖掘目標是在這個定義域上的數據挖掘過程產生的;

這些過程受規則限制,而這些過程產生的數據反映了這些規則;

在這些過程中,數據挖掘的目的是通過模式發現技術(數據挖掘演算法)和可以解釋這個演算法結果的業務知識相結合的方法來揭示這個定義域上的規則;

數據挖掘需要在這個域上生成相關數據,這些數據含有的模式不可避免地受到這些規則的限制。

在這裡強調一下最後一點,在數據挖掘中改變業務目標,CRISP-DM有所暗示,但經常不易被覺察到。廣為所知的CRISP-DM過程不是下一個步驟僅接著上一個步驟的「瀑布」式的過程。事實上,在項目中的任何地方都可以進行任何CRISP-DM步驟,同樣商業理解也可以存在於任何一個步驟。業務目標不是簡單地在開始就給定,它貫穿於整個過程。這也許可以解釋一些數據挖掘者在沒有清晰的業務目標的情況下開始項目,他們知道業務目標也是數據挖掘的一個結果,不是靜態地給定。

Wolpert的「沒有免費的午餐」理論已經應用於機器學習領域,無偏的狀態好於(如一個具體的演算法)任何其他可能的問題(數據集)出現的平均狀態。這是因為,如果我們考慮所有可能的問題,他們的解決方法是均勻分布的,以至於一個演算法(或偏倚)對一個子集是有利的,而對另一個子集是不利的。這與數據挖掘者所知的具有驚人的相似性,沒有一個演算法適合每一個問題。但是經過數據挖掘處理的問題或數據集絕不是隨機的,也不是所有可能問題的均勻分布,他們代表的是一個有偏差的樣本,那麼為什麼要應用NFL的結論?答案涉及到上面提到的因素:問題空間初始是未知的,多重問題空間可能和每一個數據挖掘目標相關,問題空間可能被數據預處理所操縱,模型不能通過技術手段評估,業務問題本身可能會變化。由於這些原因,數據挖掘問題空間在數據挖掘過程中展開,並且在這個過程中是不斷變化的,以至於在有條件的約束下,用演算法模擬一個隨機選擇的數據集是有效的。 對於數據挖掘者來說:沒有免費的午餐。

這大體上描述了數據挖掘過程。但是,在有條件限制某些情況下,比如業務目標是穩定的,數據和其預處理是穩定的,一個可接受的演算法或演算法組合可以解決這個問題。在這些情況下,一般的數據挖掘過程中的步驟將會減少。 但是,如果這種情況穩定是持續的,數據挖掘者的午餐是免費的,或者至少相對便宜的。像這樣的穩定性是臨時的,因為對數據的業務理解(第二律)和對問題的理解(第九律)都會變化的。

第五,模式律(大衛律):數據中總含有模式。

這條規律最早由David Watkins提出。 我們可能預料到一些數據挖掘項目會失敗,因為解決業務問題的模式並不存在於數據中,但是這與數據挖掘者的實踐經驗並不相關。

前文的闡述已經提到,這是因為:在一個與業務相關的數據集中總會發現一些有趣的東西,以至於即使一些期望的模式不能被發現,但其他的一些有用的東西可能會被發現(這與數據挖掘者的實踐經驗是相關的);除非業務專家期望的模式存在,否則數據挖掘項目不會進行,這不應感到奇怪,因為業務專家通常是對的。

然而,Watkins提出一個更簡單更直接的觀點:「數據中總含有模式。」這與數據挖掘者的經驗比前面的闡述更一致。這個觀點後來經過Watkins修正,基於客戶關係的數據挖掘項目,總是存在著這樣的模式即客戶未來的行為總是和先前的行為相關,顯然這些模式是有利可圖的(Watkins的客戶關係管理定律)。 但是,數據挖掘者的經驗不僅僅局限於客戶關係管理問題,任何數據挖掘問題都會存在模式(Watkins的通用律)。

Watkins的通用律解釋如下:

數據挖掘項目的業務目標定義了興趣範圍(定義域),數據挖掘目標反映了這一點;

與業務目標相關的數據及其相應的數據挖掘目標是在這個定義域上的數據挖掘過程產生的;

這些過程受規則限制,而這些過程產生的數據反映了這些規則;

在這些過程中,數據挖掘的目的是通過模式發現技術(數據挖掘演算法)和可以解釋這個演算法結果的業務知識相結合的方法來揭示這個定義域上的規則;

數據挖掘需要在這個域上生成相關數據,這些數據含有的模式不可避免地受到這些規則的限制。

總結這一觀點:數據中總存在模式,因為在這過程中不可避免產生數據這樣的副產品。為了發掘模式,過程從(你已經知道它)—–業務知識開始。

利用業務知識發現模式也是一個反覆的過程;這些模式也對業務知識有貢獻,同時業務知識是解釋模式的主要因素。在這種反覆的過程中,數據挖掘演算法簡單地連接了業務知識和隱藏的模式。

如果這個解釋是正確的,那麼大衛律是完全通用的。除非沒有相關的數據的保證,否則在每個定義域的每一個數據挖掘問題總是存在模式的。

第六,洞察律:數據挖掘增大對業務的認知。

數據挖掘是如何產生洞察力的?這個定律接近了數據挖掘的核心:為什麼數據挖掘必須是一個業務過程而不是一個技術過程。業務問題是由人而非演算法解決的。數據挖掘者和業務專家從問題中找到解決方案,即從問題的定義域上達到業務目標需要的模式。數據挖掘完全或部分有助於這個認知過程。數據挖掘演算法揭示的模式通常不是人類以正常的方式所能認識到的。綜合這些演算法和人類正常的感知的數據挖掘過程在本質上是敏捷的。在數據挖掘過程中,問題解決者解釋數據挖掘演算法產生的結果,並統一到業務理解上,因此這是一個業務過程。

這類似於「智能放大器」的概念,在早期的人工智慧的領域,AI的第一個實際成果不是智能機器,而是被稱為「智能放大器」的工具,它能夠協助人類使用者提高獲取有效信息的能力。數據挖掘提供一個類似的「智能放大器」,幫助業務專家解決他們不能單獨完成的業務問題。

總之,數據挖掘演算法提供一種超越人類以正常方式探索模式的能力,數據挖掘過程允許數據挖掘者和業務專家將這種能力融合在他們的各自的問題的中和業務過程中。

第七,預測律:預測提高了信息泛化能力。

「預測」已經成為數據挖掘模型可以做什麼的可接受的描述,即我們常說的「預測模型」和「預測分析」。這是因為許多流行的數據挖掘模型經常使用「預測最可能的結果」(或者解釋可能的結果如何有可能)。這種方法是分類和回歸模型的典型應用。

但是,其他類型的數據挖掘模型,比如聚類和關聯模型也有「預測」的特徵。這是一個含義比較模糊的術語。一個聚類模型被描述為「預測」一個個體屬於哪個群體,一個關聯模型可能被描述為基於已知基本屬性「預測」一個或更多屬性。

同樣我們也可以分析「預測」這個術語在不同的主題中的應用:一個分類模型可能被說成可以預測客戶行為—-更加確切的說它可以預測以某種確定行為的目標客戶,即使不是所有的目標個體的行為都符合「預測」的結果。一個詐騙檢測模型可能被說成可以預測個別交易是否具有高風險性,即使不是所有的預測的交易都有欺詐行為。

「預測」這個術語廣泛的使用導致了所謂的「預測分析」被作為數據挖掘的總稱,並且在業務解決方案中得到了廣泛的應用。但是我們應該意識到這不是日常所說的「預測」,我們不能期望預測一個特殊個體的行為或者一個特別的欺詐調查結果。

那麼,在這個意義下的「預測」是什麼?分類、回歸、聚類和 關聯演算法以及他們集成模型有什麼共性呢?答案在於「評分」,這是預測模型應用到一個新樣例的方式。模型產生一個預估值或評分,這是這個樣例的新信息的一部分;在概括和歸納的基礎上,這個樣例的可利用信息得到了提高,模式被演算法發現和模型具體化。值得注意的是這個新信息不是在「給定」意義上的「數據」,它僅有統計學意義。

第八,價值律:數據挖掘的結果的價值不取決於模型的穩定性或預測的準確性。

準確性和穩定性是預測模型常用的兩個度量。準確性是指正確的預測結果所佔的比例;穩定性是指當創建模型的數據改變時,用於同一口徑的預測數據,其預測結果變化有多大(或多小)。鑒於數據挖掘中預測概念的核心角色,一個預測模型的準確性和穩定性常被認為決定了其結果的價值的大小,實際上並非如此。

體現預測模型價值的有兩種方式:一種是用模型的預測結果來改善或影響行為,另一種是模型能夠傳遞導致改變策略的見解(或新知識)。

對於後者,傳遞出的任何新知識的價值和準確性的聯繫並不那麼緊密;一些模型的預測能力可能有必要使我們相信發現的模式是真實的。然而,一個難以理解的複雜的或者完全不透明的模型的預測結果具有高準確性,但傳遞的知識也不是那麼有見地;然而,一個簡單的低準確度的模型可能傳遞出更有用的見解。

準確性和價值之間的分離在改善行為的情況下並不明顯,然而一個突出問題是「預測模型是為了正確的事,還是為了正確的原因?」換句話說,一個模型的價值和它的預測準確度一樣,都源自它的業務問題。例如,客戶流失模型可能需要高的預測準確度,否則對於業務上的指導不會那麼有效。相反的是一個準確度高的客戶流失模型可能提供有效的指導,保留住老客戶,但也僅僅是最少利潤客戶群體的一部分。如果不適合業務問題,高準確度並不能提高模型的價值。

模型穩定性同樣如此,雖然穩定性是預測模型的有趣的度量,穩定性不能代替模型提供業務理解的能力或解決業務問題,其它技術手段也是如此。

總之,預測模型的價值不是由技術指標決定的。數據挖掘者應該在模型不損害業務理解和適應業務問題的情況下關注預測準確度、模型穩定性以及其它的技術度量。

第九,變化律:所有的模式因業務變化而變化。

數據挖掘發現的模式不是永遠不變的。數據挖掘的許多應用是眾所周知的,但是這個性質的普遍性沒有得到廣泛的重視。

數據挖掘在市場營銷和CRM方面的應用很容易理解,客戶行為模式隨著時間的變化而變化。行為的變化、市場的變化、競爭的變化以及整個經濟形勢的變化,預測模型會因這些變化而過時,當他們不能準確預測時,應當定期更新。

數據挖掘在欺詐模型和風險模型的應用中同樣如此,隨著環境的變化欺詐行為也在變化,因為罪犯要改變行為以保持領先於反欺詐。欺詐檢測的應用必須設計為就像處理舊的、熟悉的欺詐行為一樣能夠處理新的、未知類型的欺詐行為。

某些種類的數據挖掘可能被認為發現的模式不會隨時間而變化,比如數據挖掘在科學上的應用,我們有沒有發現不變的普遍的規律?也許令人驚奇的是,答案是即使是這些模式也期望得到改變。理由是這些模式並不是簡單的存在於這個世界上的規則,而是數據的反應—-這些規則可能在某些領域確實是靜態的。

然而,數據挖掘發現的模式是認知過程的一部分,是數據挖掘在數據描述的世界與觀測者或業務專家的認知之間建立的一個動態過程。因為我們的認知在持續發展和增長,所以我們也期望模式也會變化。明天的數據表面上看起來相似,但是它可能已經集合了不同的模式、(可能巧妙地)不同的目的、不同的語義;分析過程因受業務知識驅動,所以會隨著業務知識的變化而變化。基於這些原因,模式會有所不同。

總之,所有的模式都會變化,因為他們不僅反映了一個變化的世界,也反映了我們變化的認知。

後記:

這九條定律是關於數據挖掘的簡單的真知。這九條定律的大部分已為數據挖掘者熟知,但仍有一些不熟悉(例如,第五、第六、第七)。大多數新觀點的解釋都和這九條定律有關,它試圖解釋眾所周知的數據挖掘過程中的背後的原因。

我們為什麼何必在意數據挖掘過程所採用的形式呢?除了知識和理解這些簡單的訴求,有實實在在的理由去探討這些問題。

數據挖掘過程以現在的形式存在是因為技術的發展—-機器學習演算法的普及以及綜合其它技術集成這些演算法的平台的發展,使得商業用戶易於接受。我們是否應該期望因技術的改變而改變數據挖掘過程?最終它會改變,但是如果我們理解數據挖掘過程形成的原因,然後我們可以辨別技術可以改變的和不能改變的。

一些技術的發展在預測分析領域具有革命性的作用,例如數據預處理的自動化、模型的重建以及在部署的框架里通過預測模型集成業務規則。數據挖掘的九條定律及其解釋說明:技術的發展不會改變數據挖掘過程的本質。這九條定律以及這些思想的進一步發展,除了有對數據挖掘者的教育價值之外,應該被用來判別未來任何數據挖掘過程革命性變化的訴求。

謝謝!


不要一提到大數據就是互聯網,其實,自從有了MRP/ERP,數據挖掘就有了。


不了解業務就做數據分析的都是耍流氓


這問題感覺很泛。。

按我個人的理解來回答。

如何根據項目確定不同數據的重要程度?數據的變化如何解讀?

結合當前實際的業務來確定數據的重要程度。

數據的變化

我理解是異常的變化,這個也是要結合業務實際來解讀,辦法就是細分,最近是否做了改動、增加了新功能、是否系統出現異常、是否做了營銷活動、是否投放了廣告、是否宕機了、內部的原因找完了,再找外部的原因,把數據細分,定位到具體的點上,這樣就能確定到底是什麼使得數據產生了異常的變化。


線上的數據統計如果是門戶主要來自用戶行為追蹤程序,關注如註冊用戶,點擊量,轉出率,滯留時間,廣告點擊率等。電子商務主要用戶購物車和訂單分析,關注如新註冊用戶,會員貢獻率,訂單轉化率,廣告轉化率等。

數據都是重要和有效的,只是缺乏需求模型時,它看似不太重要,而歷史數據對趨勢分析和預測分析都有重要意義。

數據之間的關聯性,在乎它是否是觀察事實時的一個考慮因素,也就是它和你所觀察的事實之間是否有關係,是否對事實造成影響。


我理解的數據挖掘主要難點在於前期數據準備工作,包括數據的ETl,提取,整合,大的範圍屬於BI方面。我比較感興趣基於SQLserver的BI組件 SSIS SSAS SSRS


這個問題有點大,無論在業務、商業層面還是具體技術層面,我的博客上有一個Tag叫Big Data,全都是描述從業務到技術層面的大規模數據挖掘的,詳見:Big Data Archives


找到一個量化的方法去理解事務,只有深刻理解才能更了解,才能更好服務


對於數據分析挖掘,其實就是在一個相對於事實更為簡單的模型上進行參數化重構的過程,比如不同的項目,不同的時間等,雖然這些本身也都可以歸類為一個Data的label。不過可以認為不同的項目對應的數據的Cluster並不是一致的吧。

所以核心就是根據當前有的數據以及對於數據的理解設計參數化模型。簡單來說,直觀的就是Association的分析,Bond,Seperated等性質。

至於有效性,數據都存在Outlier,就看你的target了。


這問題感覺很泛,首先你挖掘的數據主要想從數據中得到什麼結果?

然後,再去深挖產品數據源及數據分析模型。


推薦閱讀:

定性分析和定量分析的根本區別在於?
svm(支持向量機)的訓練時用到了一些核函數(kernel function),怎麼樣正確理解它們的作用?
如何通過已有數據對用戶畫像,標籤和分析?該產品核心問題在哪,如何落地?
國內的數據挖掘,大數據的案例有哪些?
國內外有哪些數據分析相關的競賽比賽網站?

TAG:數據分析 |