feature scaling 特征缩放

训练模型流程

以SVM为例:
1. 求特征,并存为可识别的数据文件(训练集样本,训练集标签,测试集样本,测试集标签)
2. 特征缩放
3. 首选RBF核
4. 使用交叉验证+网格法选最优参数
5. 使用最优参数建模
6. 测试

里面最值得注意的有两步:

特征缩放

特征缩放的优点

在运用一些机器学习算法的时候不可避免地要对数据进行特征缩放(feature scaling),特征缩放可以使机器学习算法工作的更好。比如在K近邻算法中,分类器主要是计算两点之间的欧几里得距离,如果一个特征比其它的特征有更大的范围值,那么距离将会被这个特征值所主导。因此每个特征应该被缩放,比如将取值范围处理为0到1之间。而且在某些模型下,如果不进行缩放会使计算误差变大,比如 SVM 有内积运算,特征没有事先缩放处理,某些特征很大,会增大计算误差。

什么是特征缩放

特征缩放是用来标准化数据特征的范围。

特征缩放的一些方法
调节比例(Rescaling)

这种方法是将数据的特征缩放到[0,1]或[-1,1]之间。缩放到什么范围取决于数据的性质。对于这种方法的公式如下:
x′=(x−min(x))/(max(x)−min(x))
x是最初的特征值, x′是缩放后的值。

标准化(Standardization)

特征标准化使每个特征的值有零均值(zero-mean)和单位方差(unit-variance)。这个方法在机器学习地算法中被广泛地使用。例如:SVM,逻辑回归和神经网络。这个方法的公式如下:
x′=(x−x¯)/σ

matlab中可直接使用mapminmax
mapminmax Map matrix row minimum and maximum values to [-1 1].mapminmax processes input and target data by mapping it from its original range to the range [-1 1].
值得注意的是,
1)该函数针对行进行缩放。
2)当对训练集进行缩放后,同时要用同样的缩放方式对测试集进行缩放!
如缩放训练集[-10,10]—>[-1,1],那测试集[-11,8]—->[-1.1,0.8]而不是[-1,1]
因此,使用mapminmax示例:

[traindata,ps]=mapminmax(traindata');%同一个特征统一缩放
traindata=traindata';
testdata=mapminmax('apply',testdata',ps)'; 

几个要说明的函数接口:
[Y,PS] = mapminmax(X)
[Y,PS] = mapminmax(X,FP)
Y = mapminmax(‘apply’,X,PS)
X = mapminmax(‘reverse’,Y,PS)

用实例来讲解,测试数据 x1 = [1 2 4], x2 = [5 2 3];

>> [y,ps] = mapminmax(x1)
y =
   -1.0000   -0.3333    1.0000

ps = 
      name: 'mapminmax'
     xrows: 1
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z_shsf

来包瓜子嘛,谢谢客官~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值