Machine learning 在weka上使用j48进行分类
我将这些数据作为训练集,将属性playtenise作为目标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
@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