08.30 終於有人把數據、信息、算法、統計、概率和數據挖掘都講明白了!

導讀:數據與數據應用中的許多概念彼此有著千絲萬縷的聯繫,同時也有著概念上的偏重與區別,那我們可以先從數據應用領域中的常見概念先聊起。

插畫設計:萬娟

01 什麼是數據

數據是什麼?這幾乎成為一個我們熟視無睹的問題。

有不少朋友腦子裡可能會直接冒出一個詞“數字”——“數字就是數據”,我相信會有一些朋友會斬釘截鐵地這麼告訴我。

一些朋友會在稍作思考後回答“數字和字符、字母,這些都是數據”。

不知道你現在是不是正在糾結哪個回答更正確,亦或第二個回答更合理一些,我們先放一放。先看下面這組例子:

終於有人把數據、信息、算法、統計、概率和數據挖掘都講明白了!

這裡有6個0,請問它是數據嗎?

我們再看這樣的例子:

終於有人把數據、信息、算法、統計、概率和數據挖掘都講明白了!

這裡有4個1和2個a,那麼它是數據嗎?

也許你可能會搖搖頭,“這到底是啥意思?”不錯,這也就是我們在認識數據的過程中存在的一個很要命的問題,幾乎在我們出發時就攔住了我們的去路。

我們回過頭再想想剛才的問題可能會得到比較令自己和他人信服的回答“承載了信息的東西”才是數據,換句話說,不管是石頭上刻的畫,或者小孩子在沙灘上歪歪扭扭寫出的字跡,或者是嬉皮士們在牆上的塗鴉,只要它表達一些確實的含義,那麼這種符號就可以被認為是數據。而沒有承載信息的符號,就不是數據。這個觀點似乎看上去要比我們前面的回答理性得多,也科學得多,但是這個觀點真的不需要補充了嗎?

我們假設這兩個例子都有一些比較特殊的場景,假設第一組裡出現的6個0其實是時分秒的簡寫,000000表示00點00分00秒,而如果寫作112349則表示11點23分49秒的含義,那麼它是不是也是數據呢?假設第二組出現的5個1和2個a其實是一組密碼,5個1代表一個被約定的地點,aa代表一種被約定的事件,那這組數字字母的意義也有了相應的解讀,那麼它是不是也是數據呢?

不難看出,一些符號如果想要被認定為數據,那就必須承載一定的信息。而信息很可能是因場景而定,因解讀者的認知而定,所以一些符號是不是可以被當做數據,有相當的因素是取決於解讀者的主觀視角的。不知道這個觀點你是不是認可,總之這點很重要。

02 什麼是信息

說到這裡,我的同事娟娟非常認真且煞有介事地跟我說:“我覺得數字、字母、圖像,這些都是數據,跟信息不信息的沒啥關係。”看著她認真地跟我抬槓,我覺得蠻好,至少在認識數據過程中積極思考只有好處。

終於有人把數據、信息、算法、統計、概率和數據挖掘都講明白了!

信息一詞,在沒有學術背景的情況下其實有著很多解釋,例如,廣播中的聲音、互聯網上的消息、通訊系統中傳輸和處理的語音對象、甚至是小區和校園的消息看板,也就是人類社會傳播的一切內容。1948年,數學家香農(Claude Elwood Shannon)在題為《通訊的數學理論》的論文中指出:“信息是用來消除隨機不定性的東西”。這句話如果要我們來舉個例子說明的話,大概可以想象這樣一個場景。

我說了兩句話:“我今年33歲。”“我明年34歲。”

那麼第一句話如果是為了對不瞭解我的人介紹我的年齡的話而可以算作信息的話,第二句話則不是信息。至少你會覺得說了第一句以後,後面這句簡直就是廢話,因為這個從第一句話完全可以推導出來。

終於有人把數據、信息、算法、統計、概率和數據挖掘都講明白了!

再比如,某一天巴西足球隊和中國足球隊進行了比賽。

  • 結果第二天張三告訴我,“昨天巴西隊贏了。”
  • 而後李四告訴我,“昨天中國隊輸了。”
  • 再而後王五告訴我,“昨天的比賽不是平局。”
終於有人把數據、信息、算法、統計、概率和數據挖掘都講明白了!

前提是隻要他們都是說實話的人,那麼對於我來說,也就只有張三告訴我的能算信息,李四和王五說的則不能算做信息。甚至連張三說的“昨天巴西隊贏了”這句話是否能夠被算作信息,我們都要表示懷疑,因為這也有點“廢話”的意味——但凡對足球運動有點認識的人這幾乎可以認定,即便你不告訴我昨天巴西隊贏了,我也能猜個八九不離十,因為可能性實在是太大太大了,大到幾乎是一定的,幾乎是毋庸置疑的。國足的粉絲們請放下手中的臭雞蛋和爛西紅柿,聽我把例子講完。

現在信息是什麼清晰多了吧?我們可以粗忽地認為,信息就是那些把我們不清楚的事情闡明的描述,而已經明確或者知曉的東西讓我們再“知曉”一遍,這些被知會的內容就不再是信息了。這個概念是很有用的,我們後面在講信息論的時候也會再做定量的說明,現在只做一個定性的瞭解。

數據和信息是我們在數據挖掘和機器學習領域天天要打交道的基礎,也是我們研究的主要對象。所以對數據和信息有個比較一致性的認識對後面咱們討論問題是非常有好處的。

03 什麼是算法

算法這個名稱大家應該通常不陌生,如果你是一個信息相關專業的本科學生,至少在本科一年級或者二年級就接觸過不少算法了。隨便打開一個人力資源網站去搜搜看“算法工程師”,好的算法工程師的年薪也隨便就到三五十萬甚至上百萬的都有的。

算法是什麼?算法可以被理解成為“計算的方法和技巧”,在計算機中的算法大多數指的就是一段或者幾段程序,告訴計算機用什麼樣的邏輯和步驟來處理數據和計算,然後得到處理的結果。

科班出身的信息相關專業的朋友看到這裡就會覺得比較親切了,經典的算法有很多,比如“冒泡排序”算法,這幾乎是所有以高級語言為依託的《數據結構》的入門必學;再比如“八皇后問題”算法,這幾乎也是我們在講窮舉計算時的經典保留算法案例(就是在國際象棋棋盤上放八個能夠橫豎斜無限制前進的皇后,讓它們之間互相還不能攻擊,看有多少種解);還有不少我們聽說過的算法,比如MD5算法,ZIP2壓縮算法等各種不勝枚舉的算法。下圖就是八皇后問題的一組解,我們經過窮舉是可以求出所有92組解的。

終於有人把數據、信息、算法、統計、概率和數據挖掘都講明白了!

應該說算法是數據加工的靈魂。如果說數據和信息是原始的食材,數據分析的結論是菜餚,那麼算法就是烹調過程;如果說數據是玉璞,數據中蘊含的知識是價值連城的美碧,那麼算法就是玉石打磨和加工的機床和工藝流程。

算法在高級語言發展了很多年之後,更多的被封裝成了獨立的函數或者獨立的類,開放接口供人調用,然而算法封裝地再好卻是不能用純粹不假思索地使用就能獲益的東西,要知道,

這些封裝只是在一定程度上避免了我們重複發明輪子而已。

大家不要以為算法全都是算法工程師的事情,跟普通的程序員或者分析人員無關,算法說到底是對處理邏輯理解的問題。

《孫子兵法·作戰篇》有云,“不盡知用兵之害者,則不能盡知用兵之利”,意思是說,不對用兵打仗的壞處與弊端進行充分了解的話同樣不可能對用兵打仗的好處有足夠的認識。算法的應用是一個辯證的過程,不僅在於不同算法間的比較和搭配使用有著辯證關係,在同一個算法中,不同的參數和閾值設置同樣會帶來大相徑庭的結果,甚至影響數據解讀的科學性。這一點請大家務必有所注意。

04 統計、概率和數據挖掘

統計、概率、數據挖掘,這幾個詞經常伴隨出現,尤其是統計和概率兩個概念,幾乎就像自然界的伴生礦一樣分不了家,有很多出版社都出版過叫做《概率統計》的書籍。

我們這本書本身也不準備從學術的角度給統計和概率做嚴格的區分,在平時工作中我們用的統計大多為計數功能,例如我們在使用EXCEL中也會用到COUNT、SUM、AVERAGE等這些統計函數;如果是在軟件開發的朋友在用SQL語言對數據庫的某些字段進行計數(count)、求和(sum)、求平均(avg)等函數。而概率的應用大多則是根據樣本的數量以及佔比得到“可能性”和“分佈比例”等描述數值。當然,概率的用法遠其實不止這些,

在數據挖掘中同樣用到大量概率相關的算法。

數據挖掘這個詞很多時候是和機器學習一起出現,現在網上眾人對這兩個詞的關係說法也是莫衷一是。有的說數據挖掘包含機器學習,有的說機器學習是數據挖掘發展的更高階段云云。在我看來,數據挖掘和機器學習這樣的詞彙命名應該是信息科學自然進化和衍生出來的,帶有一定的約定俗成的色彩,人們的看法見仁見智也在情理之中。

我的觀點是這樣。

首先我認為沒有必要一定要給兩個詞彙劃一個界限,或者一定要把他們做嚴格的概念區分,因為區分的標準到目前本就沒有科學而無爭議的界定,況且是不是能分清一個算法屬於數據挖掘的範疇還是機器學習的範疇對於算法本身使用是沒有任何影響的。這兩個詞大家如果想聽解釋的話,不妨只從字面意思去理解就已經足夠了。

數據挖掘——首先是有一定量的數據作為研究對象,挖掘——顧名思義,說明有一些東西並不是放在表面上一眼就能看明白,要進行深度的研究、對比、甄別等工作,最終從中找到規律或知識,“挖掘”這個詞用的很形象。

機器學習——我們先想想人類學習的目的是什麼?是掌握知識,掌握能力,掌握技巧,最終能夠進行比較複雜或者高要求的工作。那麼類比一下機器,我們讓機器學習,不管學習什麼,最終目的都是讓它獨立或至少半獨立地進行相對複雜或者高要求的工作。我們在這裡提到的機器學習更多是讓機器幫助人類做一些大規模的數據識別、分揀、規律總結等人類做起來比較花時間的事情。但是請注意,與數據挖掘一起出現的這個機器學習概念和我們說的“人工智能”還是相差甚遠,因為這裡面對“智能”的考究程度實在是太低了。

05 什麼是商業智能

另一個和大數據一起經常出現的詞彙是商業智能,也就是我們平時簡稱的BI(Business Intelligence)。

終於有人把數據、信息、算法、統計、概率和數據挖掘都講明白了!

商業智能——業界比較公認的說法是在1996年最早由加特納集團(Gartner Group)提出的一個商業概念,通過應用基於事實的支持系統來輔助商業決策的制定。商業智能技術提供使企業迅速分析數據的技術和方法,包括收集、管理和分析數據,將這些數據轉化為有用的信息。如果這個書本式的概念讀起來還是比較費解,那麼就聽一個形象的比喻。

公司在日常運營過程中是需要做很多決策的,無時無刻都存在於公司的各個方面,而決策最終不管是股東大會討論也好還是企業領導部門領導直接發佈行政命令也好,最終可能是由於很多因素共同影響做出的結果,無論其來自主觀還是客觀。

這些決策可以如何得出呢?可以領導直接憑經驗決定;可以群策群力開會決定;可以問訊很多行業專家;甚至可以找個算卦先生來占卜……從概念來說都是屬於輔助決策。而顯然,我們都期望不論最終是如何做出的這些決策和命令,它們都應該是更為理性、科學、正確的。但是如何幫助他們做出更為理性、科學、正確的決策呢?商業智能整體也就是研究這樣一個課題,到目前為止,

業界普遍比較認可的方式就是基於大量的數據所做的規律性分析。因而,市面上成熟的商業智能軟件大多都是基於數據倉庫做數據建模和分析,以及數據挖掘和報表的。

可以說,商業智能是一個具體的大的應用領域,也是數據挖掘和機器學習應用的一個天然親密的場景。而且商業智能這個解決問題的理念其實不僅僅可以應用於商業,還可以應用於國防軍事、交通優化、環境治理、輿情分析、氣象預測等等。

本文摘編自《白話大數據與機器學習》,經出版方授權發佈。

終於有人把數據、信息、算法、統計、概率和數據挖掘都講明白了!

延伸閱讀《白話大數據與機器學習》

推薦語:以降低學習曲線和閱讀難度為宗旨,重點講解了統計學、數據挖掘算法、實際應用案例、數據價值與變現,以及高級拓展技能,清晰勾勒出大數據技術路線與產業藍圖。

關於作者:高揚,金山軟件西山居資深大數據架構師與大數據專家,有多年編程經驗和多年大數據架構設計與數據分析、處理經驗,目前負責西山居的大數據產品市場戰略與產品戰略。專注於大數據系統架構以及變現研究。擅長數據挖掘、數據建模、關係型數據庫應用以及大數據框架Hadoop、Spark、Cassandra、Prestodb等的應用。

衛崢,西山居軟件架構師,多年的軟件開發和架構經驗,精通C/C++、Python、Golang、JavaScript等多門編程語言,近幾年專注於數據處理、機器學算法的研究、應用與服務研發。

尹會生,西山居高級系統工程師。曾任新浪研發中心技術經理、北京尚觀科技高級講師。擅長企業集群解決方案和內核調優經驗,並提供高性能和高可用性集群諮詢服務。近4年專注於Hadoop集群、Spark集群在推薦系統和BI相關領域的解決方案。

萬娟,星盤科技有限公司UI設計師平面,對VI設計、包裝、海報設計等、商業插畫、App交互、網頁設計等有獨到認識。多次參與智能家居和智能音箱等項目的UI設計。多次參加國際和國內藝術和工業設計比賽,並獲獎。從小酷愛繪畫,理想是開一個屬於自己的畫室。


分享到:


相關文章: