数据可视化。 3D、精度、召回率和 f-measure。也许使用八度?
data visualization. 3D, precison, recall, and f-measure. maybe using ocatve?
我一直运行一个机器学习算法,我有Precision、Recall和F-Measure形式的输出。
我想绘制这些数据的图表,以便我可以更清楚地了解事情的实际进展情况,但我真的不知道该怎么做。我想我可以使用 Octave?我在 Andrew Ng 课程中听说过它,我已经在我的机器上安装了它,但我真的不知道如何使用它来可视化数据。
在这方面有经验的人是否知道我最好如何继续或一些有用的资源来最好地解决这个问题?
0.011723329425556858 P 0.6000000238418579 R 0.010416666977107525 F1 0.02047781631341665
0.012895662368112544 P 0.6363636255264282 R 0.01215277798473835 F1 0.023850085569817648
0.01406799531066823 P 0.6666666865348816 R 0.013888888992369175 F1 0.027210884568890845
0.015240328253223915 P 0.6153846383094788 R 0.013888888992369175 F1 0.02716468612858015
0.016412661195779603 P 0.6428571343421936 R 0.015625 F1 0.03050847456668239
0.017584994138335287 P 0.6000000238418579 R 0.015625 F1 0.03045685282259509
0.01875732708089097 P 0.5625 R 0.015625 F1 0.030405405405405407
0.01992966002344666 P 0.529411792755127 R 0.015625 F1 0.030354131580674088
0.021101992966002344 P 0.5555555820465088 R 0.0173611119389534 F1 0.03367003527554599
0.022274325908558032 P 0.5263158082962036 R 0.0173611119389534 F1 0.03361344696816966
0.023446658851113716 P 0.5 R 0.0173611119389534 F1 0.033557048526295
0.0246189917936694 P 0.4761904776096344 R 0.0173611119389534 F1 0.03350083906570289
我想第一列是你在不同行之间变化的一些阈值。
precision-recall 图是 precision-vs-recall。因此,我们可以先从您的数据中检索这两列:(假设您的数据保存在 prf.data
中)。
cat prf.data | awk '{print ,}'
你只会得到下面两列,你可以在八度中初始化一个二维矩阵:
data = [
0.6000000238418579 0.010416666977107525
0.6363636255264282 0.01215277798473835
0.6666666865348816 0.013888888992369175
0.6153846383094788 0.013888888992369175
0.6428571343421936 0.015625
0.6000000238418579 0.015625
0.5625 0.015625
0.529411792755127 0.015625
0.5555555820465088 0.0173611119389534
0.5263158082962036 0.0173611119389534
0.5 0.0173611119389534
0.4761904776096344 0.0173611119389534];
然后在 octave 下,下面的命令将打印每一行作为图中的一个数据点:
plot(data(:,2), data(:,1), 'x')
ylabel('precision')
xlabel('recall')
看起来随着一些阈值的增加,你正在降低精度而召回率保持不变(例如,当阈值 = 0.021、0.022、0.023、0.024 时)。
我一直运行一个机器学习算法,我有Precision、Recall和F-Measure形式的输出。
我想绘制这些数据的图表,以便我可以更清楚地了解事情的实际进展情况,但我真的不知道该怎么做。我想我可以使用 Octave?我在 Andrew Ng 课程中听说过它,我已经在我的机器上安装了它,但我真的不知道如何使用它来可视化数据。
在这方面有经验的人是否知道我最好如何继续或一些有用的资源来最好地解决这个问题?
0.011723329425556858 P 0.6000000238418579 R 0.010416666977107525 F1 0.02047781631341665
0.012895662368112544 P 0.6363636255264282 R 0.01215277798473835 F1 0.023850085569817648
0.01406799531066823 P 0.6666666865348816 R 0.013888888992369175 F1 0.027210884568890845
0.015240328253223915 P 0.6153846383094788 R 0.013888888992369175 F1 0.02716468612858015
0.016412661195779603 P 0.6428571343421936 R 0.015625 F1 0.03050847456668239
0.017584994138335287 P 0.6000000238418579 R 0.015625 F1 0.03045685282259509
0.01875732708089097 P 0.5625 R 0.015625 F1 0.030405405405405407
0.01992966002344666 P 0.529411792755127 R 0.015625 F1 0.030354131580674088
0.021101992966002344 P 0.5555555820465088 R 0.0173611119389534 F1 0.03367003527554599
0.022274325908558032 P 0.5263158082962036 R 0.0173611119389534 F1 0.03361344696816966
0.023446658851113716 P 0.5 R 0.0173611119389534 F1 0.033557048526295
0.0246189917936694 P 0.4761904776096344 R 0.0173611119389534 F1 0.03350083906570289
我想第一列是你在不同行之间变化的一些阈值。
precision-recall 图是 precision-vs-recall。因此,我们可以先从您的数据中检索这两列:(假设您的数据保存在 prf.data
中)。
cat prf.data | awk '{print ,}'
你只会得到下面两列,你可以在八度中初始化一个二维矩阵:
data = [
0.6000000238418579 0.010416666977107525
0.6363636255264282 0.01215277798473835
0.6666666865348816 0.013888888992369175
0.6153846383094788 0.013888888992369175
0.6428571343421936 0.015625
0.6000000238418579 0.015625
0.5625 0.015625
0.529411792755127 0.015625
0.5555555820465088 0.0173611119389534
0.5263158082962036 0.0173611119389534
0.5 0.0173611119389534
0.4761904776096344 0.0173611119389534];
然后在 octave 下,下面的命令将打印每一行作为图中的一个数据点:
plot(data(:,2), data(:,1), 'x')
ylabel('precision')
xlabel('recall')
看起来随着一些阈值的增加,你正在降低精度而召回率保持不变(例如,当阈值 = 0.021、0.022、0.023、0.024 时)。