以“上大學(xué)分析”為例體驗(yàn)什么是數(shù)據(jù)挖掘
談到BI,就會談到數(shù)據(jù)挖掘(Data mining)。數(shù)據(jù)挖掘是指用某些方法和工具,對數(shù)據(jù)進(jìn)行分析,發(fā)現(xiàn)隱藏規(guī)律并利的一種方法。下面我們將通過具體的例子來學(xué)習(xí)什么是數(shù)據(jù)挖掘。
案例“上大學(xué)分析”-體驗(yàn)什么是數(shù)據(jù)挖掘
某社會機(jī)構(gòu),收集了大量的學(xué)生考大學(xué)的數(shù)據(jù)。該機(jī)構(gòu)希望找出一些規(guī)律,以推動更多的學(xué)生考大學(xué)。該機(jī)構(gòu)委托你來做這個分析工作,給出具體的可以推動更多學(xué)生考大學(xué)的建議。
收集到的數(shù)據(jù)如下:
你可能會考慮用SQL語句進(jìn)行查詢分析。但問題是:
- 1.用什么語句查呢?要組合什么條件呢?
- 2.你想查到怎樣的結(jié)果呢?這個結(jié)果對決策有幫助嗎?
那數(shù)據(jù)挖掘一下吧!但如何挖掘呢?
不了解數(shù)據(jù)挖掘的人,往往會認(rèn)為只需要讓計(jì)算機(jī)去挖掘一下,計(jì)算機(jī)就能幫我們找出想要的東西。計(jì)算機(jī)哪會這樣神奇,在數(shù)據(jù)挖掘之前,我們必須要自己好好分析一下。
1.明確挖掘的目標(biāo)。
我們看看原始需求是這樣的:該機(jī)構(gòu)希望找出一些規(guī)律,以推動更多的學(xué)生考大學(xué)。
你可能會說:該目標(biāo)也太大了一點(diǎn)吧!現(xiàn)在該機(jī)構(gòu)委托你做這個事情,人家不是專業(yè)人士,你還指望人家什么都幫你做好嗎?那要你干嘛!
我們仔細(xì)分析一下,原始數(shù)據(jù)有姓名、性別、IQ、家庭年收入、兄弟姐妹數(shù)量、是否想上大學(xué)字段,要推動更多學(xué)生考大學(xué),我們無非就是要分析出:
1)有上大學(xué)計(jì)劃的人主要原因是什么呢?
2)無上大學(xué)計(jì)劃的人主要原因是什么呢?
分析出這些原因,就可以提出針對性的建議了。
2.明確因果關(guān)系
看下面這個圖:
對原始數(shù)據(jù)表進(jìn)行分析,我們可以推論出:家庭收入、性別、兄弟姐妹數(shù)量、IQ這些因素,很可能會影響有否上大學(xué)計(jì)劃。至于姓名會不會影響,我們可以用常識判斷應(yīng)該不會,故可以排除。
這樣我們就可以確定輸入列有:家庭收入、性別、兄弟姐妹數(shù)量、IQ,可預(yù)測列為:有上大學(xué)計(jì)劃否。
數(shù)據(jù)挖掘的目標(biāo)就是找出輸入列與可預(yù)測列的關(guān)系,只要找到這個規(guī)律,就可以提出針對性的建議,也可以利用這個規(guī)律做預(yù)測。
以上工作準(zhǔn)備就緒后,我們就需要選擇合適的分析方法來數(shù)據(jù)挖掘了。我們選擇“決策樹”的方法,下面是決策樹的部分分析結(jié)果:
說明:
1.最上面的一個節(jié)點(diǎn)表示有55%的人有計(jì)劃上大學(xué),45%的人沒有計(jì)劃。
2.第二層節(jié)點(diǎn),以IQ為條件進(jìn)行劃分,IQ大于100的人中,有上大學(xué)計(jì)劃的人有79%之多,而IQ小于等于100的人,有上大學(xué)計(jì)劃的人只有35%,這說明IQ是很重要的影響因素。
3.第三層節(jié)點(diǎn)是年收入,第四層是兄弟姐妹數(shù)量。
4.決策樹算法會分析原始數(shù)據(jù),將影響程度最大的因素排在上面,次之的因素排在后面。
由上面的分析,我們可以得到這樣的一些信息:
1.越是IQ高的越有上大學(xué)的計(jì)劃。
2.家庭收入越高,越有上大學(xué)計(jì)劃。
3.兄弟姐妹越多,上大學(xué)計(jì)劃就越微。
4.性別沒有在這棵樹出現(xiàn),說明性別對有否上大學(xué)計(jì)劃沒有明顯影響。
接下來我們就可以提出針對性的建議,以推動更多人考大學(xué):
1.大學(xué)學(xué)位有限,目前重點(diǎn)應(yīng)該是鼓勵更多的聰明的學(xué)生考大學(xué)。
2.聰明的學(xué)生不計(jì)劃上大學(xué),主要原因是家庭收入低、兄弟姐妹多,針對這樣的情況,政府可考慮降低大學(xué)學(xué)費(fèi),或?qū)Φ褪杖搿⒍嘧优募彝ミM(jìn)行資助。
總結(jié)一下數(shù)據(jù)挖掘的過程:
1.明確你的目標(biāo),收集相關(guān)數(shù)據(jù)。 2.根據(jù)目標(biāo)分析這些數(shù)據(jù),找出輸入列、可預(yù)測列。 3.選擇合適的數(shù)據(jù)挖掘方法。 4.分析數(shù)據(jù)挖掘結(jié)果,給出建議。 第2、3步可能需要不斷地嘗試和調(diào)試,才能找到合適的分析結(jié)果。
怎么樣?這個過程不簡單吧?以上這個例子已經(jīng)經(jīng)過我的簡化和提煉,其目標(biāo)就是讓大家能容易理解什么是數(shù)據(jù)挖掘,實(shí)際工作中的數(shù)據(jù)挖掘難度是很高的,需要具備這些能力:
1.能深徹體會業(yè)務(wù)的要求,能將客戶籠統(tǒng)的需求轉(zhuǎn)化為實(shí)在的工作指導(dǎo)。
2.能分析出輸入列、可預(yù)測列。
3.熟悉各種數(shù)據(jù)挖掘方法,會選擇合適的方法進(jìn)行分析。
4.能深入分析數(shù)據(jù)挖掘的結(jié)果,綜合運(yùn)用你的各種知識,為客戶提出針對性的決策建議。
常見的數(shù)據(jù)挖掘方法
常見的數(shù)據(jù)挖掘方法有分類、聚類、關(guān)聯(lián)、回歸、時(shí)間序列分析、離散序列分成、偏差分析、貝葉斯、神經(jīng)網(wǎng)絡(luò)等等。這些內(nèi)容都涉及到深厚的數(shù)學(xué)知識,下面只是一些膚淺的介紹,讓大家有個大概的認(rèn)識,為大家進(jìn)一步學(xué)習(xí)打好基礎(chǔ)。
數(shù)據(jù)挖掘算法之分類
例:某銀行每天收到很多信用卡辦理的申請,為提高效率和準(zhǔn)確性,想應(yīng)用數(shù)據(jù)挖掘技術(shù)來改善工作,你會怎樣考慮呢?
該銀行有大量的歷史數(shù)據(jù),將申請者分為高、中、低三種風(fēng)險(xiǎn)類型,這樣輸入列就是申請者的學(xué)歷、收入、職業(yè)等信息,而可預(yù)測列就是風(fēng)險(xiǎn)類型。這樣對歷史數(shù)據(jù)進(jìn)行數(shù)據(jù)挖掘后,當(dāng)有新的申請者提交資料,系統(tǒng)就可以判斷該申請者風(fēng)險(xiǎn)類型為高、中還是低了。
以上的算法就是“分類”,該挖掘方法需人工指定類別,然后找出一組屬性與該類別的關(guān)系,利用這些關(guān)系來預(yù)測新的情況。
數(shù)據(jù)挖掘算法之聚類
“聚類”與“分類”很相似,同樣是找出一組屬性與類別的關(guān)系,不同的是這類別不是事先指定的,而是由數(shù)據(jù)挖掘自己找出分類。
例:某公司收集了很多客戶的資料,記錄了客戶的年齡和收入。該公司相對這些數(shù)據(jù)進(jìn)行分析,找出可以重點(diǎn)營銷的客戶對象。我們可指定輸入列為年齡和收入,經(jīng)過聚類數(shù)據(jù)挖掘后,發(fā)現(xiàn)客戶群可以劃分為三個群體:低收入年輕客戶、高收入中年客戶、收入相對低的年老客戶。根據(jù)這樣的分析結(jié)果,公司可采取決策,重點(diǎn)針對高收入中年客戶進(jìn)行營銷活動。
數(shù)據(jù)挖掘算法之關(guān)聯(lián)
例:在一家超市里,有一個有趣的現(xiàn)象:尿布和啤酒赫然擺在一起出售。但是這個奇怪的舉措?yún)s使尿布和啤酒的銷量雙雙增加了。這不是一個笑話,而是發(fā)生在美國沃爾瑪連鎖店超市的真實(shí)案例,并一直為商家所津津樂道。原來,美國的婦女們經(jīng)常會囑咐她們的丈夫下班以后要為孩子買尿布。而丈夫在買完尿布之后又要順手買回自己愛喝的啤酒,因此啤酒和尿布在一起購買的機(jī)會還是很多的。
上述這個例子經(jīng)常會被人拿來說,但很少人會舉一反三地應(yīng)用這個例子。我們有很多超市記錄了大量的交易數(shù)據(jù),只要對這些交易數(shù)據(jù)做一下關(guān)聯(lián)分析,就很可能會得到不少價(jià)值巨大的商業(yè)機(jī)會。上述這個“尿布+啤酒”的例子,就是應(yīng)用了關(guān)聯(lián)分析,發(fā)現(xiàn)尿布和啤酒兩個東西經(jīng)常被一起賣掉。關(guān)聯(lián)分析主要用來找出某些東西“擺在一起“的機(jī)會。我們上網(wǎng)上商城購買東西,你每選擇一個商品,就可能會向你推銷一堆別的商品,這很可能就是關(guān)聯(lián)分析在“作怪”。
數(shù)據(jù)挖掘算法之回歸
變量X、Y可能存在關(guān)系,我們可以將大量的(X、Y)繪制到一張圖上,形成一張散點(diǎn)圖。如果這些散點(diǎn)更好都在一條直線附近,那么這條直線的方程就可以近似代表X與Y的關(guān)系。
所謂的回歸,就是要找到一個函數(shù)代表變量X1,X2,X3,…與Y的關(guān)系,該函數(shù)所繪制出來的曲線,能盡量擬合這些“散點(diǎn)”。
下圖是某軟件公司某項(xiàng)目測試時(shí)間與發(fā)現(xiàn)缺陷數(shù)量的關(guān)系圖:
回歸可分為線性回歸和非線性回歸,線性回歸比較容易操作,但一般情況下數(shù)據(jù)很難是線性的,而非線性回歸就超復(fù)雜了。
上圖的線性模型采用的是多階段的線性回歸,指數(shù)模型采用的是多階段的指數(shù)回歸,而黑色曲線代表的是真實(shí)數(shù)據(jù),從圖中看,似乎指數(shù)模型的吻合度更高一點(diǎn)。
數(shù)據(jù)挖掘算法之時(shí)間序列分析
例1:炒股的人都想預(yù)測明天是漲還是跌,實(shí)際上我們已經(jīng)積累了大量的歷史數(shù)據(jù),說不定還是可以預(yù)測的!某股票已經(jīng)連續(xù)漲了3天,明天會不會再漲呢?某股票連續(xù)跌了7天了,明天應(yīng)該不會再跌了吧?
例2:很多商家會在某些節(jié)假日時(shí),重點(diǎn)銷售某些產(chǎn)品,以求可以賣出更多,圣誕節(jié)快到了,應(yīng)該主推什么產(chǎn)品好呢?實(shí)際上各商家的收款系統(tǒng)中,記錄了大量的與時(shí)間相關(guān)的銷售數(shù)據(jù),如果對這些數(shù)據(jù)做一下時(shí)間序列分析,說不定能找到重大商機(jī)。
時(shí)間序列分析,輸入列都是與時(shí)間相關(guān)的數(shù)據(jù),同時(shí)需要考慮季節(jié)、歷史等因素,這樣就可以預(yù)測某個時(shí)間會怎樣了。
數(shù)據(jù)挖掘算法之離散序列分析
某網(wǎng)站對訪問者的操作進(jìn)行了統(tǒng)計(jì),如下:
說明:
1.訪問者進(jìn)入首頁后,有20%會進(jìn)入天氣頁面,40%進(jìn)入新聞頁面,20%進(jìn)入商業(yè)頁面。
2.從首頁進(jìn)入新聞頁面的機(jī)會是40%,而從天氣進(jìn)入新聞的機(jī)會是10%。
以上的分析對于優(yōu)化網(wǎng)站是很有幫助的,上述的分析用到了離散序列分析技術(shù)。
離散序列分析,輸入列是一系列有“次序”的數(shù)據(jù),通過這一系列有次序的數(shù)據(jù)預(yù)測另外一個數(shù)據(jù)情況。
數(shù)據(jù)挖掘算法之偏差分析
例:某銀行有信用卡異常使用情況的監(jiān)控系統(tǒng),如果發(fā)現(xiàn)某些用卡行為與客戶往常習(xí)慣不一樣時(shí),會發(fā)出警告。
信用卡每次使用情況,包括時(shí)間、地點(diǎn)、金額、商戶等信息都會記錄下來。利用正常的歷史數(shù)據(jù)對系統(tǒng)進(jìn)行訓(xùn)練,告訴系統(tǒng)這些是“正?!钡氖褂们闆r,當(dāng)出現(xiàn)新的用卡記錄與這些正常使用的特征不符時(shí),則可以發(fā)出警告。偏差分析的原理就是用正常的數(shù)據(jù)去訓(xùn)練系統(tǒng),由系統(tǒng)去判斷新數(shù)據(jù)是否在正常范圍?有沒有偏差?
軟件項(xiàng)目管理如果達(dá)到CMMI4級或以上的層次,就會使用基線來管理項(xiàng)目,基線上下限范圍內(nèi)可認(rèn)為是“正?!钡模绻錾舷孪?,則認(rèn)為是“偏差”,需要分析原因并采取措施。這種用基線來管理項(xiàng)目,其實(shí)也是一種數(shù)據(jù)挖掘算法-偏差分析。
數(shù)據(jù)挖掘算法之貝葉斯
貝葉斯算法是一種根據(jù)歷史事件發(fā)生的概率來推測將來的算法,由偉大的數(shù)學(xué)家Thomas Bayes所創(chuàng)建的。Thomas Bayes,1702年出生于英國倫敦。
該算法的原理是這樣的:如果事情A、事情B、事情C、…、這些事情發(fā)生了,那么事情X發(fā)生的幾率是多少。前面這些事情叫做前提事情,可以是一個到多個,前提事情越多分析起來就越復(fù)雜但會更加準(zhǔn)確。
舉個例子:據(jù)說麥當(dāng)勞當(dāng)年發(fā)現(xiàn),如果顧客購買了漢堡包和薯?xiàng)l,那么顧客再購買可樂的機(jī)會是70%,于是麥當(dāng)勞就將這三個產(chǎn)品捆綁在一起作為套餐,于是銷量大增。對于這個案例,前提事件就是購買漢堡包和購買薯?xiàng)l,要預(yù)測的是顧客會不會買可樂,預(yù)測結(jié)果就是有70%機(jī)會會買。我們可以利用貝葉斯原理來進(jìn)行數(shù)據(jù)挖掘。
數(shù)據(jù)挖掘算法之神經(jīng)網(wǎng)絡(luò)
人腦其實(shí)是由數(shù)量龐大的神經(jīng)細(xì)胞組成的,神經(jīng)細(xì)胞龐大的數(shù)量及復(fù)雜的結(jié)構(gòu),讓人類充滿了智慧。人一出世,腦袋是一片空白的,當(dāng)我們學(xué)會了某樣?xùn)|西的時(shí)候,我們會對起進(jìn)行推演和歸納。比方說我們認(rèn)識了這是一條狗,當(dāng)我們見到另外一條不同品種狗的時(shí)候,我們會判斷這也是一條狗。而計(jì)算機(jī)的判斷一般來說就比較死板了,如果有細(xì)微的偏差就會認(rèn)不出來。
神經(jīng)網(wǎng)絡(luò)算法其實(shí)就是通過計(jì)算機(jī)來構(gòu)造類似于人腦的神經(jīng)細(xì)胞網(wǎng)絡(luò)(當(dāng)然該網(wǎng)絡(luò)無論如何不能跟人腦相比),通過一些訓(xùn)練,能讓該網(wǎng)絡(luò)能識別某一類事物。文字識別、指紋識別等都是應(yīng)用了神經(jīng)網(wǎng)絡(luò)技術(shù)的。
通過數(shù)據(jù)訓(xùn)練,我們可以在輸入列與可預(yù)測列之間找到合適的神經(jīng)網(wǎng)絡(luò),然后通過這個網(wǎng)絡(luò)對新情況進(jìn)行判斷。
數(shù)據(jù)挖掘技術(shù)
數(shù)據(jù)挖掘涉及到很多知識,涉及到數(shù)學(xué)、機(jī)器學(xué)習(xí)、數(shù)據(jù)庫等領(lǐng)域。
數(shù)學(xué)方面的知識只要是概率與統(tǒng)計(jì)方面的知識,回歸、時(shí)序、決策樹、貝葉斯等數(shù)據(jù)挖掘算法都是依賴于這些數(shù)學(xué)知識的。
電腦的發(fā)展讓機(jī)器學(xué)習(xí)發(fā)揮出無窮的威力,神經(jīng)網(wǎng)絡(luò)、遺傳算法是兩種倚賴于計(jì)算機(jī)學(xué)習(xí)的算法。
數(shù)據(jù)倉庫、數(shù)據(jù)集市、數(shù)據(jù)立方體的存儲技術(shù)等數(shù)據(jù)庫技術(shù)的發(fā)展,讓數(shù)據(jù)挖掘可以處理越來越大量的數(shù)據(jù)。
你如果對數(shù)據(jù)挖掘感興趣,那么請努力學(xué)習(xí)以上提到的知識吧!
數(shù)據(jù)挖掘是高精尖的技術(shù),是改變世界的一種技術(shù),希望我們能涌現(xiàn)出一批批實(shí)實(shí)在在的數(shù)據(jù)挖掘精英,改變我們的生活,改變我們的世界!
by:創(chuàng)新工場創(chuàng)業(yè)課堂(敏捷課程)講師:張傳波
- 目前還沒評論,等你發(fā)揮!