处理数值型特征

多种原始数值型数据转换为机器学习算法所需特征的方法。

1. 特征的缩放

用sklearn的MinMaxScaler来缩放一个特征数组,将一个数值型特征的值缩放到两个特定的值之间。

import numpy as np
from sklearn import preprocessing

#创建特征
feature = np.array([[-500.5],
                   [-100.1],
                   [0],
                   [100.1],
                   [900.9]])

#创建缩放器
minmax_scale = preprocessing.MinMaxScaler(feature_range=(0,1))
#缩放特征的值
scaled_feature = minmax_scale.fit_transform(feature)
#查看特征
scaled_feature

—>

array([[0.        ],
       [0.28571429],
       [0.35714286],
       [0.42857143],
       [1.        ]])

2. 特征的标准化

对一个特征进行转换,使其平均值为0,标准差为1.

import numpy as np
from sklearn import preprocessing

#创建特征
x = np.array([[-1000.1],
                   [-200.2],
                   [500.5],
                   [600.6],
                   [9000.9]])

#创建缩放器
scaler = preprocessing.StandardScaler()
#转换特征
standardized = scaler.fit_transform(x)
#查看特征
standardized

—>

array([[-0.76058269],
       [-0.54177196],
       [-0.35009716],
       [-0.32271504],
       [ 1.97516685]])

3. 归一化观察值

对观察值的每一个特征进行缩放,使其拥有一致的范数。

使用normalizer并指定norm参数:

import numpy as np
from sklearn.preprocessing import Normalizer
#创建特征
features = np.array([[0.5,0.5],
              [1.1,3.4],
              [1.5,20.2],
              [1.63,34.4],
              [10.9,3.3]])

#创建归一化器
normalizer = Normalizer(norm= "l2")
#转换特征特征
normalizer.transform(features)

—>

array([[0.70710678, 0.70710678],
       [0.30782029, 0.95144452],
       [0.07405353, 0.99725427],
       [0.04733062, 0.99887928],
       [0.95709822, 0.28976368]])

Normalizer提供三个范数选项,默认值是欧式范数(Euclidean norm,L2范数):

∣ ∣ x ∣ ∣ 2 = x 1 2 + ⋅ ⋅ ⋅ + x n 2 ||x||_2 = \sqrt {x_1^2+···+x_n^2}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值