# 解决机器学习问题的相关的科学计算工具包
import sklearn.preprocessing as sp
均值移除( z-score标准化)
A = sp.scale(array)
范围缩放(Min-Max标准化)
raw_sample = np.array([
[17., 100., 4000],
[20., 80., 5000],
[23., 75., 5500]])
mms = sp.MinMaxScaler(feature_range(0,1))
result = mms.fit_transform(原始样呢矩阵)
# 手动计算
new_sample = []
for row in raw_sample.T:
min_val = row.min()
max_val = row.max()
# 整理所缩放线性关系所需要的矩阵:A与B
A = np.array([[min_val,1],[max_val,1]])
B = np.array([0,1])
# x = np.linalg.lstsq(A,B)[0]
x = np.linalg.solve(A,B)
newrow * x[0] +x[1]
new_sample.append(new_row)
print(np.array(new_sample).T)
归一化
result = sp.normalize(raw_sample,norm='l1')
二值化
# 给出阈值,获取二值化器(大于阈值为1,小于阈值为0)
bin = sp.Binarizer(threshole=阈值)
# 调用transform方法对原始样本矩阵进行二值化预处理操作
result = bin.transform(原始样本矩阵)
独热编码(One-Hot Encoding)
使用场景:计算相似度
# 创建一个独热编码器
ohe = sp.OneHotEncoder(sparse=是否采用紧缩格式,dtype=数据类型)
# 对演示样本矩阵进行处理,返回独热编码后的样本矩阵
result = ohe.fit_transform(原始样本矩阵)
# 方法二
encode_dict = ohe.fit(原始样本矩阵)
result = encode_dict.transform(原始样本矩阵)
标签编码
# 获取标签编码器
lbe = sp.LabelEncoder()
# 调用标签编码器的fit_transform方法训练并且为原始样本数组进行标签编码
reulet = lbe.fit_transform(原始样本特征数组)
# 根据标签编码的结果矩阵反查字典,得到原始数据矩阵
samples = lbe.inverse_transform(result)