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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

特征工程——categorical特征 和 continuous特征

發布時間:2024/1/23 编程问答 72 豆豆
生活随笔 收集整理的這篇文章主要介紹了 特征工程——categorical特征 和 continuous特征 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

看到有些介紹,“特征分為categorical特征 和 continuous特征“不解,查資料得

單個原始特征(或稱為變量)通常屬于以下幾類之一:

  • 連續(continuous)特征;
  • 無序類別(categorical)特征;
  • 有序類別(ordinal)特征。

##連續特征 除了歸一化(去中心,方差歸一),不用做太多特殊處理,可以直接把連續特征扔到模型里使用。

##無序特征 可以使用One-hot(也叫One-of-k)的方法把每個無序特征轉化為一個數值向量。比如一個無序特征color有三種取值:red,green,blue。那么可以用一個長度為3的向量來表示它,向量中的各個值分別對應于red,green,blue。如:

color取值 向量表示
red (1, 0, 0)
green (0, 1, 0)
blue (0, 0, 1)
##有序特征 有些特征雖然也像無序特征那樣只取限定的幾個值,但是這些值之間有順序的含義。例如一個人的狀態 status 有三種取值: bad ,? normal ,? good ,顯然 bad ?<? normal ?<? good

當然有些問題里有序可能會很重要,這時候就不應該把其中的順序關系丟掉。一般的表達方式如下:

status取值 向量表示
bad (1, 0, 0)
normal (1, 1, 0)
good (1, 1, 1)

上面這種表達方式很巧妙地利用遞進表達了值之間的順序關系。

——————————————————————

以線性分類器Linear Regression (LinearReg)為例,它是通過特征的線性加權來預測因變量yy

y=wTx

但大部分實際情況下,yyxx都不會是這么簡單的線性關系,甚至連單調關系都不會有。那么直接把xx扔進LinearReg模型是怎么也得不到好結果的。很多人會想著既然線性分類器搞不定,那就直接找個非線性的好了,比如高斯核的SVM。我們確實可以通過這種簡單換算法的方式解決這個簡單的問題。但對于很多實際問題(如廣告點擊率預測),往往特征非常多,這時候時間約束通常不允許我們使用很復雜的非線性分類器。這也是為什么算法發展這么多年,廣告點擊率預測最常用的方法還是Logistic Regression (LogisticReg)

【上述問題的解決辦法】——就是對原始特征xx做轉化,把原來的非線性關系轉化為線性關系

方法一:離散化?

最常用的轉化方式是對xx離散化(discretization),也就是把原來的值分段,轉化成一個取值為0或1的向量。原始值落在某個段里,向量中此段對應的元素就為1,否則為0。

離散化的目標是yy與轉化后向量里的每個元素都保持比較好的線性關系。

? 比如取離散點{0.5,1.5,2.5},通過判斷

xx屬于(?∞,0.5),[0.5,1.5)[1.5,2.5)[2.5,+∞)中哪段來把它離散化為4維的向量。下面是一些例子的離散結果:

原始值xx 離散化后的值
0.1 (1, 0, 0, 0)
1.3 (0, 1, 0, 0)
3.2 (0, 0, 0, 1)
5.8 (0, 0, 0, 1)

離散化方法的關鍵是怎么確定分段中的離散點。下面是常用的選取離散點的方法:

【1】等距離離散:顧名思義,就是離散點選取等距點。我們上面對xx取離散點{0.5,1.5,2.5}就是一種等距離散

【2】等樣本點離散:選取的離散點保證落在每段里的樣本點數量大致相同

【3】畫圖觀察趨勢:以xx為橫坐標,yy為縱坐標,畫圖,看曲線的趨勢和拐點。通過觀察下面的圖我們發現可以利用3條直線(紅色直線)來逐段近似原來的曲線。把離散點設為兩條直線相交的各個點,我們就可以把xx離散化為長度為3的向量

方法二:函數變換

函數變換直接把原來的特征通過非線性函數做變換,然后把原來的特征,以及變換后的特征一起加入模型進行訓練。常用的變換函數見下表,不過其實你可以嘗試任何函數。

常用非線性函數f(x)f(x)xx的取值范圍
xα;?α(?,+)α∈(?∞,+∞) (?,+)(?∞,+∞)
log(x)log?(x) (0,+)(0,+∞)
log(x1?x)log?(x1?x) (0,1)(0,1)

這個方法操作起來很簡單,但記得對新加入的特征做歸一化。

方法三:決策樹離散法

大白話說決策樹模型就是一大堆的if else。它天生就可以對連續特征分段,所以把它用于離散化連續特征合情合理。我稱這種方法為決策樹離散化方法。例如Gmail在對信件做重要性排序時就使用了決策樹離散化方法2

決策樹離散化方法通常也是每次離散化一個連續特征,做法如下:

單獨用此特征和目標值yy訓練一個決策樹模型,然后把訓練獲得的模型內的特征分割點作為離散化的離散點。

這種方法當然也可以同時離散化多個連續特征,但是操作起來就更復雜了,實際用的不多。

方法四:核方法

核方法經常作為線性模型的一種推廣出現。以線性回歸模型為例,它對應的核方法如下:

fθ(x)=i=1nθiK(x,xi)??fθ(x)=∑i=1nθiK(x,xi)??,

其中{xi}ni=1{xi}i=1n為訓練樣本點,K(xi,xj)K(xi,xj)為核函數,比如常用的高斯核函數為:

K(xi,xj)=exp(?xi?xj222h2)??K(xi,xj)=exp?(?‖xi?xj‖222h2)??。

如果我們把上面模型里的{K(x,xi)}ni=1{K(x,xi)}i=1n看成特征,而θθ看成模型參數的話,上面的模型仍舊是個線性模型。所以可以認為核方法只是特征函數變換的一種方式。

當然,如果把核函數K(xi,xj)K(xi,xj)看成一種相似度的話,那上面的模型就是kNN模型了,或者叫做加權平均模型也可以。

總結

以上是生活随笔為你收集整理的特征工程——categorical特征 和 continuous特征的全部內容,希望文章能夠幫你解決所遇到的問題。

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