# 準備用於訓練的資料集

您訓練資料集以回答您的機器學習問題。訓練資料集包含每個特性的欄位，以及包含目標的欄位。機器學習演算法從這些資料列中學習一般模式，以產生可以預測目標的模型。

為了讓資料集準備好進行機器學習，您需要了解您的資料並收集必要的資料點。您可能還需要轉換某些資料，並移除與您的使用案例無關的資料。

## 您應該收集哪些資料？

精確定義您的機器學習問題，並確切決定需要彙總哪些內容來處理該問題：

* 如果您想預測哪些客戶會流失，您需要彙總一個資料集，其中每一列代表一位客戶，每個特性欄位代表描述該客戶的特性，而目標欄位則是該客戶在特定時間段內是否流失。

* 如果您想預測特定月份和地區的銷售額，您需要彙總一個資料集，其中每一列代表特定地區的特定月份，每個特性欄位代表描述該地區該月份業務的特性，而目標欄位則是該地區在該月份的銷售收入。

嘗試找出哪些事物可能會影響目標，並查看是否可以收集該資料。請記住，預測演算法只能識別可以被發現的模式。也許您需要收集或建立額外的特性以擷取額外資訊？

您還必須決定在能夠準確預測之前需要累積多少資料。事件需要多長時間才能具有代表性？請考慮以下範例：

* 客戶必須成為會員滿 60 天，您才能預測他們是否會在第 90 天離開。

* 幾個月內無法得知保險理賠的成本，因此您可以排除少於六個月的理賠。

區分隨時間變化和不隨時間變化的資料。對於隨時間變化的資料，資料是否帶有時間戳記以便適當彙總？

## 預測時是否可以取得資料？

確保您包含在訓練資料集中的所有特性也可用於未來的預測。常見的錯誤是使用歷史資料中可用的特性來訓練模型，但在未來進行預測時卻無法取得這些特性。在對新資料進行預測時，機器學習演算法必須具有訓練資料集中所有可用特性的值。

## 資料越多越好嗎？

### 樣本大小

較大的資料量往往會產生更可靠的模型。任何額外的相關資料點都會有所幫助，無論這些是新的還是歷史的觀察結果。

### 特性數量

無論與目標結果的相關性如何，將所有可能的變數包含在模型中可能很誘人。通常越簡單越好。一般來說，在模型中使用較少數量的特性會更好。

當有更多特性時，可能會增加掩蓋您想要揭露的真實潛在關係的風險。預測模型可以使用所有特性來提出一系列複雜的規則，這些規則在用於訓練模型的資料上表現良好。但預測的目標實際上可能只受一兩個特性的影響。該模型可能不擅長推廣到訓練所用資料之外的資料，這將導致應用於新資料時的預測效能不佳。

### 過度擬合

過度擬合表示模型過於複雜，因此在預測新資料時不可靠。當特性數量相對於可用資料點數量過多時，往往會發生過度擬合。例如，資料集中可能只有 50 列資料和 100 個特性欄位。

## 您的訓練資料相關嗎？

機器學習演算法會在您提供的資料中尋找模式，並使用這些模式對未來的資料進行預測。當您對新資料進行預測時，您會假設它與訓練資料相似。因此，訓練資料集在統計上必須類似於您將進行預測的資料，這一點很重要。

如果市場或業務與您的訓練資料集所描述的內容發生了顯著變化，您可能正在使用過時的資料集，這將導致不準確的預測。您可能需要建立一個新的訓練資料集，並且只使用在變更發生後收集的資料。

請考慮 [了解機器學習](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-basics.htm) 中關於銷售預測的範例。假設我們將代表電視、廣播和報紙廣告支出以及歷史業務季度的銷售收入的資料輸入到我們的演算法中。然而，這些資料是在 1980 年代收集的。現在我們不再在廣播上宣傳該產品，而且我們幾乎完全在線上宣傳該產品。我們訓練好的演算法在預測當前業務季度的銷售額時表現會很差，因為訓練資料不能代表當前的業務。

## 探索資料

使用您的業務知識來了解和驗證資料。如果資料與您的假設不符，這可能意味著資料有問題，還是意味著您的假設有誤？

### 移除不可靠的特性

考慮從資料集中排除以下欄位：

* 某個值高度集中（低基數）。例如，一個包含「紅色」、「綠色」、「藍色」值的欄位，其中 90% 的值是「紅色」。

* 值具有高度唯一性（高基數）。

* 大多數值為空值 (null)。

### 處理相關特性

移除多餘的特性，例如提供相同或非常相似資訊的高度相關特性。考慮從似乎在資料中擷取相同行為的群組中選擇單一特性。嘗試確定是否有一項特性正在驅動另一項特性。

### 取代空值

探索您的資料，找出關鍵資料點（例如目標或關鍵特性）中是否有遺漏值。若要使用稀疏欄位中的值，您可以將空值取代為「其他」或「未知」。或者您可能需要重新評估資料收集。

### 目標範圍

查看資料的分布。如果目標資料的分布相對於樣本大小過於分散，可能很難在資料中找到任何模式。

資料值的範圍是多少？預測範圍之外的資料值會面臨一些挑戰。在 [外插法和內插法](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/extrapolation-interpolation.htm) 中閱讀更多資訊。

分布中是否有異常？資料中的偏態、尾部和多峰形狀可能需要額外的資料轉換或進一步的[特性工程](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/feature-engineering.htm)。嘗試將低容量類別分組，並對數值特性中的尾部進行四捨五入或移除。

### 消除異常值

考慮移除特性欄位中具有異常值的觀察值。異常值可能會阻礙演算法辨識資料中一般模式的能力。查看目標欄位中分布更緊密的較小資料子集可能會更好。

### 資料分組

您可以透過將資料拆分為不同的資料集並使用它們來訓練單獨的模型，以改善您的結果。根據一個或多個特性進行資料分組。

### 資料外洩

資料外洩表示用於訓練機器學習演算法的資料包含了您試圖預測的資訊。

相關學習內容：

* [什麼是 Qlik Predict](https://help.qlik.com/lnk/What_is_AutoML)

## 瞭解更多資訊

* [什麼是 Qlik Predict](https://help.qlik.com/lnk/What_is_AutoML)