河北工业大学大数据挖掘实验报告材料

  • 格式:doc
  • 大小:631.00 KB
  • 文档页数:67

下载文档原格式

  / 67
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一数据预处理

一、实验目的

1、熟悉 VC++编程工具和完全数据立方体构建、联机分析处理算法。

2、浏览拟被处理的的数据,发现各维属性可能的噪声、缺失值、不一致性

等,针对存在的问题拟出采用的数据清理、数据变换、数据集成的具体算法。

3、用 VC++编程工具编写程序,实现数据清理、数据变换、数据集成等功能。

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

参数。

5、写出实验报告。

二、实验原理

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

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

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

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

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

三、实验容和步骤

1、实验容

1、用VC++编程工具编写程序,实现数据清理、数据变换、数据集成等功能,并在实验报告中写出主要的预处理过程和采用的方法。

2、产生清洁的、一致的、集成的数据。

3、在试验报告中写明各主要程序片段的功能和作用。

2、实验步骤

1)仔细研究和审查数据,找出应当包含在你分析中的属性或维,发现数据中的一些错误、不寻常的值、和某些事务记录中的不一致性。

2)进行数据清理,对遗漏值、噪音数据、不一致的数据进行处理。例如:1、日期中的缺失值可以根据统一的流水号来确定。2、购买的数量不能为负值。

3)进行数据集成和数据变换和数据归约,将多个数据源中的数据集成起来,减少或避免结果数据中的数据冗余或不一致性。并将数据转换成适合挖掘的形式。

例如:

1、进行完数据清理后发现购买数量、销售价格、总额是相互关联的项可以去

掉总额。2、三个流水表日期的格式不一样应统一成相同的日期格式。

3、门号和pos 机一样,可以去掉一个。

4、附加:同一购物篮的商品序号应该是顺序递增的。

四、实验结果

源程序:

#include

#include

#include

#include

using namespace std;

class Sales

{

public:

string serial;

int market;

int posno;

string date;

int sn;

int id;

float num;

float price;

float total;

void print()

{

cout<

<

}

};

int main()

{

ofstream outfile("fl.txt",ifstream::app);

if (!outfile)

{

cout<<"open error!"<

exit(1);

}

char name[50];

ifstream infile;

cout<<"输入要打开的txt文件名:1019.txt,1020.txt,1021.txt"<

//for (int k=0;k

//{

//cout<<"输入要打开的第"<

cin>>name;

infile.open(name,ios::in);//ifstream infile("1019.txt",ios::in);

cin.clear();

/*string contents;*/

if (infile.fail())

{

cout<<"error open!"<

}

//ofstream outfile("fl.txt",ofstream::app);

//ofstream outfile("fl.txt",ios::out);

//if (!outfile)

//{

//cout<<"open error!"<

//exit(1);

//}

Sales sal[13000];

int sal_size=0;

while (!infile.eof())

{

infile>>sal[sal_size].serial>>sal[sal_size].market>>sal[sal_size].posno>>sal[sal_siz e].date>>

sal[sal_size].sn>>sal[sal_size].id>>sal[sal_size].num>>sal[sal_size].price>>sal[sal_ size].total;

sal_size++;

}

cout<<"文档"<

//char Tc;

//Tc=getchar();

//cout<

int I;

for (int i=0; i

{

//sal[i].print();

if (sal[i].num<0)

{

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

}

sal[i].date.assign(sal[i].serial,0,8);

outfile<