Python大規(guī)模機(jī)器學(xué)習(xí)》—1.1.3使用Python進(jìn)行向上擴(kuò)展">《Python大規(guī)模機(jī)器學(xué)習(xí)》—1.1.3使用Python進(jìn)行向上擴(kuò)展
738
2025-04-01
2.4.5????使用SGD
作為本章結(jié)論,我們將實(shí)現(xiàn)兩個(gè)示例:一個(gè)為基于森林覆蓋數(shù)據(jù)的分類,另一個(gè)為基于共享單車數(shù)據(jù)集的回歸。我們將看到如何將先前關(guān)于響應(yīng)和特征分布的見(jiàn)解付諸實(shí)踐,以及如何針對(duì)每個(gè)問(wèn)題使用最佳的驗(yàn)證策略。
從分類問(wèn)題入手,有兩個(gè)值得注意的方面需要考慮。作為一個(gè)多類問(wèn)題,首先我們注意到數(shù)據(jù)庫(kù)存在某種排序,并且類沿著實(shí)例流分布。作為第一步,我們將使用在2.2.5節(jié)中定義的ram_shuffle函數(shù)來(lái)重新排列數(shù)據(jù):
由于在沒(méi)有太多磁盤使用量的情況下將數(shù)據(jù)行壓縮到內(nèi)存中并對(duì)其打亂,因此能快速獲得新的工作文件。以下代碼將以邏輯損失(等效于邏輯回歸)訓(xùn)練SGDClassifier,以便其利用我們?cè)谥皩?duì)數(shù)據(jù)集中存在類的知識(shí)。forest_type列表包含類的所有代碼,并且每次(盡管只有一個(gè)或第一個(gè)就足夠了)將其傳遞給SGD學(xué)習(xí)器的partial_fit方法。
為了進(jìn)行驗(yàn)證,我們定義了一個(gè)基于200 000個(gè)觀察實(shí)例的冷啟動(dòng)。每十個(gè)中就有一個(gè)不被訓(xùn)練而用于驗(yàn)證。即使我們要多次傳遞數(shù)據(jù),此模式也允許重現(xiàn)性;每次傳遞時(shí),相同實(shí)例排除在樣本外,以便測(cè)試并允許創(chuàng)建驗(yàn)證曲線。這樣能驗(yàn)證多次測(cè)試對(duì)相同數(shù)據(jù)的影響。
保持模式也伴隨著一個(gè)漸進(jìn)式驗(yàn)證,因此冷啟動(dòng)后的每個(gè)病例在訓(xùn)練前都要進(jìn)行評(píng)估。盡管漸進(jìn)式驗(yàn)證能提供感興趣的反饋,但這種方法僅適用于第一次通過(guò);實(shí)際上,初始傳遞后,所有觀察(但在保持模式中的觀察)都將成為樣本實(shí)例。本示例中只進(jìn)行一次傳遞。
作為提醒,數(shù)據(jù)集有581 012個(gè)實(shí)例,使用SGD進(jìn)行流處理和建模可能時(shí)間有點(diǎn)長(zhǎng)(對(duì)于單臺(tái)計(jì)算機(jī)來(lái)說(shuō)這是一個(gè)相當(dāng)大的問(wèn)題)。雖然我們?cè)O(shè)置了限制器來(lái)觀察250 000個(gè)實(shí)例,但你的計(jì)算機(jī)將運(yùn)行大約15~20分鐘才能獲得結(jié)果:
在第二個(gè)示例中,我們將根據(jù)一系列天氣和時(shí)間信息來(lái)預(yù)測(cè)華盛頓的共享自行車數(shù)量。考慮到數(shù)據(jù)集的歷史順序,我們不對(duì)其打亂,而是把這個(gè)問(wèn)題當(dāng)作一個(gè)時(shí)間序列來(lái)處理。我們的驗(yàn)證策略是在已經(jīng)看到一定數(shù)量的示例后測(cè)試結(jié)果,以便從那個(gè)時(shí)刻向前復(fù)制要預(yù)測(cè)的不確定性。
有趣的是,有些特征已分類,因此我們使用Scikit-learn中的FeatureHasher類來(lái)表示擁有字典中記錄的類別,作為由變量名和類別代碼組成的聯(lián)合字符串。字典中為每個(gè)這樣的鍵的分配的值都呈唯一的,以便類似于哈希技巧這類方法將創(chuàng)建的稀疏向量中的二進(jìn)制變量:
機(jī)器學(xué)習(xí) Python
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。