官方文档地址 参考链接sklearn中文翻译地址:http://www.scikitlearn.com.cn/0.21.3/40/
这个模块的主要内容是数据的预处理:
scaling:缩放化normalization:标准化binarization 二值化centering:中心化作用:将数据进行二值化,若是特征值(feature value)大于阈值(threshold)则将特征值赋值为1否则为0
参数
threshold:阈值,默认为0copy:默认为True 设置为False就会将x原值进行替换为二分值(即只为0、1), 设置为True则不会替换x原值示例
>>>from sklearn.preprocessing import Binarizer >>>X = [[ 1., -1., 2.], [ 2., 0., 0.], [ 0., 1., -1.]] >>>transformer = Binarizer().fit(X) >>>transformer >Binarizer() >>>transformer.transform(X) array([[1., 0., 1.], [1., 0., 0.], [0., 1., 0.]])Binarizer官方地址
作用:将目标label编码成[0-n_classes-1]范围的值
示例
>>> from sklearn import preprocessing >>> le = preprocessing.LabelEncoder() >>> le.fit([1, 2, 2, 6]) LabelEncoder() >>> le.classes_ array([1, 2, 6]) >>> le.transform([1, 1, 2, 6]) array([0, 0, 1, 2]...) >>> le.inverse_transform([0, 0, 1, 2]) array([1, 1, 2, 6])也可以对非数值型的对象进行编码(这些对象必须可相互比较)转化为数值型标签
>>> le = preprocessing.LabelEncoder() >>> le.fit(["paris", "paris", "tokyo", "amsterdam"]) LabelEncoder() >>> list(le.classes_) ['amsterdam', 'paris', 'tokyo'] >>> le.transform(["tokyo", "tokyo", "paris"]) array([2, 2, 1]...) >>> list(le.inverse_transform([2, 2, 1])) ['tokyo', 'tokyo', 'paris']LabelEncoder官方地址
作用:将特征缩放到指定范围中,默认是在0-1之间
若是给MinMaxScaler提供一个明确的feature_range=(min,max),完整公式是:
X_std = (X - X.min(axis=0))/(X.max(axis=0)-X.min(axis=0)) #max 是feature_range中的max,min是feature_range中的min X_scaled = X_std * (max - min) + min参数
feature_range:设置缩放范围,默认是(0,1)copy:和上面一样,不赘述示例
将数据矩阵缩放到[0-1]范围 >>> X_train = np.array([[ 1., -1., 2.], ... [ 2., 0., 0.], ... [ 0., 1., -1.]]) # 一种写法 >>> min_max_scaler = preprocessing.MinMaxScaler() >>> X_train_minmax = min_max_scaler.fit_transform(X_train) >>> X_train_minmax array([[ 0.5 , 0. , 1. ], [ 1. , 0.5 , 0.33333333], [ 0. , 1. , 0. ]]) #第二种写法 >>>min_max_scaler = preprocessing.MinMaxScaler(feature_range=(0,1)) >>>X_train_minmax = min_max_scaler.fit(X_train_minmax) >>>X_train_minmax.transform(X_train_minmax) array([[ 0.5 , 0. , 1. ], [ 1. , 0.5 , 0.33333333], [ 0. , 1. , 0. ]])MinMaxScaler官网文档