(1)信息收集:根据确定的数据分析对象抽象出在数据分析中所需要的特征信息,然后选择合适的信息收集方法,将收集到的信息存入数据库。对于海量数据,选择一个合适的数据存储和管理的数据仓库是至关重要的。
(2)数据集成:把不同来源、格式、特点性质的数据在逻辑上或物理上有森让机地集中,从而为企业提供全面的数据共享。
(3)数据规约:执行多数的数据挖掘算法即使在少量数据上也需要很长的时间,而做商
业运营数据挖掘时往往数据量非常大。数据规约技术可以用来得到数据集的规约表示,它小得多,但仍然接近于保持原数据的完整性,并且规约后执行数据挖掘结果与规约前执行结果相同或几乎相同。
(4)数据清理:在数据库中的数据有一些是不完整的(有些感兴趣的属性缺少属性值),含噪声的(友腔包含错误的属性值),并且是不一致的(同样的信息不同的表示方式),因此需要进行数据清理,将完整、正确、一致的数据信息存入数据仓库中。不然,挖掘的结果会差强人意。
(5)数据变换:通过平滑聚集,数据概化,规范化等方式将数据转换成适用于数据挖掘的形式。对于有些实数型数据,通过概念分层和数据的离散化来转换数据也是重要的。
(6)数据挖掘过程:根据数据仓库中的数据信息,选择合适的分析工具,应用统计方法、事例推理、决策树、规则推理、模糊集、甚至神经网络、遗传算法的方法处理信息,得出有用的分析信息。
(7)模式评估:从商业角度,由行业专家来验证数据挖掘结果的正确性。
(8)知识表示:将数据挖掘所得到的分析信息以可视化的方式呈现给用户,或作为新的知识存放在知识库中,供其他应用程序使用。
数据挖掘过程是一个反复循环的过程,每一个步骤如果没有达到预期目标,都需要回到前面的步骤,重新调整并执行。不是每件数据挖掘的工作都需要这里列出的每一步,例如在某个工作中不存在多个数据源的时候,步骤(2)数据集成的步骤便可以省略。步骤(3)数据规约(4)数据清理(5)数据变换又合称数据预处理。在数据挖掘中,至少60%的费用可能要花在步骤(1)信息收集阶段,而至少 60%以上的精力和时间是花在此告局数据预处理过程上。
第一题结果:
#include <stdio.h>
#define DATALEN 27
int data[DATALEN]=
{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}
int nSmoothByMeans[DATALEN]={0}
int nSmoothByMedians[DATALEN]={0}
int nSmoothByBoundaries[DATALEN]={0}
void SmoothByMeans(int depth)
{
int i=0,j=0
int sum=0 , mean=0
for(i=0i<27i=i+3)
{
for (j=ij<i+depthj++)
{
sum+=data[j]
}
mean = sum/depth
for (j=ij<i+depthj++)
{
nSmoothByMeans[j]=mean
}
sum = 0
}
}
void SmoothByMedians(int depth)
{
int i=0,j=0
for(i=1i<27i=i+3)
{
for (j=i-1j<i+depthj++)
{
nSmoothByMedians[j]=data[i]
}
}
}
void 裤敏SmoothByBoundaries(int 核纯斗depth)
{
int i=0,j=0
for(i=0i<27i++)
{
nSmoothByBoundaries[i]=data[i]
}
for (i=1i<27i=i+3)
{
if (data[i]-data[i-1]>data[i+1]-data[i])
{
nSmoothByBoundaries[i]=data[i+1]
}
else
{
nSmoothByBoundaries[i]=data[i-1]
}
}
}
void main()
{
int depth = 3
int i=0
int j=0
SmoothByMeans(3)
SmoothByMedians(3)
SmoothByBoundaries(3)
printf("原始数据:\n")
for(i=0,j=1i<27i=i+3,++j)
{
printf("Bin %d : %d,%d,%d\n",
j,data[i],data[i+1],data[i+2])
}
printf("使用平均值:\n")
for(i=0,j=1i<27i=i+3,++j)
{
printf("Bin %d : %d,%d,%d\n",
j,nSmoothByMeans[i],nSmoothByMeans[i+1],nSmoothByMeans[i+2])
}
printf("使用中值:\n")
for(i=0,j=1i<27i=i+3,++j)
{
printf("Bin %d : %d,%d,%d\n",
j,nSmoothByMedians[i],nSmoothByMedians[i+1],nSmoothByMedians[i+2])
}
printf("使用边界值:\n")
for(i=0,j=1i<27i=i+3,++j)
{
printf("Bin %d : %d,%d,%d\n"改磨,
j,nSmoothByBoundaries[i],nSmoothByBoundaries[i+1],nSmoothByBoundaries[i+2])
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)