scikit-learn: isotonic regression(保序回歸,非常有意思,僅做知識點了解,但差點兒沒用到過)
http://scikit-learn.org/stable/auto_examples/plot_isotonic_regression.html#example-plot-isotonic-regression-py
代碼就不貼了,參考上面鏈接。
看代碼,給人的直觀感受類似於CART,具有分段回歸的效果。
只是非常少見人用這種方法,還是推薦使用CART吧,只是了解一下思想罷了。
。。
給個簡單的樣例:
問題描寫敘述:給定一個無序數字序列y,通過改動每一個元素的值得到一個非遞減序列 y‘ ,問怎樣使y和 y’ 誤差(該處取平方差)最小?
保序回歸法:從該序列y的首元素往後觀察,一旦出現亂序現象停止該輪觀察,從該亂序元素開始逐個吸收緊跟在後面的元素
舉例:
原始序列:<9, 10, 14>
結果序列:<9, 10, 14>
分析:從9往後觀察,到最後的元素14都未發現亂序情況。不用處理。
原始序列:<9, 14, 10>
結果序列:<9, 12, 12>
分析:從9往後觀察。觀察到14時發生亂序(14>10),停止該輪觀察轉入吸收元素處理。吸收元素10後子序列為<14, 10>,取該序列全部元素的平均值得12,故用序列<12, 12>替代<14, 10>。
吸收10後已經到了最後的元素,處理操作完畢。
原始序列:<14, 9, 10, 15>
結果序列:<11, 11, 11, 15>
分析:從14往後觀察,觀察到9時發生亂序(14>9)。停止該輪觀察轉入吸收元素處理。吸收元素9後子序列為<14, 9>。求該序列全部元素的平均值得12.5。因為12.5大於下個帶吸收的元素10,所以再吸收10,得序列<14, 9, 10>。
求該序列全部元素的平均值得11。因為11小於下個帶吸收的元素15。所以停止吸收操作,用序列<11, 11, 11>替代<14, 9, 10>。
example from:http://blog.csdn.net/fsz521/article/details/7706250
scikit-learn: isotonic regression(保序回歸,非常有意思,僅做知識點了解,但差點兒沒用到過)