参考博客:地址传送
实验记录,方便以后查阅
一丶实现代码与结果
实验一
#预处理方法 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)