我對整體學習有些困惑。簡而言之,它將運行k個模型並獲得這k個模型的平均值。如何保證k個模型的平均值比任何一個模型都好?我確實知道這種偏見是“分散”或“平均”的。但是,如果集合中有兩個模型(即k = 2),而其中一個模型比另一個模型差,那該集合不會比更好的模型差嗎?
我對整體學習有些困惑。簡而言之,它將運行k個模型並獲得這k個模型的平均值。如何保證k個模型的平均值比任何一個模型都好?我確實知道這種偏見是“分散”或“平均”的。但是,如果集合中有兩個模型(即k = 2),而其中一個模型比另一個模型差,那該集合不會比更好的模型差嗎?
不能保證。就像您說的那樣,合奏可能比單個模型差。例如,取真實模型和不良模型的平均值將得出一個相當不良的模型。
$ k $模型的平均值只有在(某種程度上)彼此獨立的情況下才會有所改進。例如,在裝袋中,每個模型都是從數據的隨機子集構建的,因此內置了一些獨立性。或者可以使用特徵的不同組合構建模型,然後通過求平均值進行組合。
此外,只有在各個模型具有高方差時,模型平均才可以很好地工作。這就是為什麼使用非常大的樹木建造隨機森林的原因。另一方面,對一堆線性回歸模型求平均仍會得到一個線性模型,這可能不會比您開始時使用的模型更好(嘗試!)
其他合奏方法(例如增強和混合)通過將各個模型的輸出以及訓練數據作為更大模型的輸入來工作。在這種情況下,它們通常比單個模型更有效,這並不奇怪,因為它們實際上更複雜,並且仍使用訓練數據。
在您的示例中,兩個模型的集合可能比單個模型本身更糟糕。但是您的示例是人為的,我們通常在集成中構建兩個以上的對象。
不能絕對保證整體模型的性能優於單個模型,但是如果您構建了許多模型,則單個分類器就是weak。您的整體表現應優於單個模型。
在機器學習中,訓練多個模型通常勝過訓練單個模型。那是因為您還有更多需要調整的參數。
我只想提出在這種情況下很少討論的內容,它應該給您帶來思考的機會。
合奏也可以與人類一起使用!
已經觀察到,對人類預測進行平均比對任何單個預測提供更好的預測。這就是人群的智慧。
現在,您可能會說這是因為某些人擁有不同的信息,所以您實際上是在對信息進行平均。但是,不,即使對於諸如猜測罐中的豆子數量之類的任務,也是如此。
有很多關於此的書籍和實驗,這種現象仍使研究人員感到困惑。
正如@Flounderer所指出的那樣,實際收益來自諸如決策樹之類的所謂不穩定模型,在這種模型中,每次觀察通常都會對決策邊界產生影響。像SVM這樣的更穩定的採樣不會獲得太多收益,因為重新採樣通常不會對支持向量產生太大影響。
單個模型實際上有可能比集成模型更好。
即使您的數據中沒有任何點被某些模型高估而又被低估了(在那種情況下,您可能希望平均誤差會被抵消),一些最受歡迎的損失函數(例如均方損失))對單個大偏差的懲罰要比對某些中等偏差的懲罰更大。如果您要平均的模型有些不同,您可能希望方差會變小,因為平均值會消除未解決的偏差。也許可以用 that來解釋。
是的,可能是這樣,但是集成的想法是訓練更簡單的模型,以免過度擬合,同時捕獲來自不同集成的數據的不同特徵。當然,在使用相同的訓練數據進行訓練時,無法保證整體模型的性能優於單個模型。 可以通過結合集成模型和Boosting(例如AdaBoost)來獲得出色的性能。通過增強,您可以通過在每個數據點上分配權重並根據錯誤進行更新來訓練每個下一個整體模型。因此,可以將其視為坐標下降算法,它允許訓練誤差隨著每次迭代而降低,同時保持恆定的平均模型複雜度。總體而言,這會影響性能。有很多