Machine learning 在weka上使用j48进行分类

Machine learning 在weka上使用j48进行分类,machine-learning,classification,weka,Machine Learning,Classification,Weka,我将这些数据作为训练集,将属性playtenise作为目标 @relation Weka @attribute Day {D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14} @attribute Outlook {Sunny,Overcast,Rain} @attribute Temperature {Hot,Mild,Cool} @attribute Humidity {High,Normal} @attribute Wind {Weak,Stro

我将这些数据作为训练集,将属性playtenise作为目标

@relation Weka

@attribute Day {D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14}
@attribute Outlook {Sunny,Overcast,Rain}
@attribute Temperature {Hot,Mild,Cool}
@attribute Humidity {High,Normal}
@attribute Wind {Weak,Strong}
@attribute PlayTennis {No,Yes}

@data
D1,Sunny,Hot,High,Weak,No
D2,Sunny,Hot,High,Strong,No
D3,Overcast,Hot,High,Weak,Yes
D4,Rain,Mild,High,Weak,Yes
D5,Rain,Cool,Normal,Weak,Yes
D6,Rain,Cool,Normal,Strong,No
D7,Overcast,Cool,Normal,Strong,Yes
D8,Sunny,Mild,High,Weak,No
D9,Sunny,Cool,Normal,Weak,Yes
D10,Rain,Mild,Normal,Weak,Yes
D11,Sunny,Mild,Normal,Strong,Yes
D12,Overcast,Mild,High,Strong,Yes
D13,Overcast,Hot,Normal,Weak,Yes
D14,Rain,Mild,High,Strong,No
此外,我还为weka提供了所提供测试集的数据,但只需将目标[Yes,No]转换为“?”。 以便:

@relation Weka2

@attribute Day {D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14}
@attribute Outlook {Sunny,Overcast,Rain}
@attribute Temperature {Hot,Mild,Cool}
@attribute Humidity {High,Normal}
@attribute Wind {Weak,Strong}
@attribute PlayTennis {No,Yes}

@data
D1,Sunny,Hot,High,Weak,?
D2,Sunny,Hot,High,Strong,?
D3,Overcast,Hot,High,Weak,?
D4,Rain,Mild,High,Weak,?
D5,Rain,Cool,Normal,Weak,?
D6,Rain,Cool,Normal,Strong,?
D7,Overcast,Cool,Normal,Strong,?
D8,Sunny,Mild,High,Weak,?
D9,Sunny,Cool,Normal,Weak,?
D10,Rain,Mild,Normal,Weak,?
D11,Sunny,Mild,Normal,Strong,?
D12,Overcast,Mild,High,Strong,?
D13,Overcast,Hot,Normal,Weak,?
D14,Rain,Mild,High,Strong,?
单击开始,但结果显示:

=== Run information ===

Scheme:       weka.classifiers.trees.J48 -C 0.25 -M 2
Relation:     Weka
Instances:    14
Attributes:   6
              Day
              Outlook
              Temperature
              Humidity
              Wind
              PlayTennis
Test mode:    user supplied test set:  size unknown     (reading incrementally)

=== Classifier model (full training set) ===

J48 pruned tree
------------------

Outlook = Sunny
|   Humidity = High: No (3.0)
|   Humidity = Normal: Yes (2.0)
Outlook = Overcast: Yes (4.0)
Outlook = Rain
|   Wind = Weak: Yes (3.0)
|   Wind = Strong: No (2.0)

Number of Leaves  :     5

Size of the tree :  8


Time taken to build model: 0 seconds

=== Evaluation on test set ===

Time taken to test model on supplied test set: 0 seconds

=== Summary ===

Total Number of Instances                0     
Ignored Class Unknown Instances                  7     

=== Detailed Accuracy By Class ===

                 TP Rate  FP Rate  Precision  Recall   F-Measure  MCC      ROC Area  PRC Area  Class
                 0.000    0.000    0.000      0.000    0.000      0.000    ?         ?         No
                 0.000    0.000    0.000      0.000    0.000      0.000    ?         ?         Yes
Weighted Avg.    NaN      NaN      NaN        NaN      NaN        NaN      NaN       NaN       

=== Confusion Matrix ===

 a b   <-- classified as
 0 0 | a = No
 0 0 | b = Yes
==运行信息===
方案:weka.classifiers.trees.J48-c0.25-m2
关系:Weka
实例:14
属性:6
白天
见解
温度
湿度
风
打网球
测试模式:用户提供的测试集:大小未知(增量读取)
==分类器模型(完整训练集)===
J48修剪树
------------------
前景=晴朗
|湿度=高:否(3.0)
|湿度=正常:是(2.0)
前景=阴天:是(4.0)
前景=下雨
|风=弱:是(3.0)
|风=强:否(2.0)
假期数:5
树的大小:8
生成模型所用的时间:0秒
==对测试集的评估===
在提供的测试集上测试模型所用的时间:0秒
==摘要===
实例总数0
忽略类未知实例7
==按类别划分的详细精度===
TP比率FP比率精确召回F测量MCC ROC区域PRC区域等级
0.000    0.000    0.000      0.000    0.000      0.000    ?         ?         不
0.000    0.000    0.000      0.000    0.000      0.000    ?         ?         对
加权平均楠楠
==混淆矩阵===

a b测试数据集应保留标记为“是”或“否”的目标变量。

这将使Weka能够评估其预测的质量。如果没有目标标签,Weka不知道预测是否正确,因此在评估中会忽略这些情况

如果您只是对预测感兴趣,您仍然可以使用未标记的数据

例如,如果使用GUI:

  • 加载培训数据并选择“分类”选项卡
  • 按下测试选项框中的“更多选项”按钮
  • 现在在“输出预测”旁边打一个复选标记
  • 提供未启用的测试数据并按下开始按钮
  • 这将生成一个输出,其中包含对似乎被忽略的实例的预测(下面是相关输出的示例)

    ==测试拆分预测=== 仪器,实际,预测,误差,概率分布 1.2:否+0*1 2.2:否+0*1 3.1:是+*10 4.1:是+*10 5.1:是+*10 6.2:否+0*1 7.1:是+*10
    测试数据集应保留标记为“是”或“否”的目标变量。

    这将使Weka能够评估其预测的质量。如果没有目标标签,Weka不知道预测是否正确,因此在评估中会忽略这些情况

    如果您只是对预测感兴趣,您仍然可以使用未标记的数据

    例如,如果使用GUI:

  • 加载培训数据并选择“分类”选项卡
  • 按下测试选项框中的“更多选项”按钮
  • 现在在“输出预测”旁边打一个复选标记
  • 提供未启用的测试数据并按下开始按钮
  • 这将生成一个输出,其中包含对似乎被忽略的实例的预测(下面是相关输出的示例)

    ==测试拆分预测=== 仪器,实际,预测,误差,概率分布 1.2:否+0*1 2.2:否+0*1 3.1:是+*10 4.1:是+*10 5.1:是+*10 6.2:否+0*1 7.1:是+*10
    是的,我设置了“输出预测”,但是“未知实例=[所有实例]”存在。每个实例的预测错误等于1您将目标值放回测试数据集中,但评估仍然没有意义?我将准确的培训数据文件复制到一个新文件中,只需将目标属性“是”或“否”更改为“?”。但它说所有实例都属于“类未知实例”。是的,不要更改值,这将解决您的问题。当您输入“?”时,实际上是对Weka说您不知道真正的目标值(但您知道)。在我的示例输出中,可以看到实际=?”但预测=”是”或“否”。两者显然不匹配,因此误差为1。但是,如果不更改目标值,Weka将能够报告预测是否与实际目标值匹配。Tanks,我确实这样做了,我设置了“输出预测”,但“未知实例=[所有实例]”存在。每个实例的预测错误等于1您将目标值放回测试数据集中,但评估仍然没有意义?我将准确的培训数据文件复制到一个新文件中,只需将目标属性“是”或“否”更改为“?”。但它说所有实例都属于“类未知实例”。是的,不要更改值,这将解决您的问题。当您输入“?”时,实际上是对Weka说您不知道真正的目标值(但您知道)。在我的示例输出中,可以看到实际=?”但预测=”是”或“否”。两者显然不匹配,因此误差为1。但是,如果不更改目标值,Weka将能够报告预测是否与实际目标值匹配。 === Predictions on test split === inst#, actual, predicted, error, probability distribution 1 ? 2:no + 0 *1 2 ? 2:no + 0 *1 3 ? 1:yes + *1 0 4 ? 1:yes + *1 0 5 ? 1:yes + *1 0 6 ? 2:no + 0 *1 7 ? 1:yes + *1 0