DataJam

数据预处理与特征工程:处理连续型特征--二值化与分段

二值化与分段

思想:将连续变量转换为分类变量

1.sklearn.preprocessing.Binarizer

根据阈值将数据二值化(将特征值设置为0或1),用于处理连续型变量。大于阈值的值映射为1,而小于或等于阈
值的值映射为0。默认阈值为0时,特征中所有的正值都映射到1。二值化是对文本计数数据的常见操作,分析人员
可以决定仅考虑某种现象的存在与否。它还可以用作考虑布尔随机变量的估计器的预处理步骤(例如,使用贝叶斯
设置中的伯努利分布建模)。
1 from sklearn.preprocessing import Binarizer
2 data = pd.read_csv(r'F:\Python\Narrativedata.csv')
3 data.iloc[:,1].fillna(29,inplace = True)
4 X = data.iloc[:,1].values.reshape(-1,1) #转换为二维矩阵
5 
6 transformer = Binarizer(threshold=30).fit_transform(X)#threshold=30以30岁为年龄界限来进行划分
7 transformer

 

 

2.preprocessing.KBinsDiscretizer

 

 

1 from sklearn.preprocessing import KBinsDiscretizer
2 data = pd.read_csv(r'F:\Python\Narrativedata.csv')
3 data.iloc[:,1].fillna(29,inplace = True)
4 X = data.iloc[:,1].values.reshape(-1,1) #转换为二维矩阵
5 est = KBinsDiscretizer(n_bins=3, encode='ordinal', strategy='uniform')
6 est.fit_transform(X) #查看转换后分的箱:变成了一列中的三箱
7 set(est.fit_transform(X).ravel())
8 est = KBinsDiscretizer(n_bins=3, encode='onehot', strategy='uniform') #查看转换后分的箱:变成了哑变量
9 est.fit_transform(X).toarray()
1 array([[1., 0., 0.],
2        [0., 1., 0.],
3        [1., 0., 0.],
4        ...,
5        [0., 1., 0.],
6        [1., 0., 0.],
7        [0., 1., 0.]])

 

posted on 2021-06-09 10:05  DataJam  阅读(437)  评论(0)    收藏  举报

导航