How To Load CSV Machine Learning Data in Weka (如何在Weka中載入CSV機器學習資料)
How To Load CSV Machine Learning Data in Weka
原文作者:Jason Brownlee
原文地址:https://machinelearningmastery.com/load-csv-machine-learning-data-weka/
譯者微博:@從流域到海域
譯者部落格:blog.csdn.net/solo95
本文同樣刊載於騰訊雲+:https://cloud.tencent.com/developer/article/1040260
如何在Weka中載入CSV機器學習資料
Weka的全名是懷卡託智慧分析環境(Waikato Environment for Knowledge Analysis),是一款免費的,非商業化(與之對應的是SPSS公司商業資料探勘產品–Clementine )的,基於JAVA環境下開源的機器學習(machine learning)以及資料探勘(data mining)軟體。它和它的原始碼可在其官方網站下載。有趣的是,該軟體的縮寫WEKA也是紐西蘭獨有的一種鳥名,而Weka的主要開發者同時恰好來自紐西蘭的the University of Waikato(來自百度百科,譯者注)。
如何在Weka中載入CSV機器學習資料
在開始建模之前,您必須能夠載入(您的)資料。
在這篇文章中,您將瞭解如何在Weka中載入您的CSV資料集。閱讀這篇文章後,你會知道:
關於ARFF檔案格式以及它在Weka中表示資料的預設方式。
- 如何在Weka Explorer中載入CSV檔案並將其儲存為ARFF格式。
- 如何在ArffViewer工具中載入CSV檔案並將其儲存為ARFF格式。
- 本教程假定您已經安裝了Weka。
讓我們開始吧。
How To Load CSV Machine Learning Data in Weka
照片由Thales提供,保留某些權利。
如何在Weka中描述資料
機器學習演算法主要被設計為與陣列陣列一起工作。
這被稱為表格化或結構化資料,因為資料在由行和列組成的電子表格中看起來就是這樣。
Weka在描述資料時擁有特定的以電腦科學為中心的詞彙表:
- 例項(Instance):一行資料被稱為一個例項,就像在一個例項中或來自問題域中的觀察(observation)一樣。
屬性(Attribute):一列資料被稱為一個特徵或屬性,就像在觀察的特徵中那樣。
每個屬性可以有不同的型別,例如:實數(Real)表示數值,如1.2。
- 整數(Integer)表示沒有小數部分數的數值,如5。
- 標稱(Nominal)表示分類資料,如“狗”和“貓”。
- 字串(String)表示單片語成的列表,如同這個句子本身。
在分類問題上,輸出變數必須是標稱的。對於迴歸問題,輸出變數必須是實數。
Weka中的資料
Weka傾向於以ARFF格式載入資料。
(WEKA儲存資料的格式是ARFF(Attribute-Relation File Format)檔案,這是一種ASCII文字檔案。二維表格儲存ARFF檔案中。譯者注)
ARFF是表示屬性關係檔案格式的首字母縮略詞。它是使用標題的CSV檔案格式的擴充套件,提供有關列中資料型別的元資料。
例如,CSV格式經典的鳶尾花資料集的前幾行如下所示:
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa
5.0,3.6,1.4,0.2,Iris-setosa
ARFF格式的檔案如下所示:
@RELATION iris
@ATTRIBUTE sepallength REAL
@ATTRIBUTE sepalwidth REAL
@ATTRIBUTE petallength REAL
@ATTRIBUTE petalwidth REAL
@ATTRIBUTE class {Iris-setosa,Iris-versicolor,Iris-virginica}
@DATA
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa
5.0,3.6,1.4,0.2,Iris-setosa
你可以看到指令以符號(@)開始,其中有一個表示資料集的名稱(例如@RELATION iris),有一個指令來定義每個屬性的名稱和資料型別(例如@ATTRIBUTE sepallength REAL),並有一個指令指示原始資料的開始(例如@DATA)。
ARFF檔案中以百分比符號(%)開頭的行表示註釋。
原始資料部分中具有問號(?)的值表示未知或缺失的值。格式支援數字和分類值(categorical values),如上面的鳶尾示例,但也支援日期和字串值。
根據您的Weka安裝(方式),您的Weka安裝目錄data /子目錄下可能有或者沒有一些預設的資料集。與Weka一起分發的這些預設資料集都是ARFF格式,並且具有.arff副檔名。
在ARFF-Viewer中載入CSV檔案
您的資料可能不是ARFF格式的。
事實上,它更可能是逗號分隔值(Comma Separated Value,CSV)格式。這是一種簡單的格式,其中資料在行和列的表格中進行佈局,而逗號用於分隔行中的值。引號也可以用來包圍值,特別是如果資料包含帶空格的文字字串。
CSV格式很容易從Microsoft Excel匯出,所以一旦您可以將資料匯入到Excel中,您可以輕鬆地將其轉換為CSV格式。
Weka提供了一個方便的工具來載入CSV檔案,並儲存成ARFF。你只需要用你的資料集做一次(這樣的操作)。
使用以下步驟,您可以將資料集從CSV格式轉換為ARFF格式,並將其與Weka workbench結合使用。如果您沒有方便的CSV檔案,可以使用鳶尾花資料集。從UCI Machine Learning儲存庫(傳送門)中下載檔案並將其儲存到iris.csv的當前工作目錄中。
1.啟動Weka Chooser(選擇器)。
Weka GUI選擇器的螢幕截圖
2.通過點選選單中的“Tools”,選擇“ArffViewer,來開啟ARFF-Viewer”。
3.您將看到一個空的ARFF-Viewer視窗。
Weka ARFF Viewer
4.點選“File”選單,在ARFF-Viewer中開啟您的CSV檔案,然後選擇“Open”。導航到您當前的工作目錄。將“Files of Type”過濾器更改為“CSV data files (*.csv)”。選擇你的檔案,然後點選“Open”按鈕。
在ARFF Viewer中載入CSV
5.你現在應該可以看到你的CSV檔案載入到ARFF-Viewer的一個示例樣本。
6.通過點選“File”選單並選擇“Save as…”,以ARFF格式儲存您的資料集。你需要輸入帶有.arff副檔名的檔名並單擊“Save”按鈕。
您現在可以將儲存的.arff檔案直接載入到Weka中。
請注意,ARFF-Viewer提供了在儲存之前修改資料集的選項。例如,您可以更改值,更改屬性的名稱和更改其資料型別。
強烈建議您指定每個屬性的名稱,因為這將有助於稍後對資料進行分析。另外,確保每個屬性的資料型別都是正確的。
在Weka Explorer中載入CSV檔案
您也可以直接在Weka Explorer介面中載入您的CSV檔案。
如果您急著想快速測試一個想法,這很方便。
本節介紹如何在Weka Explorer介面中載入CSV檔案。您可以再次使用虹膜資料集,如果您沒有載入CSV資料集,則練習。
1.啟動Weka GUI Chooser(選擇器)。
2.通過單擊“資源管理器”按鈕啟動Weka資源管理器。
Weka資源管理器的螢幕截圖
3.點選“Open file…”按鈕。
4.導航到您當前的工作目錄。將“Files of Type”更改為“CSV data files (*.csv)”。選擇你的檔案,然後點選“開啟”按鈕。
您可以直接用資料開始工作。您也可以通過點選“Save”按鈕並輸入檔名,以ARFF格式儲存資料集。
使用Excel中的其他檔案格式
如果您有其他格式的資料,請先將其載入到Microsoft Excel中。
以另一種格式(如CSV)這樣使用不同的分隔符或固定寬度欄位來獲取資料是很常見的。Excel有強大的工具來載入各種格式的表格資料。使用這些工具,並首先將您的資料載入到Excel中。
將資料載入到Excel後,可以將其匯出為CSV格式。然後,您可以直接或通過首先將其轉換為ARFF格式在Weka中使用它。
資源
下面是一些額外的資源,你會發現這些資源對在Weka中使用CSV data進行工作非常有幫助。
概要
在這篇文章中,您發現瞭如何將您的CSV資料載入到Weka中進行機器學習。
具體來說,你瞭解到:
- 關於ARFF檔案格式以及Weka如何使用它來表示機器學習的資料集。
- 如何使用ARFF-Viewer載入您的CSV資料並將其儲存為ARFF格式。
- 如何直接在Weka Explorer中載入CSV資料並將其用於建模。
如果你有關於本文中的Weka載入資料的任何問題?可以在評論中提出您的問題,我會盡我所能來回答。