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