張 雷,董萬富,闞歡迎,趙希坤
(合肥工業(yè)大學(xué)機(jī)械工程學(xué)院,安徽 合肥 230009)
隨著企業(yè)的競(jìng)爭(zhēng)逐漸從“以產(chǎn)值為中心”過渡到“以客戶需求為中心”[1],產(chǎn)品的設(shè)計(jì)是否能夠滿足客戶需求,決定著產(chǎn)品在市場(chǎng)競(jìng)爭(zhēng)中的成功與否。企業(yè)贏得市場(chǎng)的關(guān)鍵在于對(duì)客戶購(gòu)買產(chǎn)品時(shí)會(huì)著重考慮的一些問題進(jìn)行快速響應(yīng),對(duì)產(chǎn)品進(jìn)行客戶需求分析,將需求信息轉(zhuǎn)化為產(chǎn)品功能設(shè)計(jì)點(diǎn),從而有效地指導(dǎo)產(chǎn)品設(shè)計(jì),使設(shè)計(jì)出的產(chǎn)品更能滿足客戶需求,提高客戶滿意度。從企業(yè)的角度,對(duì)客戶需求數(shù)據(jù)進(jìn)行分析,可節(jié)約產(chǎn)品的開發(fā)周期、成本和資源,推動(dòng)產(chǎn)品結(jié)構(gòu)和功能的改進(jìn),同時(shí)有利于發(fā)掘潛在客戶,提高產(chǎn)品市場(chǎng)占有率;對(duì)產(chǎn)品消費(fèi)者而言,可以使設(shè)計(jì)出的產(chǎn)品更能符合消費(fèi)者的真實(shí)需求,滿足用戶的使用習(xí)慣和經(jīng)驗(yàn),有利于提高客戶使用產(chǎn)品的舒適度和滿意度。這就要求企業(yè)對(duì)客戶需求信息進(jìn)行分析,從而能夠?qū)Σ粩嘧兓目蛻粜枨筮M(jìn)行有效預(yù)測(cè),將所得信息反饋到產(chǎn)品的設(shè)計(jì)制造端,對(duì)產(chǎn)品結(jié)構(gòu)和功能進(jìn)行改進(jìn),盡可能設(shè)計(jì)制造出滿足客戶需求的產(chǎn)品。
文獻(xiàn)[2]提出一種改進(jìn)的BASS模型,用于短生命周期產(chǎn)品需求預(yù)測(cè)中歷史數(shù)據(jù)缺乏、需求影響因素考慮不充分導(dǎo)致的預(yù)測(cè)精度較低等問題;文獻(xiàn)[3]通過構(gòu)建大規(guī)模定制環(huán)境下客戶需求信息的分類模型,采用框架法和非結(jié)構(gòu)化對(duì)客戶需求信息進(jìn)行解釋;文獻(xiàn)[4]在建立客戶需求與可配置產(chǎn)品模塊實(shí)例之間的映射關(guān)系的基礎(chǔ)上進(jìn)行模塊化產(chǎn)品優(yōu)化配置設(shè)計(jì);文獻(xiàn)[5]提出了一種結(jié)合群體決策、多格式偏好分析以及最小二乘模型的客戶需求分析方法;文獻(xiàn)[6]基于模糊集理論和歐幾里德空間距離,提出了一種客戶需求權(quán)重計(jì)算方法;文獻(xiàn)[7]提出了一種基于模糊卡諾模型的客戶需求分類和權(quán)重評(píng)價(jià)方法,使客戶需求類別與相關(guān)重要度計(jì)算相結(jié)合的客戶需求預(yù)測(cè)方法;在以數(shù)據(jù)驅(qū)動(dòng)的產(chǎn)品設(shè)計(jì)方面,文獻(xiàn)[8]提出了一種基于時(shí)間依賴的產(chǎn)品使用數(shù)據(jù)分析的集成設(shè)計(jì)改進(jìn)方法;文獻(xiàn)[9]提出一種基于強(qiáng)化學(xué)習(xí)的數(shù)據(jù)驅(qū)動(dòng)的浮選工業(yè)過程操作最優(yōu)控制;文獻(xiàn)[10]提出了一種動(dòng)力數(shù)據(jù)驅(qū)動(dòng)用于熱聲學(xué)穩(wěn)定運(yùn)行的低預(yù)混式混合動(dòng)力裝置的設(shè)計(jì),這些只考慮到了產(chǎn)品使用過程,沒有把客戶需求考慮到產(chǎn)品的設(shè)計(jì)中去。
通過以上文獻(xiàn)的分析,在客戶需求和數(shù)據(jù)驅(qū)動(dòng)的產(chǎn)品設(shè)計(jì)方面,國(guó)內(nèi)外學(xué)者做了很多研究性工作,并且取得了較多成果和廣泛的應(yīng)用,但并沒有考慮把客戶需求信息和產(chǎn)品使用性能情況以及產(chǎn)品更新?lián)Q代時(shí)結(jié)構(gòu)功能改進(jìn)方面綜合起來應(yīng)用到產(chǎn)品的設(shè)計(jì)制造中,因此提出了一種基于改進(jìn)的Apriori算法對(duì)客戶需求數(shù)據(jù)進(jìn)行綜合分析,并通過冰箱產(chǎn)品的客戶需求為例,說明該方法的實(shí)施過程。
Apriori算法是關(guān)聯(lián)規(guī)則中最具影響的挖掘頻繁項(xiàng)集的經(jīng)典算法[11],該算法的基本思想是首先對(duì)數(shù)據(jù)庫事務(wù)中的項(xiàng)目進(jìn)行掃描,獲取這些項(xiàng)目組成項(xiàng)集的支持度值,其次判斷這些項(xiàng)集的支持度與設(shè)定的最小支持度的關(guān)系,保留大于或等于設(shè)定支持度的所有頻繁項(xiàng)集,若項(xiàng)集的支持度小于設(shè)定的支持度時(shí),使用剪枝的方法將該項(xiàng)集去除。該方法先找出頻繁1項(xiàng)集所組成的集合L1,然后用L1去尋找滿足設(shè)定支持度的頻繁2項(xiàng)集的集合L2,以此類推,使用迭代的方式去逐層搜索滿足條件的頻繁項(xiàng)集,直到搜索不到滿足設(shè)定支持度的更高維度的頻繁K項(xiàng)集為止,該算法的流程,如圖1所示。
圖1 Apriori算法流程圖Fig.1 Apriori Algorithm Flowchart
但是該算法在每次尋找頻繁K項(xiàng)集的集合Lk時(shí)都需要掃描整個(gè)數(shù)據(jù)庫,該算法的缺陷也是很顯然的:(1)當(dāng)數(shù)據(jù)量很大時(shí),由低維度的頻繁項(xiàng)集連接生成高維度的候選頻繁項(xiàng)集的數(shù)量非常大;(2)每次驗(yàn)證候選頻繁項(xiàng)集時(shí),都需要掃描整個(gè)數(shù)據(jù)庫,非常耗時(shí)。
布爾矩陣是元素只取0或1的矩陣[12],使用布爾矩陣可以有效地替代數(shù)據(jù)中的事務(wù)數(shù)據(jù)項(xiàng),并且可以使數(shù)據(jù)的存儲(chǔ)空間得到很大程度的優(yōu)化。設(shè)X={x1,x2,…,xm},Y={y1,y2,…,ym},R為從X到Y(jié)的二元關(guān)系,記rij=R(xi,yj),R=[rij]m×n,則R為布爾矩陣。
若有k個(gè)元素存在事件A中,則稱A為k項(xiàng)集事件,A中滿足設(shè)定支持度的事件稱為頻繁項(xiàng)集,算法可行性主要依據(jù)布爾矩陣下面的2條性質(zhì):(1)當(dāng)布爾矩陣每列中1的個(gè)數(shù)即該項(xiàng)出現(xiàn)的次數(shù)不滿足設(shè)定的支持度時(shí),該列為非頻繁項(xiàng)集,依據(jù)頻繁項(xiàng)集的反單調(diào)性,該列可以被去除;(2)當(dāng)布爾矩陣每行中1出現(xiàn)的次數(shù)小于k時(shí),意味著數(shù)據(jù)項(xiàng)中的項(xiàng)數(shù)小于k個(gè),不能滿足頻繁k項(xiàng)集的產(chǎn)生,故在求頻繁k項(xiàng)集時(shí)可以被去除。
針對(duì)上述Apriori算法存在的兩個(gè)明顯缺陷,利用布爾矩陣對(duì)其進(jìn)行改進(jìn),改進(jìn)后的算法在數(shù)據(jù)庫掃描時(shí)只需掃描一次,通過掃描事務(wù)數(shù)據(jù)庫映射成的布爾矩陣相應(yīng)的列就能得到項(xiàng)的頻度,其中布爾矩陣的行和列分別代表數(shù)據(jù)項(xiàng)和事務(wù)項(xiàng),通過事務(wù)數(shù)據(jù)庫映射成的布爾矩陣就可以進(jìn)行頻繁項(xiàng)集的查找。
由數(shù)據(jù)庫D映射成的布爾矩陣的第一行是表志位,該行中的元素r1j為1時(shí),表示第j列所代表的事務(wù)是候選頻繁項(xiàng)集,r1j為0時(shí),表示第j列所代表的事務(wù)不是候選頻繁項(xiàng)集。首先我們對(duì)布爾矩陣進(jìn)行初始化,令矩陣中第一行所有的元素r1j=1,表示算法在第一次執(zhí)行剪枝時(shí),所有的事務(wù)項(xiàng)都是候選頻繁項(xiàng)集。其中r1j(r1j≥2)表示事務(wù)中Ti-1項(xiàng)事務(wù)出現(xiàn)的情況,若r1j=1時(shí),表示該位置所代表的Ti-1事務(wù)項(xiàng)被選擇,r1j=0時(shí),表示該位置所代表的Ti-1事務(wù)項(xiàng)未被選擇。對(duì)于一個(gè)給定的數(shù)據(jù)庫D的列中出現(xiàn)的數(shù)字序號(hào)表示該事務(wù)數(shù)據(jù)庫中記錄的數(shù)據(jù)項(xiàng),數(shù)據(jù)庫D的行中出現(xiàn)的I1,I2,…,In表示數(shù)據(jù)庫中每項(xiàng)事務(wù)的被選擇情況,若布爾矩陣中的元素r1j(r1j≥2)為1時(shí),表示序號(hào)為Ti-1的行中Ij所代表的事務(wù)項(xiàng)被選擇,反之則表示序號(hào)為Ti-1的行中Ij所代表的事務(wù)項(xiàng)未被選擇。對(duì)事務(wù)數(shù)據(jù)庫做一次完整的掃描后,就可以把事務(wù)數(shù)據(jù)庫D在f:D→R的方式下映射成布爾矩陣R。
隨著科技的進(jìn)步,可以很便捷的獲取客戶需求數(shù)據(jù)信息。從客戶信息反饋、參考相似企業(yè)產(chǎn)品、相關(guān)專利和科技文獻(xiàn)等途徑采集客戶需求信息,社交媒體等為人們提供了在虛擬社區(qū)和網(wǎng)絡(luò)互動(dòng),為人們分享和交流信息和意見提供方便,利用社交媒體可以通過設(shè)置在線調(diào)查問卷的方式進(jìn)行客戶需求數(shù)據(jù)信息的獲取,也可以通過發(fā)放調(diào)查問卷的方式獲取客戶需求數(shù)據(jù)信息。
對(duì)于事務(wù)數(shù)據(jù)庫D映射成的布爾矩陣中的每一項(xiàng)(列)Ij的方向向量用表示,則Ij的支持度support=r2j+r3j+…+r(m+1)j,對(duì)于R中任意不同的兩項(xiàng)(列)Ii、Ij的邏輯運(yùn)算表示為:Rij=Ri∩Rj=(r2i∩r2j,r3i∩r3j,…,r(m+1)i∩r(m+1)j),其中∩表示邏輯“與”運(yùn)算符,則Ii∩Ij的支持度support=r2i∩r2j+r3i∩r3j+…+r(m+1)i∩r(m+1)j,在尋找候選頻繁K項(xiàng)集時(shí)的邏輯運(yùn)算如下:Rij…k=Ri∩Rj∩…∩RK=(r2i∩r2j∩…∩r2k,r3i∩r3j∩…∩r3k,…,r(m+1)i∩r(m+1)j∩…∩r(m+1)k),所以K項(xiàng)集的支持度為:support=r22∩r23∩…∩r2k+r3i∩r3j∩…∩r3k+…+r(m+10)i∩r(m+1)j∩…∩r(m+1)k利用布爾矩陣改進(jìn)的Aprori算法尋找頻繁k項(xiàng)集的步驟如下:
(1)掃描事務(wù)數(shù)據(jù)庫D,并把事物數(shù)據(jù)庫D映射成布爾矩陣R(根據(jù)事務(wù)數(shù)據(jù)庫事務(wù)數(shù)為m,項(xiàng)目數(shù)為n,將事務(wù)數(shù)據(jù)庫映射成(m+1)行,n列的布爾矩陣。并初始化第一行都為1);(2)設(shè)定事務(wù)數(shù)據(jù)庫D的最小支持度min_support;(3)計(jì)算每個(gè)項(xiàng)目的支持度support=r2n+r3n+…+r(m+1)n,如果In<min_support則r1n=0,得到了頻繁1項(xiàng)集,構(gòu)成新的布爾矩陣R1;(4)將得到的布爾矩陣R1按照邏輯運(yùn)算計(jì)算支持度,將支持度大于或等于min_support的項(xiàng)保留,則得到頻繁2項(xiàng)集,并將非頻繁項(xiàng)集的標(biāo)志值改為0,得到R2;(5)使用遞歸的方法,通過頻繁K項(xiàng)集計(jì)算出頻繁(K+1)項(xiàng)集,并將非頻繁項(xiàng)集的標(biāo)志位改為0,得到布爾矩陣Rk;(6)當(dāng)(k+1)的頻繁項(xiàng)集的最大支持度maxsupport<min_support,輸出頻繁K項(xiàng)集,否則轉(zhuǎn)入Step5繼續(xù)尋找更高維度的頻繁項(xiàng)集。
利用布爾矩陣改進(jìn)Apriori算法的流程,如圖2所示。
圖2 利用布爾矩陣對(duì)Apriori改進(jìn)算法流程圖Fig.2 Using Boolean Matrix to Improve the Flow Chart of Apriori Algorithm
采用布爾矩陣改進(jìn)的Apriori算法的計(jì)算復(fù)雜度遠(yuǎn)比改進(jìn)前Apriori算法的復(fù)雜度低,改進(jìn)前的Apriori的復(fù)雜度為其中D為數(shù)據(jù)庫事務(wù)數(shù)量,K為頻繁項(xiàng)集的大小。改進(jìn)后的算法的復(fù)雜度為O(m·nk),其中m為事物數(shù)據(jù)庫事務(wù)數(shù),n為項(xiàng)目數(shù),K為頻繁項(xiàng)集的大小,由于每次獲得K頻繁項(xiàng)集時(shí),非頻繁項(xiàng)集的標(biāo)志位都會(huì)被修改,元素被修改成0的標(biāo)志位,將不再參與尋找(K+1)頻繁項(xiàng)集的運(yùn)算,m為尋找K頻繁項(xiàng)集時(shí)修改后的數(shù)據(jù)庫事務(wù)的列數(shù),很顯然K值越大m值越小。并且引入布爾矩陣后的運(yùn)算都是邏輯運(yùn)算,計(jì)算速度也有提升,所以改進(jìn)后的算法在時(shí)間復(fù)雜度上更優(yōu),同時(shí)也節(jié)省了很大的I/O資源,同時(shí)降低了計(jì)算的空間復(fù)雜度。與改進(jìn)前用大量重復(fù)字符存儲(chǔ)事務(wù)數(shù)據(jù)相比,改進(jìn)后的算法,把事務(wù)數(shù)據(jù)庫映射成布爾矩陣來存儲(chǔ),在每次尋找頻繁項(xiàng)集時(shí)都不用開辟新的空間來存儲(chǔ)非頻繁項(xiàng)集。因此在具有很大數(shù)據(jù)量的事務(wù)數(shù)據(jù)庫的存儲(chǔ)方面節(jié)省了大量的存儲(chǔ)空間。
以某企業(yè)針對(duì)冰箱產(chǎn)品開展的客戶需求調(diào)查為例,按性別、年齡段(18~30歲、30~40歲、40~50、50歲以上)、地區(qū)(A地區(qū)、B地區(qū)、C地區(qū)、D地區(qū)),地區(qū)的劃分依據(jù)該企業(yè)冰箱產(chǎn)品市場(chǎng)占有率排名前四的地區(qū),把客戶分類,并結(jié)合正交實(shí)驗(yàn)的思想從調(diào)查問卷數(shù)據(jù)庫中抽樣出16組數(shù)據(jù),利用改進(jìn)的Apriori算法對(duì)客戶需求數(shù)據(jù)進(jìn)行分析,說明該方法的具體實(shí)施過程,挖掘得到客戶需求數(shù)據(jù)之間深層次、不確定性的聯(lián)系,為產(chǎn)品的設(shè)計(jì)制造提供參考依據(jù),生產(chǎn)出以數(shù)據(jù)驅(qū)動(dòng)、市場(chǎng)需求為導(dǎo)向的產(chǎn)品。從客戶需求數(shù)據(jù)庫D中抽樣出來的客戶需求信息,如表1所示。
表1 客戶需求信息采集Tab.1 The Tem plate of Customer Requirement Gathering
表中:I1—品牌;I2—外觀及內(nèi)飾;I3—價(jià)格;I4—耗電量;I5—無異味或不串味;I6—容積;I7—保鮮效果;I8—烹飪教學(xué);I9—營(yíng)養(yǎng)分析。
利用布爾矩陣改進(jìn)的Apriori算法進(jìn)行分析,步驟如下:
(1)掃描事務(wù)數(shù)據(jù)庫D(客戶需求信息采集表),在f:D→R的方式下映射成布爾矩陣R,如下所示:
(2)設(shè)定事務(wù)數(shù)據(jù)庫D的最小支持度min_sopport=3。
(3)計(jì)算候選頻繁1項(xiàng)集,得I1=10,I2=8,I3=9,I4=10,I5=9,I6=6,I7=10,I8=6,I9=12所以1頻繁項(xiàng)集為{I1,I2,I3,I4,I5,I6,I7,I8,I9},表示在最小支持度為3時(shí),得到的1頻繁項(xiàng)集。
(4)計(jì)算候選頻繁2項(xiàng)集,得I12=6,I13=5,I14=7,I15=5,I16=4,I17=6,I18=4,I19=6,I23=4,I24=5,I25=5,I26=1,I27=5,I28=2,I29=5,I34=5,I35=4,I36=4,I37=4,I38=3,I39=6,I45=6,I46=5,I47=7,I48=4,I49=9,I56=3,I57=9,I58=4,I59=7,I67=4,I68=3,I69=6,I78=5,I79=8,I89=5其中Iij表示在滿足最小支持度時(shí),得到的2頻繁項(xiàng)集為:{I12,I13,I14,I16,I17,I18,I19,I23,I24,I25,I27,I29,I34,I35,I36,I37,I38,I39,I45,I46,I47,I48,I49,I57,I58,I59,I67,I68,I69,I78,I49,I89}根據(jù)頻繁項(xiàng)集的性質(zhì),產(chǎn)生非頻繁項(xiàng)集的標(biāo)志位所在列的序號(hào)為2,所以r12=0。得到新的布爾矩陣R1:
由矩陣R1可得非頻繁項(xiàng)集的表志位所在列的序號(hào)為2,則第二列將不再參與后續(xù)頻繁項(xiàng)集的尋找運(yùn)算。鑒于篇幅限制以及計(jì)算的復(fù)雜度,采用Matlab編程進(jìn)行頻繁項(xiàng)集的尋找計(jì)算,得I4579=5,因?yàn)椴淮嬖?頻繁項(xiàng)集,所以事務(wù)數(shù)據(jù)庫的頻繁項(xiàng)集為I4579。計(jì)算結(jié)果表明,在抽取的16組客戶需求數(shù)據(jù)中,客戶在購(gòu)買產(chǎn)品時(shí),會(huì)著重考慮冰箱產(chǎn)品的耗電量,使用過程中是否有異味或串味情況,冰箱的保鮮效果以及是否具有對(duì)儲(chǔ)存在冰箱中的食材具有營(yíng)養(yǎng)分析的功能。
利用布爾矩陣改進(jìn)的Apriori算法,很大程度上降低了計(jì)算的復(fù)雜度,使計(jì)算速度有了很大的提升,把事務(wù)數(shù)據(jù)庫轉(zhuǎn)化為布爾矩陣來存儲(chǔ),在具有大數(shù)據(jù)量的存儲(chǔ)方面節(jié)省了大量的存儲(chǔ)空間。對(duì)獲取的調(diào)查數(shù)據(jù)進(jìn)行分析,由計(jì)算結(jié)果可知,顧客在購(gòu)買冰箱時(shí),會(huì)著重考慮冰箱在使用過程中的耗電量,這也反映出客戶的綠色消費(fèi)觀念的提高,更加注重低碳生活,在使用過程中是否會(huì)出現(xiàn)異味、串味情況以及冰箱在使用過程中的保鮮效果也成為顧客關(guān)心的重要問題,用戶在使用冰箱的過程中著重考慮上述問題的同時(shí)也更加注重冰箱的智能性,希望冰箱具備對(duì)儲(chǔ)存食物具有營(yíng)養(yǎng)分析功能。通過以上分析可知,在冰箱的設(shè)計(jì)制造過程中要更加注重冰箱的能耗問題,設(shè)計(jì)出更加綠色、節(jié)能、低碳的產(chǎn)品,通過技術(shù)創(chuàng)新在冰箱結(jié)構(gòu)設(shè)計(jì)和工藝方法方面盡量解決或降低冰箱在使用過程中出現(xiàn)的異味、串味問題以及提高冰箱在使用過程中的保鮮效果,同時(shí)在冰箱的設(shè)計(jì)制造時(shí)考慮冰箱的智能化。