溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

weka數(shù)據(jù)挖掘

發(fā)布時(shí)間:2020-07-15 20:09:32 來源:網(wǎng)絡(luò) 閱讀:778 作者:農(nóng)民兄弟 欄目:開發(fā)技術(shù)

基礎(chǔ)知識(shí):

數(shù)據(jù)挖掘:將大量數(shù)據(jù)轉(zhuǎn)變?yōu)橛袑?shí)際意義的模式和規(guī)則,分為兩種:直接的和間接的

數(shù)據(jù)挖掘的最終目標(biāo)就是要?jiǎng)?chuàng)建一個(gè)模型,這個(gè)模型可改進(jìn)您解讀現(xiàn)有數(shù)據(jù)和將來數(shù)據(jù)的方式。

數(shù)據(jù)挖掘的核心就是將正確的模型應(yīng)用于數(shù)據(jù)。

第一種技術(shù)是回歸,用來基于其他的示例數(shù)據(jù)預(yù)測(cè)一個(gè)數(shù)值輸出(比如房屋價(jià)值)。

第二種技術(shù)是分類(即分類樹或決策樹),用來創(chuàng)建一個(gè)實(shí)際的分支樹來預(yù)測(cè)某個(gè)未知數(shù)據(jù)點(diǎn)的輸出值。

第三種技術(shù)是群集,可用它來創(chuàng)建數(shù)據(jù)組(群集)并從中識(shí)別出趨勢(shì)和其他規(guī)則

第四種技術(shù)是最近鄰,最近鄰(也即 Collaborative Filtering 或 Instance-based Learning)是一種非常有用的數(shù)據(jù)挖掘技術(shù),可用來用輸出值已知的以前的數(shù)據(jù)實(shí)例來預(yù)測(cè)一個(gè)新數(shù)據(jù)實(shí)例的未知輸出值。

工具簡(jiǎn)介:

weka數(shù)據(jù)挖掘

窗口右側(cè)共有4個(gè)應(yīng)用,分別是

  1. Explorer:用來進(jìn)行數(shù)據(jù)實(shí)驗(yàn)、挖掘的環(huán)境,它提供了分類,聚類,關(guān)聯(lián)規(guī)則,特征選擇,數(shù)據(jù)可視化的功能。示例圖如下:weka數(shù)據(jù)挖掘

  2. Experimentor:用來進(jìn)行實(shí)驗(yàn),對(duì)不同學(xué)習(xí)方案進(jìn)行數(shù)據(jù)測(cè)試的環(huán)境。

  3. KnowledgeFlow:功能和Explorer差不多,不過提供的接口不同,用戶可以使用拖拽的方式去建立實(shí)驗(yàn)方案。另外,它支持增量學(xué)習(xí)。

  4. SimpleCLI:簡(jiǎn)單的命令行界面。

    Weka支持很多種文件格式,包括arff、xrff、csv,甚至有l(wèi)ibsvm的格式。其中,arff是最常用的格式,我們?cè)谶@里僅介紹這一種。 
    Arff全稱是Attribute-Relation File Format

    使用weka進(jìn)行數(shù)據(jù)挖掘的流程如下圖:

  5. weka數(shù)據(jù)挖掘

其中,在weka內(nèi)進(jìn)行的是數(shù)據(jù)預(yù)處理,訓(xùn)練,驗(yàn)證這三個(gè)步驟。 
         1)數(shù)據(jù)預(yù)處理:數(shù)據(jù)預(yù)處理包括特征選擇,特征值處理(比如歸一化),樣本選擇等操作。 
         2)訓(xùn)練:訓(xùn)練包括算法選擇,參數(shù)調(diào)整,模型訓(xùn)練。 
         3)驗(yàn)證:對(duì)模型結(jié)果進(jìn)行驗(yàn)證。

數(shù)據(jù)預(yù)處理:

數(shù)據(jù)預(yù)處理:打開Explorer界面,點(diǎn)“open file”,在weka安裝目錄下,選擇data目錄里的“l(fā)abor.arff”文件,將會(huì)看到如下界面。我們將整個(gè)區(qū)域分為7部分,下面將分別介紹每部分的功能。

weka數(shù)據(jù)挖掘

weka數(shù)據(jù)挖掘

區(qū)域1共6個(gè)選項(xiàng)卡,用來選擇不同的數(shù)據(jù)挖掘功能面板,從左到右依次是Preprocess(預(yù)處理)、Classify(分類)、Cluster(聚類)、Associate(關(guān)聯(lián)規(guī)則)、Select attribute(特征選擇)和Visualize(可視化)。 
        區(qū)域2提供了打開、保存,編輯文件的功能。打開文件不僅僅可以直接從本地選擇,還可以使用url和db來做數(shù)據(jù)源。Generate按鈕提供了數(shù)據(jù)生成的功能,weka提供了幾種生成數(shù)據(jù)的方法。點(diǎn)開Edit,將看到如下界面:

weka數(shù)據(jù)挖掘

weka數(shù)據(jù)挖掘

在這個(gè)界面,可以看到各行各列對(duì)應(yīng)的值,右鍵每一列的名字(先點(diǎn)擊列名),可以看到一些編輯數(shù)據(jù)的功能,這些功能還是比較實(shí)用的。

        區(qū)域3名為Filter,有些人可能會(huì)聯(lián)想到特征選擇里面的Filter方法,事實(shí)上,F(xiàn)ilter針對(duì)特征(attribute)和樣本(instance)提供了大量的操作方法,功能十分強(qiáng)大。 
        區(qū)域4,可以看到當(dāng)前的特征、樣本信息,并提供了特征選擇和刪除的功能。在區(qū)域4用鼠標(biāo)選擇單個(gè)特征后,區(qū)域5將顯示該特征的信息。包括最小值、最大值、期望和標(biāo)準(zhǔn)差。 
        區(qū)域6提供了可視化功能,選擇特征后,該區(qū)域?qū)@示特征值在各個(gè)區(qū)間的分布情況,不同的類別標(biāo)簽以不同的顏色顯示。
        區(qū)域7是狀態(tài)欄,沒有任務(wù)時(shí),小鳥是坐著的,任務(wù)運(yùn)行時(shí),小鳥會(huì)站起來左右搖擺。如果小鳥站著但不轉(zhuǎn)動(dòng),表示任務(wù)出了問題。

Filters實(shí)例

 點(diǎn)開Filter下面的choose按鈕,可以看到如下界面:

weka數(shù)據(jù)挖掘

Filters可分為兩大類,supervised(監(jiān)督、管理)和unsupervised。supervised下的方法需要類別標(biāo)簽,而unsupervised則不需要。attribute類別表示對(duì)特征做篩選,instance表示對(duì)樣本做選擇。

         Case 1:特征值歸一化 
        該項(xiàng)功能與類別無關(guān),且是針對(duì)attribute的,我們選擇unsupervised -> attribute下面的Normalize。點(diǎn)開Normalize所在的區(qū)域(在所選擇的filter上點(diǎn)擊即可),將看到如下界面。左邊的窗口,有幾個(gè)參數(shù)可以選擇。點(diǎn)擊more,將出現(xiàn)右邊的窗口,該窗口詳細(xì)介紹了此功能。

weka數(shù)據(jù)挖掘

使用默認(rèn)參數(shù),點(diǎn)擊ok,回到主窗口。在區(qū)域4選好將要?dú)w一化的特征,可以是一個(gè)或多個(gè),然后點(diǎn)擊apply。在可視化區(qū)域中,我們可以看到特征值從1到3被歸一到了0到1之間(看區(qū)域5的最大最小值)。

weka數(shù)據(jù)挖掘

Case 2: 分類器特征篩選 
        該功能與類別相關(guān),選擇supervised -> attribute下面的AttributeSelection。該界面有兩個(gè)選項(xiàng),evaluator是評(píng)價(jià)特征集合有效性的方法,search是特征集合搜索的方法。在這里,我們使用InformationGainAttributeEval作為evaluator,使用Ranker作為search,表示我們將根據(jù)特征的信息增益值對(duì)特征做排序。Ranker中可以設(shè)置閾值,低于這個(gè)閾值的特征將被扔掉。

weka數(shù)據(jù)挖掘

點(diǎn)擊apply,可以看到在區(qū)域4里特征被重新排序,低于閾值的已被刪掉。 
        Case 3:選擇分類器錯(cuò)分的樣本 
        選擇unsupervised -> instance下面的RemoveMisclassified,可以看到6個(gè)參數(shù),classIndex用來設(shè)置類別標(biāo)簽,classifier用來選擇分類器,這里我們選擇J48決策樹,invert我們選擇true,這樣保留的是錯(cuò)分樣本,numFolds用來設(shè)置交叉驗(yàn)證的參數(shù)。設(shè)置好參數(shù)之后,點(diǎn)擊apply,可以看到樣本的數(shù)量從57減少到了7。

weka數(shù)據(jù)挖掘


五.分類

在Explorer中,打開classify選項(xiàng)卡,整個(gè)界面被分成幾個(gè)區(qū)域。分別是 

1)Classifier:點(diǎn)擊choose按鈕,可以選擇weka提供的分類器。常用的分類器有 
      a)bayes下的Nave Bayes(樸素貝葉斯)和BayesNet(貝葉斯信念網(wǎng)絡(luò))。 
      b)functions下的LibLinear、LibSVM(這兩個(gè)需要安裝擴(kuò)展包)、Logistic Regression(邏輯回歸)、Linear            Regression(線性回歸)。 
      c)lazy下的IB1(1-NN)和IBK(KNN)。 
      d)meta下的很多boosting和bagging分類器,比如AdaBoostM1。 
      e)trees下的J48(weka版的C4.5)、RandomForest。 
2)Test options 
評(píng)價(jià)模型效果的方法,有四個(gè)選項(xiàng)。 
  a)Use training set:使用訓(xùn)練集,即訓(xùn)練集和測(cè)試集使用同一份數(shù)據(jù),一般不使用這種方法。 
  b)Supplied test set:設(shè)置測(cè)試集,可以使用本地文件或者url,測(cè)試文件的格式需要跟訓(xùn)練文件格式一致。 
  c)Cross-validation:交叉驗(yàn)證,很常見的驗(yàn)證方法。N-folds cross-validation是指,將訓(xùn)練集分為N份,使用

     N-1份做訓(xùn)練,使用1份做測(cè)試,如此循環(huán)N次,最后整體計(jì)算結(jié)果。 
  d)Percentage split:按照一定比例,將訓(xùn)練集分為兩份,一份做訓(xùn)練,一份做測(cè)試。在這些驗(yàn)證方法的下面,有      一個(gè)More options選項(xiàng),可以設(shè)置一些模型輸出,模型驗(yàn)證的參數(shù)。 
3)Result list 

    這個(gè)區(qū)域保存分類實(shí)驗(yàn)的歷史,右鍵點(diǎn)擊記錄,可以看到很多選項(xiàng)。常用的有保存或加載模型以及可視化的一些選     項(xiàng)。 
4)Classifier output 
 分類器的輸出結(jié)果,默認(rèn)的輸出選項(xiàng)有Run information,該項(xiàng)給出了特征、樣本及模型驗(yàn)證的一些概要信息;Classifier model,給出的是模型的一些參數(shù),不同的分類器給出的信息不同。最下面是模型驗(yàn)證的結(jié)果,給出了   一些常用的一些驗(yàn)證標(biāo)準(zhǔn)的結(jié)果,比如準(zhǔn)確率(Precision),召回率(Recall),真陽(yáng)性率(True positive rate),假陽(yáng)性率(False positive rate),F(xiàn)值(F-Measure),Roc面積(Roc Area)等。Confusion Matrix給出了測(cè)試樣本的分類情況,通過它,可以很方便地看出正確分類或錯(cuò)誤分類的某一類樣本的數(shù)量。

Case 1:使用J48對(duì)labor文件做分類 
     a.打開labor.arff文件,切換到classify面板。 
     b.選擇trees->J48分類器,使用默認(rèn)參數(shù)。 
     c.Test options選擇默認(rèn)的十折交叉驗(yàn)證,點(diǎn)開More options,勾選Output predictions。 
     d.點(diǎn)擊start按鈕,啟動(dòng)實(shí)驗(yàn)。 
     e.在右側(cè)的Classifier output里面,我們看到了實(shí)驗(yàn)的結(jié)果

weka數(shù)據(jù)挖掘

上圖給出了實(shí)驗(yàn)用的分類器以及具體參數(shù),實(shí)驗(yàn)名稱,樣本數(shù)量,特征數(shù)量以及所用特征,測(cè)試模式。

weka數(shù)據(jù)挖掘

上圖給出了生成的決策樹,以及葉子節(jié)點(diǎn)數(shù)、樹的節(jié)點(diǎn)數(shù)、模型訓(xùn)練時(shí)間。如果覺得這樣不直觀,可以在Result list里面右鍵點(diǎn)擊剛剛進(jìn)行的實(shí)驗(yàn),點(diǎn)擊Visualize Tree,可以看到圖形界面的決策樹,十分直觀。 

weka數(shù)據(jù)挖掘

再往下是預(yù)測(cè)結(jié)果,可以看到每個(gè)樣本的實(shí)際分類,預(yù)測(cè)分類,是否錯(cuò)分,預(yù)測(cè)概率這些信息。

weka數(shù)據(jù)挖掘

最下面是驗(yàn)證結(jié)果,整體的accuracy是73.68%,bad類準(zhǔn)確率是60.9%,召回率70.0%,good類準(zhǔn)確率是82.4%,召回率75.7%。 

weka數(shù)據(jù)挖掘

 5)  可視化 
        打開Explorer的Visualize面板,可以看到最上面是一個(gè)二維的圖形矩陣,該矩陣的行和列均為所有的特征(包括類別標(biāo)簽),第i行第j列表示特征i和特征j在二維平面上的分布情況。圖形上的每個(gè)點(diǎn)表示一個(gè)樣本,不同的類別使用不同的顏色標(biāo)識(shí)。下面有幾個(gè)選項(xiàng),PlotSize可以調(diào)整圖形的大小,PointSize可以調(diào)整樣本點(diǎn)的大小,Jitter可以調(diào)整點(diǎn)之間的距離,有些時(shí)候點(diǎn)過于集中,可以通過調(diào)整Jitter將它們分散開。

weka數(shù)據(jù)挖掘

上圖是duration和class兩個(gè)特征的圖形,可以看出,duration并不是一個(gè)好特征,在各個(gè)特征值區(qū)間,good和bad的分布差不多。 
單擊某個(gè)區(qū)域的圖形,會(huì)彈出另外一個(gè)窗口,這個(gè)窗口給出的也是某兩個(gè)特征之間分布的圖形,不同的是,在這里,通過點(diǎn)擊樣本點(diǎn),可以彈出樣本的詳細(xì)信息??梢暬€可以用來查看誤分的樣本,這是非常實(shí)用的一個(gè)功能。分類結(jié)束后,在Result list里右鍵點(diǎn)擊分類的記錄,選擇Visualize classify errors,會(huì)彈出如下窗口。

weka數(shù)據(jù)挖掘

這個(gè)窗口里面,十字表示分類正確的樣本,方塊表示分類錯(cuò)誤的樣本,X軸為實(shí)際類別,Y軸為預(yù)測(cè)類別,藍(lán)色為實(shí)際的bad,紅色為實(shí)際的good。這樣,藍(lán)色方塊就表示實(shí)際為bad,但為誤分為good的樣本,紅色方塊表示實(shí)際為good,被誤分為bad的樣本。單擊這些點(diǎn),便可以看到該樣本的各個(gè)特征值,分析為什么這個(gè)樣本被誤分了。 
        再介紹一個(gè)比較實(shí)用的功能,右鍵點(diǎn)擊Result list里的記錄,選擇Visualize threshold curve,然后選好類別(bad 還是good),可以看到如下圖形。

weka數(shù)據(jù)挖掘

該圖給出的是分類置信度在不同閾值下,分類效果評(píng)價(jià)標(biāo)準(zhǔn)的對(duì)比情況。上圖給出的是假陽(yáng)性比率和真陽(yáng)性比率在不同閾值下的對(duì)比,其實(shí)給出的就是ROC曲線。我們可以通過選擇顏色,方便地觀察不同評(píng)價(jià)標(biāo)準(zhǔn)的分布情況。如果X軸和Y軸選擇的是準(zhǔn)確率和召回率,那我們可以通過這個(gè)圖,在這兩個(gè)值之間做trade-off,選擇一個(gè)合適的閾值。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI