日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python plt画半对数坐标_特征工程大传:对数变换

發布時間:2023/12/15 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python plt画半对数坐标_特征工程大传:对数变换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(歡迎各位關注,本專欄會對機器學習的特征工程中一些實用的處理方法進行介紹,該系列篇幅較短,力求闡述其核心并提供相應的實現方法。)

對數變換是一種常用的特征工程方法。一般對于數值大于0的重尾分布數據,我們都可以采取對數變換的方法來轉換特征值,從而讓特征具有更好的數值屬性,進而增強模型的效果。那么如何理解對數變換?什么情況下對數變換會是一種有效的特征工程方法呢?讓我們先從幾個基本概念開始。


1,對數函數

既然要進行對數變換,那么就需要針對對數函數的性質有深刻的理解。

下圖是對數函數在一個較大的定義域范圍內所繪制出的函數圖像,

對數函數圖像

我們可以很明顯地看出,當x數值較小時,y值變化較快,而隨著x值不斷變大,y值變化越發平緩,讓我們先記下這個圖像性質。


2,重尾分布

我們常說很多事物的自然分布近似于正態分布,但事實上還有一種更為廣泛的分布,其表現為少量的個體做出大量的貢獻(如下圖所示),這就是長尾分布。

長尾分布

# Python 繪制長尾分布# 長尾分布采樣a, m = 3., 2. # shape and modes = (np.random.pareto(a, 1000) + 1) * m# 繪制分布圖import matplotlib.pyplot as pltcount, bins, _ = plt.hist(s, 100)plt.show()

對于呈現長尾分布的特征,我們不能簡單地去除長尾部分的特征值,這是因為這些長尾的尾部很長,在整個特征分布中占比其實也并不低,事實上具有很大的信息量,對模型來說很有價值。但如果直接就這么放入模型也不是合適的方法。如上圖所示,尖尖的左側加一個長長的尾巴,這意味著有大量的值在<2左右的這個極小的低值段區間內,分布明顯有偏向,這會讓以高斯分布為假設的模型難以學習到合理的參數,使得該特征為模型帶來的效果大打折扣。

至此,問題已經明確,既然這種分布形式并不好,那么我們怎么來緩解它呢?答案就是,使用對數變換。


3,對數變換

我們根據前面發現的log函數所具有的性質,對特征值進行對數變換,使得較小值區間在轉換后被擴展到一個變化較大的范圍內(x數值較小時,y值變化較快),而長尾的大值區間被壓縮到一個變化較小的范圍內(隨著x值不斷變大,y值變化越發平緩),進而整體上減緩長尾分布這種極偏的分布狀態,為低值端爭取更多的空間,將高值端盡可能的壓縮,使得整體分布更加合理。

對數轉換后的長尾分布圖

# log轉換后的分布圖import matplotlib.pyplot as pltcount, bins, _ = plt.hist(np.log(s), 100)plt.show()

4,結語

對數變換是一種十分常用的特征工程方法,當我們遇到類似分布的特征數據時,可以通過這種轉換來讓特征變得更加有效。此外它還具有以下優點:

  • 縮小數據的絕對數值范圍,讓特征不再飄。
  • 依據對數的運算法則,將乘法變換為加法,符合中心極限法則下收斂到正態分布的假設。
  • 非線性轉換為線性,讓問題變得更好建模
  • 如果你覺得我的文章有價值,請持續關注我,我會持續更新。

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的python plt画半对数坐标_特征工程大传:对数变换的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。