数据挖掘实验报告-数据预处理

时间:2024.4.14

数据挖掘实验报告(一)

数据预处理

姓名:***

班级:计算机1304

学号:***

一、实验目的

1.学习均值平滑,中值平滑,边界值平滑的基本原理

2.掌握链表的使用方法

3.掌握文件读取的方法

二、实验设备

PC一台,dev-c++5.11

三、实验内容

数据平滑

假定用于分析的数据包含属性age。数据元组中age的值如下(按递增序):13, 15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25, 25, 30, 33, 33, 35, 35, 35, 35, 36, 40, 45, 46, 52, 70。使用你所熟悉的程序设计语言进行编程,实现如下功能(要求程序具有通用性):

(a) 使用按箱平均值平滑法对以上数据进行平滑,箱的深度为3。

(b) 使用按箱中值平滑法对以上数据进行平滑,箱的深度为3。

(c) 使用按箱边界值平滑法对以上数据进行平滑,箱的深度为3。

四、实验原理

使用c语言,对数据文件进行读取,存入带头节点的指针链表中,同时计数,均值求三个数的平均值,中值求中间的一个数的值,边界值将中间的数转换为离边界较近的边界值

五、实验步骤

代码

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#define DEEP 3

#define DATAFILE "data.txt"

#define VPT 10

//定义结构体

typedef struct chain{

int num;

struct chain *next;

}* data;

//定义全局变量

data head,p,q;

FILE *fp;

int num,sum,count=0;

int i,j;

int *box;

void mean();

void medain();

void boundary();

int main ()

{

//定义头指针

head=(data)malloc(sizeof(struct chain));

head->next=NULL;

/*打开文件*/

fp=fopen(DATAFILE,"r");

if(!fp)

exit(0);

p=head;

while(!feof(fp)){

q=(data)malloc(sizeof(struct chain));

q->next=NULL;

fscanf(fp,"%d",&q->num); /*读一个数据*/

p->next=q;

p=q;

count++;

}

/* 关闭文件 */

fclose(fp);

//输出

printf("源数据为:\n");

printf("共%d箱%d个数据\n",count/DEEP,count);

p=head->next;

count=1;

num=1;

while(p!=NULL){

if(count==1)printf("箱%d:",num);

if(count==DEEP){

printf("%d\n",p->num);

num++;

count=1;

}

else{

printf("%d ",p->num);

count++;

}

p=p->next;

}

mean();

medain();

boundary();

scanf("%d",&i);

return 0;

}

//均值

void mean(){

printf("均值平滑后为:");

box=(int *)malloc(sizeof(int)*num);

p=head->next;

count=1;

num=0;

sum=0;

while(p!=NULL){

if(count==DEEP){

count=1;

sum=sum+p->num;

box[num]=sum/DEEP;

sum=0;

num++;

}

else{

sum=sum+p->num;

count++;

}

p=p->next;

}

for (i=0;i<num;i++){

printf("\n箱%d:",i+1);

for (j=0;j<DEEP;j++)

printf("%d ",box[i]);

}

p=head->next;

printf("\n离群值为:");

while(p!=NULL){

for(i=0;i<num;i++)

{

for (j=0;j<DEEP;j++)

{

if(abs(p->num-box[i])>(int)VPT)

{

printf("\n箱%d:",i+1);

printf("%d ",p->num);

}

p=p->next;

}

}

}

}

//中值

void medain(){

printf("\n中值平滑后为:");

p=head->next;

count=1;

num=0;

int mid;

while(p!=NULL){

if(count==DEEP){

box[num]=sum;

count=1;

num++;

}

else {

if(count==DEEP/2||count==DEEP/2+1)

if(DEEP%2){

if(count==DEEP/2+1)

sum=p->num;

}

else{

if(count==DEEP/2+1)

sum=(p->num+mid)/2;

else

mid=p->num;

}

count++;

}

p=p->next;

}

for (i=0;i<num;i++){

printf("\n箱%d:",i+1);

for (j=0;j<DEEP;j++)

printf("%d ",box[i]);

}

}

//边界值

void boundary(){

printf("\n边界值平滑后为:\n");

p=head->next;

count=1;

box=(int *)malloc(sizeof(int)*num*2);

num=0;

while(p!=NULL){

if(count==DEEP){

box[2*num+1]=p->num;

count=1;

num++;

}

else{

if(count==1) {

box[2*num]=p->num;

}

count++;

}

p=p->next;

}

p=head->next;

count=1;

num=0;

while(p!=NULL){

if(count==1)

printf("箱%d:",num);

if((p->num-box[2*num])>(box[2*num+1]-p->num)){

printf("%d ",box[2*num+1]);

}

else

printf("%d ",box[2*num]);

if(count==DEEP){

printf("\n");

count=0;

num++;

}

count++;

p=p->next;

}

}

实验数据文件:data.txt用空格分开

13 15 16 16 19 20 20 21 22 22 25 25 25 25 30 33 33 35 35 35 35 36 40 45 46 52 70

六、结果截图


第二篇:实验报告二


天津商学院学生实验报告

 开课实验室:5号实训楼608    开课时间 20## 年10 月 11  日      实验报告2013  年 11 月13  日 

1.每个实验项目一份实验报告。2.实验报告第一页学生必须使用规定的实验报告纸书写,附页用实验报告附页纸或A4纸书写,字迹工整,曲线要画在坐标纸上,线路图要整齐、清楚(不得徒手画)。3.实验教师必须对每份实验报告进行批改,用红笔指出实验报告中的错、漏之处,并给出评语、成绩,签全名、注明日期。4.待实验课程结束以后,要求学生把实验报告整理好,交给实验指导教师,加上实验课学生考勤及成绩登记表(见附件2)、目录和学院统一的封面(见附件3)后,统一装订成册存档。

                                共    页   第   页                        制表单位:设备处

更多相关推荐:
数据挖掘实验报告

数据挖掘实验报告K最临近分类算法学号311062202姓名汪文娟一数据源说明1数据理解选择第二包数据IrisDataSet共有150组数据考虑到训练数据集的随机性和多样性选择rowNo模3不等于0的100组作为...

数据挖掘实验报告

数据挖掘实验报告1实验序号1实验项目名称数据挖掘入门及C45算法数据挖掘实验报告2实验序号4实验项目名称Apriori

数据挖掘实验报告4

甘肃政法学院本科生实验报告四姓名贾燚学院计算机科学学院专业信息管理与信息系统班级10级信管班实验课程名称数据仓库与数据挖掘实验日期20xx年11月9日指导教师及职称朱正平实验成绩开课时间20xx20xx学年二学...

数据挖掘实验报告

数据挖掘实验报告药物研究专业学号姓名时间20xx1208数据挖掘实验报告药物分析一实验目的1学习数据挖掘的理论知识理解数据挖掘的目的和意义2熟悉SPSSClementine软件的功能并学习使用该软件对数据进行分...

数据挖掘实验报告

计算机科学与技术系数据挖掘实验报告姓名学号授课教师完成时间1数据挖掘实验报告评分2目录1数据挖掘综述411什么是数据挖掘412数据挖掘的功能413数据挖掘的一般流程52关联规则挖掘521什么是关联规则挖掘及Ap...

数据挖掘实验报告

机器学习与数据挖掘学生姓名学号6008专业计算机科学与技术班级计算机20xx班1实验内容1在C45算法中数据集大小与精度之间的关系2属性个数对该关系的影响2实验思路实验要求探究数据集大小与C45精度的关系以及数...

数据挖掘实验报告

数据挖掘实验报告班级学号姓名一实验目的掌握使用weka对数据进行apriori算法分类以及聚类的实现方法二实验内容对数据进行apriori算法分类和聚类的分析其功能为1apriori算法用该算法对一组关联规则进...

方1052-数据仓库与数据挖掘 实验报告

石家庄铁道大学四方学院学生实验报告书实验课程名称数据仓库与数据挖掘学生专业班级方1052信管学生学号学生姓名指导老师姓名刘桂贤20xx20xx学年第1学期1234567891011121314

数据仓库与数据挖掘实验报告3

数据仓库与数据挖掘课程实验报告2345678

数据仓库与数据挖掘实验报告

数据仓库与数据挖掘课程APRIORI算法学习一简介Apriori算法是一种挖掘关联规则的频繁项集算法其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集而且算法已经被广泛的应用到商业网络安全等各...

数据挖掘实验报告

数据挖掘实验报告以SQLServer20xx提供的Adventureworks数据库为商业智能解决方案的数据源20xx13050416武晓焱一实验目的1学习数据挖掘的理论知识理解数据挖掘的目的和意义2熟悉SQL...

知识发现与数据挖掘实验报告

知识发现与数据挖掘实验报告姓名xxx专业xxxxxx学号xxxxx20xx年8月15日实验一频繁模式挖掘算法Apriori算法一实验目的加强对Apriori算法的理解二实验内容编程实现Apriori算法加深对其...

数据挖掘实验报告(34篇)