1. 程式人生 > >python資料預處理和特性選擇後列的對映

python資料預處理和特性選擇後列的對映

我們在用python進行機器學習建模時,首先需要對資料進行預處理然後進行特徵工程,在這些過程中,資料的格式可能會發生變化,前幾天我遇到過的問題就是:

    對資料進行標準化、歸一化、方差過濾的時候資料都從DataFrame格式變為了array格式

這樣資料的列名就會消失,且進行特徵選擇之後列的數量也會發生改變,因此需要重新對列進行對映,為其加上列名並轉化為DataFrame的格式。一般情況下可以分為三種情況:

1、對資料進行缺失值填補、編碼(處理分型別變數)、二值化(處理連續型變數)一般都是按照列對資料進行處理,因此處理完之後,直接覆蓋原資料即可。    

data.loc[:,"
Age"]= SimpleImputer(strategy="median").fit_transform(data.loc[:,"Age"].values.reshape(-1,1))

2、對資料進行標準化、歸一化都是對整個特徵矩陣進行處理,資料型別變為array,但是資料的列並沒有發生任何改變。直接將原始的列名重新對映至處理好的資料上。

X_train1 = min_max_scaler.fit_transform(X_train)  
X_train1=pd.DataFrame(X_train1)
X_train1.columns = X_train.columns

3、在所有特徵選擇方法,方差,SelectKBest+各種統計量(卡方過濾、F檢驗、互資訊法),嵌入法和包裝法,都有介面get_support,該介面有屬性get_support(indices=False),引數為false的時候可以用來確定原特徵矩陣中有哪些特徵被選擇出來,返回布林值True或者False,如果設定indices=True,就可以確定被選擇出來的特徵在原特徵矩陣中所在的位置的索引。