首页 > 其他 > 详细

特征处理

时间:2021-04-02 12:26:09      阅读:12      评论:0      收藏:0      [点我收藏+]

标准化

#数据标准化是将数据按比例缩放,使其落入到一个小的区间内,标准化后的数据可正可负,但是一般绝对值不会太大,一般是z-score标准化方法:减去期望后除以标准差。
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import MinMaxScaler
from matplotlib import gridspec
import numpy as np
import matplotlib.pyplot as plt
cps = np.random.random_integers(0, 100, (100, 2))  #随机生成数值在0-100间100*2的矩阵
 
ss = StandardScaler()                               #标准化类
std_cps = ss.fit_transform(cps)                     #不仅计算训练数据的均值和方差,还会基于计算出来的均值和方差来转换训练数据,从而把数据转换成标准的正太分布

gs = gridspec.GridSpec(5,5)                         #生成5行5列的gs
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()

归一化

 

#把数值放缩到0到1的小区间中(归到数字信号处理范畴之内),一般方法是最小最大规范的方法:min-max normalization
from sklearn.preprocessing import MinMaxScaler
import numpy as np

data = np.random.uniform(0, 100, 10)[:, np.newaxis]     #生成0-100以内的10个数组成10行一列的矩阵
mm = MinMaxScaler()                                     #归一化对象
mm_data = mm.fit_transform(data)                        #归一化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/XiaoGao128/p/14609792.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!