Introduction
二值化(binarizer)
- 根據閥值(threshold)將數值二元化(大於閥值設為1;小於or等於閥值設為0)
- 用於處理連續型變量
- 連續型變量劃分為二分類
- 決定僅考慮某種現象存在與否
- 用於處理連續型變量
- 根據閥值(threshold)將數值二元化(大於閥值設為1;小於or等於閥值設為0)
分段(KBinsDiscretizer;分箱)
- 將連續型數據劃分為不同分類變量
- 例如:根據不同的年齡段分成老年、中年、青少年、小孩、幼齡
- 將連續型數據劃分為不同分類變量
二值化(Binarizer
)
from sklearn.preprocessing import Binarizer
Binarizer
為特徵專用,不能使用一維數據,需進行reshape(-1,1)
升維成二維 一列的數據- 實例化指定
threshold
Binarizer(threshold=?)
- 大於
threshold
值會設為1,小於等於threshold
值會設為0
方法
與其他轉換器(transformer)一樣皆具有fit_transform
、fit
、transform
、inverse_transform
等方法
分段(KBinsDiscretizer
)
from sklearn.preprocessing import KBinsDiscretizer
- 將連續型數據排序後,按順序分箱後編碼
KBinsDiscretizer
為特徵專用,不能使用一維數據,需進行reshape(-1,1)
升維成二維 一列的數據
實例化的重要參數
n_bins
每個特徵中分箱的個數
- 預設為5,將連續型數據分為5類
- 一次會被運用到所有
fit
進來的特徵矩陣- 若一次導入有10個feature的特徵矩陣,全部特徵都會被分為指定的類數別
- 若希望不同特徵的分箱數不同,則必須實例化多個不同的分箱依據的
KBinsDiscretizer
轉換器
encode
編碼的方式
- 預設為
"onehot"
:返回sparse matrix,含有該類別的樣本為1,反之為0- 分為多少箱就有多少列
"ordinal"
:每個特徵(箱)被編碼為一個整數,返回一列含有不同整數編碼的箱的矩陣"onehot-dense"
:做onehot編碼後,返回一個密集數組
strategy
用來定義箱寬的方式
- 預設為
"quantile"
:表示等位分箱,每個特徵中的每個箱內的樣本數量相同- 根據箱內樣本的數量進行分割
"uniform"
:表示等寬分箱,每個特徵中的每個箱最大值之間差為((特徵.max() - 特徵.min()) / (n_bins)
)- 根據數據的值來進行分箱
"kmeans"
:表示按聚類分箱- 每個箱中的值到最近的一維k均值聚類的簇心的距離相同
方法
與其他轉換器(transformer)一樣皆具有fit_transform
、fit
、transform
、inverse_transform
等方法