模型訓(xùn)練前置處理之——數(shù)據(jù)預(yù)處理 原創(chuàng)
“ 數(shù)據(jù)預(yù)處理是一項(xiàng)復(fù)雜且重要的過程,是神經(jīng)網(wǎng)絡(luò)的核心工作之一?!?/strong>
在神經(jīng)網(wǎng)絡(luò)技術(shù)中,有幾個(gè)比較重要的環(huán)節(jié),其中就有神經(jīng)網(wǎng)絡(luò)模型的設(shè)計(jì);但在此之前還有一個(gè)很重要的功能就是數(shù)據(jù)集的整理;一個(gè)高質(zhì)量的數(shù)據(jù)集高性能神經(jīng)網(wǎng)絡(luò)模型的基礎(chǔ)。
但怎么才能打造一個(gè)合格的數(shù)據(jù)集,以及怎么打造一個(gè)合格的數(shù)據(jù)集?而這就是神經(jīng)網(wǎng)絡(luò)模型的數(shù)據(jù)處理部分。
數(shù)據(jù)預(yù)處理
不論是在傳統(tǒng)的數(shù)據(jù)分析領(lǐng)域,亦或者在神經(jīng)網(wǎng)絡(luò)模型領(lǐng)域;數(shù)據(jù)處理都是其中必不可少,且相當(dāng)重要的一環(huán);但怎么進(jìn)行數(shù)據(jù)處理,以及數(shù)據(jù)處理需要哪些步驟,以及每個(gè)步驟的作用是什么?這個(gè)可能很多人就不是很清楚了。
數(shù)據(jù)預(yù)處理的意義
在神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練過程中,數(shù)據(jù)集的質(zhì)量直接影響到模型的性能表現(xiàn);而我們?cè)谑占?xùn)練數(shù)據(jù)的過程中,難免會(huì)面臨著以下幾個(gè)問題:
- 原始數(shù)據(jù)存在異常值或缺失問題
- 模型無法直接處理原始數(shù)據(jù)格式
- 數(shù)據(jù)量或維度過大以及數(shù)據(jù)冗余問題
舉例說明以上幾個(gè)問題,首先最常見的異常值與缺失問題;比如在個(gè)人信息統(tǒng)計(jì)過程中,有人的年齡填了200歲;或者家庭地址沒填等就屬于異常值和缺失問題;因?yàn)槟壳皝碚f,人不可能活到200歲,而如果是快遞這種需要郵寄地址的情況,地址缺失就是不肯接受的問題。
而模型無法處理原始數(shù)據(jù)格式,比如說計(jì)算機(jī)無法直接處理文字,圖片;只能把文字,圖片轉(zhuǎn)換成數(shù)字進(jìn)行處理;亦或者時(shí)間格式可能需要轉(zhuǎn)換成時(shí)間戳。
最后數(shù)據(jù)冗余問題,比如說對(duì)一個(gè)班級(jí)的學(xué)生信息進(jìn)行統(tǒng)計(jì);可能存在部分學(xué)生被重復(fù)統(tǒng)計(jì)的情況;還有一種數(shù)據(jù)冗余是可以通過其它值進(jìn)行計(jì)算;如有了商品的總價(jià)和數(shù)量就可以計(jì)算均價(jià);但在很多數(shù)據(jù)處理中,均價(jià)可能會(huì)直接計(jì)算處理,如交易報(bào)表;但在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,可能就不需要均價(jià)這個(gè)字段。
而這就是絕大部分?jǐn)?shù)據(jù)所存在的問題,這也就直接導(dǎo)致原始數(shù)據(jù)無法直接拿來使用;必須經(jīng)過一定的處理才能滿足神經(jīng)網(wǎng)絡(luò)的訓(xùn)練需求。
因此,數(shù)據(jù)預(yù)處理需要經(jīng)過哪些步驟呢?對(duì)數(shù)據(jù)預(yù)處理來說,主要需要經(jīng)過以下幾個(gè)步驟:
- 數(shù)據(jù)清洗
- 數(shù)據(jù)轉(zhuǎn)換
- 數(shù)據(jù)壓縮
數(shù)據(jù)清洗就是需要清洗掉原始數(shù)據(jù)中存在的一些異常值,空值等;比較常見的清洗對(duì)象主要有以下幾個(gè)特征:
- 數(shù)據(jù)重復(fù)
- 數(shù)據(jù)雜亂
- 數(shù)據(jù)不完整
- 數(shù)據(jù)格式不一致
- 數(shù)據(jù)偏斜
- 數(shù)據(jù)冗余
因此,數(shù)據(jù)處理的第一步一般都是數(shù)據(jù)清洗;把一些非法數(shù)據(jù)進(jìn)行刪除或整理。
數(shù)據(jù)清洗是數(shù)據(jù)處理的第一步,但其也有多種不同的方式;如,對(duì)非法數(shù)據(jù)直接刪除;如刪除數(shù)據(jù)中的重復(fù),空值,不完整數(shù)據(jù)等;其次,也可以對(duì)數(shù)據(jù)進(jìn)行填充處理,如對(duì)于不完整的數(shù)據(jù)可以使用平均值或者固定值進(jìn)行填充。
舉例來說,你統(tǒng)計(jì)一個(gè)學(xué)校的學(xué)生數(shù)據(jù);而很多學(xué)生的信息填寫并不完整,存在大量的缺失值。這時(shí)直接刪除缺失數(shù)據(jù)就不太合適了,因?yàn)閯h除之后可能這次統(tǒng)計(jì)就沒有意義了。因此,這時(shí)就可以對(duì)一些不重要的數(shù)據(jù)進(jìn)行填充,比如你需要統(tǒng)計(jì)的是學(xué)生的年齡分布,這時(shí)學(xué)生的地址就可以使用固定值進(jìn)行填充。
而不論是數(shù)據(jù)清洗,還是數(shù)據(jù)轉(zhuǎn)換都要根據(jù)不同的需求場(chǎng)景,選擇合適的處理方式,而不是全部進(jìn)行統(tǒng)一處理。
而數(shù)據(jù)轉(zhuǎn)換可能涉及到數(shù)據(jù)的格式轉(zhuǎn)換,以及形態(tài)的變換;如上圖所示,年齡和收入應(yīng)該都統(tǒng)一采用數(shù)值類型,而不應(yīng)該出現(xiàn)字符串的形式;而入職日期的格式也不完全相同;這種就需要把數(shù)據(jù)格式轉(zhuǎn)換成統(tǒng)一的類型。
而針對(duì)文本數(shù)據(jù)或圖像數(shù)據(jù),也需要特定的格式變換;如文本數(shù)據(jù)需要采用數(shù)據(jù)編碼技術(shù)或者文本向量化的方式,把文本數(shù)據(jù)轉(zhuǎn)換成模型能夠識(shí)別的向量數(shù)據(jù)。
對(duì)于圖像數(shù)據(jù)也是如此,由于圖像的來源不同,因此圖像數(shù)據(jù)一般需要調(diào)整大小和通道數(shù),像素歸一化處理等;比如MINST手寫數(shù)字的數(shù)據(jù)集就是統(tǒng)一的28*28固定大小的手寫數(shù)字圖片。
在神經(jīng)網(wǎng)絡(luò)技術(shù)的學(xué)習(xí)過程中,很多人都只重視神經(jīng)網(wǎng)絡(luò)模型本身,而忽略了數(shù)據(jù)的預(yù)處理過程。數(shù)據(jù)預(yù)處理是一項(xiàng)復(fù)雜并且繁重的工作,數(shù)據(jù)的質(zhì)量間接決定了模型的性能。
而且,很多模型廠商頭疼的一件事就是,從哪里去找到足夠且合適的訓(xùn)練數(shù)據(jù)。
本文轉(zhuǎn)載自公眾號(hào)AI探索時(shí)代 作者:DFires
