成功的量化交易——量化模型(8)


成功的量化交易——量化模型(8)

支持向量機

為了激勵支持向量機(SVM),我們需要考慮一個分類器的思想,通過一個線性分離邊界來分離不同的類。如果存在這樣一個簡單的分離,那麼我們就可以創建一個監督分類器,這個分類器只基於判斷新特性位於這個線性分類平面之上還是之下。在現實中,這種分離很少存在於量化交易中,因此我們需要考慮軟利潤分類器或支持向量分類器(SVC)。


SVCs的工作原理是在特徵空間中尋找一個線性分離邊界,通過在兩個類之間創建一個最優分離邊界來正確地分類大部分(但不是全部)訓練觀測值。有時,如果類分離大部分是線性的,那麼這樣的邊界是非常有效的。然而,在其他時候,這樣的分離是不可能的,有必要使用其他技術。擴展SVC的動機是允許非線性決策邊界。


這是支持向量機(SVM)的領域。支持向量機的主要優點是,它允許特徵空間的非線性擴展,包括顯著的非線性,同時仍然保持顯著的計算效率,使用一個稱為“核技巧”的過程。


支持向量機允許通過許多不同的“內核”選擇非線性決策邊界。特別地,我們可以使用二次多項式、高階多項式甚至徑向核函數來描述非線性邊界,而不是像SVC那樣使用完全線性的分離邊界。


這給了我們很大程度的靈活性,代價是我們的估計中經常出現偏差。我們將使用下面的SVM嘗試通過一個非線性邊界來劃分特徵空間(即滯後的價格因素和成交量),這樣我們就可以對接下來的一天是上漲還是下跌做出合理的預測。


決策樹和隨機森林

決策樹是一種監督分類技術,它利用樹結構在樹的每個節點上通過“決策”將特徵空間劃分為遞歸子集。


例如,可以詢問昨天的價格是高於還是低於某個閾值,該閾值會立即將功能空間劃分為兩個子集。然後,對於這兩個子集中的每個子集,都可以詢問成交量是高於還是低於閾值,從而創建四個獨立的子集。


這個過程將繼續下去,直到分區不能獲得更多的預測能力為止。


與支持向量機或判別分析器的“黑箱”不透明方法相比,決策樹提供了一種自然可解釋的分類機制,因此是一種流行的監督分類技術。


隨著計算能力的提高,出現了一種新的解決分類問題的方法——集成學習。基本思想很簡單。從相同的基本模型中創建大量分類器,並用不同的參數訓練它們。然後將預測結果平均起來,希望得到的預測精度大於任何單個成分所帶來的預測精度。


最廣泛使用的集成方法之一是隨機森林,它採用多個決策樹學習者(通常是數萬或更多),並結合預測。這樣的組合往往可以表現得非常好。Scikit-Learn在集成模塊中附帶了一個隨機森林分類器(RFC)類。


RFC感興趣的兩個主要參數是n_estimators和n_jobs,前者描述要創建多少決策樹,後者描述要將計算分散到多少處理核心。我們將在下面的實現部分討論這些設置。


主成分分析

上述所有技術都屬於監督分類領域。執行分類的另一種方法是不監督訓練過程,而是允許算法自行確定“特徵”。這種方法被稱為無監督學習技術。


無監督技術的常用實例包括將問題的維數減少到只有那些被認為重要的維數,在大量文本文檔中發現主題,或者發現可能在時間序列分析中提供預測能力的特性。


在本節中,我們感興趣的是降維的概念,它旨在確定一組提供最可預測性的因素中最重要的組成部分。特別地,我們將使用一種稱為主成分分析(PCA)的無監督技術,在我們的監督分類器中使用之前減少特徵空間的大小。


PCA的基本思想是將一組可能相關的變量(例如具有時間序列自相關的變量)轉換成一組稱為主成分的線性不相關變量。這些主成分是根據它們所描述的方差量以正交的方式排列的。因此,如果我們有一個非常高維的特徵空間(10 +特徵),然後通過主成分分析我們可以降低特徵空間大概2或3個主成分,提供幾乎所有的數據變化,從而導致一個更健壯的監督分類器模型使用時減少數據集。


使用哪種預測器

在有大量訓練數據的量化金融情況下,應該考慮使用支持向量機(SVM)等模型。然而,支持向量機缺乏可解釋性。但對於決策樹和隨機森林集合就不是這樣了。


後者通常用於保持可解釋性,而支持向量機等“黑盒”分類器則不提供這種功能。


最終,當數據如此廣泛時(例如tick數據),最終使用哪個分類器就無關緊要了。在這個階段,還會出現其他因素,如計算效率和算法的可伸縮性。一般的經驗法則是,將訓練數據加倍可以提供線性的性能增長,但是當數據量變得很大時,這種改進會減少為性能的次線性增長。


監督分類器的基本統計和數學理論非常複雜,但是每個分類器的基本直覺很容易理解。另外,請注意,下面的每個分類器對於它們什麼時候工作得最好都有不同的假設集,所以如果您發現一個分類器性能很差,這可能是因為使用的數據集違反了用於生成理論的假設之一。


樸素貝葉斯分類器

雖然我們在上面的例子中沒有考慮樸素的貝葉斯分類器,但是為了完整起見,我想對它進行討論。樸素貝葉斯(特別是多項式樸素貝葉斯- MNB)在有限的數據集存在時很適合使用。這是因為它是一個高偏置分類器。MNB分類器的主要假設是條件獨立。本質上,這意味著它無法辨別單個特性之間的交互,除非它們是作為額外的特性特別添加的。


例如,考慮一個文檔分類情況,當試圖進行情感分析時,它出現在財務設置中。MNB可以瞭解到像“cat”和“dog”這樣的單個單詞可以分別指與貓和狗相關的文檔,但是短語“cats and dogs”(英國俚語,意為大雨)不會被分類器認為是氣象詞彙!解決這個問題的辦法是把“貓和狗”作為一個額外的特徵,具體來說,然後把它與氣象類別聯繫起來。


邏輯迴歸

與樸素貝葉斯模型相比,邏輯迴歸提供了一些優勢,因為它較少關注特徵之間的相關性,而且由於模型的性質,結果具有概率解釋。這最適合需要使用閾值的環境。例如,我們可能希望對“up”或“down”結果設置80%的閾值(比如),以便正確地選擇它,而不是選擇概率最高的類別。在後一種情況下,“上升”的預測可能是51%,“下降”的預測可能是49%。在這種情況下,將類別設置為“up”並不是一個非常強的預測。


決策樹和隨機森林

決策樹(DT)將空間劃分為布爾選擇的層次結構,這些布爾選擇將根據相應的決策進行分類或分組。這使得它們具有高度的可解釋性(假設樹中有“合理”數量的決策/節點!)DT有很多優點,包括處理特性之間交互的能力以及非參數性。


當不能直接(或不可能)將數據線性地分離到類中(這是支持向量機需要的條件)時,它們也很有用。使用單個決策樹的缺點是它們容易過度擬合(高方差)。這個問題是用隨機森林來解決的。在機器學習競賽中,隨機森林實際上是一些“最好”的分類器,所以它們總是應該被考慮的。


支持向量機

支持向量機(SVM)雖然具有複雜的擬合過程,但實際上相對容易理解。線性支持向量機本質上是嘗試使用線性分離邊界將空間劃分為多個不同的組。對於某些類型的數據,這可以非常好地工作,並導致良好的預測。然而,大量的數據並不是線性可分的,因此線性支持向量機在這裡的性能很差。


解決方案是對SVM所使用的核函數進行修改,使其具有允許非線性決策邊界的效果。因此,它們是非常靈活的模型。然而,為了得到最好的結果,需要選擇正確的SVM邊界。SVM尤其適用於高維文本分類問題。由於計算量大、調優難度大、擬合模型難以解釋等因素,使其處於不利地位。


分享到:


相關文章: