范 瑛
(長沙商貿(mào)旅游職業(yè)技術(shù)學院 湖南 長沙 410000)
新時期,技術(shù)的發(fā)展促使數(shù)據(jù)挖掘進入了全景式的數(shù)據(jù)空間,以MS SQL、Oracle為代表的傳統(tǒng)數(shù)據(jù)挖掘架構(gòu)陸續(xù)具備了智能分析基礎(chǔ),為基于Python的數(shù)據(jù)挖掘提供了支持。與此同時,在消費行業(yè)競爭日益激烈的當今時代,怎樣挽留更多客戶成為消費行業(yè)從業(yè)者經(jīng)營中愈發(fā)關(guān)注的業(yè)務(wù)指標。而了解客戶的特征以及消費傾向?qū)τ谙M行業(yè)企業(yè)更好的制訂營銷服務(wù)方案至關(guān)重要?;诖耍肞ython數(shù)據(jù)挖掘技術(shù),探究客戶預(yù)測的實現(xiàn)非常必要。
Python是一種以簡潔著稱的語法,具有典型的弱類型特點,多通過縮進控制結(jié)構(gòu),即利用4個空格、1個tab代替大括號作用。從數(shù)據(jù)結(jié)構(gòu)來看,Python包括活用字典、列表兩種數(shù)據(jù)結(jié)構(gòu),前者可以視為封裝完畢的hash表,便于進行
在Python使用時,可以利用easy_install、pip進行一鍵手動安裝,進而在Linux下解壓進入目錄執(zhí)行install?;蛘哌x擇.exe格式的Windows系統(tǒng)安裝包雙擊后下載安裝。同時進行具有基于GPU的deep learning編譯模塊eclipse的安裝,需要注意的是,該編譯模塊需要Java環(huán)境,除內(nèi)置Java環(huán)境的Linux、Mac系統(tǒng)外,包括Windows在內(nèi)的其他系統(tǒng)需要進行額外安裝[2]。在這個基礎(chǔ)上,根據(jù)數(shù)據(jù)挖掘需要,還可進行Python標準庫、Numpy與Scipy封裝包、Matplotlib可視化圖形庫以及Scikit Learn原型算法庫的安裝,滿足Python數(shù)據(jù)挖掘要求。
在基于Python數(shù)據(jù)挖掘技術(shù)應(yīng)用前,需要以數(shù)據(jù)集的形式進行數(shù)據(jù)收集描述[3-4]。以消費行業(yè)潛在會員預(yù)測為例,可以收集描述消費行業(yè)潛在會員的相關(guān)信息,共包含千余條數(shù)據(jù),20個字段。見表1。
表1 數(shù)據(jù)集描述(局部)
表1(續(xù))
在數(shù)據(jù)集描述完畢后,需要將描述信息導(dǎo)入到預(yù)測模型中。第一步,可以通過“import nunpy as np”語句,輸出文件夾中存儲的文件名“print los.ilstdi
在基于Python數(shù)據(jù)挖掘過程中,海量原始數(shù)據(jù)無法保證完全無缺失,甚至會存在不一致和異常數(shù)據(jù),對數(shù)據(jù)挖掘建模執(zhí)行效率具有較大不利影響,比如,導(dǎo)致挖掘結(jié)構(gòu)偏差等。此時,進行數(shù)據(jù)的清洗處理就非常必要。數(shù)據(jù)清洗處理主要利用python內(nèi)interpolate、unique、notnull的功能,進行異常數(shù)據(jù)篩選或者轉(zhuǎn)型[5]。比如,利用interpolate一維或高維數(shù)據(jù)插值功能,進行異常數(shù)據(jù)處理,利用unique函數(shù)去除數(shù)據(jù)中重復(fù)元素,保證單值元素列表的順利獲得,利用notnull判斷是否非空等。具體如下:
利用interpolate函數(shù)中涵蓋的拉格朗日插值法,輸入“f=scipy.interpolate.lagrange(x,y)”,根據(jù)需要查找對應(yīng)插值,計算對應(yīng)的自變量x、因變量y數(shù)值。
利用unique函數(shù)面對Series對象輸入“f=remove.any(source.Duplicated(subset=[‘customer’])”將數(shù)據(jù)中重復(fù)元素去除。重復(fù)操作,直至輸出為False,獲得不存在重復(fù)值的np.unique(D)單值元素列表。
在數(shù)據(jù)清洗處理之后,利用Python內(nèi)user_fit.xlsx數(shù)據(jù)集進行客戶預(yù)測模型的構(gòu)建,用于預(yù)測數(shù)據(jù)集中會員消費傾向。在模型構(gòu)建時,可以選擇樸素貝葉斯法[6-7]。假定會員注冊時間、會員消費數(shù)量、會員反饋數(shù)量等特征相互獨立,但上述獨立的特征極易對最后目標參數(shù)——用戶是否成為會員造成影響,在已描述一個會員數(shù)據(jù)以及其他客戶特征取值的情況下,可以運用貝葉斯定理進行后驗概率計算,進行隨機事件——客戶發(fā)展為會員的條件概率的描述。即:P(會員|客戶注冊時間)=P(會員|客戶注冊時間×客戶消費時間)=P(客戶注冊時間×客戶消費時間)P(客戶注冊時間×客戶消費時間|會員)×P(會員)。因上述變量為聯(lián)系變量,需要在一個假定區(qū)間內(nèi)對其進行離散化處理,獲得變量落到對應(yīng)區(qū)間內(nèi)的概率[8-9]。最終通過計算用戶成為會員、非會員的概率,獲得類別劃分屬性。
預(yù)測模型構(gòu)建過程為:
通過對上述構(gòu)建模型進行測試,得出準確率在91.5%左右,可以基本滿足客戶預(yù)測要求。
在確定數(shù)據(jù)基本可以滿足客戶預(yù)測要求后,使用Pandas進行數(shù)據(jù)讀取,加載保存到模型,進行客戶發(fā)展為會員的預(yù)測分析[7]。即:
在預(yù)測分析的基礎(chǔ)上,可以將預(yù)測某位客戶為潛在會員的概率添加到以往數(shù)據(jù)集的最后一列,針對概率排序,將55%的客戶篩選出來。在這個基礎(chǔ)上,進行用戶畫像,開展精準營銷服務(wù)方案策劃、執(zhí)行。
綜上所述,Python是數(shù)據(jù)挖掘領(lǐng)域使用頻率較高的Linux、Mac系統(tǒng)內(nèi)置語言,在客戶預(yù)測方面也具有優(yōu)良的表現(xiàn),不僅可以基于現(xiàn)有數(shù)據(jù)進行客戶畫像,而且可以根據(jù)客戶特征對用戶是否可以發(fā)展為會員、續(xù)約或流失進行預(yù)測分析[10]。為了充分發(fā)揮Python數(shù)據(jù)挖掘技術(shù)的優(yōu)良作用,可以事先收集客戶社會屬性、基礎(chǔ)屬性、行為特征以及心理特征信息。在初步清理、篩選、歸一化處理后,抽象出一個標簽化的客戶模型[11]。通過進一步的模型訓練,更加精準地洞察客戶需求以及行為變化趨勢,為針對性的營銷、服務(wù)決策提供依據(jù),提高經(jīng)營效益。