1. 程式人生 > >機器學習教程 二.在股票上的迴歸預測

機器學習教程 二.在股票上的迴歸預測

哇!提高不少啊!是不是很驚訝?那麼我們實際生活中選擇哪種演算法呢?如果你問那些經常使用機器學習的人,他們的答案永遠只有一個不斷試錯,不斷調參。當然您可以嘗試一些演算法,並簡單地使用最有效的演算法。趕快去嘗試別的演算法吧!哈哈。。。
接下來給大家補充點小知識,有些演算法必須是線性執行的,有些則不是,這就意味著有些演算法可以利用多執行緒提高執行速率。那麼怎麼區分哪些演算法可以調高多執行緒呢?其實很簡單,我們可以看演算法的官方文件,如果它有n_jobs,那麼您就有一個可以為高效能而執行緒化的演算法。如果不是這樣,真不走運!因此,如果您正在處理大量的資料,或者處理中等資料,但是需要速度非常高,那麼您就需要一些執行緒。我們來檢查兩種演算法。前往sklearn.svm的
文件
,發現它並沒n_jobs,所以這個演算法是沒有多執行緒的。正如您所看到的,在我們的小資料上,它幾乎沒有什麼差別,但是,即使只說20mb的資料,它也會產生巨大的差異。接下來,我們來看看線性迴歸演算法。你看到這裡有n_jobs嗎?確實!這裡,你可以精確地指定你想要多少個執行緒。如果輸入- 1的值,那麼演算法將使用所有可用的執行緒。
clf = LinearRegression(n_jobs=-1)
是不是很有趣,當我讓你做這樣一件非常罕見的事情(檢視文件)時,讓我提請你注意這個事實,僅僅因為機器學習演算法使用預設引數,並不意味著你可以忽略它們。
 我們再來看另一個問題,svm.SVR()中有一個引數那就是kernel,這它到底是什麼?將(kernel)核心想象成與資料的轉換,換句話說kernel簡化你的資料。這使得處理的速度更快。 在svm的情況下。預設的SVR是rbf,它是一種核心。你還有其他的選擇。檢查文件,有“linear”、“poly”、“rbf”、“sigmoid”、“precomputed”等。
# 同樣,就像建議嘗試不同的ML演算法可以嘗試修改核心核心。程式碼如下: