1. 程式人生 > >數據挖掘與機器學習——weka應用技術與實踐

數據挖掘與機器學習——weka應用技術與實踐

lin 網絡服務 開發 對數 結果 gre 枚舉 挖掘 int

第一章 weka介紹

1.1 weka簡介

weka是懷卡托智分析環境(Waikato Environment for Knowledge Analysis)的英文縮寫,官方網址為:<http://www.cs.waikato.ac.nz/ml/weka/>,在該網站可以免費下載可運行軟件和代碼,還可以獲得說明文檔、常見問題解答、數據集和其他文獻等資源。

1.1.1 Weka的歷史

團隊宣稱:我們的目標是要建立最先進的軟件開發機器學習技術,並將其應用於解決現實世界的數據挖掘問題。目標:是機器學習技術容易獲得,開發新的機器學習算法並推向世界。

1.1.2 Weka功能簡介

Weka系統匯集了最前沿的機器學習算法和數據預處理工具。它為數據挖掘的整個過程提供了全面的支持,包括準備輸入數據統計評估學習方案輸入數據和學習效果的可視化

Weka系統包括處理標準數據挖掘問題的所有方法:回歸分類聚類關聯規則以及屬性選擇。分析要進行處理的數據是重要的一個環節,Weka提供了很多用於數據可視化和預處理的工具。輸入數據可以由兩種形式,第一種是以ARFF格式為代表的文件;另一種是直接讀取數據庫表

使用Weka的方式主要有三種:第一種是將學習方案應用於某個數據集,然後分析其輸出從而更多地了解這些數據;第二種是使用已經學習到的模型對新實例進行預測;第三種是使用多種學習器,然後根據其性能表現來選擇其中的一種來進行預測。

Weka提供的最容易使用的圖形用戶接口稱為Explorer。通過選擇菜單和填寫表單,可以調用Weka的所有功能。但是他會將所需數據武全部一次性讀入內存,這種批量方式僅適合處理小規模問題。

Knowledge界面可以使用增量方式的算法來處理大型數據集,

1.2 基本概念

1.2.1 數據挖掘和機器學習

機器學習方法構成數據挖掘的核心,絕大多數的數據挖掘技術來自於機器學習領域。數據挖掘是在數據中尋找模式的過程。機器學習定義為能夠自動尋找數據中的模式的一套方法,使用所發現的模式進行預測或者決策。

機器學習分為兩種主要類型,第一種稱為有監督的學習,或稱為預測學習,其目標是在給定一系列輸入輸出實例所構成的數據集的條件下,學習輸入X到輸出y的映射關系。這裏的數據集稱為訓練集。第二種為無監督的學習,或稱描述學習,在給定一系列僅由輸入實例構成的數據集的條件下,其目標是發現數據中的有趣模式。無監督學習有時也稱知識發現。這類問題沒有明確的定義,也沒有明顯的誤差度量可供使用。

1.2.2 數據和數據集

數據挖掘的對象可以是各種各樣的書記處,這些書記處可以以各種形式存儲,如數據庫、數據倉庫、數據文件、流數據、多媒體、網頁,等等。即可以集中存儲在數據存儲庫中,也可以分布在世界各地的網絡服務器上。數據集就是待處理數據對象的集合。數據對象有多個別名,如記錄、點、行、向量、案例、樣本、觀測等。屬性用於刻畫數據對象的基本特征。屬性也有多個別名,如變量、特征、字段、維、列等。

屬性可以分為四種類型:標稱(nominal)、序數(ordinal)、區間(interval)和比率(ratio),其中,標稱屬性僅提供區分對象的足夠信息,如性別(男、女)等;序數屬性的值可以提供確定對象的順序的足夠信息,如成績等級(優、良、中、及格、不及格)等;區間屬性的值之間的差是有意義的,即存在測量單位,如溫度、日歷日期等;比率屬性的值之間的差和比值都是有意義的,如絕對溫度、年齡,長度等。標稱屬性和序數屬性統稱為分類的(Categorical)或定性的(Qualitative)屬性,它們的取值為集合,即使使用數值來表示,也不具備數的大部分性質,知識一個符號而已;區間屬性和比率屬性統稱為定量的(Quantitative)或數值的(Numeric)屬性,定量屬性可以使用整數值或連續值來表示,具備數的大部分性質。

1.2.3 ARFF格式

ARFF是weka專用的數據格式,代表Attribute-Relation File Format(屬性-關系文件格式)。該文件是ASCII文本文件,描述共享一組屬性結構的實力列表,由獨立且無序的實例組成。略

1.2.4 預處理

數據挖掘所使用的數據往往不是專門為挖掘準備的,人的錯誤、測量設備的限制以及數據收集過程的漏洞都可能導致一些問題。數據挖掘只能通過兩個方面設法避免數據質量問題:1.數據質量問題的檢測與糾正;2.使用能容忍低質量數據的算法。第一種方式在數據挖掘前檢測並糾正一些質量問題,這個過程稱為數據的預處理;第二種方式需要提高算法的健壯性。

數據預處理是數據挖掘的重要步驟,weka專門提供若幹過濾器進行預處理,還在Explorer界面中提供選擇屬性標簽頁專門處理屬性的自動選擇問題。數據預處理包括如下技術:

1)聚類

聚類(Aggregation)就是將兩個或多個對象合並為單個對象。一般定量數據通常通過求和或者求平均值的方式進行聚集,定性數據通常通過匯總進行聚集。聚集通過數據規約來減少數據量,所導致的較小數據集只需要較少內存和處理時間的開銷。但有可能導致有趣細節的丟失。

2)抽樣

如果處理全部數據的開銷過大,數據預處理可以使用抽樣,只選擇數據對象的子集進行分析。使用抽樣可以壓縮數據量,但是要確保樣本近似地具有原數據相同的性質。

3)維度歸約

維度是指數據集中屬性的數目。維度歸約(Dimension Reduction)是指創建新屬性,通過數據編碼或數據變換,將一些舊屬性合並在一起以降低數據集的維度。

4)屬性選擇

除維度歸約外,降低維度的另一種方法是僅只使用屬性的一個子集。表面看來似乎這種方法可能丟失信息,但很多情況下,數據集存在冗余和不相關的屬性。如果將全部可能的屬性子集作為輸入,然後選取能產生最好結果的子集(理想算法),這樣工作量巨大。這是考慮三種標準的屬性選擇方法:嵌入、過濾和包裝。

嵌入方法(Embedded Approach)將屬性選擇作為數據挖掘算法的一部分。在挖掘算法運行期間,算法本身決定使用哪些屬性以及忽略哪些屬性。決策樹算法通常使用這種方法。過濾方法(Filter Approach)在運行數據挖掘算法之間,使用獨立於數據挖掘任務的方法進行屬性選擇。包裝方法(Wrapper Approach)將學習算法的結果作為評價準則的一部分,使用類似前文介紹的理想算法,但通常無法枚舉出全部可能的子集以找出最佳屬性子集。

5)屬性創建

屬性創建就是通過對數據集中舊的屬性進行處理。創建新的數據集,這樣能更有效的獲得重要的信息。由於通常新數據集的維度比原數據集少,可以獲得維度歸約帶來的好處。屬性創建有三種方式:屬性提取、映射數據到新空間和屬性構造。略

6)離散化和二元化

將連續屬性轉化為分類屬性稱為離散化(Discretization),將連續和離散屬性轉換為一個或多個二元屬性

數據挖掘與機器學習——weka應用技術與實踐