system: [SYSTEM]

user: 3. 数据预处理方法设计 3.1. 相关概念 现实世界中数据大体上都是不完整，不一致的脏数据，无法直接进行数据挖掘，或挖掘结果差强人意。为了提高数据挖掘的质量产生了数据预处理技术，数据预处理技术为进一步的数据分析做准备，其目的是将未加工的数据经过一系列步骤转化为适合分析的形式，主要处理策略包括数据清理、数据集成、数据转换、数据归约等过程。 图1. 车牌照识别数据数据库E-R关系图 1) 数据清理：处理原始数据中异常数据、重复数据、缺失数据等方法，包括数据分析、定义并执行清理规则、验证等步骤。 2) 数据集成：是把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中统一数据库储存的过程，主要解决数据的分布性和异构性的问题。 3) 数据变换：主要指对原始数据各属性进行规划化的相关操作，它涉及以下工作平滑、聚集、数据概化、规范化和特征构造。 4) 数据归约：是将数据仓库中海量数据进行整理归约，以较低的数据量保持数据完整性的过程。主要的处理策略包括维归约、数据压缩、数值归约和概念分层。其中，维归约(也可以称作特征选择)指的是删除与数据挖掘不相关的属性或合并相似属性，通常使用属性子集选择方法，找出最小属性集，使得数据概率分布尽可能接近原始数据分布，通过维归约能减少模式上的属性数目，使得模式更易于理解。数据压缩(也可以称作特征提取)通过对数据的压缩可以把数据储存在很小的空间中，在稀疏数据集的运算存储中应用较广，主要方法包括主成分分析、小波变换和多维标度法等。数值归约指利用替代数据以“较小的”数据表示形式来达到减小数据量的目的，其常用的方法有回归和对数线性模型、直方图、聚类及抽样等。概念分层是利用更高层次的概念替代低层次概念来定义数据属性的方法，概念化后的属性经过离散，其数据细节可能部分丟失，但其数据更有意义、更容易被理解。 3.2. 车牌照识别数据的预处理方法 在海量的原始车牌照识别数据中，由于调查点上的设备工作、人工操作、交通状况以及天气因素等原因的影响，很难确保数据的获取质量，往往存在冗杂数据、重复数据、缺失数据及错误数据等，车牌照识别数据主要异常情况如表1所示 [ 6 ] 。同时，在实际应用中，数据来自众多系统，具有多种形式和类型，其总是杂乱无章、不完全的，原有数据特征有时不能足够地体现隐藏在其后的规律，将严重影响到数据的实际应用。因此，有必要通过预处理来提高数据的“质量”。 根据车牌照识别数据自身特点来看，车牌照识别数据本身来源于不同位置的检测卡口设备，这样在每个调查点都会形成几个车牌照数据文件，除次之外，每天采集到的车牌照识别数据都是数以万计的，具有海量的数据规模，并且每条数据不仅是对车牌号的描述，同时包含车型、调查点、日期等信息具有多个维度，同时，由于检测设备的局限性，识别到的数据不可避免的会存在数据错误、数据漏检等问题。针对车牌照识别数据的特点和存在的问题，我们设计了一种基于mysql数据库和C#的数据预处理方法，该方法可以有效地对车牌照识别数据进行汇总、计算、校验等操作，具体方法如下： Table 1 Abnormal situation of license plate identification dat 主要异常情况 样例 归类 设备漏检 车辆经过时未被检测到 数据缺失 数据乱码 车牌号“&@！” 数据错误 检测错误 车牌号“桂A281F4”识别成“桂A281P5” 数据逻辑关系混乱 车辆的时空关系不合理 表1. 车牌识别数据的异常情况 Step 1：数据集成 通常情况下车牌照识别系统可能涉及数十个甚至上百个信息采集点，就一个采集点而言，在正常交通状态下，平均每个车道每3秒通过一辆机动车，按3车道计算，每1秒钟便会产生两条记录。我们需要采用数据库技术对所有采集点的多种数据类型进行汇总和信息计算处理，数据库可以通过SQL语言很方便地对不符合规格的异常数据进行校验、清洗、补充，以最大限度地满足数据处理的基本需求。一条车牌照识别数据包括：序号、日期、车牌号、车型、调查点编号、交叉口、流向、通过时间、备注等信息，针对车牌照识别数据结构，本文设计的车牌照识别数据库由城区编码数据表、道路信息数据表、检测点数据表、检测车辆数据表4个表组成。图1为本文设计的车牌照识别数据库的E-R关系图； Step 2：数据归约 车牌识别数据即所有车辆的检测记录集合，其包含多种属性，根据不同任务的需求，可以删除与任务不相关的属性或合并相似属性，即对车牌识别数据进行维归约。例如，基于车牌照识别数据的车辆出行轨迹挖掘算法中利用到的属性数据为车牌号、车牌号类型、检测时间、车辆类型、设备点位地址、设备点位编号、行驶方向及车道编号8项属性，其他的属性数据可作为“冗杂”数据剔除掉。同时，由于设备点位地址及设备点位编号均表征设备的空间信息，可进行合并，后期算法统一采用设备点位编号。 Step 3：数据清理 在车牌照识别数据采集过程中，受到设备识别率、信号传输干扰、套牌车等的影响，存在设备漏检、数据乱码、检测错误、数据逻辑关系混乱等问题。针对数据乱码、检测错误2种数据异常情况，传统处理方法会将车牌照识别数据舍去，但若问题车牌总量较多，舍弃问题车牌照识别数据将会对数据处理结果的准确性造成很大的影响。为充分利用问题车牌照识别数据，可基于调查点之间相邻关系和车辆途经调查点之间的时距关系，采用模糊匹配中的编辑距离算法来校核问题车牌。编辑距离是针对二个字符串的差异程度的量化量测，如sun到son编辑距离为1，而foot到feet的编辑距离即为2，编辑距离越小，相似度越高 [ 7 ] 。有如下计算公式： d ( i ， j ) = { 0 min ( d ( i − 1 ， j ) + 1 ， d ( i ， j − 1 ) + 1 ， d ( i − 1 ， j − 1 ) ) min ( d ( i − 1 ， j ) + 1 ， d ( i ， j − 1 ) + 1 ， d ( i − 1 ， j − 1 ) + 1 ) i = 0 or j = 0 x i = y i x i ≠ y i (1) S = 1 − d ( i ， j ) / L (2) 式中： S 为相邻检测点之间的车牌相似度； d ( i ， j ) 为相邻检测点之间的车牌匹配编辑距离，其中 d ( i − 1 ， j ) + 1 代表字符串2插入一个字母才与字符串1相同， d ( i ， j − 1 ) + 1 代表字符串1删除一个字母才与字符串2相同，然后当 x i = y i 时，不需要代价，所以和上一步 d ( i − 1 ， j − 1 ) 代价相同，否则+1，接着 d ( i ， j ) 是以上三者中最小的一项； L 为车牌识别字符串长度。 现有车牌识别技术达不到100%的精确识别，我们在进行车牌识别匹配时，需要设置一个阈值，只要两个车牌相似度在阈值范围内可视为同一车牌，车牌模糊匹配流程如图2所示。 图2. 车牌模糊匹配流程图 数据乱码、检测错误2种数据异常情况在进行模糊匹配后，仍存在问题的数据，采取删除操作，删除方法考虑车牌号规则约束，车牌号约束条件包括：1) 常规车牌号仅允许以汉字开头，后面可录入六个字符，由大写英文字母和阿拉伯数字组成。2) 最后一个为汉字的车牌允许以汉字开头，后面可录入六个字符，前五位字符，由大写英文字母和阿拉伯数字组成，而最后一个字符为汉字，汉字包括“挂”、“学”、“警”、“港”、“澳”。3) 新军车牌以两位为大写英文字母开头，后面以5位阿拉伯数字组成。 而设备漏检和数据逻辑关系混乱2种异常数据需要借助车辆的路径数据进行识别，由于缺乏其他有效的信息对其进行还原，故本文的预处理主要针对数据乱码、检测错误2种数据异。 Step 4：数据变换 车牌识别数据中车牌号、设备点位地址、设备点位编号的字符串均比较长，占用储存空间比较大，我们采用数据编码的方式来表示车牌号、设备点位地址、设备点位编号的字符串达到减少数据量的目的。例如一个三位数编码000~999，唯一并简洁标识1000个不同条目，明显比每一条用语言描述占用空间少。