1.pandas進行特徵離散處理
標籤處理通常會把字元型的標籤轉換成數值型的
特徵處理
對於特徵來說,一般可以做乙個對映的字典
還可以轉換成編碼
還原資料初始狀態)}
2.使用sklearn進行離散值處理的方式如下:
①.標籤編碼(labelencoder)
資料還原回去可以用inverse_transform :
class_le.inverse_transform(df[
'class label'
])
②.特徵向量化(dictvectorizer)使用 dictvectorizer將得到特徵的字典
對所有的資料都做了對映
from sklearn.feature_extraction import dictvectorizer
dvec = dictvectorizer(sparse=
false
)x = dvec.fit_transform(feature.transpose(
).to_dict(
).values())
x#輸出結果
array([[
0.,1
.,0.
,10.1,0
.,1.
,0.]
,[0.
,0.,
1.,13.5,1
.,0.
,0.]
,[1.
,0.,
0.,15.3,0
.,0.
,1.]
])
可以呼叫 get_feature_names 來返回新的列的名字,其中0和1就代表是不是這個屬性。
③.獨熱編碼(onehotencoder)onehotencoder 必須使用整數作為輸入,所以得先預處理一下
x#輸出結果
array([[
0.,1
.,0.
],[0
.,0.
,1.]
,[1.
,0.,
0.]]
)pandas虛擬變數pandas庫中同樣有類似的操作,使用get_dummies也可以得到相應的特徵
對整個df使用get_dummies 將會得到新的列:
pd.get_dummies(df)
23 資料預處理之資料離散化處理
pandas.cut x,bins,right true,labels x 資料 bins 離散化的資料,或者切分的區間 labels 離散化後各個類別的標籤 right 是否包含區間右邊的值 等寬分箱 df age bin pd.cut df age new 5,labels range 5 不加...
模板 資料預處理技巧 離散化
問題引入 輸入n個資料,統計每個數出現的次數。資料大小為小於等於1e9的正整數,n小於等於1e5 很顯然,如果直接開乙個1e9的陣列來記錄每個元素出現的次數,那肯定會mle,因此要把我們輸入的資料進行離散化操作。即把無限空間中有限的個體對映到有限的空間中去,以此提高演算法的時空效率。通俗的說,離散化...
Python資料預處理
1.匯入資料檔案 excel,csv,資料庫檔案等 df read table file,names 列名1,列名2,sep encoding file是檔案路徑,names預設為檔案的第一行為列名,sep為分隔符,預設為空,表示預設匯入為一列 encoding設定檔案編碼,匯入中文時,需設定utf...