数据仓库与及数据挖掘文本分类实验报告
数据仓库与数据挖掘实验报告

一、上机目的及内容目的:1.理解数据挖掘的基本概念及其过程;2.理解数据挖掘与数据仓库、OLAP之间的关系3.理解基本的数据挖掘技术与方法的工作原理与过程,掌握数据挖掘相关工具的使用。
内容:将创建一个数据挖掘模型以训练销售数据,并使用“Microsoft 决策树”算法在客户群中找出购买自行车模式。
请将要挖掘的维度(事例维度)设置为客户,再将客户的属性设置为数据挖掘算法识别模式时要使用的信息。
然后算法将使用决策树从中确定模式。
下一步需要训练模型,以便能够浏览树视图并从中读取模式。
市场部将根据这些模式选择潜在的客户发送自行车促销信息。
要求:利用实验室和指导教师提供的实验软件,认真完成规定的实验内容,真实地记录实验中遇到的各种问题和解决的方法与过程,并根据实验案例绘出模型及操作过程。
实验完成后,应根据实验情况写出实验报告。
二、实验原理及基本技术路线图(方框原理图或程序流程图)关联分析:关联分析是从数据库中发现知识的一类重要方法。
时序模式:通过时间序列搜索出重复发生概率较高的模式。
分类:分类是在聚类的基础上对已确定的类找出该类别的概念描述,代表了这类数据的整体信息,既该类的内涵描述,一般用规则或决策树模式表示。
三、所用仪器、材料(设备名称、型号、规格等或使用软件)1台PC及Microsoft SQL Server套件四、实验方法、步骤(或:程序代码或操作过程)及实验过程原始记录( 测试数据、图表、计算等)创建 Analysis Services 项目1.打开 Business Intelligence Development Studio。
2.在“文件”菜单上,指向“新建”,然后选择“项目”。
3.确保已选中“模板”窗格中的“Analysis Services 项目”。
4.在“名称”框中,将新项目命名为 AdventureWorks。
5.单击“确定”。
更改存储数据挖掘对象的实例1.在 Business Intelligence Development Studio 的“项目”菜单中,选择“属性”。
数据仓库与数据挖掘实验报告

数据仓库与数据挖掘实验报告一、实验目的和意义数据仓库和数据挖掘是现代大数据时代中关键的技术与方法,本实验旨在通过实践操作,了解数据仓库和数据挖掘的基本概念、流程和方法,并基于实验数据进行数据仓库与数据挖掘的实际应用。
二、实验内容及步骤本实验基于某电商平台的网购数据,通过数据仓库的建立和数据挖掘的过程,探索和发现隐藏在数据中的有价值信息。
具体步骤如下:1. 数据收集和预处理获取电商网购数据集,对数据进行清洗和预处理,如缺失值处理、异常值处理和数据集整合等,以保证数据的质量和可用性。
2. 数据仓库的建立基于处理后的数据,进行数据仓库的建立。
根据业务需求和分析目标,确定维度表和事实表的建模方法和关联关系,设计和构建星型或雪花模式的数据仓库。
3. 数据挖掘的实践基于已建立的数据仓库,进行数据挖掘的实践,包括关联规则挖掘、分类与预测、聚类分析、异常检测等。
通过使用数据挖掘工具,如R、Python中的Scikit-learn等,进行模型构建和算法实施,得到数据挖掘结果。
4. 结果分析与应用对数据挖掘结果进行分析和解读,发现和总结其中的规律和知识,得到业务价值和应用建议,为业务决策和目标达成提供支持和参考。
三、实验结果与分析本实验得到了以下数据挖掘结果:1. 关联规则挖掘通过关联规则挖掘的过程,发现了一些有趣和有用的关系,如购买商品A的用户有70%的概率也会购买商品B,可以利用这些关联规则进行交叉销售和推荐。
2. 分类与预测通过构建分类和预测模型,成功预测了用户的购买行为,可以预测出用户未来可能会购买的商品,为精准市场营销和库存管理提供决策支持。
3. 聚类分析通过聚类分析,将用户分为不同的群体,可以对不同群体采取不同的营销策略,提高用户满意度和购买转化率。
4. 异常检测通过异常检测,发现了一些异常行为和欺诈行为,可以及时进行监控和防范,保护用户权益和平台安全。
此外,还通过数据可视化的方式,将分析结果展示出来,如通过柱状图、折线图、散点图等方式进行可视化展示,直观地呈现数据的分布和关系。
数据仓库与数据挖掘实验四

数据仓库与数据挖掘实验四一、实验目的本实验旨在通过实践操作,掌握数据仓库与数据挖掘的相关技术,包括数据预处理、数据集成、数据转换和数据挖掘算法的应用。
二、实验背景随着信息化时代的到来,数据量呈指数级增长,如何从这些庞大的数据中提取有用的信息成为了一个重要的研究方向。
数据仓库与数据挖掘技术应运而生,能够帮助我们从海量数据中挖掘出有价值的知识和模式,为决策提供科学依据。
三、实验内容1. 数据预处理数据预处理是数据挖掘的第一步,目的是清洗原始数据,解决数据中存在的噪声、缺失值和异常值等问题。
在本实验中,我们将使用一个包含学生信息的数据集进行数据预处理的实验。
首先,我们需要导入数据集,并对数据进行初步的观察和分析。
可以使用Python编程语言中的pandas库来进行数据的读取和分析。
通过查看数据集的属性、数据类型以及数据的统计信息,我们可以对数据有一个初步的了解。
接下来,我们需要处理数据中存在的缺失值。
可以使用pandas库中的fillna()函数来填充缺失值,常用的填充方法包括均值填充、中位数填充和众数填充等。
根据不同的情况选择合适的填充方法,并对数据进行处理。
最后,我们需要处理数据中的异常值。
可以使用箱线图和散点图等可视化工具来检测异常值,并根据实际情况进行处理。
2. 数据集成数据集成是将多个数据源中的数据合并成一个一致、完整的数据集的过程。
在本实验中,我们将使用两个包含学生信息的数据集进行数据集成的实验。
首先,我们需要对两个数据集进行初步的观察和分析,了解数据的结构和属性。
接下来,我们需要选择一个合适的数据集成方法。
常用的数据集成方法包括追加、合并和连接等。
根据数据集的特点和实际需求,选择合适的方法进行数据集成。
最后,我们需要对合并后的数据集进行处理,解决数据中存在的重复值和冲突值等问题。
可以使用pandas库中的drop_duplicates()函数来去除重复值,并根据实际情况解决冲突值。
3. 数据转换数据转换是将原始数据转换成适合进行数据挖掘的形式的过程。
数据挖掘分类实验报告

数据挖掘分类实验报告《数据挖掘分类实验报告》数据挖掘是一门利用统计学、机器学习和人工智能等技术,从大量的数据中发现隐藏的模式和知识的学科。
在数据挖掘中,分类是一种常见的任务,它通过对数据进行分析和学习,将数据划分到不同的类别中。
本文将通过一个数据挖掘分类实验报告,介绍数据挖掘分类的实验过程和结果。
实验数据集选取了一个包含多个特征和标签的数据集,以便进行分类任务。
首先,我们对数据集进行了数据预处理,包括数据清洗、特征选择、特征变换等步骤,以确保数据的质量和适用性。
接着,我们将数据集划分为训练集和测试集,用训练集训练分类模型,并用测试集评估模型的性能。
在实验中,我们尝试了多种分类算法,包括决策树、支持向量机、朴素贝叶斯等。
通过对比不同算法的准确率、精确率、召回率和F1值等指标,我们评估了各个算法在该数据集上的表现。
实验结果显示,不同算法在不同数据集上表现出不同的性能,决策树算法在某些数据集上表现较好,而支持向量机在另一些数据集上表现更优秀。
此外,我们还进行了特征重要性分析,通过对特征的重要性进行排序,找出对分类任务最具有区分性的特征。
这有助于我们理解数据集的特点,并为进一步优化分类模型提供了指导。
综合实验结果,我们得出了一些结论和启示。
首先,不同的分类算法适用于不同的数据集和任务,需要根据具体情况选择合适的算法。
其次,特征选择和特征重要性分析对于提高分类模型的性能至关重要,需要充分利用数据挖掘技术进行特征工程。
最后,数据挖掘分类实验是一个迭代的过程,需要不断尝试和调整,以优化分类模型的性能。
通过本次数据挖掘分类实验报告,我们深入了解了数据挖掘分类的实验过程和方法,对数据挖掘技术有了更深入的理解,也为实际应用中的分类任务提供了一定的指导和启示。
希望本文能够对读者有所启发,促进数据挖掘领域的研究和实践。
数据挖掘分类实验详细报告

数据挖掘分类实验详细报告一、引言数据挖掘是从大量数据中提取隐藏在其中的有价值信息的过程。
数据挖掘分类实验是数据挖掘领域中的一项重要任务,其目标是根据已有的数据样本,构建一个能够准确分类未知数据的分类模型。
本报告旨在详细描述数据挖掘分类实验的过程、方法和结果。
二、实验背景本次实验的数据集是一个关于电子商务的数据集,包含了一些与电子商务相关的特征和一个分类标签。
我们的任务是根据这些特征,预测一个电子商务网站上的用户是否会购买某个产品。
三、数据预处理在进行数据挖掘实验之前,我们需要对数据进行预处理。
首先,我们检查数据集是否存在缺失值或异常值。
对于缺失值,我们可以选择删除含有缺失值的样本,或者使用插补方法进行填充。
对于异常值,我们可以选择删除或者进行修正。
其次,我们对数据进行特征选择,选择与分类目标相关性较高的特征。
最后,我们对数据进行归一化处理,以消除不同特征之间的量纲差异。
四、特征工程特征工程是指根据领域知识和数据分析的结果,构建新的特征或者对原有特征进行转换,以提高分类模型的性能。
在本次实验中,我们根据电子商务领域的经验,构建了以下特征:1. 用户年龄:将用户的年龄分为青年、中年和老年三个年龄段,并进行独热编码。
2. 用户性别:将用户的性别进行独热编码。
3. 用户所在地区:将用户所在地区进行独热编码。
4. 用户购买历史:统计用户过去一段时间内的购买次数、购买金额等指标。
五、模型选择与训练在本次实验中,我们选择了三种常用的分类模型进行训练和比较:决策树、支持向量机和随机森林。
1. 决策树:决策树是一种基于树结构的分类模型,通过划分特征空间,将数据样本划分到不同的类别中。
2. 支持向量机:支持向量机是一种通过在特征空间中构建超平面,将不同类别的样本分开的分类模型。
3. 随机森林:随机森林是一种基于决策树的集成学习方法,通过构建多个决策树,最终根据投票结果进行分类。
我们将数据集划分为训练集和测试集,使用训练集对模型进行训练,使用测试集评估模型的性能。
数据仓库与数据挖掘1实验报告册汽院科院2

《数据仓库与数据挖掘》实验报告册20 - 20 学年第学期班级: 学号: 姓名:目录实验一 Microsoft SQL Server Analysis Services的使用 (3)实验二使用WEKA进行分类与预测 (7)实验三使用WEKA进行关联规则与聚类分析 (8)实验四数据挖掘算法的程序实现 (8)实验一 Microsoft SQL Server Analysis Services的使用实验类型: 验证性实验学时: 4实验目的:学习并掌握Analysis Services的操作, 加深理解数据仓库中涉及的一些概念, 如多维数据集, 事实表, 维表, 星型模型, 雪花模型, 联机分析处理等。
实验内容:在实验之前, 先通读自学SQL SERVER自带的Analysis Manager概念与教程。
按照自学教程的步骤, 完成对FoodMart数据源的联机分析。
建立、编辑多维数据集, 进行OLAP操作, 看懂OLAP的分析数据。
1、实验步骤:启动联机分析管理器:2、建立系统数据源连接。
建立数据库和数据源, 多维数据集编辑多维数据集3、设计存储和处理多维数据集4、浏览多维数据集中的数据按时间筛选数据实验小结:实验二使用WEKA进行分类与预测实验类型: 综合性实验学时: 4实验目的:掌握数据挖掘平台WEKA的使用。
综合运用数据预处理、分类与预测的挖掘算法、结果的解释等知识进行数据挖掘。
从而加深理解课程中的相关知识点。
实验内容:阅读并理解WEKA的相关中英文资料, 熟悉数据挖掘平台WEKA, 针对实际数据, 能够使用WEKA进行数据的预处理, 能选择合适的分类与预测算法对数据进行分析, 并能解释分析结果。
实验步骤:1.在开始->程序->启动WEKA, 进入Explorer界面, 熟悉WEKA的界面功能。
2.选择数据集(实验中的数据可以从网络获取), 如泰坦尼克号数据集, 将要处理的数据集转换成WEKA能处理的格式, 如.ARFF格式。
数据仓库与数据挖掘实验三

数据仓库与数据挖掘实验三引言概述:数据仓库与数据挖掘实验三是数据科学领域中重要的一部分。
通过实验三,我们可以深入了解数据仓库的概念、原理和应用,以及数据挖掘的基本技术和方法。
本文将按照一、二、三、四、五的顺序,分别介绍数据仓库和数据挖掘实验三的五个部分。
一、数据仓库的概念和原理1.1 数据仓库的定义和特点数据仓库是一个面向主题的、集成的、稳定的、非易失的数据集合,用于支持管理决策。
它的特点包括:面向主题,集成性,时间一致性,非易失性,以及冗余度低等。
1.2 数据仓库的架构和组成数据仓库的架构包括:数据源层、数据清洗层、数据集成层、数据存储层和数据展示层。
其中,数据源层负责获取数据,数据清洗层负责清洗和预处理数据,数据集成层负责将数据整合到数据仓库中,数据存储层负责存储数据,数据展示层负责将数据以可视化的方式展示给用户。
1.3 数据仓库的应用数据仓库在企业管理决策、市场分析、客户关系管理、风险管理等方面有着广泛的应用。
通过数据仓库,企业可以更好地理解市场趋势,优化产品策略,提高竞争力。
二、数据挖掘的基本技术和方法2.1 数据挖掘的定义和目标数据挖掘是从大量数据中发现隐藏在其中的有价值的信息和知识的过程。
数据挖掘的目标包括:分类和预测、聚类、关联规则挖掘、异常检测等。
2.2 数据挖掘的基本技术数据挖掘的基本技术包括:数据预处理、特征选择、特征提取、模型构建和模型评估等。
数据预处理主要包括数据清洗、数据集成、数据变换和数据规约。
特征选择和特征提取是为了从原始数据中选择出最有用的特征。
模型构建是建立数学模型来描述数据,模型评估是评估模型的准确度和可靠性。
2.3 数据挖掘的应用数据挖掘在市场营销、金融风险评估、医疗诊断、社交网络分析等领域有着广泛的应用。
通过数据挖掘,企业可以发现潜在客户、预测市场需求,金融机构可以评估借贷风险,医疗机构可以辅助诊断疾病。
三、数据仓库实验的步骤和方法3.1 实验环境的搭建在进行数据仓库实验之前,需要搭建合适的实验环境。
数据仓库与数据挖掘实验报告

数据仓库与数据挖掘实验报告题目Glass(玻璃)数据集分析院系姓名学号专业班级科目数据仓库与数据挖掘任课老师目录一、实验目的 (1)二、实验内容 (1)1.数据预处理方法(缺失值处理) (1)2.数据可视化 (1)3.分类算法测试及比较 (1)三、实验步骤 (1)1.Weka平台搭建及收集该数据集 (1)2.加载 Glass(玻璃)数据集 (1)3.数据预处理 (2)4.数据可视化 (4)5.分类算法 (5)四、实验总结 (9)一、实验目的1.使用Weka数据预处理方法,对缺失值数据进行处理。
缺失值会使数据挖掘混乱,分析可能会得到错误结论,所以在数据挖掘前最好进行缺失值数据进行处理。
2.使用数据挖掘中的分类算法,对数据集进行分类训练并测试,应用不同的分类算法,比较他们之间的不同。
3.学习与了解Weka平台的基本功能与使用方法。
二、实验内容1.数据预处理方法(缺失值处理)2.数据可视化3.分类算法测试及比较三、实验步骤1.Weka平台搭建及收集该数据集2.加载 Glass(玻璃)数据集(1)Glass(玻璃)数据集预处理界面如图2.1所示:(2)Glass(玻璃)数据属性含义如表2.1所示:表2.1 Glass(玻璃)数据属性含义3.数据预处理(1)Glass(玻璃)数据预处理前数据如图3.1所示:(2)使用缺失值处理函数:weka.filters.unsupervised.attribute.ReplaceMissingValues。
Glass(玻璃)数据预处理后数据如图3.2所示:图3.2 Glass(玻璃)数据预处理后数据图示4.数据可视化Glass(玻璃)数据可视化如图4.1所示:图4.1 Glass(玻璃)数据可视化图示5.分类算法(1)KNN算法:一种统计分类器,对数据的特征变量的筛选尤其有效。
KNN算法如图5.1所示:图5.1 KNN算法图示①元素分析结果如表5.1所示:表5.1 元素分析结果②类型分析结果:准确率为70.5607%,其中214个实例数据有151个正确分类,63个错误分类。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2015-2016学年第1学期实验报告课程名称:数据仓库与及数据挖掘实验名称:文本的分类实验完成人:姓名:学号:日期: 2015年 12月实验一:文本的分类1.实验目的1)掌握数据预处理的方法,对训练集数据进行预处理;2)掌握文本建模的方法,对语料库的文档进行建模;3)掌握分类算法的原理,基于有监督的机器学习方法,训练文本分类器;4)利用学习的文本分类器,对未知文本进行分类判别;5)掌握评价分类器性能的评估方法2.实验分工独立完成3.实验环境基于Windows平台,使用eclipse开发。
4.主要设计思想4.1实验工具介绍Eclipse:一个开放源代码的/基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
Eclipse最早是由IBM开发的,后来IBM将Eclipse作为一个开放源代码的项目发布。
现在Eclipse 在协会的管理与指导下开发。
4.2特征提取与表达方法的设计在此次实验中,我考虑了CHI特征提取的方法来建立数据字典。
详细步骤见5.3描述。
根据CHI特征提取,最终建立成数据字典,数据字典记录在目录E:\DataMiningSample\docVector下的allDicWordCountMap.txt 文档中。
最终的特征向量表达方式为:文档类别标识_单词词频。
如:alt.atheism_abstact 1.0。
其中alt.atheism为此文本所属的类别,abstact为对应的单词,1.0为该单词的词频数。
4.3分类算法的选择本次实验使用的是朴素贝叶斯分类算法,朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。
朴素贝叶斯分类器基于一个简单的假定:给定目标值时属性之间相互条件独立。
即:Document)P(DocumentP(Category||*nt)Category))/P(DocumeP(Category朴素贝叶斯模型:)...2,1|(max arg Vmap an a a V P j =j V 属于V 集合,其中Vmap 是给定一个example 得到的最可能的目标值,a1…an 是这个example 里面的属性。
这里面,Vmap 目标值就是后面计算得出的概率最大的一个,所以用max 来表示。
贝叶斯公式应用到)...2,1|(an a a V P j 中可得到)...2,1(/P )(P )|...2,1(max arg Vmap an a a V V an a a P j j =,又因为朴素贝叶斯分类器默认a1…an 他们互相独立,所以)...2,1(P an a a 对于结果没有用处。
因为所有的概率都要出同一个东西之后再比较大小,对最后结果没有影响。
可得到)(P )|...2,1(max arg Vmap j j V V an a a P =。
尽管是带着这些朴素思想和过于简单化的假设,但朴素贝叶斯分类器在很多复杂的现实情形中仍能够取得相当好的效果。
2004年,一篇分析贝叶斯分类器问题的文章揭示了朴素贝叶斯分类器取得看上去不可思议的分类效果的若干理论上的原因。
尽管如此,2006年有一篇文章详细比较了各种分类方法,发现更新的方法(如boosted trees 和随机森林)的性能超过了贝叶斯分类器。
朴素贝叶斯分类器的一个优势在于只需要根据少量的训练数据估计出必要的参数(变量的均值和方差)。
由于变量独立假设,只需要估计各个变量的方法,而不需要确定整个协方差矩阵。
4.4 性能评估方法本次实验我使用了准确率(P),召回率(R)和F1-Score 来评价分类结果。
下面通过表4.1具体解释一下这三种性能评估方法的计算公式。
表4.1 预测结果和实际情况0-1状态图P = True positive/(True positive + False positive) R = True positive/(True positive + False negative) F1-Score = (2 * P * R)/(P + R)在此实验中,我通过准确率、召回率和F1-Score这三个性能评估方法对最后的结果进行了详细的分析。
关于结果分析的详细描述见5.6。
5.实验过程5.1文本分类语料库的采集本实验的语料库是下载网上现成的英文文本语料库的,该语料库的类别有20类,分别为:alt.atheism,comp.graphics,comp.os.ms-windows.misc,comp.sys.ibm.pc.hardware,comp.sys.mac.hardware,comp.windows.x,misc.forsale,rec.autos,rec.motorcycles,rec.sport.baseball,rec.sport.hockey,sci.crypt,sci.electronics,sci.med,sci.space,soc.religion.christian,talk.politics.guns,talk.politics.mideast,talk.politics.misc,talk.religion.misc,其中每个分类有九千多文档,整个语料库有1万8千多文件。
现在需要将这1万8千多文件分配成训练集和测试集,为了排除人为因素的干扰,和便于操作的效果,我编写了一个TextClassificationofRandom类来实现将语料库中20个分类都随机均分成训练集和测试集,这样我们就形成了训练集和测试集的数据。
在后期实验过程中,通过多次随机生成训练集和测试集来进行实验,获得更详细精确的数据。
详细步骤和结果见后面分析。
5.2数据预处理(1)对所有英文文件进行英文词法分析,去除数字、连字符、标点符号、特殊字符,所有大写字母转换成小写字母,实现方法是通过正则表达式:String res[] = line.split("[^a-zA-Z]");(2)接着去停用词,过滤对分类无价值的词。
结果保存在源文件对应文件.out 里面。
(3)第三步是找词根,将词根还原,并分别将每一类的所有文件的单词进行汇总,同时记录每个单词的词频,最终得到源文件对应文件.outstemed 里面。
5.3 特征提取和表达首先我先解释一下CHI 特征提取公式的意义:CHI 特征提取:))()()(()(),t (22D C D B B A C A BC AD N c ++++-=χ 在此公式中,变量的含义如下所示:N: 所有文档的数目A :在该分类下,包含此单词的文档数量B: 不在该分类下,包含此单词的文档数量C: 在该分类下,不包含此单词的文档数量D: 不在该分类下,不包含此单词的文档数量由于最后,只需要根据CHI 的卡方值进行排序,为了简化运算,对公式做了简单的简化处理: 简化后的计算方法为:))(()(2D C B A BC AD ++-,因为在排序的步骤中,N ,(A+C ),(B+D)都不会对最后的排序造成影响,所以这样的简化处理是合理的。
计算每个单词的CHI值,降序排序后,分别取每一类的排序前2000个单词,经过汇总,去重,得到最终的数据字典,一共是32060个单词。
根据数据字典,将每篇训练集文件和测试集文件转换成特征向量。
结果保存在源文件对应文件. outstemedspecial 里面。
5.4训练过程在本次实验中,我做了5组实验,每组实验又分为两个相对应的实验。
因为我借鉴了交叉检验的思想,一开始我将整个数据集随机分成训练集和测试集两份,相当于2折交叉检验,再颠倒过来将训练集作为测试集,测试集作为训练集。
这样整个过程算是一组实验,然后再将整个数据集随机分成训练集和测试集,重复上面步骤,最终进行了5组10次实验,利用这10次的结果的均值来对算法精度作估计。
以求达到更精确的评估。
这里我就简单介绍一次实验的训练过程:(1)首先,我为了避免对文件的直接操作,可以将训练集文本的路径进行汇总,汇总的方法是通过命令提示符,转到源数据20类文件夹的目录文件下,输入dir /s/b/l *>aaa.lst,回车,这样,源数据20类文件夹下面出现一个aaa.lst文件,用写字板打开文件,将前面几行非源数据文件绝对路径的数据删掉。
最后得到如图5.1的aaa.lst文件。
图5.1 aaa.lst部分内容示意图(2)然后,通过java的文件操作FileReader fileReader = new FileReader("E:/DataMiningSample/orginSample/aaa.lst ");以及后面等一系列操作,不具体描述,在Eclipse中运行TextClassificationofRandom类后,在E:\DataMiningSample\docVector目录下,生成两个文件,一个是记录训练数据绝对路径的文件,一个是记录测试数据绝对路径的文件。
(3)将记录训练数据绝对路径的文件的绝对路径,作为TrainMain类的参数,运行来训练样本的特征,首先计算每个类别出现的特征词数,将结果保存在NBTrain工程下的cateWordsNum.txt文件中,保存方式为:类别+空格+次数。
再计算某单词在某类别中出现的次数,将结果保存在NBTrain工程下的cateWordsProb.txt文件中,保存方式为:类别_单词+空格+词数。
最后,计算所有类别的总次数,将结果保存在NBTrain工程下的totalWordsNum.txt文件中。
这样我们就得到最后的训练模型。
5.5测试过程通过上述步骤,我们得到四个文件,即记录测试数据绝对路径的文件,cateWordsNum.txt,cateWordsProb.txt,totalWordsNum.txt,我们将这四个文件的绝对路径作为TestMain类的参数,运行,通过朴素贝叶斯的算法,得到每个文件属于每个类的后验概率,取其中最大值,作为文件最终被分到的类别,并将数据以文件绝对路径+空格+类别的形式输出到NBTest工程下的classifyResultNew11.txt文件中,方便后期的实验数据统计。
5.6实验结果和性能评估最后实验结果用混淆矩阵来记录,由于我一共做了十次实验,这里就不一一列举,我拿第一次的实验结果来展示一下(后面数据均展示第一次实验结果),完整的实验结果记录在E:\DataMiningSample\docVector\五组实验数据目录下的分类结果.xlsx文件下。
第一次实验结果的混淆矩阵如图5.2所示。
图5.2 朴素贝叶斯分类结果-混淆矩阵表示上面混淆矩阵的每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目;每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目,每一列中的数值表示真实数据被预测为该类的数目。