博客專欄

EEPW首頁 > 博客 > 獨家 | 小數(shù)據(jù)集也能大有作為:特征工程的妙用

獨家 | 小數(shù)據(jù)集也能大有作為:特征工程的妙用

發(fā)布人:數(shù)據(jù)派THU 時間:2023-04-24 來源:工程師 發(fā)布文章
特征工程可以彌補數(shù)據(jù)的不足。


圖片圖片源自Unsplash,由Thomas T上傳
在快速發(fā)展的人工智能 (AI) 世界中,數(shù)據(jù)已成為無數(shù)創(chuàng)新應(yīng)用和解決方案的命脈。實際上,大型數(shù)據(jù)集通常被認(rèn)為是訓(xùn)練強大且準(zhǔn)確的 AI 模型的支柱。但是,當(dāng)手頭的數(shù)據(jù)集相對較小時該怎么辦呢?在本文中,我們將探討特征工程在克服小數(shù)據(jù)集的局限性方面所起到的關(guān)鍵性作用。
玩具數(shù)據(jù)集
我們的旅程將從創(chuàng)建數(shù)據(jù)集開始。在這個例子中,我們將進行簡單的信號分類。該數(shù)據(jù)集有兩個類別:頻率為1的正弦波屬于類別0,頻率為2的正弦波屬于類別1。信號生成代碼如下所示。該代碼生成一個正弦波,引入加性高斯噪聲,并隨機化相位偏移。由于添加了噪聲和相位偏移,我們獲得了多樣的信號,分類問題變得尤為重要(經(jīng)過正確的特征工程仍然是很容易辦到的)。
圖片圖片類別0信號的可視化圖片類別1信號的可視化
深度學(xué)習(xí)性能
用作信號處理的最先進模型是卷積神經(jīng)網(wǎng)絡(luò)(CNN)。下面我們就來動手創(chuàng)建一個。這個特定的網(wǎng)絡(luò)包含兩個一維卷積層和兩個全連接層。代碼如下所示。
圖片
CNN模型是可以用來處理原始信號的。不過,由于其參數(shù)龐大的架構(gòu),這類模型往往需要大量的數(shù)據(jù)。然而我們先假設(shè)有足夠的數(shù)據(jù)來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。我使用信號生成創(chuàng)建了一個包含 200 個信號的數(shù)據(jù)集。每個實驗重復(fù)十次以減少隨機變量的干擾。代碼如下所示:
圖片圖片
CNN獲得了 99.2% 的測試準(zhǔn)確率,這對于最先進的模型來說是意料之中的。但是,這個指標(biāo)是針對這些訓(xùn)練成功的實驗運行獲得的。我所說的“成功”是指在訓(xùn)練數(shù)據(jù)集上的準(zhǔn)確率超過 60%。在這個例子中,CNN的權(quán)重初始化對于訓(xùn)練來說是成敗的關(guān)鍵,有時會出現(xiàn)CNN的權(quán)重初始化隨機性不好而出現(xiàn)問題的情況。訓(xùn)練的成功率為70%。
現(xiàn)在,讓我們看看數(shù)據(jù)集很小的情況會發(fā)生什么。我將數(shù)據(jù)集中的信號量減少到 20 個。結(jié)果,CNN 獲得了 71.4% 的測試準(zhǔn)確率,準(zhǔn)確率下降了 27.8 個百分點。這是不可接受的。然而,現(xiàn)在怎么辦?要使用最先進的模型,需要數(shù)據(jù)集更大。在業(yè)界應(yīng)用中,獲得更多數(shù)據(jù)要么不可行,要么至少非常昂貴。我們應(yīng)該放棄這個項目并繼續(xù)前進嗎?
不。當(dāng)數(shù)據(jù)集很小時,特征就是你的朋友。
特征工程
這個特定的例子涉及基于信號頻率的分類。因此,我們可以應(yīng)用傳統(tǒng)的傅里葉變換。傅里葉變換將信號分解為一系列以頻率和振幅為參數(shù)的正弦波。因此,我們可以使用傅里葉變換來檢查每個頻率在形成信號中的重要性。這樣的數(shù)據(jù)表示可以足夠簡化任務(wù),使得小數(shù)據(jù)集就足夠了。此外,傅里葉變換對數(shù)據(jù)進行結(jié)構(gòu)化處理,以便我們可以使用更簡單的模型,例如隨機森林分類器。
圖片
將信號轉(zhuǎn)換為頻譜的可視化。左側(cè)是類別 0 的信號頻譜,右側(cè)是類別 1 的信號頻譜。圖表中使用了對數(shù)刻度以便獲得更好的可視化效果。本例中使用的模型對信號進行線性解釋。
信號變換和訓(xùn)練隨機森林分類器的代碼如下所示:
圖片
隨機森林分類器在 20 和 200 個信號長度的數(shù)據(jù)集上實現(xiàn)了 100% 的測試準(zhǔn)確率,每個數(shù)據(jù)集的訓(xùn)練成功率也是 100%。因此,我們比CNN獲得了更好的結(jié)果,而且所需的數(shù)據(jù)量更少,這一切都歸功于特征工程。
過擬合的風(fēng)險
雖然特征工程是一個強大的工具,但必須謹(jǐn)記從輸入數(shù)據(jù)中減少不必要的特征。輸入向量中特征越多,過擬合的風(fēng)險就越高,特別是在小數(shù)據(jù)集中。每個不必要的特征都引入了隨機波動的風(fēng)險,使機器學(xué)習(xí)模型認(rèn)為這可能是重要的模式。數(shù)據(jù)集中數(shù)據(jù)越少,隨機波動產(chǎn)生不存在于現(xiàn)實世界中的相關(guān)性的風(fēng)險就越高。
其中一個可能有助于修剪過大特征集合的辦法是使用搜索啟發(fā)式算法,例如遺傳算法。特征修剪可以被描述為一個任務(wù),即找到最少的特征數(shù)量,以便成功訓(xùn)練機器學(xué)習(xí)模型。這可以通過創(chuàng)建長度等于特征數(shù)據(jù)大小的二進制向量來編碼。其中,“0”表示該特征不在數(shù)據(jù)集中,“1”表示該特征存在。然后,該向量的適應(yīng)性函數(shù)是在修剪后的數(shù)據(jù)集上達到的機器學(xué)習(xí)模型的準(zhǔn)確率之和,加上向量中零的數(shù)量并按足夠權(quán)重縮小。
這只是去除不必要特征的諸多解決方案之一,但是它非常強大。
結(jié)論
盡管本文提供的例子相對簡單,但它展示了業(yè)界應(yīng)用人工智能系統(tǒng)時會遇到的典型問題。目前,深度神經(jīng)網(wǎng)絡(luò)在提供足夠的數(shù)據(jù)情況下幾乎可以做到我們想要的一切。然而現(xiàn)實情況是,數(shù)據(jù)量通常很少,很昂貴。 因此,人工智能的業(yè)界應(yīng)用通常涉及對特征進行廣泛的工程化處理,以簡化問題,并從而減少訓(xùn)練模型所需的數(shù)據(jù)量。
感謝閱讀。文中案例的代碼可在以下鏈接中訪問:https://github.com/aimagefrombydgoszcz/Notebooks/blob/main/when_dataset_is_small_features_are_your_friend.ipynb
除特別注明外,所有圖片均由作者提供。
原文標(biāo)題:When the dataset is small, features are your friends原文鏈接:https://towardsdatascience.com/when-the-dataset-is-small-features-are-your-friends-6e7f8dcc819e


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉