第十三讲 数据变换

数据变换是数据准备的关键步骤,包括数据平滑、聚集、概化和规范化。数据规范化通过Min-Max、Z-Score和小数定标方法进行,其中Min-Max将数据映射到[0,1],Z-Score保持数据不受量级影响,小数定标确保数据在[-1,1]。Python的SciKit-Learn库提供了数据规范化的实现,并且还支持多种数据挖掘任务。" 129034675,1510383,华为OD机试Python箱子摆放解题解析,"['华为', 'Python语言实现', '编程题目', '算法', '数据结构']

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

数据变换是数据准备的重要环节,它通过数据平滑、数据聚集、数据概化和规范化等方式将数据转化成适用于数据挖掘的形式。

  1. 数据平滑:去除数据中的噪声,将连续的数据离散化。可采用分箱、聚类和回归的方式进行数据平滑。
  2. 数据聚集:对数据进行汇总,在SQL中有一些聚集函数,如:Max()、Sum().
  3. 数据概化:用较高的概念替换较低的概念。如:上海、北京、深圳可以概化为中国。
  4. 数据规范化:使属性数据按比例缩放,将原来的数据映射到一个新的特定区域中。
  5. 属性构造:构造出新的属性并添加到属性集中,即特征工程。如数据表中有每科的成绩,可以构造总和属性,用于后续的数据挖掘计算。

数据规范化的方法:

1、Min-Max规范化
将原始数据转化到[0,1]的空间中。公式:
新数值=(原数值-极小值)/(极大值-极小值)
2、Z-Score规范化
公式:
新数值=(原数值-均值)/标准差(方差的算术平方根)
优点在于算法简单,不受数据量级影响,易于比较,缺点在于结果没有实际意义。
3、小数定标规范化
小数点移动多少位取决于属性取值中的最大绝对值,最大绝对值有几位,小数点就向左移动几位,使之处于[-1,1]

使用Python的SciKit-Learn库进行数据规范化

1、Min-Max规范化
默认投射到[0,1]

from sklearn import preprocessing
import numpy as np
x=np.array([[0
### 关于《视觉SLAM十四》第二版中的Eigen相关内容 在《视觉SLAM十四》第二版中,虽然主要讨论的是SLAM系统的理论基础和技术实现[^3],但Eigen库作为线性代数运算的重要工具,在多个章节都有提及和应用。 #### Eigen简介及其重要性 Eigen是一个高效的C++模板库,用于矩阵和向量操作。对于SLAM系统而言,Eigen提供了必要的数学支持来处理各种几何变换、优化问题等。由于其高效性和易用性,Eigen成为许多计算机视觉和机器人项目不可或缺的一部分[^5]。 #### 安装与配置 当涉及到具体安装时,建议按照官方文档或可靠教程来进行设置。需要注意的是,在遇到编译错误时不应急于重新安装整个环境;很多时候可能是某些细节上的疏忽所致。例如,有经验表明,初次尝试失败后不必轻易放弃当前版本的Pangolin或其他依赖项,而应仔细排查其他可能的原因。 #### 应用实例 在实际编程实践中,Eigen被广泛应用于表示三维空间内的点云数据结构以及执行诸如旋转和平移之类的刚体运动学计算。下面给出一段简单的代码片段展示如何利用Eigen定义并操作齐次坐标系下的平移矩阵: ```cpp #include <iostream> #include <Eigen/Dense> using namespace std; using namespace Eigen; int main() { Vector3d t(0.7, 0.2, 1.5); // 平移向量 Matrix4d T = Matrix4d::Identity(); // 初始化单位矩阵 // 设置最后三列对应平移分量 T.block<3, 1>(0, 3) = t; cout << "Translation matrix:\n" << T << endl; return 0; } ``` 这段程序创建了一个基于输入参数`Vector3d t`构建出来的四维仿射变换矩阵`T`,其中包含了指定方向上移动的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值