Excel是大家非常熟悉的表格工具,借助它可以實現日程工作中最原始的數據處理的基本的功能,此外通過 SQL Server插件的支持,我們也可以在Excel中實現數據挖掘的功能。
此篇將先介紹Excel數據挖掘中的數據准備工作下的相關功能。
對於Excel 2010和2013來說,需要安裝SQL Server的Excel數據挖掘插件才可以實現數據挖掘的功能,下載地址:
http://www.microsoft.com/en-us/download/details.aspx?id=35578
下載的時候需要注意的是下載的語言版本和x86以及x64的版本要對應得上。
安裝完成后,可以在開始屏幕找到示例數據鏈接:
打開示例數據,可以看到在Excel文件下示例數據在不同的Sheet中。
點擊其中的Sheet,可以看到此篇演示需要用到的示例數據。這是一張經過組織的客戶信息表,里面包含了客戶的基本信息,比如婚姻狀況,性別,收入以及教育程度等信息。此外還包含一個狀態列記錄這個用戶是否購買了自行車。
在Ribbon工具欄中可以找到數據挖掘工具集DATA MINING。
此篇介紹的是Data Preparation數據准備下的三個功能:Explorer Data瀏覽數據, Clean Data清除數據(這里我不太認同官方的翻譯,清理數據在這里可能更貼切些。)和Sample Data示例數據。
首先點擊瀏覽數據,瀏覽數據可以幫助我們在第一時間內通過這個功能對數據進行很方便的瀏覽。
在第一個界面中指定數據的范圍。默認選擇第一個選項,是一個sheet下的所有數據,如果是第二個選項的意思是選中的數據。這里選擇默認選項,點擊下一步。
在接下來的界面中,任意指定數據的一列,比如Region,然后點擊下一步。
可以看到根據此列生成的數據圖表。
此外,如果在先前選擇的是連續類型的列,這個圖標會自動組織成離散樣式的。
留意到Buckets,可以指定數值被打散成幾列。
打散之后的列可以通過點擊界面右下角的Add New Column按鈕將離散的列附加到工作表中。
此外,留意界面做小角的兩個按鈕:
左邊的按鈕是讓數據以離散的方式顯示,所以當前面如果選中的是Age列的話,它會認為每一個年齡信息都是一個離散的值,所以編程了這個樣子。右面的按鈕是以連續的方式顯示,選中這個方式后系統會認為數字列是連續類型的,所以會自動將連續類型的數字打散成離散的分組。
以上是對瀏覽數據的介紹,通過這個工具可以快速的對數據的情況有一個大體的了解,此外也可以通過離散化的方式向數據表中填加附加的列。
接下來介紹的是數據清理功能,分別是Outliers和Re-label。
首先介紹Outliers功能,這個功能可以幫助我們清理一些邊緣數據,具體的功能請先看喜愛安的實現步驟。
點擊Outliers,跟前面一樣指定好范圍之后,選中一個列。
跟瀏覽數據一樣,可以看到不同Distance的數量分布。
通過拖動上訪的滑塊,可以指定尾部的哪部分數據被清理掉。
繼續往前滑動,可以擴大清理數據的范圍。
點擊下一步,指定如何處理這些數據,這里有三個選項,默認的是將值轉換成Other,讓它們都合並為一類,第二個選項是將值清空,第三個是將數據刪除。這里選擇第一個。
最后,指定划分划分之后的數據如何處理,也是有三個選項,一個是作為一個新列填加,第二個是將變更的數據拷貝到一個新的工作簿中,最后一個是直接在數據表中修改。這里默認選擇第一個。
點擊完成之后,可以看到根據Distance列附加的新列被加到了工作表中,並且,剛才指定清理掉的數據全部被轉換成了Other以方便后續的處理。
這個功能可以理解為清理長尾數據,記得有一本書是書長尾理論的,它講的是如何關注長尾部分的數據從而獲取更大的收益。當然還有很多時候我們為了初步就獲得數據的直觀和大體的認識是不需要關注長尾部分的數據的,所以這個時候就可以借助這個功能來將其清理掉。
除了對長尾部分數據的清理,對於連續型的值,比如年齡,通常只有年齡段中間部分的數據才是我們需要關注的,所以當我們選擇年齡時,可以看到界面變成下面的樣子。
通過拖動兩邊的滑塊,可以指定把哪部分數據划分到需要清理的數據。
接下來介紹Re-Label功能,這是一個很實用的功能,通過這個功能我們可以將數據打成另一個標簽。
點擊Re-Label,指定好數據范圍之后,還是跟以前一樣,選中一個列。
在下面的界面中,可以將這一列不同的值指定為新的標簽。
比如,像下圖一樣將不同的距離指定成不同的遠近標記。
最后,跟上一個功能一樣,指定新標簽的填加方式。
點擊完成,可以看到新的列作為新標簽列填加到了數據表中。
這里有一個問題是,對於連續型的數據,比如年齡要如何設定,因為我們不可能將每一個歲數,比如21歲另啟一個標簽,22歲再指定一個標簽。所以對於這類連續型數據我們首先要做的是利用前面介紹的瀏覽數據功能將數據先轉換成離散的,然后再通過這個功能將離散的值指派為另一個標簽,比如0-6幼年,7-15少年等。
最后,介紹示例數據功能,再次吐槽一下官方翻譯,Sample這里根據環境應該是樣本才對,所以這個功能翻譯成樣本數據更貼切,因為它本身就是抽取樣本數據的。
點擊這個按鈕后,在第一個界面中會給我們兩個選擇,一個是隨機樣本數據抽取,一個是過度樣本數據抽取。
先來看第一個抽取方式,很簡單,根據一定的百分比或者指定的行數來進行抽取。
設定好之后,可以指定把樣本數據放到哪里,同時也可以指定將沒有抽中的數據放到哪里。
點擊完成之后,可以看到被抽中和沒有被抽中的數據。
接下來過度樣本數據抽取介紹起來可能比較繞口,但我們可以這樣理解,比如當我們收到這樣的需求,讓你從數據中抽取1000行數據,但是要求這1000行數據中,已婚的比例要占到30%,當然,實際數據集中的數據,已婚的比例有可能是15%,也有可能是50%。所以如何讓這1000行數據中恰巧占30%的比例,就可以通過這個功能來實現。
比如根據上面的例子,我們將已婚比例設置成30%,樣本大小設置為10,這里為了演示沒有設置成1000主要是為了后面方便結果的驗證。
點擊下一步,抽樣的數據會被填加到一個新的工作表中,這里為其取一個名字。
點擊完成之后,我們可以通過這10行數據看到這個功能的結果。
相信通過此篇的閱讀,你已經對Excel數據挖掘插件有了大概的了解。數據的准備是數據挖掘中最初始的階段,這一篇簡單的介紹了在Excel的數據挖掘插件中的這三個功能。值得一提的是,此篇介紹的這些功能是完全在Excel中作為Client端完成的,不需要SQL Server分析服務的支持。下篇將要介紹的數據挖掘功能是需要SQL Server分析服務做支持的。