提到數據挖掘時,我們往往着重於建模時的算法而忽視其他步驟,而在real world的數據挖掘項目中,其他步驟則是決定項目成敗的關鍵。《guide to intelligent data analysis》這本書是knime官網推薦的書籍(http://tech.knime.org/guide-to-intelligent-data-analysis),按照CRISP-DM的流程講述了數據挖掘流程的過程。
我們先從什么是數據挖掘入手。要理解什么是數據挖掘,首先需要區分的是便是data和knowledge。
我們對比data和knowledge的特征:
Data |
Knowledge |
涉及到的是單個的實例 (單個的事物,人,事件,時間點,等等) |
涉及到的是類的實例 (關於事物,人,事件,時間點等的集合) |
描述的是個別的性質 |
描述的是一般性的模式,結構,法則,規則等 |
通常以大規模的數量獲得 (數據庫,檔案) |
包含盡可能少的陳述 |
通常收集獲取相對比較簡單 (比如超市的小票,互聯網里的一些數據) |
通常找到和獲取非常的困難和耗時 |
並不能讓我們做一些預測 |
允許我們去做預測和展望 |
我們還需要探討下統計學(statistic)和KDD的區別和聯系。
在統計學方面:
統計學作為一種歷史悠久的學科,其起源於收集和分析關於人口和國家的數據。其可以分為描述性(descriptive)和推斷性(inferential)統計學。
描述性統計學(descriptive statistic)通常喜歡用一些像平均值那樣的特征值或者用像直方圖那樣的圖標來做對於數據的描述,通常並不做特定的假設。
推斷性統計學(inferential statistic)相對描述性統計學來說提供了更加嚴格的基於數據隨機生成過程的某些假設。其得到的結論只在其假設得到滿足的情況下成立。
通常來說統計學關於數據分析的第一步往往是設計一個定義了數據如何被收集的實驗,基於這些數據我們要能做一個可靠地分析。通常在實驗性學習(experimental study)中我們可以控制盒操縱數據生成不步驟。然而在觀測性學習(observational study)中,我們不能控制數據生成的過程。
然而不管學習過程是實驗性的還是觀測性的,通常總是包含了獨立的假設,這些我們收集的數據也應該是具有代表性的。我們總是在推斷性統計學中應用基於收集的數據做假設檢驗(hypothesis testing)的一個主要原因便是我們想要確定或者拒絕關於這個領域的一些假設。
在數據挖掘方面:
而與假設檢驗相反,探索性的數據分析(exploratory data analysis)則關心從收集的數據中生成假設(generating hypothesis)。在探索性的數據分析中並沒有或者只有比較弱的關於數據生成過程的模型假設。一個典型的情景便是我們已經具有了數據,他們也許並不是通過最好的方式手機來的。因此我們很難去對於數據生成過程做特定的假設。我們是目標導向的,這就是說我們提出像“什么顧客會帶來最高的收益”這樣的問題,並研究能夠幫助我們回答和解決這樣的問題的方法。
所謂數據挖掘技術(data mining techniques)的一種定義便指的是對於以不同目的收集的大量的商業數據庫,使用有力的工具和技術分析其大量數據的技術。曾經有人認為使用正確的數據挖掘工具可以自動或者僅僅依靠少量的人工干涉就可以得到任意我們想要的knowledge。然而,實踐經驗表明了每個問題都是不同的並且數據分析過程的自動實現是幾乎不可能的。
如今我們是這樣理解KDD(knowledge discovery in database)的,我們認為其實一種交互式的關於在數據中定義有效的,新奇的,潛在的有用的,並且最終能夠理解的模式的過程。數據挖掘(data mining)和建模(modeling)只是其中一個單個的步驟。
從上面的分析我們可以看到,KDD,data mining以及statistic的不同。其本質性的區別就在於對待數據的假設的態度上。而我們所應致力的,則是以標准完善的數據分析過程(data analysis process),做出漂亮的分析項目。