数据仓库与数据挖掘技术试题答案.docx

上传人:b****6 文档编号:16424612 上传时间:2023-07-13 格式:DOCX 页数:9 大小:389.75KB
下载 相关 举报
数据仓库与数据挖掘技术试题答案.docx_第1页
第1页 / 共9页
数据仓库与数据挖掘技术试题答案.docx_第2页
第2页 / 共9页
数据仓库与数据挖掘技术试题答案.docx_第3页
第3页 / 共9页
数据仓库与数据挖掘技术试题答案.docx_第4页
第4页 / 共9页
数据仓库与数据挖掘技术试题答案.docx_第5页
第5页 / 共9页
数据仓库与数据挖掘技术试题答案.docx_第6页
第6页 / 共9页
数据仓库与数据挖掘技术试题答案.docx_第7页
第7页 / 共9页
数据仓库与数据挖掘技术试题答案.docx_第8页
第8页 / 共9页
数据仓库与数据挖掘技术试题答案.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据仓库与数据挖掘技术试题答案.docx

《数据仓库与数据挖掘技术试题答案.docx》由会员分享,可在线阅读,更多相关《数据仓库与数据挖掘技术试题答案.docx(9页珍藏版)》请在冰点文库上搜索。

数据仓库与数据挖掘技术试题答案.docx

数据仓库与数据挖掘技术试题答案

数据仓库与数据挖掘技术

答案

一、简答

1.为什么需要对数据进行预处理?

数据预处理主要包括哪些工作(需要对数据进行哪些方面预处理)?

(1)现实世界的数据是杂乱的,数据多了什么问题会出现。

数据库极易受到噪音数据(包含错误或孤立点)、遗漏数据(有些感兴趣的属性缺少属性值或仅包含聚集数据)和不一致数据(在编码或者命名上存在差异)的侵扰,因为数据库太大,常常多达几G或更多。

进行数据预处理,提高数据质量,从而提高挖掘结果质量。

(2)数据预处理主要包括:

数据清理:

去除数据中的噪音、纠正不一致;数据集成:

将数据由多个源合并成一致的数据存储,如数据仓库或数据方;数据交换:

规范化或聚集可以改进涉及距离度量的挖掘算法精度和有效性;数据归约:

通过聚集、删除冗余特征或聚类等方法来压缩数据。

数据离散化:

属于数据归约的一部分,通过概念分层和数据的离散化来规约数据,对数字型数据特别重要。

2.什么叫有监督学习?

什么叫无监督学习?

监督学习(Supervisedlearning)是通过发现数据属性和类别属性之间的关联模式,并通过利用这些模式来预测未知数据实例的类别属性。

监督学习又称为分类Classification或归纳学习InductiveLearning。

无监督学习(Unsupervisedlearning)即聚类技术。

在一些应用中,数据的类别属性是缺失的,用户希望通过浏览数据来发现其的某些内在结构。

聚类就是发现这种内在结构的技术。

3.什么是数据仓库的星形模式?

它与雪花模式有何不同?

雪花模式与星形模式不同在于:

雪花模式的维表可能是规范化形式,以便减少冗余。

这种表易于维护,并节省存储空间,因为当维结构作为列包含在内时,大维表可能非常大。

然而,与巨大的事实表相比,这种空间的节省可以忽略。

此外,由于执行查询更多的连接操作,雪花结构可能降低浏览的性能。

这样系统的性能可能受影响。

因此,在数据仓库设计中,雪花模式不如星形模式流行。

二、写出伪代码

答:

(1)所有频繁项集为:

[E,K,O][K,M][K,Y]

(2)关联规则:

[O]->[E,K]1.0

[E,O]->[K]1.0

[K,O]->[E]1.0

[M]->[K]1.0

[Y]->[K]1.0

答:

a)决策树表示一种树型结构,它由它的分来对该类型对象依靠属性进行分类。

每个决策树可以依靠对源数据库的分割进行数据测试。

这个过程以递归的方式对树进行修剪。

当不能再分割时,递归完成。

因此决策树不会无限循环。

b)

c)0

d)size

e)Children,SIN,class

public class BayesClassifier 

{

    private TrainingDataManager tdm;//训练集管理器

    private String trainnigDataPath;//训练集路径

    private static double zoomFactor = 10.0f;

    /**

    * 默认的构造器,初始化训练集

    */

    public BayesClassifier() 

    {

        tdm =new TrainingDataManager();

    }

    /**

    * 计算给定的文本属性向量X在给定的分类Cj中的类条件概率

    * ClassConditionalProbability连乘值

    * @param X 给定的文本属性向量

    * @param Cj 给定的类别

    * @return 分类条件概率连乘值,即

    */

    float calcProd(String[] X, String Cj) 

    {

        float ret = 1.0F;

        // 类条件概率连乘

        for (int i = 0; i 

        {

            String Xi = X[i];

              ret *=ClassConditionalProbability.calculatePxc(Xi, Cj)*zoomFactor;

        }

        // 再乘以先验概率

        ret *= PriorProbability.calculatePc(Cj);

        return ret;

    }

    /**

    * 去掉停用词

    * @param text 给定的文本

    * @return 去停用词后结果

    */

    public String[] DropStopWords(String[] oldWords)

    {

        Vector v1 = new Vector();

        for(int i=0;i

        {

            if(StopWordsHandler.IsStopWord(oldWords[i])==false)

            {//不是停用词

                v1.add(oldWords[i]);

            }

        }

        String[] newWords = new String[v1.size()];

        v1.toArray(newWords);

        return newWords;

    }

    /**

    * 对给定的文本进行分类

    * @param text 给定的文本

    * @return 分类结果

    */

    @SuppressWarnings("unchecked")

    public String classify(String text) 

    {

        String[] terms = null;

        terms= ChineseSpliter.split(text, " ").split(" ");//中文分词处理(分词后结果可能还包含有停用词)

        terms = DropStopWords(terms);//去掉停用词,以免影响分类

        

        String[] Classes = tdm.getTraningClassifications();//分类

        float probility = 0.0F;

        List crs = new ArrayList();//分类结果

        for (int i = 0; i 

        {

            String Ci = Classes[i];//第i个分类

            probility = calcProd(terms, Ci);//计算给定的文本属性向量terms在给定的分类Ci中的分类条件概率

            //保存分类结果

            ClassifyResult cr = new ClassifyResult();

            cr.classification = Ci;//分类

            cr.probility = probility;//关键字在分类的条件概率

            System.out.println("In process

.");

            System.out.println(Ci + ":

" + probility);

            crs.add(cr);

        }

        //对最后概率结果进行排序

        java.util.Collections.sort(crs,new Comparator() 

        {

            public int compare(final Object o1,final Object o2) 

            {

                final ClassifyResult m1 = (ClassifyResult) o1;

                final ClassifyResult m2 = (ClassifyResult) o2;

                final double ret = m1.probility - m2.probility;

                if (ret < 0) 

                {

                    return 1;

                } 

                else 

                {

                    return -1;

                }

            }

        });

        //返回概率最大的分类

        return crs.get(0).classification;

    }

}

(1)最临近分类是基于要求的或懒散的学习法。

因为它存放所有训练样本,并且直至新的样本需要分类时才建立分类。

begin

初始化nxn距离矩阵D,初始化混淆矩阵C,设置t=0,TotAcc=0,NumIterations为要迭代次数。

计算所有输入样本和存储在D矩阵中的距离。

Fort=1toNumIterationsdo

Setc=0,Ntotal=0

将输入样本划分为k个同等大小的分组

Forfold=1tokdo

指定第fold个样本进行测试,并且使用原来训练样本。

设置Ntest为要测试样本数量。

SetNtotal=Ntotal+Ntest

Fori=1toNtestdo

基于样本

计算距离确定k个最邻近训练样本。

确定在k个最邻近样本中最频繁的分类标记

在w为真并且对于预测测试样本

分类标记为

时,对混淆矩阵C进行递增1存储为

如果

则在混淆矩阵对角线上加1,否则在非对角线上加1。

为混淆矩阵对角线元素时,使用

确定分类器的精确度。

计算

.最后计算

end

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2