位置標(biāo)識(shí)來(lái)劃分內(nèi)存的存儲(chǔ)空間以至少將不同種類的預(yù)定特征相關(guān)的計(jì)算系數(shù)分開(kāi) 存儲(chǔ),例如,可將存儲(chǔ)位置標(biāo)識(shí)設(shè)計(jì)為與特征種類相應(yīng)的N位字節(jié)(N為整數(shù))以作為內(nèi)存地 址的高位字節(jié),并將哈希變換后的地址作為內(nèi)存地址的低位字節(jié),從而組合后的內(nèi)存地址 能夠在存儲(chǔ)空間上按照特征種類區(qū)分開(kāi),使得不同種類特征的計(jì)算系數(shù)不會(huì)錯(cuò)誤地彼此覆 蓋。
[0070] 在一個(gè)示例中,在配置文件中預(yù)先設(shè)置有特征抽取配置項(xiàng),相應(yīng)地,在步驟120中, 從設(shè)置了特征抽取配置項(xiàng)的配置文件讀取特征抽取配置項(xiàng),例如,通過(guò)解析配置文件來(lái)獲 取特征抽取配置項(xiàng)。這個(gè)配置文件被存儲(chǔ)在本地或遠(yuǎn)程接收,作為示例,可以是軟件編程人 員手動(dòng)編寫(xiě)生成的。可從本地?cái)?shù)據(jù)庫(kù)讀取預(yù)先存儲(chǔ)的由程序員編寫(xiě)好的配置文件,也可通 過(guò)網(wǎng)絡(luò)從其它設(shè)備接收配置文件。這里,假設(shè)抽取的特征將用于進(jìn)行機(jī)器學(xué)習(xí)中的模型訓(xùn) 練,則程序員在編寫(xiě)配置文件時(shí),根據(jù)所建模型,結(jié)合實(shí)際建模場(chǎng)景,確定模型所需特征,進(jìn) 而針對(duì)每個(gè)特征設(shè)計(jì)配置項(xiàng)從而得到配置文件。替代地,也可通過(guò)向軟件用戶顯示用于設(shè) 置特征抽取配置項(xiàng)的界面(例如圖形用戶界面),根據(jù)用戶在界面上執(zhí)行的輸入操作而自動(dòng) 生成配置文件。后面將結(jié)合附圖對(duì)通過(guò)界面由用戶定制特征抽取配置項(xiàng)的方法進(jìn)行示例性 詳細(xì)說(shuō)明。
[0071] 在另一個(gè)示例中,可根據(jù)用戶的輸入操作來(lái)獲取特征抽取配置項(xiàng)。作為示例,可在 執(zhí)行特征抽取過(guò)程中間實(shí)時(shí)地直接獲取特征抽取配置項(xiàng)而無(wú)需形成任何配置文件,例如程 序執(zhí)行過(guò)程中實(shí)時(shí)彈出圖形用戶界面,引導(dǎo)用戶進(jìn)行特征抽取配置項(xiàng)選擇,從而獲得了特 征抽取配置項(xiàng)。
[0072] 根據(jù)本發(fā)明的示例性實(shí)施例,能夠獨(dú)立于特征抽取主程序根據(jù)需要來(lái)改變各個(gè)特 征抽取配置項(xiàng),從而可根據(jù)場(chǎng)景對(duì)特征抽取進(jìn)行有效的"抽象"和"表示",既無(wú)需實(shí)質(zhì)性改 變特征抽取主程序,同時(shí)可靈活地獨(dú)立編寫(xiě)或增加數(shù)據(jù)處理函數(shù),增強(qiáng)了編程的靈活性和 代碼的重用性。由此,對(duì)于不同的數(shù)據(jù)庫(kù),只要根據(jù)需要定義特征抽取配置項(xiàng),就可以利用 同樣的特征抽取主程序和相應(yīng)的數(shù)據(jù)處理函數(shù),增強(qiáng)了編程的靈活性、易維護(hù)性和代碼的 重用性。
[0073]圖2示出了配置文件中存儲(chǔ)的特征抽取配置項(xiàng)的示例。
[0074]圖2所示的配置文件共有10行,其中第一行定義了數(shù)據(jù)記錄中的6個(gè)字段:age(年 齡)、job(工作)、housing(住房)、contact(聯(lián)系人)、birthday(生日)和y(標(biāo)記);第二行到 第十行定義了針對(duì)每個(gè)特征的特征抽取配置項(xiàng),其中可包括來(lái)源字段項(xiàng)和處理方法項(xiàng)。此 外,為了進(jìn)一步有效地管理各個(gè)特征的抽取,還可設(shè)置每個(gè)特征的特征名稱,并且,還可針 對(duì)某些處理方法設(shè)置相應(yīng)的處理參數(shù)項(xiàng)。
[0075]如圖2所示,從第二行到第十行,每行分為三列或四列。第一列指定了所提取特征 的名稱,由圖2可見(jiàn)這9個(gè)特征名稱分別為"F_AGE"、"F_J0B"、"F_H0USING"、"FJ30NTACT"、 "F_YEAR"、"F_M0NTH"、"F_YEAR"、"F_PR0FILE"、". label"。針對(duì)每個(gè)特征,第二列指定了相 應(yīng)的來(lái)源字段項(xiàng),即所抽取的特征源自數(shù)據(jù)記錄中的哪個(gè)或者哪些字段;第三列指定了處 理方法項(xiàng),即從來(lái)源項(xiàng)的字段到輸出特征的中間處理方法的引用,通過(guò)該引用,即指定了調(diào) 用的數(shù)據(jù)處理函數(shù),數(shù)據(jù)處理函數(shù)可以是已經(jīng)編程好的軟件模塊、例程、庫(kù)函數(shù)等。第四列 (如果有的話)指定了與處理方法項(xiàng)相應(yīng)的參數(shù)。具體地,圖2所示的示例中,在feature中設(shè) 置了所抽取特征的名稱;在depends中設(shè)置了所抽取特征的來(lái)源字段;在method中指定了為 了得到預(yù)定特征值,對(duì)于depends所指定的來(lái)源字段,應(yīng)該執(zhí)行什么樣的數(shù)據(jù)處理(即,調(diào)用 哪個(gè)數(shù)據(jù)處理函數(shù));在args中設(shè)置了數(shù)據(jù)處理方法涉及的數(shù)據(jù)的格式。
[0076]這里,處理方法項(xiàng)用于調(diào)用針對(duì)來(lái)源字段的字段值執(zhí)行預(yù)定抽取處理的相應(yīng)函 數(shù),作為示例而非限制,以下給出一些處理方法所對(duì)應(yīng)的數(shù)據(jù)處理,其中,某些處理方法特 別地針對(duì)于機(jī)器學(xué)習(xí)領(lǐng)域:
[0077] 1 .Direct(直接抽?。簩?duì)來(lái)源字段原樣輸出,例:"Γ->"Γ。
[0078] 2 ·ExpNormalizer(指數(shù)離散):對(duì)數(shù)值來(lái)源字段取2為底的log值輸出,例:"2"_> T。
[0079] 3. Combine(字段組合):對(duì)多個(gè)來(lái)源字段以T分割后,組合輸出,例:"Γ、"2"_> "1 2"。
[0080] 4.0&1&0&1(:(日期間隔) :計(jì)算兩個(gè)日期的時(shí)間間隔(天為單位),例:"1900-01- 02","1900-01-10"->"9"。
[0081 ] 5 · GetYearOf Date (日期年份):截取日期字段中的年份,例:"1900-01-02" _> "1900"。
[0082] 6 · GetMonthOfDate(日期月份):截取日期字段中的月份,例:"1900-01-02" _> "01"。
[0083] 7 · GetDayOfDate (日期天份):截取日期字段中的天份,例:"1900-01 -02" _> "02"。
[0084] 8. NumberFloor (下取整):對(duì)數(shù)值型字段進(jìn)行下取整,例:"7.89" -> "7"。
[0085] 9.LabelDireCt(數(shù)字標(biāo)記):機(jī)器學(xué)習(xí)中的樣本標(biāo)記方法,直接輸出來(lái)源字段作為 label (標(biāo)記),label必須是整數(shù)。
[0086] 10 . Lab el Beta (字段標(biāo)記):機(jī)器學(xué)習(xí)中的樣本標(biāo)記方法,若來(lái)源字段中含有 "pos",則標(biāo)記為正樣本,否則為負(fù)樣本。
[0087] ll.LabelBinary(分類標(biāo)記):機(jī)器學(xué)習(xí)中的數(shù)字標(biāo)記方法,若來(lái)源字段是"1",則 標(biāo)記為正樣本,否則為負(fù)樣本。
[0088] 需要說(shuō)明的是,上面結(jié)合圖2描述的數(shù)據(jù)字段名稱、處理方法定義等僅為示例,可 以根據(jù)需要進(jìn)行不同的設(shè)計(jì)。
[0089] 在一個(gè)示例中,基于例如圖2所示的配置文件中設(shè)置好的配置項(xiàng)目來(lái)得到可執(zhí)行 程序代碼,例如可以利用專門(mén)的解析程序?qū)ε渲梦募性O(shè)置好的配置項(xiàng)目進(jìn)行解析以形成 相應(yīng)的可執(zhí)行程序代碼,該可執(zhí)行程序代碼被執(zhí)行時(shí)將對(duì)來(lái)源字段執(zhí)行處理方法項(xiàng)指定的 數(shù)據(jù)處理,并且獲取的特征值賦予給所定義的特征。在一個(gè)示例中,通過(guò)解析獲取的各配置 項(xiàng)目得到的可執(zhí)行程序代碼可以作為一個(gè)完整的結(jié)構(gòu)被保存,以完成后續(xù)執(zhí)行的過(guò)程。
[0090] 回到圖1,在完成特征抽取配置項(xiàng)獲取步驟S120后,前進(jìn)到步驟S130。
[0091]在步驟S130中,基于特征抽取配置項(xiàng)對(duì)所述數(shù)據(jù)記錄的字段值執(zhí)行數(shù)據(jù)處理以獲 取所述預(yù)定特征的特征值。這里,作為示例,可運(yùn)行通過(guò)解析配置文件而得到的可執(zhí)行程序 代碼,或者,可根據(jù)實(shí)時(shí)輸入的特征抽取配置項(xiàng)來(lái)運(yùn)行特征抽取主程序,從而針對(duì)讀取的數(shù) 據(jù)記錄中相關(guān)來(lái)源字段的字段值執(zhí)行預(yù)定的數(shù)據(jù)處理以獲得相應(yīng)的特征值。
[0092]具體地,仍以圖2所示的特征抽取配置項(xiàng)為例,通過(guò)執(zhí)行步驟S130,則將每個(gè)記錄 中的年齡(age)字段原樣輸出賦值給特征F_AGE,類似地,將每個(gè)記錄中的工作(job)字段、 住房(housing)字段、聯(lián)系人(contact)字段分別原樣輸出賦值給特EF_J0B、F_H0USING、F_ CONTACT;將YYMM-mm-dd格式的生日(birthday)字段中的年(YYMM)、月(mm)和日(dd)提取出 來(lái)賦值給特征F_YEAR、FM0NT!^PF_DATE;將年齡(age)字段和工作(job)字段一起原樣輸出 給特征F_PR0FILE;以及將標(biāo)注(y)字段直接輸出給特征labe 1。
[0093]由此抽取的各個(gè)特征可組合為特征向量,或者結(jié)合其它特征形成特征向量。這些 特征向量可用于后續(xù)的任何數(shù)據(jù)統(tǒng)計(jì)、分析、計(jì)算和/或其它處理。
[0094] 作為示例,所述特征向量可作為機(jī)器學(xué)習(xí)中的訓(xùn)練樣本。對(duì)各個(gè)數(shù)據(jù)記錄均執(zhí)行 上述特征抽取,進(jìn)而形成訓(xùn)練樣本集。訓(xùn)練樣本集可以應(yīng)用于機(jī)器學(xué)習(xí)算法或其它算法以 進(jìn)行數(shù)據(jù)挖掘。
[0095] 根據(jù)本發(fā)明的示例性實(shí)施例,憑借抽象出的配置項(xiàng)目的扁平化結(jié)構(gòu),數(shù)據(jù)依賴僅 僅限制在當(dāng)前處理的數(shù)據(jù)記錄中。相應(yīng)地,可簡(jiǎn)單地對(duì)數(shù)據(jù)記錄表進(jìn)行基于行的文件切分, 進(jìn)而并行地對(duì)劃分出的各個(gè)行分片實(shí)現(xiàn)特征抽取。即,在所述特征值獲取步驟中,可對(duì)所述 數(shù)據(jù)記錄中的各條數(shù)據(jù)記錄或由多條組成的各組數(shù)據(jù)記錄并行地執(zhí)行數(shù)據(jù)處理。例如,在 一個(gè)示例中,在特征值獲取步驟,以行為單位對(duì)各行數(shù)據(jù)記錄進(jìn)行特征抽取,即,遍歷每條 數(shù)據(jù)記錄的各個(gè)列以根據(jù)所配置的特征來(lái)源字段和處理方法執(zhí)行數(shù)據(jù)處理。這里,作為示 例,在離線針對(duì)歷史數(shù)據(jù)來(lái)進(jìn)行特征抽取的應(yīng)用場(chǎng)景中,可利用分布式計(jì)算集群來(lái)對(duì)各個(gè) 行執(zhí)行特征值獲取步驟。
[0096]圖3示出了在數(shù)據(jù)記錄為機(jī)器學(xué)習(xí)中的樣本數(shù)據(jù)時(shí),分布式地執(zhí)行特征抽取過(guò)程 的示例,其中,樣本數(shù)據(jù)源可以是數(shù)據(jù)記錄表,其中的每一行作為一條數(shù)據(jù)記錄,每一列對(duì) 應(yīng)一個(gè)字段。這里,可對(duì)數(shù)據(jù)記錄表進(jìn)行基于行的文件切分,得到各個(gè)行分片,然后對(duì)于各 個(gè)行分片的特征值獲取可以并行執(zhí)行。例如,可由分布式計(jì)算集群中的各個(gè)工作節(jié)點(diǎn)來(lái)并 行地抽取各個(gè)行分片的特征值。
[0097] 在另一個(gè)示例中,除了對(duì)各個(gè)行的特征抽取并行執(zhí)行外,在行的內(nèi)部,可以以獲取 的特征為單位,對(duì)于各個(gè)特征,并行地執(zhí)行數(shù)據(jù)處理以獲取特征的特征值。
[0098] 需要說(shuō)明的是,在圖1中,數(shù)據(jù)記錄獲取步驟和特征抽取配置項(xiàng)獲取步驟空間上被 順序列出,但是這并不意味著時(shí)間上的順序關(guān)系。實(shí)際上,對(duì)于數(shù)據(jù)記錄獲取步驟和特征抽 取配置項(xiàng)獲取步驟的執(zhí)行順序沒(méi)有限制,在不違反上下文邏輯關(guān)系的情況下,各個(gè)步驟可 以并行進(jìn)行或者按照相反順序執(zhí)行。
[0099] 下面結(jié)合附圖描述根據(jù)本發(fā)明實(shí)施例的由用戶通過(guò)圖形用戶界面設(shè)置特征抽取 配置項(xiàng)的方法示例。應(yīng)注意,這里的圖形用戶界面僅作為示例,本發(fā)明還可采用任何其它形 式的輸入界面。通過(guò)所述界面設(shè)置的特征抽取配置項(xiàng)可用于形成相應(yīng)的配置文件以便后續(xù) 從所述配置文件中讀取各個(gè)特征抽取配置項(xiàng),也可將通過(guò)所述界面設(shè)置的特征抽取配置項(xiàng) 直接應(yīng)用于特征抽取主程序而無(wú)需生成任何配置文件。
[0100]圖4A示出根據(jù)本發(fā)明示例性實(shí)施例的用于針對(duì)特征抽取進(jìn)行配置的圖形用戶界 面200的示例,圖4A的圖形用戶界面200可應(yīng)用于進(jìn)行模型訓(xùn)練的建模平臺(tái),也可在適當(dāng)修 改后應(yīng)用于任何其它特征抽取的情景。其中,輸入表201bank basic data可