透過 HTTP 從 Web URL 匯入
重要
Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning。
自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。
ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。
本文說明如何使用機器學習 Studio (傳統) 中的 [匯入資料] 模組,從公用網頁讀取資料,以在機器學習實驗中使用。
下列限制適用于網頁上發行的資料:
- 資料必須是其中一種支援的格式: CSV、TSV、ARFF 或 SvmLight。 其他資料會導致錯誤。
- 不需要或不支援任何驗證。 資料必須可公開使用。
如何透過 HTTP 匯入資料
有兩種方式可以取得資料:使用 wizard 設定資料來源,或手動設定資料來源。
使用資料匯入嚮導
將 [匯 入資料 ] 模組新增至您的實驗。 您可以在 [ 資料輸入] 和 [輸出 ] 分類中,找到 Studio (傳統) 中的模組。
按一下 [ 啟動匯入資料嚮導] ,然後選取 [透過 HTTP 的 Web URL]。
貼上 URL,然後選取資料格式。
設定完成時,以滑鼠右鍵按一下模組,然後選取 [ 執行選取的]。
若要編輯現有的資料連線,請重新啟動精靈。 嚮導會載入所有先前的設定詳細資料,讓您不必從頭開始
在 [匯入資料] 模組中手動設定屬性
下列步驟描述如何手動設定匯入來源。
將 [匯 入資料 ] 模組新增至您的實驗。 您可以在 [ 資料輸入] 和 [輸出 ] 分類中,找到 Studio (傳統) 中的模組。
針對 [ 資料來源],選取 [透過 HTTP 的 Web URL]。
在 [ URL] 中,輸入或貼上包含您要載入之資料的頁面完整 URL。
URL 應該包含網站 URL,以及包含檔案名和副檔名的完整路徑,指向包含要載入之資料的頁面。
例如,下列頁面包含來自加州大學之 machine learning 存放庫的鳶尾花資料集,Irvine:
https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data
針對 [ 資料格式],請從清單中選取其中一個支援的資料格式。
建議您一律事先檢查資料,以判斷格式。 UC Irvine 頁面使用 CSV 格式。 其他支援的資料格式為 TSV、ARFF 和 SvmLight。
如果資料是 CSV 或 TSV 格式,請使用 File 具有 header row 選項來指出來源資料是否包含標頭資料列。 標頭資料列用來指派資料行名稱。
如果您不希望資料有太多變更,或者您想要避免在每次執行實驗時重載資料,請選取 [使用快取的 結果 ] 選項。
選取此選項時,實驗會在第一次執行模組時載入資料,之後會使用資料集的快取版本。
如果您想要在實驗資料集的每個反復專案上重新載入資料集,請取消選取 [使用快取的 結果 ] 選項。 如果匯 入資料的參數有任何變更,也會重新載入結果。
執行實驗。
結果
完成時,按一下輸出資料集,然後選取 [ 視覺化 ] 以查看資料是否已成功匯入。
範例
請參閱從公用網站取得資料的機器學習實驗 Azure AI 資源庫 中的下列範例:
字母辨識範例:從 UC Irvine 所主控的公用機器學習儲存機制取得訓練資料集。
下載 UCI 資料集:讀取 CSV 格式的資料集。
技術說明
本節包含實作詳細資料、提示和常見問題集的解答。
常見問題
我可以篩選從來源讀取的資料嗎
不會。 這個資料來源不支援該選項。
將資料讀入機器學習 Studio (傳統) 之後,您就可以分割資料集、使用取樣等來取得您想要的資料列:
在 Execute r 腳本 中撰寫一些簡單的 r 程式碼,以依資料列或資料行取得部分資料。
使用「 分割資料 」模組搭配相對運算式或正則運算式,以隔離您要的資料。
如果您載入的資料超過您需要的資料,請讀取新的資料集,並使用相同的名稱加以儲存,以覆寫快取的資料集。
如何避免不必要地重新載入相同資料
如果您的來源資料有所變更,您可以重新整理資料集,並藉由重新執行匯 入資料來加入新的資料。
如果您不想要在每次執行實驗時從來源重新讀取,請選取 [使用快取的 結果 ] 選項為 [TRUE]。 當此選項設定為 TRUE 時,模組會檢查實驗是否先前使用相同的來源和相同的輸入選項來執行。 如果找到先前的執行,則會使用快取中的資料,而不是從來源重新載入資料。
為什麼在資料集的結尾加入額外的資料列
如果 [匯 入資料 ] 模組遇到的資料列後面是空白行或尾端換行字元,則會在資料表結尾加入額外的資料列。 這個新的資料列包含遺漏值。
將尾端新行解釋為新資料列的原因是匯 入資料 無法判斷實際空白行與使用者在檔案結尾處按 enter 鍵時所建立的空白行之間有何差異。
由於某些機器學習演算法支援遺漏資料,因此會將這一行視為案例 (而這可能會影響) 的結果,因此您應該使用「 清除遺漏的資料 」來檢查遺漏值 (特別是完全空白) 的資料列,然後視需要加以移除。
檢查空白資料列之前,您可能也會想要使用 分割資料來分割資料集。 這會將含有部分遺漏值的資料列分隔,而顯示來源資料中的實際遺漏值。 請使用 [選取前 N 個資料列] 選項,將資料集的第一個部分讀取到最後一行以外的個別容器中。
為什麼我的原始檔中的某些字元未正確顯示
機器學習支援 utf-8 編碼。 如果您的原始檔案使用其他類型的編碼,則可能無法正確匯入字元。
模組參數
名稱 | 範圍 | 類型 | 預設 | 描述 |
---|---|---|---|---|
資料來源 | List | 資料來源或接收 | Azure Blob 儲存體 | 資料來源可以是 HTTP、FTP、匿名 HTTPS 或 FTPS、azure BLOB 儲存體中的檔案、azure 資料表、Azure SQL Database、內部部署的 SQL Server 資料庫、Hive 資料表或 OData 端點。 |
URL | 任意 | String | 無 | HTTP 的 URL |
資料格式 | CSV TSV ARFF SvmLight |
資料格式 | CSV | HTTP 來源的檔案類型 |
CSV 或 TSV 具有標頭資料列 | TRUE/FALSE | Boolean | false | 指出 CSV 或 TSV 檔案是否有標頭資料列 |
使用快取的結果 | TRUE/FALSE | Boolean | FALSE | 只有當有效的快取不存在時,才會執行模組。 否則,就會使用先前執行的快取資料。 |
輸出
名稱 | 類型 | 說明 |
---|---|---|
結果資料集 | 資料表 | 含下載資料的資料集 |
例外狀況
例外狀況 | 描述 |
---|---|
錯誤 0027 | 當兩個物件的大小必須相同但卻不同時,就會發生例外狀況。 |
錯誤 0003 | 如果一或多個輸入是 Null 或空白,就會發生例外狀況。 |
錯誤 0029 | 傳遞無效的 URI 時,就會發生例外狀況。 |
錯誤 0030 | 無法下載檔案時,就會發生例外狀況。 |
錯誤 0002 | 如果有一或多個參數無法剖析或從指定的類型轉換成目標方法所需的類型,就會發生例外狀況。 |
錯誤 0048 | 無法開啟檔案時,就會發生例外狀況。 |
錯誤 0046 | 無法在指定的路徑上建立目錄時,就會發生例外狀況。 |
錯誤 0049 | 無法剖析檔案時,就會發生例外狀況。 |
如需 Studio (傳統) 模組特定的錯誤清單,請參閱機器學習錯誤碼。
如需 API 例外狀況的清單,請參閱機器學習 REST API 錯誤碼。
另請參閱
匯入資料
匯出資料
從 Hive 查詢匯入
從 Azure SQL Database 匯入
從 Azure 資料表匯入
從 Azure Blob 儲存體匯入
從資料摘要提供者匯入
從內部部署 SQL Server 資料庫匯入