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