特征抽取方法、機(jī)器學(xué)習(xí)方法及其裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明總體地涉及信息技術(shù)領(lǐng)域,更具體地涉及特征抽取方法、機(jī)器學(xué)習(xí)方法以 及對(duì)應(yīng)的裝置。
【背景技術(shù)】
[0002] 在數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)等信息技術(shù)領(lǐng)域,所處理的對(duì)象為數(shù)據(jù),在對(duì)浩瀚的數(shù)據(jù)進(jìn) 行處理之前,通常都要對(duì)數(shù)據(jù)進(jìn)行特征抽取。
[0003] 特征可作為數(shù)據(jù)處理的原材料,簡(jiǎn)單說(shuō)來(lái),每條數(shù)據(jù)記錄可包括多個(gè)字段,而特征 可指示各字段本身、或字段的局部、或字段的組合、或字段的變換或其它處理結(jié)果等,以幫 助更好地反映數(shù)據(jù)分布的內(nèi)在關(guān)聯(lián)與潛在含義。以數(shù)據(jù)挖掘領(lǐng)域作為示例,特征是機(jī)器學(xué) 習(xí)系統(tǒng)的原材料,對(duì)最終模型具有顯著的影響,其中,高效、準(zhǔn)確地提取特征能夠幫助學(xué)習(xí) 過(guò)程更好地提煉數(shù)據(jù)規(guī)律,從多個(gè)角度透析數(shù)據(jù)分布中的內(nèi)在關(guān)聯(lián)與潛在涵義。這個(gè)過(guò)程 在機(jī)器學(xué)習(xí)中稱(chēng)為特征工程。特征工程的產(chǎn)出作為機(jī)器學(xué)習(xí)的素材,其質(zhì)量好壞直接決定 了機(jī)器學(xué)習(xí)問(wèn)題刻畫(huà)的準(zhǔn)確性,進(jìn)而影響模型的優(yōu)劣。
[0004] 實(shí)際上,不限于機(jī)器學(xué)習(xí)領(lǐng)域中的特征工程,在現(xiàn)有的任何數(shù)據(jù)處理系統(tǒng)中,通常 都需要進(jìn)行特征抽取,而為了從各字段內(nèi)容中提取出相應(yīng)的特征,普遍需要程序員針對(duì)每 一類(lèi)特征編寫(xiě)可執(zhí)行的程序代碼來(lái)進(jìn)行特征抽取。
[0005] 例如,當(dāng)希望獲取給定數(shù)據(jù)("data")中每條記錄的時(shí)間字段中的年份信息時(shí),可 以通過(guò)執(zhí)行下面一段python程序來(lái)實(shí)現(xiàn)
[0006] #param:list-data stores records of fields as list of dictionary
[0007] #param:string-'YYYY-MM-DD'formatted date field
[0008] #return:list-Year sequence for each record
[0009] def getYearOf(data):
[0010] timeFields = [rec['time']for rec in data]
[0011] years =map(lambda x:x.split('-')[0],timeFields)
[0012] return years
[0013] 在上述程序中,定義了一段用于從數(shù)據(jù)源(data)中原樣抽取各個(gè)數(shù)據(jù)記錄(rec) 的年份(year)字段作為年份特征的代碼,其中,首先從數(shù)據(jù)源的記錄中提取時(shí)間字段,并按 照時(shí)間字段的特定格式(yyyy-mm-dd)提取出以分割出的yyyy (即,下標(biāo)為0的部分),將 其映射到特征years,并返回提取的年份值。
[0014] 可見(jiàn),該段程序?qū)τ跀?shù)據(jù)(年份字段)的格式以及特征抽取的輸出都做了較強(qiáng)的約 束。即,該段特征抽取代碼是針對(duì)特定格式的數(shù)據(jù)和特定的輸出定制的。因此,一般地,如果 給定的數(shù)據(jù)的數(shù)據(jù)格式不同,和/或要取得的特征輸出不同,那么都需要針對(duì)其具體格式、 所使用的算法來(lái)編寫(xiě)內(nèi)容迥異的代碼。即便僅僅數(shù)據(jù)記錄的字段輸入順序或特征輸出順序 不同,都要重新編寫(xiě)一套完全定制化的代碼。這不僅給程序員帶來(lái)繁復(fù)的工作負(fù)擔(dān),而且也 將在程序運(yùn)行上耗費(fèi)較大的開(kāi)銷(xiāo)。鑒于實(shí)際應(yīng)用場(chǎng)景的多樣化、數(shù)據(jù)規(guī)格的多元化,這種蠻 力做法很難擴(kuò)展與復(fù)用。
[0015] 因此,現(xiàn)有的針對(duì)每種數(shù)據(jù)格式與抽取內(nèi)容開(kāi)發(fā)一套不同處理流程的思路是對(duì)問(wèn) 題規(guī)模的遍歷,結(jié)果致使特征抽取的開(kāi)發(fā)復(fù)雜度非線性增長(zhǎng),同時(shí)運(yùn)行復(fù)雜度也很難約束。
【發(fā)明內(nèi)容】
[0016] 鑒于上述情況,做出了本發(fā)明。
[0017] 根據(jù)本發(fā)明的一個(gè)方面,提供了一種針對(duì)數(shù)據(jù)記錄進(jìn)行特征抽取的方法,可以包 括:數(shù)據(jù)記錄獲取步驟,獲取數(shù)據(jù)記錄;特征抽取配置項(xiàng)獲取步驟,獲取用于限定如何從所 述數(shù)據(jù)記錄抽取預(yù)定特征的特征抽取配置項(xiàng),其中,每種預(yù)定特征的特征抽取配置項(xiàng)包括 來(lái)源字段項(xiàng)和處理方法項(xiàng),來(lái)源字段項(xiàng)用于將所述每種預(yù)定特征所涉及的數(shù)據(jù)記錄的字段 限定為來(lái)源字段,處理方法項(xiàng)用于指定對(duì)預(yù)先編程為可執(zhí)行代碼的數(shù)據(jù)處理函數(shù)的引用, 其中,所述數(shù)據(jù)處理函數(shù)用于針對(duì)由來(lái)源字段項(xiàng)限定的來(lái)源字段的字段值執(zhí)行用于抽取所 述每種預(yù)定特征的數(shù)據(jù)處理;以及特征值獲取步驟,基于特征抽取配置項(xiàng)對(duì)所述數(shù)據(jù)記錄 的字段值執(zhí)行數(shù)據(jù)處理以獲取所述預(yù)定特征的特征值。
[0018] 進(jìn)一步地,根據(jù)本發(fā)明實(shí)施例的特征抽取方法,其中,所述特征抽取配置項(xiàng)獲取步 驟可以包括:從設(shè)置了特征抽取配置項(xiàng)的配置文件讀取特征抽取配置項(xiàng)或根據(jù)用戶(hù)的輸入 操作來(lái)獲取特征抽取配置項(xiàng),其中,配置文件被存儲(chǔ)在本地或遠(yuǎn)程接收。
[0019] 進(jìn)一步地,根據(jù)本發(fā)明實(shí)施例的特征抽取方法,其中,所述特征抽取配置項(xiàng)獲取步 驟可以包括:向用戶(hù)顯示用于設(shè)置特征抽取配置項(xiàng)的界面;根據(jù)用戶(hù)在所述界面上執(zhí)行的 輸入操作來(lái)生成設(shè)置了特征抽取配置項(xiàng)的配置文件;以及從生成的配置文件中讀取特征抽 取配置項(xiàng)。
[0020] 進(jìn)一步地,根據(jù)本發(fā)明實(shí)施例的特征抽取方法,其中,用于設(shè)置特征抽取配置項(xiàng)的 界面可以為圖形用戶(hù)界面,所述圖形用戶(hù)界面可以包括用于手動(dòng)編輯配置文件的文本編輯 界面和/或用于顯示特征抽取配置項(xiàng)的內(nèi)容選項(xiàng)以供手動(dòng)選擇的選擇輸入型界面。
[0021 ]進(jìn)一步地,根據(jù)本發(fā)明實(shí)施例的特征抽取方法,其中,在所述特征抽取配置項(xiàng)獲取 步驟中,可以響應(yīng)于用戶(hù)的界面切換操作輸入在文本編輯界面和選擇輸入型界面之間切 換,在切換前界面下的特征抽取配置項(xiàng)設(shè)置結(jié)果被同步地顯示到切換后的界面下。
[0022] 進(jìn)一步地,根據(jù)本發(fā)明實(shí)施例的特征抽取方法,其中,在選擇輸入型界面中,至少 顯示有數(shù)據(jù)記錄的能夠作為來(lái)源字段的各個(gè)字段以及設(shè)置的預(yù)定特征的特征抽取配置項(xiàng)。
[0023] 進(jìn)一步地,根據(jù)本發(fā)明實(shí)施例的特征抽取方法,其中,在圖形用戶(hù)界面包括選擇輸 入型界面的情況下,向用戶(hù)顯示用于設(shè)置特征抽取配置項(xiàng)的界面的步驟可以包括:將用戶(hù) 從所述各個(gè)字段中選擇的字段顯示為設(shè)置的來(lái)源字段,在所述來(lái)源項(xiàng)字段被選擇的同時(shí), 將處理方法列表顯示在來(lái)源字段附近,并將用戶(hù)從處理方法列表中選擇的處理方法顯示為 設(shè)置的處理方法。
[0024] 進(jìn)一步地,根據(jù)本發(fā)明實(shí)施例的特征抽取方法,其中,處理方法項(xiàng)列表包括所有處 理方法且所有處理方法均處于激活狀態(tài),或者,處理方法項(xiàng)列表包括所有處理方法但只有 能夠應(yīng)用于來(lái)源字段項(xiàng)的處理方法處于激活狀態(tài),或者,處理方法項(xiàng)列表僅包括能夠應(yīng)用 于來(lái)源字段項(xiàng)的處理方法。
[0025] 進(jìn)一步地,根據(jù)本發(fā)明實(shí)施例的特征抽取方法,其中,所述每種預(yù)定特征的特征抽 取配置項(xiàng)還可以包括與所述處理方法項(xiàng)相應(yīng)的處理參數(shù)項(xiàng),所述處理參數(shù)項(xiàng)用于限定所述 數(shù)據(jù)處理函數(shù)涉及的參數(shù)。
[0026] 進(jìn)一步地,根據(jù)本發(fā)明實(shí)施例的特征抽取方法,其中,所述每種預(yù)定特征的特征抽 取配置項(xiàng)還可以包括存儲(chǔ)位置標(biāo)識(shí),用于指示與所述每種預(yù)定特征的特征值相應(yīng)的計(jì)算系 數(shù)在存儲(chǔ)器中的存儲(chǔ)區(qū)域。
[0027] 進(jìn)一步地,根據(jù)本發(fā)明實(shí)施例的特征抽取方法,其中,在所述特征值獲取步驟中, 對(duì)所述數(shù)據(jù)記錄中的各條數(shù)據(jù)記錄或由多條組成的各組數(shù)據(jù)記錄可以并行地執(zhí)行數(shù)據(jù)處 理。
[0028] 進(jìn)一步地,根據(jù)本發(fā)明實(shí)施例的特征抽取方法,其中,在所述特征值獲取步驟中, 可以由分布式計(jì)算集群來(lái)并行地執(zhí)行數(shù)據(jù)處理。
[0029] 根據(jù)本發(fā)明的另一方面,提供了一種計(jì)算機(jī)執(zhí)行的機(jī)器學(xué)習(xí)方法,可以包括:數(shù)據(jù) 記錄獲取步驟,獲取數(shù)據(jù)記錄;特征抽取配置項(xiàng)獲取步驟,獲取用于限定如何從所述數(shù)據(jù)記 錄抽取預(yù)定特征的特征抽取配置項(xiàng),其中,每種預(yù)定特征的特征抽取配置項(xiàng)包括來(lái)源字段 項(xiàng)和處理方法項(xiàng),來(lái)源字段項(xiàng)用于將所述每種預(yù)定特征所涉及的數(shù)據(jù)記錄的字段限定為來(lái) 源字段,處理方法項(xiàng)用于指定對(duì)預(yù)先編程為可執(zhí)行代碼的數(shù)據(jù)處理函數(shù)的引用,其中,所述 數(shù)據(jù)處理函數(shù)用于針對(duì)由來(lái)源字段項(xiàng)限定的來(lái)源字段的字段值執(zhí)行用于抽取所述每種預(yù) 定特征的數(shù)據(jù)處理;特征值獲取步驟,基于特征抽取配置項(xiàng)對(duì)所述數(shù)據(jù)記錄的字段值執(zhí)行 數(shù)據(jù)處理以獲取所述預(yù)定特征的特征值;樣本獲得步驟,至少部分基于所述特征值獲取步 驟獲取的特征值,形成特征向量,作為機(jī)器學(xué)習(xí)的樣本;以及機(jī)器學(xué)習(xí)步驟,基于所述樣本 進(jìn)行機(jī)器學(xué)習(xí)。
[0030] 進(jìn)一步地,根據(jù)本發(fā)明實(shí)施例的機(jī)器學(xué)習(xí)方法,其中,在所述機(jī)器學(xué)習(xí)步驟中,基 于所述樣本進(jìn)行模型訓(xùn)練、模型測(cè)試和模型應(yīng)用之中的至少一項(xiàng)。
[0031 ]根據(jù)本發(fā)明的另一方面,提供了一種針對(duì)數(shù)據(jù)記錄進(jìn)行特征抽取的計(jì)算裝置,包 括存儲(chǔ)部件和處理器,存儲(chǔ)部件中存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令集合,當(dāng)所述計(jì)算機(jī)可執(zhí)行指 令集合被所述處理器執(zhí)行時(shí),執(zhí)行下述步驟:數(shù)據(jù)記錄獲取步驟,獲取數(shù)據(jù)記錄;特征抽取 配置項(xiàng)獲取步驟,獲取用于限定如何從所述數(shù)據(jù)記錄抽取預(yù)定特征的特征抽取配置項(xiàng),其 中,每種預(yù)定特征的特征抽取配置項(xiàng)包括來(lái)源字段項(xiàng)和處理方法項(xiàng),來(lái)源字段項(xiàng)用于將所 述每種預(yù)定特征所涉及的數(shù)據(jù)記錄的字段限定為來(lái)源字段,處理方法項(xiàng)用于指定對(duì)預(yù)先編 程為可執(zhí)行代碼的數(shù)據(jù)處理函數(shù)的引用,其中,所述數(shù)據(jù)處理函數(shù)用于針對(duì)由來(lái)源字段項(xiàng) 限定的來(lái)源字段的字段值執(zhí)行用于抽取所述每種預(yù)定特征的數(shù)據(jù)處理;以及特征值獲取步 驟,基于特征抽取配置項(xiàng)對(duì)所述數(shù)據(jù)記錄的字段值執(zhí)行數(shù)據(jù)處理以獲取所述預(yù)定特征的特 征值。
[0032]根據(jù)本發(fā)明的另一方面,提供了一種進(jìn)行機(jī)器學(xué)習(xí)的計(jì)算裝置,包括存儲(chǔ)部件和 處理器,存儲(chǔ)部件中存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令集合,當(dāng)所述計(jì)算機(jī)可執(zhí)行指令集合被所述 處理器執(zhí)行時(shí),執(zhí)行下述步驟:數(shù)據(jù)記錄獲取步驟,獲取數(shù)據(jù)記錄;特征抽取配置項(xiàng)獲取步 驟,獲取用于限定如何從所述數(shù)據(jù)記錄抽取預(yù)定特征的特征抽取配置項(xiàng),其中,每種預(yù)定特 征的特征抽取配置項(xiàng)包括來(lái)源字段項(xiàng)和處理方法項(xiàng),來(lái)源字段項(xiàng)用于將所述每種預(yù)定特征 所涉及的數(shù)據(jù)記錄的字段限定為來(lái)源字段,處理方法項(xiàng)用于指定對(duì)預(yù)先編程為可執(zhí)行代碼 的數(shù)據(jù)處理函數(shù)的引用,其中,所述數(shù)據(jù)處理函數(shù)用于針對(duì)由來(lái)源字段項(xiàng)限定的來(lái)源字段 的字段值執(zhí)行用于抽取所述每種預(yù)定特征的數(shù)據(jù)處理;特征值獲取步驟,基于特征抽取配 置項(xiàng)對(duì)所述數(shù)據(jù)記錄的字段值執(zhí)行數(shù)據(jù)處理以獲取所述預(yù)定特征的特征值;樣本獲得步 驟,至少部分基于所述特征值獲取步驟獲取的特征值,形成特征向量,作為機(jī)器學(xué)習(xí)的樣 本;以及機(jī)器學(xué)習(xí)步驟,基于所述樣本進(jìn)行機(jī)器學(xué)習(xí)。
[0033] 根據(jù)本發(fā)明的另一方面,提供了一種針對(duì)數(shù)據(jù)記錄進(jìn)行特征抽取的特征抽取裝 置,可以包括:數(shù)據(jù)記錄獲取單元,配置為獲取數(shù)據(jù)記錄;特征抽取配置項(xiàng)獲取單元,配置為 獲取用于限定如何從所述數(shù)據(jù)記錄抽取預(yù)定特征的特征抽