基于weka数据分类和聚类分析实验报告

来源:工作范文网 时间:2020-10-06 08:42:27

基 于 w e k a 的 数 据 分 类 分 析 实 验 报 告

实验基本内容

本实验的基本内容是通过使用 weka 中的三种常见分类和聚类方法 (决策树 J48、KNN 和 k-means)

分别在训练数据上训练出分类模型, 并使用校验数据对各个模型进行测试和评价, 找出各个模型最优

的参数值, 并对三个模型进行全面评价比较, 得到一个最好的分类模型以及该模型所有设置的最优参

数。最后使用这些参数以及训练集和校验集数据一起构造出一个最优分类器, 并利用该分类器对测试

数据进行预测。

数据的准备及预处理

2.1 格式转换方法

打开 “data02.xls ”另存为 CSV 类型,得到“ data02.csv”。

在 WEKA 中提供了一个“ Arff Viewer ”模块,打开一个“ data02.csv”进行浏览,然后另存为

ARFF 文件,得到“ data02.arff”。 。

实验过程及结果截图

3.1 决策树分类

决策树分类

用“ Explorer ”打开数据“ data02.arff ”,然后切换到“ Classify ”。点击“ Choose”,选择算法

“ trees-J48 ”,再在“ Test options ”选择“ Cross-validation ( Flods=10 )”,点击“ Start ”,开始运行。

系统默认 trees-J48

决策树算法中

minNumObj=2,得到如下结果

=== Summary ===

Correctly Classified Instances

23

88.4615 %

Incorrectly Classified Instances

3

11.5385 %

Kappa statistic

0.7636

Mean absolute error

0.141

Root mean squared error

0.3255

Relative absolute error

30.7368 %

Root relative squared error

68.0307 %

Total Number of Instances

26

=== Detailed Accuracy By Class ===

TP Rate

FP Rate

Precision

Recall F-Measure

ROC Area

Class

0.824

0

1

0.824

0.903

0.892

N

1

0.176

0.75

1

0.857

0.892

Y

Weighted Avg.

0.885

0.061

0.913

0.885

0.887

0.892

=== Confusion Matrix ===

a

b

<-- classified as

14

3 |

a = N

0

9 |

b = Y

使用不同的参数准确率比较:

minNumObj

2

3

4

5

Correctly

23

22

23

23

Classified

( 88.4615 %)

( 84.6154 %)

( 88.4615 %)

( 88.4615 %)

Instances

由上表,可知 minNumObj为 2 时,准确率最高。

根据测试数集,利用准确率最高的模型得到的结果:

分析说明:

在用 J48 对数据集进行分类时采用了 10 折交叉验证( Folds=10 )来选择和评估模型,其中属性值有两个 Y, N。一部分结果如下:

Correctly Classified Instances

Incorrectly Classified Instances

=== Confusion Matrix ===

a b <-- classified as

14 3 | a = N

0 9 | b = Y



23

3



88.4615 %

11.5385 %

这个矩阵是说,原来是 “Y”的实例,有 14 个被正确的预测为 “Y”,有3 个错误的预测成了 “N”。原

本是 “NO”的实例有 0 个被正确的预测成为 “Y”,有 9 个正确的预测成了 “N”。“14+3+0+9=26”是实例的

总数,而( 14+9)/ 26=0.884615 正好是正确分类的实例所占比例。这个矩阵对角线上的数字越大,说

明预测得越好。

(2)K 最近邻分类算法

用“ Explorer ”打开数据“ data02.arff ”,然后切换到“ Classify ”。点击“ Choose”,选择算法

“ lazy-IBk ”,再在“ Test options ”选择“ Cross-validation ( Flods=10 )”,点击“ Start ”,开始

运行。

训练结果:

系统默认 lazy-IBk K 最近邻分类算法中 KNN=1,得到如下结果

=== Summary ===

Correctly Classified Instances 20 76.9231 %

Incorrectly Classified Instances 6 23.0769 %

Kappa statistic 0.4902

Mean absolute error 0.252

Root mean squared error 0.4626

Relative absolute error 54.9136 %

Root relative squared error 96.694 %

Total Number of Instances 26

=== Detailed Accuracy By Class ===

TP Rate FP Rate Precision Recall F-Measure ROC Area Class

0.824

0.333

0.824

0.824

0.824

0.768

N

0.667

0.176

0.667

0.667

0.667

0.768

Y

Weighted Avg.

0.769

0.279

0.769

0.769

0.769

0.768

=== Confusion Matrix ===

a b <-- classified as

3 | a = N

3 6 | b = Y

使用不同的参数准确率比较:

KNN

1

2

3

4

Correctly

20

19

23

20

Classified

( 76.9231 % )

( 73.0769%)

( 88.4615 %)

( 76.9231 % )

Instances

由上表,可知 KNN为 3 时,准确率最高。

根据测试数集,利用准确率最高的模型得到的结果:

分析说明:

在用 lazy-Ibk(KNN=3) 对数据集进行分类时采用了 10 折交叉验证( Folds=10 )来选择和评估模型,其中属性值有两个 Y, N。一部分结果如下:

=== Summary ===

Correctly Classified Instances Incorrectly Classified Instances



23

3



88.4615 %

11.5385 %

=== Confusion Matrix ===

a b <-- classified as

16 1 | a = N

2 7 | b = Y

这个矩阵是说,原来是 “Y”的实例,有 16 个被正确的预测为 “Y”,有1 个错误的预测成了 “N”。原本是 “NO”的实例有 2 个被正确的预测成为 “Y”,有 9 个正确的预测成了 “7”。“16+1+2+7 =26”是实例的总数,而( 16+7) / 26=0.884615 正好是正确分类的实例所占比例。二、 对“ data01 ” 进行聚类分析

数据格式的转换

打开 “data01.xls ”另存为 CSV 类型,得到“ data01.csv”。

在 WEKA 中提供了一个“ Arff Viewer ”模块,打开一个“ data01.csv”进行浏览,然后另存为

ARFF



文件,得到“



data01.arff”。

2. 聚类过程

用“ Explorer ”打开数据“

“ SimpleKMeans( numClusters=6

点击“ Start ”,开始运行。

训练结果:



data01.arff ”,然后切换到“ Cluster

, seed=200 ),再在“ Test options



”。点击“ Choose”,选择算法

”选择“ Use training set ”,

采用 simpleKMeans 算法,其中 numClusters=6 , seed=100,得到如下结果:

Number of iterations: 3

(平方误差之和)

Clustered Instances

Clustered Instances

4 ( 15%)

3 ( 12%)

4 ( 15%)

3 ( 12%)

2 ( 8%)

10 ( 38%)(各类的包含的实例个数以及占总实例的百分比)

说明:

其中当 seed的取值越大,平方误差之和越小。

在这次实验

seed=100,得到: 9. 这是评价聚类好坏的标准,数值越小说明同一簇实例之间的距离

就越小。

接下来“ Cluster centroids”:列出了各个簇中心的位置:

Attribute

Full Data

0

1

2

3

4

5

(26)

(4)

(3)

(4)

(3)

(2)

(10)

=============================================================================

====

sample

13.5

22.5

4.6667

20.5

14.6667

4.5

11.2

old-year

48.0769

65.75

59.3333

50.5

25

56.5

41.9

VEGF

1.9231

2.75

2.3333

2

2.6667

3

1

MVC

102.1538

126.45

100.6667

127.4

88.2667

104

86.58

cancer-grade

2.5769

3.75

2

3

3.3333

3.5

1.7

cancer-stage

2.1538

3.25

1.3333

3

2.3333

3.5

1.3

cancer metastasis

N

Y

N

N

Y

Y

N

最后“ Clustered Instances

”列出了各个簇中实例的数目及百分比:

Clustered Instances

4 ( 15%)

3 ( 12%)

4 ( 15%)

3 ( 12%)

2 ( 8%)

10 ( 38%) (各类的包含的实例个数以及占总实例的百分比)三、根据提供的“ data02 ”进行关联分析

由于程序和系统故障,所以不能正确的进行关联分析

实验总结

本次实验进行比较顺利,使我对如何在 Weka 中进行分类分析有了更深刻的了解,对 Weka 中进

行分类分析的 KNN 算法, k-means 算法和决策树算法都有了进一步的理解,同时也深刻体会到数据预处理对于数据挖掘的重要性。