Opencv4.0学习记录(Day18 图像像素类型转换与归一化)

特征归一化是数据预处理的重要步骤,它将数据缩放到[0,1]区间,有助于消除数值差异,提高梯度下降效率,尤其对线性回归、逻辑回归等模型至关重要。归一化可以通过min-max标准化实现,能够加快求解速度,提高如KNN等模型的精度。在实际应用中,归一化是优化模型性能的关键技术之一。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、什么是特征归一化?
        数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权
其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。

2、为什么要进行特征归一化?
(1)对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内。
(2)从经验上说,归一化是让不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性哪些模型需要做归一化?
1)需要使用梯度下降的模型要做归一化——因为不做归一化会使收敛的路径程z字型下降,导致收敛路径太慢,而且不容易找到最优解
那就显而易见了,比如说线性回归、逻辑回归、gbdt等

归一化的几种方法

min-max标准化

概念:对原始数据进行线性变换,使得结果在[0,1]中间。 (max最大值,min最小值)
3、特征归一化的好处

1)归一化后加快了梯度下降求最优解的速度;

2)归一化有可能提高精度(如KNN)

void QuickDemo::norm_demo(Mat &image) {
	Mat dst;
	cout << "数据类型:" << image.type() << endl;
	image.convertTo(image, CV_32F);//数据类型转换,将8位字符型转换为32浮点型
	cout << "数据类型:" << image.type() << endl;
	normalize(image, dst, 1.0, 0, NORM_MINMAX);//将图片进行归一化处理
	cout << "数据类型:" << dst.type() << endl;
	imshow("图像归一化",dst);


}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值