如何用Julia做數據統計?這裏有一本全面教材(附代碼圖示)

 2019-07-27 14:01:34.0

去年 8 月份,MIT 正式發佈了 Julia 1.0,在開發者社區引起了很大的轟動。這一語言易於使用、速度快、效率高,在科學計算、數據處理、機器學習領域都非常受歡迎。那麼,這麼好用的語言要怎麼學呢?近日,來自昆士蘭大學的 Hayden Klok、Yoni Nazarathy 撰寫了一本結合統計學和 Julia 語言的教程,不僅將 Julia 作爲工具介紹爲讀者,還梳理了機器學習、數據科學和人工智能所需的統計學基本概念。

目前,作者已將該書的草稿開源。

在本書「前言」部分,作者介紹了他們的寫作初衷、目標讀者、全書概要等信息。

寫作初衷 & 目標讀者

寫這本書的最初原因是 2016 年底爲昆士蘭大學的統計學課程準備材料。當時,Julia 語言雖然只是 0.5 版,但已經顯示出強大的功能和適應性。出於這個原因,我們在課程中選擇使用 Julia,因爲早期讓學生接觸有關 Julia 的統計知識,可以讓他們在未來的職業生涯中熟練使用 Julia 進行數據科學、數值計算和機器學習任務。這種選擇當時也遭到了一些學生和同事的反對,那時跟現在一樣,R 語言統治着統計世界,Python 主宰着機器學習世界。那麼爲什麼要選擇 Julia?

主要有三個原因:高性能、簡單性和靈活性。Julia 正在迅速成爲數據科學、統計學、機器學習、人工智能和一般科學計算領域的主要語言之一。它像 R 語言、Python 和 Matlab 一樣易於使用,但由於其類型系統和即時編譯,它可以更有效地執行計算。這使得它在運行時間和開發時間方面都很快。此外,還有多種多樣的 Julia 包。這其中就包括數據科學家、統計學家或機器學習從業者需要的高級方法。因此,該語言具有廣泛的應用範圍。

編寫本書的目的是爲了梳理機器學習、數據科學和人工智能所需的統計學基本概念。這是爲了將 Julia 作爲計算工具介紹給讀者。本書還旨在爲數據科學家、機器學習從業者、生物統計學家、金融專業人士以及工程師提供參考,幫他們重新回顧統計學知識或者填補理解空白。在當今世界,這些學生、專業人士或研究人員經常使用先進的方法和技術。然而,我們常常需要退一步,探索或重新審視基本概念。藉助 Julia 等編程語言重新審視這些概念,可以使概念具體化。

現在,距離我們開始寫這本書已經兩年半了,Julia 也已經有了 1.0 以上的版本。這本書也逐漸完善了。任何想要使用 Julia 的人都可以輕鬆部署 Julia。然而,目前 Julia 的許多用戶都是核心開發人員,他們爲語言的標準庫以及廣泛的程序包生態系統做出了貢獻。因此,目前可用的大部分 Julia 資料都是針對其他開發人員而非最終用戶。這就是我們的書發揮作用的地方,因爲它是爲最終用戶編寫的。

代碼示例是以簡單的格式編寫的,有時會犧牲效率和通用性,但更易於閱讀。每個代碼示例旨在傳達某一特定的統計知識點,同時會介紹 Julia 編程概念。在某種程度上,代碼示例能讓人想到老師在講座中用來說明概念的示例。想了解本書的內容,不需要事先了解統計知識,實際上只需要瞭解一些基本的編程經驗和基本數學符號即可。

全書概要

該書共包含 10 章和 3 個附錄。可以連續閱讀,也可以自己決定閱讀順序。

第 1 章是對 Julia 的介紹,包括它的設置、包管理器和本書中使用的主要包。爲了說明一些語言的特性,通過代碼示例介紹一些基本語法和程序結構。

第 2 章探討基本概率,重點關注事件、結果、獨立性和條件概率概念。我們提出了幾個典型的概率示例以及探索性的仿真代碼。

第 3 章探討了隨機變量和概率分佈,重點介紹 Julia 分佈包的使用。將離散、連續、單變量和多變量概率分佈作爲一個教學任務加以介紹和探討。這是通過仿真和顯式分析以及繪製分佈的相關函數圖來完成的,如 PMF、PDF、CDF 等。

第 4 章暫時不談概率概念,重點介紹了數據處理、數據彙總和數據可視化。引入 DataFrame 的概念作爲存儲可能丟失值的異構數據類型的機制。數據幀在 Julia 中是數據科學和統計的重要組成部分,就像在 R 和 Python 中一樣。本章還介紹了經典描述統計學及其在 Julia 中的應用。此外,還引入了核密度估計和經驗累積分佈函數等概念。本章最後將介紹使用文件的一些基本功能。

第 5 章介紹了一般的統計推斷思想。通過仿真和分析實例給出了樣本均值和樣本方差的抽樣分佈,說明了中心極限定理和相關結果。然後探討統計估計的一般概念,包括矩量法和最大似然估計方法的基本例子,然後是簡單的置信區間。本章還介紹了統計假設檢驗的基本概念,以及貝葉斯統計的基本概念。

第 6 章介紹了一個和兩個樣本的各種實際置信區間。本章從均值的標準置信區間開始,然後發展到更現代的 bootstrap 方法和預測區間。本章還是研究模型假設對推理影響的切入點。

第 7 章側重於假設檢驗。本章從總均值的標準 t 檢驗開始,然後介紹兩種均值比較的假設檢驗。然後,進行方差分析(ANOVA),以及檢查獨立性和擬合優度的假設檢驗。接下來向讀者介紹功率曲線。本章最後介紹了一個很少涉及到的性質,即 p 值的分佈。

第 8 章介紹了最小二乘和統計線性迴歸模型。它首先介紹最小二乘法,然後進入線性迴歸統計模型,包括假設檢驗和置信帶。還探討了其他迴歸概念。包括假設檢查、模型選擇、交互等。

第 9 章概述了幾種更先進的機器學習概念。首先,介紹了研究數據的機器學習範例。包括訓練、驗證和測試。然後介紹了機器學習中偏差和方差的概念。這與將正則化思想應用於線性模型是相輔相成的。然後本章繼續討論了邏輯迴歸和廣義線性模型。然後介紹了進一步的監督學習方法,包括線性分類、隨機森林、支持向量機和深度神經網絡。然後介紹了一些無監督的方法,包括 k 均值和主成分分析(PCA)。本章最後簡要介紹了馬爾可夫決策過程和強化學習。

第 10 章討論了應用概率的隨機模型,讓讀者瞭解隨機建模和蒙特卡羅模擬的優點。本章側重於動態系統,探討了馬爾可夫鏈、離散事件模擬和可靠性分析,以及處理隨機數生成的幾個方面。

文章來源:機器之心