目標定義
已發表: 2015-08-21機器學習方法可以分為兩大類:有監督的和無監督的。 監督學習從一組標記的觀察中學習,其中已知觀察屬於某些類別(用於分類問題)或具有某些值(回歸問題)。 無監督學習從未標記的一組觀察中學習,除了觀察本身之外,沒有其他東西是已知的。
對於監督學習方法,我們基本上說“看看這個‘真實’數據,告訴我知道不知道數據的‘真相’”。 對於無監督學習方法,這相當於“看看這些數據,然後告訴我一些我不知道的有趣的事情”。 雖然明確的二分法很有用,但在這篇文章中,我們將討論有趣的變體,其中定義目標本身可以成為一項非常有趣的任務!
半監督
這是監督數據和非監督數據之間的中間地帶,其中“真實”標籤僅針對某些觀察結果而不是全部存在。 忽略手頭的信息對分析模型的質量是不公平的,但是使用這些信息可能會使問題變得異常。 在數據生成很容易(想想互聯網)且標籤成本高昂的世界中,許多問題都屬於半監督領域。
一種方法可能是不包括用於建模的標籤信息,而僅用於模型驗證和性能比較。 例如,我們可以使用無監督聚類將數據分割成k個聚類,然後通過將預測聚類與實際聚類進行比較來驗證我們模型的能力。 這可以幫助我們在多個集群解決方案中做出更好的決定。
另一種方法是使用此信息進行建模。 我們在之前的博客文章中討論了半監督聚類。
離散與連續
雖然許多情況顯然屬於分類或回歸類別——其中“真實”值是離散類或連續值——但在某些情況下目標轉換是有意義的。
將客戶級別的收入視為客戶人口統計和過去交易行為的函數。 這在零售、銀行、保險和電信行業中很常見。 收入,通常是過去N個月的,顯然是連續的數字。 你說,一個(也許是線性的)回歸可能適合這裡! 但是對於分類問題,還有更複雜和復雜的方法,例如神經網絡,它可能會做得更好,但不適用於連續目標。 根據業務環境,您可能不需要預測實際收入,但前提是收入將是高、中或低。 如果是這樣,您可以查看所有客戶的收入分配情況,並定義高、中和中低的界限,瞧! 您已將連續目標問題轉換為三類離散分類問題。
如果你的連續目標是一個百分比——比如通過學校考試的學生的比例——並且你想預測新/未見過的學校的百分比,那麼除了回歸模型之外,你還有另一個選擇。 您可以打包數據! Parceling 通過複製觀察將連續分數轉換為二元類。 對於目標值為 40% 的觀察,您將觀察複製 100 次,其中 40 次分配 1 類,其餘 60 次分配 60 類。給定觀察相同且特徵集相同,模型將嘗試區分 1從 0 得出結論,這種觀察有 40% 的可能性為 1,有 60% 的可能性為 0。您可以對所有觀察執行相同的操作。 (是的,這會增加訓練數據流形的大小。)無論如何,大多數常見的分類模型都會產生 class=1 的概率作為結果,這就是你想要的結果!
是否有將離散類轉換為連續值的情況? 大多數情況下沒有,但有例子。 當您嘗試以年為單位預測某人的年齡時(本質上是 0 到 100(左右)之間的離散整數),您可以將年齡視為連續目標。 同樣,如果您有足夠細化的收入類別,例如 0-50k、50k-100k、100k-150k 等,那麼您可能會受益於將收入視為連續變量而不是解決 20 類問題。
無課案例
所有數據要么被標記,要么不被標記。 當數據被標記(假設,二進制)時,它要么屬於一個類,要么屬於另一個類。 但實際上,數據可能不屬於任何類別。
例如,在一堆保險索賠中,您可能肯定知道某些索賠是欺詐,而其他索賠不是欺詐,但您可能不知道許多從未被調查過的索賠。 考慮在銀行申請評分模型中被接受或被拒絕的信用卡申請人。 但是有很多客戶根本沒有申請,你不知道他們是否會被接受。 通常,我們無法處理沒有標籤的數據,我們必須將它們排除在我們的開發人群之外。 但是,我們必須記住這是否會導致建模偏差。 在上面的保險示例中,可能一開始就被調查的索賠是可疑的(即使是那些發現不是欺詐的),或者在銀行示例中,沒有申請的客戶沒有被完全排除人口統計類別的銷售人員招攬。
如果您按照上一節所述進行目標轉換,您可以自己創建一個無類數據。 假設您將超過 5000 元/年的收入定義為高點,將低於 5000 元/- 年的收入定義為低點,以將連續目標轉換為二元目標。 然而,這將是一個糟糕的設計,因為在 5000 處存在任意截斷。收入為 4999/- 的客戶與收入為 5001/- 的客戶沒有太大區別- 但是你把它們分開了。 您的定義將暗示 5001/- 的收入更類似於 10000/- 的收入,而不是 4999/- 的收入。 你看到問題了嗎? 從技術上講,您可以這樣做,但生成的模型不會很好和健壯,因為您要求它學習來自類似客戶的差異。
通常一個好的做法是包含一個緩衝區/無類區域。 因此,您可以將 6000/- 或更多的收入定義為高,4000/- 或更少的低收入,並忽略收入在 4000/- 和 6000/- 之間的觀察。 當您丟失一些數據時,模型會做得更好,因為您定義的不同之處確實不同。
雖然數據準備、特徵生成和機器學習方法值得關注,但定義正確的目標也有助於提高整體分析結果的質量。