談談數據挖掘和機器學習
又是好長時間沒有寫博客了,最近周末事情太多,明天勞動節終於可以讓我們勞動人民休息一天了。首先聲明的是本人並非數據挖掘和機器學習的高手,只是作為業余興趣剛剛開始研究,據我所知好多朋友也和我一樣對這方面的東西感興趣,個人認為機器人技術是未來發展的方向。雖然我的專業是軟件開發,基於Windows的,基於linux的,但是我認為未來的軟件開發可能面對的硬件將會是多元化的,適當的了解一下未來的趨勢也不為過。
本來想從機器學習開始,但是通過對業內人士的咨詢,朋友建議我從數據挖掘開始,通過近一個月的學習,對數據挖掘的基本思想有了些粗淺的認識,分享出來,希望和大家共同快樂,共同進步。在這樣的信息爆炸的時代,我希望對每個重要的知識點用一句話通俗的表達出來,既然是入門篇,讓大家看明白了最重要。
分類和決策樹
分類技術要解決的問題是從一批已知的完整記錄中學習到一顆決策樹或者一個模型,然后應用這個模型對未知的數據屬性進行預測或分類。有時候對於一些現實的問題,我們無法通過純數學的解析式表打自變量和因變量的關系時,我們就可能降低要求,從精確的解析式到模型足夠好,可以解釋大部分的現象,解決大部分的問題,通過分類技術和決策樹就可以解決一部分問題。
下面是一個簡單的決策樹歸納算法實現
1 TreeGrowth(E,F) 2 if stopping_cond(E,F)=true then 3 leaf=createNode() 4 leaf.label=Classify(E) 5 return leaf 6 else
7 root=createNode() 8 root.test_cond=find_best_split(E,F) 9 令V={v|v是root.test_cond的一個可能的輸出} 10 for 每個v屬於V do
11 Ev={e|root.test_cond(e)=v 並且e屬於E} 12 child=TreeGrowth(Ev,F) 13 將child作為root的派生結點添加到樹中,並將邊(root->child)標記為v 14 end for
15 end if
16 return root
關聯分析
關聯分析要解決的問題是通過算法找出隱含在數據中的關聯,比如買尿布的人大部分也買啤酒,買啤酒的人大部分也買花生米,有了關聯就可以做針對性的廣告或者商業分析。
聚類分析
聚類分析要解決的問題是將數據分成內部高內聚,外部低耦合的集合,這樣對相似的事物進行分析就會更有針對性。
異常檢測
一批數據中總有些數據記錄的性質和其他大部分的數據差別很大,對有些分析我們需要找出這些數據並排除其對整體的影響,當然在某些極端的情況下對異常數據的深入研究也是有必要的。
入門書籍推薦
在咨詢了專業的人士之后我得到的推薦是如下這本數據挖掘導論,同時由於數據挖掘在過國內的發展時間不長,好多英文術語沒有精確的中文對照,所以對於入門而言,專業人士推薦我中英文對照着看,這樣既有效率,又會盡量不脫離原文,估計這本書都看懂了,就應該算對數據挖掘有一點點基本的了解了。學並快樂着,不要夢想一下子成為高手。每天進步一點點,慢慢的你就是高手了。