机器学习——SVM之python实现数据样本标准化和归一化

目录

一、标准化和归一化的目的

1、标准化

2、归一化

二、标准化和归一化常用的理论公式

1、归一化

2、标准化

三、python实现SVM样本数据标准化和归一化

1、标准化

2、归一化


本文源代码:《机器学习——支持向量机SVM之python实现简单实例一

一、标准化和归一化的目的

1、标准化(scale)

将每个数据特征数据均值变为0,标准差变为1

标准化的目的是为了下一步数据的处理提供方便,而进行数据缩放等变化

 

  数据的标准化是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。

    目前数据标准化方法有多种,归结起来可以分为直线型方法(如极值法、标准差法)、折线型方法(如三折线法)、曲线型方法(如半正态性分布)。不同的标准化方法,对系统的评价结果会产生不同的影响,然而不幸的是,在数据标准化方法的选择上,还没有通用的法则可以遵循。

2、归一化(normalization)

1 把数变为(0,1)或者(-1,1)之间的小数

归一化的目的是为了消除不同数据之间的量纲,方便数据比较和共同处理
        主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速,应该归到数字信号处理范畴之内。
2 把有量纲表达式变为无量纲表达式
        归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。 比如,复数阻抗可以归一化书写:Z = R + jωL = R(1 + jωL/R) ,复数部分变成了纯数量了,没有量纲。
另外,微波之中也就是电路分析、信号系统、电磁波传输等,有很多运算都可以如此处理,既保证了运算的便捷,又能凸现出物理量的本质含义。

实际上是如下图所示的决策边界比较合理,这就需要通过标准化来进行实现,支持向量4个

 

二、标准化和归一化常用的理论公式

具体怎么计算一个矩阵的均值和方差网上很多不再赘述

1、归一化

2、标准化

三、python实现SVM样本数据标准化和归一化

建议自己按照公式进行编程

1、标准化

 

标准化的公式很简单,步骤如下

1.求出各变量(指标)的算术平均值(数学期望)xi和标准差si ;
2.进行标准化处理:
zij=(xij-xi)/si
其中:zij为标准化后的变量值;xij为实际变量值。
3.将逆指标前的正负号对调。
标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。

 

常用

from sklearn import preprocessing
import numpy as np
......
x_scaled = preprocessing.scale(x)#x是要进行标准化的样本数据
......

除了用scale函数,还可以用以下几种方法对数据进行标准化

#样本数据归一化,标准化
from sklearn.preprocessing import StandardScaler
standardscaler = StandardScaler()
#对数组x遍历,对每一个样本进行标准化
standardscaler.fit(x)
#返回类StandardScaler()<class'sklearn.preprocessing._data.StandardScaler'>
x_standard = standardscaler.transform(x)#返回标准化后的样本集
def z_score(x, axis):
    x = np.array(x).astype(float)
    xr = np.rollaxis(x, axis=axis)
    xr -= np.mean(x, axis=axis)
    xr /= np.std(x, axis=axis)
    # print(x)
    return x
def standardize(x):
	return (x - np.mean(x))/(np.std(x))

 

2、归一化

def normalize(x):
	return (x - np.min(x))/(np.max(x) - np.min(x))

 

  • 10
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
遥感图像分类是利用遥感技术获取的图像数据进行分类和识别,以实现对地物特征的自动提取和识别。支持向量机(Support Vector Machine, SVM)是一种机器学习算法,可用于遥感图像分类。 在Python实现遥感图像分类SVM可以通过使用Scikit-learn库来实现。下面是一个简单的步骤: 1. 数据准备:首先,需要准备训练数据集和测试数据集。训练数据集应包括一系列已经分类好的图像样本和它们对应的标签,测试数据集用于验证分类器的准确性。 2. 特征提取与选择:对于遥感图像分类,我们可以使用各种特征提取方法,如纹理特征、形状特征、光谱特征等。这些特征可用于描述地物的不同属性。选择适当的特征对分类器的准确性非常重要。 3. 数据预处理:在进行SVM分类之前,需要对数据进行预处理。这包括对数据进行标准化归一或者正规等操作,以确保数据处于相似的数值范围内。 4. 模型训练与分类:使用Scikit-learn库中的svm模块,可以通过简单的几行代码来实现SVM分类器的训练和分类过程。可以选择不同的核函数(如线性核、多项式核、高斯核等)来适应不同的遥感图像分类问题。 5. 模型评估与优:使用测试数据集对分类器进行评估,可以使用各种评估指标如准确性、召回率、精确率等来评估分类器的性能。根据评估结果,可以调整模型参数,进一步优分类器的性能。 在实现过程中,还可以进一步优遥感图像分类SVM模型,比如使用交叉验证方法来选择最佳参数,或者采用特征选择算法来选择最具代表性的特征,以提高分类器的准确性和性能。 总之,使用Python中的Scikit-learn库可以很方便地实现遥感图像分类SVM模型。这需要先准备好数据集,然后进行特征提取和选择,数据预处理,模型训练与分类,最后对模型进行评估与优

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

有情怀的机械男

你的鼓励将是我最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值