自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

15年軟件架構(gòu)師經(jīng)驗(yàn)總結(jié):在ML領(lǐng)域,初學(xué)者踩過的五個(gè)坑

人工智能 新聞
如果你要構(gòu)建你的第一個(gè)模型,請注意并避免這些問題。

數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)正變得越來越流行,這個(gè)領(lǐng)域的人數(shù)每天都在增長。這意味著有很多數(shù)據(jù)科學(xué)家在構(gòu)建他們的第一個(gè)機(jī)器學(xué)習(xí)模型時(shí)沒有豐富的經(jīng)驗(yàn),而這也是錯(cuò)誤可能會(huì)發(fā)生的地方。

近日,軟件架構(gòu)師、數(shù)據(jù)科學(xué)家、Kaggle 大師 Agnis Liukis 撰寫了一篇文章,他在文中談了談在機(jī)器學(xué)習(xí)中最常見的一些初學(xué)者錯(cuò)誤的解決方案,以確保初學(xué)者了解并避免它們。

圖片

?

Agnis Liukis 擁有超過 15 年的軟件架構(gòu)和開發(fā)經(jīng)驗(yàn),他熟練掌握 Java、JavaScript、Spring Boot、React.JS 和 Python 等語言。此外,Liukis 還對數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)感興趣,他多次參加 Kaggle 比賽并取得好成績,已達(dá)到 Kaggle 比賽大師級別。

以下為文章內(nèi)容:

在機(jī)器學(xué)習(xí)領(lǐng)域,這 5 個(gè)坑,你踩過嗎?

1、在需要的地方?jīng)]有使用數(shù)據(jù)歸一化(data normalization)

對數(shù)據(jù)進(jìn)行歸一化操作,然后獲取特征,并將其輸入到模型中,讓模型做出預(yù)測,這種方法是很容易的。但在某些情況下,這種簡單方法的結(jié)果可能會(huì)讓人失望,因?yàn)樗鄙僖粋€(gè)非常重要的部分。

一些類型的模型需要數(shù)據(jù)歸一化,如線性回歸、經(jīng)典神經(jīng)網(wǎng)絡(luò)等。這類模型使用特征值去乘訓(xùn)練值的權(quán)重。在非歸一化特征的情況下,一個(gè)特征值的可能范圍可能不同于另一個(gè)特征值的可能范圍。

假設(shè)一個(gè)特征的值在 [0,0.001] 范圍內(nèi),另一個(gè)特征的值在 [100000,200000] 范圍內(nèi)。對于使兩個(gè)特征同等重要的模型,第一個(gè)特征的權(quán)重將比第二個(gè)特征的權(quán)重大 1 億倍。巨大的權(quán)重可能會(huì)給模型帶來嚴(yán)重問題,比如存在一些異常值的時(shí)候。此外,估計(jì)各種特征的重要性變得困難,因?yàn)闄?quán)重大可能意味著特征很重要,但也可能只是意味著其特征值很小。

歸一化后,所有特征的值都在相同的范圍內(nèi),通常為 [0,1] 或 [-1,1]。在這種情況下,權(quán)重將在相似的范圍內(nèi),并與每個(gè)特征的實(shí)際重要性密切對應(yīng)。

總的來說,在需要的地方使用數(shù)據(jù)歸一化將產(chǎn)生更好、更準(zhǔn)確的預(yù)測。

2、認(rèn)為特征越多越好

有人可能會(huì)認(rèn)為加入所有特征是一個(gè)好主意,認(rèn)為模型會(huì)自動(dòng)選擇并使用最好的特征。實(shí)際上,這種想法很難成真。

模型的特征越多,過擬合的風(fēng)險(xiǎn)越大。即使在完全隨機(jī)的數(shù)據(jù)中,模型也能夠找到一些特征(信號),盡管有時(shí)較弱,有時(shí)較強(qiáng)。當(dāng)然,隨機(jī)噪聲中沒有真實(shí)信號。但如果我們有足夠多的噪聲列,則該模型有可能根據(jù)檢測到的故障信號使用其中的一部分。當(dāng)這種情況發(fā)生時(shí),模型預(yù)測質(zhì)量將會(huì)降低,因?yàn)樗鼈円欢ǔ潭壬匣陔S機(jī)噪聲。

現(xiàn)在有許多技術(shù)幫助我們進(jìn)行特征選擇。但你要記住,你需要解釋你擁有的每一個(gè)特征,以及為什么這個(gè)特征會(huì)幫助你的模型。

3. 在需要外推的情況下,使用基于樹的模型

基于樹的模型易于使用,功能強(qiáng)大,這也是其受歡迎的原因。然而,在某些情況下,使用基于樹的模型可能是錯(cuò)誤的。

基于樹的模型無法外推,這些模型的預(yù)測值永遠(yuǎn)不會(huì)大于訓(xùn)練數(shù)據(jù)中的最大值,而且在訓(xùn)練中也永遠(yuǎn)不會(huì)輸出比最小值更小的預(yù)測值。

在某些任務(wù)中,外推能力可能非常重要。例如,如果該模型預(yù)測股票價(jià)格,那么未來股票價(jià)格可能會(huì)比以往任何時(shí)候都高。在這種情況下,基于樹的模型將無法直接使用,因?yàn)樗鼈兊念A(yù)測幾乎會(huì)超過最高歷史價(jià)格。

這個(gè)問題有多種解決方案,一種解決方案是預(yù)測變化或差異,而不是直接預(yù)測價(jià)值。另一種解決方案是為此類任務(wù)使用不同類型的模型。線性回歸或神經(jīng)網(wǎng)絡(luò)就可以進(jìn)行外推。

4、在不需要的地方使用數(shù)據(jù)歸一化

之前文章談到了數(shù)據(jù)歸一化的必要性,但情況并非總是如此,基于樹的模型不需要數(shù)據(jù)歸一化。神經(jīng)網(wǎng)絡(luò)可能也不需要明確的歸一化,因?yàn)橛行┚W(wǎng)絡(luò)內(nèi)部已經(jīng)包含歸一化層,例如 Keras 庫的 BatchNormalization 操作。

在某些情況下,即使是線性回歸也可能不需要數(shù)據(jù)歸一化,這是指所有特征都已處于類似的值范圍,并且具有相同的含義。例如,如果模型適用于時(shí)間序列數(shù)據(jù),并且所有特征都是同一參數(shù)的歷史值。

5. 在訓(xùn)練集和驗(yàn)證集 / 測試集之間泄漏信息

造成數(shù)據(jù)泄漏比人們想象的要容易,考慮以下代碼段:

圖片

?數(shù)據(jù)泄漏的示例特性

實(shí)際上,這兩種特征(sum_feature 和 diff_feature)都不正確。它們正在泄漏信息,因?yàn)樵诓鸱值接?xùn)練集 / 測試集后,具有訓(xùn)練數(shù)據(jù)的部分將包含來自測試的一些信息。這將導(dǎo)致更高的驗(yàn)證分?jǐn)?shù),但當(dāng)應(yīng)用于實(shí)際的數(shù)據(jù)模型時(shí),性能會(huì)更差。

正確的方法是首先將訓(xùn)練集 / 測試集分開,然后才應(yīng)用特征生成功能。通常,分別處理訓(xùn)練集和測試集是一種很好的特征工程模式。

在某些情況下,可能需要在兩者之間傳遞一些信息 —— 例如,我們可能希望在測試集和訓(xùn)練集上使用相同的 StandardScaler。

總而言之,從錯(cuò)誤中吸取教訓(xùn)是件好事,希望上述所提供的錯(cuò)誤示例能幫助到你。

責(zé)任編輯:張燕妮 來源: 機(jī)器之心
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號