weka机器学习-01-weka简介及基本概念
1.weka主界面各個功能鍵概述
Explorer(探索者):最容易使用的圖形用戶界面,通過菜單和填寫表單可以調用weka的所有功能。
缺陷:要求將所需數據全部依次讀進內存,一旦用戶打開某個數據集,就會批量讀取全部數據。因此,這種批量方式僅適合處理中小規模問題。
KnowledgeFlow(知識流):可以使用增量方式的算法來處理大規模的數據集,無需一次性全部導入。
Experimenter(實驗者):對于一個已知問題,哪種方法及參數值能夠取得最佳效果。即可以用于進行多種算法性能的比較。
2.基本概念
2.1 機器學習的分類
機器學習分為兩種主要類型。
(1)有監督學習(預測學習),目標是在給定一系列輸入/輸出實例所構成的數據集的條件下,學習輸入x到輸出y的映射關系。這里的數據集稱為訓練集,實例的個數稱為訓練樣本數。(從分類角度看,即訓練集中各組數據的類別已知)可以對所觀察到的值與預測值進行比較,得到明確的誤差值。
(2)無監督學習(描述學習),目標是在給定一系列輸入實例構成的數據集的條件下,發現數據中的有趣模式。因為我們不知道需要尋找什么樣的模式,也沒有明顯的誤差度量可供使用。
2.2ARFF格式
ARFF格式是weka的專用格式。
數據集是實例的集合,每個實例包含一定的屬性,屬性的數據類型包括以下幾類:
(1)標稱型(nominal),只能取預定義值列表中的一個,如性別(男,女),衣服顏色(紅、黃、藍)。
(2)數值型(numeric),只能表示整數或實數。
(3)字符串型(string),由雙引號引用的任意長度的字符列表。
(4)日期型(date)
(5)關系型(relational)
ARFF文件就是實例類型的外部表示,其中包括一個標題頭(header),以描述屬性的類型,還包含一個用逗號分隔的列表所表示的數據(data)部分。
例子:
%This is a toy example,the UCI weather dataset.
%Any relation to real weather is purely coincidental.
@relation weather
@attribute outlook {sunny, overcast, rainy}
@attribute temperature numeric
@attribute humidity numeric
@attribute windy {TRUE, FALSE}
@attribute play {yes, no}
@data
sunny,85,85,FALSE,no
sunny,80,90,TRUE,no
overcast,83,86,FALSE,yes
rainy,70,96,FALSE,yes
rainy,68,80,FALSE,yes
rainy,65,70,TRUE,no
overcast,64,65,TRUE,yes
sunny,72,95,FALSE,no
sunny,69,70,FALSE,yes
rainy,75,80,FALSE,yes
sunny,75,70,TRUE,yes
overcast,72,90,TRUE,yes
overcast,81,75,FALSE,yes
rainy,71,91,TRUE,no
上述代碼為weka中一個ARFF文件的實例。
以百分號%開始的行為注釋行。
@relation行定義內部數據集的名稱weather。
@attribute outlook {sunny, overcast, rainy}行定義名稱為outlook的標稱型屬性,有三個取值,sunny、overcast、rainy。同理,@attribute windy {TRUE, FALSE}行和@attribute play {yes, no}行定義了windy和play兩個標稱型屬性。
注意:最后一個屬性默認為用于預測的類別變量,或稱為目標屬性。例如本例中的目標屬性或類別變量為play,他只能去yes和no兩個值,使得天氣問題成為一個二分類問題。
@attribute temperature numeric行定義了名稱為temperature的數值型屬性,@attribute humidity numeric行定義了名為humidity的數值型屬性。
@data標行后的各行構成數據集。每行為一個實例樣本,由采用逗號分隔的值組成,順序與@attribute所定義屬性的順序一致。
2.3預處理
數據預處理:在數據挖掘之前,檢測和糾正一些質量問題。
數據預處理的方法主要有:
(1)聚集
將兩個或多個對象合并為單個對象。定量數據集一般通過求和或求平均值的方法進行聚集,定性數據通常通過匯總進行聚集。聚集通過數據歸約來減少數據量。使較大的數據集可以使用開銷更大的算法。
(2)抽樣
處理全部數據集開銷太大時可以使用。最簡單的方法是簡單隨即抽樣,他又包括有放回抽樣和無放回抽樣。但是當整個數據集由差異較大的數據構成時,簡單隨即抽樣無法抽取到不太頻繁出現的數據,需要用到分層抽樣。
(3)維度歸約
維度:數據集中屬性的數目。
維度歸約:創建新屬性,通過數據編碼或數據變換,將一些舊屬性合并在一起以降低數據集的維度。
維度歸約可以刪除不相關的屬性并降低噪聲,維度降低會使許多數據挖掘的算法變得更好,還能消除由維度災難帶來的負面影響,
維度災難:隨著維度的增加,數據在他所占的空間越來越稀疏,對于分類問題,這意味著可能沒有足夠的數據對象來創建模型;對于聚類問題,點之間的密度和距離的定義失去意義。因此,對于高維數據,許多分類和聚類等學習算法的效果都不太理想。維度歸約使模型的屬性更少。因而可以產生更容易理解的模型。
(4)屬性選擇
除維度歸約外,降低維度的另一種方法。因為很多情況下,數據集中存在冗余或不相關的屬性。
冗余屬性:某個屬性包含了其他屬性中的部分或者全部信息。
不相關屬性:對于手頭的數據挖掘任務幾乎完全沒有用處的信息。
屬性選擇:從數據集中選擇最具代表性的屬性子集,刪除冗余或不相關屬性。
最簡單的屬性選擇方法是使用常識或者領域知識消除冗余或不相關屬性。
三種標準的屬性選擇方法:
嵌入方法:(決策樹算法經常使用)將屬性選擇作為數據挖掘算法的一部分,在挖掘算法運行期間,算法本身決定使用哪些屬性以及忽略哪些。
過濾方法:運行數據挖掘算法之前,使用獨立于數據挖掘任務的方法進行屬性選擇。
包裝方法:將學習算法的結果作為評價準則的一部分,使用類似于理想算法的算法,但通常無法枚舉出全部可能的子集以找出最佳屬性子集。
屬性選擇分為有監督屬性選擇和無監督屬性選擇。
有監督屬性選擇:通過度量類別信息與屬性之間的相互關系來確定屬性子集;
無監督屬性選擇:不使用類別信息,使用聚類方法評估屬性的貢獻度,根據貢獻度來確定屬性子集。
(5)屬性創建
通過對數據集中舊的屬性進行處理,創建新的數據集。屬性創建有三種方法:
屬性提取:由原始數據創建新的屬性集。
映射數據到新的空間,例如傅里葉變換。
屬性構造:通過一個或多個原來的屬性構造出新的屬性。(原始數據集的屬性含有必要信息,但其形式不適合數據挖掘算法的時候)
(6)離散化和二元化
某些分類算法要求數據是分類屬性的形式,發現關聯模型的算法要求數據是二元屬性的形式。
將連續屬性轉換為分類屬性稱為離散化,將連續和離散屬性轉換為一個或多個二元屬性稱為二元化。
離散化:決定選擇多少個分割點以及分割點的位置。離散化技術包括有監督的離散化(使用類別信息)和無監督的離散化。
無監督離散化方法:
等寬離散化,將屬性值域劃分為相同寬度的區間,區間的數目由用戶指定。
等頻離散化(等深離散化),試圖將相同數量的對象放進每個區間,區間數目由用戶指定。
(7)變量變換
也稱屬性變換,是指用于變量的所有值得變換。
簡單函數變換:使用一個簡單數學函數分別作用于每一個值。
變量標準化:使整個值得集合具有特定的性質。
2.4分類和回歸
分類和回歸是預測的兩種形式,分類預測輸出目標是離散值,回歸預測的輸出目標是連續值。
分類的步驟:第一步,分析訓練集的特點并構建分類模型;第二步,使用構建好的分類模型對預測集進行分類,評估分類模型的分類準確度等指標。
(1)決策樹分類
(2)貝葉斯分類
(3)k-最近鄰分類
(4)神經網絡分類
2.5聚類分析
聚類為無監督學習方法。主要方法有:
(1)k均值算法
(2)EM(期望最大化)算法
(3)DBSCAN算法
2.6 關聯分析
用于發現隱藏在大型數據集中有意義的聯系,這種聯系可以用關聯規則進行表示。
主要方法有:
(1)Apriori算法
(2)FP-Growth(頻繁模式增長)算法
總結
以上是生活随笔為你收集整理的weka机器学习-01-weka简介及基本概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 经典逻辑题笔试题和答案(不断更新)
- 下一篇: 持续交付