天天看點

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

  • 實驗目标

了解資料挖掘的基本概念,掌握基于Weka工具的基本資料挖掘(分類、回歸、聚類、關聯規則分析)過程。

  • 實驗内容

  1. 下載下傳并安裝Java環境(JDK 7.0 64位)。
  2. 下載下傳并安裝Weka 3.7版。
  3. 基于Weka的資料分類。
  4. 基于Weka的資料回歸。
  5. 基于Weka的資料聚類。
  6. 基于Weka的關聯規則分析。
  • 實驗步驟

  • 下載下傳并安裝Java環境(JDK 7.0 64位)

1. 搜尋JDK 7.0 64位版的下載下傳,下載下傳到本地磁盤并安裝。

我的電腦已經預先裝過了jdk8,在dos視窗下用java-version指令測試,結果下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

2. 配置系統環境變量PATH,在末尾補充JDK安裝目錄的bin子目錄,以便于在任意位置都能執行Java程式。

先在系統同環境變量裡面配置了JAVA_HOME,值為JDK的安裝目錄,然後在path裡面添加了JDK的bin目錄,如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟
  • 下載下傳并安裝Weka 3.7版

電腦上安裝的是weka3.8,運作初始界面如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟
  • 基于Weka的資料分類

1. 讀取“電費回收資料.csv”(逗号分隔列),作為原始資料。

操作步驟: 1.主界面點選“explorer” 進入探索者界面。2.點選 open file打開“電費回收資料.csv”檔案 。3.打開之後點選“edit”,可檢視原始資料 ,原始資料部分内容如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

實驗開始前先去除對于電費回收分析無用的屬性列,包括:YMD:(日期),CONS_NO(使用者編号),RCVED_DATE(實收日期),CUISHOU_COUNT(催收次數),資料全為0,對于分析無幫助,去除。WZCS(違章次數),資料全為0,對于分析無幫助,去除。

去除無用屬性列之後的資料集如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

2. 資料預處理

(1) 将數值型字段規範化至[0,1]區間。

規範化處理就是把連續型取值(numeric type)轉化為離散型取值(nominal type)。

操作步驟:filter->unsupervised->attribute->normalize

normalize的預設參數是[0,1],直接點選apply按鈕将資料集的字段規範化到[0,1]區間。規範化之後的資料集如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

(2)調用特征選擇算法(Select attributes),選擇關鍵特征。

特征選擇是通過搜尋資料中所有可能的屬性組合,以找到預測效果最好的屬性子集。自動選擇屬性需要設立兩個對象:屬性評估器和搜尋方法。在進行特征選取時采取了兩種方法進行特征選取,方法1注重對特征子集進行評價,方法2側重對單個屬性進行評價。

方法1:

選擇CfsSubsetEval作為屬性評估方法,這種方法根據屬性子集中每一個特征的預測能力以及它們之間的關聯性進行評估。

選擇GreedyStepwise作為搜尋算法,該方法進行向前向後的單步搜尋。

然後點選start按鈕開始選取關鍵特征,選取結果如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

由選取結果可看出,應選取RCVED(實收電費),TQSC(欠費時長)兩個屬性作為關鍵屬性。

方法2:

選擇InfoGainAttributeEval作為屬性評估方法,根據與分類有關的每一個屬性的資訊增益進行評估。

選擇Ranker作為搜尋算法,對屬性值排序。

然後點選start按鈕開始選取關鍵特征,選取結果如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

由結果可看出,應選取IS_BAD(是否為欠費使用者),PAY_MODEL(支付方式)兩個屬性作為關鍵屬性。

3. 分别使用決策樹(J48)、随機森林(RandomForest)、神經網絡(MultilayerPerceptron)、樸素貝葉斯(NaiveBayes)等算法對資料進行分類,取60%作為訓練集,記錄各算法的查準率(precision)、查全率(recall)、混淆矩陣與運作時間。

進行分類前先進行離散化處理,為什麼要進行離散化呢,這裡百度了一下:連續特征離散化的基本假設,是預設連續特征不同區間的取值對結果的貢獻是不一樣的。特征的連續值在不同的區間的重要性是不一樣的,是以希望連續特征在不同的區間有不同的權重,實作的方法就是對特征進行劃分區間,每個區間為一個新的特征。離散化後的優點有:1.稀疏向量内積乘法運算速度快,計算結果友善存儲,容易擴充。2.離散化後的特征對異常資料有很強的魯棒性,也就是防止異常資料的幹擾。3.特征離散化後,模型會更穩定,4.邏輯回歸屬于廣義線性模型,表達能力受限;單變量離散化為N個後,每個變量有單獨的權重,相當于為模型引入了非線性,能夠提升模型表達能力,加大拟合。

離散化之後的資料集屬性如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

分類之前先了解了一下查準率(precision)和查全率(recall)的意思

網上對于查準率(precision)的定義:查準率是針對我們預測結果而言的,它表示的是預測為正的樣例中有多少是真正的正樣例。

網上對于查全率(recall)的定義:查全率是針對我們原來的樣本而言的,它表示的是樣本中的正例有多少被預測正确。

a)使用決策樹(J48)進行分類

查準率(precision),查全率(recall)如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

混淆矩陣(Confusion Matrix)如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

運作時間如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

b)使用随機森林(RandomForest)進行分類

查準率(precision),查全率(recall)如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

混淆矩陣(Confusion Matrix)如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

運作時間如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

c)使用神經網絡(MultilayerPerceptron)進行分類

使用此算法進行分類時,沒輸出想要的東西,運作結果如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

d)使用樸素貝葉斯(NaiveBayes)進行分類

查準率(precision),查全率(recall)如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

混淆矩陣(Confusion Matrix)如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

運作時間如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟
  • 基于Weka的回歸分析

1. 讀取“配網搶修資料.csv”,作為原始資料。

操作步驟: 1.主界面點選“explorer” 進入探索者界面。2.點選 open file打開“配網搶修資料.csv”檔案 。3.打開之後點選“edit”,可檢視原始資料 ,原始資料部分内容如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

實驗開始前去除對于配網搶修資料分析無用的屬性列:YMD:(日期),對于本次實驗對于配網搶修分析無關,去除。REGION_ID(地區編号),對于分析無幫助,去除。

去除無用屬性列之後的資料集如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

2.資料預處理:

(1)将數值型字段規範化至[0,1]區間。

操作過程:filter->unsupervised->attribute->normalize

預設參數是[0,1],然後點選apply應用按鈕将字段規範化到[0,1]區間

規範化之後的結果如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

(2)調用特征選擇算法(Select attributes),選擇關鍵特征。

在進行特征選取時采取了兩種方法進行特征選取,方法1注重對特征子集進行評價,方法2側重對單個屬性進行評價。

方法1:

選擇CfsSubsetEval作為屬性評估方法,這種方法根據屬性子集中每一個特征的預測能力以及它們之間的關聯性進行評估。

選擇GreedyStepwise作為搜尋算法:該方法進行向前向後的單步搜尋。

點選start按鈕開始選取,運作結果如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

由結果可看出,應選取HIGH_TEMP(開始氣溫), MAX_VALUE(負荷最大值), MIN_VALUE(負荷最小值)三個屬性作為關鍵屬性。

方法2:

選擇InfoGainAttributeEval作為屬性評估方法,根據與分類有關的每一個屬性的資訊增益進行評估。

選擇Ranker作為搜尋算法:對屬性值排序。

點選start按鈕開始選取,運作結果如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

分析結果可知,應選取LOW_TEMP(結束氣溫),RAIN_PROBABILITY(降雨機率),END_WEATHER(結束天氣),BEGIN_WEATHER(開始天氣)四個屬性作為關鍵屬性。

3. 分别使用随機森林(RandomForest)、神經網絡(MultilayerPerceptron)、線性回歸(LinearRegression)等算法對資料進行回歸分析,取60%作為訓練集,記錄各算法的均方根誤差(RMSE,Root Mean Squared Error)、相對誤差(relative absolute error)與運作時間。

a)使用随機森林(RandomForest)進行回歸分析

均方根誤差(RMSE,Root Mean Squared Error)、相對誤差(relative absolute error)如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

運作時間如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

b)使用神經網絡(MultilayerPerceptron)進行回歸分析

均方根誤差(RMSE,Root Mean Squared Error)、相對誤差(relative absolute error)如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

運作時間如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

c)使用線性回歸(LinearRegression)進行回歸分析

均方根誤差(RMSE,Root Mean Squared Error)、相對誤差(relative absolute error)如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

運作時間如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟
  • 基于Weka的資料聚類

1. 讀取“移動客戶資料.tsv”(TAB符分隔列),作為原始資料。

weka無法讀取.tsv格式的資料,先使用excel工具将“ 移動客戶資料表.tsv”格式轉換成“移動客戶資料表.csv”格式 ,然後再使用weka讀取檔案。

讀取的資料集如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

2. 資料預處理

(1) 将數值型字段規範化至[0,1]區間。

操作過程:filter->unsupervised->attribute->normalize

預設參數是[0,1],然後點選apply應用将字段規範化到[0,1]區間

規範化之後的資料集如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

(2) 調用特征選擇算法(Select attributes),選擇關鍵特征。

方法1:選擇CfsSubsetEval作為屬性評估方法

選擇GreedyStepwise作為搜尋算法

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

由結果可看出,應選取RCVED(實收電費),TQSC(欠費時長)兩個屬性作為關鍵屬性。

方法2:選擇InfoGainAttributeEval作為屬性評估方法,根據與分類有關的每一個屬性的資訊增益進行評估。

選擇Ranker作為搜尋算法:對屬性值排序。

點選start按鈕開始選取

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

由結果可看出,應選取IS_BAD,PAY_MODEL(支付方式)兩個屬性作為關鍵特征。

3. 分别使用K均值(SimpleKMeans)、期望值最大化(EM)、層次聚類(HierarchicalClusterer)等算法對資料進行聚類,記錄各算法的聚類品質(sum of squared errors)與運作時間。

(1) 使用K均值(SimpleKMeans)算法進行聚類

聚類品質(sum of squared errors)如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

運作時間如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

(2) 使用期望值最大化(EM)算法進行聚類

聚類品質(sum of squared errors)如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

運作時間如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

(3) 使用層次聚類(HierarchicalClusterer)算法進行聚類

沒做出來!

  • 基于Weka的關聯規則分析

1. 讀取“配網搶修資料.csv”,作為原始資料。

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

2. 資料預處理:

(1) 将數值型字段規範化至[0,1]區間。

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

(2) 調用特征選擇算法(Select attributes),選擇關鍵特征。

在進行特征選取時,選擇CfsSubsetEval作為屬性評估方法,GreedyStepwise作為搜尋算法,選取結果如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

由結果可看出,應選取HIGH_TEMP(開始氣溫),MAX_VALUE(負荷最大值),MIN_VALUE(負荷最小值)兩個屬性作為關鍵屬性。

3. 使用Apriori算法對數值型字段進行關聯規則分析,記錄不同置信度(confidence)下算法生成的規則集。

在使用該算法之前需要使用NumericalToNominal過濾器将資料離散化,離散化操作如下圖所示:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

然後使用Apriori算法對數值型字段進行關聯規則分析,每次通過改變minMertic的值來設定不同的置信度,下面是0.1, 0.2, 0.3,0.4, 0.5, 0.6, 0.7, 0.8, 0.9九個不同置信度下生成的規則集。

當置信度=0.9時:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

當置信度=0.8時:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

當置信度=0.7時:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

當置信度=0.6時:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

當置信度=0.5時:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

當置信度=0.4時:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

當置信度=0.3時:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

當置信度=0.2時:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟

當置信度=0.1時:

基于Weka的典型資料挖掘應用實驗目标實驗内容實驗步驟