資料轉換-使用計數 Learning

重要

Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning

自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。

ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。

本文說明機器學習 Studio 中的模組 (傳統) 支援以計數為基礎的特徵化。

注意

適用于僅限機器學習 Studio (傳統)

Azure Machine Learning 設計工具中提供類似的拖放模組。

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

以下是建立以計數為基礎的功能時所採取的步驟:

  1. 針對一組特定的值,請在該資料集中尋找具有相同值的所有其他案例。 在此情況下,有三個實例和四個實例 B。
  2. 將每個值的類別成員資格計算為其本身的功能。 在此情況下,您會得到一個小型的矩陣:有兩種情況,其中 A = 0;其中 A = 1 的案例B = 0 的案例之一;B = 1 的三個案例。
  3. 根據此矩陣,您可以取得各種以計數為基礎的功能。 這包括計算記錄機率的比率,以及每個目標類別的計數。 下一節中的資料表會顯示資料。

以計數為基礎的功能範例資料表

標籤 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 (已淘汰的) 來建立以計數為基礎的特徵。 此模組支援將計數資料表轉換成計數轉換。
  • 合併計數轉換:合併兩組以計數為基礎的特徵。
  • 修改計數資料表參數:修改衍生自現有計數資料表的計數功能。

另請參閱