1. 案例定位

第 9.3 節 Python 教學,以 IMDB 電影資料預測票房是否超過 1 億美元。

2. 學習目標

理解標準化、80/20 切分、人工神經網路(Artificial Neural Network, ANN)、分類指標與隨機過度抽樣。

3. 案例情境

原書提供平衡版與不平衡版資料。平衡資料中高/低於 1 億美元各占 50%;不平衡版只有 22% 電影超過 1 億美元。示範只用 budget 與 duration 兩個預測變數。

4. 開始資料

設定 原書內容
平衡資料正類比例 50%
不平衡資料正類比例 22%
測試資料比例 20%
預測變數 budget、duration
標準化 Min-Max,縮放至 0–1
ANN 設定 單層 4 個節點、logistic activation;示範 max_iter 1500

5. 分析方法

NumPy 匯入資料 → MinMaxScaler 標準化 → train_test_split 切分 → MLPClassifier 建模 → 準確率/精確率/召回率/F1 分數/接收者操作特徵曲線(Receiver Operating Characteristic, ROC)評估;不平衡資料另以 RandomOverSampler 平衡訓練集,測試集維持原比例。

6. 計算結果

模型 準確率 精確率 召回率 F1 分數 原書輸出之 ROC 曲線下面積
平衡資料 ANN 0.9000 0.9600 0.8276 0.8889 0.8977
不平衡基準模型 0.8209 0.8182 0.2903 0.4286 0.6355
過度抽樣後 0.8209 0.6207 0.5806 0.6000 0.7369

過度抽樣後召回率由 0.2903 提高至 0.5806,約增加 0.2903;準確率幾乎不變。

7. 結果分析與管理解讀

案例清楚示範:類別不平衡時,單看準確率會掩蓋少數類別辨識能力。過度抽樣犧牲部分精確率,但提高召回率與 F1 分數。

8. 人工智慧提問詞

比較不平衡基準模型與過度抽樣模型,說明為何準確率幾乎不變卻不能說兩者表現相同;只使用原書五項指標。

9. 思考/假設情境

問題: 若業務更在意抓到真正高票房電影,哪個指標改善最值得注意?

參考解答: 召回率;原書示範由約 0.29 提升至約 0.58,代表正類被找出的比例提高。