博客專欄

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

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

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


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


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 若羌县| 琼海市| 清水河县| 宁南县| 昔阳县| 尼勒克县| 炎陵县| 南投市| 乌拉特中旗| 和平区| 海盐县| 特克斯县| 沧州市| 建瓯市| 方城县| 霍邱县| 进贤县| 东至县| 忻州市| 察哈| 泸溪县| 凌源市| 黎平县| 广南县| 绥棱县| 黑水县| 罗源县| 屏东县| 罗山县| 吕梁市| 永丰县| 富源县| 玉环县| 安化县| 油尖旺区| 沈丘县| 邵阳市| 施甸县| 陵水| 离岛区| 文安县|