資料轉換-使用計數 Learning
重要
Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning。
自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。
ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。
本文說明機器學習 Studio 中的模組 (傳統) 支援以計數為基礎的特徵化。
Learning with count 是一種有效的方法,可建立一組以值計數為基礎的精簡資料集功能。 您可以使用此類別中的模組來建立一組計數和功能。 稍後,您可以更新計數和功能以利用新的資料,或合併兩組計數資料。
關於以計數為基礎的特徵化
以 計數為基礎的特徵化 基本概念是藉由計算計數,您可以快速且輕鬆地取得哪些資料行包含最重要資訊的摘要。 此模組會計算值出現的次數,然後將該資訊提供給模型輸入的功能。
Imagine 您正在驗證信用卡交易。 這是這項交易的來源,這是一件很重要的資訊。 其中一個最常見的交易來源編碼方式是郵遞區號。 不過,可能有多達 40,000 個郵遞區號和地理區域編碼要列入考量。 您的模型是否擁有足夠容量來學習 40,000 個以上的參數? 如果您提供該容量給它,您是否有足夠的定型資料來防止過度學習?
如果您有很好的資料,有許多範例,這類精細的本機細微性可能很強大。 但是,如果您只有一個詐騙交易的範例(從較小的位置),是否表示該位置的所有交易都不正確,或您沒有足夠的資料?
其中一個解決方案是學習計數。 除了引進40000以上的功能之外,您還可以觀察每個郵遞區號的詐騙計數和比例。 藉由使用這些計數作為特徵,您可以取得每個值的證據強度相關資訊。 此外,藉由編碼計數的相關統計資料,學習模組可以使用統計資料來決定何時要變更其方法,而改為使用其他功能來取得資訊。
以計數為基礎的學習很有吸引力,原因很多。 使用以計數為基礎的學習,您會有較少的功能,需要較少的參數。 較少的參數可讓您更快速地學習、更快速地預測、較小的預測指標和較不可能的過度學習。
如何建立以計數為基礎的功能
基本範例可協助示範如何建立及套用以計數為基礎的功能。 假設您有如下的表格,其具有標籤和輸入。 每個案例 (或資料列或範例) 都有一組值在資料行中。 在此範例中,值為 A 和 B。
標籤資料行 | 輸入值 |
---|---|
0 | A |
0 | A |
1 | A |
0 | B |
1 | B |
1 | B |
1 | B |
以下是建立以計數為基礎的功能時所採取的步驟:
- 針對一組特定的值,請在該資料集中尋找具有相同值的所有其他案例。 在此情況下,有三個實例和四個實例 B。
- 將每個值的類別成員資格計算為其本身的功能。 在此情況下,您會得到一個小型的矩陣:有兩種情況,其中 A = 0;其中 A = 1 的案例B = 0 的案例之一;B = 1 的三個案例。
- 根據此矩陣,您可以取得各種以計數為基礎的功能。 這包括計算記錄機率的比率,以及每個目標類別的計數。 下一節中的資料表會顯示資料。
以計數為基礎的功能範例資料表
標籤 | 0_0_Class000_Count | 0_0_Class001_Count | 0_0_Class000_LogOdds | 0_0_IsBackoff |
---|---|---|---|---|
0 | 2 | 1 | 0.510826 | 0 |
0 | 2 | 1 | 0.510826 | 0 |
1 | 2 | 1 | 0.510826 | 0 |
0 | 1 | 3 | -0.8473 | 0 |
1 | 1 | 3 | -0.8473 | 0 |
1 | 1 | 3 | -0.8473 | 0 |
1 | 1 | 3 | -0.8473 | 0 |
範例
在使用機器學習建立點選連結預測模型的情況下,Microsoft 機器學習團隊會提供如何在機器學習中使用計數的詳細逐步解說。 本文會比較以計數為基礎的模型與其他方法的效力。
技術說明
本節包含實作詳細資料、提示和常見問題集的解答。
記錄檔遺失值的計算方式
記錄檔遺失值不是一般記錄檔的機率。 在此情況下,會使用先前的散發來使記錄機率的計算變得更順暢。
假設您有一個用於二元分類的資料集。 在此資料集中,第0類別的先前頻率為 p_0
,而類別 1 p_1 = 1 – p_0
的先前頻率為。 針對特定的定型範例功能,類別0的計數是 x_0
,而類別1的計數是 x_1
。
在這些假設下,記錄機率的計算方式 LogOdds = Log(x0 + c * p0) – Log (x1 + c\p1)
是,其中 c
是可由使用者設定的先前係數。 Log 函數會使用自然基底。
換句話說,針對每個類別 i
:
Log_odds[i] = Log( (count[i] + prior_coefficient * prior_frequency[i]) / (sum_of_counts - count[i]) + prior_coefficient \* (1 - prior_frequency[i]))
如果之前的係數是正數,記錄可能會與 Log(count[i] / (sum_of_counts – count[i]))
不同。
為什麼某些專案未計算記錄檔的機率
依預設,計數小於10的所有專案都會在單一值區中收集,稱為「垃圾 bin」。您可以使用 [修改計數資料表參數] 模組中的 [垃圾 bin 臨界值] 選項來變更這個值。
模組清單
具有計數分類的 Learning 包含下列模組:
- 組建計數轉換:從資料集建立計數資料表和以計數為基礎的特徵,然後將資料表和功能儲存為轉換。
- 匯出計數資料表:從計數轉換匯出計數資料表。 此模組支援與實驗的回溯相容性,這些實驗會使用組建計數資料表 (已淘汰的) 和計數 Featurizer (已淘汰的) 來建立以計數為基礎的特徵。
- 匯入計數資料表:匯入現有的計數資料表。 此模組支援與實驗的回溯相容性,這些實驗會使用組建計數資料表 (已淘汰的) 和計數 Featurizer (已淘汰的) 來建立以計數為基礎的特徵。 此模組支援將計數資料表轉換成計數轉換。
- 合併計數轉換:合併兩組以計數為基礎的特徵。
- 修改計數資料表參數:修改衍生自現有計數資料表的計數功能。