現(xiàn)在我們已經(jīng)介紹了一些用于構(gòu)建和訓(xùn)練深度網(wǎng)絡(luò)并使用包括權(quán)重衰減和丟失在內(nèi)的技術(shù)對(duì)其進(jìn)行正則化的基本工具,我們準(zhǔn)備通過(guò)參加 Kaggle 競(jìng)賽將所有這些知識(shí)付諸實(shí)踐。房?jī)r(jià)預(yù)測(cè)競(jìng)賽是一個(gè)很好的起點(diǎn)。數(shù)據(jù)相當(dāng)通用,沒(méi)有表現(xiàn)出可能需要專門(mén)模型(如音頻或視頻可能)的奇異結(jié)構(gòu)。該數(shù)據(jù)集由 De Cock ( 2011 )收集,涵蓋 2006 年至 2010 年愛(ài)荷華州埃姆斯的房?jī)r(jià)。 它比Harrison 和 Rubinfeld (1978)著名的波士頓住房數(shù)據(jù)集大得多,擁有更多的例子和更多的特征。
在本節(jié)中,我們將帶您了解數(shù)據(jù)預(yù)處理、模型設(shè)計(jì)和超參數(shù)選擇的詳細(xì)信息。我們希望通過(guò)實(shí)踐方法,您將獲得一些直覺(jué),這些直覺(jué)將指導(dǎo)您作為數(shù)據(jù)科學(xué)家的職業(yè)生涯。
5.7.1. 下載數(shù)據(jù)
在整本書(shū)中,我們將在各種下載的數(shù)據(jù)集上訓(xùn)練和測(cè)試模型。在這里,我們實(shí)現(xiàn)了兩個(gè)實(shí)用函數(shù)來(lái)下載文件和提取 zip 或 tar 文件。同樣,我們將它們的實(shí)現(xiàn)推遲到 第 23.7 節(jié)。
def download(url, folder, sha1_hash=None):
"""Download a file to folder and return the local filepath."""
def extract(filename, folder):
"""Extract a zip/tar file into folder."""
5.7.2. 格格
Kaggle是一個(gè)舉辦機(jī)器學(xué)習(xí)競(jìng)賽的流行平臺(tái)。每場(chǎng)比賽都以數(shù)據(jù)集為中心,許多比賽由利益相關(guān)者贊助,他們?yōu)楂@勝的解決方案提供獎(jiǎng)勵(lì)。該平臺(tái)幫助用戶通過(guò)論壇和共享代碼進(jìn)行交互,促進(jìn)協(xié)作和競(jìng)爭(zhēng)。雖然排行榜追逐經(jīng)常失控,研究人員短視地關(guān)注預(yù)處理步驟而不是提出基本問(wèn)題,但平臺(tái)的客觀性也具有巨大價(jià)值,該平臺(tái)有助于競(jìng)爭(zhēng)方法之間的直接定量比較以及代碼共享,以便每個(gè)人都可以了解哪些有效,哪些無(wú)效。如果你想?yún)⒓?Kaggle 比賽,你首先需要注冊(cè)一個(gè)賬號(hào)(見(jiàn)圖 5.7.1)。
在房?jī)r(jià)預(yù)測(cè)比賽頁(yè)面,如圖 5.7.2所示,可以找到數(shù)據(jù)集(在“數(shù)據(jù)”選項(xiàng)卡下),提交預(yù)測(cè),就可以看到你的排名,網(wǎng)址在這里:
5.7.3. 訪問(wèn)和讀取數(shù)據(jù)集
請(qǐng)注意,比賽數(shù)據(jù)分為訓(xùn)練集和測(cè)試集。每條記錄包括房屋的屬性值和街道類型、建造年份、屋頂類型、地下室狀況等屬性。特征由各種數(shù)據(jù)類型組成。例如,建造年份用整數(shù)表示,屋頂類型用離散的分類分配表示,其他特征用浮點(diǎn)數(shù)表示。這就是現(xiàn)實(shí)使事情復(fù)雜化的地方:例如,一些數(shù)據(jù)完全缺失,缺失值簡(jiǎn)單地標(biāo)記為“na”。每個(gè)房子的價(jià)格僅包含在訓(xùn)練集中(畢竟這是一場(chǎng)比賽)。我們希望對(duì)訓(xùn)練集進(jìn)行分區(qū)以創(chuàng)建驗(yàn)證集,但我們只能在將預(yù)測(cè)上傳到 Kaggle 后才能在官方測(cè)試集上評(píng)估我們的模型。圖 5.7.2有下載數(shù)據(jù)的鏈接。
首先,我們將pandas
使用我們?cè)?/font>第 2.2 節(jié)中介紹的方法讀入和處理數(shù)據(jù)。為了方便起見(jiàn),我們可以下載并緩存 Kaggle 住房數(shù)據(jù)集。如果與此數(shù)據(jù)集對(duì)應(yīng)的文件已存在于緩存目錄中并且其 SHA-1 匹配sha1_hash
,我們的代碼將使用緩存文件以避免因冗余下載而阻塞您的互聯(lián)網(wǎng)。
class KaggleHouse(d2l.DataModule):
def __init__(self, batch_size, train=None, val=None):
super().__init__()
self.save_hyperparameters()
if self.train is None:
self.raw_train = pd.read_csv(d2l.download(
d2l.DATA_URL + 'kaggle_house_pred_train.csv', self.root,
sha1_hash='585e9cc93e70b39160e7921475f9bcd7d31219ce'))
self.raw_val = pd.read_csv(d2l.download(
d2l.DATA_URL + 'kaggle_house_pred_test.csv', self.root,
sha1_hash='fa19780a7b011d9b009e8bff8e99922a8ee2eb90'))
訓(xùn)練數(shù)據(jù)集包含 1460 個(gè)示例、80 個(gè)特征和 1 個(gè)標(biāo)簽,而驗(yàn)證數(shù)據(jù)包含 1459 個(gè)示例和 80 個(gè)特征。
Downloading ../data/kaggle_house_pred_train.csv from http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_train.csv...
Downloading ../data/kaggle_house_pred_test.csv from http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_test.csv...
(1460, 81)
(1459, 80)
Downloading ../data/kaggle_house_pred_train.csv from http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_train.csv...
Downloading ../data/kaggle_house_pred_test.csv from http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_test.csv...
(1460, 81)
(1459, 80)
Downloading ../data/kaggle_house_pred_train.csv from http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_train.csv...
Downloading ../data/kaggle_house_pred_test.csv from http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_test.csv...
(1460, 81)
(1459, 80)
Downloading ../data/kaggle_house_pred_train.csv from http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_train.csv...
Downloading ../data/kaggle_house_pred_test.csv from http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_test.csv...
(1460, 81)
(1459, 80)
5.7.4. 數(shù)據(jù)預(yù)處理
我們來(lái)看看前四個(gè)和最后兩個(gè)特征以及前四個(gè)示例中的標(biāo)簽 (SalePrice)。
Id MSSubClass MSZoning LotFrontage SaleType SaleCondition SalePrice
0 1 60 RL 65.0 WD Normal 208500
1 2 20 RL 80.0 WD Normal 181500
2 3 60 RL 68.0 WD Normal 223500
3 4 70 RL 60.0 WD Abnorml 140000
Id MSSubClass MSZoning LotFrontage SaleType SaleCondition SalePrice
0 1 60 RL 65.0 WD Normal 208500
1 2 20 RL 80.0 WD Normal 181500
2 3 60 RL 68.0 WD Normal 223500
3 4 70 RL 60.0 WD Abnorml 140000
評(píng)論
查看更多