

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 執行探索性資料分析 (EDA)
<a name="canvas-analyses"></a>

Data Wrangler 包含內建分析，只要按幾下滑鼠，即可協助您產生視覺化和資料分析。您還可以使用自己的程式碼建立自訂分析。

在資料流程中選取一個步驟，然後選擇**新增分析**，藉此將一項分析新增至資料框。若要存取您已建立的分析，請選取包含分析的步驟，然後選取分析。

分析會使用最多 200,000 個資料列的範例來產生，而且您可以設定範例大小。如需變更資料流程範例大小的詳細資訊，請參閱[編輯資料流程取樣組態](canvas-data-flow-edit-sampling.md)。

**注意**  
分析針對 1000 個或更少資料欄的資料進行最佳化。使用其他資料欄產生資料分析時，您可能會遇到一些延遲。

您可以將下列分析新增至資料框：
+ 資料視覺化，包括長條圖和散佈圖。
+ 資料集的快速摘要，包括項目數量、最小值和最大值 (針對數值資料)，以及最常用和最不常用的類別 (針對分類資料)。
+ 資料集的快速模型，可用來產生每個功能的重要性分數。
+ 目標洩漏報告，可用於確定一個或多個功能是否與目標功能有密切關聯。
+ 使用您自己的程式碼自訂視覺化。

使用以下各章節以進一步了解這些選項。

## 取得有關資料和資料品質的洞見
<a name="canvas-data-insights"></a>

使用**資料品質與洞察報告**，對已匯入至 Data Wrangler 的資料執行分析。建議您在匯入資料集之後建立報告。您可以使用該報告來幫助您清理和處理資料。它為您提供相關資訊，像是缺少值的數量和極端值數量等。如果您的資料有問題，例如目標洩漏或不平衡，洞察報告可以提醒您注意這些問題。

使用下列程序建立資料品質與洞察報告。它假設您已將資料集匯入 Data Wrangler 流程。

**若要建立資料品質與洞察報告**

1. 選擇 Data Wrangler 流程中節點旁邊的省略符號。

1. 選取**取得資料洞見**。

1. 針對**分析類型**，選取**資料品質和洞見報告**。

1. **分析名稱**的部分，指定洞察報告的名稱。

1. 為**問題類型**指定**迴歸**或**分類**。

1. 針對**目標欄**，指定目標欄。

1. 針對**資料大小**，請指定下列其中一項：
   + **取樣資料集** - 使用來自資料流程的互動式範例，最多可包含 200,000 個資料列的資料集。如需如何編輯範例大小的相關資訊，請參閱[編輯資料流程取樣組態](canvas-data-flow-edit-sampling.md)。
   + **完整資料集** - 使用來自資料來源的完整資料集來建立報告。
**注意**  
對整個資料集建立資料品質與洞察報告，將使用 Amazon SageMaker Processing 任務。SageMaker 處理任務會佈建所需的其他運算資源，以取得所有資料的洞見。如需 SageMaker 處理任務的詳細資訊，請參閱 [使用 SageMaker Processing 的資料轉換工作負載](processing-job.md)。

1. 選擇**建立**。

下列主題顯示報告的各區段：

**Topics**
+ [摘要](#canvas-data-insights-summary)
+ [目標欄](#canvas-data-insights-target-column)
+ [快速模型](#canvas-data-insights-quick-model)
+ [功能摘要](#canvas-data-insights-feature-summary)
+ [範例](#canvas-data-insights-samples)
+ [定義](#canvas-data-insights-definitions)

您可以下載報告或線上查看報告。若要下載報告，請選取畫面右上角的下載按鈕。

### 摘要
<a name="canvas-data-insights-summary"></a>

洞察報告提供資料的簡短摘要，其中包含一般資訊，例如缺少值、無效值、功能類型、極端值計數等。它還可以包含高嚴重性警告，指出資料可能出現的問題。出現警告時，建議您進行調查。

### 目標欄
<a name="canvas-data-insights-target-column"></a>

當您建立資料品質與洞察報告時，Data Wrangler 會提供選取目標欄的選項。目標欄是您試圖預測的資料欄。當您選擇目標欄時，Data Wrangler 會自動建立目標欄分析。它還按照其預測能力的順序，對功能進行排名。當您選取目標欄時，您必須指定要試圖解決迴歸還是分類問題。

分類問題的話，Data Wrangler 顯示一個資料表和直方圖，其中包含最常見的分類。一個類別就是一個分類。它還會呈現觀測值或資料行，顯示缺少或無效的目標值。

迴歸問題的話，Data Wrangler 會顯示目標欄中所有值的長條圖。它還會呈現觀測值或資料行，顯示缺少、無效或極端的目標值。

### 快速模型
<a name="canvas-data-insights-quick-model"></a>

**快速模型**提供以您的資料訓練的模型，其預期的預測品質估計。

Data Wrangler 會將您的資料分割成訓練和驗證折疊。它使用 80％ 的樣本進行訓練，20％ 的值進行驗證。分類的話，取樣是採分層分割。分層分割情況下，每個資料分割區具有相同的標籤比例。分類問題的話，重要的是要在訓練和分類折疊之間保持相同的標籤比例。Data Wrangler 使用預設的超參數來訓練 XGBoost 模型。它適用於驗證資料提前停止的情形，並執行最小的功能預先處理。

分類模型的話，Data Wrangler 會傳回模型摘要和混淆矩陣。

 若要進一步了解分類模型摘要傳回的資訊，請參閱[定義](#canvas-data-insights-definitions)。

混淆矩陣為您提供以下資訊：
+ 預測標籤與實際標籤相符的次數。
+ 預測標籤與實際標籤不相符的次數。

實際標籤代表在資料中實際觀察到的情形。例如，如果您使用模型來偵測詐騙交易，則實際標籤代表該交易實際上是否為詐騙。預測標籤表示模型指派給資料的標籤。

您可以透過混淆矩陣，查看模型預測條件存在或不存在的情況。如果您要預測詐騙交易，則可以使用混淆矩陣來了解模型的敏感度和明確性。敏感度是指模型偵測詐騙交易的能力。明確性是指模型避免將非詐騙交易檢測為詐騙交易的能力。

### 功能摘要
<a name="canvas-data-insights-feature-summary"></a>

當您指定目標欄時，Data Wrangler 會依其預測力對功能排序。預測力是在資料分成 80% 訓練和 20% 驗證折疊之後測量的。針對訓練折疊上的每項個別特徵，Data Wrangler 都會對應一個模型。它會套用最少的特徵預處理，並測量驗證資料的預測效能。

它將分數標準化為 [0,1] 範圍。較高的預測分數，表示這些資料欄單獨使用時，對於預測目標更為有用。得分較低，表示這些欄對於預測目標欄來說不具預測能力。

當一欄單獨來看不具預測性時，它與其他欄搭配使用時通常也不會變得有預測性。您可以放心地使用預測分數，來判斷資料集內的特徵是否可預測。

分數較低通常表示該特徵是多餘的。分數為 1 意味著完美的預測能力，這通常表示目標洩漏。目標洩漏通常發生在資料集包含一個欄，其在預測時間內為不可用。例如，它可能是目標欄的副本。

### 範例
<a name="canvas-data-insights-samples"></a>

Data Wrangler 會提供有關您的樣本是否異常，或資料集內是否有所重複的資訊。

Data Wrangler 使用*隔離樹演算法*偵測異常樣本。隔離樹會將異常狀況分數與資料集的每個樣本 (列) 產生關聯。低異常狀況分數表示出現異常樣本。高分與非異常樣本有關。具有負異常狀況分數的樣本通常被視為異常，具有正異常狀況分數的樣本被視為非異常。

當您查看可能異常的樣本時，我們建議您注意不尋常的值。例如，您的極端值可能是由於收集和處理資料時發生錯誤而產生的。以下是根據 Data Wrangler 對隔離樹演算法實作的最異常樣本範例。我們建議您在檢查異常樣本時，運用領域知識和商業邏輯。

Data Wrangler 會偵測重複的資料列，並計算資料中重複資料列的比例。某些資料來源可能包含有效的重複項。其他資料來源可能具有指向資料收集問題的重複項目。由於錯誤的資料收集而產生的重複範例，可能會干擾將資料分割為獨立訓練和驗證折疊的機器學習程序。

以下是可能受到重複樣本影響的洞察報告元素：
+ 快速模型
+ 預測力估算
+ 自動超參數調校

您可以使用**管理列**底下的**捨棄重複**轉換工具，從資料集中移除重複樣本。Data Wrangler 會顯示最常重複的資料列。

### 定義
<a name="canvas-data-insights-definitions"></a>

下列是資料洞見報告中使用的技術詞彙定義。

------
#### [ Feature types ]

以下是每個特徵類型的定義：
+ **數值** — 數值可以是浮點數或整數，例如年齡或收入。機器學習模型假設數值已排序，並定義相關距離。例如，3 比 10 更接近 4，而 3 < 4 < 10。
+ **分類** - 資料欄項目屬於一組唯一值，通常比資料欄中的項目數小得多。例如，長度為 100 的欄可以包含唯一值`Dog`、`Cat`和`Mouse`。這些值可以是數值、文字或兩者的組合。 `Horse`、`House`、`8`、`Love`和`3.1`是有效值，並且可以在相同的分類欄中找到。有別於數字特徵，機器學習模型不會假設分類特徵值的順序或距離，即使所有值都是數字。
+ **二進位** — 二進位功能是一種特殊的分類功能類型，其中一組唯一值的基數為 2。
+ **文字** — 文字欄包含許多非數字的唯一值。在極端情況下，資訊欄的所有元素都是唯一的。在極端情況下，沒有任何項目是相同的。
+ **日期時間** — 日期時間欄包含日期或時間的相關資訊。它可以同時具有日期和時間的資訊。

------
#### [ Feature statistics ]

以下是每個特徵統計資料的定義：
+ **預測力**-預測力是衡量資訊欄在預測目標方面的有用程度。
+ **極端值** (在數值欄中) — Data Wrangler 使用兩種對極端值的統計資料來偵測極端值：中間值和強大的標準偏差 (RSTD)。RSTD 是透過將特徵值裁剪為 [5 百分位數, 95 百分位數] 範圍，並計算裁剪向量的標準偏差而得出。所有大於中間值 \$1 5 \$1 RSTD 或小於 中間值 - 5 \$1 RSTD 的值都被視為極端值。
+ **偏態** (在數值欄中) — 偏態用來衡量分佈的對稱性，並定義為分佈的三階矩除以標準偏差的三次方。常態分佈或任何其他對稱分佈的偏態為零。正值表示分佈的右尾長於左尾。負值表示分佈的左尾長於右尾。根據經驗法則，當偏態的絕對值大於 3 時，分佈會被視為偏斜。
+ **峰態** (以數值欄表示) — 皮爾森峰度測量分佈尾端的厚度。它被定義成第四矩除以第二矩的平方。常態分佈的峰態為 3。峰態值小於 3，代表分佈集中在平均值周圍，尾部比常態分佈的尾部輕。峰態值大於 3 代表尾部較重或極端值。
+ **缺少值**-類似空值的物件，空字串和僅由空格組成的字串，其被視為缺少值。
+ **數值功能或迴歸目標的有效值** — 可投射為有限浮點數的所有值都有效。缺少值無效。
+ **分類、二進位或文字功能或分類目標的有效值** — 所有未缺少的值都有效。
+ **日期時間功能** — 可轉換為日期時間物件的所有值都有效。缺少值無效。
+ **無效值** — 缺少或無法正確轉換的值。例如，在數值欄中，您無法轉換字串`"six"`或 Null 值。

------
#### [ Quick model metrics for regression ]

以下是快速模型指標的定義：
+ R2 或決定係數) — R2 是模型預測的目標中變化的比例。R2 在 [負無限，1] 的範圍內。1 是完美預測目標的模型的分數，0 表示簡單模型總是預測目標的平均值。
+ MSE 或均方誤差 — MSE 在 [0，無限] 範圍內。0 是完美預測目標的模型的分數。
+ MAE 或平均絕對誤差 — MAE 在 [0，無限] 範圍內，0 是完美預測目標模型的分數。
+ MSE 或均方根誤差 — RMSE 在 [0，無限] 範圍內。0 是完美預測目標的模型的分數。
+ 最大誤差 — 錯誤在資料集上的最大絕對值。最大誤差在 [0，無限] 範圍內。0 是完美預測目標的模型的分數。
+ 中間值絕對誤差 — 中間值絕對誤差在 [0，無限] 範圍內，0 是完美預測目標模型的分數。

------
#### [ Quick model metrics for classification ]

以下是快速模型指標的定義：
+ **準確度** — 準確度是準確預測樣本的比率。準確度在 [0, 1] 範圍內。0 是所有樣本預測失敗的模型分數，1 是完美模型的分數。
+ **平衡準確度** — 平衡準確度是在調整類別權重以平衡資料時，預測正確的樣本比例。不論分類出現的頻率如何，所有類別都被視為同等重要。平衡準確度在 [0, 1] 範圍內。0 是所有樣本預測錯誤的模型分數，1 是完美模型的分數。
+ **AUC (二進制分類)** — 這是接收者操作特性曲線下的面積。AUC 在 [0, 1] 範圍內，其中隨機模型傳回 0.5 的分數，完美模型會傳回 1 的分數。
+ **AUC (OVR)** — 對於多類別分類，這是使用一對多方法分別計算每個標籤的接收者操作特性曲線下的面積。Data Wrangler 報告面積的平均值。AUC 在 [0, 1] 範圍內，其中隨機模型傳回 0.5 的分數，完美模型會傳回 1 的分數。
+ **精確度**-精確度是針對特定類別定義的。精確度是是模型將一個類別正確分類的執行個體數，除以所有被模型分類為該類別的執行個體數之所得。精確度在 [0, 1] 範圍內，1 是沒有類別誤報的模型分數。如為二進制分類，Data Wrangler 報告正類別的精確度。
+ **召回率** － 召回率是針對特定類別定義的。召回率表示成功檢索到的相關類別執行個體數，占所有相關類別執行個體數的比例。召回率範圍在 [0, 1] 之間，1 是該類別所有執行個體經正確分類模型的分數。如為二進制分類，Data Wrangler 報告正類別的召回率。
+ **F1** — F1 是針對特定類別定義的。這是精確度和召回率之間的調和平均數。F1 在 [0, 1] 範圍內，1 是完美模型的分數。如為二進制分類，Data Wrangler 會針對具有正值的類別報告 F1。

------
#### [ Textual patterns ]

**模式**使用易於閱讀的格式來描述字串的文字格式。下列是文字模式的範例：
+ “\$1digits:4-7\$1” 描述長度介於 4 和 7 之間的數字序列。
+ “\$1alnum:5\$1” 描述長度恰好為 5 的英數混合字串。

Data Wrangler 會從資料中查看非空字串的樣本來推斷模式。它可以描述許多常用的模式。以百分比表示的**信賴度**，表示估計值與模式相符的資料量。使用文字模式，您可以查看資料中需要更正或捨棄的行。

以下說明 Data Wrangler 可以辨識的模式：


| 模式 | 文字格式 | 
| --- | --- | 
|  \$1alnum\$1  |  英數字串  | 
|  \$1any\$1  |  任何字詞字元字串  | 
|  \$1digits\$1  |  數字序列  | 
|  \$1lower\$1  |  一個小寫單字  | 
|  \$1mixed\$1  |  一個混合大小寫的單字  | 
|  \$1name\$1  |  開頭為大寫字母的單字  | 
|  \$1upper\$1  |  一個大寫單字  | 
|  \$1空格\$1  |  空格字元  | 

單字字元可以是底線，或可能出現在任何語言單字中的字元。例如，字串 `'Hello_word'` 和 `'écoute'` 都由單字字元組成。'H' 和 'é' 都是單字字元的範例。

------

## 偏差報告
<a name="canvas-bias-report"></a>

SageMaker Canvas 會在 Data Wrangler 中提供偏差報告，協助發現資料中的潛在偏差。偏差報告會分析目標欄 (標籤) 與您認為可能包含偏差的資料欄 (面向變數) 之間的關係。例如，如果您試圖預測客戶轉換率，則面向變數可能是客戶的年齡。偏差報告可協助您判斷您的資料是否偏向特定年齡群組。

若要在 Canvas 中產生偏差報告，請執行下列動作：

1. 在 Data Wrangler 的資料流程中，選擇流程中節點旁邊的**更多選項**圖示 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))。

1. 從內容功能表中，選擇**取得資料洞見**。

1. **建立分析**側邊面板隨即開啟。針對**分析類型**下拉式功能表，選取**偏差報告**。

1.  在**分析名稱**欄位中，輸入偏差報告的名稱。

1. 針對**選取模型預測的資料欄 (目標)** 下拉式功能表，選取您的目標資料欄。

1. 對於**預測資料欄是否為值或閾值？**，如果您的目標資料欄具有分類值，則選取**值**，或如果具有數值，則選取**閾值**。

1. 針對**預測值** (或**預測閾值**，視您在上一個步驟中的選擇而定)，輸入目標資料欄值或對應至正面結果的值。例如，如果預測客戶轉換，您的值可能是 `yes`，表示客戶已轉換。

1. 針對**選取要分析偏差的資料欄**下拉式功能表，選取您認為可能包含偏差的資料欄，也稱為面向變數。

1. 針對**資料欄是否為值或閾值？**，如果面向變數具有分類值，則選取**值**，或如果具有數值，則選取**閾值**。

1. 針對**要分析偏差的資料欄值** (或**要分析偏差的資料欄閾值**，視您在上一個步驟的選擇而定)，輸入一個或多個您要分析潛在偏差的值。例如，如果您要檢查是否對特定年齡的客戶有偏差，請使用該年齡範圍的開頭做為閾值。

1. 針對**選擇偏差指標**，選取您要包含在偏差報告中的偏差指標。將滑鼠懸停在資訊圖示上方，以取得每個指標的詳細資訊。

1. (選用) 當使用選項**您想要分析其他指標嗎？**提示您，請選取**是**以檢視並包含更多偏差指標。

1. 當您準備好建立偏差報告時，請選擇**新增**。

一旦產生，報告就會為您提供所選偏差指標的概觀。您可以隨時從資料流程的**分析**索引標籤檢視偏差報告。

## 直方圖
<a name="canvas-visualize-histogram"></a>

使用長條圖來查看特定功能的功能值計數。您可以使用**顏色顯示依據**選項，檢查功能之間的關係。

您可以使用**構面顯示依據**功能，為另一欄中的每個值，建立一欄的長條圖。

## 散佈圖
<a name="canvas-visualize-scatter-plot"></a>

使用**散佈圖**功能檢查功能之間的關係。若要建立散佈圖，請選取要在 **X 軸**和 **Y 軸**上繪製的功能。這兩個資料欄都必須是數字類型的資料欄。

您可以按附加資料欄為散佈圖著色。

此外，您可以按功能構面劃分散佈圖。

## 資料表摘要
<a name="canvas-table-summary"></a>

使用**資料表摘要**分析來快速總結資料。

對於包含數值資料的資料欄，包括對數和浮點資料，表格摘要裡會告訴您每欄的條目數 (count)、最小值 (min)、最大值 (max)、平均值 (mean)和標準差 (stddev)。

對於包含非數值資料的資料欄，像是字串、布林值或日期/時間資料的，表格摘要會告訴您每欄的項目數 (計數)、最少出現的值 (最小值) 和最常出現的值 (最大值)。

## 快速模型
<a name="canvas-quick-model"></a>

使用**快速模型**視覺化可快速評估您的資料，並為每項功能產生重要性分數。[功能重要性評分](http://spark.apache.org/docs/2.1.0/api/python/pyspark.ml.html#pyspark.ml.classification.DecisionTreeClassificationModel.featureImportances)評分代表該功能在預測目標標籤方面的有用程度。功能重要性評分介於 [0, 1] 之間，較高的數字表示該功能對整個資料集更為重要。在快速模型圖表的頂部，有一個模型分數。分類問題顯示 F1 評分。迴歸問題具有均方錯誤 (MSE) 評分。

建立快速模型圖表時，您可以選取要評估的資料集，以及要比較功能重要性的目標標籤。Data Wrangler 會進行以下項目：
+ 推論所選資料集中，目標標籤和每項功能的資料類型。
+ 決定問題類型。基於標籤欄中的數字相異值，Data Wrangler 判斷這是迴歸還是分類問題類型。Data Wrangler 設置一個分類閾值為 100。如果標籤欄中有超過 100 個相異值，則 Data Wrangler 會將其歸類為迴歸問題；沒有的話，會歸類為分類問題。
+ 預先處理功能和訓練用標籤資料。使用的演算法需要將功能編碼成向量類型，並將標籤編碼成雙精度浮點數類型。
+ 使用 70％ 資料訓練一組隨機森林演算法。Spark 的[RandomForestRegressor](https://spark.apache.org/docs/latest/ml-classification-regression.html#random-forest-regression)用於訓練迴歸問題的模型。[RandomForestClassifier](https://spark.apache.org/docs/latest/ml-classification-regression.html#random-forest-classifier)用於訓練分類問題的模型。
+ 使用剩餘 30% 的資料評估隨機森林模型。Data Wrangler 使用 F1 分數評估分類模型，並使用 MSE 分數評估迴歸模型。
+ 使用 Gini 重要性方法計算每個功能的功能重要性。

## 目標洩漏
<a name="canvas-analysis-target-leakage"></a>

當機器學習訓練資料集中存在與目標標籤密切關聯的資料，但在實際資料中無法使用時，就會發生目標洩漏。例如，您的資料集中可能有一個資料欄，作為您要使用模型預測資料欄的代理。

使用**目標洩漏**分析時，請指定下列項目：
+ **目標**：這是您希望機器學習 (ML) 模型能夠進行預測的功能。
+ **問題類型**：這是您正在使用的機器學習 (ML) 問題類型。問題類型可以是**分類**或**迴歸**。
+  (選用) **最大功能數**：這是視覺化中顯示的功能數量上限，顯示依據其目標洩漏風險進行排序。

在分類問題中，目標洩漏分析使用接收者操作特性下的區域，或每欄使用 AUC-ROC 曲線，最多到**功能最大值**。迴歸問題中，它使用判定係數或 R2 指標。

AUC-ROC 曲線提供了一個預測指標，在最多約 1000 個資料列的樣本中，針對每個資料欄使用交叉驗證個別運算。分數為 1 代表完美的預測能力，這通常表示目標洩漏。分數為 0.5 或更低，表示資料欄上的資訊本身無法提供任何有用的預測目標資訊。雖然資料欄本身可能不具有效資訊，但在與其他功能串聯使用來預測目標很有用，但分數較低可能表示該功能是多餘的。

## 多共線性
<a name="canvas-multicollinearity"></a>

多共線性是兩個或多個預測器變數彼此相關的情況。預測器變數是資料集內，用來預測目標變數的功能。當您具有多重共線性時，預測器變數不僅可以預測目標變數，還可以預測彼此。

您可以使用**變異數膨脹因子 (VIF)**、**主成份分析 (PCA)**或**套索功能選擇**，以測量資料中多重共線性。如需更多資訊，請參閱下列內容。

------
#### [ Variance Inflation Factor (VIF) ]

變異數膨脹因子 (VIF) 是對變數對之間共線性的測量方法。Data Wrangler 會傳回 VIF 評分，以衡量變數彼此相關的程度。VIF 分數是大於或等於 1 的正數。

分數為 1 表示變數與其他變數不相關。分數大於 1 表示相關性較高。

理論上，您可以獲得值為無限大的 VIF 分數。Data Wrangler 的評分上限為 50。如果您的 VIF 分數大於 50，Data Wrangler會將分數設定為 50。

您可以使用下列指南來解讀 VIF 評分：
+ VIF 分數小於或等於 5，表示變數與其他變數適度相關。
+ VIF 分數大於或等於 5，表示變數與其他變數高度相關。

------
#### [ Principle Component Analysis (PCA) ]

主成份分析 (PCA) 測量功能空間中沿不同方向的資料變異。功能空間包含了您用來預測資料集中，目標變數的所有預測器變數。

例如，如果您試圖預測在 *RMS 鐵達尼號*撞上冰山後仍存活下來的人，您的功能空間可以包括乘客的年齡、性別以及他們支付的票價。

從功能空間中，PCA 會產生變異數的排序清單。這些變異數也稱為奇異值。變異數清單中的值大於或等於 0。我們可以使用它們來確定資料中有多少的多重共線性。

當數字大致一致時，資料具有極少數多重共線性的執行個體。當值之間存在很多變異性時，就有許多的多重共線性的執行個體。在執行 PCA 之前，Data Wrangler 將每個功能標準化，使其平均值為 0，標準偏差為 1。

**注意**  
在這種情況下，PCA 也可以稱為奇異值分解 (SVD)。

------
#### [ Lasso feature selection ]

套索功能選擇使用 L1 正則化技術，只在資料集中包含最多的預測功能。

不論是分類或迴歸，正則化技術都會為每個功能產生一個係數。係數的絕對值為功能提供重要性分數。較高的重要性分數表示它對目標變數的預測性較高。一種常見的功能選擇方法，是使用所有非零套索係數的功能。

------

## 偵測時間序列資料中的異常狀況
<a name="canvas-time-series-anomaly-detection"></a>

您可以使用異常偵測視覺化來查看時間序列資料中的極端值。要了解決異常狀況的原因，您需要了解我們將時間序列分解為預測項和錯誤項。我們將時間序列的季節性和趨勢視為預測項。我們將殘差視為錯誤項。

錯誤項的話，您可以指定閾值，作為殘差可偏離平均值的標準差數，以便將其視為異常狀況。例如，您可以將閾值指定為 3 個標準差。任何超過 3 個偏離平均值標準差的殘差都是異常狀況。

您可以使用下列程序來執行**異常偵測**分析。

1. 開啟 Data Wrangler 資料流程。

1. 在資料流程中的**資料類型**下，選擇 **\$1**，然後選取**新增分析**。

1. 在**分析類型**部分，選擇**時間序列**。

1. 在**視覺化**部分，選擇**異常偵測**。

1. 在**異常狀況閾值**部分，選擇閾值以判定異常的值。

1. 選擇**預覽**以產生分析的預覽。

1. 選擇**新增**，將轉換作業新增至 Data Wrangler 資料流程。

## 時間序列資料中的季節趨勢分解
<a name="canvas-seasonal-trend-decomposition"></a>

您可以使用季節性趨勢分解視覺化，來判斷時間序列資料中是否有季節性。我們使用 STL (使用 LOESS 分解季節趨勢) 方法進行分解。我們將時間序列分解為季節性、趨勢和殘差部分。該趨勢反映了該系列的長期進展。季節性部分是在一段時間內反覆出現的訊號。從時間序列中移除趨勢和季節性部分後，就是殘差部分。

您可以使用下列程序來執行**季節性-趨勢分解**分析。

1. 開啟 Data Wrangler 資料流程。

1. 在資料流程中的**資料類型**下，選擇 **\$1**，然後選取**新增分析**。

1. 在**分析類型**部分，選擇**時間序列**。

1. 在**視覺化**中，選擇**季節性-趨勢分解**。

1. 在**異常狀況閾值**部分，選擇閾值以判定異常的值。

1. 選擇**預覽**以產生分析的預覽。

1. 選擇**新增**，將轉換作業新增至 Data Wrangler 資料流程。

## 建立自訂視覺化
<a name="canvas-visualize-custom"></a>

您可以將分析新增至 Data Wrangler 流程，以建立自訂視覺化。您的資料集和已套用的所有轉換，都可以作為[Pandas DataFrame](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html)使用。Data Wrangler 使用`df`變數來儲存資料框。您可以透過呼叫變數來存取資料框。

您必須提供輸出變數`chart`，才能儲存 [Altair](https://altair-viz.github.io/) 輸出圖表。例如，您可以透過下列程式碼區塊，使用 Titanic 資料集建立自訂長條圖。

```
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
```

**若要建立自訂視覺化：**

1. 在包含您想要視覺化之轉換的節點旁邊，選擇 **\$1**。

1. 選擇 **新增分析**。

1. **分析類型**部分，請選擇**自訂視覺化**。

1. **分析名稱**部分，指定一個名稱。

1. 在程式碼方框中輸入您的代碼。

1. 選擇**預覽**以預覽視覺化。

1. 選擇**儲存**以新增視覺化。

如果您不知道如何在 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
```