《資料分析實戰》選讀:大資料時代的總體和樣本

李鬆峰發表於2014-01-08

譯者:王群鋒(簡介附後)

譯文未經編輯

總體和樣本

讓我們先來統一一些術語和概念。

在經典統計學理論中,有總體樣本之分。提起總體,人們會馬上有以下反應:美國人口總數3億、世界人口總數70億等。但是,在統計推斷中,總體並不特指人口,它可以是任何物件,任何單位,比如推特的條目、照片、或者星星等。

如果我們可以度量和提取這些物件的某些特徵,就稱之為對總體的一組觀察。習慣上,使用N表示對總體的觀察次數。

假設總體為去年“巨無霸”公司員工傳送的所有電子郵件,則對該總體的一次觀察可以是發信人的姓名、收信人列表、發信日期、郵件內容、郵件字數、郵件中的句子數、郵件中動詞的個數、從郵件發出到獲得第一次回覆的時間等。

取樣是指取總體的一個子集,對其進行觀察,從而得出關於總體的分析。取樣的方法多種多樣,有些取樣方法會引入偏差,樣本不再能夠表達總體的特徵。當這種情況發生時,通過對樣本進行分析得到的結論常常是錯誤和失真的。

在上述“巨無霸”公司的例子中,可以隨機抽取全部員工的1/10,以他們所發的郵件組成樣本,或者隨機選取一天,以該天內所發郵件的1/10作為樣本。這兩種抽樣方式都是合理的,而且樣本的數量也是相等的,但是,如果你據此計算每人傳送電子郵件的數量,進而估計出“巨無霸”公司員工傳送郵件的分佈情況,那麼在上述兩種取樣方式下,你將會得到完全不同的答案。

這樣一個簡單的問題,由於取樣方式的不同,結果都會產生失真,那麼對於那些複雜的演算法或模型,如果你沒有把獲取資料的方式考慮進來,情況又會怎樣?

在大資料時代,我們有能力記錄使用者的所有行為,我們可以觀察一切,那麼,此時做總體和樣本的區分還有意義嗎?如果我們已經擁有了所有的電子郵件,幹嘛還要取樣?

這些疑問直抵問題的核心,對此,我們有如下幾個方面需要做以澄清。

取樣可以解決一些工程上的挑戰

在時下流行的關於大資料的討論中,企業的解決方案重點在使用Hadoop等分散式技術去解決大資料帶來的挑戰,但他們卻忽略了取樣作為一種手段同樣有效。事實上,在Google,軟體工程師、資料科學家和統計學家時刻都在用到取樣。

使用多少資料取決於你的目標,做分析或推斷,你不需要所有的資料。而當你試圖在介面上展示一個使用者的資訊時,你可能需要該使用者的所有資料。

偏差

即使我們擁有了Google、Facebook或Twitter的所有資料,基於這些資料所做出的統計推斷不應該延伸到其他不使用這些服務的人群,即使針對使用這些服務的人群,他們某一天的活動也可能是不遵從這一推斷的。

微軟研究院的Kate Crawford女士在她的演講“Hidden Biases of Big Data”中提到,如果僅對颶風桑迪到來前後的推特做分析,可能會得出這樣的結論:人們在颶風來臨前在購物,颶風過後在聚會。然而,這些推特大部分來自紐約人。首先,他們是推特的重度使用者,而這時沿海的新澤西人正在擔心他們的房子會不會被颶風吹倒,他們哪裡還有時間和心情去發推特呢?

換句話說,如果你使用推特資料來分析桑迪颶風,可能會覺得它危害不大。你的結論只對一部分推特使用者適用,他們受桑迪颶風的影響很小,還有時間來發推特,但他們無法代表一般意義上的美國大眾。

同樣在這個例子中,如果你不瞭解上下文或者對桑迪颶風一無所知,你就不可能對資料做出合理的解釋。

取樣

讓我們再來看看總體和樣本在各種語境下的含義。

在統計學中,我們經常使用數學過程去描述總體和樣本的關係,我們對數學結構和產生資料的過程做出假設,對該過程的每一次觀察即產生一個樣本。

以“巨無霸”公司的郵件為例,如果我們隨機抽取閱讀一些郵件,就會產生一個樣本,如果我們再次抽取,又是一次新的觀察,又會產生一個新的樣本。

這種取樣過程中的不確定性有一個學名:取樣分佈。就像2010年上映的,由萊昂納多·迪卡普里奧主演的《盜夢空間》一樣,這是一個夢中夢。因此,也可以將“巨無霸”公司的電子郵件想象成一個樣本,而不是總體。這些電子郵件是一個更大的超級總體的樣本(此刻,我們有點哲學家附體),如果那天猜硬幣做選擇,可能現在得到又是另一組電子郵件。

在這裡,我們使用一組電子郵件作為樣本,來推斷產生資料的過程的某些特徵,也就是“巨無霸”公司員工的電子郵件書寫習慣。

附:漫談資料科學(摘自本書“前言”)

{--:}Rachel Schutt

2012年秋天,我在哥倫比亞大學開設了一門新課:資料科學導論。資料科學是工業界的一個新興領域,在學術界尚未有一個準確的定義。那資料科學到底是什麼呢?我將這門課的講義集結成書,試圖回答這一問題。

為了幫助讀者理解本書及其緣起,我覺得有必要簡單介紹一下我自己,和我設計並教授資料科學導論的初衷。

初衷

很簡單,這是一門我期望在我上大學時就有的課。那是上世紀九十年代,資料爆炸尚未開始,開設這樣一門課也就無從談起。當時我是一名數學系的本科生,受到的訓練偏重於理論和嚴格的證明,這樣的訓練也不賴,它提高了我使用嚴謹的方式去解決問題的能力,但如果讓我自己選擇,我更希望能用這些技術去解決生活中的實際問題。

在大學和一個成為統計學博士的機會之間我徘徊良久,我一直在試圖尋找自己的領域,我喜歡探究隱藏在宇宙中的模式,我喜歡解答有趣的謎題,我希望可以將自己的這些能力物盡其用。之所以談起這些,是因為現在很多學生覺得必須先知道自己這輩子到底想要幹什麼,我做學生時,不可能規劃將來要從事資料科學相關的工作,因為那時根本還沒有資料科學這樣一個領域。因此我建議這些學生,或者其他願意聽我在這嘮叨的人:大可不必。不必現在就規劃好未來,走點彎路也沒什麼,誰知道這一路上你會發現什麼呢?我拿到統計學博士學位後,在Google工作了幾年,在這幾年中,資料科學,資料科學家這些術語才在矽谷流行起來。

這個世界有許多問題尚未解決,對於那些對數字敏感且願意開動大腦去解決這些問題的人充滿了機遇。我的目標是幫助學生們成為這樣的人:能批判思考的人,能用創新思維去解決問題的人,對世界充滿好奇喜歡問問題的人。我可能不會去構建一個數學模型,為治癒癌症貢獻一份力量,或者揭示出自閉症的奧祕,或者用來預防恐怖襲擊。但我的學生有一天會,我教給了他們這些知識,我完成了我的使命。寫作此書,使我有機會將畢生所學傳播給更多的人,我希望他們能從中得到激勵,或者學到一些有用的工具,來讓這個世界變得更好,而不是更壞。

對資料進行建模並非不存偏見,你會謹慎挑選問題,在你的模型中做出恰當的假設,選擇合適的矩陣運算並設計演算法。

世界上也並不是所有的問題都需要用資料科學或技術手段來解決,一個好的資料科學家能甄別出哪些問題適合用資料科學解決,構建出對應的資料模型或者編寫程式碼去解決它。但我更喜歡一個具備多學科研究能力的團隊,他們中有資料處理方面的專家,有對數字敏感的頭腦,有程式設計高手,這樣的團隊可以走得更遠,這樣的人我們就可以稱之為資料科學家。

課程的起源

我在2012年3月份提議開設此課,主要原因有三。其中第一個原因最重要,我將會花最大篇幅去闡述。

原因一: 我想告訴我的學生工業界的資料科學家是怎麼工作的,我要教會他們成為一個資料科學家需要具備的技術。

在為Google+工作時,我所在的資料科學團隊由一群身懷絕技的博士組成:有一位社會學家,一位工程師,一位物理學家和一位電腦科學家,我是一名統計學專家。我們屬於一個更大的團隊,這個團隊有很多天才資料工程師,他們實現資料管道,基礎架構,分析皮膚和一些實驗性質的架構(用來做A/B測試)。我們的團隊組成扁平化,我們有海量的資料,我們每個人都是各自領域的專家,我們精誠合作,做出了很多不可思議的事,包括預測模型的建模,實現演算法原型,揭示出隱藏在資料背後的模式,這些對我們的產品影響深遠。

使用資料驅動做決策,我們提供真知灼見;分析因果關係,我們發展出了新的方法論。這些全仰仗世界一流的工程師和基礎架構。每個人都為團隊引入了專家級的技能,包括編碼,軟體工程,統計學,數學,機器學習,通訊,視覺化,資料探索和分析,對資料的敏感,直覺和對社交網路的專家級理解。

沒有人精通所有的事情,但聚在一起我們無所不能,我們認識到了每種技能的價值,因此我們成功了。我們的共同點是守信,對解決有趣的問題充滿好奇心,對待新的科學發現既保有適度的懷疑又充滿激情。我們把工作放在心上,對資料背後的模式充滿了好奇。

我居住在紐約,希望把我在Google公司的工作經驗教給哥大的學生們,我知道他們需要這個,而且,我也喜歡教書。我想教給他們我從工作中學到的東西,我也希望他們能從紐約新興的資料科學社群受益。

這門課程會邀請一些客座講師,他們都是些資料科學家,有些來自工業界,有些來自學術界,每個人都具備多種技能,我希望通過這樣一種多樣性的組合,會讓學生們對資料科學有一個更全面的認識。

原因二:資料科學有希望成為一門極具研究價值的學科,它會影響到人們生活的方方面面。為此,哥大和Mayor Bloomberg在2012年7月共同建立了一個資料科學的研究機構。這門課是在發展資料科學理論方面的一次嘗試,試圖讓資料科學成為真正的科學。

原因三:工業界的資料科學家經常說大學不是個學習資料科學的好地方,我想挑戰一下這種言論。我的學生叫人印象深刻,他們正在成為一流的資料科學家,我的課堂就是一個資料科學家的孵化器,事實上,本書中的一章內容就是由我的學生們貢獻的。

本書的起源

如果不是Cathy O’Neil,就不會有這本書,她是一位數學家,後來轉型為一位資料科學家,她的個人部落格mathbabe.org很受歡迎,在部落格中的“關於自己”部分,她說有一天希望知道一個非科班出身的數學家能如何使這個世界變得更加美好。在我向哥大提議開始資料科學導論這門課程時,恰好認識了Cathy,那時她正在一個初創公司工作,職位是資料科學家。她鼓勵並協助我開設這門課,自願在其部落格上為我搖旗吶喊。起先我並不喜歡這麼做,我是一個內向的人,Cathy說服了我,這是一個機會,一個去向公眾解釋什麼是真正的資料科學的機會,而不是像商業廣告那樣對其肆意炒作。

我在哥大的每一節課,Cathy都會坐在第一排,並不時提出問題,她還是我這門課的客座講師(見第六章)。Cathy對這門課貢獻甚巨,她提醒我們在建模時需要的某些道德考量,她將這門課的內容釋出到她的部落格上,她鼓勵我也開設了一個部落格,用來和我的學生直接交流,我在上面也會總結自己的教學經驗,這或許會幫到其他教授。Cathy的部落格和我的一些部落格成了本書的原始素材,我們在這一基礎上經過修改加工,再加上一些其他資料,終成此書。

組織結構

本書的組織結構遵循我在哥倫比亞大學的資料科學導論課程,在第一章,我們將會回答“什麼是資料科學”這個問題,同時以結構化的方式介紹資料科學的工作流程。第二章和第三章對統計模型和機器學習演算法做一概覽,它們是後續章節的基礎。第四到五章以及第八章將會針對特定案例,深入學習一些模型和演算法。第七章講述如何從資料中提取有效資訊以及在模型中建立統計變數。

第九章和第十章將深入一些在學術界尚未被廣泛教授的內容:資料視覺化和社交網路。第十一章和第十二章將從預測模型轉而介紹因果分析。第十三章和第十四章介紹資料預處理以及工程方法。第十五章是我的學生們講述他們的故事,他們是怎樣學習資料科學的。第十六章展望資料科學未來的發展。

本書內容

這不是一本關於機器學習的教科書,本書是從多角度對資料科學的一種審視,是對資料科學現有疆域的一次調查。在本書中我們將描述資料科學的現狀,將看到世界一流的思想家是怎麼工作的,怎麼做資料科學方面的研究。同時,我們還將從學術角度,定義什麼是資料科學。

希望本書能夠被那些善待它的人充分利用,去解決那些重要的問題。

這門課在哥倫比亞大學上完後,我聽到了這樣的評價:它是一門從人文角度講解資料科學的課程。我們不僅關注工具、數學、模型、演算法和程式碼,同時關注我們人類自身。我喜歡如下對以人為本的定義:那些以人為本的人對於人類的福利,價值和尊嚴有著強烈的好奇心和嚴重的關切。如何在資料科學中體現以人為本?在你建模和設計演算法時,想想哪些東西是人所具備而電腦不具備的,比如基於道德的判斷;向世界公佈一種新的統計模型前,想想會為他人的生活帶來怎麼樣的影響。

如何閱讀本書

本書循序漸進,閱讀時最好從前到後,按次序閱讀。如果你的統計和概率背景不強,或者從前沒有編寫過程式,閱讀本書的同時,如能閱讀本章末尾附帶的補充材料,查漏補缺,效果將會更好。全書為大家推薦了很多補充材料,當你閱讀本書某個章節感到困難時,這或許由於你某些背景知識的缺失,或許由於我們的講解不夠清晰,這時你都可以求助這些補充材料,釐清概念。

書中的程式碼

本書不是一本手冊,書中程式碼僅供示範,有時需要讀者自己去親手實踐,實現某些演算法,以期對其中的概念理解更加深入。

目標讀者

雖然媒體把資料科學和資料科學家渲染成搖滾巨星般的存在,但別怕,你不必成為一個金融師才能進入這個行業,只要你熱愛解決問題,熱愛尋找資料背後的模式,你就可以用到資料科學。

具備各種知識背景的讀者均可閱讀本書,我們希望每位讀者根據自己的專業背景都能從本書各取所需,每個人都能讀出自己心中的哈姆雷特。

  • 有經驗的資料科學家能從中認清自己和自己從事的行業
  • 統計學家能從中瞭解到統計學和資料科學的關係,或者他們仍然堅持過去的老態度:什麼資料科學,這就是統計學嘛。我們也不介意這樣的爭論。
  • 有志成為資料科學家的金融,數學,和物理學博士們,或者只是希望加強他們自己的資料科學技能,能從本書中瞭解到他們需要學些什麼。
  • 剛接觸資料科學的學生將直接被扔進該領域的深水區,如果不能一下子理解書中內容,不要害怕,這是必經之路。
  • 對於那些從未使用過R或Python寫過程式的讀者,我們推薦The Art of R Programming by Norman Matloff(No Starch Press),在哥倫比亞大學選修過該課程的學生們也從實驗講師Jared Lander的講解中獲益良多,他的新書R for Everyone: Advanced Analytics and Graphics(Addison-Wesley)將於2013年11月上市。書中所有練習也可以使用Python的各種工具包實現。
  • 對於那些完全沒有程式設計經驗的讀者,上述要求也適用,但你可能需要先閱讀些基礎的程式設計書籍,如下兩本書是個不錯的選擇: Mark Lutz 和 David Ascher 的 Learning Python(O'Reilly) ,Wes McKinney的Python for Data Analysis(O'Reilly) 。

先修科目

我們假設本書讀者學過線性代數,一些概率論和統計學,還有一些程式設計經驗。沒有也沒關係,我們試圖讓本書在內容上自包含,讀者可以從下一節的補充材料中針對性閱讀,彌補自己在某些方面的不足。

補充閱讀

資料科學作為一個新興領域,根植於其他學科:統計推斷,演算法,統計模型,機器學習,實驗設計,優化理論,概率論,人工智慧,資料視覺化和探索性資料分析。每門學科都值得花好幾門課或好幾本書專門講解,這是寫作本書的一個極大挑戰,我們將這些補充閱讀附在後面,希望讀者在需要時可以補充閱讀。

數學

  • Linear Algebra and Its Applications,Gilbert Strang著(Cengage Learning)
  • Convex Optimization,Stephen Boyd和Lieven Vendenberghe著(Cambridge University Press)
  • A First Course in Probability(Pearson)、Introduction to Probability Models(Academic Press),Sheldon Ross著

程式設計

  • R in a Nutshell,Joseph Adler著(O'Reilly)
  • Learning Python,Mark Lutz和David Ascher著(O'Reilly)
  • R for Everyone: Advanced Analytics and Graphics,Jared Lander著(Addison-Wesley)
  • The Art of R Programming: A Tour of Statistical Software Design,Norman Matloff著(No Starch Press)
  • Python for Data Analysis,Wes McKinney著(O'Reilly)

資料分析與統計推斷

  • Statistical Inference,George Casella和Roger L. Berger著(Cengage Learning)
  • Bayesian Data Analysis,Andrew Gelman等著(Chapman & Hall)
  • Data Analysis Using Regression and Multilevel/Hierarchical Models,Andrew Gelman和Jennifer Hill著(Cambridge University Press)
  • Advanced Data Analysis from an Elementary Point of View,Cosma Shalizi著(Cambridge University Press)
  • The Elements of Statistical Learning: Data Mining, Inference and Predictio,Trevor Hastie、Robert Tibshirani和Jerome Friedman著(Springer)

人工智慧和機器學習

  • Pattern Recognition and Machine Learning,Christopher Bishop著(Springer)
  • Bayesian Reasoning and Machine Learning,David Barber著(Cambridge University Press)
  • Programming Collective Intelligence,Toby Segaran著(O'Reilly)
  • Artificial Intelligence: A Modern Approach,Stuart Russell和Peter Norvig著(Prentice Hall)
  • Foundations of Machine Learning,Mehryar Mohri、Afshin Rostamizadeh和Ameet Talwalkar著(MIT Press)
  • Introduction to Machine Learning (Adaptive Computation and Machine Learning),Ethem Alpaydim著(MIT Press)

實驗設計

  • Field Experiments,Alan S. Gerber和Donald P. Green著(Norton)
  • Statistics for Experimenters: Design, Innovation, and Discovery,George E. P. Box等著(Wiley-Interscience)

視覺化

  • The Elements of Graphing Data,William Cleveland著(Hobart Press)
  • Visualize This: The FlowingData Guide to Design,Visualization, and Statistics,Nathan Yau著(Wiley)

王群鋒(本書書譯者) 2004年畢業於西安電子科技大學(本科),後在武漢郵科院和上海一家小外企工作過5年,主要從事電信網元管理系統的開發,09年回到西安,加入西安的SPSS,一家專門從事資料統計及預測軟體開發的公司,10年公司被IBM收購,在這裡工作至今,主要從事統計模型視覺化方面的工作,就是這本書中提到的visualization。除去日常工作,個人對各種技術保持著較強的好奇心,在IBM developerworks上發表文章多篇,在MOOC平臺上也選修過幾門課程並取得認證。

  1. 發表文章

  2. Udacity & Coursera上選修的課程

  3. 如果對我的個人愛好感興趣,可關注我的豆瓣及微博

相關文章