今天,我非常高興地宣布推出Amazon SageMaker Data Wrangler,一項Amazon SageMaker的新功能,它使數(shù)據(jù)科學(xué)家和工程師能夠使用可視化界面更快地為機器學(xué)習(xí)(ML)應(yīng)用程序準(zhǔn)備數(shù)據(jù)。
每當(dāng)我問一群數(shù)據(jù)科學(xué)家和機器學(xué)習(xí)工程師,他們實際花了多少時間來研究機器學(xué)習(xí)問題時,我經(jīng)常會聽到集體嘆息,然后是“如果我們幸運的話,20%”。當(dāng)我問他們?yōu)槭裁磿r,答案總是一樣的,“數(shù)據(jù)準(zhǔn)備一直占用我們80%的時間!”
事實上,為培訓(xùn)準(zhǔn)備數(shù)據(jù)是機器學(xué)習(xí)過程的關(guān)鍵步驟,沒有人會想著把它搞砸。典型任務(wù)包括:
·定位數(shù)據(jù):查找原始數(shù)據(jù)的存儲位置并獲取對它的訪問權(quán)限
·數(shù)據(jù)可視化:檢查數(shù)據(jù)集中每列的統(tǒng)計屬性、構(gòu)建直方圖、研究異常值
·數(shù)據(jù)清理:刪除重復(fù)項、刪除或填充缺少值的條目、刪除異常值
·數(shù)據(jù)豐富和特征工程:處理列以構(gòu)建更具表現(xiàn)力的功能,選擇功能子集進(jìn)行培訓(xùn)
在新機器學(xué)習(xí)項目的早期階段,這是一個高度手動的過程,直覺和經(jīng)驗在其中發(fā)揮著很大作用。數(shù)據(jù)科學(xué)家通?;旌鲜褂枚ㄖ乒ぞ吆烷_源工具(如pandas或PySpark),對不同的數(shù)據(jù)轉(zhuǎn)換組合進(jìn)行試驗,并在培訓(xùn)模型之前使用它們來處理數(shù)據(jù)集。然后,他們分析預(yù)測結(jié)果并進(jìn)行迭代。盡管這一點很重要,但一次又一次地循環(huán)這個過程可能非常耗時、繁瑣且容易出錯。
在某些時候,您將達(dá)到適當(dāng)?shù)臏?zhǔn)確度級別(或您選擇的任何其他指標(biāo)),然后您會希望在生產(chǎn)環(huán)境中的完整數(shù)據(jù)集上進(jìn)行培訓(xùn)。但是,您首先必須重現(xiàn)并自動執(zhí)行在沙箱中嘗試的準(zhǔn)確數(shù)據(jù)準(zhǔn)備步驟。遺憾的是,鑒于這項工作的交互性質(zhì),即使您仔細(xì)記錄它,總是難免會出錯。
最后,在進(jìn)入終點線之前,您必須管理和擴(kuò)展數(shù)據(jù)處理基礎(chǔ)設(shè)施?,F(xiàn)在我想起來了,您用80%的時間可能不足以完成所有這些!
推出Amazon SageMaker Data Wrangler
Amazon SageMaker Data Wrangler集成在Amazon SageMaker Studio中,這是我們面向機器學(xué)習(xí)的完全托管的集成開發(fā)環(huán)境(IDE)。只需單擊幾下,您就可以連接到數(shù)據(jù)源、探索和可視化數(shù)據(jù)、應(yīng)用內(nèi)置轉(zhuǎn)換以及自己的轉(zhuǎn)換、將生成的代碼導(dǎo)出到自動生成的腳本中,然后在托管基礎(chǔ)設(shè)施上運行。讓我們更詳細(xì)地了解每一步。
顯然,數(shù)據(jù)準(zhǔn)備始于查找和訪問數(shù)據(jù)。SageMaker Data Wrangler開箱即用,讓您可以輕松快速地連接到Amazon Simple Storage Service(S3)、Amazon Athena、Amazon Redshift和AWS Lake Formation。您還可以從Amazon SageMaker功能庫導(dǎo)入數(shù)據(jù)。與所有AWS一樣,訪問管理受AWS Identity and Access Management(IAM)的限制,該管理基于附加到您的SageMaker Studio實例的權(quán)限。
連接到數(shù)據(jù)源后,您可能希望將數(shù)據(jù)可視化。使用SageMaker Data Wrangler用戶界面,您可以在幾秒鐘內(nèi)查看表摘要、直方圖和散點圖。您還可以通過簡單地復(fù)制和運行使用流行的Altair開源庫編寫的代碼來構(gòu)建自己的自定義圖表。
一旦您很好地掌握了數(shù)據(jù)的外觀,就是時候開始準(zhǔn)備它了。SageMaker Data Wrangler包含300多種內(nèi)置轉(zhuǎn)換,例如查找和替換數(shù)據(jù)、拆分/重命名/刪除列、縮放數(shù)值、編碼類別值等。您所要做的就是在下拉列表中選擇轉(zhuǎn)換,然后填寫它可能需要的參數(shù)。然后,您可以預(yù)覽更改,并決定是否要將其添加到此數(shù)據(jù)集的準(zhǔn)備步驟列表中。如果您愿意,還可以使用pandas、PySpark或PySpark SQL添加自己的代碼來實現(xiàn)自定義轉(zhuǎn)換。
向處理管道添加轉(zhuǎn)換步驟時,您可以在SageMaker Studio中查看其圖形摘要。您還可以向管道添加新階段,例如新的數(shù)據(jù)源或另一組轉(zhuǎn)換步驟(例如,數(shù)據(jù)清理組,然后是特征工程組)。得益于直觀的用戶界面,您的數(shù)據(jù)準(zhǔn)備管道將在眼前形成,您將能夠立即檢查處理過的數(shù)據(jù)的外觀。
早期,您肯定很樂意檢查自己的數(shù)據(jù)準(zhǔn)備步驟,并了解它們的預(yù)測能力,不是嗎?那么,有好消息!對于回歸和分類問題類型,“快速模型”功能允許您選擇數(shù)據(jù)的子集、培訓(xùn)模型以及確定哪些功能對預(yù)測結(jié)果的貢獻(xiàn)最大。查看模型,您可以盡早輕松診斷和修復(fù)數(shù)據(jù)準(zhǔn)備問題,并確定是否需要額外的特征工程來提高模型性能。
一旦您對自己的管道感到滿意,就可以一鍵將其導(dǎo)出到Python腳本中,以忠實地重現(xiàn)您的手動步驟。您不會浪費任何時間追逐差異,并可以直接將此代碼添加到機器學(xué)習(xí)項目中。
此外,您還可以將處理代碼導(dǎo)出到:
·作為Amazon SageMaker處理作業(yè)運行它的筆記本電腦。
·作為Amazon SageMaker管道工作流運行它的筆記本電腦。
·將處理過的功能推送到Amazon SageMaker功能庫的筆記本電腦。
現(xiàn)在,讓我們做一個快速演示,向您展示使用SageMaker Data Wrangler是多么容易。
使用Amazon SageMaker Data Wrangler
在打開SageMaker Studio時,我創(chuàng)建了一個新的數(shù)據(jù)流來處理Titanic數(shù)據(jù)集,其中包含乘客的信息,以及顯示他們是否在災(zāi)難中幸存下來的標(biāo)簽。
我的數(shù)據(jù)集作為CSV文件存儲在Amazon Simple Storage Service(S3)中,然后我選擇適當(dāng)?shù)臄?shù)據(jù)源。
使用內(nèi)置工具,我可以快速瀏覽S3存儲桶,并找到包含我的數(shù)據(jù)的CSV文件。對于較大的數(shù)據(jù)集,SageMaker Data Wrangler還支持Parquet格式。
當(dāng)我選擇文件時,SageMaker Data Wrangler向我展示前幾行。
我導(dǎo)入了數(shù)據(jù)集,然后看到數(shù)據(jù)流的初始視圖。右鍵單擊數(shù)據(jù)集,我選擇“Edit data types”(編輯數(shù)據(jù)類型),以確保SageMaker Data Wrangler已正確檢測到數(shù)據(jù)集中每列的類型。
檢查每一列,看起來所有類型都是正確的。
回到數(shù)據(jù)流視圖,這次我選擇“Add analysis”(添加分析)。這將打開一個新視圖,我可以在其中使用直方圖、散點圖等可視化數(shù)據(jù)。例如,我創(chuàng)建一個直方圖,根據(jù)乘客的生存狀態(tài)顯示乘客的年齡分布,并使用他們的性別為統(tǒng)計堆著色。當(dāng)然,我可以保存它以備將來使用。
再次移回到數(shù)據(jù)流視圖,我選擇“Add transform”(添加轉(zhuǎn)換)以開始處理數(shù)據(jù)集。這將打開一個新視圖,向我顯示數(shù)據(jù)集的第一行以及300多個內(nèi)置轉(zhuǎn)換的列表。
Pclass乘客等級是一個類別變量,我決定用一熱編碼對其進(jìn)行編碼。這將創(chuàng)建3個代表不同維度的新列,我可以預(yù)覽它們。由于這正是我想要的,所以我應(yīng)用了這種轉(zhuǎn)換。同樣,我將同樣的轉(zhuǎn)換應(yīng)用于性別列。
然后,我刪除原來的Pclass列。使用相同的轉(zhuǎn)換,我還可以刪除名稱列。
為了快速了解這些變換是增加還是降低模型的準(zhǔn)確性,我可以創(chuàng)建一個分析來現(xiàn)場培訓(xùn)模型。由于我的問題是二進(jìn)制分類問題,SageMaker Data Wrangler使用稱為F1分?jǐn)?shù)的指標(biāo)。0.749是一個很好的開始,額外的處理肯定會改善它。我還可以看到哪些功能對預(yù)測結(jié)果的貢獻(xiàn)最大:性別、年齡和三等艙乘客。
然后,轉(zhuǎn)到“Export”(導(dǎo)出)視圖,我選擇迄今為止創(chuàng)建的所有轉(zhuǎn)換,以便將它們添加到我的機器學(xué)習(xí)項目中。
在這里,我選擇“Python代碼”來生成Python腳本。其他選項可用于Amazon SageMaker處理、Amazon SageMaker管道和Amazon SageMaker功能庫.。
幾秒鐘后,該腳本可用。我可以按原樣將其添加到我的機器學(xué)習(xí)項目中,請放心,我的數(shù)據(jù)準(zhǔn)備步驟將與上面創(chuàng)建的交互式轉(zhuǎn)換保持一致。
開始使用
正如您所看到的,Amazon SageMaker Data Wrangler讓您在將數(shù)據(jù)準(zhǔn)備步驟轉(zhuǎn)換為可立即用于實驗和生產(chǎn)的代碼之前,以交互方式輕松處理數(shù)據(jù)準(zhǔn)備步驟。
您現(xiàn)在就可以在提供SageMaker Studio的所有可用區(qū)域開始使用此功能。
立即試用,并向我們提供反饋。我們始終期待您的反饋,您可通過一貫的AWS Support聯(lián)系人向我們提供反饋,也可在針對SageMaker在AWS論壇上提出反饋。
–Julien
特別感謝我的同事Peter Liu在早期測試期間的寶貴幫助。