基于數(shù)據(jù)壓縮的支撐向量機(jī)建模方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)挖掘和大數(shù)據(jù)分析技術(shù)領(lǐng)域,尤其是一種基于數(shù)據(jù)壓縮的支撐向量機(jī)建模方法。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,特別是Internet技術(shù)的不斷應(yīng)用,人們利用網(wǎng)絡(luò)信息技術(shù)產(chǎn)生和搜集數(shù)據(jù)的能力有了很大幅度的提高,數(shù)據(jù)呈現(xiàn)了飛快的增長(zhǎng)趨勢(shì)。如何從海量的數(shù)據(jù)中獲取所需要的信息成為了一個(gè)迫切需要研究的問題。面對(duì)這樣的挑戰(zhàn),數(shù)據(jù)挖掘(Data Mining)技術(shù)應(yīng)運(yùn)而生,使用數(shù)據(jù)挖掘技術(shù)能夠從這些海量數(shù)據(jù)中獲取隱含的有用信息。然而,由于數(shù)據(jù)的爆炸性增長(zhǎng),如何使用數(shù)據(jù)挖掘技術(shù)快速有效地從海量的數(shù)據(jù)中獲取隱含有用的信息變得越來(lái)越重要。因此,數(shù)據(jù)挖掘技術(shù)成為大數(shù)據(jù)技術(shù)中核心技術(shù)之一Ο
[0003]在數(shù)據(jù)挖掘技術(shù)中,對(duì)分析對(duì)象進(jìn)行類別劃分,或?qū)κ聭B(tài)的發(fā)展進(jìn)行準(zhǔn)確預(yù)測(cè),是最為典型的應(yīng)用場(chǎng)景,對(duì)應(yīng)的問題往往是分類問題或預(yù)測(cè)問題。而在分類和預(yù)測(cè)技術(shù)中,目前應(yīng)用效果最為顯著的當(dāng)屬支撐向量機(jī)(Support Vector Machine,SVM,又稱“支持向量機(jī)”)技術(shù)。支撐向量機(jī)技術(shù)與神經(jīng)網(wǎng)絡(luò)、貝葉斯等方法采用經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化(均方誤差最小化)不同的是,它是一種基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化原則的分類及回歸挖掘方法。其基本思想是:為了解決分類問題,它試圖尋找一個(gè)分類超平面,并把找分類超平面的問題轉(zhuǎn)化成一個(gè)凸二次規(guī)劃問題;為了解決非線性可分問題,它引入非線性核函數(shù)的理念,將低維空間的非線性可分問題轉(zhuǎn)化成一個(gè)高維空間的線性可分問題,簡(jiǎn)化求解的難度;為了避免異常數(shù)據(jù)的干擾,它引入結(jié)構(gòu)風(fēng)險(xiǎn)最小化的理念,尋找分類邊界上的樣本點(diǎn)(支撐向量),僅用支撐向量來(lái)構(gòu)建模型。所有這些構(gòu)建思想決定了支撐向量機(jī)即便利用較少的數(shù)據(jù)樣本,也可以得到別的方法更好的預(yù)測(cè)模型,并且模型具有更好的泛化推廣能力。
[0004]由于支撐向量機(jī)是借助二次規(guī)劃來(lái)求解支持向量,而求解二次規(guī)劃問題將涉及到Μ階矩陣的計(jì)算(其中Μ為樣本的個(gè)數(shù)),計(jì)算復(fù)雜度是樣本數(shù)ο (M~2)的。因此,當(dāng)學(xué)習(xí)樣本(數(shù)據(jù)記錄數(shù))達(dá)到百萬(wàn)級(jí)的海量數(shù)據(jù)時(shí),該矩陣的存儲(chǔ)和計(jì)算將耗費(fèi)比其他同類方法大得多的機(jī)器內(nèi)存和運(yùn)算時(shí)間,因此,限制了支撐向量機(jī)在大數(shù)據(jù)分析場(chǎng)景的應(yīng)用。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種設(shè)計(jì)合理、能夠提高海量數(shù)據(jù)性能的基于數(shù)據(jù)壓縮的支撐向量機(jī)建模方法。
[0006]本發(fā)明解決現(xiàn)有的技術(shù)問題是采取以下技術(shù)方案實(shí)現(xiàn)的:
[0007]—種基于數(shù)據(jù)壓縮的支撐向量機(jī)建模方法,包括以下步驟:
[0008]步驟1、采用等距抽樣方法對(duì)建模數(shù)據(jù)進(jìn)行抽樣;
[0009]步驟2、對(duì)建模數(shù)據(jù)進(jìn)行壓縮:根據(jù)抽樣后的數(shù)據(jù),采用聚類思想建立聚類特征樹,將所有的樣本劃分成一系列不相似的樣本群體,從每個(gè)樣本群體中挑選一個(gè)或有限個(gè)樣本代表這個(gè)樣本群體,從而實(shí)現(xiàn)數(shù)據(jù)的壓縮;
[0010]步驟3、從聚類特征樹提取建模數(shù)據(jù):對(duì)聚類特征樹的葉子節(jié)點(diǎn)下的每一簇?cái)?shù)據(jù),計(jì)算其邊界,取最有可能成為支撐向量的邊界點(diǎn)作為支撐向量機(jī)的建模數(shù)據(jù);
[0011]步驟4、建立支撐向量機(jī)模型:根據(jù)建模數(shù)據(jù)利用支撐向量機(jī)方法,建立支撐向量機(jī)模型。
[0012]而且,所述步驟4后還包括模型測(cè)試步驟:利用全部建模數(shù)據(jù)集,對(duì)支撐向量機(jī)模型進(jìn)行測(cè)試,如果支撐向量機(jī)模型準(zhǔn)確率大于閾值,則得到最優(yōu)模型,建模終止;否則轉(zhuǎn)步驟1繼續(xù)建模,直到支撐向量機(jī)模型準(zhǔn)確率滿足閾值要求,或者已用全部數(shù)據(jù)建模。
[0013]而且,所述步驟2的具體處理步驟為:
[0014](1)遍歷每一條數(shù)據(jù),依次插入到聚類特征樹中;
[0015](2)從聚類特征樹根節(jié)點(diǎn)開始遍歷;
[0016](3)如果當(dāng)前節(jié)點(diǎn)是葉子節(jié)點(diǎn),轉(zhuǎn)至步驟(4),否則轉(zhuǎn)至步驟(7);
[0017](4)找到當(dāng)前節(jié)點(diǎn)中與該條數(shù)據(jù)最近的孩子節(jié)點(diǎn),計(jì)算將該條數(shù)據(jù)與此孩子節(jié)點(diǎn)的數(shù)據(jù)合并后的簇直徑;如果簇直徑小于閾值,則轉(zhuǎn)至步驟(5),否則轉(zhuǎn)至步驟(6);
[0018](5)將該條數(shù)據(jù)與最近的孩子節(jié)點(diǎn)進(jìn)行合并;
[0019](6)該條數(shù)據(jù)作為當(dāng)前節(jié)點(diǎn)的一個(gè)新的孩子節(jié)點(diǎn),如果當(dāng)前節(jié)點(diǎn)的孩子節(jié)點(diǎn)數(shù)超過(guò)一定閾值,則將當(dāng)前節(jié)點(diǎn)拆分為兩個(gè)節(jié)點(diǎn),選擇距離最遠(yuǎn)的兩個(gè)孩子節(jié)點(diǎn)作為初始節(jié)點(diǎn),將其它孩子根據(jù)距離遠(yuǎn)近分到合適的節(jié)點(diǎn)進(jìn)行合并;
[0020](7)找到當(dāng)前節(jié)點(diǎn)中與該條數(shù)據(jù)最近的孩子節(jié)點(diǎn),將此孩子節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),轉(zhuǎn)至步驟(3)。
[0021]而且,所述步驟1中,當(dāng)數(shù)據(jù)集的數(shù)據(jù)量達(dá)到百萬(wàn)級(jí)以上時(shí),采用抽取萬(wàn)分之一樣本進(jìn)行抽樣。
[0022]本發(fā)明的優(yōu)點(diǎn)和積極效果是:
[0023]1、本發(fā)明采用預(yù)抽樣策略、數(shù)據(jù)壓縮技術(shù)、增量抽樣策略等,在盡量不降低算法準(zhǔn)確率的情況下,大幅降低支撐向量機(jī)建模樣本數(shù),從而大幅提高支撐向量機(jī)建模速度,降低內(nèi)存消耗,從而使得支撐向量機(jī)技術(shù)能夠在大數(shù)據(jù)分析場(chǎng)景中應(yīng)用,彌補(bǔ)大數(shù)據(jù)分析中神經(jīng)網(wǎng)絡(luò)、貝葉斯等方法預(yù)測(cè)準(zhǔn)確率較低的缺陷。
[0024]2、本發(fā)明采用預(yù)抽樣策略,對(duì)于百萬(wàn)級(jí)建模數(shù)據(jù)量進(jìn)行多層次抽樣,減少數(shù)據(jù)量,首先基于抽樣的數(shù)據(jù),進(jìn)行壓縮后建立模型,通過(guò)模型測(cè)試得到模型準(zhǔn)確率,當(dāng)準(zhǔn)確率不滿足要求時(shí)進(jìn)一步增加抽樣數(shù)據(jù),進(jìn)行建模,從而不斷改進(jìn)模型。
[0025]3、本發(fā)明采用聚類思想對(duì)抽樣后的數(shù)據(jù)再進(jìn)行壓縮,得到聚類特征樹,根據(jù)支撐向量機(jī)的方法思想,每簇?cái)?shù)據(jù)最外層的節(jié)點(diǎn),最有可能成為支撐向量,故可以對(duì)每簇?cái)?shù)據(jù),計(jì)算其邊界,取邊界數(shù)據(jù)作為支撐向量機(jī)的建模數(shù)據(jù),使數(shù)據(jù)壓縮過(guò)程盡量不丟失潛在的支撐向量,從而大大縮小數(shù)據(jù)量,同時(shí),利用聚類分群特征樹的邊界點(diǎn)作為支撐向量機(jī)的建模數(shù)據(jù)。
[0026]4、本發(fā)明充分發(fā)揮支撐向量機(jī)模型穩(wěn)健、預(yù)測(cè)準(zhǔn)確率高的優(yōu)勢(shì),從數(shù)據(jù)壓縮、參數(shù)自動(dòng)調(diào)優(yōu)、層次抽樣等方面改進(jìn)了傳統(tǒng)支撐向量機(jī)方法,顯著提升了支撐向量機(jī)方法應(yīng)用于海量數(shù)據(jù)的性能,即在不降低分類精度的前提下大幅減少內(nèi)存使用和運(yùn)算時(shí)間,大大提升了支撐向量機(jī)方法的數(shù)據(jù)處理量,使得支撐向量機(jī)技術(shù)可以應(yīng)用在大數(shù)據(jù)分析場(chǎng)景中,從而實(shí)現(xiàn)海量數(shù)據(jù)的高準(zhǔn)確率建模。
【附圖說(shuō)明】
[0027]圖1為本發(fā)明的整體處理流程圖;
[0028]圖2為本發(fā)明中數(shù)據(jù)壓縮環(huán)節(jié)的數(shù)據(jù)處理流程圖;
[0029]圖3為SVM優(yōu)化前后的內(nèi)存消耗對(duì)比圖;
[0030]圖4為SVM優(yōu)化前后的運(yùn)算時(shí)間對(duì)比圖。
【具體實(shí)施方式】
[0031]以下結(jié)合附圖對(duì)本發(fā)明實(shí)施例做進(jìn)一步詳述:
[0032]—種基于數(shù)據(jù)壓縮的支撐向量機(jī)建模方法,首先基于聚類的思想,將數(shù)據(jù)存儲(chǔ)于聚類特征樹中,即將數(shù)據(jù)劃分為一系列不相似的樣本群體,每個(gè)樣本群體中只挑選一個(gè)或有限個(gè)樣本代表這個(gè)群體,從而實(shí)現(xiàn)數(shù)據(jù)的壓縮;然后基于壓縮的數(shù)據(jù)建立支撐向量機(jī)模型,實(shí)現(xiàn)在不降低模型準(zhǔn)確率的情況下,盡量縮短建模時(shí)間,降低內(nèi)存消耗,從而提升支撐向量機(jī)的數(shù)據(jù)處理量。
[0033]如圖1所示,基于數(shù)據(jù)壓縮的支撐向量機(jī)的建模方法包括步驟如下:
[0034]步驟1、采用等距抽樣方法對(duì)建模數(shù)據(jù)進(jìn)行抽樣。當(dāng)數(shù)據(jù)集的數(shù)據(jù)量達(dá)到百萬(wàn)級(jí)以上時(shí),先對(duì)其進(jìn)行初步抽樣。
[0035]在本實(shí)施例中,抽取時(shí)盡量不采用隨機(jī)抽樣策略,可以考慮每隔K條數(shù)據(jù),抽樣一條數(shù)據(jù)(l/Κ為抽樣比例,具體的抽取比例依據(jù)原始建模數(shù)據(jù)量而定),也就是說(shuō)采用系統(tǒng)抽樣,又稱為等距抽樣。抽取時(shí),先從數(shù)據(jù)中抽取第1個(gè)樣本,然后間隔1萬(wàn)個(gè)樣本,抽取第二個(gè)樣本,以此類推,依次用相等的間距抽取樣本。由此,樣本抽取得到萬(wàn)分之一樣本,實(shí)現(xiàn)初步的數(shù)據(jù)縮減,從而以較少的數(shù)據(jù)得到符合精度要求的模型。
[0036]步驟2、對(duì)建模數(shù)據(jù)進(jìn)行壓縮。由于支撐向量機(jī)方法的核心是找到分類邊界和回歸線附近的支撐向量(樣本點(diǎn)),然后對(duì)相關(guān)樣本進(jìn)行加權(quán)構(gòu)造分類邊界和回歸線,但是,當(dāng)樣本量非常巨大時(shí),找