混合模型(mixture model)
/ MIKS-cher MOD-ul /
混合模型,描述的是這樣一種資料:它源自好幾個隱藏的子群體糅合在一起,而你只看得到那糅合後的整體。設想城市某路口每日的車流時刻:很可能有一座早高峰的隆起、一座晚高峰的隆起,被擠進了同一張雜亂的直方圖裡。混合模型說:「這不是一團,而是幾團更簡單的團塊疊在一起」,並去弄清楚究竟有幾團、每一團坐落何處、以及各占資料的多大比例。
最常見的情形,是每個子群體都是一條鐘形曲線(一個高斯),這就給出了「高斯混合模型」。模型得一次學會三樣東西:每個底層群體的形狀、各自的混合權重(每群占總體的份額),以及——對任一給定的資料點——它來自每一群的機率。請注意最後這一點是「柔和」的:一個點不會被乾脆俐落地劃歸某一群,而是帶著機率散布在各群之間,這正是它與硬聚類的不同之處。由於群體歸屬是隱藏的,混合模型成了EM演算法經典的演練場。
它為何重要:混合模型是一件乾淨、可解釋的工具,用於柔性聚類、密度估計,以及為「你懷疑暗地裡其實是好幾群」的群體建模。誠實的提醒確鑿無疑。你通常得先告訴它要找幾群,選錯了就會扭曲結果;它假定每一群都有某種特定的形狀(鐘形曲線沒法描摹一根香蕉);而且若某一群坍縮到單獨一個點上,它可能會抱住一個毫無意義的解。它是幹對了活兒才鋒利的器械,而非一台魔法尋群機。
一張顧客年度消費的直方圖顯示出兩座隆起:一大簇圍繞每年200美元的隨性買家,和一小簇圍繞2,000美元的重度消費者。一個雙成分的高斯混合,能還原出這兩群、它們各自的平均消費,並且——對於一位花了900美元的顧客——給出一個柔和的判定,如「65%可能是隨性、35%可能是重度消費者」,而不是硬塞給他一個單一標籤。
混合模型把一個雜亂的分布,分解成幾個更簡單的群體,並給出柔和的(機率性的)歸屬。
混合模型不會替你發現群體的數目——你通常得自己指定它,而一個錯誤的數目,會給出一個自信卻錯誤的分解。它還為每一群假定了一種形狀,所以面對「簇的形狀不像所選分布」的資料,它可能嚴重擬合失當。