跳到主要內容 跳至補充內容

轉換資料類型

訓練機器學習模型時,資料集準確呈現所有資料類型很重要。若變數的呈現不準確,可能會導致準確度低的模型,或看起來良好但在套用至實際資料時預測不良的模型。您需要能夠分辨每個特徵的衡量內容以及如何指派該特徵的正確呈現內容。

一般而言,機器學習會考慮任何要成為數值的浮動或雙重資料類型,以及任何要成為類別的字串。不過,這可能不一定是正確解譯,如以下範例中所見。

範例是根據已彙總以回答問題的資料集:「使用者是否會在首次購買日期後 30 天內再次購買任何產品?」資料集包含不同資料類型的欄,例如字串、雙重、整數、布林值和日期。

欄和資料類型

具有欄名稱和資料類型的表格。

字串

下表顯示資料集中都有資料類型字串的兩欄。MarketingSource 欄在值之間沒有可衡量的差異,例如,在「Facebook」和「Customer Referral」之間。沒有數字或純量關係,因此應將欄視為類別。

另一方面,欄 SourceCostPerAcquisition 的值範圍由「低」至「高」,且值之間有更能衡量的差異。這沒有精確到顯示每項來源取得的平均成本 (美元),但值之間有明顯不同的重要性順序。在此案例中,可以討論應將 SourceCostPerAcquisition 視為類別或數字。

欄 PersonID、MarketingSource 和 SourceCostPerAquisition 的樣本資料

具有樣本資料的表格。

在這些情況下的建議做法是建立兩個獨立設定,每個設定具有不同的可能特徵分類。這些實驗會獨立執行。第一個設定會用於原始字串呈現。在第二個設定,您會提供對應至不同值的數字,將欄成對轉換為資料類型。例如,「低」= 1.0, 「中」= 2.0,而「高」= 3.0。執行每個設定後,您會進一步理解哪個設定更適合該特定使用案例。在某些情況下,使用字串呈現是合理做法,而在其他情況下,數字呈現可能更合理。

數字

若欄中資料描述的內容有可衡量的差異,應以數值呈現。這類的例子包括成本、收入、利潤、計數、總和與平均。

有時候,資料集可能有不可衡量的數值,因為這是字典或增量值,例如 ID。在我們的範例中,欄 PersonID 中的值若沒有以「Person_」為開頭,則可能誤用於數值。將 ID 視為數值會不準確地呈現這些列之間的差異。這類案例中的最佳做法是以字串呈現 ID。在使用資料集之前,您可能需要決定是否有任何數字欄應轉換為類別值。

日期

在機器學習的脈絡下,資料欄位類型是類別變數。雖然可以互相減去日期和時間戳記,但對於日期有幾個元件。問題是要考慮其中哪些元件以及如何考慮:值應為年、月、日期或年,或是一天中的小時?您或許想要以分鐘為單位的時間差異?若要取得最大的預測能力,日期應至少剖析為其中幾個元件。其中有些元件可能是類別,有些則可能是數字。

例如,日期可以剖析為星期幾。這可以呈現為數值 (1 至 7) 或字串值 (「星期日」至「星期六」)。

作為數字和字串的星期幾

表格具有以數字和字串呈現的星期幾。

以數值呈現星期幾時,有幾個問題。一週的開始是何時?星期一或星期日?此外,即使星期幾很重要,仍可能隱藏在週期性趨勢中。

在某些情況下,趨勢可能非常能夠反映真實情況,如圖 1 所示,其中一週的開始是星期一。

圖 1:每個工作日的平均銷售額,且一週的開始是星期一

每個工作日的銷售額圖表,有清楚的趨勢線。

圖 2 的資料與圖 1 相同,但位移了一天,因此一週的開始是星期日。在此,資料重要性大幅降低。

圖 2:每個工作日的平均銷售額,且一週的開始是星期日

每個工作日的銷售額圖表,沒有清楚的趨勢線。

圖 3 說明使用日期剖析元件作為數值時的另一個問題。可能有重要模式存在,但若不是線性,就會被遺漏。由於這點,以及由於通常存在於日期元件的週期性趨勢 (例如,每日或每季),建議使用這些元件作為類別值,而非作為數值。

圖 3:每個工作日的平均銷售額,顯示一週中段的高峰

每個工作日的平均銷售額圖表,具有在一週中段達到高峰的週期性趨勢。

Qlik AutoML 使用自動特徵設計以將日期和時間戳記的元件分為各自的相異欄。這有助於改善您建立之模型的預測性功能。已從父日期特徵衍生的自動設計特徵會分類為數字特徵。如有需要,您可以覆寫此功能,將日期欄視為類別。如需詳細資訊,請參閱日期特徵設計

日期差異

日期差異可用來作為更好的替代內容,以取代增量 ID,因為增量 ID 只是描述記錄新增至表格的順序。增量 ID 容易因為量 (在許多範例中即每日客戶) 的變化而歪曲,而日期差異則不受該速度影響。

日期差異可以是數個量值之一:秒、小時、天、月、或季。選取與您擁有的資料粒度最相關的一項。例如,查看每月資料時,天的日期差異中不會有任何實際值。在該情況下,月的日期差異會更相關。

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!