数据挖掘实验一数据预处理 下载本文

内容发布更新时间 : 2024/9/22 11:25:00星期一 下面是文章的全部内容请认真阅读。

数据挖掘实验一数据预处理

实验一、 数据预处理

学院 计算机科学与软件学院

? 实验目的:

(1)熟悉 VC++编程工具和完全数据立方体构建、联机分析处理算法。 (2)浏览拟被处理的的数据,发现各维属性可能的噪声、缺失值、不一致

性等,针对存在的问题拟出采用的数据清理、数据变换、数据集成的具体算法。 (3)用 VC++编程工具编写程序,实现数据清理、数据变换、数据集成等功 能。

(4)调试整个程序获得清洁的、一致的、集成的数据,选择适于全局优化 的参数。

? 实验原理:

1 、数据预处理

现实世界中的数据库极易受噪音数据、遗漏数据和不一致性数据的侵扰,为 提高数据质量进而提高挖掘结果的质量,产生了大量数据预处理技术。数据预处 理有多种方法:数据清理,数据集成,数据变换,数据归约等。这些数据处理技 术在数据挖掘之前使用,大大提高了数据挖掘模式的质量,降低实际挖掘所需要 的时间。 2 、数据清理

数据清理例程通过填写遗漏的值,平滑噪音数据,识别、删除离群点,并解 决不一致来“清理”数据。 3 、数据集成 数据集成

数据集成将数据由多个源合并成一致的数据存储,如数据仓库或数据立方 体。

4 、数据变换

通过平滑聚集,数据概化,规范化等方式将数据转换成适用于数据挖掘的形 式。

5 、数据归约

使用数据归约可以得到数据集的压缩表示,它小得多,但能产生同样(或几 乎同样的)分析结果。常用的数据归约策略有数据聚集、维归约、数据压缩和数 字归约等。

三、 实验内容:

1 、主要代码及注释 头文件

#include #include #include #include using namespace std;

1 / 5

数据挖掘实验一数据预处理

1、建立存储结构 class Sales {

public:

string serial; int market; int posno; string date; int sn; int id; float num; float price; float total; void print() {

cout << serial<< \\} };

2、打开源 txt 文件,并创建保存的 txt 文件 ifstream infile(\/*string contents;*/ if(infile.fail()) { 7

cout << \}

ofstream outfile(\if(!outfile) {

cout<<\exit(1); }

3、访问 txt 文件中的数据

while(!infile.eof())//判断 txt 是否结束 {

infile >> sal[sal_size].serial >> sal[sal_size].market >> sal[sal_size].posno>> sal[sal_size].date>> sal[sal_size].sn>> sal[sal_size].id>> sal[sal_size].num>> sal[sal_size].price>> sal[sal_size].total; sal_size++; }

4、处理数据

(1)判断购买数量是否为负

2 / 5

数据挖掘实验一数据预处理

if (sal[i].num<0) {

sal[i].num=-sal[i].num; }

(2)统一日期为流水号前 8 位(既可以填补缺失值,又统一格式,同学们 也可以分步做,先填补缺失值再改成统一格式) sal[i].date.assign(sal[i].serial ,0,8);

(3)保存处理过的数据同时删除冗余数据(总额,POS 机号) outfile<

实验数据保存在1019、1020、1021三个txt文件中

? 实验结果:

处理前的数据(1019.txt,只列出了一部分):

处理过程:

处理后的部分数据:

3 / 5