機器學習 特徵處理

2022-07-11 13:15:09 字數 1942 閱讀 4609

引自:

在機器學習任務中,學習器都會對資料有一定的要求,比如在最近鄰演算法中,我需要尋找與中心點最近鄰的點,假設我們使用歐式距離度量,如果有乙個屬性值是千萬量級,而另乙個屬性是100以內,那麼如此計算的距離會嚴重依賴於大量級的屬性,這對最後模型結果是有很大的影響的。總之,預處理的目的就是為了能夠讓學習器得到「乾淨」的資料。

通過原始資料進行變換把資料對映到(預設為[0,1])之間,作用於每一列將性縮放到乙個指定的最大和最小值(通常是1-0)之間,這可以通過preprocessing.minmaxscaler類實現。

minmaxscaler(feature_range=(0,1),......).fit_transform(x)

###feature_range設定縮放給定的範圍;x為所需要處理的資料集

當個體特徵太過或明顯不遵從高斯正態分佈時,標準化表現的效果較差。實際操作中,經常忽略特徵資料的分布形狀,移除每個特徵均值,劃分離散特徵的標準差,從而等級化,進而實現資料中心化。通過對原始資料進行變換把資料變換到均值為0,標準差為1的範圍內(作用於每一列)。

standardscaler().fit_transform(x)   ###例項化,並轉換資料

standardscaler.mean_ ###檢視原始資料中每列平均值

standardscaler.var_ ###檢視原始資料中每列方差

正則化的過程是將每個樣本縮放到單位範數(每個樣本的範數為1),如果要使用如二次型(點積)或者其它核方法計算兩個樣本之間的相似性這個方法會很有用。

該方法是文字分類和聚類分析中經常使用的向量空間模型(vector space model)的基礎.

normalization主要思想是對每個樣本計算其p-範數,然後對該樣本中每個元素除以該範數,這樣處理的結果是使得每個處理後樣本的p-範數(l1-norm,l2-norm)等於1。

normalizer().fit_transform(x)    ###例項化,並轉換資料

特徵的二值化主要是為了將資料特徵轉變成boolean變數。在sklearn中,sklearn.preprocessing.binarizer函式可以實現這一功能,binarizer函式也可以設定乙個閾值,結果資料值大於閾值的為1,小於閾值的為0。

binarizer().fit_transform(x)    ###例項化,並轉換資料

在建模過程中,我們通常會碰到各種型別的屬性,如果是標稱型屬性,也就是不具備序列性、不能比較大小的屬性,通常我們不能用簡單的數值來粗暴替換。因為屬性的數值大小會影響到權重矩陣的計算,不存在大小關係的屬性,其權重也不應該發生相應的變化,那麼我們就需要用到one-hot編碼(也有人稱獨熱編碼)這種特殊的編碼方式了。

onehotencoder().fit_transform(x)    ###例項化,並轉換資料

由於各種原因,許多現實的資料集包含缺失值,通常變為為空白、nan或其他佔位符。使用不完整資料集的基本策略是丟棄包含缺失值的整行或整列,然而這樣會丟失可能有價值的資料。乙個更好的策略就是從已知的部分資料中推斷出缺失值。

imputer類提供了基本的策略來填充缺失值,可以用行或者列的均值、中位數或眾數來填充缺失值。

imputer(missing_values=, strategy= ,axis=1.......)  

###missing_values為缺失的資料,strategy為需要代替的資料

去除一些相關性高的特徵---相關性特徵太多的話可能會起到放大雜訊的作用,多個特徵瓜分了這類特徵對模型的貢獻,導致對資料變動更加敏感,泛化誤差增大。

對變數的貢獻的分析造成影響,衡量變數重要性存在困難。

機器學習特徵處理

機器學習特徵處理筆記概要 在特徵工程之前,資料的特徵需要經過哪些必要的預處理 preprocessing 其中最廣為人知的預處理技巧可能就是特徵縮放 feature scaling 它的目的是保證所有的特徵數值具有相同的數量級。在有些情況下,資料中的某些特徵會具有不同的尺度,比如在電商上買衣服時,身...

機器學習 特徵預處理

通過一些轉換函式將特徵資料轉換成更加適合演算法模型的特徵資料的過程。特徵的單位或者大小相差較大,或者某特徵的方差相比其他的特徵要大出幾個數量級,容易影響 支配 目標結果,使得一些演算法無法學習到其它的特徵。對資料進行標準化或者歸一化可解決此類現象 資料標準化 是消除變數間的量綱關係,從而使資料具有可...

機器學習 特徵工程 特徵預處理

定義 將原始資料轉換為更好地代表 模型的潛在問題的特徵的過程,從而提高了對未知資料的 準確性。內容 主要有三部分 1 特徵抽取 2 特徵預處理 3 資料的降維 特徵預處理 通過特定的統計方法 數學方法 將資料轉換成演算法要求的資料。1 包含內容 2 sklearn特徵處理api sklearn.pr...