用 WEKA 進(jìn)行數(shù)據(jù)挖掘_第1頁
用 WEKA 進(jìn)行數(shù)據(jù)挖掘_第2頁
用 WEKA 進(jìn)行數(shù)據(jù)挖掘_第3頁
用 WEKA 進(jìn)行數(shù)據(jù)挖掘_第4頁
用 WEKA 進(jìn)行數(shù)據(jù)挖掘_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

用WEKA進(jìn)行數(shù)據(jù)挖掘,第1部分:簡介和回

MichaelAbernethv,產(chǎn)品開發(fā)經(jīng)理,OptimalAuctions

簡介:數(shù)據(jù)挖掘是技術(shù)界的談?wù)撛掝},因?yàn)楦鞴径荚谏捎嘘P(guān)其用戶的數(shù)百萬的數(shù)據(jù)點(diǎn)并在想方設(shè)法將

該信息轉(zhuǎn)變?yōu)槭杖氲脑黾印?shù)據(jù)挖掘是很多技術(shù)的共同術(shù)語,用以表達(dá)從數(shù)據(jù)中一點(diǎn)點(diǎn)地收集信息并將其

轉(zhuǎn)變成有實(shí)際意義的東西。本文將向您介紹開源的數(shù)據(jù)挖掘軟件以及用來解析數(shù)據(jù)的最為常見的一些技術(shù)。

查看本系列更多內(nèi)容

本文的標(biāo)簽:data,mining,weka,商業(yè)智能

標(biāo)記本文!

發(fā)布日期:2010年5月17日

級別:中級

其他語言版本:裹文

訪問情況:5315次瀏覽

評論:1(查疊|添加評論-登錄)

平均分(20個評分)

為本文評分

簡介

什么是數(shù)娛笏嫡您會不時地問自己這個問題,因?yàn)檫@個主題越來越得到技術(shù)界的關(guān)注。您可能聽說過像

Google和Yah。。!這樣的公司都在生成有關(guān)其所有用戶的數(shù)十億的數(shù)據(jù)點(diǎn),您不禁疑惑,“它們要所有這

些信息干什么?”您可能還會驚奇地發(fā)現(xiàn)Walmart是最為先進(jìn)的進(jìn)行數(shù)據(jù)挖掘并將結(jié)果應(yīng)用于業(yè)務(wù)的公司

之一。現(xiàn)在世界上幾乎所有的公司都在使用數(shù)據(jù)挖掘,并且目前尚未使用數(shù)據(jù)挖掘的公司在不久的將來就

會發(fā)現(xiàn)自己處于極大的劣勢。

那么,您如何能讓您和您的公司跟上數(shù)據(jù)挖掘的大潮呢?

我們希望能夠回答您所有關(guān)于數(shù)據(jù)挖掘的初級問題。我們也希望將一種免費(fèi)的開源軟件Waikato

EnvironmentforKnowledgeAnalysis(WEKA)介紹給您,您可以使用該軟件來挖掘數(shù)據(jù)并將您對您用戶、

客戶和業(yè)務(wù)的認(rèn)知轉(zhuǎn)變?yōu)橛杏玫男畔⒁蕴岣呤杖?。您會發(fā)現(xiàn)要想出色地完成挖掘數(shù)據(jù)的任務(wù)并不像您想象

地那么困難。

此外,本文還會介紹數(shù)據(jù)挖掘的第一種技術(shù):回歸,意思是根據(jù)現(xiàn)有的數(shù)據(jù)預(yù)測未來數(shù)據(jù)的值。它可能是

挖掘數(shù)據(jù)最為簡單的一種方式,您甚至以前曾經(jīng)用您喜愛的某個流行的電子數(shù)據(jù)表軟件進(jìn)行過這種初級的

數(shù)據(jù)挖掘(雖然WEKA可以做更為復(fù)雜的計(jì)算)。本系列后續(xù)的文章將會涉及挖掘數(shù)據(jù)的其他方法,包

括群集、最近的鄰居以及分類樹。(如果您還不太知道這些術(shù)語是何意思,沒關(guān)系。我們將在這個系列一

一介紹。)

回頁首

什么是數(shù)據(jù)挖掘?

數(shù)據(jù)挖掘,就其核心而言,是指將大量數(shù)據(jù)轉(zhuǎn)變?yōu)橛袑?shí)際意義的模式和規(guī)則。并且,它還可以分為兩種類

型:直接的和間接的。在直接的數(shù)據(jù)挖掘中,您會嘗試預(yù)測一個特定的數(shù)據(jù)點(diǎn)一比如,以給定的一個房

子的售價來預(yù)測鄰近地區(qū)內(nèi)的其他房子的售價。

在間接的數(shù)據(jù)挖掘中,您會嘗試創(chuàng)建數(shù)據(jù)組或找到現(xiàn)有數(shù)據(jù)內(nèi)的模式一比如,創(chuàng)建“中產(chǎn)階級婦女”的人

群。實(shí)際上,每次的美國人口統(tǒng)計(jì)都是在進(jìn)行數(shù)據(jù)挖掘,政府想要收集每個國民的數(shù)據(jù)并將它轉(zhuǎn)變?yōu)橛杏?/p>

信息。

現(xiàn)代的數(shù)據(jù)挖掘開始于20世紀(jì)90年代,那時候計(jì)算的強(qiáng)大以及計(jì)算和存儲的成本均到達(dá)了一種很高的

程度,各公司開始可以自己進(jìn)行計(jì)算和存儲,而無需再借助外界的計(jì)算幫助。

此外,術(shù)語數(shù)據(jù)挖掘是全方位的,可指代諸多查看和轉(zhuǎn)換數(shù)據(jù)的技術(shù)和過程。因?yàn)楸鞠盗兄挥|及能用數(shù)據(jù)

挖掘?qū)崿F(xiàn)的功能的一些皮毛。數(shù)據(jù)挖掘的專家往往是數(shù)據(jù)統(tǒng)計(jì)方面的博士,并在此領(lǐng)域有10-30年的研究

經(jīng)驗(yàn)。這會為您留下一種印象,即只有大公司才能負(fù)擔(dān)得起數(shù)據(jù)挖掘。

我們希望能夠清除有關(guān)數(shù)據(jù)挖掘的這些誤解并希望弄清楚一點(diǎn):數(shù)據(jù)挖掘既不像對一系列數(shù)據(jù)運(yùn)行一個電

子數(shù)據(jù)表函數(shù)那么簡單,也不像有人想的那樣難到靠自己根本無法實(shí)現(xiàn)。這是80/20范型的一個很好的例

子一甚至更進(jìn)一步可以是90/10范型。您用所謂的數(shù)據(jù)挖掘?qū)<业?0%的專業(yè)知識就能創(chuàng)建具有

90%效力的數(shù)據(jù)挖掘模型。而為了補(bǔ)上模型剩下的10%的效力并創(chuàng)建一個完美的模型將需要90%額外

的時間,甚至長達(dá)20年。所以除非您立志以數(shù)據(jù)挖掘?yàn)槁殬I(yè)方向,否貝『足夠好”就可以了。從另一個方面

看,利用數(shù)據(jù)挖掘所達(dá)到的“足夠好”總要比您現(xiàn)在所采用的其他技術(shù)要好。

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

已經(jīng)有很多數(shù)據(jù)挖掘技術(shù),因此創(chuàng)建一個好的模型的最主要的步驟是決定要使用哪種技術(shù)。而這則極大地

依賴于實(shí)踐和經(jīng)驗(yàn)以及有效的指導(dǎo).這之后,需要對模型進(jìn)行優(yōu)化以讓它更令人滿意。在閱讀了本系列的

文章后,您應(yīng)該能夠自己根據(jù)自己的數(shù)據(jù)集正確決定要使用的技術(shù),然后采取必要的步驟對它進(jìn)行優(yōu)化。

您將能夠?yàn)槟约旱臄?shù)據(jù)創(chuàng)建一個足夠好的模型。

回頁首

WEKA

數(shù)據(jù)挖掘絕非大公司的專有,也不是多昂貴的軟件。實(shí)際上,有一種軟件可以實(shí)現(xiàn)那些價格不菲的軟件所

能實(shí)現(xiàn)的全部功能一這個軟件就是WEKA(參見參考資料)。WEKA誕生于UniversityofWaikato(新

西蘭)并在1997年首次以其現(xiàn)代的格式實(shí)現(xiàn)。它使用了GNUGeneralPublicLicense(GPL)?該軟件以

Java?語言編寫并包含了一個GUI來與數(shù)據(jù)文件交互并生成可視結(jié)果(比如表和曲線)。它還有一個通

用API,所以您可以像嵌入其他的庫一樣將WEKA嵌入到您自己的應(yīng)用程序以完成諸如服務(wù)器端自動數(shù)

據(jù)挖掘這樣的任務(wù)。

我們繼續(xù)并安裝WEKAe因?yàn)樗贘ava,所以如果您在計(jì)算機(jī)上沒有安裝JRE,那么請下載一個包含

JRE的WEKA版本。

圖1.WEKA的開始屏

ProgramVisualizationTookHelp

Applications

WEKA

TheUniversity

ofWaikato

WaikatoEnvironmentforKnowledgeAnalysis

Version3.6,2

(c)1999-2010

TheUniversityofWaikato

Hamilton,NewZealand

在啟動WEKA時,會彈出GUI選擇器,讓您選擇使用WEKA和數(shù)據(jù)的四種方式。對于本文章系列中的

例子,我們只選擇了Explorer選項(xiàng)。對于我們要在這些系列文章中所需實(shí)現(xiàn)的功能,這已經(jīng)足夠。

圖2.WEKAExplorer

S<?lUb.

WelcometotheW?kdExplorer.1tx

在熟悉了如何安裝和啟動WEKA后,讓我們來看看我們的第一個數(shù)據(jù)挖掘技術(shù):回歸。

回頁首

回歸

回歸是最為簡單易用的一種技術(shù),但可能也是最不強(qiáng)大(這二者總是相伴而來,很有趣吧)。此模型可以

簡單到只有一個輸入變量和一個輸出變量(在Excel中稱為Scatter圖形,或OpenO內(nèi)的

XYDiagram)。當(dāng)然,也可以遠(yuǎn)比此復(fù)雜,可以包括很多輸入變量。實(shí)際上,所有回歸模型均符合同一個

通用模式。多個自變量綜合在一起可以生成一個結(jié)果一一個因變量。然后用回歸模型根據(jù)給定的這些自

變量的值預(yù)測一個未知的因變量的結(jié)果。

每個人都可能使用過或看到過回歸模型,甚至曾在頭腦里創(chuàng)建過一個回歸模型。人們能立即想到的一個例

子就是給房子定價。房子的價格(因變量)是很多自變量一房子的面積、占地的大小、廚房是否有花崗

石以及衛(wèi)生間是否剛重裝過等的結(jié)果。所以,不管是購買過一個房子還是銷售過一個房子,您都可能會創(chuàng)

建一個回歸模型來為房子定價。這個模型建立在鄰近地區(qū)內(nèi)的其他有可比性的房子的售價的基礎(chǔ)上(模型),

然后再把您自己房子的值放入此模型來產(chǎn)生一個預(yù)期價格。

讓我們繼續(xù)以這個房屋定價的回歸模型為例,創(chuàng)建一些真實(shí)的數(shù)據(jù)。在我的鄰近地區(qū)有一些房子出售,我

試圖找到我自己房子的合理價格。我還需要拿此模型的輸出申報財(cái)產(chǎn)稅。

表1.回歸模型的房屋值

房子面積(平方英尺)占地的大小臥室花崗巖衛(wèi)生間有無重裝?銷售價格

35299191600$205,000

324710061511$224,900

403210150501$197,900

239714156410$189,900

2200960040r$195,000

353619994611$325,000

29839365501$230,000

31989669511????

好的消息是(也可能是壞消息,取決于您自己的看法)上述對回歸模型的簡單介紹只觸及了一些皮毛,這

種觸及甚至都不會被真正地注意到。關(guān)于回歸模型有大學(xué)的課程可以選擇,那會教授給您有關(guān)回歸模型的

更多信息,甚至多過您想要知道的。但我們的簡介讓您充分熟悉了這個概念,已足夠應(yīng)付本文中WEKA試

用。如果對回歸模型以及其中的數(shù)據(jù)統(tǒng)計(jì)的細(xì)節(jié)有更深的興趣,您可以用自己喜愛的搜索引擎搜索如下的

術(shù)語:leastsquares>homoscedasticity^normaldistribution、WhitetestsLillieforstests、R-squared和

p-values?

回頁首

為WEKA構(gòu)建數(shù)據(jù)集

為了將數(shù)據(jù)加載到WEKA,我們必須將數(shù)據(jù)放入一個我們能夠理解的格式。WEKA建議的加載數(shù)據(jù)的格式

是Attribute-RelationFileFormat(ARFF),您可以在其中定義所加載數(shù)據(jù)的類型,然后再提供數(shù)據(jù)本身。

在這個文件內(nèi),我們定義了每列以及每列所含內(nèi)容。對于回歸模型,只能有NUMERIC或DATE歹ij。最后,

以逗號分割的格式提供每行數(shù)據(jù)。我們?yōu)閃EKA使用的ARFF文件如下所示。請注意在數(shù)據(jù)行內(nèi),并未

包含我的房子。因?yàn)槲覀冊趧?chuàng)建模型,我房子的價格還不知道,所以我們還不能輸入我的房子。

清單1.WEKA文件格式

?RELATIONhouse

?ATTRIBUTEhouseSizeNUMERIC

?ATTRIBUTElotSizeNUMERIC

?ATTRIBUTEbedroomsNUMERIC

?ATTRIBUTEgraniteNUMERIC

?ATTRIBUTEbathroomNUMERIC

?ATTRIBUTEsellingpriceNUMERIC

?DATA

3529,9191,6,0,0,205000

3247,10061,5,1,1,224900

4032,10150,5,0,1,197900

2397,14156,4,1,0,189900

2200,9600,4,0,1,195000

3536,19994,6,1,1,325000

2983,9365,5,0,1,230000

回頁首

將數(shù)據(jù)載入WEKA

數(shù)據(jù)創(chuàng)建完成后,就可以開始創(chuàng)建我們的回歸模型了。啟動WEKA,然后選擇Explorer。將會出現(xiàn)Explorer

屏幕,其中Preprocess選項(xiàng)卡被選中。選擇OpenFile按鈕并選擇在上一節(jié)中創(chuàng)建的ARFF文件。在選

擇了文件后,WEKAExplorer應(yīng)該類似于圖3中所示的這個屏幕快照。

圖3.房屋數(shù)據(jù)加載后的WEKA

在這個視圖中,WEKA允許您查閱正在處理的數(shù)據(jù)。在Explorer窗口的左邊,給出了您數(shù)據(jù)的所有列

(Attributes)以及所提供的數(shù)據(jù)行的數(shù)量(Instances)。若選擇一列,Explorer窗口的右側(cè)就會顯示數(shù)據(jù)

集內(nèi)該列數(shù)據(jù)的信息。比如,通過選擇左側(cè)的houseSize列(它應(yīng)該默認(rèn)選中),屏幕右側(cè)就會變成顯示

有關(guān)該列的統(tǒng)計(jì)信息。它顯示了數(shù)據(jù)集內(nèi)此列的最大值為4,032平方英尺,最小值為2,200平方英尺。

平均大小為3,131平方英尺,標(biāo)準(zhǔn)偏差為655平方英尺(標(biāo)準(zhǔn)偏差是一個描述差異的統(tǒng)計(jì)量度)。止匕外,

還有一種可視的手段來查看數(shù)據(jù),單擊VisualizeAll按鈕即可。由于在這個數(shù)據(jù)集內(nèi)的行數(shù)有限,因此可

視化的功能顯得沒有有更多數(shù)據(jù)點(diǎn)(比如,有數(shù)百個)時那么功能強(qiáng)大。

好了,對數(shù)據(jù)的介紹已經(jīng)夠多了。讓我們立即創(chuàng)建一個模型來獲得我房子的價格。

回頁首

用WEKA創(chuàng)建一個回歸模型

為了創(chuàng)建這個模型,單擊Classify選項(xiàng)卡。第一個步驟是選擇我們想要創(chuàng)建的這個模型,以便WEKA知

道該如何處理數(shù)據(jù)以及如何創(chuàng)建一個適當(dāng)?shù)哪P停?/p>

1.單擊Choose按鈕,然后擴(kuò)展functions分支。

2.選擇LinearRegression葉。

這會告訴WEKA我們想要構(gòu)建一個回歸模型。除此之外,還有很多其他的選擇,這說明可以創(chuàng)建的的模

型有很多。非常多!這也從另一個方面說明本文只介紹了這個主題的皮毛。有一點(diǎn)值得注意。在同一個分

支還有另外一個選項(xiàng),稱為SimpleLinearRegression。請不要選擇該選項(xiàng),因?yàn)楹唵位貧w只能有一個變

量,而我們有六個變量。選擇了正確的模型后,WEKAExplorer應(yīng)該類似于圖4。

圖4.WEKA內(nèi)的線性回歸模型

我能用電子數(shù)據(jù)表達(dá)到同樣的目的么?

簡單而言:不可以。深思熟慮后的答案是:可以。大多數(shù)流行的電子數(shù)據(jù)表程序都不能輕松完成我們用

WEKA實(shí)現(xiàn)的功能,即定義一個具有多個自變量的線性模型。不過,您十分容易地實(shí)現(xiàn)一個SimpleLinear

Regression模型(具有一個自變量)。如果您有足夠的勇氣,甚至可以進(jìn)行一個多變量的回歸,但是這將

非常困難,絕對不如用WEKA來得簡單。本文的參考資料部分有一個MicrosoftExcel的示例視頻。

現(xiàn)在,選擇了想要的模型后,我們必須告訴WEKA它創(chuàng)建這個模型應(yīng)該使用的數(shù)據(jù)在哪里。雖然很顯然

我們想要使用在ARFF文件內(nèi)提供的那些數(shù)據(jù),但實(shí)際上有不同的選項(xiàng)可供選擇,有些甚至遠(yuǎn)比我們將要

使用的選項(xiàng)高級。其他的三個選擇是:Suppliedtestset允許提供一個不同的數(shù)據(jù)集來構(gòu)建模

型;Cross-validation讓W(xué)EKA基于所提供的數(shù)據(jù)的子集構(gòu)建一個模型,然后求出它們的平均值來創(chuàng)建

最終的模型;PercentagesplitWEKA取所提供數(shù)據(jù)的百分之一來構(gòu)建一個最終的模型。這些不同的選擇

對于不同的模型非常有用,我們在本系列后續(xù)文章中會看到這一點(diǎn)。對于回歸,我們可以簡單地選擇Use

trainingset。這會告訴WEKA為了構(gòu)建我們想要的模型,可以使用我們在ARFF文件中提供的那些數(shù)

據(jù)。

創(chuàng)建模型的最后一個步驟是選擇因變量(即我們想要預(yù)測的列)。在本例中指的就是房屋的銷售價格,因

為那正是我們想要的。在這些測試選項(xiàng)的正下方,有一個組合框,可用它來選擇這個因變量。

歹sellingPrice應(yīng)該默認(rèn)選中。如果沒有,請選擇它。

我們準(zhǔn)備好創(chuàng)建模型后,單擊Start。圖5顯示了輸出結(jié)果。

圖5.WEKA內(nèi)的房屋價格回歸模型

回頁首

解析這個回歸模型

WEKA可不馬虎。它會把這個回歸模型徑直放在輸出,如清單2所示。

清單2.回歸輸出

sellingprice=(-26.6882*housesize)+

(7.0551*lotsize)+

(43166.0767*bedrooms)+

(42292.0901*bathroom)

-21661.1208

清單3顯示了結(jié)果,其中已經(jīng)插入了我房子的價格。

清單3.使用回歸模型的房屋價格

sellingprice=(-26.6882*3198)+

(7.0551*9669)+

(43166.0767*5)+

(42292.0901*1)

-21661.1208

sellingprice=219,328

不過,回過頭來看看本文的開頭部分,我們知道數(shù)據(jù)挖掘絕不是僅僅是為了輸出一個數(shù)值:它關(guān)乎的是識

別模式和規(guī)則。它不是嚴(yán)格用來生成一個絕對的數(shù)值,而是要創(chuàng)建一個模型來讓您探測模式、預(yù)測輸出并

根據(jù)這些數(shù)據(jù)得出結(jié)論。讓我們更進(jìn)一步來解讀一下我們的模型除了房屋價格之外告訴我們的模式和結(jié)論:

?花崗石無關(guān)緊要一WEKA將只使用在統(tǒng)計(jì)上對模型的正確性有貢獻(xiàn)的那些列(以R-squared量

度,但這超出了本文的范圍)。它將會拋棄并忽視對創(chuàng)建好的模型沒有任何幫助的那些列。所以這

個回歸模型告訴我們廚房里的花崗石并不會影響房子的價值。

?衛(wèi)生間是有關(guān)系的一因我們?yōu)樾l(wèi)生間使用了簡單的?;?值,所以我們可以使用來自回歸模型

的這個系數(shù)來決定衛(wèi)生間的這個值對房屋價值的影響。這個模型告訴我們它使房子的價值增加了

$42,292o

?較大的房子價格反而低一WEKA告訴我們房子越大,銷售價格越低?這可以從housesize變

量前面負(fù)的系數(shù)看出來。此模型告訴我們房子每多出一平方英尺都會使房價減少$26?這根本沒有

意義。這是在美國!當(dāng)然是房子越大越好,特別是在我所在的得克薩斯州。那么我們怎么才能解釋

這一點(diǎn)呢?這是無用數(shù)據(jù)入、無用數(shù)據(jù)出的一個很好的例子。房子的大小并不是一個自變量,它還

與臥室變量相關(guān),因?yàn)榉孔哟笸ǔEP室也多。所以我們的模型并不完美。但是我們可以修復(fù)這個問

題。還記得么:在Preprocess選項(xiàng)卡,可以從數(shù)據(jù)集中刪除列。對于本例,我們刪除houseSize列

并創(chuàng)建另一個模型。那么它會如何影響房子的價格呢?這個新模型乂如何更有實(shí)際意義?(修改后

的我的房子價格是:$217,894)。

對統(tǒng)計(jì)學(xué)家的一個提示

這個模型打破了一個常規(guī)線性回歸模型的幾個要求,因?yàn)槊總€列并不是完全獨(dú)立的,并且這里也沒有足夠

的數(shù)據(jù)行來生成一個有效的模型。由于本文主要的目的是介紹WEKA這個數(shù)據(jù)挖掘工具,因此我們極大

地簡化了示例數(shù)據(jù)。

要想把這個簡單的示例提升到一個新的級別,讓我們來看一下WEKAWeb站點(diǎn)上作為回歸示例提供給我

們的一個數(shù)據(jù)文件。理論上講,這要比我們七個房子的簡單示例要復(fù)雜得多。這個示例數(shù)據(jù)文件的作用是

創(chuàng)建一個能基于汽車的幾個特性來推測其油耗(每加侖英里數(shù),MPG)的回歸模型(請務(wù)必記住,數(shù)據(jù)取

自1970至1982年)。這個模型包括汽車的如下屬性:汽缸、排量、馬力、重量、加速度、年份、產(chǎn)地

及制造商。此外,這個數(shù)據(jù)集有398行數(shù)據(jù),這些數(shù)據(jù)足以滿足我們的多種統(tǒng)計(jì)需求,而這在我們的房價

模型中是不能實(shí)現(xiàn)的。理論上講,這是一個極為復(fù)雜的回歸模型,WEKA可能需要大量時間才能創(chuàng)建一個

具有如此多數(shù)據(jù)的模型(但我估計(jì)您已預(yù)見到了WEKA能夠很好地處理這些數(shù)據(jù))。

要用這個數(shù)據(jù)集生成一個回歸模型,我們需要嚴(yán)格地按照處理房子數(shù)據(jù)的步驟來處理這些數(shù)據(jù),所以這里

我不再贅述。繼續(xù)并創(chuàng)建這個回歸模型。它將生成如清單4所示的輸出。

清單4.MPG數(shù)據(jù)回歸模型

class(akaMPG)=

-2.2744*cylinders=6,3,5,4+

-4.4421*cylinders=3,5,4+

6.74*cylinders=5,4+

0.012*displacement+

-0.0359*horsepower+

-0.0056*weight+

1.6184*model=75,71,76,74,77,78,79,81,82,80+

1.8307*model=77,78,79,81,82,80+

1.8958*model=79,81,82,80+

1.7754*model=81,82,80+

1.167*model=82,80+

1.2522*model=80+

2.1363*origin=2,3+

37.9165

在您自己生成這個模型時,您會看到WEKA只用了不到一秒的時間就處理好了這個模型。所以,即使要

處理的是具有大量數(shù)據(jù)的功能強(qiáng)大的回歸模型,就計(jì)算而言,也不是什么問題。這個模型看上去應(yīng)該比房

子數(shù)據(jù)復(fù)雜得多,但事實(shí)并非如此。例如,這個回歸模型的首行,-2.2744*cylinders=6,3,5,4表

示,如果汽車有6個缸,就會在此列中放上一個1,如果汽車有8個缸,就會放上一個0。讓我們從這

個數(shù)據(jù)集中取一個示例行(第10行)并將這些數(shù)值放入回歸模型,看看我們這個模型的輸出是否與數(shù)據(jù)

集中提供給我們的輸出相似。

清單5.示例MPG數(shù)據(jù)

data=8,390,190,3850,8.5,70,1,15

class(akaMPG)=

-2.2744*0+

-4.4421*0+

6.74*0+

0.012*390+

-0.0359*190+

-0.0056*3850+

1.6184*0+

1.8307*0+

1.8958*0+

1.7754*0+

1.167*0+

1.2522*0+

2.1363*0+

37.9165

Expectedvalue=15mpg

RegressionModelOutput=14.2mpg

因此,當(dāng)我們用隨機(jī)選擇的測試數(shù)據(jù)對此模型進(jìn)行測試時,此模型的表現(xiàn)非常出色,對于一輛實(shí)際值為15

MPG的車,我們的預(yù)測值是14.2MPG。

回頁首

結(jié)束語

本文通過向您介紹數(shù)據(jù)挖掘這個主題的背景以及這個領(lǐng)域的目標(biāo)力求回答“什么是數(shù)據(jù)挖掘”這個問題。數(shù)據(jù)

挖掘就是通過創(chuàng)建模型和規(guī)則來將大量的不可用信息(通常是分散的數(shù)據(jù)形式)變成有用的信息。您的目

標(biāo)是使用模型和規(guī)則來預(yù)測將來的行為,從而改進(jìn)您的業(yè)務(wù),或是解釋一些您用其他方法不能解釋的事情。

這些模型可以幫助您確認(rèn)您已經(jīng)有了的某些想法,甚至可能會讓您發(fā)現(xiàn)數(shù)據(jù)中您以前不曾意識到的新東西。

這里有個有趣的數(shù)據(jù)挖掘的例子(不知道還存在多少類似的事例),在美國,Walmart會在周末時把啤酒

移到尿布貨架的未端,這是因?yàn)閃almart的數(shù)據(jù)挖掘結(jié)果顯示男士通常會在周末購買尿布,而他們同時也

喜歡在周末喝啤酒。

本文還向您介紹了一種免費(fèi)的開源軟件程序WEKA?當(dāng)然,市場上還有很多更為復(fù)雜的數(shù)據(jù)挖掘商業(yè)軟件

產(chǎn)品,但對于剛開始進(jìn)行數(shù)據(jù)挖掘的人來說,這種開源的解決方案非常有益。請記住,您永遠(yuǎn)不可能成為

數(shù)據(jù)挖掘方面的專家,除非您打算用20年的時間來研究它。WEKA可以讓您步入數(shù)據(jù)挖掘的大門,同時

也能為您遇到的初級問題提供完美的解決方案。如果您以前對數(shù)據(jù)挖掘接觸不多,那么這個非常好的解決

方案將能滿足您的全部所需。

最后,本文探討了第一個數(shù)據(jù)挖掘模型:回歸模型(特別是線性回歸多變量模型),另外還展示了如何在

WEKA中使用它。這個回歸模型很容易使用,并且可以用于很多數(shù)據(jù)集。您會發(fā)現(xiàn)這個模型是我在本系列

文章中所討論的所有模型中最有用的一個。然而,數(shù)據(jù)挖掘不僅局限于簡單的回歸,在不同的數(shù)據(jù)集及不

同的輸出要求的情況下,您會發(fā)現(xiàn)其他的模型也許是更好的解決方案。

最后,我再重申一下,本文及本系列的后續(xù)文章只是對數(shù)據(jù)統(tǒng)計(jì)和數(shù)據(jù)挖掘領(lǐng)域做了最簡單的介紹?;ㄉ?/p>

整整一學(xué)期的時間去學(xué)習(xí)數(shù)據(jù)統(tǒng)計(jì)和數(shù)據(jù)挖掘的人也只能被稱為“初學(xué)者”。我們的目的就是讓初學(xué)者充分

領(lǐng)略這個可用的開源工具的妙處并提高對數(shù)據(jù)挖掘所能提供的價值的了解和重視。

回頁首

下載

描述名字大小下載方法

示例代碼os-weka1-Examples.zip6KBHTTP

關(guān)于下載方法的信息

參考資料

學(xué)習(xí)

?WEKA要求所有關(guān)于它的出版物都必須提及這篇題為“TheWEKADataMininqSoftware:An

Update"(作者M(jìn)arkHalkEibeFrank、GeoffreyHolmes、BernhardPfahringerPeterReutemann

和IanH.Witten)的論文。

?利用YouTube上的這個視頻了解如何將一個電子數(shù)據(jù)表用于一個簡單的回歸模型。

?查閱WEKAWeb站點(diǎn)獲得此軟件的所有文檔和一個FAQ。

?在Wikipedia上杳閱回,模型,這里可能有比您想象中還要多的技術(shù)細(xì)節(jié)。

?閱讀有關(guān)ARFF的詳細(xì)信息,以便您可以將數(shù)據(jù)加載入WEKA。

?IBM也有自己的數(shù)據(jù)挖掘軟件,"IntegrateInfoSphereWarehousedataminingw讓hIBMCoqnos

reporting!,Part1"提供了一個很好的起點(diǎn)。

?要收聽面向軟件開發(fā)人員的有趣訪談和討論,請?jiān)L問developerWorkspodcasts。

?隨時關(guān)注developerWorks技術(shù)活動和網(wǎng)絡(luò)廣播。

?查閱最近將在全球舉辦的面向舊M開放源碼開發(fā)人員的研討會、交易展覽、網(wǎng)絡(luò)廣播和其他適動。

?訪問developerWorksOpensource專區(qū)獲得豐富的how-to信息、工具和項(xiàng)目更新以及最受歡迎

的文章和教程,幫助您用開放源碼技術(shù)進(jìn)行開發(fā),并將它們與IBM產(chǎn)品結(jié)合使用。

?developerWorks社區(qū)是流行社區(qū)的一個成功典范,包含廣泛的主題。

杳看免費(fèi)的developerWorks演示中心,觀看并了解舊M及開源技術(shù)和產(chǎn)品功能。

用WEKA進(jìn)行數(shù)據(jù)挖掘,第2部分:分類和群

MichaelAbernethy,產(chǎn)品開發(fā)經(jīng)理,OptimalAuctions

簡介:數(shù)據(jù)挖掘是很多技術(shù)的共同術(shù)語,用以表達(dá)從數(shù)據(jù)中一點(diǎn)點(diǎn)地收集信息并將其轉(zhuǎn)變成有實(shí)際意義的

趨勢和規(guī)則來提高您對數(shù)據(jù)的理解。在本系列“用WEKA進(jìn)行數(shù)據(jù)挖掘”的第2部分我們將討論兩種最

常見的數(shù)據(jù)挖掘方法一分類和群集一利用它們可以對您的數(shù)據(jù)進(jìn)行更強(qiáng)大的分析。

查看本系列更多內(nèi)容

本文的標(biāo)簽:商業(yè)智能,開發(fā)工具

標(biāo)記本文!

發(fā)布日期:2010年5月31日

級別:中級

其他語言版本:裹文

訪問情況:5977次瀏覽

評論:0(查疊|添加評論-登錄)

平均分(11個評分)

為本文評分

簡介

在用WEKA進(jìn)行數(shù)據(jù)挖掘,第1部分:簡介和回歸,我介紹了數(shù)據(jù)挖掘的概念以及免費(fèi)的開源軟件

WaikatoEnvironmentforKnowledgeAnalysis(WEKA),利用它可以挖掘數(shù)據(jù)來獲得趨勢和模式。我還

談到了第一種數(shù)據(jù)挖掘的方法一回歸一使用它可以根據(jù)一組給定的輸入值預(yù)測數(shù)字值。這種分析方法

非常容易進(jìn)行,而且也是功能最不強(qiáng)大的一種數(shù)據(jù)挖掘方法,但是通過它,讀者對WEKA有了很好的了

解,并且它還提供了一個很好的例子,展示了原始數(shù)據(jù)是如何轉(zhuǎn)換為有意義的信息的。

在本文中,我將帶您親歷另外兩種數(shù)據(jù)挖掘的方法,這二者要比回歸模型稍微復(fù)雜一些,但功能則更為強(qiáng)

大。如果回歸模型只能為特定輸入提供一個數(shù)值輸出,那么這兩種模型則允許您對數(shù)據(jù)做不同的解析。正

如我在第1部分中所說的,數(shù)據(jù)挖掘的核心就是將正確的模型應(yīng)用于數(shù)據(jù)。即便有了有關(guān)客戶的最佳數(shù)據(jù)

(無論這意味著什么),但是如果沒有將正確的模型應(yīng)用于數(shù)據(jù),那么這些數(shù)據(jù)也沒有任何意義。不妨從

另一個角度考慮這件事情:如果您只使用能生成數(shù)值輸出的回歸模型,那么Amazon如何能告知您“購買

了X產(chǎn)品的客戶還購買了Y產(chǎn)品”?這里沒有數(shù)值型的函數(shù)能夠告訴您這類信息。所以讓我們來深入研究

可用在數(shù)據(jù)中的其他兩個模型。

在本文中,我會反復(fù)提及稱為“最近鄰”的數(shù)據(jù)挖掘方法,但我不會過多地對其進(jìn)行剖析,詳細(xì)的介紹會在第

3部分給出。不過,我在本文中的比較和描述部分將它包括進(jìn)來以使討論更為完整。

回頁首

分類VS.群集VS.最近鄰

在我深入探討每種方法的細(xì)節(jié)并通過WEKA使用它們之前,我想我們應(yīng)該先理解每個模型一每個模型

適合哪種類型的數(shù)據(jù)以及每個模型試圖實(shí)現(xiàn)的目標(biāo)。我們還會將我們已有的模型一回歸模型一也包括

在我們的討論之中,以便您可以看到這三種新模型與我們已經(jīng)了解的這個模型的對比。我將通過實(shí)際的例

子展示每個模型的使用以及各自的不同點(diǎn)。這些實(shí)際的例子均圍繞著一個本地的BMW經(jīng)銷店展開,研究

它如何能增加銷售。這個經(jīng)銷店已經(jīng)保存了所有其過去的銷售信息及有關(guān)購買過BMW、留意過BMW或

是來過BMW展廳的每個客戶的信息。這個經(jīng)銷店想要增加未來的銷售并部署了數(shù)據(jù)挖掘來實(shí)現(xiàn)此目標(biāo)。

回歸

問題:“對于新的BMWM5車型我們該如何定價?”回歸模型只能給出這個問題的一個數(shù)值答案?;貧w模

型會使用BMW和M5的過去銷售數(shù)據(jù)來基于所售汽車的屬性和賣點(diǎn)確定人們過去在這個經(jīng)銷店購買車

的價格。然后,回歸模型允許BMW經(jīng)銷店插入新車的屬性來確定其價格。

比如:SellingPrice=$25,000+($2900夫LitersinEngine)+($9000*isSedan)

+($11,000*isConvertible)+($100*inchesofcar)+($22z000*isM)o

分類

問題:“那么客戶X有多大的可能會購買最新的BMWM5呢?”創(chuàng)建一個分類樹(一個決策樹),并借

此挖掘數(shù)據(jù)就可以確定這個人購買一輛新的M5的可能性有多大.這個樹上的節(jié)點(diǎn)可以是年齡、收入水平、

目前擁有的車的數(shù)量、婚姻狀況、有無孩子、房主還是租戶。對這個決策樹使用此人的這些屬性就可以確

定他購買M5的可能性。

群集

問題是:"哪個年齡組最喜歡銀色的BMWM5?”這就需要挖掘數(shù)據(jù)來對比過去購車者的年齡和過去購買的

車的顏色。從這些數(shù)據(jù),就能夠找到某個年齡組(比如22-30歲)具有訂購某種顏色的BMWM5的更高

的傾向性(75%購買藍(lán)色)。同樣地,它也可顯示另一個不同的年齡組(比如55-62)則更傾向于訂購銀

色的BMW(65%購買銀色,20%購買灰色)。這些數(shù)據(jù),當(dāng)挖掘后,傾向于集中于某些特定年齡組和

特定顏色周圍,方便用戶快速判斷該數(shù)據(jù)內(nèi)的模式。

最近鄰

問題:“當(dāng)人們購買BMWM5時,他們傾向于同時購買其他哪些選項(xiàng)?”數(shù)據(jù)挖掘顯示,人們?nèi)氲瓴①徺I一

輛BMWM5時,他們還會傾向于購買與之配套的行李箱。(這也就是所謂的購物籃分析)。使用此數(shù)據(jù),

汽車經(jīng)銷店就會將配套行李箱的促銷廣告放在店面的顯眼處,甚至?xí)趫蠹埳献龃黉N廣告,如果他們購買

M5,配套行李箱將免費(fèi)/打折,以期增加銷售。

回頁首

分類

分類(也即分類樹或決策樹)是一種數(shù)據(jù)挖掘算法,為如何確定一個新的數(shù)據(jù)實(shí)例的輸出創(chuàng)建逐步指導(dǎo)。

它所創(chuàng)建的這個樹上的每個節(jié)點(diǎn)都代表一個位置,在這個位置必須基于輸入做出決策,并且會從一個節(jié)點(diǎn)

移到下一個節(jié)點(diǎn)直至到達(dá)能夠得出預(yù)測的輸出的葉子節(jié)點(diǎn)。這雖然聽起來有些讓人迷惑,但其實(shí)它非常直

觀。讓我們看一個例子。

清單1.簡單的分類樹

[will

YouRead

This

Section?]

Yes

NO

/

\

[willYOU

understand

It?]

[won't

LearnIt]

/

\

Yes

NO

/

\

[will

Learnit]

[won*t

LearnIt]

這個簡單的分類樹試圖回答這個問題:“您理解分類樹么?”在每個節(jié)點(diǎn),您都會回答這個問題并繼續(xù)沿著分

支下移,直到您到達(dá)一個回答了是或不是的葉子節(jié)點(diǎn)。這個模型可用于任何未知的數(shù)據(jù)實(shí)例,來預(yù)測這個

未知數(shù)據(jù)實(shí)例是否通過只詢問兩個簡單問題就能理解分類樹。這看上去像是分類樹的一大優(yōu)勢一它無需

有關(guān)數(shù)據(jù)的大量信息就能創(chuàng)建一個十分準(zhǔn)確且信息豐富的樹。

分類樹的一個重要概念非常類似于我們在用WEKA進(jìn)行數(shù)據(jù)挖掘,第1部分:簡介和回歸回歸模型中

看到的概念:使用一個“訓(xùn)練集”來生成模型。就是拿一組輸出值已知的數(shù)據(jù)集并使用此數(shù)據(jù)集來創(chuàng)建我們的

模型。之后,只要我們有一個輸出值未知的新的數(shù)據(jù)點(diǎn),我們都可以將其放入這個模型并生成預(yù)期的輸出。

這與我們在回歸模型中看到的沒有差別。只不過,這個模型更進(jìn)了一步,通常會把整個訓(xùn)練集分成兩個部

分:拿數(shù)據(jù)的約60-80%放入我們的訓(xùn)練集,用來生成模型;然后拿剩下的數(shù)據(jù)放入一個測試集,在模型

生成后,立即用其來測試我們模型的準(zhǔn)確性。

那么這個額外的步驟為什么在此模型中如此重要呢?這個問題就是所謂的過雙合:如果我們提供過多數(shù)據(jù)

用于模型創(chuàng)建,我們的模型雖然會被完美創(chuàng)建,但只針對的是該數(shù)據(jù)。請記住:我們想使用此模型來預(yù)測

未來的未知數(shù);我們不是想使用此模型來準(zhǔn)確地預(yù)測我們已經(jīng)知道的值。這就是為什么我們要創(chuàng)建一個測

試集。在創(chuàng)建了模型后,我們要進(jìn)行檢查以確保我們所創(chuàng)建模型的準(zhǔn)確性不會在測試集降低。這就保證了

我們的模型會準(zhǔn)確地預(yù)測出未來的未知值。使用WEKA會看到它的實(shí)際效果。

這還引出了分類樹的另一個重要概念:修剪。嬤翦正如其名字所指,意思是刪減分類樹的枝條。那么為什

么有人會想要將信息從分類樹中刪除呢?還是因?yàn)檫^擬合的緣故。隨著數(shù)據(jù)集的增大以及屬性數(shù)量的增長,

我們所創(chuàng)建的樹就會越來越復(fù)雜。理論上講,一個樹可以具有l(wèi)eaves=(rows*attributes)?

但那又有何益處呢?就預(yù)測未來的未知數(shù)而言,它根本幫不到我們,因它只適于我們現(xiàn)有的訓(xùn)練數(shù)據(jù)。因

此我們需要的是一種平衡。我們想要我們的樹盡量簡單,節(jié)點(diǎn)和枝葉盡量少。同時我們還想要它盡量地準(zhǔn)

確。這就需要進(jìn)行權(quán)衡,我們不久就會看到。

在使用WEKA前,有關(guān)分類我還想指出最后一點(diǎn),那就是假正和假負(fù)。假正指的是這樣的一個數(shù)據(jù)實(shí)例:

我們創(chuàng)建的這個模型預(yù)測它應(yīng)該是正的,但事實(shí)相反,實(shí)際值卻是負(fù)的。同樣地,假負(fù)指的是這樣一個數(shù)

據(jù)實(shí)例:我們創(chuàng)建的這個模型預(yù)測它應(yīng)該是負(fù)的,但事實(shí)相反,實(shí)際值卻是正的。

這些錯誤表明在我們的模型中出了問題,我們的模型正在錯誤地分類某些數(shù)據(jù)。雖然可能會出現(xiàn)不正確的

分類,但可接受的錯誤百分比由模型創(chuàng)建者決定。比如,如果是在醫(yī)院里測試心臟監(jiān)視器,很顯然,將需

要極低的錯誤百分比。而如果您只是在有關(guān)數(shù)據(jù)挖掘的文章中挖掘一些虛構(gòu)的數(shù)據(jù),那么錯誤率可以更高

一些。為了使之更進(jìn)一步,還需要決定可以接受的假負(fù)與假正的百分比率是多少。我立即想到的一個例子

就是垃圾郵件模型:一個假正(一個真郵件被標(biāo)記為了垃圾郵件)要比假負(fù)(一個垃圾消息未被標(biāo)記為垃

圾郵件)更具破壞性。在像這樣的例子中,就可以判斷假負(fù):假正的比率最低為100:1才是可以接受的。

好了,對于分類樹的背景和技術(shù)方面的介紹已經(jīng)夠多了。讓我們現(xiàn)在開始獲得一些真正的數(shù)據(jù)并將其帶入

WEKAo

WEKA數(shù)據(jù)集

我們用于分類示例的數(shù)據(jù)集所圍繞的仍然是我們虛構(gòu)的BMW經(jīng)銷店。這個經(jīng)銷店正在啟動一個推銷計(jì)

劃,試圖向其老客戶推銷兩年延保。這個經(jīng)銷店過去曾做過類似的計(jì)劃并從過去的銷售中收集了4,500個

數(shù)據(jù)點(diǎn)。數(shù)據(jù)集中的屬性有:

?收入水平[0=$0-$30k,1=$31k-$40k,2=$41k-$60k,3=$61k-$75k,4=$76k-$100k,5=$101k-$150k,

6=$151k-$500k,7=$501k+]

?第一輛BMW購買的年/月

?最近的BMW購買的年/月

?是否過去曾響應(yīng)過延保計(jì)劃

讓我們來看看在這個例子中使用的Attribute-RelationFileFormat(ARFF)?

清單2.分類WEKA數(shù)據(jù)

?attributeincomeBracket{0,1,2,3,4,5,6,7}

(^attributeFirstPurchasenumeric

?attributeLastpurchasenumeric

?attributeresponded{1,0}

?data

4,200210,200601,0

5,200301,200601,1

在WEKA內(nèi)進(jìn)行分類

使用我們之前使用過的相同步驟來將數(shù)據(jù)文件bmw-training.arff(參見上載)載入WEKA。請注意:這

個文件只包含經(jīng)銷店記錄內(nèi)的這4,500個記錄中的3,000個。我們需要分割我們的記錄以便某些數(shù)據(jù)實(shí)

例被用來創(chuàng)建模型,某些被用來測試模型以確保沒有過擬合。在加載了數(shù)據(jù)后,屏幕應(yīng)該類似于圖1o

圖1.WEKA內(nèi)的BMW分類數(shù)據(jù)

與我們在用WEKA進(jìn)行數(shù)據(jù)挖掘,第1部分:簡介和回歸中對回歸模型所做的類似,我們選

擇Classify選項(xiàng)卡,然后選擇trees節(jié)點(diǎn),然后是J48葉子(我不知道為何這就是正式的名稱,不過還是

接受吧)。

圖2.BMW分類算法

至此,我們已經(jīng)準(zhǔn)備好可以在WEKA內(nèi)創(chuàng)建我們的模型了。請確保Usetrainingset被選中以便我們使

用剛剛加載的這個數(shù)據(jù)集來創(chuàng)建模型。單擊Start并讓W(xué)EKA運(yùn)行。模型的輸出應(yīng)類似于清單3內(nèi)的結(jié)

果。

清單3.WEKA的分類模型的輸出

NumberofLeaves:28

Sizeofthetree:43

Timetakentobuildmodel:0.18seconds

===Evaluationontrainingset===

===Summary===

CorrectlyClassifiedInstances177459.1333%

incorrectlyClassifiedinstances122640.8667%

KappastatiStic0.1807

Meanabsoluteerror0.4773

Rootmeansquarederror0.4885

Relativeabsoluteerror95.4768%

Rootrelativesquarederror97.7122%

TotalNumberofinstances3000

===DetailedAccuracyByclass===

TPRateFPRatePrecisionRecal1F-MeasureROCAreaclass

0.6620.4810.5870.6620.6220.6161

0.5190.3380.5970.5190.5550.6160

weightedAvg?0.5910.4110.5920.5910.5890.616

===ConfusionMatrix===

ab<--classifiedas

1009516|a=1

710765|b=0

上述這些數(shù)字是什么意思?我們怎么才能知道這是一個好的模型?我們應(yīng)該尋找的這個所謂的“樹”在哪

里?這些問題問得很好。讓我們逐一回答:

?這些數(shù)字是什么意思?這里應(yīng)該關(guān)注的重要數(shù)字是"CorrectlyClassifiedInstances"(59.1%)與

"IncorrectlyClassifiedInstances"(40.9%)旁邊的這些數(shù)字。其他的重要數(shù)字還有"ROCArea"列

第一行的這個數(shù)字(0.616);我稍候會詳細(xì)解釋這個數(shù)字,目前只需記住即可。最后,在“Confusion

Matrix”中,顯示了假正和假負(fù)的數(shù)量。在這個矩陣中,假正為516,假負(fù)為710。

?我們怎么才能知道這是一個好的模型?由于準(zhǔn)確率僅為59.1%,我不得不承認(rèn)經(jīng)初步分析后,這

不是一個非常好的模型。

?這個所謂的“樹”在哪里?要看到這個樹,可右鍵單擊剛剛創(chuàng)建的這個模型。在彈出菜單中,選

擇Visualizetree。之后,就會看到我們所創(chuàng)建的這個分類樹,雖然在本例中,可視樹不能提供任

何幫助。我們的樹如圖3所示??吹竭@個樹的另一種方式是在ClassifierOutput內(nèi)往高處看,其

中的文本輸出顯示了具有節(jié)點(diǎn)和葉子的整個樹。

圖3.分類樹可視化

還有最后一個步驟,就是驗(yàn)證我們的分類樹,這需要貫穿模型運(yùn)行我們的測試集并確保我們模型的準(zhǔn)確性

在測試集時與在訓(xùn)練集時相差不遠(yuǎn)。為此,在Testoptions內(nèi),選擇Suppliedtestset單選按鈕并單

擊Set。選擇文件bmw-test.arff,內(nèi)含1,500條記錄,而這些記錄在我們用來創(chuàng)建模型的訓(xùn)練集中是沒有

的。當(dāng)我們這次單擊Start時,WEKA將會貫穿我們已經(jīng)創(chuàng)建的這個模型運(yùn)行測試數(shù)據(jù)集并會讓我們知道

模型的情況。讓我們現(xiàn)在單擊Start。如下是輸出。

圖4.分類樹測試

對比這個測試集的"CorrectlyClassifiedInstances"(55.7%)與訓(xùn)練集的"CorrectlyClassifiedInstances"

(59.1%),我們看到此模型的準(zhǔn)確性非常接近,這表明此模型不會在應(yīng)用未知數(shù)據(jù)或未來數(shù)據(jù)時,發(fā)生

故障。

不過,由于模型的準(zhǔn)確性很差,只能正確地分類60%的數(shù)據(jù)記錄,因此我們可以后退一步說:“哦,這個

模型一點(diǎn)都不好。其準(zhǔn)確性勉強(qiáng)超過50%,我隨便猜猜,也能得到這樣的準(zhǔn)確性?!边@完全正確。這也是

我想審慎地告訴大家的一點(diǎn):有時候,將數(shù)據(jù)挖掘算法應(yīng)用到數(shù)據(jù)集有可能會生成一個糟糕的模型。這一

點(diǎn)在這里尤其準(zhǔn)確,并且它是故意的。

我本想帶您親歷用適合于分類模型的數(shù)據(jù)生成一個分類樹的全過程。然而,我們從WEKA獲得的結(jié)果表

明我們錯了。我們在這里本應(yīng)選擇的并泮■分類樹。我們所創(chuàng)建的這個模型不能告訴我們?nèi)魏涡畔ⅲ⑶胰?/p>

果我們使用它,我們可能會做出錯誤的決策并浪費(fèi)錢財(cái)。

那么這是不是意味著該數(shù)據(jù)無法被挖掘呢?當(dāng)然不是,只不過需要使用另一種數(shù)據(jù)挖掘方法:最近鄰模型,

該模型會在本系列的后續(xù)文章中討論,它使用相同的數(shù)據(jù)集,卻能創(chuàng)建一個準(zhǔn)確性超過88%的模型。它

旨在強(qiáng)調(diào)一點(diǎn):那就是必須為數(shù)據(jù)選擇合適的模型才能得到有意義的信息.

進(jìn)一步閱讀:如果您想更多地了解分類樹,有一些關(guān)鍵字可以查找,因篇幅的原因我在這里就不逐一介紹

了:ROCcurvesAUC、falsepositivesfalsenegatives>learningcurves、NaiveBayes、informationgain、

overfitting、pruning,chi-squaretest?

回頁首

群集

群集讓用戶可以通過數(shù)據(jù)組來從數(shù)據(jù)確定模式。當(dāng)數(shù)據(jù)集已定義并且需要從此數(shù)據(jù)確定一個通用的模式時,

群集的優(yōu)勢就會比較明顯。您可以根據(jù)自身業(yè)務(wù)需要創(chuàng)建一定數(shù)量的組。與分類相比,群集的一個好處是

數(shù)據(jù)集內(nèi)的每個屬性都被用來分析該數(shù)據(jù)。(在分類方法中,只有屬性的一個子集用在了模型中。)使用

群集的一個主要劣勢是用戶需要提前知道他想要創(chuàng)建的組的數(shù)量。若用戶對其數(shù)據(jù)知之甚少,這可能會很

困難。是應(yīng)該創(chuàng)建三個組?五個組?還是十個組?所以在決定要創(chuàng)建的理想組數(shù)之前,可能需要進(jìn)行幾個

步驟的嘗試和出錯。

不過,對于一般的用戶,群集有可能是最為有用的一種數(shù)據(jù)挖掘方法。它可以迅速地將整個數(shù)據(jù)集分成組,

供您快速得出結(jié)論。此方法背后的算法多少有些復(fù)雜和難懂,這也是我們?yōu)楹我浞掷肳EKA的原因。

算法概覽

如下是對群集中所用算法的一個簡要的快速概覽:

1.數(shù)據(jù)集內(nèi)的每個屬性都應(yīng)該是規(guī)格化的,因此,每個值均除以該屬性在數(shù)據(jù)集內(nèi)的最高值與最低值

間的差值。例如,如果屬性是年齡,且最高值為72,最低值為16,那么年齡32將被規(guī)格化為

0.5714,

2.理想的群集數(shù)量給定后,就可以隨機(jī)地從數(shù)據(jù)集選擇該數(shù)量的樣例來充當(dāng)我們初始測試群集中心。

比如,如果想要有三個群集,那么就可以從數(shù)據(jù)集中隨意選擇三行數(shù)據(jù)。

3.計(jì)算從每個數(shù)據(jù)樣例到群集中心(我們隨意選中的數(shù)據(jù)行)的距離,使用距離計(jì)算的最小平方法。

4.基于到每個群集中心的最短距離將每個數(shù)據(jù)行分配給一個群集。

5.計(jì)算重心,即只使用每個群集的數(shù)的每列數(shù)據(jù)的平均數(shù)。

6.計(jì)算每個數(shù)據(jù)樣例與剛剛創(chuàng)建的這些重心之間的距離。如果群集及群集數(shù)不變,那么就說明大功告

成,群集創(chuàng)建完畢。如果它們變化,那么就需要返回到步驟3重新開始并一遍遍重復(fù),直到不再

變化為止。

很顯然,這看上去不怎么有趣。對于一個具有10行和三個群集的數(shù)據(jù)集,若使用電子數(shù)據(jù)表,需要花上30

分鐘才能完成。那么想象一下,如果有100,000數(shù)據(jù)行和10個群集,若用手工完成那將花費(fèi)多長時間。

所幸的是,計(jì)算機(jī)在幾秒內(nèi)就可以完成這類計(jì)算。

WEKA的數(shù)據(jù)集

我們?yōu)槿杭纠褂玫倪@個數(shù)據(jù)集同樣也圍繞著我們虛構(gòu)的BMW經(jīng)銷店。這個經(jīng)銷店保留了人們?nèi)绾?/p>

在經(jīng)銷店以及展廳行走、他們看了哪些車以及他們最終購車的機(jī)率的記錄.經(jīng)銷店期望通過尋找數(shù)據(jù)內(nèi)的

模式挖掘這些數(shù)據(jù)并使用群集來判斷其客戶是否有某種行為特點(diǎn)。在這個例子中有100行數(shù)據(jù),并且每個

列都描述了顧客在他們各自的B

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論