官术网_书友最值得收藏!

4.3 把數(shù)據(jù)集劃分為獨(dú)立的訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集

在第1章和第3章中,我們簡要地介紹了把數(shù)據(jù)集劃分成獨(dú)立的訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集的概念。記住,比較預(yù)測值與測試數(shù)據(jù)集的真值,可以理解為對模型所做的無偏置性能評估,然后再將其放到現(xiàn)實(shí)世界。本節(jié)將創(chuàng)建一個(gè)新數(shù)據(jù)集,即葡萄酒(Wine)數(shù)據(jù)集。在對數(shù)據(jù)集進(jìn)行預(yù)處理后,我們再進(jìn)一步探索用于數(shù)據(jù)集降維的不同特征選擇技術(shù)。

葡萄酒數(shù)據(jù)集是另一個(gè)開源數(shù)據(jù)集,讀者可以從UCI的機(jī)器學(xué)習(xí)資源庫(https://archive.ics.uci.edu/ml/datasets/Wine)獲得;該數(shù)據(jù)集包含了有13個(gè)特征的178個(gè)葡萄酒樣本,從不同角度對各個(gè)化學(xué)特性進(jìn)行了描述。

008-01

獲取葡萄酒數(shù)據(jù)集

讀者可以在本書的代碼包(https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data)中找到葡萄酒數(shù)據(jù)集(以及本書用到的其他數(shù)據(jù)集),以備在脫機(jī)工作或者UCI服務(wù)器暫時(shí)不可用時(shí)使用,如果要從本地目錄加載葡萄酒數(shù)據(jù)集,可以將下面這行

093-01

替換為:

093-02

可以直接用pandas庫從UCI的機(jī)器學(xué)習(xí)資源庫讀入開源的葡萄酒數(shù)據(jù)集:

093-03

表4-1中列出了葡萄酒數(shù)據(jù)集的13個(gè)特征,描述178個(gè)葡萄酒樣本的化學(xué)性質(zhì)。

表4-1 葡萄酒數(shù)據(jù)集的13個(gè)化學(xué)特征

093-04

這些樣本來自1、23類葡萄酒,分別對應(yīng)意大利同一地區(qū)種植的三種不同品種的葡萄,如數(shù)據(jù)集摘要中所描述的那樣(https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.names)。

把數(shù)據(jù)集隨機(jī)劃分成獨(dú)立的訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集的一個(gè)便捷方法是,從scikit-learn的model_selection子模塊調(diào)用train_test_split函數(shù):

094-01

首先把NumPy數(shù)組的1~13特征列賦予變量X;把第一列的分類標(biāo)簽賦予變量y。調(diào)用train_test_split函數(shù)把xy隨機(jī)劃分成獨(dú)立的訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集。通過設(shè)置test_size = 0.3,把30%的葡萄酒樣本分配給X_testy_test,把余下70%的樣本分配給X_trainy_train。把分類標(biāo)簽數(shù)組y作為參數(shù)提供給stratify,確保訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集擁有與原始數(shù)據(jù)集相同的分類比例。

008-01

選擇劃分訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集的合適比例

把數(shù)據(jù)集分為訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集的目的是要確保機(jī)器學(xué)習(xí)算法可以從中獲得有價(jià)值的信息。因此沒必要將太多信息分配給測試數(shù)據(jù)集。然而,測試數(shù)據(jù)集越小,泛化誤差的估計(jì)就越不準(zhǔn)確。將數(shù)據(jù)集分為訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集就是對兩者的平衡。在實(shí)踐中,根據(jù)初始數(shù)據(jù)集的規(guī)模,最常用的劃分比例為60:40、70:30或80:20。然而,對于大規(guī)模數(shù)據(jù)集,把訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集的劃分比例定為90:10或99:1也是常見和適當(dāng)?shù)淖龇?。例如,如果?shù)據(jù)集包含超過100000個(gè)訓(xùn)練樣本,則可以僅保留10000個(gè)樣本進(jìn)行測試,以獲得對泛化性能的良好估計(jì)。更多的信息和圖示可以查閱我寫的“Model evaluation, model selection, and algorithm selection in machine learning”,該文章可從https://arxiv.org/pdf/1811.12808.pdf免費(fèi)獲得。

此外,在模型訓(xùn)練和評估后,通常不會(huì)丟棄分配的測試數(shù)據(jù)。普遍的做法是在整個(gè)數(shù)據(jù)集上保留一個(gè)分類器,以提高模型的預(yù)測性能。雖然我們通常推薦這種方法,但是它有可能會(huì)導(dǎo)致較差的泛化性能,例如當(dāng)數(shù)據(jù)集的規(guī)模很小而且測試數(shù)據(jù)集中包含異常值的時(shí)候。此外,在整個(gè)數(shù)據(jù)集上重新擬合模型后,我們將沒有任何獨(dú)立的數(shù)據(jù)來評估性能。

主站蜘蛛池模板: 潞城市| 新龙县| 顺昌县| 秦皇岛市| 敖汉旗| 临汾市| 吴堡县| 秦皇岛市| 石狮市| 白河县| 通江县| 衢州市| 犍为县| 满城县| 邻水| 红河县| 嵊泗县| 常宁市| 衡南县| 喜德县| 昌图县| 库车县| 三亚市| 嘉定区| 荔浦县| 余干县| 任丘市| 扶余县| 拉萨市| 沂水县| 文成县| 渝中区| 水富县| 民乐县| 岐山县| 无极县| 鱼台县| 长垣县| 双峰县| 禄丰县| 洪江市|