天天看點

Splunk Machine Learning Toolkit在回歸問題上的應用

在前面的文章中,我們對Splunk Machine Learning Toolkit 3.0.0進行了介紹,今天我們就來聊一下機器學習中最常見的問題:回歸。

什麼是回歸?

回歸對數值連續的通常是來預測一個值,比如預測房屋價格、股票走勢、産品銷售量、未來的天氣情況等。線性回歸是最簡單的一種回歸算法,它期望使用一條直線去拟合資料,如圖所示:

可以看出,這樣直線有很多,那麼哪條才是最佳拟合線呢?這就是尋找最佳拟合的問題。

如果預測值和實際值最接近,它應該是最佳拟合線。我們可以用最小二乘法(Least squares)來解決這個問題。

最小二乘法通過最小化誤差的平方和尋找最佳函數比對。

用最小二乘法容易計算,如果資料集存線上性關系,它能拟合的非常好,但對異常值非常敏感。

評價模型的準确性

欠拟合(under-fit)是模型沒有很好地捕捉到資料特征,不能夠很好地拟合資料;過拟合(over-fitting) 是模型把資料學習的太徹底,模型泛化能力太差,不能很好的預測資料。理想情況下,我們希望既不欠拟合,也不過拟合。

了解了欠拟合和過拟合,我們需要選擇一個能反映模型預測能力的評估标準。

和方誤差(sum-squared error, SSE),即真實值與模型預測值誤差平方。

均方誤差(mean-square error, MSE),即真實值與模型預測值誤差平方的平均值。

方均根差(root-mean-square error, RMSD)也是一種常用的測量數值之間差異的方法。RMSD表示預測的值和實際值之差的樣本标準差。

防止過拟合

正則化可以減少過拟合的風險,通過懲罰因子對回歸系數進行抑制。

L1正則化表示各個參數絕對值之和;L2正則化表示各個參數平方和的開方值。在常用的回歸方法中,嶺(Ridge)回歸使用L2正則化、Lasso法使用L1正則化、彈性網(Elastic net)使用L1+L2正則化,它們都能有效的避免過拟合。

這些回歸算法在Splunk MLTK中可以直接使用,并且不需要編寫複雜的代碼,甚至變得更簡單。

我們來看Splunk MLTK中數值預測用例:第一步,在搜尋框内搜尋資料,這裡我們使用測試資料housing.csv,同樣你也可以使用自己的資料;第二步,選擇一種回歸算法、确定要預測的字段、選擇用來預測的字段(特征)、調整訓練集和驗證集的比例;第三步,填寫模型名稱并進行訓練。

圖表詳細展示了字段預測值和真實值的差距:

同樣Splunk MLTK也實作了模型準确性的驗證,并且可以通過特征系數來解釋為什麼會産生這樣的模型:

繼續閱讀