本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
執行探索性資料分析 (EDA)
Data Wrangler 包含內建分析,可協助您只需按幾下滑鼠,即可產生視覺化和資料分析。您還可以使用自己的程式碼建立自訂分析。
在資料流程中選取一個步驟,然後選擇新增分析,藉此將一項分析新增至資料框。若要存取您已建立的分析,請選取包含分析的步驟,然後選取分析。
分析會使用最多 200,000 列資料集的範例產生,而且您可以設定樣本數。如需變更資料流程樣本數的詳細資訊,請參閱 編輯資料流程取樣組態。
注意
分析針對 1000 個或更少資料欄的資料進行最佳化。使用其他資料欄產生資料分析時,您可能會遇到一些延遲。
您可以將下列分析新增至資料框:
-
資料視覺化,包括長條圖和散佈圖。
-
資料集的快速摘要,包括項目數量、最小值和最大值 (針對數值資料),以及最常用和最不常用的類別 (針對分類資料)。
-
資料集的快速模型,可用來產生每個功能的重要性分數。
-
目標洩漏報告,可用於確定一個或多個功能是否與目標功能有密切關聯。
-
使用您自己的程式碼自訂視覺化。
使用以下各章節以進一步了解這些選項。
取得資料和資料品質的洞見
使用資料品質和洞察報告,對已匯入至 Data Wrangler 的資料執行分析。建議您在匯入資料集之後建立報告。您可以使用該報告來幫助您清理和處理資料。它為您提供相關資訊,像是缺少值的數量和極端值數量等。如果您的資料有問題,例如目標洩漏或不平衡,洞察報告可以提醒您注意這些問題。
使用下列程序建立資料品質與洞察報告。它假設您已將資料集匯入 Data Wrangler 流程。
若要建立資料品質與洞察報告
-
選擇 Data Wrangler 流程中節點旁的省略號圖示。
-
選取取得資料洞見。
-
對於分析類型 ,選取資料品質和洞見報告 。
-
分析名稱的部分,指定洞察報告的名稱。
-
為問題類型指定迴歸或分類。
-
對於目標欄 ,指定目標欄。
-
針對資料大小,請指定下列其中一項:
-
範例資料集 – 使用資料流程中的互動式範例,最多可包含 200,000 列的資料集。如需有關如何編輯範例大小的資訊,請參閱 編輯資料流程取樣組態。
-
完整資料集 – 使用來自資料來源的完整資料集來建立報告。
注意
在完整資料集上建立資料品質和洞見報告會使用 Amazon SageMaker 處理任務。 SageMaker 處理任務會佈建取得所有資料洞察所需的其他運算資源。如需 SageMaker 處理任務的詳細資訊,請參閱 使用 SageMaker 處理的資料轉換工作負載。
-
-
選擇 Create (建立)。
下列主題顯示報告的各區段:
您可以下載報告或線上查看報告。若要下載報告,請選取畫面右上角的下載按鈕。
Summary
洞察報告提供資料的簡短摘要,其中包含一般資訊,例如缺少值、無效值、功能類型、極端值計數等。它還可以包含高嚴重性警告,指出資料可能出現的問題。出現警告時,建議您進行調查。
目標欄
當您建立 Data Quality and Insights 報告時,Data Wrangler 會提供選擇目標欄的選項。目標欄是您試圖預測的資料欄。當您選擇目標欄時,Data Wrangler 會自動建立目標欄分析。它還按照其預測能力的順序,對功能進行排名。當您選取目標欄時,您必須指定要試圖解決迴歸還是分類問題。
分類問題的話,Data Wrangler 顯示一個資料表和直方圖,其中包含最常見的分類。一個類別就是一個分類。它還會呈現觀測值或資料行,顯示缺少或無效的目標值。
迴歸問題的話,Data Wrangler 會顯示目標欄中所有值的長條圖。它還會呈現觀測值或資料行,顯示缺少、無效或極端的目標值。
快速模型
快速模型提供以您的資料訓練的模型,其預期的預測品質估計。
Data Wrangler 會將您的資料分割成訓練和驗證折疊。它使用 80% 的樣本進行訓練,20% 的值進行驗證。分類的話,取樣是採分層分割。分層分割情況下,每個資料分割區具有相同的標籤比例。分類問題的話,重要的是要在訓練和分類折疊之間保持相同的標籤比例。Data Wrangler 使用預設超參數訓練XGBoost模型。它適用於驗證資料提前停止的情形,並執行最小的功能預先處理。
分類模型的話,Data Wrangler 會傳回模型摘要和混淆矩陣。
若要進一步了解分類模型摘要傳回的資訊,請參閱 定義。
混淆矩陣為您提供以下資訊:
-
預測標籤與實際標籤相符的次數。
-
預測標籤與實際標籤不相符的次數。
實際標籤代表在資料中實際觀察到的情形。例如,如果您使用模型來偵測詐騙交易,則實際標籤代表該交易實際上是否為詐騙。預測標籤表示模型指派給資料的標籤。
您可以透過混淆矩陣,查看模型預測條件存在或不存在的情況。如果您要預測詐騙交易,則可以使用混淆矩陣來了解模型的敏感度和明確性。敏感度是指模型偵測詐騙交易的能力。明確性是指模型避免將非詐騙交易檢測為詐騙交易的能力。
功能摘要
當您指定目標欄時,Data Wrangler 會依其預測力對功能排序。預測能力會在資料分割為 80% 訓練和 20% 驗證倍數後測量。針對訓練折疊上的每項個別特徵,Data Wrangler 都會對應一個模型。它會套用最少的特徵預處理,並測量驗證資料的預測效能。
它將分數標準化為 [0,1] 範圍。較高的預測分數,表示這些資料欄單獨使用時,對於預測目標更為有用。得分較低,表示這些欄對於預測目標欄來說不具預測能力。
當一欄單獨來看不具預測性時,它與其他欄搭配使用時通常也不會變得有預測性。您可以放心地使用預測分數,來判斷資料集內的特徵是否可預測。
分數較低通常表示該特徵是多餘的。分數為 1 意味著完美的預測能力,這通常表示目標洩漏。目標洩漏通常發生在資料集包含一個欄,其在預測時間內為不可用。例如,它可能是目標欄的副本。
範例
Data Wrangler 會提供有關您的樣本是否異常,或資料集內是否有所重複的資訊。
Data Wrangler 使用隔離樹演算法偵測異常樣本。隔離樹會將異常狀況分數與資料集的每個樣本 (列) 產生關聯。低異常狀況分數表示出現異常樣本。高分與非異常樣本有關。具有負異常狀況分數的樣本通常被視為異常,具有正異常狀況分數的樣本被視為非異常。
當您查看可能異常的樣本時,我們建議您注意不尋常的值。例如,您的極端值可能是由於收集和處理資料時發生錯誤而產生的。以下是根據 Data Wrangler 對隔離樹演算法實作的最異常樣本範例。我們建議您在檢查異常樣本時,運用領域知識和商業邏輯。
Data Wrangler 會偵測重複的資料列,並計算資料中重複資料列的比例。某些資料來源可能包含有效的重複項。其他資料來源可能具有指向資料收集問題的重複項目。由於錯誤的資料收集而產生的重複範例,可能會干擾將資料分割為獨立訓練和驗證折疊的機器學習程序。
以下是可能受到重複樣本影響的洞察報告元素:
-
快速模型
-
預測力估算
-
自動超參數調校
您可以使用管理列底下的捨棄重複轉換工具,從資料集中移除重複樣本。Data Wrangler 會顯示最常重複的資料列。
定義
下列是資料洞見報告中使用的技術詞彙定義。
偏差報告
SageMaker Canvas 在 Data Wrangler 中提供偏差報告,以協助發現資料中的潛在偏差。偏差報告會分析目標資料欄 (標籤) 與您認為可能包含偏差 (構面變數) 的資料欄之間的關係。例如,如果您嘗試預測客戶轉換,則構面變數可能是客戶的年齡。偏差報告可協助您判斷資料是否偏向特定年齡群組。
若要在 Canvas 中產生偏差報告,請執行下列動作:
在 Data Wrangler 中的資料流程中,選擇流程中節點旁的更多選項圖示 ( )。
從內容功能表中,選擇取得資料洞察。
建立分析側板隨即開啟。針對分析類型下拉式選單,選取偏差報告 。
在分析名稱欄位中,輸入偏差報告的名稱。
針對選取模型預測的欄 (目標) 下拉式選單,選取目標欄。
對於預測資料欄是否為值或閾值?,如果您的目標資料欄具有類別值,請選擇值,如果具有數值,則選取閾值。
對於預測值 (或預測閾值 ,取決於您在上一個步驟中的選擇),輸入目標欄值或對應至正面結果的值。例如,如果預測客戶轉換,您的值可能
yes
表示客戶已轉換。針對選取要分析偏差的欄下拉式功能表,選取您認為可能包含偏差的欄,也稱為構面變數。
對於 資料欄是否為值或閾值?,如果構面變數具有類別值,則選取值;如果具有數值,則選取閾值。
對於要分析偏差 (或要分析偏差 的欄閾值),根據您在上一個步驟中的選擇,輸入您要分析潛在偏差的值。例如,如果您要檢查特定年齡的客戶是否有偏差,請使用該年齡範圍的開頭作為閾值。
對於選擇偏差指標 ,選取您要包含在偏差報告中的偏差指標。將滑鼠暫留在資訊圖示上,以取得每個指標的詳細資訊。
(選用) 使用 選項提示時,是否要分析其他指標?,請選取是以檢視並包含更多偏差指標。
當您準備好建立偏差報告時,請選擇新增 。
產生後,報告會為您提供所選偏差指標的概觀。您可以隨時從資料流程的分析索引標籤檢視偏差報告。
直方圖
使用長條圖來查看特定功能的功能值計數。您可以使用顏色顯示依據選項,檢查功能之間的關係。
您可以使用構面顯示依據功能,為另一欄中的每個值,建立一欄的長條圖。
散佈圖
使用散佈圖功能檢查功能之間的關係。若要建立散佈圖,請選取要在 X 軸和 Y 軸上繪製的功能。這兩個資料欄都必須是數字類型的資料欄。
您可以按附加資料欄為散佈圖著色。
此外,您可以按功能構面劃分散佈圖。
資料表摘要
使用資料表摘要分析來快速總結資料。
對於包含數值資料的資料欄,包括對數和浮點資料,表格摘要裡會告訴您每欄的條目數 (count)、最小值 (min)、最大值 (max)、平均值 (mean)和標準差 (stddev)。
對於包含非數值資料的資料欄,像是字串、布林值或日期/時間資料的,表格摘要會告訴您每欄的項目數 (計數)、最少出現的值 (最小值) 和最常出現的值 (最大值)。
快速模型
使用快速模型視覺化可快速評估您的資料,並為每項功能產生重要性分數。功能重要性評分
建立快速模型圖表時,您可以選取要評估的資料集,以及要比較功能重要性的目標標籤。Data Wrangler 會進行以下項目:
-
推論所選資料集中,目標標籤和每項功能的資料類型。
-
決定問題類型。基於標籤欄中的數字相異值,Data Wrangler 判斷這是迴歸還是分類問題類型。Data Wrangler 設置一個分類閾值為 100。如果標籤欄中有超過 100 個相異值,則 Data Wrangler 會將其歸類為迴歸問題;沒有的話,會歸類為分類問題。
-
預先處理功能和訓練用標籤資料。使用的演算法需要將功能編碼成向量類型,並將標籤編碼成雙精度浮點數類型。
-
使用 70% 資料訓練一組隨機森林演算法。Spark RandomForestRegressor
用於訓練模型的迴歸問題。RandomForestClassifier 用於訓練模型的分類問題。 -
使用剩餘 30% 的資料評估隨機森林模型。Data Wrangler 使用 F1 分數評估分類模型,並使用MSE分數評估迴歸模型。
-
使用 Gini 重要性方法計算每個功能的功能重要性。
目標洩漏
當機器學習訓練資料集中存在與目標標籤密切關聯的資料,但在實際資料中無法使用時,就會發生目標洩漏。例如,您的資料集中可能有一個資料欄,作為您要使用模型預測資料欄的代理。
使用目標洩漏分析時,請指定下列項目:
-
目標:這是您希望機器學習 (ML) 模型能夠進行預測的功能。
-
問題類型:這是您正在使用的機器學習 (ML) 問題類型。問題類型可以是分類或迴歸。
-
(選用) 最大功能數:這是視覺化中顯示的功能數量上限,顯示依據其目標洩漏風險進行排序。
對於分類,目標洩漏分析會使用接收器操作特性下的區域,或每欄的 AUC - ROC曲線,最多 項功能 。迴歸問題中,它使用判定係數或 R2 指標。
AUC - ROC曲線提供預測指標,在最多約 1000 個資料列的樣本上,使用交叉驗證為每個資料欄個別計算。分數為 1 代表完美的預測能力,這通常表示目標洩漏。分數為 0.5 或更低,表示資料欄上的資訊本身無法提供任何有用的預測目標資訊。雖然資料欄本身可能不具有效資訊,但在與其他功能串聯使用來預測目標很有用,但分數較低可能表示該功能是多餘的。
多共線性
多共線性是兩個或多個預測器變數彼此相關的情況。預測器變數是資料集內,用來預測目標變數的功能。當您具有多重共線性時,預測器變數不僅可以預測目標變數,還可以預測彼此。
您可以使用差異膨脹係數 (VIF)、主體元件分析 (PCA) 或 Lasso 特徵選擇,作為資料中多共存度的指標。如需更多資訊,請參閱下列內容。
偵測時間序列資料中的異常
您可以使用異常偵測視覺化來查看時間序列資料中的極端值。要了解決異常狀況的原因,您需要了解我們將時間序列分解為預測項和錯誤項。我們將時間序列的季節性和趨勢視為預測項。我們將殘差視為錯誤項。
錯誤項的話,您可以指定閾值,作為殘差可偏離平均值的標準差數,以便將其視為異常狀況。例如,您可以將閾值指定為 3 個標準差。任何超過 3 個偏離平均值標準差的殘差都是異常狀況。
您可以使用下列程序來執行異常偵測分析。
-
開啟 Data Wrangler 資料流程。
-
在資料流程中的資料類型下,選擇 +,然後選取新增分析。
-
在分析類型部分,選擇時間序列。
-
在視覺化部分,選擇異常偵測。
-
在異常狀況閾值部分,選擇閾值以判定異常的值。
-
選擇預覽以產生分析的預覽。
-
選擇新增,將轉換作業新增至 Data Wrangler 資料流程。
時間序列資料中的季節性趨勢分解
您可以使用季節性趨勢分解視覺化,來判斷時間序列資料中是否有季節性。我們使用 STL(使用 的季節性趨勢分解LOESS) 方法來執行分解。我們將時間序列分解為季節性、趨勢和殘差部分。該趨勢反映了該系列的長期進展。季節性部分是在一段時間內反覆出現的訊號。從時間序列中移除趨勢和季節性部分後,就是殘差部分。
您可以使用下列程序來執行季節性-趨勢分解分析。
-
開啟 Data Wrangler 資料流程。
-
在資料流程中的資料類型下,選擇 +,然後選取新增分析。
-
在分析類型部分,選擇時間序列。
-
在視覺化中,選擇季節性-趨勢分解。
-
在異常狀況閾值部分,選擇閾值以判定異常的值。
-
選擇預覽以產生分析的預覽。
-
選擇新增,將轉換作業新增至 Data Wrangler 資料流程。
建立自訂視覺化
您可以將分析新增至 Data Wrangler 流程,以建立自訂視覺化。您的資料集,以及您套用的所有轉換,可作為 Pandas DataFramedf
變數來儲存資料框。您可以透過呼叫變數來存取資料框。
您必須提供輸出變數chart
,才能儲存 Altair
import altair as alt df = df.iloc[:30] df = df.rename(columns={"Age": "value"}) df = df.assign(count=df.groupby('value').value.transform('count')) df = df[["value", "count"]] base = alt.Chart(df) bar = base.mark_bar().encode(x=alt.X('value', bin=True, axis=None), y=alt.Y('count')) rule = base.mark_rule(color='red').encode( x='mean(value):Q', size=alt.value(5)) chart = bar + rule
若要建立自訂視覺化:
-
在包含您想要視覺化之轉換的節點旁邊,選擇 +。
-
選擇 新增分析。
-
分析類型部分,請選擇自訂視覺化。
-
分析名稱部分,指定一個名稱。
-
在程式碼方框中輸入您的代碼。
-
選擇預覽以預覽視覺化。
-
選擇儲存以新增視覺化。
如果您不知道如何在 Python 使用 Altair 視覺化套裝元件,可以使用自訂程式碼片段來協助您入門。
Data Wrangler 有一個可搜尋的視覺化程式碼片段集合。若要使用視覺化程式碼片段,請選擇搜尋範例程式碼片段,然後在搜尋列中指定查詢。
下面的範例使用量化散點圖程式碼片段。它繪製出一份二維的長條圖。
這些程式碼片段有註解,可協助您了解您需要對程式碼進行的變更。您通常需要在程式碼中指定資料集的資料欄名稱。
import altair as alt # Specify the number of top rows for plotting rows_number = 1000 df = df.head(rows_number) # You can also choose bottom rows or randomly sampled rows # df = df.tail(rows_number) # df = df.sample(rows_number) chart = ( alt.Chart(df) .mark_circle() .encode( # Specify the column names for binning and number of bins for X and Y axis x=alt.X("col1:Q", bin=alt.Bin(maxbins=20)), y=alt.Y("col2:Q", bin=alt.Bin(maxbins=20)), size="count()", ) ) # :Q specifies that label column has quantitative type. # For more details on Altair typing refer to # https://altair-viz.github.io/user_guide/encoding.html#encoding-data-types