diff --git a/docs/elephants.rst b/docs/elephants.rst index 3e6e36c..34862d5 100644 --- a/docs/elephants.rst +++ b/docs/elephants.rst @@ -20,7 +20,7 @@ Programs elephants/* -Example scripts for scikit-learn +Examples of scikit-learn scripts ================================ Additionally, we provide the `elephants.skl` subpackage, which offers examples on how to use the scikit-learn library to train machine learning algorithms for detecting elephant flows based on the first packet. None of previous works analyze metrics such as flow table reduction or the amount of traffic transmitted after flow classification, which we believe are crucial from the perspective of traffic engineering and QoS. These studies primarily focus on classification accuracy, measured by parameters like true positive rate, true negative rate, and accuracy of flow size and duration prediction. They provide limited insight into the effectiveness of the analyzed algorithms in our specific application. For example, misclassifying the largest flow in the network has a much greater impact on the change in traffic coverage than misclassifying a small flow. The metrics presented so far do not account for this difference. Our proposal is to use novel metrics for evaluating ML algorithms in the context of elephant flow detection, specifically flow table occupancy reduction and fraction of traffic covered. There is a tradeoff between these two metrics: increasing the elephant detection threshold leads to greater flow table reduction but decreases the fraction of covered traffic. diff --git a/docs/elephants/skl/plot_regressors.rst b/docs/elephants/skl/plot_regressors.rst index 15e8b48..5b37ba3 100644 --- a/docs/elephants/skl/plot_regressors.rst +++ b/docs/elephants/skl/plot_regressors.rst @@ -2,5 +2,5 @@ ************************** .. argparse:: - :ref: flow_models.elephants.skl.ploy_regressors.parser + :ref: flow_models.elephants.skl.plot_regressors.parser :prog: python3 -m flow_models.elephants.skl.plot_regressors diff --git a/flow_models/elephants/skl/plot_classifiers.py b/flow_models/elephants/skl/plot_classifiers.py index cb73a8e..093bff6 100644 --- a/flow_models/elephants/skl/plot_classifiers.py +++ b/flow_models/elephants/skl/plot_classifiers.py @@ -70,9 +70,9 @@ def __call__(self, value, clip=None): def parser(): p = argparse.ArgumentParser(description=__doc__) - p.add_argument('-O', '--output', default='sklearn', help='output directory and plot file name') - p.add_argument('--mixture', help='') - p.add_argument('files', help='directory') + p.add_argument('-O', '--output', default='sklearn', help='results directory/filenames prefix') + p.add_argument('--mixture', help='additionally plots mixture from that directory') + p.add_argument('files', help='results directory with .tsv files') return p def load_data(app_args): diff --git a/flow_models/elephants/skl/plot_regressors.py b/flow_models/elephants/skl/plot_regressors.py index 57f7daf..dcb9ad3 100644 --- a/flow_models/elephants/skl/plot_regressors.py +++ b/flow_models/elephants/skl/plot_regressors.py @@ -70,9 +70,9 @@ def __call__(self, value, clip=None): def parser(): p = argparse.ArgumentParser(description=__doc__) - p.add_argument('-O', '--output', default='sklearn', help='output directory and plot file name') - p.add_argument('--mixture', help='') - p.add_argument('files', help='directory') + p.add_argument('-O', '--output', default='sklearn', help='results directory/filenames prefix') + p.add_argument('--mixture', help='additionally plots mixture from that directory') + p.add_argument('files', help='results directory with .tsv files') return p def load_data(app_args):