机器学习---数据预处理01

学习目标:

机器学习----数据预处理

学习内容:

1、 均值移除、范围缩放 2、归一化 3、二值化 4、 独热编码、标签编码

学习记录:

  • 均值移除

# 均值移除(标准化)
# 均值0标准差1
import numpy as np
import sklearn.preprocessing as sp

raw_samples = np.array([
    [17, 90, 4000],
    [20, 80, 5000],
    [23, 75, 5500]
])
result = sp.scale(raw_samples)  # 每一列均值为0标准差为1
print(result)
  • 范围缩放

import numpy as np
import sklearn.preprocessing as sp

# 范围缩放(特征值缩放)
raw_samples = np.array([
    [17, 90, 4000],
    [20, 80, 5000],
    [23, 75, 5500]
])
# 创建MINMAX缩放器
mms = sp.MinMaxScaler(feature_range=(0, 1))
# 调用mms对象的方法执行缩放操作,返回缩放过后的结果
result = mms.fit_transform(raw_samples)
print(result)
  • 归一化

# 归一化(特征值的占比)
import numpy as np
import sklearn.preprocessing as sp

ary = np.array([
    [10, 21, 5],
    [2, 4, 1],
    [11, 18, 18]
])
# 归一化
result = sp.normalize(ary, norm='l1')
# norm-范数。'l1'-向量中各元素绝对值之和;'l2'-向量中各元素平方和
print(result)
  • 二值化

import numpy as np
import sklearn.preprocessing as sp

# 二值化(比如图形边缘识别)
# 根据事先给定的阈值,用0和1表示特征不高于或高于阈值

ary = np.array([
    [10, 21, 5],
    [2, 4, 1],
    [11, 18, 18]
])
# 给定阈值,获取二值化器
bin = sp.Binarizer(threshold=10)
result = bin.transform(ary)
print(result)
  • 独热编码

import numpy as np
import sklearn.preprocessing as sp

#独热编码(对特征值进行编码)
samples=np.array([
    [1,3,2],
    [7,5,4],
    [1,8,6],
    [7,3,9]
])
#创建独热编码器,sparse-是否使用紧缩格式(稀疏矩阵),当采用稀疏矩阵时返回所以1的位置;dtype-数据类型
ohe=sp.OneHotEncoder(sparse=False,dtype='int32')
result=ohe.fit_transform(samples)
print(result)
  • 标签编码

# 标签编码
import numpy as np
import sklearn.preprocessing as sp

raw_sample=np.array(['zhao','qian','sun','li','zhou',
                     'li','qian','zhao','wu','wu'])
#获取标签编码器
lbe=sp.LabelEncoder()
#调用fit_transform方法训练并为原始样本矩阵进行标签编码
result=lbe.fit_transform(raw_sample)
#根据标签编码的结果反查字典,得到原始数据矩阵
sample=lbe.inverse_transform(result)

你可能感兴趣的:(机器学习,机器学习,python,人工智能)