官术网_书友最值得收藏!

4.4 非線性變換

在很多種場景中,采集的數據并不一定需要以連續線性的方式呈現出來,通常需要以一些非線性的方式進行呈現,具體如下。

·考試分數的及格線。

·高等院校的錄取線。

·家庭年收入劃分。

諸如此類,在只需要對數據進行區間劃分,或者需要表現數據內部之間的相對關系的場景下,并不需要精確的線性對應關系。在非線性變換過程中,可以摒棄一部分數據的“精度”,用離散的數學表示取代連續的數學表示,數據直接轉化為類別數據或者呈現與整體數據關系的數據。

4.4.1 二值化變換

二值化變換(Binary Transform)的實現方法十分簡單,設定一個閾值,當待轉化的數據大于閾值時,該數據轉化為1;相反,當待轉化的數據小于閾值時,該數據轉化為0。其公式為

其代碼實現如下:

其輸出結果如下:

4.4.2 分位數變換

分位數(Quantile),亦稱分位點,是指用分割點將一個隨機變量的概率分布范圍分為幾個具有相同概率的連續區間。分割點的數量比劃分出的區間少1,如3個分割點能分出4個區間。常用的分位數有中位數(即二分位數)、四分位數、百分位數等。

以統計學中比較常用的四分位數為例,將所有數值由小到大排列并分成四等份,處于3個分割點位置的數值就是四分位數,如圖4-3所示。

圖4-3 四分位數分布圖

·第一四分位數(Q1),又稱“較小四分位數”,等于該樣本中所有數值由小到大排列后第25%的數字。

·第二四分位數(Q2),又稱“中位數”,等于該樣本中所有數值由小到大排列后第50%的數字。

·第三四分位數(Q3),又稱“較大四分位數”,等于該樣本中所有數值由小到大排列后第75%的數字。

在機器學習中,分位數方法可用于數據預處理,而這種預處理的選擇同時是由模型建立的目的所決定的,在實際的模型中,傳統的線性回歸模型的假設常常不被滿足,如數據出現尖峰或者厚尾的分布、存在顯著的異方差等情況,這時的最小二乘法估計將不再具有上述優良性,同時穩健性也不夠理想。

為了彌補普通最小二乘法在回歸分析中的缺陷,Koenker和Bassett于1978年提出了分位數回歸(Quantile Regression)的思想。它依據因變量的條件分位數對自變量進行回歸,這樣就得到了所有分位數下的回歸模型。

基于上述模型場景,分位數變換是分位數回歸分析模型訓練中必不可少的步驟。其將所有特征放在相同的已知范圍或者分布(由分位數決定)中。然而,通過執行分位數變換,它平滑了不尋常的分布,比縮放方法更少受到異常值的影響,因為此時可以將樣本特征的數值的絕對關系轉化為相對關系。例如,學生的考試分數是絕對的,而學生的年級排名是相對的。分位數回歸能夠捕捉分布的尾部特征,當自變量對不同部分的因變量的分布產生不同的影響時(如出現左偏或者右偏的情況)它能更加全面地刻畫分布的特征,從而得到全面分析。

相對于線性數據變換(如一些規則化方法),分位數變換的優點主要體現在以下幾個方面。

(1)它對樣本中的隨機擾動項不需要做任何分布的假定,所以模型具有很強的穩健性。

(2)分位數變換無須一個連接函數描述因變量的均值和方差的相互關系,因此分位數變換使模型擁有比較好的彈性性質。

(3)由于分位數回歸是對所有分位數進行回歸,所以對數據中出現的異常點具有耐抗性。

(4)不同于普通的樣本分布,分位數變換之后的數據在模型中對因變量具有單調變換性。

(5)分位數變換之后的數據具有在大樣本理論下的漸進優良性。

但是,正是由于其將樣本數據關系進行了變換,所以扭曲了特征內部及其之間的相關性和距離。

首先,了解分位數變換的基本實現,在展示代碼之前,應先介紹Sklearn中自帶的數據集包sklearn.datasets.*,其中收錄了各種數據集,在下面展示的例子中使用了鸞尾花數據集,其具體實現如下:

這里暫時不打印訓練集數據,有興趣的讀者可以自行在終端上打印結果,其輸出結果如下:

其次,從直觀上感受分位數變換對不同分布的轉化情況,其代碼如下:

其輸出結果如圖4-4所示。

圖4-4 不同分布通過分位數變換前后的比較

由圖4-4可以發現,原本形態各異的分布數據,通過分位數變換之后,其分布趨于統一,由此可以得知,分位數變換在某種程度上可以扭曲原有的數據形態,而得到的新數據形態更多地反映了數據之間的關系。

4.4.3 冪變換

在統計學中,冪變換(Power Transformation)主要應用于用冪函數建立數據單調變換的一系列函數。這是一種有用的數據轉換技術,用于穩定方差,使數據更接近正態分布,提高關聯度量的有效性,如變量之間的相關性及其他數據的穩定過程。

Sklearn模塊中提供了兩種變換方法:Box-Cox變換(Box-Cox Transformation)和Yeo-Johnson變換(Yeo-Johnson Transformation)。

Box-Cox變換

Box-Cox變換是Box和Cox于1964年提出的一種廣義冪變換方法,是統計建模中常用的一種數據變換方法,用于連續響應變量不滿足正態分布的情況。Box-Cox變換之后,可以在一定程度上減小不可觀測的誤差和預測變量的相關性。Box-Cox變換的主要特點是引入一個參數,通過數據本身估計該參數,進而確定應采取的數據變換形式。Box-Cox變換可以明顯地改善數據的正態性、對稱性和方差相等性,對許多實際數據都是行之有效的。Box-Cox變換的公式如下:

式中,為經Box-Cox變換后得到的新變量;xi為原始連續因變量,且為正數;λ為變換參數,其意義在于控制變換函數的形式,λ為0時為對數變換,λ小于0時為倒數變換,λ大于0時為多次方變換或者開方變換。當然,xi也存在為負數的情況,此時xixi+γ的形式呈現,γ要大到確保xi+γ嚴格為正。

Box-Cox變換的一個顯著優點是通過求變換參數λ確定變換形式,這個過程完全基于數據本身而無須任何先驗信息,這無疑比憑經驗或者通過嘗試而選用對數、平方根等變換方式更加客觀和精確。其目的是使數據滿足線性模型的基本假定,即線性、正態性及方差齊性。

Yeo-Johnson變換

Ye o-Johnson變換是Yeo和Johnson于2000年提出的一種冪變換方法,在擁有Box-Cox變換的諸多優點的基礎上,還解決了xi必須為正的嚴格限制,從而使變換更具有普適性。

Yeo-Johnson變換的公式如下:

由上述公式可知,當xi為非負時,滿足以xi+1為因變量的Box-Cox變換公式;當xi為負時,則滿足以-xi+1為因變量、2-λ為冪的負的Box-Cox變換公式。本質上,Yeo-Johnson變換是對Box-Cox變換的擴展。盡管對Yeo-Johnson變換參數的解釋很困難,但Yeo-Johnson變換函數族可用于選擇線性或者正態變換的過程。

值得注意的是,參數λ并不是直接設定的,而是通過對參數的估計進行求解,其有兩種方法,即極大似然估計和貝葉斯方法,在后面的章節中將會詳細介紹這兩種方法。

對冪分布的基本代碼實現在此直接略過,可以參考前面介紹的變換方法,在此觀察冪分布對數據本身產生的影響,其代碼如下:

不同的分布通過冪變換前后的比較如圖4-5所示。

圖4-5 不同的分布通過冪變換前后的比較

由圖4-5可知,一些完全不滿足正態分布的數據,冪變換可以使轉換之后的數據改善其正態性、對稱性和方差相等性。

4.4.4 多項式變換

多項式變換(Polynomial Transformation)常用于線性回歸場景,其本質是一種升維操作,將低維度的數據樣本通過多項式變換進而成為高維度的樣本,但部分高維度之間仍然存在相關性。例如,對一些樣本集進行線性回歸會得到如下回歸結果,其回歸方程如下:

y(n)=ax(n)+b

由樣本分布情況可知,一次線性方程并不能很好地擬合樣本數據,如果加入高次項或許會對樣本數據的擬合起到一定的幫助,如圖4-6所示。通過比較可以發現,相對于多項式線性回歸描述數據的能力而言,一般線性回歸在描述數據時存在局限性。

圖4-6 一般線性回歸和多項式回歸的比較

圖4-6中的樣本是一組二維數據集{x1,x2},假設對其加入高次項,如x1x2、等,原來原始的二維數據集{x1,x2}轉化為更高維度{x1,x2,…,,于是從原有的回歸方程:

y(2)=ax(2)+b

擴展到:

y(2+k)=ax(2+k)+b

式中,k為增加的高次項個數。

其代碼實現如下:

其輸出結果如下:

主站蜘蛛池模板: 类乌齐县| 万安县| 高安市| 莱阳市| 措美县| 甘洛县| 弋阳县| 榆林市| 忻城县| 中江县| 日喀则市| 确山县| 汽车| 大新县| 台南市| 绩溪县| 东源县| 昌宁县| 皋兰县| 措勤县| 商水县| 津市市| 郯城县| 曲靖市| 丁青县| 香港| 乌拉特前旗| 滦平县| 屯昌县| 巴彦县| 夏津县| 安龙县| 漳平市| 泽州县| 南皮县| 宣城市| 溧阳市| 梅州市| 永州市| 广宁县| 平安县|