实验03 特征处理(标准化、归一化、正则化)

参考博客:地址传送

实验记录,方便以后查阅

一丶实现代码与结果

实验一

#预处理方法
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import MinMaxScaler
from matplotlib import gridspec
import numpy as np
import matplotlib.pyplot as plt
#返回随机的整数,位于闭区间 [low, high] random_integers(low[, high, size])
#生成几个随机点
cps = np.random.random_integers(0, 100, (100, 2))
# 数据标准化
ss = StandardScaler()
std_cps = ss.fit_transform(cps)
 #使用GridSpec自定义子图 的大小 构建5×5的画布
gs = gridspec.GridSpec(5,5)
#创建画布
fig = plt.figure()
#在画布上创建不同的区域   区域的范围
ax1 = fig.add_subplot(gs[0:2, 1:4])
ax2 = fig.add_subplot(gs[3:5, 1:4])
 #绘制 图表中的点位
ax1.scatter(cps[:, 0], cps[:, 1])
ax2.scatter(std_cps[:, 0], std_cps[:, 1])
#绘制整张图
plt.show()

运行结果:

实验二

#引入预处理的函数
from sklearn.preprocessing import MinMaxScaler
import numpy as np
#均匀分布,随机生成下一个实数,在 [low, high) 范围内 样本6
# np.newaxis  插入新维度
data = np.random.uniform(0, 100, 10)[:, np.newaxis]
# 等同于 MinMaxScaler(feature_range = (1,3),copy = False)#范围改为1~3,对原数组操作
mm = MinMaxScaler()
# fit 和 transform 的结合 fit() 求得训练集X的均值,方差,最大值,最小值,这些训练集X固有的属性
# transform() 在fit的基础上,进行标准化,降维,归一化等操作
#fit_transform(trainData)对部分数据先拟合fit,找到该part的整体指标,如均值、方差、最大值最小值等等(根据具体转换的目的),然后对该trainData进行转换transform,从而实现数据的标准化、归一化等等
mm_data = mm.fit_transform(data)
#将标准化后的数据转换为原始数据
origin_data = mm.inverse_transform(mm_data)
print('data is ',data)
print('after Min Max ',mm_data)
print('origin data is ',origin_data)

运行结果:

实验三

X = [[1, -1, 2],
     [2, 0, 0],
     [0, 1, -1]]

# 使用L2正则化
from sklearn.preprocessing import normalize
l2 = normalize(X, norm='l2')
print('l2:', l2)

# 使用L1正则化
from sklearn.preprocessing import Normalizer
normalizerl1 = Normalizer(norm='l1')
l1 = normalizerl1.fit_transform(X)
print('l1:', l1)

运行结果:

原文地址:https://www.cnblogs.com/cxy0210/p/14542259.html