怎麼樣?這個過程不簡單吧?以上這個例子已經通過個人簡化和提煉,其目標就是讓你們能容易理解什麼是數據挖掘,實際工做中的數據挖掘難度是很高的,須要具有這些能力:
常見的數據挖掘方法
常見的數據挖掘方法有分類、聚類、關聯、迴歸、時間序列分析、離散序列分紅、誤差分析、貝葉斯、神經網絡等等。這些內容都涉及到深厚的數學知識,下面只是一些膚淺的介紹,讓你們有個大概的認識,爲你們進一步學習打好基礎。
數據挖掘算法之分類
例:某銀行天天收到不少信用卡辦理的申請,爲提升效率和準確性,想應用數據挖掘技術來改善工做,你會怎樣考慮呢?
該銀行有大量的歷史數據,將申請者分爲高、中、低三種風險類型,這樣輸入列就是申請者的學歷、收入、職業等信息,而可預測列就是風險類型。這樣對歷史數據進行數據挖掘後,當有新的申請者提交資料,系統就能夠判斷該申請者風險類型爲高、中仍是低了。
以上的算法就是「分類」,該挖掘方法需人工指定類別,而後找出一組屬性與該類別的關係,利用這些關係來預測新的狀況。
數據挖掘算法之聚類
「聚類」與「分類」很類似,一樣是找出一組屬性與類別的關係,不一樣的是這類別不是事先指定的,而是由數據挖掘本身找出分類。
例:某公司收集了不少客戶的資料,記錄了客戶的年齡和收入。該公司相對這些數據進行分析,找出能夠重點營銷的客戶對象。咱們可指定輸入列爲年齡和收入,通過聚類數據挖掘後,發現客戶羣能夠劃分爲三個羣體:低收入年輕客戶、高收入中年客戶、收入相對低的年老客戶。根據這樣的分析結果,公司可採起決策,重點針對高收入中年客戶進行營銷活動。
數據挖掘算法之關聯
例:在一家超市裏,有一個有趣的現象:尿布和啤酒赫然擺在一塊兒出售。可是這個奇怪的舉措卻使尿布和啤酒的銷量雙雙增長了。這不是一個笑話,而是發生在美國沃爾瑪連鎖店超市的真實案例,並一直爲商家所津津樂道。原來,美國的婦女們常常會囑咐她們的丈夫下班之後要爲孩子買尿布。而丈夫在買完尿布以後又要順手買回本身愛喝的啤酒,所以啤酒和尿布在一塊兒購買的機會仍是不少的。
上述這個例子常常會被人拿來講,但不多人會觸類旁通地應用這個例子。咱們有不少超市記錄了大量的交易數據,只要對這些交易數據作一下關聯分析,就極可能會獲得很多價值巨大的商業機會。上述這個「尿布+啤酒」的例子,就是應用了關聯分析,發現尿布和啤酒兩個東西常常被一塊兒賣掉。關聯分析主要用來找出某些東西「擺在一塊兒「的機會。咱們上網上商城購買東西,你每選擇一個商品,就可能會向你推銷一堆別的商品,這極可能就是關聯分析在「做怪」。
數據挖掘算法之迴歸
變量X、Y可能存在關係,咱們能夠將大量的(X、Y)繪製到一張圖上,造成一張散點圖。若是這些散點更好都在一條直線附近,那麼這條直線的方程就能夠近似表明X與Y的關係。
所謂的迴歸,就是要找到一個函數表明變量X1,X2,X3,...與Y的關係,該函數所繪製出來的曲線,能儘可能擬合這些「散點」。
下圖是某軟件公司某項目測試時間與發現缺陷數量的關係圖:
迴歸可分爲線性迴歸和非線性迴歸,線性迴歸比較容易操做,但通常狀況下數據很難是線性的,而非線性迴歸就超複雜了。
上圖的線性模型採用的是多階段的線性迴歸,指數模型採用的是多階段的指數迴歸,而黑色曲線表明的是真實數據,從圖中看,彷佛指數模型的吻合度更高一點。
數據挖掘算法之時間序列分析
例1:炒股的人都想預測明天是漲仍是跌,實際上咱們已經積累了大量的歷史數據,說不定仍是能夠預測的!某股票已經連續漲了3天,明天會不會再漲呢?某股票連續跌了7天了,明天應該不會再跌了吧?
例2:不少商家會在某些節假日時,重點銷售某些產品,以求能夠賣出更多,聖誕節快到了,應該主推什麼產品好呢?實際上各商家的收款系統中,記錄了大量的與時間相關的銷售數據,若是對這些數據作一下時間序列分析,說不定能找到重大商機。
時間序列分析,輸入列都是與時間相關的數據,同時須要考慮季節、歷史等因素,這樣就能夠預測某個時間會怎樣了。
數據挖掘算法之離散序列分析
某網站對訪問者的操做進行了統計,以下:
說明:
1.訪問者進入首頁後,有20%會進入天氣頁面,40%進入新聞頁面,20%進入商業頁面。
2.從首頁進入新聞頁面的機會是40%,而從天氣進入新聞的機會是10%。
以上的分析對於優化網站是頗有幫助的,上述的分析用到了離散序列分析技術。
離散序列分析,輸入列是一系列有「次序」的數據,經過這一系列有次序的數據預測另一個數據狀況。
數據挖掘算法之誤差分析
例:某銀行有信用卡異常使用狀況的監控系統,若是發現某些用卡行爲與客戶往常習慣不同時,會發出警告。
信用卡每次使用狀況,包括時間、地點、金額、商戶等信息都會記錄下來。利用正常的歷史數據對系統進行訓練,告訴系統這些是「正常」的使用狀況,當出現新的用卡記錄與這些正常使用的特徵不符時,則能夠發出警告。誤差分析的原理就是用正常的數據去訓練系統,由系統去判斷新數據是否在正常範圍?有沒有誤差?
軟件項目管理若是達到CMMI4級或以上的層次,就會使用基線來管理項目,基線上下限範圍內可認爲是「正常」的,若是超出上下限,則認爲是「誤差」,須要分析緣由並採起措施。這種用基線來管理項目,其實也是一種數據挖掘算法-誤差分析。
數據挖掘算法之貝葉斯
貝葉斯算法是一種根據歷史事件發生的機率來推測未來的算法,由偉大的數學家Thomas Bayes所建立的。Thomas Bayes,1702年出生於英國倫敦。
該算法的原理是這樣的:若是事情A、事情B、事情C、...、這些事情發生了,那麼事情X發生的概率是多少。前面這些事情叫作前提事情,能夠是一個到多個,前提事情越多分析起來就越複雜但會更加準確。
舉個例子:聽說麥當勞當年發現,若是顧客購買了漢堡包和薯條,那麼顧客再購買可樂的機會是70%,因而麥當勞就將這三個產品捆綁在一塊兒做爲套餐,因而銷量大增。對於這個案例,前提事件就是購買漢堡包和購買薯條,要預測的是顧客會不會買可樂,預測結果就是有70%機會會買。咱們能夠利用貝葉斯原理來進行數據挖掘。
數據挖掘算法之神經網絡
人腦實際上是由數量龐大的神經細胞組成的,神經細胞龐大的數量及複雜的結構,讓人類充滿了智慧。人一出世,腦殼是一片空白的,當咱們學會了某樣東西的時候,咱們會對起進行推演和概括。比方說咱們認識了這是一條狗,當咱們見到另一條不一樣品種狗的時候,咱們會判斷這也是一條狗。而計算機的判斷通常來講就比較死板了,若是有細微的誤差就會認不出來。
神經網絡算法其實就是經過計算機來構造相似於人腦的神經細胞網絡(固然該網絡不管如何不能跟人腦相比),經過一些訓練,能讓該網絡能識別某一類事物。文字識別、指紋識別等都是應用了神經網絡技術的。
經過數據訓練,咱們能夠在輸入列與可預測列之間找到合適的神經網絡,而後經過這個網絡對新狀況進行判斷。
數據挖掘技術
數據挖掘涉及到不少知識,涉及到數學、機器學習、數據庫等領域。
數學方面的知識只要是機率與統計方面的知識,迴歸、時序、決策樹、貝葉斯等數據挖掘算法都是依賴於這些數學知識的。
電腦的發展讓機器學習發揮出無窮的威力,神經網絡、遺傳算法是兩種倚賴於計算機學習的算法。
數據倉庫、數據集市、數據立方體的存儲技術等數據庫技術的發展,讓數據挖掘能夠處理愈來愈大量的數據。
你若是對數據挖掘感興趣,那麼請努力學習以上提到的知識吧!
數據挖掘是高精尖的技術,是改變世界的一種技術,但願咱們能涌現出一批批實實在在的數據挖掘精英,改變咱們的生活,改變咱們的世界!
做者:張傳波php
創新工場創業課堂(敏捷課程)講師算法
軟件研發管理資深顧問數據庫
《火球——UML大戰需求分析》做者網絡
www.umlonline.org 創辦人機器學習