iPAS AI 應用規劃師 中級 科目二 大數據處理分析與應用

計算「銷售金額/瀏覽次數」是哪種特徵工程?

原題 08

資料科學家為分析顧客行為,利用現有欄位「銷售金額」與「瀏覽次數」,計算出新變數「銷售金額/瀏覽次數」。此動作屬於下列哪一類特徵工程方法?

白話

有兩個已存在的欄位:「銷售金額」和「瀏覽次數」。資料科學家把這兩個欄位相除,算出一個新的欄位「銷售金額/瀏覽次數」(每次瀏覽帶來多少銷售)。

問你:這種「用現有欄位計算出新欄位」的做法,屬於哪一類特徵工程方法?

點選你的答案。

01 總結

一句話總結

把兩個現有欄位組合計算出新欄位,這叫特徵衍生(Feature Derivation),也稱特徵構造(Feature Construction):用現有特徵「衍生」出一個原本不存在的新特徵。

02 情境

先感受問題:「每次瀏覽帶來多少錢」比兩個分開的數字更有用

嘉誠電商的分析師阿薇有兩個欄位:

商品 A:銷售金額 = 50,000 元,瀏覽次數 = 1,000 次
商品 B:銷售金額 = 80,000 元,瀏覽次數 = 8,000 次

看銷售金額:B 比 A 多。

看瀏覽次數:B 也比 A 多。

但哪個商品更「有效率」呢?

算一下「銷售金額 / 瀏覽次數」(每次瀏覽帶來多少銷售額):

商品 A:50,000 / 1,000 = 50 元/次
商品 B:80,000 / 8,000 = 10 元/次

商品 A 的轉換效率是 B 的 5 倍!這個「新欄位」揭示了原始兩個欄位看不出來的資訊。

這個「用已有欄位計算出新欄位」的動作,就是特徵衍生。

03 對照

只用原始欄位、不做特徵衍生,會遇到什麼問題

  1. 原始欄位無法表達「比率/效率」:「銷售金額」和「瀏覽次數」各自告訴你絕對數量,但模型看不到「轉換率」這個概念。
  2. 模型難以學習複合關係:某些規律只在兩個特徵的組合下才浮現,模型要自己學這個非線性交互作用很困難,直接算出來會事半功倍。
  3. 特徵冗餘但缺少洞察:資料可能有 100 個欄位,但沒有一個直接表達「客單價」「訪購轉換率」「留存率」這些業務核心指標。
  4. 資料量不足時模型難以提取高階特徵:訓練資料少的時候,讓模型自動學習「除法關係」很難,手動計算衍生特徵可以注入領域知識。
  5. 重要比率被稀釋:只看絕對值,規模大的商品永遠贏。加入比率特徵,小規模但高效率的模式才會被看見。
04 解法

特徵衍生:用現有欄位計算出新欄位

特徵衍生(Feature Derivation),又稱特徵構造(Feature Construction),是特徵工程的核心技術:在現有欄位的基礎上,透過數學運算或邏輯規則,創造出原本不存在的新特徵

常見的衍生方式:

  • 四則運算:銷售金額 / 瀏覽次數(題目的例子)
  • 差值:本月銷售 - 上月銷售(環比變化)
  • 乘積:用戶年齡 × 消費頻率(交互特徵)
  • 時間特徵:從「下訂日期」提取「星期幾」「是否假日」
  • 統計彙總:過去 30 天的平均消費額

這就是選項 B 講的:特徵衍生(Feature Derivation)

技術版:特徵工程四大類別的區別

特徵工程的主要分類,方便對照四個選項:

  • 特徵衍生(Feature Derivation):用現有特徵計算新特徵,增加資訊量。例:銷售金額/瀏覽次數、購買年-出生年=購買年齡。
  • 特徵選擇(Feature Selection):從現有特徵中選出最有用的子集,減少冗餘。例:用相關係數、互信息、LASSO 選出重要特徵。不增加新特徵,只篩選。
  • 特徵轉換(Feature Transformation):改變現有特徵的表示方式,不增加新欄位數量。例:對數轉換、Z-score 標準化、PCA 降維。
  • 分箱處理(Binning):把連續數值分成區間,轉為類別。例:年齡 [20-30), [30-40), [40-50)。
import pandas as pd

df = pd.DataFrame({
    '銷售金額': [50000, 80000, 30000],
    '瀏覽次數': [1000, 8000, 500]
})

# 特徵衍生:計算每次瀏覽帶來多少銷售額
df['轉換效率'] = df['銷售金額'] / df['瀏覽次數']
# 新欄位出現了,從 2 欄變 3 欄

關鍵區別:特徵衍生會「增加新欄位」;特徵選擇會「減少欄位」;特徵轉換「數量不變但值改變」;分箱「把連續值變成離散類別」。

05 陷阱

為什麼其他選項是錯的

A特徵選擇(Feature Selection)

字面在說什麼

從所有特徵裡選出最重要、最有用的幾個,去掉不重要的。

為什麼不對

特徵選擇是「減法」,從已有的特徵中選出子集,不產生新特徵。題目的操作是「加法」,從兩個現有欄位計算出一個原本不存在的新欄位,是不同的方向。

誰會選錯

聽到「特徵工程」就想到「特徵選擇」的人。這是最常被混淆的兩個概念:選擇是去掉不要的,衍生是創造新的。

C特徵轉換(Feature Transformation)

字面在說什麼

改變特徵的形式,例如做對數轉換、標準化,讓特徵更適合模型使用。

為什麼不對

特徵轉換是對「一個現有特徵」做數學轉換,改變它的分佈或尺度,欄位數量不變。例如把「銷售金額」取對數,得到「log(銷售金額)」——還是同一欄。題目是把兩個欄位組合出一個全新的第三個欄位,這是衍生,不是轉換。

誰會選錯

知道「除法是一種數學運算」就聯想到「轉換」的人。記住:轉換是改變一個特徵的形式,衍生是組合多個特徵創造新特徵。

D分箱處理(Binning)

字面在說什麼

把連續數值(如年齡、收入)分成幾個區間段(箱子),轉成類別特徵。

為什麼不對

分箱是把一個連續欄位切成幾段,改變的是「連續→離散」的型態,不是把兩個欄位相除創造新欄位。題目完全沒有提到要把數值切成區間,跟分箱的概念不符。

誰會選錯

看到「計算出新變數」就以為是分箱(因為分箱也會創造新的類別欄位)的人。分箱是特定的「連續→類別」轉換,不是一般性的「用現有欄位算新欄位」。

06 變形

同個考點下次怎麼變形

變形 1

從「出生日期」計算「年齡」屬於哪種特徵工程?

直覺

出生日期是現有欄位,從它推算年齡是哪種操作?

答案

特徵衍生(Feature Derivation)。用「今天日期 - 出生日期」算出年齡,創造出原本不存在的新特徵。這跟「銷售金額/瀏覽次數」是同一類操作:從現有欄位計算新欄位。

變形 2

用 PCA 把 100 個特徵壓縮成 10 個主成分,這是什麼特徵工程?

直覺

PCA 也會改變特徵,是哪一類?

答案

特徵轉換(Feature Transformation)。PCA 把原始 100 個特徵線性組合成 10 個新的主成分,不是直接刪除特徵(那是特徵選擇),而是把所有特徵「轉換」成一個新的表示空間。特徵數量減少了,但方式是轉換不是刪除。

變形 3

用相關係數選出跟目標變數相關的前 20 個特徵,這是哪種特徵工程?

直覺

把不相關的特徵刪掉,只留最有用的,是哪種做法?

答案

特徵選擇(Feature Selection)。計算每個特徵與目標變數的相關係數,依排名保留前 20 個,去掉其餘特徵。這是「篩選子集」的操作,不創造新特徵,只減少特徵數量。

變形 4

特徵衍生的「交互特徵」是什麼?

直覺

兩個特徵相乘也算衍生嗎?那叫什麼?

答案

叫「交互特徵(Interaction Feature)」,是特徵衍生的一種。例如「年齡 × 消費金額」這個新特徵,捕捉了兩者的乘積關係。線性模型本身無法學習特徵間的乘積關係,手動建出交互特徵是注入領域知識的好方法。

變形 5

自動化特徵工程工具(如 Featuretools)在做什麼?

直覺

手動做特徵衍生太費時,有沒有自動化的方法?

答案

Featuretools 等自動化特徵工程工具會系統性地嘗試多種衍生方式:對數值欄位做加減乘除、對時間欄位提取「星期幾」「月份」,再用統計聚合(均值、最大值、計數)跨資料表生成衍生特徵。能在幾分鐘內產生數千個候選特徵,再用特徵選擇篩出最有用的。

07 延伸

想再往下看,這 5 個

出處

iPAS 經濟部產業人才能力鑑定 ・ 114 年第二梯次 iPAS AI 應用規劃師 中級 科目二 大數據處理分析與應用 第 8 題

查看官方原文 PDF