1. 程式人生 > >python數據預處理和特性選擇後列的映射

python數據預處理和特性選擇後列的映射

form med 標準化 學習 ont 矩陣 sim span 直接

我們在用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,就可以確定被選擇出來的特征在原特征矩陣中所在的位置的索引。

python數據預處理和特性選擇後列的映射