SKLEARN--数据预处理

1.数据标准化(去均值和方差按比例缩放)

  • 标准化
import numpy as np
from sklearn import preprocessing
data = np.array([[ 1., 100.,  -7],
              [ 2.,  -50.,  10],
              [ 0.,  200, 200]])
             
#标准化去均值和方差按比例缩放
model = preprocessing.StandardScaler()
res = model.fit_transform(data)
res

在这里插入图片描述

  • 将特征缩放到指定范围(默认是0-1)
import numpy as np
from sklearn import preprocessing
data = np.array([[ 1., 100.,  -7],
              [ 2.,  -50.,  10],
              [ 0.,  200, 200]])
             
model = preprocessing.MinMaxScaler(feature_range=(-1, 1))
res = model.fit_transform(data)
res

在这里插入图片描述

2.归一化 缩放单个样本以具有单位范数 的过程。如果你计划使用二次形式(如点积或任何其他核函数)来量化任何样本间的相似度,则此过程将非常有用。

import numpy as np
from sklearn import preprocessing
data = np.array([[ 1., 100.,  -7],
              [ 2.,  -50.,  10],
              [ 0.,  200, 200]])
#方法一
res = preprocessing.normalize(data, norm = 'l2')
res 

#方法二
model = preprocessing.Normalizer()
res = model.transform(data)
res        

在这里插入图片描述

  • 相同数据的归一化后的值是一样的,可以用于查看相似度

3.二值化(可以指定阈值)

import numpy as np
from sklearn import preprocessing
data = np.array([[ 1., 100.,  -7],
              [ 2.,  -50.,  10],
              [ 0.,  200, 200]])
#二值化
model = preprocessing.Binarizer(threshold=10)#>10才是1
res = model.transform(data)
res

在这里插入图片描述

4.分类编码(one-hot)

import numpy as np
from sklearn import preprocessing
data = np.array([[0, 0, 3], 
              [1, 1, 0], 
              [0, 2, 1],
              [1, 0, 2]])
model = preprocessing.OneHotEncoder()
model.fit(data)
res = model.transform(np.array([[1, 2, 3]]))
res.toarray()

在这里插入图片描述

  • 可以用作自定义one-hot
import numpy as np
from sklearn import preprocessing
c = [['one'],['two'], ['three']]
model = preprocessing.OneHotEncoder()
res9_1 = model.fit(c)
res9_2 = model.transform([['one'], ['two']])
res9_2.toarray()

在这里插入图片描述

5.缺失值插补

#缺失值插补
import numpy as np
from sklearn import preprocessing
from sklearn.preprocessing import Imputer
imp = Imputer(missing_values='NaN', strategy='mean', axis=0)#np中0-列, 1-行
imp.fit_transform([[1, 2, 5], 
                   [np.nan, 3, 7], 
                   [7, 6, 10]])

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值