# 迴歸問題

迴歸問題是使用數字目標欄的機器學習問題。下列範例呈現如何以精確的方式架構商務問題，然後彙總所有特徵都處於同等情況的訓練資料集。這為產生預測迴歸模型提供良好的基礎。

## 迴歸範例：客戶存留期值

我們開始的方式是假設根據歷史客戶訓練的機器學習模型將會學習使用影響預測的數個特徵預測客戶存留期值。我們收集的資料集具有關於所有過去和目前客戶的歷史資訊。各列代表每個客戶，而欄則代表描述客戶的特徵：客戶 ID、性別、年齡、成為客戶的日期、郵遞區號、購買次數以及整體貨幣花費。

收集之資料的樣本

收集之資料的樣本

收集之資料的樣本 ![具有訓練資料樣本的表格。](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/AutomatedMachineLearning/regression-problem-table-1.png)

我們可以將客戶存留期值定義為整體貨幣花費、將資料集饋送至機器學習演算法，以及學習預測整體貨幣花費。在未來取得新客戶時，我們可以使用訓練的演算法來預測他們將會在客戶存留期提供多少貨幣值。不過，此方法有幾個問題：

* 資料集可能包括成為客戶一天、一個月或一年的人。整體貨幣花費的值不會反映客戶將會花費多少，而是反映他們至今花費的總額。

* 帳戶啟用一天的客戶可能有高報酬的客戶特徵。但因為他們昨天才剛成為客戶，只購買一次，而且沒有花太多錢。將他們納入訓練資料集後，我們會不正確地教導機器學習演算法他們是不會帶來太多錢財的客戶類型。

* 我們可能有在第一個月每週訂購產品三次 (共購買 12 次) 的新客戶。成為客戶一年並且每月購買一次的另一個人可能花費相同的金額。就客戶存留期值而言，機器學習演算法會將這兩個客戶置於同等的情況，而實際上，長期而言，存留一個月的客戶可能更加重要。

為了避免這些陷阱，我們需要精確地確認如何定義客戶存留期值以及如何為問題準備資料集。達到此的良好方式是納入時間作為問題定義中的因素。

## 納入時間因素

若要納入時間因素，我們的開始方式是將第一年的值定義為客戶在成為客戶第一年的花費總額。然後我們可以使用客戶在前三個月期間的行為作為特徵，以預測他們在第一年的花費總額。第一年的值是興趣指標的精確定義，納入了時間範圍。建立如此精確定義的指標時，優點是將訓練資料集中的所有範例置於同等情況。

請注意，由於我們現在查看成為客戶第一年期間的花費總額，必須將訓練資料集限制為至少成為客戶大約一年的客戶。我們可以像這樣準備資料集：

納入時間因素的資料集

納入時間因素的資料集

納入時間因素的資料集 ![具有訓練資料樣本的表格。](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/AutomatedMachineLearning/regression-problem-table-2.png)

在此，每列代表成為客戶至少一年的人。欄包括在成為客戶時描述客戶的特徵，以及呈現客戶在所選時間範圍內活動的特徵。

活動的衡量依據是前三個月的購買次數以及前三個月的花費貨幣總額。目標欄代表第一年的花費總額。這是我們將會教導機器學習演算法預測的第一年值。

請注意我們現在如何詢問非常精確、在時間範圍內定義的問題：「根據客戶在前三個月的行為，預測客戶將會在第一年帶來多少金額。」

## 比較迴歸問題和時間序列問題

迴歸問題與時間序列問題在目標變數和其所涉及的實際應用案例方面相似。這兩種問題類型之間也存在一些差異。

如需更多關於時間序列問題的資訊，請參閱 [時間序列問題](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/time-series-problems.htm)。

### 相似處

* 兩者都涉及數值目標欄。

* 兩者都常用於涉及銷售和貨幣預測的金融使用案例中。

### 差異

* 時間序列問題支援分組目標，而迴歸問題則不支援（請參閱 [時間序列問題的元件](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#Components)）。分組情境仍可透過訓練多個不同模型來解決迴歸問題，但代價是犧牲跨群組的整體學習。

* 時間序列問題支援您預先知道某些功能變數的情境，例如與天氣相關的預測、規劃的促銷折扣，以及日期是否落在平日、週末和假日。這些功能變數稱為[未來特性](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#FutureFeatures)。

* 對於時間序列問題，資料必須以固定時間間隔按日期或日期時間編製索引。此外，在訓練和預測期間，預期會產生不同的資料內容（請參閱[準備訓練資料集](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#TrainPrepare)和[準備套用資料集](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#ApplyPrepare)）。

* 在時間序列問題中，預測值明確對應到特定日期和時間。在迴歸問題中，預測值可能對應或不對應到特定日期和時間，但如果它們對應，這種關聯是隱含的，而非在輸出中明確標示。

* 使用不同的演算法 (請參閱 [理解模型演算法](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/algorithms.htm))。

## 瞭解更多資訊

* [時間序列問題](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/time-series-problems.htm)
* [簡介Qlik Predict](https://help.qlik.com/lnk/Introduction_Qlik_AutoML)
* [什麼是 Qlik Predict](https://help.qlik.com/lnk/What_is_AutoML)

相關學習內容：

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