本申請(qǐng)涉及數(shù)據(jù)挖掘,特別是涉及基于gpu的因子自動(dòng)挖掘方法、系統(tǒng)、電子設(shè)備和存儲(chǔ)介質(zhì)。
背景技術(shù):
1、在金融領(lǐng)域,研究員通常依靠市場(chǎng)規(guī)律和投資經(jīng)驗(yàn),從海量數(shù)據(jù)中挖掘因子,以指導(dǎo)股票等金融衍生品的買賣決策。隨著可用數(shù)據(jù)不斷增加,研究員開始采用gplearn(genetic?programming?learn,遺傳編程學(xué)習(xí))算法,以自動(dòng)挖掘潛在的因子。然而,由于gplearn算法需要進(jìn)行啟發(fā)式搜索,且搜索空間龐大,導(dǎo)致訓(xùn)練效率較低。此外,現(xiàn)有的gplearn框架只支持從二維數(shù)據(jù)中挖掘因子,對(duì)于三維數(shù)據(jù)的訓(xùn)練支持不足。
2、傳統(tǒng)的gplearn框架在進(jìn)行適應(yīng)度指標(biāo)的計(jì)算時(shí)主要依賴cpu,這在利用大量數(shù)據(jù)進(jìn)行訓(xùn)練時(shí)可能導(dǎo)致顯著的時(shí)間消耗。此外,傳統(tǒng)框架僅能處理二維數(shù)據(jù),例如[時(shí)間*特征]的數(shù)據(jù);然而,對(duì)于包含[時(shí)間*商品類別*特征]的三維數(shù)據(jù),傳統(tǒng)框架的支持性顯然不足,這使得傳統(tǒng)框架無法從高維數(shù)據(jù)中挖掘出有效的因子。
3、目前還沒有相應(yīng)的技術(shù)方案來解決依賴cpu進(jìn)行數(shù)據(jù)處理導(dǎo)致耗時(shí)長、且無法處理高維數(shù)據(jù)的問題。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)實(shí)施例提供了一種基于gpu的因子自動(dòng)挖掘方法、系統(tǒng)、電子設(shè)備和存儲(chǔ)介質(zhì),以至少解決相關(guān)技術(shù)中依賴cpu進(jìn)行數(shù)據(jù)處理導(dǎo)致耗時(shí)長、且無法處理高維數(shù)據(jù)的問題。
2、第一方面,本申請(qǐng)實(shí)施例提供了一種基于gpu的因子自動(dòng)挖掘方法,包括:
3、通過cpu獲取訓(xùn)練數(shù)據(jù),并對(duì)所述訓(xùn)練數(shù)據(jù)進(jìn)行預(yù)處理,
4、將所述訓(xùn)練數(shù)據(jù)加載至gpu中,并按照預(yù)設(shè)分組規(guī)則對(duì)預(yù)處理后的訓(xùn)練數(shù)據(jù)進(jìn)行分組,得到分組數(shù)據(jù);
5、獲取在cpu中生成的遺傳算法模型并轉(zhuǎn)移到所述gpu中,由gpu運(yùn)行所述遺傳算法模型對(duì)所述分組數(shù)據(jù)進(jìn)行因子挖掘訓(xùn)練,當(dāng)所述遺傳算法模型收斂時(shí),得到因子預(yù)測(cè)模型;
6、獲取待預(yù)測(cè)數(shù)據(jù),通過所述因子預(yù)測(cè)模型對(duì)所述待預(yù)測(cè)數(shù)據(jù)進(jìn)行計(jì)算,得到預(yù)測(cè)結(jié)果。
7、在一實(shí)施例中,所述gpu運(yùn)行所述遺傳算法模型對(duì)所述分組數(shù)據(jù)進(jìn)行因子挖掘訓(xùn)練,包括:
8、步驟a1,獲取預(yù)先設(shè)置的訓(xùn)練參數(shù),所述訓(xùn)練參數(shù)包括種群數(shù)量、預(yù)設(shè)迭代次數(shù)和子樹生成策略;
9、步驟a2,根據(jù)所述種群數(shù)量對(duì)所述分組數(shù)據(jù)進(jìn)行種群初始化處理,生成與所述種群數(shù)量對(duì)應(yīng)的初始個(gè)體;
10、步驟a3,在所述gpu中計(jì)算每一所述初始個(gè)體的適應(yīng)度指標(biāo);
11、步驟a4,通過精英策略選取適應(yīng)度最高的n個(gè)初始個(gè)體作為下一次迭代的父代個(gè)體,并通過所述子樹生成策略生成新個(gè)體;
12、步驟a5,判斷是否達(dá)到迭代中止條件,若是,則將所述新個(gè)體作為因子預(yù)測(cè)模型并輸出;若否,則返回步驟a3,并以所述新個(gè)體為輸入計(jì)算適應(yīng)度。
13、在一實(shí)施例中,所述計(jì)算每一所述初始個(gè)體的適應(yīng)度指標(biāo)包括:
14、將所述初始個(gè)體發(fā)送至gpu中;
15、將所述初始個(gè)體對(duì)應(yīng)的公式轉(zhuǎn)換為前綴表達(dá)式的逆序,得到執(zhí)行隊(duì)列,所述執(zhí)行隊(duì)列包括數(shù)據(jù)算子和函數(shù)算子;
16、所述gpu按順序讀取所述執(zhí)行隊(duì)列并進(jìn)行計(jì)算,得到所述初始個(gè)體的計(jì)算結(jié)果;
17、獲取預(yù)設(shè)的適應(yīng)度函數(shù)和擬合值,將所述計(jì)算結(jié)果和擬合值作為所述適應(yīng)度的輸入,得到所述適應(yīng)度指標(biāo)。
18、在一實(shí)施例中,所述通過所述因子預(yù)測(cè)模型對(duì)所述待預(yù)測(cè)數(shù)據(jù)進(jìn)行計(jì)算,得到預(yù)測(cè)結(jié)果,包括:
19、通過cpu獲取預(yù)測(cè)數(shù)據(jù),并將所述預(yù)測(cè)數(shù)據(jù)加載至gpu中,按照預(yù)設(shè)分組規(guī)則進(jìn)行分組,得到預(yù)測(cè)分組數(shù)據(jù);
20、根據(jù)所述預(yù)測(cè)分組數(shù)據(jù)從所述因子預(yù)測(cè)模型中選取公式;
21、將所述公式和所述預(yù)測(cè)數(shù)據(jù)輸入到所述gpu中進(jìn)行計(jì)算,得到所述預(yù)測(cè)結(jié)果。
22、在一實(shí)施例中,所述訓(xùn)練參數(shù)還包括預(yù)設(shè)閾值和適應(yīng)度閾值范圍,判斷所述遺傳算法模型是否收斂包括:
23、當(dāng)所述迭代次數(shù)大于或等于預(yù)設(shè)閾值;或者,所述適應(yīng)度不在預(yù)設(shè)適應(yīng)度閾值范圍之內(nèi)時(shí),判斷所述遺傳算法模型收斂。
24、在一實(shí)施例中,所述通過所述子樹生成策略生成新個(gè)體,包括:
25、隨機(jī)選擇一對(duì)父代個(gè)體進(jìn)行交叉操作,生成包含兩個(gè)父代個(gè)體的特征的后代個(gè)體;
26、獲取預(yù)設(shè)概率,對(duì)新生成的后代個(gè)體以所述預(yù)設(shè)概率進(jìn)行變異操作,以引入新的遺傳多樣性,得到所述新個(gè)體。
27、在一實(shí)施例中,所述對(duì)所述訓(xùn)練數(shù)據(jù)進(jìn)行預(yù)處理包括:
28、對(duì)所述訓(xùn)練數(shù)據(jù)清洗,移除數(shù)據(jù)集中的錯(cuò)誤、重復(fù)或不一致的數(shù)據(jù);
29、將清洗后的訓(xùn)練數(shù)據(jù)轉(zhuǎn)換成預(yù)設(shè)格式的訓(xùn)練數(shù)據(jù);
30、根據(jù)預(yù)設(shè)格式的數(shù)據(jù)創(chuàng)建新的特征數(shù)據(jù);
31、將特征數(shù)據(jù)進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化或歸一化處理,得到預(yù)處理后的訓(xùn)練數(shù)據(jù)。
32、第二方面,本申請(qǐng)實(shí)施例提供了一種基于gpu的因子自動(dòng)挖掘系統(tǒng),該系統(tǒng)主要包含輸入模塊、自動(dòng)挖掘模塊、輸出模塊和預(yù)測(cè)模塊;其中,
33、所述輸入模塊用于采集訓(xùn)練數(shù)據(jù)和預(yù)測(cè)數(shù)據(jù),對(duì)所述訓(xùn)練數(shù)據(jù)進(jìn)行預(yù)處理,將所述訓(xùn)練數(shù)據(jù)加載至gpu中,并按照預(yù)設(shè)分組規(guī)則進(jìn)行分組,得到分組數(shù)據(jù);
34、所述自動(dòng)挖掘模塊用于獲取在cpu中生成的遺傳算法模型并轉(zhuǎn)移到所述gpu中,由gpu運(yùn)行所述遺傳算法模型對(duì)所述分組數(shù)據(jù)進(jìn)行因子挖掘訓(xùn)練,當(dāng)所述遺傳算法模型收斂時(shí),得到因子預(yù)測(cè)模型;
35、所述預(yù)測(cè)模塊用于獲取待預(yù)測(cè)數(shù)據(jù),通過所述因子預(yù)測(cè)模型對(duì)所述待預(yù)測(cè)數(shù)據(jù)進(jìn)行計(jì)算,得到預(yù)測(cè)結(jié)果;
36、所述輸出模塊用于輸出所述預(yù)測(cè)結(jié)果。
37、第三方面,本申請(qǐng)實(shí)施例提供了一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器、處理器以及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如上述第一方面所述的基于gpu的因子自動(dòng)挖掘方法。
38、第四方面,本申請(qǐng)實(shí)施例提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述第一方面所述的基于gpu的因子自動(dòng)挖掘方法。
39、本申請(qǐng)實(shí)施例提供的基于gpu的因子自動(dòng)挖掘方法、系統(tǒng)、電子設(shè)備和存儲(chǔ)介質(zhì)至少具有以下技術(shù)效果:
40、通過cpu獲取訓(xùn)練數(shù)據(jù),并對(duì)所述訓(xùn)練數(shù)據(jù)進(jìn)行預(yù)處理,將所述訓(xùn)練數(shù)據(jù)加載至gpu中,并按照預(yù)設(shè)分組規(guī)則對(duì)預(yù)處理后的訓(xùn)練數(shù)據(jù)進(jìn)行分組,得到分組數(shù)據(jù);獲取在cpu中生成的遺傳算法模型并轉(zhuǎn)移到所述gpu中,由gpu運(yùn)行所述遺傳算法模型對(duì)所述分組數(shù)據(jù)進(jìn)行因子挖掘訓(xùn)練,當(dāng)所述遺傳算法模型收斂時(shí),得到因子預(yù)測(cè)模型;獲取待預(yù)測(cè)數(shù)據(jù),通過所述因子預(yù)測(cè)模型對(duì)所述待預(yù)測(cè)數(shù)據(jù)進(jìn)行計(jì)算,得到預(yù)測(cè)結(jié)果。解決了依賴cpu進(jìn)行數(shù)據(jù)處理導(dǎo)致耗時(shí)長、且無法處理高維數(shù)據(jù)的問題,實(shí)現(xiàn)了支持高效的大規(guī)模數(shù)據(jù)訓(xùn)練。
41、本申請(qǐng)的一個(gè)或多個(gè)實(shí)施例的細(xì)節(jié)在以下附圖和描述中提出,以使本申請(qǐng)的其他特征、目的和優(yōu)點(diǎn)更加簡(jiǎn)明易懂。
1.一種基于gpu的因子自動(dòng)挖掘方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述gpu運(yùn)行所述遺傳算法模型對(duì)所述分組數(shù)據(jù)進(jìn)行因子挖掘訓(xùn)練,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述計(jì)算每一所述初始個(gè)體的適應(yīng)度指標(biāo)包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過所述因子預(yù)測(cè)模型對(duì)所述待預(yù)測(cè)數(shù)據(jù)進(jìn)行計(jì)算,得到預(yù)測(cè)結(jié)果,包括:
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述訓(xùn)練參數(shù)還包括預(yù)設(shè)閾值和適應(yīng)度閾值范圍,判斷所述遺傳算法模型是否收斂包括:
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述通過所述子樹生成策略生成新個(gè)體,包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)所述訓(xùn)練數(shù)據(jù)進(jìn)行預(yù)處理包括:
8.一種基于gpu的因子自動(dòng)挖掘系統(tǒng),其特征在于,該系統(tǒng)主要包含輸入模塊、自動(dòng)挖掘模塊、輸出模塊和預(yù)測(cè)模塊;其中,
9.一種電子設(shè)備,其特征在于,包括存儲(chǔ)器、處理器,以及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如權(quán)利要求1至7中任一項(xiàng)所述的基于gpu的因子自動(dòng)挖掘方法。
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至7中任一項(xiàng)所述的基于gpu的因子自動(dòng)挖掘方法。