- Python機(jī)器學(xué)習(xí)(原書第3版)
- (美)塞巴斯蒂安·拉施卡 瓦希德·米爾賈利利
- 1390字
- 2021-06-11 16:13:35
1.4 構(gòu)建機(jī)器學(xué)習(xí)系統(tǒng)的路線圖
在前面的章節(jié)中,我們討論了機(jī)器學(xué)習(xí)的基本概念及其三種不同類型。本節(jié)將討論機(jī)器學(xué)習(xí)系統(tǒng)中與算法相關(guān)的其他重要部分。圖1-9展示了在預(yù)測建模過程中使用機(jī)器學(xué)習(xí)的典型工作流程,我們將在后續(xù)幾個(gè)小節(jié)中詳細(xì)討論。

圖 1-9
1.4.1 預(yù)處理——整理數(shù)據(jù)
讓我們從構(gòu)建機(jī)器學(xué)習(xí)系統(tǒng)的路線圖開始討論。原始數(shù)據(jù)很少以能滿足學(xué)習(xí)算法的最佳性能所需要的理想形式出現(xiàn)。因此,數(shù)據(jù)的預(yù)處理是所有機(jī)器學(xué)習(xí)應(yīng)用中最關(guān)鍵的步驟之一。
以前一節(jié)的鳶尾花數(shù)據(jù)集為例,我們可以把原始數(shù)據(jù)視為欲從中提取有意義特征的一系列花朵的圖像。有意義的特征可能是顏色、色調(diào)、強(qiáng)度、高度、長度和寬度。
為了獲得模型的最佳性能,許多機(jī)器學(xué)習(xí)算法要求所選特征的測量結(jié)果單位相同,通常通過把特征數(shù)據(jù)變換到[0,1]的取值范圍,或者均值為0、方差為1的標(biāo)準(zhǔn)正態(tài)分布來實(shí)現(xiàn),后面的章節(jié)將會(huì)對(duì)此進(jìn)行介紹。
某些選定的特征相互之間可能高度相關(guān),因此在某種程度上呈現(xiàn)冗余的現(xiàn)象。在這種情況下,降維技術(shù)對(duì)于將特征壓縮到低維子空間非常有價(jià)值。降低特征空間維數(shù)的好處在于減少存儲(chǔ)空間,提高算法的運(yùn)行速度。在某些情況下,如果數(shù)據(jù)集包含大量不相關(guān)的特征或噪聲,換句話說,如果數(shù)據(jù)集的信噪比較低,那么降維也可以提高模型的預(yù)測性能。
為了確定機(jī)器學(xué)習(xí)算法不僅在訓(xùn)練數(shù)據(jù)集上表現(xiàn)良好,而且對(duì)新數(shù)據(jù)也有很好的適應(yīng)性,我們希望將數(shù)據(jù)集隨機(jī)分成單獨(dú)的訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集。用訓(xùn)練數(shù)據(jù)集來訓(xùn)練和優(yōu)化機(jī)器學(xué)習(xí)模型,同時(shí)把測試數(shù)據(jù)集保留到最后以評(píng)估最終的模型。
1.4.2 訓(xùn)練和選擇預(yù)測模型
在后面的章節(jié)中可以看到,為了完成各種不同的任務(wù),目前開發(fā)了許多不同的機(jī)器學(xué)習(xí)算法。根據(jù)David Wolpert著名的“天下沒有免費(fèi)午餐”這個(gè)定理,我們可以得出機(jī)器學(xué)習(xí)絕非“免費(fèi)的”這個(gè)重要結(jié)論[1]還可以把這個(gè)概念與俗語相關(guān)聯(lián),“如果你只有一把錘子,你就會(huì)把所有的東西看成釘子,這或許是種誘惑”(Abraham Maslow,1966)。例如,每個(gè)分類算法都存在著固有的偏置,如果不對(duì)分類任務(wù)做任何假設(shè),沒有哪個(gè)分類模型會(huì)占上風(fēng)。因此,在實(shí)踐中,至少要比較幾種不同的算法,以便訓(xùn)練和選擇性能最好的模型。但在比較不同的模型之前,我們首先要確定度量性能的指標(biāo)。通常用分類準(zhǔn)確率作為度量指標(biāo),其定義為正確分類的個(gè)體占所有個(gè)體的百分比。
有人可能會(huì)問:“如果不用測試數(shù)據(jù)集進(jìn)行模型選擇,而將其保留用于最終的模型評(píng)估,那么我們?cè)趺粗滥膫€(gè)模型在最終測試數(shù)據(jù)集和真實(shí)數(shù)據(jù)上表現(xiàn)得更好呢?”為了解決嵌套在這個(gè)問題中的問題,我們可以采用不同的交叉驗(yàn)證技術(shù),將數(shù)據(jù)集進(jìn)一步拆分為訓(xùn)練數(shù)據(jù)集和驗(yàn)證數(shù)據(jù)集,以評(píng)估模型的泛化性能。最后,我們也不能期望軟件庫所提供的不同機(jī)器學(xué)習(xí)算法的默認(rèn)參數(shù)值對(duì)特定問題最優(yōu)。因此,后續(xù)章節(jié)將會(huì)頻繁使用超參數(shù)調(diào)優(yōu)技術(shù)來調(diào)優(yōu)模型的性能。
我們可以把超參數(shù)看作不是從數(shù)據(jù)中學(xué)習(xí)的參數(shù),而是模型的調(diào)節(jié)旋鈕,可以來回旋轉(zhuǎn)調(diào)整模型的性能。后面章節(jié)中的實(shí)際示例會(huì)對(duì)此有更加清楚的說明。
1.4.3 評(píng)估模型并對(duì)未曾謀面的數(shù)據(jù)進(jìn)行預(yù)測
在訓(xùn)練數(shù)據(jù)集上擬合并選擇模型之后,我們可以用測試數(shù)據(jù)集來評(píng)估它在從來沒見過的新數(shù)據(jù)上的表現(xiàn),以評(píng)估泛化誤差。如果我們對(duì)模型的表現(xiàn)滿意,那么就可以用它來預(yù)測未來的新數(shù)據(jù)。請(qǐng)注意,前面提到的諸如特征縮放和降維過程中的參數(shù),僅能從訓(xùn)練數(shù)據(jù)集獲得,相同的參數(shù)會(huì)被應(yīng)用到測試數(shù)據(jù)集,以及任何其他的新數(shù)據(jù)集。否則,對(duì)測試數(shù)據(jù)集的性能評(píng)估可能會(huì)過于樂觀。
- Flask Web全棧開發(fā)實(shí)戰(zhàn)
- Unreal Engine Physics Essentials
- 自制編譯器
- Visual C++實(shí)例精通
- Visual Basic程序設(shè)計(jì)教程
- 人人都是網(wǎng)站分析師:從分析師的視角理解網(wǎng)站和解讀數(shù)據(jù)
- PostgreSQL Replication(Second Edition)
- .NET 3.5編程
- Python深度學(xué)習(xí):模型、方法與實(shí)現(xiàn)
- Internet of Things with ESP8266
- 新印象:解構(gòu)UI界面設(shè)計(jì)
- 一步一步學(xué)Spring Boot:微服務(wù)項(xiàng)目實(shí)戰(zhàn)(第2版)
- Python滲透測試編程技術(shù):方法與實(shí)踐(第2版)
- 城市信息模型平臺(tái)頂層設(shè)計(jì)與實(shí)踐
- Learning GraphQL and Relay