多項式迴歸(polynomial regression)
假設你的資料是彎的而非直的。多項式迴歸用最小平方法穿過這些點擬合一條曲線 y = c_0 + c_1 x + c_2 x^2 + ... + c_d x^d。可愛的意外是:雖然這曲線對 x 是非線性的,它對未知係數 c_0, ..., c_d 卻完全是「線性」的——所以整套線性最小平方機制原封不動地適用。同樣的想法涵蓋任何「固定函數之線性組合」的模型:正弦與餘弦、指數、樣條——統稱一般線性迴歸。
做法:建立設計矩陣 A,其各行是在資料點上求值的所選函數。對穿過點 x_1, ..., x_m 的 d 次多項式,第 i 列是 (1, x_i, x_i^2, ..., x_i^d)。然後你對係數向量 c 求解最小平方問題 A c = y,與先前完全相同——最好用 QR,而非法方程。每一行是一個「特徵」;殘差 r = y - A c 與各行正交,意味著擬合已榨乾這些特徵所能解釋的全部訊號。選函數是建模;求最佳係數是線性代數。
兩個誠實的警告。其一,更有彈性並不更好:高次多項式可以蜿蜒穿過每一個訓練點,卻在點與點之間預測出垃圾——這是過度擬合,是偏差-變異權衡的實際展現。其二,且為多項式所特有的:單項式基底 (1, x, x^2, ...) 使設計矩陣成為范德蒙矩陣,隨次數增長會災難性地病態,於是係數在數值上變得毫無意義。解方是改用條件數較好的基底——如切比雪夫等正交多項式,或把 x 置中與縮放——而非原始的冪次。
要用拋物線 y = c_0 + c_1 x + c_2 x^2 擬合五個 (x, y) 點,設計矩陣的各列為 (1, x_i, x_i^2)——五列三行,過定。對 (c_0, c_1, c_2) 求解最小平方問題即得最佳拋物線;用切比雪夫或置中後的冪次取代原始的 x^2,能保持矩陣良態。
對 x 非線性,但對係數線性——所以一般最小平方法就能擬合這條曲線。
通過每一個資料點的多項式,通常泛化得最差而非最好——這就是過度擬合。並且絕不要信任原始單項式基底下的高次擬合;范德蒙的條件數使係數不可靠。