2023年春季《資料科學導論》課程回顧(一)

2021-08-20 11:52:08 字數 2117 閱讀 8660

【這個帖子是總結資料科學教學體系設計和教學經驗的,會有一些比較發散的議論和思考,拋磚引玉,請看官不要苛責,多提寶貴意見。因為資料科學導論課程最大的困難是,能講的,該講的東西太多,不知如何取捨;而且針對不同背景和先修課程的學生,內容也會存在很大差異,這些都是巨大的挑戰,需要迭代改進。】

2023年春季學期要結束了,這個學期給人民大學統計學院「資料科學與大資料技術」本科專業學生開設《資料科學導論》課程,感覺頭緒紛亂,壓力山大。不過幾個月的課程講下來,效果似乎還可以。

本課程的目標是大一下學期學生,他們已經接觸過下列課程:微積分、線性代數、概率論(高中水平)、統計學(入門課程)、程式設計(學了一點c語言)、最優化(求最大值最小值)。按照《深度學習》中的先修課程要求,他們可以開始自學了,如果是速成課程的話,講幾次python,然後拿scikit-learn跑資料集,就ok了。不過這些學生的長遠目標是成為專業的資料科學家,他們的學習時間至少要按照6年來設定,因此面向一年級學生的《資料科學導論》課程就不宜侷限於呼叫api或者點按鈕了,可能更需要幫助他們完成從高中數學到數值計算和數學建模的轉型。高中數學的特點是應試和推公式,與現實無關,自然需要新的課程和實踐來逐步扭轉思維定勢。

那麼,將目標設定為數值計算和數學建模的原因何在,難道資料科學不是乙個更漂亮的包裝嗎?問題在於,資料科學是什麼?資料科學和資料科學家是先有雞還是先有蛋,這些都是待定的問題。對於新生來說,他們並不需要更多的營銷口號和包裝,他們需要的是乾貨,尤其是必不可少的基本功。

我很喜歡用下面這個思想實驗來思考需要什麼樣的基本功:如果偉大的尤拉(或者高斯)穿越到2023年,他需要補多少課程,花多長時間進入資料科學領域?

我的答案是:好像不太用補課,除了矩陣。他還要花幾個月時間學一點python,至於神經網路的反向傳播演算法、最大似然、mcmc和em演算法之類,對他來說應該很輕鬆吧?變分推斷,尤拉是變分法的發明者。此外,估計以尤拉的智慧型,他不會糾結於頻率派和貝葉斯的恩怨,也不會認為用相關性就可以不談論因果分析。所以基本上估計用不了一年,也許尤拉就會貢獻出一些新演算法。這個思想實驗的要點在於:考慮目前流行的各種資料科學演算法,如果不需要數學上的嚴格化證明,則除了矩陣以外,凡是和微積分沾邊的,尤拉都不用補課就能掌握。

從專業數學家的角度來看,這種理論上的原地踏步簡直不可想象,《老顧談幾何》認為有可能出現理論上的突破。當然,如果著眼未來,這也證明從中學到大學的數學建模教學體系效率太低,否則掌握了數學建模能力的人,加上程式設計,應該很容易理解資料科學方法。 它還可能意味著改進教學體系的可能,如果從《資料科學》這個系列入手,借助python和r的威力,應當可以大大提高很多學生的數學建模能力,當然,這是乙個更巨集大的主題,本帖無暇展開論述。

可能有讀者覺得將資料科學幾乎等同於(也許是貶低為)數學建模的乙個變種,有些過於簡單化了。的確如此,下面我們就來考究一番,資料科學如何不同於傳統的數學建模。數學建模的基本形象是一門鬆散的課程,儘管兩者的基本內容和技能組合大體重疊。按照證明兩個集合相等或包含關係的思路,我們可以這樣來證明:任取資料科學領域的某種演算法或實踐,把它放到數學建模的課程裡,有問題嗎?沒有問題,所以資料科學包含於數學建模;同理,任取數學建模裡面的演算法或實踐,它一定屬於資料科學嗎?答案是否,比如偏微分方程組的數值解,沒有人會認為它屬於資料科學,但是把它放入數學建模課程裡,沒有違和感。

結論是:資料科學比數學建模小,目前可見的主要差別是,傳統的科學計算中有很大一部分內容不屬於公認的資料科學領域。但是資料科學與科學計算共享了很多基礎模組,比如兩者的軟體都是以矩陣運算模組為核心。或者說,如果某人精通科學計算的一些領域,則他轉入資料科學領域應當不難。反過來呢?我不知道該怎麼評估。

所以我們還是來看看資料科學的主要特點,它是形成了一套依託新的技術體系(資料管理體系)的工程化方**和best practice。簡單說來,資料科學是依託技術體系的工程化成果,對很多人的科學觀乃至世界觀都會造成衝擊:科學、技術和工程就這麼混在一起了?至少,在美國英語中,scientist是動手能力超強的人物,比如crazy scientist。實際上,我們想象中的高冷大神圖靈的動手能力就很強,能夠自己組裝電子儀器(《圖靈傳》中有據可查)。

在資料科學家中,有些人喜歡用來自2023年代的crisdm工作迴圈(當時叫資料探勘),python的sklearn則引入pipepline類來組裝分析流程,這些都是工程化的成果,也是真正的資料科學家必備的工具箱。創新至少分兩種,革命性的,比如牛頓萊布尼茨的微積分公式,組合式的,將現有零件組合成強力**,這也是創新,而且是更為常見的創新。

【今天先到這裡,2023年6月4日】

2023年春季個人閱讀計畫

這一學期我打算精讀的書籍是 需求分析 軟體需求與分析 根據這本書的結構來看,我對這一學期的閱讀計畫是這樣安排的 需求分析 軟體需求與分析 這本書共分為五大部分,分別為緒論 需求獲取 需求分析 需求的規格化與驗證 需求管理與工程管理。同時根據老師的要求,我需要在這一學期完成六篇精讀的閱讀筆記,我計畫這...

資料科學導論課程筆記(二) 資料視覺化

資料視覺化是一項致力於把抽象的資料或概念轉化為適於人類理解和接受的視覺化的資訊的技術。是乙個典型的交叉學科,涉及電腦科學,認知心理學,美學和藝術設計等學科,涉及資料處理 演算法設計和軟體開發和人機互動等多種知識和技能。視覺化是一種以影象 圖表或動畫的形式進行有效資訊傳遞的技術。它的主要目的在於,作為...

資料科學導論1

掌握numpy陣列物件ndarray 屬性說明 ndim 返回int。表示陣列的維數 shape 返回tuple。表示陣列的尺寸,對於n行m列的矩陣,形狀為 n,m size 返回int。表示陣列的元素總數,等於陣列形狀的乘積 dtype 返回data type。描述陣列中元素的型別 itemsiz...