【統(tǒng)計學(xué)習(xí)方法】 第1章 統(tǒng)計學(xué)習(xí)方法概論(二)
點擊上方“公眾號”可訂閱哦!
“如果我較早地了解這個公眾號,也許我將有足夠的時間來制定大統(tǒng)一理論。”
Albert Einstein
本篇繼續(xù)介紹統(tǒng)計學(xué)習(xí)相關(guān)的概念。
1
●
正則化與交叉驗證
正則化
模型選擇的典型方法是正則化。正則化是結(jié)構(gòu)風(fēng)險最小化策略的實現(xiàn),是在經(jīng)驗風(fēng)險上添加一個正則化項或懲罰。
正則化一般具有如下形式:

其中第1項是經(jīng)驗風(fēng)險,第2項是正則化項。
正則化項可以取不同的形式,

正則化項符合奧卡姆剃刀原理。奧卡姆剃刀原理應(yīng)用于模型選擇時變?yōu)橐韵孪敕ǎ涸谒锌赡苓x擇的模型中,能夠很好解釋已知數(shù)據(jù)并且十分簡單才是最好的模型。
交叉驗證
另一種常用的模型選擇方法是交叉驗證。
如果給定的樣本數(shù)據(jù)充足,進(jìn)行模型選擇的一種簡單方法是隨機(jī)地將數(shù)據(jù)集切分成三部分,分別為訓(xùn)練集、驗證集和測試集。
但是在許多應(yīng)用中的數(shù)據(jù)書不充足的,為了選擇好的模型,可以采用交叉驗證方法。交叉驗證的基本想法是重復(fù)的使用數(shù)據(jù),把給定的數(shù)據(jù)進(jìn)行切分,將切分的數(shù)據(jù)集組合為訓(xùn)練集與測試集,在此基礎(chǔ)上反復(fù)進(jìn)行訓(xùn)練、測試以及模型選擇。
簡單交叉驗證:首先隨機(jī)將已給的數(shù)據(jù)劃分為兩部分,一部分作為訓(xùn)練集,另一部分作為測試集;然后用訓(xùn)練集在各種條件下訓(xùn)練模型,從而得到不同的模型;在測試集上評價各個模型的測試誤差,選出測試誤差最小的模型。
S折交叉驗證:首先隨機(jī)地將已給數(shù)據(jù)切分為S個互不相交的大小相同的子集;然后利用S-1個子集的數(shù)據(jù)訓(xùn)練模型,利用余下的子集測試模型;將這一過程對可能的S種選擇重復(fù)進(jìn)行;最后選擇出S次測評中平均測試誤差最小的模型。
留一交叉驗證:S折交驗證的特殊情形是S=N,稱為留一交叉驗證。
使用正則項,擬合曲線,
代碼演示:
import numpy as npimport scipy as spfrom scipy.optimize import leastsqimport matplotlib.pyplot as plt%matplotlib inline# 目標(biāo)函數(shù)def real_func(x):return np.sin(2*np.pi*x)# 多項式def fit_func(p, x):f = np.poly1d(p)return f(x)# 殘差def residuals_func(p, x, y):ret = fit_func(p, x) - yreturn ret????????# 十個點x = np.linspace(0, 1, 10)x_points = np.linspace(0, 1, 1000)# 加上正態(tài)分布噪音的目標(biāo)函數(shù)的值y_ = real_func(x)y = [np.random.normal(0, 0.1) + y1 for y1 in y_]regularization = 0.0001def residuals_func_regularization(p, x, y):ret = fit_func(p, x) - yret = np.append(ret,np.sqrt(0.5 * regularization * np.square(p))) # L2范數(shù)作為正則化項return retdef fitting(M=0):"""M 為 多項式的次數(shù)"""# 隨機(jī)初始化多項式參數(shù)p_init = np.random.rand(M + 1)# 最小二乘法p_lsq = leastsq(residuals_func, p_init, args=(x, y))print('Fitting Parameters:', p_lsq[0])# 可視化plt.plot(x_points, real_func(x_points), label='real')plt.plot(x_points, fit_func(p_lsq[0], x_points), label='fitted curve')plt.plot(x, y, 'bo', label='noise')plt.legend()return p_lsq??# 最小二乘法,加正則化項p_init = np.random.rand(9 + 1)p_lsq_regularization = leastsq(residuals_func_regularization, p_init, args=(x, y))?p_lsq_9 = fitting(M=9)?plt.plot(x_points, real_func(x_points), label='real')plt.plot(x_points, fit_func(p_lsq_9[0], x_points), label='fitted curve')plt.plot(x_points,fit_func(p_lsq_regularization[0], x_points),label='regularization')plt.plot(x, y, 'bo', label='noise')plt.legend()?


2
●
泛化能力
泛化誤差
學(xué)習(xí)方法的泛化能力是指由該方法學(xué)習(xí)到的模型對未知數(shù)據(jù)的預(yù)測能力,是學(xué)習(xí)方法本質(zhì)上的重要性質(zhì)。
現(xiàn)實中采用最多的辦法是通過測試誤差來評價學(xué)習(xí)方法的泛化能力。
首先給出泛化誤差的定義,

事實上,泛化誤差就是所學(xué)習(xí)到的模型的期望風(fēng)險。
3
●
生成模型與判別模型
監(jiān)督學(xué)習(xí)的任務(wù)就是學(xué)習(xí)一個模型,應(yīng)用這一模型,對給定的輸入預(yù)測相應(yīng)的輸出。這一模型的一般形式為決策函數(shù):
?
或者條件概率分布:
?
監(jiān)督學(xué)習(xí)方法又可以分為生成方法和判別方法,所學(xué)到的模型分別稱為生成模型和判別模型。
生成方法有數(shù)據(jù)學(xué)習(xí)聯(lián)合概率分布,求出條件概率分布,即生成模型:

典型的生成模型有,樸素貝葉斯法和隱馬爾可夫模型。
判別方法是由數(shù)據(jù)直接學(xué)習(xí)決策函數(shù)?
典型的判別模型有,k近鄰法、感知機(jī)、決策樹、邏輯斯諦回歸模型、最大熵模型、支持向量機(jī)、提升方法和條件隨機(jī)場等。
4
●
分類問題
分類是監(jiān)督學(xué)習(xí)的一個核心問題。在監(jiān)督學(xué)習(xí)
分類問題包括學(xué)習(xí)和分類兩個過程。在學(xué)習(xí)過程中,根據(jù)已知的訓(xùn)練數(shù)據(jù)集利用有效的學(xué)習(xí)方法學(xué)習(xí)一個分類器;在分類過程中,利用學(xué)習(xí)的分類器對新輸入的實例進(jìn)行分分類。

許多統(tǒng)計學(xué)習(xí)方法可以用于分類,包括k近鄰法、感知機(jī)、樸素貝葉斯法、決策樹、決策列表、邏輯斯諦回歸模型、支持向量機(jī)、提升方法、貝葉斯網(wǎng)絡(luò)、神經(jīng)網(wǎng)絡(luò)等。
分類在于根據(jù)其特性將數(shù)據(jù)“分門別類”。例如,在銀行業(yè)務(wù)領(lǐng)域,可以構(gòu)建一個客戶分析模型;在網(wǎng)絡(luò)安全領(lǐng)域,可以利用日志數(shù)據(jù)的分類對非法入侵進(jìn)行檢測;在圖像處理中,分類可以用來檢測圖像中是否有人臉出現(xiàn);在互聯(lián)網(wǎng)搜索中,網(wǎng)頁的分類可以幫助網(wǎng)頁的抓取、索引與排序。
5
●
標(biāo)注問題
標(biāo)注也是一個監(jiān)督學(xué)習(xí)方法??梢哉J(rèn)為標(biāo)注問題是分類問題的一個推廣,標(biāo)注問題又是更復(fù)雜的的結(jié)構(gòu)預(yù)測問題的簡單形式。標(biāo)注問題輸入的是一個觀測序列,輸出是一個標(biāo)記序列或狀態(tài)序列。

標(biāo)注常用的統(tǒng)計學(xué)習(xí)方法有:隱馬爾可夫模型、條件隨機(jī)場。
標(biāo)注問題在信息抽取、自然語言處理等領(lǐng)域被廣泛應(yīng)用,是這些領(lǐng)域的基本問題。
6
●
回歸問題
回歸是監(jiān)督學(xué)習(xí)的另一重要問題。回歸用于預(yù)測輸入變量和輸出變量之間的關(guān)系,特別是當(dāng)輸入變量的值發(fā)生變化時,輸出變量的值隨之發(fā)生的變化。
回歸模型正是表示從輸入變量到輸出變量之間映射的函數(shù)。

回歸問題按照輸入變量的個數(shù),分為一元回歸和多元回歸;按照輸入變量和輸出變量之間的關(guān)系的類型分為,線性回歸和非線性回歸。
回歸學(xué)習(xí)最常用的損失函數(shù)就是平凡損失函數(shù),在此情況下,回歸問題可以由著名的最小二乘法求解。
許多領(lǐng)域的任務(wù)都可以形式化為回歸問題,比如,回歸問題可以用于商務(wù)領(lǐng)域,作為市場趨勢預(yù)測,產(chǎn)品質(zhì)量管理、客戶滿意度調(diào)查、投資風(fēng)險分析的工具。
?END
掃碼關(guān)注
微信號|sdxx_rmbj

