機器學習裡不存在的免費午餐:No Free Lunch Theorems

不久之前參加了國內資料科學 / AI 的年度盛事,一方面有感於機器學習領域近年的飛速發展,另一方面覺得衍生的誤解與迷思幾乎也用同樣的速度在擴散,連 Facebook 的 AI 大神 Yann LeCun 在接受訪談的時候都明白表示希望大家不要再用魔鬼終結者的形象來解釋 AI ,因為這種印象完全是錯誤的。

通往線性代數的聖母峰 : 特徵值分解(EVD)、奇異值分解(SVD) 與主成分分析(PCA)

聖母峰的譬喻很有趣,原文來自交大周志成老師的線代啟示錄部落格,周老師文章裡曾說線代領域有兩座聖母峰,一座叫Jordan Form用來判斷矩陣相似問題,另一座就是奇異值分解(SVD,Singular Value Decomposition)。 特徵值( Eigenvalue )、奇異值( Singular Value )以及相關的矩陣觀念(正交、正規、跡數、對稱、轉置共軛、么正、可逆與不可逆、行列式、實數域與複數域、正定與半正定、可對角化、相似、秩…etc )在線性代數中都是重要的觀念,不過篇幅有限不可能一一討論,所以本文的重點將放在 SVD 的原理與類似方法的比較,因此延伸的線性代數知識都將予以簡化或略過以免模糊焦點。

統計R語言實作筆記系列 – 2D視覺化進階 ggplot()的基本架構(一)

R 世界的諸多套件當中,有兩個高級繪圖套件非常受到歡迎,分別是「 lattice 」與「 ggplot2 」。 和 R 內建的圖形函數相比,兩者都納入更多子功能可以繪製複雜的圖形,不過作圖的基本原理並不相同,其中 lattice 除了 2D 繪圖之外,還能繪製 3D 圖形,但就美觀來說, ggplot2 的潛力是讓人驚艷不已的,豆瓣的網友甚至暱稱為「文藝繪圖」的工具。

統計R語言實作筆記系列- 直線abline()、曲線curve()與多邊形polygon()視覺化繪圖

最近的文章中提過如何用 R 產出基本的統計圖表,也示範過用 abline() 函數繪製輔助線,但假如想要加上各種經典曲線在圖形中方便比較差異,或者隨心所欲地繪製自定義的曲線,那麼這篇文章將要介紹的函數 curve() 就能幫上忙。 輔助線之外,適當地繪製面積也是一種替圖表增色的方法,尤其是在面積本身帶有數學意義,例如累積機率,此時標示出面積能幫助圖形資訊的理解,只要使用 polygon() 函數就能做到這點。 繪製簡單直線與迴歸線: abline()、lsfit() abline() 本身無法直接做圖,得先畫出一張圖表之後再當成輔助線加上去。在此稍微回顧一下繪製直線的函數abline(),它的語法如下: abline(a = NULL, b = NULL, h = NULL, v = NULL, reg = NULL,coef = NULL, untf = FALSE, …) 其中參數a代表截距常數,參數b則是斜率常數。假如我們已經知道迴歸式等於: Y=1.1X+1,就能使用 abline() 函數來繪製直線。 假如迴歸式未知,也無須另行計算迴歸模型,只要利用 lsfit() 函數快速取得迴歸參數,再配合 abline() 就能得到迴歸直線了,參考以下的例子。 par(mfrow=c(3,1)) #切割繪圖視窗為3X1,方便稍後合併比較 aa

統計R語言實作筆記系列 – 2D資料視覺化入門

R的繪圖套件相當豐富,在「R Graphical Manual」網站上有不少範例可供學習,一般的2D統計圖表自然不在話下,還可以輕易繪製出工程上常用到的3D圖形。此外,R還包含了一些特殊的繪圖功能,像是自訂函數、繪製世界地圖資料、互動式圖表、把圖表輸出到網頁上等等。R的社群經常喜歡把這種跨領域綜合繪圖的能力概稱為「資料視覺化(Data Visualization)」。

統計R語言實作筆記系列 – 資料尺度與變數類型

收集原始資料是統計的必要步驟,前一篇介紹過把資料輸入到 R 的方法,但是在收齊資料到執行統計分析之前,還有一些基本的要件必須定義清楚,例如資料的統計尺度為何,一般常見分為四種: 比例(ratio)、區間(interval)、順序(order)、類別(nominal),依據尺度不同,適用的統計模型也有所調整。 如果只用統計尺度對資料做定義,那麼計算程式經常會出現衝突,因為程式無法像人一樣辨別不同尺度的意義,因此需要按照機器能讀懂的方式給予變數一些規定,另一方面為了不使程式設計過於複雜,這些格式也要盡量能夠符合多變量數學運算的邏輯需求。 這些考量構成了 R 裡頭常見的變數類型: 1. 向量 vector() 2. 因素向量 factor() 3. 陣列 array() 4. 矩陣 matrix() 5. 資料框架 data.frame() 變數的基本單位: 向量Vector 所謂向量是一組觀察值的集合,僅有一個資料點可以視為向量的特例。大多時候,一個變數在程式中代表的意義就是一個向量。 向量的指定可以透過「 c() 」函數操作,例如: x

主成分分析(Principal Component Analysis)與因素分析(Factor Analysis)

許老師上研究方法的時候說,很多人的論文都會用 survey,所以中文稱為因素分析的 Factor Analysis 很重要。我有時候也會被問到一些相關的問題,常常許多人弄不清楚主成分(份?)分析與因素分析之間的使用情境差異,趁著空檔整理拼湊一下。 劈頭而來的困惑是,為什麼問卷很常用所謂主成分分析( PCA , Principal Component Analysis)或是因素分析? 這個問題必須回到問卷來,不妨問問研究者本身到底想要從問卷中得到什麼呢? 如果一篇研究只是想要比較 A、 B 兩個人在同一份問卷的回答差異,那麼壓根不需要因素分析的。 主成分(份?)分析與因素分析的使用情境: 範例問題: 第一個回答者 非常不同意 不同意 普通 同意 非常同意 1. 對於該網站所提供的產品品質與功能,是值得信賴的。 1 2 3 4 5 2. 我認為該網站提供的產品內容是正確無誤的。 1 2 3 4 5 3. 我覺得該網站會遵守其對消費者所設立的規則與承諾 1 2 3 4 5 第二個回答者 非常不同意 不同意 普通 同意… Continue Reading

服務科學課程回顧: 應用商業分析(Applied Business Analytics)

Soumya 的 Syllabus 把這堂資料分析與視覺化的專門課程分成四個部分:「 Understanding the data 」、「 Statistical testing 」、「 Causal modeling 」、「 Structural equation modeling 」。 自學多變量的過程遇到很多難點,譬如很難把數學輕易抽象化成為直觀意義,所以這堂「顛覆傳統」的分析課最後幾週談的東西對我來說很有啟發性。

廣義線性模型觀點:統計迴歸分析(Regression)的基本原理與結構

差不多 2 月左右,衝假的緣故休得特別多,又正好碰到統計上無法解決的問題,於是本人也很有野心的列了一張清單,幾月的時候要看完哪些書目、做點小研究、整理一些心得什麼的,不過就像許多人每年的「夢想板」,寫爽的成分比較多…,趁著空檔,終於趕在開工前夕把 ptt 上也常有推薦的經典譯作, Neter 原著的「應用線性迴歸模型」掃完,再加上看了一部分的「類別資料分析導論」,穿插著幾本統計小書,一時恐怕是整理不完了。 我們準備來談談迴歸分析(回歸分析?)的本質以及它的歷史軼事,但無論如何,一窺迴歸分析的堂奧之前,還是有些觀念需要先建立起來。