張偉豐
(湖北汽車工業(yè)學(xué)院 經(jīng)濟(jì)管理學(xué)院,湖北 十堰442002)
隨著計算機(jī)數(shù)據(jù)庫管理和MIS在煙草行業(yè)的廣泛應(yīng)用,數(shù)據(jù)庫中存儲了大量的行業(yè)數(shù)據(jù),這些數(shù)據(jù)記錄中隱藏著潛在有用的重要信息,使用一定的數(shù)據(jù)挖掘技術(shù)找尋出這些信息和知識,可以為煙草公司制定營銷策略提供決策支持。目前,國家實(shí)行煙草專賣制度,每一地區(qū)的煙草公司實(shí)行統(tǒng)一的貨源采購與分配,然后由零售客戶進(jìn)行銷售。卷煙產(chǎn)品的銷售額和煙草公司的利潤取決于合理的采購與分配計劃,為此,需要對零售客戶進(jìn)行分類,針對不同的卷煙品種,將零售客戶劃分為某一個類別,進(jìn)行有針對性的貨源分配,從而提高銷售量。
要從這些數(shù)據(jù)中挖掘出具有實(shí)際意義的信息,選擇合適的數(shù)據(jù)挖掘算法至關(guān)重要,當(dāng)前運(yùn)用比較多的有基于關(guān)聯(lián)規(guī)則的APriori算法,基于智能計算的分類算法(如進(jìn)化計算、神經(jīng)網(wǎng)絡(luò)等),以及貝葉斯分類、決策樹分類算法等。在這種大數(shù)據(jù)量的情況下,APriori算法需要多趟掃描數(shù)據(jù)庫,運(yùn)行過程中生成大規(guī)模的候選集和頻繁集,有相當(dāng)大的計算量,而智能計算的分類方法具有較高的計算復(fù)雜性,計算搜索時間過長,挖掘結(jié)果往往也不可靠。ID3算法可以快速的對數(shù)據(jù)集進(jìn)行劃分而得出分類規(guī)則,數(shù)據(jù)量大的時候也具有很好的實(shí)時性,根據(jù)數(shù)據(jù)特點(diǎn)和要挖掘的目的,從實(shí)用的角度出發(fā),本文應(yīng)用ID3算法來對煙草銷售系統(tǒng)中的客戶資料信息進(jìn)行分析,構(gòu)造客戶類別的分類器,得到分類規(guī)則,進(jìn)而以此為依據(jù)來改進(jìn)煙草公司現(xiàn)行的貨源采購和分配。
決策樹分類算法是運(yùn)用信息熵的理論,選擇當(dāng)前樣本集中具有最大信息增益值的屬性作為根節(jié)點(diǎn),依據(jù)測試屬性的取值將樣本集劃分為幾個子樣本集,對每個子樣本集采用遞歸計算的方法重復(fù)前述過程繼續(xù)進(jìn)行劃分,直到無剩余屬性或者樣本屬于同一個類時結(jié)束,從而生成一棵決策樹。
ID3算法采用信息論中的概念,用信息增益作為屬性分類能力的度量,進(jìn)行屬性節(jié)點(diǎn)的選擇,熵表示樣本集的純度。
設(shè)S是n個數(shù)據(jù)樣本的集合,將樣本劃分為c個不同的類,每個類含樣本數(shù)ni,S劃分為c個類的信息熵按式(1)計算:
假設(shè)以屬性X作為決策樹的根節(jié)點(diǎn),屬性X具有m個不同取值,將S劃分為m個子集{S1,S2,…,Sm},根據(jù)屬性X劃分成的子集熵按式(2)計算:
熵值越小,子集劃分的純度越高,根據(jù)屬性X劃分的信息增益按式(3)計算:
其它屬性信息增益計算過程同理。
ID3算法的核心是構(gòu)造精度高、規(guī)模小的決策樹,主要分為2個步驟:決策樹的生成,即由訓(xùn)練樣本集生成一棵決策樹;決策樹的剪枝,即對上一過程生成的決策樹進(jìn)行檢驗(yàn)和校正,剪除影響預(yù)測準(zhǔn)確性的分支。定義 ID3 算法 ID3(TreeNode,data),具體過程描述如下:
1)對于訓(xùn)練樣本集data,根據(jù)決策屬性取值,按式(1)計算 E(S)。
2)對各條件屬性Xk,根據(jù)其屬性取值,按式(2)計算 E(Xk,S)。
3)對各條件屬性Xk,按式(3)計算按各條件屬性取值劃分的信息增益Gain(Xk,S),選擇信息增益最大的屬性Xmax作為節(jié)點(diǎn)TreeNode。
4)按屬性Xmax取值將樣本集劃分為子集{data1,data2,…,datam},對每個子集 datai按式(1)計算 E(Si),如果 E(Si)等于 0,則此屬性取值分支為葉節(jié)點(diǎn),否則遞歸調(diào)用 ID3(TreeNode,datai),繼續(xù)生成決策樹分支。
5)當(dāng)所有子集劃分完時生成了一棵決策樹(TreeNode集合),按一定規(guī)則剪枝后,沿著樹路徑讀取分類規(guī)則。
將ID3算法用于零售客戶分類挖掘,需要建立訓(xùn)練樣本數(shù)據(jù),本文以煙草銷售系統(tǒng)中的零售客戶數(shù)據(jù)和銷售歷史數(shù)據(jù)為基礎(chǔ),經(jīng)過一定的計算處理后轉(zhuǎn)變成適于ID3算法處理的數(shù)據(jù)形式,然后用ID3算法構(gòu)造一個分類器,得出具有一定意義的零售客戶分類信息。
根據(jù)數(shù)據(jù)挖掘的目的,對數(shù)據(jù)庫基本表中的數(shù)據(jù)進(jìn)行一定的選擇、清理和轉(zhuǎn)換,進(jìn)行挖掘所需數(shù)據(jù)從3個數(shù)據(jù)表中獲?。?/p>
1)煙草產(chǎn)品零售客戶基本信息表 用于公司所屬的各個地區(qū)零售客戶的基本信息,數(shù)據(jù)表主要字段如表1所示。
表1 客戶信息表
2)零售客戶訂單表 用于存儲公司所有訂單信息,訂單信息由零售客戶通過煙草銷售系統(tǒng)下訂單生成,操作過程如下:首先選擇所要訂購的卷煙產(chǎn)品,生成訂購產(chǎn)品列表,然后輸入各產(chǎn)品訂購數(shù)量,確認(rèn)后系統(tǒng)自動生成此客戶的訂單。存儲訂單信息的數(shù)據(jù)表主要字段如表2~3所示。
表2 客戶訂單基本信息表
表3 客戶訂單訂購產(chǎn)品信息表
表2存儲訂單基本信息,表3存儲各個訂單內(nèi)包含的產(chǎn)品詳細(xì)信息,2個表通過訂單號關(guān)聯(lián),系統(tǒng)運(yùn)行過程中這2個表會積累下大量數(shù)據(jù),對訂單金額運(yùn)用如下的算法進(jìn)行預(yù)處理(數(shù)據(jù)離散化):
a.對某一種卷煙產(chǎn)品,查詢訂單表,統(tǒng)計出所有訂購此產(chǎn)品的零售客戶;
b.對于某一零售客戶,根據(jù)客戶名和產(chǎn)品名在訂單表中統(tǒng)計出銷售這種產(chǎn)品的總訂單金額;
c.所有零售客戶對于此產(chǎn)品的總訂單金額統(tǒng)計出來后,按金額大小劃分為5個類別,即{高,較高,中等,較小,?。?,然后對某一零售客戶根據(jù)其訂單金額大小歸入某一訂單金額類別。
銷售品種處理方式如下:對于某一零售客戶,在訂單表中查詢出所有訂購的產(chǎn)品種類。根據(jù)產(chǎn)品種類在高中低檔煙草產(chǎn)品中所占的比例歸入{高檔為主,高低搭配,低檔為主}中的某個類別。銷售區(qū)域根據(jù)零售客戶詳細(xì)地址劃分為{市內(nèi),市郊,農(nóng)村地區(qū)}。其它屬性及取值來自于客戶信息表。
通過對上述3個基本表進(jìn)行數(shù)據(jù)抽取和轉(zhuǎn)換,得到數(shù)據(jù)格式如表4所示。
本文是針對某一產(chǎn)品的客戶分類,對于不同的產(chǎn)品,同一客戶可能具有不同的類別,要挖掘出公司零售客戶對于各種產(chǎn)品的分類信息,需要針對每一種產(chǎn)品進(jìn)行數(shù)據(jù)的準(zhǔn)備和挖掘,對不同的產(chǎn)品而言會有不同的客戶分類結(jié)果。以“黃鶴樓(秋·品道硬)”這類比較高檔的卷煙產(chǎn)品為例,運(yùn)用ID3算法進(jìn)行客戶分類挖掘。首先針對這種產(chǎn)品進(jìn)行數(shù)據(jù)準(zhǔn)備:抽取近一段時間內(nèi)的歷史數(shù)據(jù),按上述過程進(jìn)行數(shù)據(jù)預(yù)處理,得到訓(xùn)練數(shù)據(jù)樣本集;然后用ID3算法構(gòu)建分類器,得出分類規(guī)則。算法需要輸入訓(xùn)練數(shù)據(jù)樣本;算法輸出決策樹、分類規(guī)則。訓(xùn)練數(shù)據(jù)由系統(tǒng)根據(jù)數(shù)據(jù)庫中的客戶基礎(chǔ)數(shù)據(jù)和訂單數(shù)據(jù)自動轉(zhuǎn)換生成作為算法的輸入項,決策樹構(gòu)造完成后進(jìn)行剪枝處理,以獲取有價值的分類規(guī)則。本文以規(guī)則支持度(支持此規(guī)則的數(shù)據(jù)在樣本數(shù)據(jù)中占的比例)作為剪枝條件,分類規(guī)則按決策樹路徑讀取,轉(zhuǎn)換為“if then”格式,得到挖掘結(jié)果如圖1所示。
表4 轉(zhuǎn)換后的零售客戶信息表
在完成分類器構(gòu)造后,選擇合適規(guī)則支持度對決策樹進(jìn)行修剪,需要反復(fù)調(diào)整參數(shù)以達(dá)到需要的挖掘結(jié)果。對于這種產(chǎn)品,有8124個零售客戶在銷售,選擇支持度為0.02,從上面分類挖掘結(jié)果可得到這樣的信息,對于銷售“黃鶴樓(秋·品道硬)”產(chǎn)品的零售客戶,訂單金額高和銷售區(qū)域在市內(nèi)的客戶是此產(chǎn)品的重要客戶。而對于其它產(chǎn)品,則可能挖掘出另外不同的信息,如對于某類低檔煙,銷售區(qū)域在農(nóng)村地區(qū)的客戶可能是該產(chǎn)品的重要客戶。
將ID3算法用在煙草產(chǎn)品零售客戶分類的挖掘中,充分利用現(xiàn)有的歷史數(shù)據(jù),挖掘出有用的知識來指導(dǎo)公司的經(jīng)營決策。本文主要分析了煙草產(chǎn)品零售客戶的分類,對不同的產(chǎn)品,將客戶劃入某一個類別,利用ID3算法發(fā)掘出針對于各類產(chǎn)品的重要客戶,有針對性的進(jìn)行貨源的采購和分配,達(dá)到了庫存最小、利潤最大化的目的。
[1]魯釗,陳世平.基于ID3算法的機(jī)械制造業(yè)決策應(yīng)用[J].計算機(jī)應(yīng)用,2011,31(11):3087-3090.
[2] 劉澤,潘暉.基于ID3算法汽車變速箱故障診斷系統(tǒng)[J].長春工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2011,32(6):534-537.
[3] 段汝嬌,趙偉,等.基于模糊ID3決策樹的快速角點(diǎn)檢測算法[J].清華大學(xué)學(xué)報:自然科學(xué)版,2011,51(12):1787-1791.
[4] 王小巍,蔣玉明.決策樹ID3算法的分析與改進(jìn)[J].計算機(jī)工程與設(shè)計,2011,32(9):3069-3076.
[5] 盛俊.決策樹ID3算法的改進(jìn)及其應(yīng)用 [J].揚(yáng)州職業(yè)大學(xué)學(xué)報,2012,15(4):34-36.
[6] 張琳,陳燕,等.決策樹分類算法研究[J].計算機(jī)工程,2011,37(13):66-70.