目錄
1.數據集選取
2.數據預處理
(1)數據清理
(2)數據集成
(3)數據歸約
(4)數據變換和數據離散化
3.數據分析算法
4.分析總結改進
這學期提前選課學習了Data Mining,最近提交了論文已經徹底結了。想來想去還是寫點東西記一下,假如以后能用上呢?僅供參考哈
參考書:《數據挖掘概念與技術》 Jiawei Han 等著
首先一些基本概念還是要了解一下的,數據挖掘是從大量數據中挖掘出有趣模式和知識的過程。數據源一般是數據庫、數據倉庫、Web等,得到的數據稱為數據集(dataset)。其中數據倉庫是data mining獨有內容,是從多個數據源收集的信息存儲庫。按照William H.Inmon的說法,“數據倉庫是一個面向主題的、集成的、時變的、非易失的數據集合,支持管理者的決策過程”。對比數據庫的概念,“長期存儲在計算機內、有組織的、可共享的大量數據的集合”(《數據庫系統概論》(第四版)王珊等),可以分為兩類,聯機數據處理(Online Transaction Processing,OLTP)系統和聯機分析處理(Online Analytical Processing,OLAP)系統。數據庫屬於前一個,數據倉庫屬於后一個,對比如下:
圖1 OLTP和OLAP對比圖
然后是重點:數據挖掘的一般過程。
1.數據集選取
一般數據集是已經存在的或者至少知道如何獲得的(訪問某個資料庫,網上過濾抓取需要的數據,問卷調查手動收集等)。數據集的選取對數據挖掘模式是否有趣起決定作用。一般的數據挖掘模式有頻繁模式,用於預測分析的分類和回歸模式,聚類分析模式等,代表着數據挖掘的某種目的。最開始做實驗的時候並不知道自己想要做什么(一般都是現有數據集或者想法,再有數據挖掘),於是查看一些常見的數據集網站(下附),尋找自己感興趣的數據集,畢竟興趣是最好的老師,興趣有了,數據挖掘才能開心地做下去。
UCI機器學習和智能系統 https://archive.ics.uci.edu/ml/datasets/
kdd 2015預測學堂在線退課率 https://www.kddcup2015.com/information.html
數據挖掘 數據集下載搜集整理版 http://blog.sina.com.cn/s/blog_5c9288aa01014a56.html
2.數據預處理
選取了數據集之后,就開始對數據進行預處理使得數據能夠為我們所用了。數據預處理提高數據質量:准確性、完整性和一致性,包括數據清理、數據集成、數據規約和數據變換方法。
圖2數據預處理方法
(1)數據清理
忽略元祖
人工填寫缺失值
使用屬性的中心度量填充
給定同一類所有樣本的屬性均值或中位數填充
最可能的值填充
(2)數據集成
實體識別
冗余和相關分析(卡方檢驗,相關系數,協方差等,用spss比較方便)
(3)數據歸約
維規約(小波變換和主成分分析,最常用)
數量規約(較小的數據替代原始數據)
數據壓縮(有損無損兩種,尤其對於圖像視頻等多媒體常用)
(4)數據變換和數據離散化
數據變換:光滑,屬性構造,聚集,規范化,離散化和概念分層。
圖3 數據規范化常見方法
圖4 數據離散化
Eg:3-4-5規則,根據最高有效位個數分:
分為3類:最高有效位個數為 3 6 7 9
4 2 4 8
5 1 5
一般步驟:取min5%,max95%;根據3-4-5規則分段;根據兩端調整分段
3.數據分析算法
這個里面的內容就多而且復雜了,僅提出一些常見的供參考吧:
最經典的莫過於頻繁模式挖掘了,對象為事物出現的次數。如著名的啤酒尿布。其中最典型的算法為Apriori算法,包括連接和剪枝。其中有置信度,支持度,頻繁項集最小置信度閾值等重要概念,到相關分析中還有提升度,全置信度,Kulczy和余弦等判斷標准和零不變度量考慮。個人覺得Uber就是看到了大量的零事物,從而開拓私家車市場並取得巨大成功的典型案例,也可以說換角度思考吧。
數據挖掘不僅僅用於挖掘頻繁模式之間的聯系,還常常用來分類和聚類。
分類的一般過程為用分類算法分析訓練數據,然后用檢驗數據評估分類規則的准確率。常用的分類准則有決策樹歸納、屬性選擇度量、樹剪枝等,具體的常見算法有朴素貝葉斯(前提屬性之間相互獨立),貝葉斯信念網絡,k-最近鄰分類,遺傳算法,神經網絡,模糊集方法等。由此機器學習智能算法的強大可見一斑。
聚類由於是非指導學習,就相對麻煩些了。聚類的常見划分方法有k-均值和k-中心點,都是基於抽象距離的(實際度量為密度,網格等)。還有比較高級版本的,比如說基於概率的。聚類中有很多重要的概念,如划分准則,簇的離散型,相似性度量,聚類空間。個人覺得聚類其實就是自己按照一定的理解嘗試去定制標准進行分類,然后檢驗自己的標准(尤其是離群點)。
算法弄完了,別忘了檢驗哦。
4.分析總結改進
世界上沒有任何東西生而完美,因而我們常常有很奇特的體驗:過了一段時間后看自己以前做的事情,覺得自己以前怎么會做得那么二!
在數據挖掘中分析是很重要的,因此自己有任何的想法,即便自己當時覺得不好,也應該記下來,最后分析的時候再看看,假如又覺得有用呢。分析的對象主要是模型的優缺點(或者叫模型的評估),客觀公正的評判自己的作品(能有高手幫忙最好啦)能清醒自己的認知。改進就是從分析當中來。一般而言,做這種帶一定學術性的東西,確定好自己的基本想法和實踐過程后去大型數據庫(如中國知網)搜一搜,看看別人是如何處理相關事情的,對比一下。不管怎么說,高屋建瓴總比平地蓋樓容易吧。
總結是對自己的肯定,別的不說,寫完總結后看看前面自己做的事情,肯定還是有不小的自豪感的!總結的過程就是思考的過程,讓自己后面的每一個作品都比現在的要好!
以我目前所學的粗淺知識,也就能寫這么點了。。。