Introduction
二值化(binarizer)
- 根據閥值(threshold)將數值二元化(大於閥值設為1;小於or等於閥值設為0)
- 用於處理連續型變量
- 連續型變量劃分為二分類
- 決定僅考慮某種現象存在與否
- 用於處理連續型變量
- 根據閥值(threshold)將數值二元化(大於閥值設為1;小於or等於閥值設為0)
分段(KBinsDiscretizer;分箱)
- 將連續型數據劃分為不同分類變量
- 例如:根據不同的年齡段分成老年、中年、青少年、小孩、幼齡
- 將連續型數據劃分為不同分類變量
二值化(Binarizer)
from sklearn.preprocessing import BinarizerBinarizer為特徵專用,不能使用一維數據,需進行reshape(-1,1)升維成二維 一列的數據- 實例化指定
thresholdBinarizer(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 等方法