特徵工程的相關概念與方法

2021-08-19 05:10:15 字數 2230 閱讀 1941

很多機器學習問題需要研究的物件時文字甚至影象,提取變數特徵的方法是資料處理的前提。

bow和vsm

bow:bags-of-words model,忽略文件內的單詞順序和語法等要素,將其僅僅看作是若干的詞彙的集合。

vsm:vector space model,表示文字文件的數學模型,在bow的假設下,將每個文件表示成同一向量空間的向量。

優化:

如果再出現乙個長文件,將會有更多的零向量,可以採取的方法是,最後僅僅出現在乙個文件中的都集中到乙個向量中,減少維數。

停用詞stop words,在資訊檢索中,為節省儲存空間和提高處理效率,在處理自然語言文字之前或之後自動過濾掉的某些字或詞。英文常用停用詞:the,a,of,an,to,be,etc。

n-gram模型

n-gram通常是指一段文字或語音中連續n個專案(item)的序列,專案可以是單詞、字母、鹼基對等。

n=1,稱為unigram;n=2,稱為bigram;n=3,稱為trigram。

tf-idf詞條權重計算

特徵向量裡高頻詞的權重更大,這些詞在文集內其他文件裡面也經常出現,對區分文件的作用不大,有必要抑制那些在很多文件中都出現了的詞條的權重。

詞條在文件d中的權值計算為:

w(t) = tf(t, d)* idf(t)

其中,tf(t, d)表示詞條t在文件d中出現頻率,idf(t)表示與包含詞條t的文件數目成反比。

特徵向量

使用sklearn庫的digits手寫字型資料集,並列印出來效果

from sklearn import datasets

import matplotlib.pyplot as plt

digits = datasets.load_digits()

#print(digits.keys())

#print(digits.images[0])

images_and_labels = list(zip(digits.images, digits.target))

for index, (image, label) in enumerate(images_and_labels[:4]):

plt.subplot(2,4, index+1)

plt.axis('off')

plt.imshow(image, cmap = plt.cm.gray_r, interpolation='nearest')

plt.title('training: %i' % label)

定量特徵的二值化

對於某些定量特徵,需要將定量資訊轉為區間劃分。如將考試成績,轉為及格或不及格。

方法:設定乙個閾值,大於閾值的賦值為1,小於或等於閾值的賦值為0。

缺失值計算

資料獲取時,由於某些原因,缺少某些數值,需要進行彌補;

彌補策略:預設為mean(均值)

舉例,如將0作為缺失值

[0,4,2]

[2,3,4]

[8,0,0]

三列特徵中,第一列均值為5,第二列為3.5,第三列為3

處理後

[5,4,2]

[2,3,4]

[8,3.5,3]

需要注意的是,在測試集中的每列特徵的缺失值要用訓練集的該列特徵的均值彌補,而不能使用測試集的該列特徵均值

建立多項式特徵

特徵工程方法

常用方法總結 其中過濾法幾大檢驗的區別 假設x為解釋變數,y為被解釋變數,我們想確定x的取值對y是否有影響 1 x,y都為分類變數,比如學歷和購買之間的關係,卡方檢驗 互資訊比較合適 2 x為連續變數,y為分類變數,比如身高和購買之間的關係,f檢驗比較合適 3 x,y都為連續變數,相關係數即可 互資...

特徵工程 特徵工程入門與實踐(一)

特徵工程 將資料轉換為能更好地表示潛在問題的特徵,從而提高機器學習效能。大體上,機器學習分為兩類 評估分類問題,可以採用交叉驗證法 from sklearn.linear model import logisticregression from sklearn.model selection imp...

特徵工程 常用的特徵轉換方法總結

機器學習模型的生命週期可以分為以下步驟 要構建模型就必須要對資料進行預處理。特徵轉換是這個過程中最重要的任務之一。在資料集中,大多數時候都會有不同大小的資料。為了使更好的 必須將不同的特徵縮小到相同的幅度範圍或某些特定的資料分布。什麼時候需要特徵轉換 什麼時候不需要特徵轉換 大多數基於樹型模型的整合...