{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "pretty-performer", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2022-06-02 15:15:02.889626: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory\n", "2022-06-02 15:15:02.889666: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.\n" ] } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import matplotlib.colors\n", "from PIL import Image, ImageDraw, ImageFont\n", "from library.analysis import testSets, generators" ] }, { "cell_type": "markdown", "id": "engaging-warehouse", "metadata": {}, "source": [ "# Constants" ] }, { "cell_type": "code", "execution_count": 2, "id": "crazy-taxation", "metadata": {}, "outputs": [], "source": [ "kScore = \"cohens kappa score\"\n", "f1Score = \"f1 score\"" ] }, { "cell_type": "markdown", "id": "extensive-future", "metadata": {}, "source": [ "# Settings" ] }, { "cell_type": "code", "execution_count": 3, "id": "warming-department", "metadata": {}, "outputs": [], "source": [ "ignoreSet = [\"ozone_level\", \"yeast_me2\"]\n", "\n", "gans = [g.replace(\"SimpleGAN\", \"GAN\") for g in generators.keys()]\n", "algs = [\"LR\", \"GB\", \"KNN\", \"DoG\"]" ] }, { "cell_type": "code", "execution_count": 4, "id": "edf5b592", "metadata": {}, "outputs": [], "source": [ "testSets = [t for t in testSets if t[0:7] == \"folding\"]" ] }, { "cell_type": "markdown", "id": "seasonal-greek", "metadata": {}, "source": [ "# ProWRAS Data" ] }, { "cell_type": "code", "execution_count": 5, "id": "needed-birmingham", "metadata": {}, "outputs": [], "source": [ "dataset = [\n", " \"abalone9-18\",\n", " \"abalone_17_vs_7_8_9_10\",\n", " \"car-vgood\",\"car_good\",\n", " \"flare-F\",\n", " \"hypothyroid\",\n", " \"kddcup-guess_passwd_vs_satan\",\n", " \"kr-vs-k-three_vs_eleven\",\n", " \"kr-vs-k-zero-one_vs_draw\",\n", " \"shuttle-2_vs_5\",\n", " \"winequality-red-4\",\n", " \"yeast4\",\n", " \"yeast5\",\n", " \"yeast6\",\n", " \"ozone_level\",\n", " \"yeast_me2\",\n", " \"Average\"\n", " ]" ] }, { "cell_type": "markdown", "id": "d7e8179d", "metadata": {}, "source": [ "knn_ProWRAS_f1 = [0.384,0.347,0.818,0.641,0.301,0.553,1.0,0.94,0.9,1.0,0.141,0.308,0.714,0.545,0.556,0.339,0.538]\n", "knn_ProWRAS_k = [0.35,0.328,0.81,0.622,0.263,0.528,1.0,0.938,0.896,1.0,0.093,0.268,0.704,0.531,0.526,0.305,0.515]\n", "\n", "lr_ProWRAS_f1 = [0.488,0.315,0.407,0.103,0.341,0.446,0.99,0.928,0.853,1.0,0.158,0.308,0.591,0.326,0.347,0.295,0.472]\n", "lr_ProWRAS_k = [0.446,0.287,0.371,0.033,0.3,0.407,0.99,0.926,0.847,1.0,0.119,0.268,0.574,0.3,0.319,0.254,0.441]\n", "\n", "gb_ProWRAS_f1 = [0.385,0.335,0.959,0.863,0.320,0.803,0.998,0.995,0.969,1.0,0.156,0.335,0.735,0.514,0.329,0.225,0.600]\n", "gb_ProWRAS_k = [0.341,0.310,0.957,0.857,0.291,0.794,0.998,0.995,0.967,1.0,0.115,0.303,0.726,0.501,0.303,0.328,0.589]" ] }, { "cell_type": "code", "execution_count": 6, "id": "6121f46b", "metadata": {}, "outputs": [], "source": [ "statistic = { }" ] }, { "cell_type": "markdown", "id": "e825147c", "metadata": {}, "source": [ "statistic = { \"ProWRAS\": {} }\n", "for (n, f1, k) in zip(dataset, lr_ProWRAS_f1, lr_ProWRAS_k):\n", " if n in ignoreSet:\n", " continue\n", " \n", " if n not in statistic[\"ProWRAS\"]:\n", " statistic[\"ProWRAS\"][n] = {}\n", " \n", " statistic[\"ProWRAS\"][n][\"LR\"] = { kScore: k, f1Score: f1 }\n", "\n", "for (n, f1, k) in zip(dataset, gb_ProWRAS_f1, gb_ProWRAS_k):\n", " if n in ignoreSet:\n", " continue\n", " \n", " if n not in statistic[\"ProWRAS\"]:\n", " statistic[\"ProWRAS\"][n] = {}\n", " \n", " statistic[\"ProWRAS\"][n][\"GB\"] = { kScore: k, f1Score: f1 }\n", "\n", " \n", "for (n, f1, k) in zip(dataset, knn_ProWRAS_f1, knn_ProWRAS_k):\n", " if n in ignoreSet:\n", " continue\n", " \n", " if n not in statistic[\"ProWRAS\"]:\n", " statistic[\"ProWRAS\"][n] = {}\n", " \n", " statistic[\"ProWRAS\"][n][\"KNN\"] = { kScore: k, f1Score: f1 }\n", " \n", "dataset = list(filter(lambda n: n not in ignoreSet, dataset))" ] }, { "cell_type": "markdown", "id": "selective-connecticut", "metadata": {}, "source": [ "# Load data from CSV files" ] }, { "cell_type": "code", "execution_count": 7, "id": "a23177bd", "metadata": {}, "outputs": [], "source": [ "def cleanupName(name):\n", " return name.replace(\"folding_\", \"\").replace(\"imblearn_\", \"\").replace(\"kaggle_\", \"\")" ] }, { "cell_type": "code", "execution_count": 8, "id": "304d69ce", "metadata": {}, "outputs": [], "source": [ "dataset = [cleanupName(d) for d in testSets]" ] }, { "cell_type": "code", "execution_count": 9, "id": "intended-watts", "metadata": {}, "outputs": [], "source": [ "def loadDiagnoseData(ganType, datasetName):\n", " if ganType == \"GAN\":\n", " ganType = \"SimpleGAN\"\n", " \n", " fileName = f\"data_result/{ganType}/{datasetName}.csv\"\n", " r = {}\n", " try:\n", " with open(fileName) as f:\n", " newBlock = True\n", " n = \"\"\n", " for line in f:\n", " line = line.strip()\n", " if newBlock:\n", " n = line\n", " if n == \"GAN\":\n", " n = \"DoG\"\n", " newBlock = False\n", " elif line == \"---\":\n", " newBlock = True\n", " else:\n", " parts = line.split(\";\")\n", " if parts[0] == \"avg\":\n", " r[n] = { f1Score: float(parts[5]), kScore: float(parts[6]) }\n", " except FileNotFoundError as e:\n", " print(f\"Missing file: {fileName}\")\n", " return r" ] }, { "cell_type": "code", "execution_count": 10, "id": "classical-rescue", "metadata": {}, "outputs": [], "source": [ "for gan in gans:\n", " if gan not in statistic:\n", " statistic[gan] = {}\n", " \n", " for ds in testSets:\n", " if ds != \"Average\":\n", " statistic[gan][cleanupName(ds)] = loadDiagnoseData(gan, ds)\n", " \n", " d = cleanupName(ds)\n", " if d not in dataset:\n", " dataset.append(d)" ] }, { "cell_type": "code", "execution_count": 11, "id": "unable-entrance", "metadata": {}, "outputs": [], "source": [ "for gan in statistic.keys():\n", " f1 = { n: 0.0 for n in algs }\n", " k = { n: 0.0 for n in algs }\n", " c = 0\n", "\n", " for ds in dataset:\n", " if ds != \"Average\":\n", " c += 1\n", " for n in algs:\n", " if n in statistic[gan][ds].keys():\n", " f1[n] += statistic[gan][ds][n][f1Score]\n", " k[n] += statistic[gan][ds][n][kScore]\n", "\n", " avg = {}\n", " for n in algs:\n", " avg[n] = { f1Score: f1[n] / c, kScore: k[n] / c }\n", " statistic[gan][\"Average\"] = avg" ] }, { "cell_type": "markdown", "id": "20ba8039", "metadata": {}, "source": [ "convGanMax = {}\n", "for g in gans:\n", " if g[0:7] == \"convGAN\":\n", " for d in statistic[g].keys():\n", " if d not in convGanMax.keys():\n", " convGanMax[d] = {}\n", " for a in statistic[g][d].keys():\n", " if a not in convGanMax[d].keys():\n", " convGanMax[d][a] = {}\n", " for s in statistic[g][d][a].keys():\n", " x = statistic[g][d][a][s]\n", " if x is None:\n", " x = 0.0\n", " if s not in convGanMax[d][a].keys():\n", " convGanMax[d][a][s] = x\n", " else:\n", " convGanMax[d][a][s] = max(x, convGanMax[d][a][s])\n", "\n", "gs = []\n", "for g in list(gans):\n", " if g[0:7] == \"convGAN\":\n", " del statistic[g]\n", " else:\n", " gs.append(g)\n", "\n", "statistic[\"convGAN\"] = convGanMax\n", "gs.append(\"convGAN\")\n", "gans = gs" ] }, { "cell_type": "markdown", "id": "public-collins", "metadata": {}, "source": [ "# Show Statistics" ] }, { "cell_type": "code", "execution_count": 12, "id": "5fec8e83", "metadata": {}, "outputs": [], "source": [ "def drawDiagram(size, rowNames, data, colNames=[], colors=None, border=20, barIndent=10, fontSize=20, markers=[0.25, 0.5, 0.75, 1.00]):\n", " silver = (204, 204, 204)\n", " black = (0,0,0)\n", " white = (255, 255, 255)\n", " \n", " defaultColors = [ (31,119,180)\n", " , (255,127,14)\n", " , (44,160,44)\n", " , (214,40,40)\n", " , (148,103,189)\n", " , (140,86,75)\n", " , (227,119,194)\n", " , (127,127,127)\n", " ]\n", " \n", " \n", " if colors is None:\n", " colors = defaultColors\n", "\n", " print((len(data[0]), len(colNames), len(data), len(rowNames)))\n", "\n", " font = ImageFont.truetype(\"FreeSans\", fontSize)\n", " \n", " markerSize = 0\n", " for m in markers:\n", " markerSize = max(markerSize, font.getsize(f\"{m:0.2f}\")[0])\n", "\n", " areaTop = 2 * border + markerSize\n", "\n", " barStep = (size[0] - border - areaTop) // len(data)\n", " barSize = max(border, barStep - border)\n", " barIndent = min(barIndent, barSize / (1 + len(data[0])))\n", " barIndent = barSize / (2 + len(data[0]))\n", " \n", " print((size[0], barSize, barSize * len(data)))\n", " \n", " \n", " w = max(size[0], size[1])\n", " img = Image.new(\"RGB\", (w,w))\n", " d = ImageDraw.Draw(img)\n", " d.rectangle(((0,0), (w,w)), fill=white)\n", " \n", " height = size[1]\n", " left = w - height\n", " textSize = 0\n", " for (n, name) in enumerate(rowNames):\n", " s = font.getsize(name)\n", " offset = int(border + barSize - s[1] + 1.5) // 2\n", " textSize = max(textSize, s[0])\n", " pos = (left + border, areaTop + offset + (barStep * n))\n", " d.text(pos, name, fill=black, font=font)\n", " \n", " barLength = height - (4 * border) - textSize\n", " areaSize = (barLength, barSize)\n", " areaLeft = left + (2 * border) + textSize\n", " \n", " markerPos = [areaLeft + int(v * barLength) for v in markers]\n", " for p in markerPos:\n", " d.line(((p, border), (p, size[0] - border)), fill=silver)\n", " \n", " for (n, row) in enumerate(data):\n", " area = ((areaLeft, areaTop + (n * barStep) + (border // 2)), areaSize)\n", "\n", " indices = list(range(len(row)))\n", " indices.sort(key= lambda i: 1.0 - row[i])\n", "\n", " for (n, i) in enumerate(indices):\n", " v = row[i]\n", " c = colors[i]\n", " offset = barIndent * n\n", " tl = (area[0][0], area[0][1] + offset)\n", " br = (tl[0] + int(v * area[1][0]), area[1][1] + tl[1] - offset)\n", " rect = (tl, br)\n", " d.rectangle(rect, fill=c, outline=black)\n", "\n", "\n", " d.line(((areaLeft, areaTop), (areaLeft, size[0] - border)), fill=black)\n", " d.line(((areaLeft, areaTop), (w - border, areaTop)), fill=black)\n", " \n", " img = img.rotate(90)\n", " d = ImageDraw.Draw(img)\n", "\n", " for (m, p) in zip(markers, markerPos):\n", " d.text((border, size[1] - (p - left)), f\"{m:0.2f}\", fill=black, font=font)\n", " \n", " if len(colNames) > 0:\n", " colNameWidth = 0\n", " colNameHeight = fontSize * len(colNames)\n", " for c in colNames:\n", " colNameWidth = max(colNameWidth, font.getsize(c)[0])\n", " \n", " rWidth = int(fontSize * 0.75)\n", " rHeight = fontSize // 2\n", " rPadd = (fontSize - rHeight) // 2\n", " \n", " tl = (size[0] - ((3 * border) + colNameWidth + rWidth), 0)\n", " br = (size[0], 2 * border + colNameHeight)\n", " d.rectangle((tl, br), fill=white)\n", "\n", " for (n, c) in enumerate(colNames):\n", " t = border + (fontSize * n)\n", " l = size[0] - border - colNameWidth\n", " d.rectangle(((l - border - rWidth, t + rPadd - 1), (l - border, t + rPadd + rHeight)), fill=colors[n])\n", " d.text((l, t), c, fill=black, font=font)\n", " \n", " return img.crop((0, 0, size[0], size[1]))" ] }, { "cell_type": "markdown", "id": "2f2d08a8", "metadata": {}, "source": [ "def showDiagnose(algo, score):\n", " def gr(n):\n", " if n in resultList:\n", " return resultList[n][algo].data[score]\n", " else:\n", " return 0.0\n", " \n", " def valueOf(d, g):\n", " d = cleanupName(d)\n", " if d not in statistic[g].keys():\n", " print(f\"Missing '{d}' in '{g}'\")\n", " return 0.0\n", " \n", " if algo in statistic[g][d].keys():\n", " return statistic[g][d][algo][score]\n", " else:\n", " print(f\"Missing '{algo}' in ('{g}', '{d}')\")\n", " return 0.0\n", " \n", " print(f\"{algo}: {score}\")\n", " \n", " gans = list(statistic.keys())\n", "\n", " w = 0.8 / len(gans)\n", " bar = list(range(len(testSets)))\n", " plt.figure(figsize=(20, 18))\n", " for g in gans:\n", " values = [valueOf(d, g) for d in testSets]\n", " plt.barh(bar, values, w, label=g)\n", " print(values)\n", " \n", " \n", " bar = [i - w for i in bar]\n", "\n", " plt.ylabel(\"Dataset\")\n", " plt.xlabel(score)\n", " plt.yticks(range(len(testSets)), [cleanupName(name) for name in testSets])\n", " #plt.yticks(rotation=\"vertical\")\n", " plt.legend()\n", " plt.savefig(f\"data_result/statistics/byAlgorithm/statistic-{algo}-{score}.pdf\")\n", " plt.show()" ] }, { "cell_type": "markdown", "id": "ec7d07b0", "metadata": {}, "source": [ "def showDiagnose(algo, score):\n", " def gr(n):\n", " if n in resultList:\n", " return resultList[n][algo].data[score]\n", " else:\n", " return 0.0\n", " \n", " def valueOf(d, g):\n", " d = cleanupName(d)\n", " if d not in statistic[g].keys():\n", " print(f\"Missing '{d}' in '{g}'\")\n", " return 0.0\n", " \n", " if algo in statistic[g][d].keys():\n", " return statistic[g][d][algo][score]\n", " else:\n", " print(f\"Missing '{algo}' in ('{g}', '{d}')\")\n", " return 0.0\n", " \n", " print(f\"{algo}: {score}\")\n", " \n", " gans = list(statistic.keys())\n", "\n", " w = 0.8 / len(gans)\n", " bar = list(range(len(testSets)))\n", " plt.figure(figsize=(20, 18))\n", " for g in gans:\n", " print(f\"({algo}, {score}) -> {g}\")\n", " values = [valueOf(d, g) for d in testSets]\n", " plt.plot(bar, values, 'o', label=g)\n", " #plt.plot(bar, values, w, label=g)\n", " #print(values)\n", " \n", " \n", " #bar = [i - w for i in bar]\n", "\n", " plt.ylabel(\"Dataset\")\n", " plt.ylabel(score)\n", " plt.xticks(range(len(testSets)), [cleanupName(name) for name in testSets])\n", " plt.xticks(rotation=\"vertical\")\n", " plt.legend()\n", " plt.savefig(f\"data_result/statistics/byAlgorithm/statistic-{algo}-{score}.pdf\")\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 13, "id": "038344f7", "metadata": {}, "outputs": [], "source": [ "def showDiagnose(algo, score):\n", " def valueOf(d, g):\n", " d = cleanupName(d)\n", " if d not in statistic[g].keys():\n", " print(f\"Missing '{d}' in '{g}'\")\n", " return 0.0\n", " \n", " if algo in statistic[g][d].keys():\n", " return statistic[g][d][algo][score]\n", " else:\n", " print(f\"Missing '{algo}' in ('{g}', '{d}')\")\n", " return 0.0\n", " \n", " print(f\"{algo}: {score}\")\n", " \n", " gans = list(statistic.keys())\n", "\n", " data = [[valueOf(d, g) for g in gans] for d in testSets] \n", " img = drawDiagram((1024, 1024), [cleanupName(d) for d in testSets], data, colNames=gans)\n", " img.save(f\"data_result/statistics/byAlgorithm/statistic-{algo}-{score}.png\")\n" ] }, { "cell_type": "markdown", "id": "faa6ba9c", "metadata": {}, "source": [ "def showDiagnoseAverage(score, onlyOneBar=False):\n", " def gr(n):\n", " if n in resultList:\n", " return resultList[n][algo].data[score]\n", " else:\n", " return 0.0\n", " \n", " print(f\"Average: {score}\")\n", " \n", " gans = list(statistic.keys())\n", "\n", " w = 0.8 / len(gans)\n", " if onlyOneBar:\n", " barType = \"O\"\n", " bar = range(len(algs))\n", " else:\n", " barType = \"M\"\n", " bar = [0.8 + i - w for i in range(len(algs)) ]\n", " plt.figure(figsize=(20, 18))\n", " for g in gans:\n", " values = [\n", " (statistic[g][\"Average\"][algo][score] if algo in statistic[g][\"Average\"].keys() else 0.0)\n", " for algo in algs\n", " ]\n", " plt.barh(bar, values, w, label=g)\n", " \n", " if not onlyOneBar:\n", " bar = [i - w for i in bar]\n", "\n", " plt.ylabel(\"Dataset\")\n", " plt.xlabel(score)\n", " plt.yticks(range(len(algs)), algs)\n", " plt.legend()\n", " plt.savefig(f\"data_result/statistics/average/statistic-Average-{score}-{barType}.pdf\")\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 14, "id": "8904b4b3", "metadata": {}, "outputs": [], "source": [ "def showDiagnoseAverage(score, onlyOneBar=False):\n", " def valueOf(g, algo):\n", " if algo in statistic[g][\"Average\"].keys():\n", " return statistic[g][\"Average\"][algo][score] \n", " else:\n", " return 0.0\n", "\n", " print(f\"Average: {score}\")\n", " \n", " gans = list(statistic.keys())\n", " \n", " data = [[valueOf(g, algo) for g in gans] for algo in algs]\n", " img = drawDiagram((1024, 1024), algs, data, colNames=gans)\n", " img.save(f\"data_result/statistics/average/statistic-Average-{score}.png\")" ] }, { "cell_type": "markdown", "id": "53621267", "metadata": {}, "source": [ "def showDiagnoseDataset(dataset):\n", " def gr(n):\n", " if n in resultList:\n", " return resultList[n][algo].data[score]\n", " else:\n", " return 0.0\n", " \n", " print(f\"{dataset}\")\n", " \n", " gans = list(statistic.keys())\n", " scores = [(a, s) for a in algs for s in (f1Score, kScore)]\n", "\n", " w = 0.8 / len(scores)\n", " bar = list(range(len(gans)))\n", " plt.figure(figsize=(20, 18))\n", " for (algo, score) in scores:\n", " values = [\n", " (statistic[g][dataset][algo][score] if algo in statistic[g][dataset] else 0.0) if dataset in statistic[g] else 0.0\n", " for g in gans\n", " ]\n", " plt.barh(bar, values, w, label=f\"{algo}: {score}\")\n", " \n", " \n", " bar = [i - w for i in bar]\n", "\n", " plt.xlabel(\"score\")\n", " plt.ylabel(\"Generator\")\n", " plt.yticks(range(len(gans)), gans)\n", " #plt.yticks(rotation=\"vertical\")\n", " plt.legend()\n", " plt.savefig(f\"data_result/statistics/byDataset/statistic-{dataset}.pdf\")\n", " plt.show()\n" ] }, { "cell_type": "code", "execution_count": 15, "id": "d1f4961a", "metadata": {}, "outputs": [], "source": [ "def showDiagnoseDataset(dataset):\n", " print(f\"{dataset}\")\n", " \n", " def valueOf(algo, score, g):\n", " if dataset in statistic[g]:\n", " if algo in statistic[g][dataset]:\n", " if score in statistic[g][dataset][algo]:\n", " return statistic[g][dataset][algo][score]\n", " return 0.0\n", " \n", " gans = list(statistic.keys())\n", " scores = [f1Score, kScore]\n", " \n", " for score in scores:\n", " data = [[valueOf(algo, score, g) for algo in algs] for g in gans]\n", " img = drawDiagram((1024, 1024), gans, data, colNames=algs)\n", " img.save(f\"data_result/statistics/byDataset/statistic-{dataset}-{score}.png\")\n" ] }, { "cell_type": "code", "execution_count": 16, "id": "57fe8925", "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "LR: f1 score\n", "(7, 7, 14, 14)\n", "(1024, 46, 644)\n", "LR: cohens kappa score\n", "(7, 7, 14, 14)\n", "(1024, 46, 644)\n", "GB: f1 score\n", "(7, 7, 14, 14)\n", "(1024, 46, 644)\n", "GB: cohens kappa score\n", "(7, 7, 14, 14)\n", "(1024, 46, 644)\n", "KNN: f1 score\n", "(7, 7, 14, 14)\n", "(1024, 46, 644)\n", "KNN: cohens kappa score\n", "(7, 7, 14, 14)\n", "(1024, 46, 644)\n", "DoG: f1 score\n", "Missing 'DoG' in ('Repeater', 'abalone_17_vs_7_8_9_10')\n", "Missing 'DoG' in ('ProWRAS', 'abalone_17_vs_7_8_9_10')\n", "Missing 'DoG' in ('GAN', 'abalone_17_vs_7_8_9_10')\n", "Missing 'DoG' in ('ctGAN', 'abalone_17_vs_7_8_9_10')\n", "Missing 'DoG' in ('CTAB-GAN', 'abalone_17_vs_7_8_9_10')\n", "Missing 'DoG' in ('Repeater', 'abalone9-18')\n", "Missing 'DoG' in ('ProWRAS', 'abalone9-18')\n", "Missing 'DoG' in ('GAN', 'abalone9-18')\n", "Missing 'DoG' in ('ctGAN', 'abalone9-18')\n", "Missing 'DoG' in ('CTAB-GAN', 'abalone9-18')\n", "Missing 'DoG' in ('Repeater', 'car_good')\n", "Missing 'DoG' in ('ProWRAS', 'car_good')\n", "Missing 'DoG' in ('GAN', 'car_good')\n", "Missing 'DoG' in ('ctGAN', 'car_good')\n", "Missing 'DoG' in ('CTAB-GAN', 'car_good')\n", "Missing 'DoG' in ('Repeater', 'car-vgood')\n", "Missing 'DoG' in ('ProWRAS', 'car-vgood')\n", "Missing 'DoG' in ('GAN', 'car-vgood')\n", "Missing 'DoG' in ('ctGAN', 'car-vgood')\n", "Missing 'DoG' in ('CTAB-GAN', 'car-vgood')\n", "Missing 'DoG' in ('Repeater', 'flare-F')\n", "Missing 'DoG' in ('ProWRAS', 'flare-F')\n", "Missing 'DoG' in ('GAN', 'flare-F')\n", "Missing 'DoG' in ('ctGAN', 'flare-F')\n", "Missing 'DoG' in ('CTAB-GAN', 'flare-F')\n", "Missing 'DoG' in ('Repeater', 'hypothyroid')\n", "Missing 'DoG' in ('ProWRAS', 'hypothyroid')\n", "Missing 'DoG' in ('GAN', 'hypothyroid')\n", "Missing 'DoG' in ('ctGAN', 'hypothyroid')\n", "Missing 'DoG' in ('CTAB-GAN', 'hypothyroid')\n", "Missing 'DoG' in ('Repeater', 'kddcup-guess_passwd_vs_satan')\n", "Missing 'DoG' in ('ProWRAS', 'kddcup-guess_passwd_vs_satan')\n", "Missing 'DoG' in ('GAN', 'kddcup-guess_passwd_vs_satan')\n", "Missing 'DoG' in ('ctGAN', 'kddcup-guess_passwd_vs_satan')\n", "Missing 'DoG' in ('CTAB-GAN', 'kddcup-guess_passwd_vs_satan')\n", "Missing 'DoG' in ('Repeater', 'kr-vs-k-three_vs_eleven')\n", "Missing 'DoG' in ('ProWRAS', 'kr-vs-k-three_vs_eleven')\n", "Missing 'DoG' in ('GAN', 'kr-vs-k-three_vs_eleven')\n", "Missing 'DoG' in ('ctGAN', 'kr-vs-k-three_vs_eleven')\n", "Missing 'DoG' in ('CTAB-GAN', 'kr-vs-k-three_vs_eleven')\n", "Missing 'DoG' in ('Repeater', 'kr-vs-k-zero-one_vs_draw')\n", "Missing 'DoG' in ('ProWRAS', 'kr-vs-k-zero-one_vs_draw')\n", "Missing 'DoG' in ('GAN', 'kr-vs-k-zero-one_vs_draw')\n", "Missing 'DoG' in ('ctGAN', 'kr-vs-k-zero-one_vs_draw')\n", "Missing 'DoG' in ('CTAB-GAN', 'kr-vs-k-zero-one_vs_draw')\n", "Missing 'DoG' in ('Repeater', 'shuttle-2_vs_5')\n", "Missing 'DoG' in ('ProWRAS', 'shuttle-2_vs_5')\n", "Missing 'DoG' in ('GAN', 'shuttle-2_vs_5')\n", "Missing 'DoG' in ('ctGAN', 'shuttle-2_vs_5')\n", "Missing 'DoG' in ('CTAB-GAN', 'shuttle-2_vs_5')\n", "Missing 'DoG' in ('Repeater', 'winequality-red-4')\n", "Missing 'DoG' in ('ProWRAS', 'winequality-red-4')\n", "Missing 'DoG' in ('GAN', 'winequality-red-4')\n", "Missing 'DoG' in ('ctGAN', 'winequality-red-4')\n", "Missing 'DoG' in ('CTAB-GAN', 'winequality-red-4')\n", "Missing 'DoG' in ('Repeater', 'yeast4')\n", "Missing 'DoG' in ('ProWRAS', 'yeast4')\n", "Missing 'DoG' in ('GAN', 'yeast4')\n", "Missing 'DoG' in ('ctGAN', 'yeast4')\n", "Missing 'DoG' in ('CTAB-GAN', 'yeast4')\n", "Missing 'DoG' in ('Repeater', 'yeast5')\n", "Missing 'DoG' in ('ProWRAS', 'yeast5')\n", "Missing 'DoG' in ('GAN', 'yeast5')\n", "Missing 'DoG' in ('ctGAN', 'yeast5')\n", "Missing 'DoG' in ('CTAB-GAN', 'yeast5')\n", "Missing 'DoG' in ('Repeater', 'yeast6')\n", "Missing 'DoG' in ('ProWRAS', 'yeast6')\n", "Missing 'DoG' in ('GAN', 'yeast6')\n", "Missing 'DoG' in ('ctGAN', 'yeast6')\n", "Missing 'DoG' in ('CTAB-GAN', 'yeast6')\n", "(7, 7, 14, 14)\n", "(1024, 46, 644)\n", "DoG: cohens kappa score\n", "Missing 'DoG' in ('Repeater', 'abalone_17_vs_7_8_9_10')\n", "Missing 'DoG' in ('ProWRAS', 'abalone_17_vs_7_8_9_10')\n", "Missing 'DoG' in ('GAN', 'abalone_17_vs_7_8_9_10')\n", "Missing 'DoG' in ('ctGAN', 'abalone_17_vs_7_8_9_10')\n", "Missing 'DoG' in ('CTAB-GAN', 'abalone_17_vs_7_8_9_10')\n", "Missing 'DoG' in ('Repeater', 'abalone9-18')\n", "Missing 'DoG' in ('ProWRAS', 'abalone9-18')\n", "Missing 'DoG' in ('GAN', 'abalone9-18')\n", "Missing 'DoG' in ('ctGAN', 'abalone9-18')\n", "Missing 'DoG' in ('CTAB-GAN', 'abalone9-18')\n", "Missing 'DoG' in ('Repeater', 'car_good')\n", "Missing 'DoG' in ('ProWRAS', 'car_good')\n", "Missing 'DoG' in ('GAN', 'car_good')\n", "Missing 'DoG' in ('ctGAN', 'car_good')\n", "Missing 'DoG' in ('CTAB-GAN', 'car_good')\n", "Missing 'DoG' in ('Repeater', 'car-vgood')\n", "Missing 'DoG' in ('ProWRAS', 'car-vgood')\n", "Missing 'DoG' in ('GAN', 'car-vgood')\n", "Missing 'DoG' in ('ctGAN', 'car-vgood')\n", "Missing 'DoG' in ('CTAB-GAN', 'car-vgood')\n", "Missing 'DoG' in ('Repeater', 'flare-F')\n", "Missing 'DoG' in ('ProWRAS', 'flare-F')\n", "Missing 'DoG' in ('GAN', 'flare-F')\n", "Missing 'DoG' in ('ctGAN', 'flare-F')\n", "Missing 'DoG' in ('CTAB-GAN', 'flare-F')\n", "Missing 'DoG' in ('Repeater', 'hypothyroid')\n", "Missing 'DoG' in ('ProWRAS', 'hypothyroid')\n", "Missing 'DoG' in ('GAN', 'hypothyroid')\n", "Missing 'DoG' in ('ctGAN', 'hypothyroid')\n", "Missing 'DoG' in ('CTAB-GAN', 'hypothyroid')\n", "Missing 'DoG' in ('Repeater', 'kddcup-guess_passwd_vs_satan')\n", "Missing 'DoG' in ('ProWRAS', 'kddcup-guess_passwd_vs_satan')\n", "Missing 'DoG' in ('GAN', 'kddcup-guess_passwd_vs_satan')\n", "Missing 'DoG' in ('ctGAN', 'kddcup-guess_passwd_vs_satan')\n", "Missing 'DoG' in ('CTAB-GAN', 'kddcup-guess_passwd_vs_satan')\n", "Missing 'DoG' in ('Repeater', 'kr-vs-k-three_vs_eleven')\n", "Missing 'DoG' in ('ProWRAS', 'kr-vs-k-three_vs_eleven')\n", "Missing 'DoG' in ('GAN', 'kr-vs-k-three_vs_eleven')\n", "Missing 'DoG' in ('ctGAN', 'kr-vs-k-three_vs_eleven')\n", "Missing 'DoG' in ('CTAB-GAN', 'kr-vs-k-three_vs_eleven')\n", "Missing 'DoG' in ('Repeater', 'kr-vs-k-zero-one_vs_draw')\n", "Missing 'DoG' in ('ProWRAS', 'kr-vs-k-zero-one_vs_draw')\n", "Missing 'DoG' in ('GAN', 'kr-vs-k-zero-one_vs_draw')\n", "Missing 'DoG' in ('ctGAN', 'kr-vs-k-zero-one_vs_draw')\n", "Missing 'DoG' in ('CTAB-GAN', 'kr-vs-k-zero-one_vs_draw')\n", "Missing 'DoG' in ('Repeater', 'shuttle-2_vs_5')\n", "Missing 'DoG' in ('ProWRAS', 'shuttle-2_vs_5')\n", "Missing 'DoG' in ('GAN', 'shuttle-2_vs_5')\n", "Missing 'DoG' in ('ctGAN', 'shuttle-2_vs_5')\n", "Missing 'DoG' in ('CTAB-GAN', 'shuttle-2_vs_5')\n", "Missing 'DoG' in ('Repeater', 'winequality-red-4')\n", "Missing 'DoG' in ('ProWRAS', 'winequality-red-4')\n", "Missing 'DoG' in ('GAN', 'winequality-red-4')\n", "Missing 'DoG' in ('ctGAN', 'winequality-red-4')\n", "Missing 'DoG' in ('CTAB-GAN', 'winequality-red-4')\n", "Missing 'DoG' in ('Repeater', 'yeast4')\n", "Missing 'DoG' in ('ProWRAS', 'yeast4')\n", "Missing 'DoG' in ('GAN', 'yeast4')\n", "Missing 'DoG' in ('ctGAN', 'yeast4')\n", "Missing 'DoG' in ('CTAB-GAN', 'yeast4')\n", "Missing 'DoG' in ('Repeater', 'yeast5')\n", "Missing 'DoG' in ('ProWRAS', 'yeast5')\n", "Missing 'DoG' in ('GAN', 'yeast5')\n", "Missing 'DoG' in ('ctGAN', 'yeast5')\n", "Missing 'DoG' in ('CTAB-GAN', 'yeast5')\n", "Missing 'DoG' in ('Repeater', 'yeast6')\n", "Missing 'DoG' in ('ProWRAS', 'yeast6')\n", "Missing 'DoG' in ('GAN', 'yeast6')\n", "Missing 'DoG' in ('ctGAN', 'yeast6')\n", "Missing 'DoG' in ('CTAB-GAN', 'yeast6')\n", "(7, 7, 14, 14)\n", "(1024, 46, 644)\n", "Average: f1 score\n", "(7, 7, 4, 4)\n", "(1024, 211, 844)\n", "Average: cohens kappa score\n", "(7, 7, 4, 4)\n", "(1024, 211, 844)\n", "abalone_17_vs_7_8_9_10\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "abalone9-18\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "car_good\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "car-vgood\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "flare-F\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "hypothyroid\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "kddcup-guess_passwd_vs_satan\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "kr-vs-k-three_vs_eleven\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "kr-vs-k-zero-one_vs_draw\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "shuttle-2_vs_5\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "winequality-red-4\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "yeast4\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "yeast5\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "yeast6\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "Average\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n", "(4, 4, 7, 7)\n", "(1024, 112, 784)\n" ] } ], "source": [ "for a in algs:\n", " showDiagnose(a, f1Score)\n", " showDiagnose(a, kScore)\n", " \n", "showDiagnoseAverage(f1Score)\n", "showDiagnoseAverage(kScore)\n", "\n", "for t in testSets:\n", " showDiagnoseDataset(cleanupName(t))\n", "\n", "showDiagnoseDataset(\"Average\")" ] }, { "cell_type": "code", "execution_count": 17, "id": "63841c55", "metadata": {}, "outputs": [], "source": [ "def getValueOf(gan, dataset, algo, score):\n", " if dataset not in statistic[gan].keys():\n", " #print(f\"Missing '{dataset}' in '{gan}'\")\n", " return None\n", "\n", " if algo not in statistic[gan][dataset].keys():\n", " #print(f\"Missing '{algo}' in ('{gan}', '{dataset}')\")\n", " return None\n", " \n", " if score not in statistic[gan][dataset][algo].keys():\n", " #print(f\"Missing '{score}' in ('{gan}', '{dataset}', '{algo}')\")\n", " return None\n", " \n", " return statistic[gan][dataset][algo][score]\n", " \n", " \n", " \n", "def calcTable(algo, score, ignore=[]):\n", " table = []\n", " \n", " def calc(gc, g):\n", " n = 0\n", " for d in testSets:\n", " d = cleanupName(d)\n", " if d not in ignore:\n", " vc = getValueOf(gc, d, algo, score)\n", " v = getValueOf(g, d, algo, score)\n", " if vc is not None and v is not None and vc >= v:\n", " n += 1\n", " return n\n", " \n", " for gc in gans:\n", " table.append([calc(gc, g) for g in gans])\n", " return table" ] }, { "cell_type": "code", "execution_count": null, "id": "93d1f460", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "d8567532", "metadata": {}, "source": [ "for a in algs:\n", " showDiagnose(a, f1Score)\n", " showDiagnose(a, kScore)\n", " \n", "showDiagnoseAverage(f1Score)\n", "showDiagnoseAverage(kScore)\n", "\n", "for t in testSets:\n", " showDiagnoseDataset(cleanupName(t))\n", "\n", "showDiagnoseDataset(\"Average\")" ] }, { "cell_type": "code", "execution_count": 18, "id": "177774b0", "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "[[14, 3, 6, 11, 6, 2, 2],\n", " [13, 14, 9, 11, 9, 11, 11],\n", " [8, 5, 14, 10, 7, 7, 6],\n", " [3, 3, 4, 14, 3, 3, 2],\n", " [9, 5, 7, 11, 14, 6, 5],\n", " [12, 3, 7, 12, 8, 14, 6],\n", " [13, 4, 8, 12, 9, 10, 14]]" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tables = {}\n", "ignore = [# \"webpage\"\n", " #, \"mammography\"\n", " #, \"protein_homo\"\n", " #, \"ozone_level\"\n", " #, \"creditcard\"\n", " ]\n", "for a in algs:\n", " tables[a + \" - \" + f1Score] = calcTable(a, f1Score, ignore)\n", " tables[a + \" - \" + kScore] = calcTable(a, kScore, ignore)\n", " \n", "tables[algs[0] + \" - \" + f1Score]" ] }, { "cell_type": "code", "execution_count": null, "id": "befa2db4", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 19, "id": "453f491d", "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "LR - f1 score\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "LR - cohens kappa score\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "GB - f1 score\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "GB - cohens kappa score\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "KNN - f1 score\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "KNN - cohens kappa score\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "DoG - f1 score\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "DoG - cohens kappa score\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cmap = matplotlib.colors.ListedColormap([\n", " (1.0, x / 255.0, 0.0)\n", " for x in range(256)\n", " ] + [\n", " ((255 - x) / 255.0, (255 - x) / 255.0, x / 255.0)\n", " for x in range(256)\n", " ])\n", "\n", "cmap.set_extremes(bad=cmap(0.0), under=cmap(0.0), over=cmap(1.0))\n", "\n", "for k in tables.keys():\n", " print(k)\n", " labels = list(gans)\n", " t = tables[k]\n", " if k[0:3] == \"GAN\":\n", " continue\n", " labels = labels[-4:]\n", " t = [r[-4:] for r in t[-4:]]\n", " f = plt.figure(figsize=(5, 4))\n", " f.add_axes([0.4, 0.45, 0.6, 0.5])\n", " else:\n", " f = plt.figure(figsize=(7, 6))\n", " f.add_axes([0.27, 0.25, 0.7, 0.74])\n", " p = plt.imshow(t, cmap=cmap)\n", " plt.colorbar(p)\n", " plt.xticks(range(len(labels)), labels, rotation=\"vertical\")\n", " plt.yticks(range(len(labels)), labels)\n", " plt.savefig(f\"data_result/statistics/successCount/statistic-{k}.pdf\")\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 35, "id": "e4397945", "metadata": {}, "outputs": [], "source": [ "class Table:\n", " def __init__(self, heading):\n", " self.heading = [str(h) for h in heading]\n", " self.sizes = [len(h) for h in self.heading]\n", " self.rows = []\n", " \n", " def add(self, row):\n", " row = [str(r) for r in row]\n", " self.rows.append(row)\n", " self.sizes = [max(a,len(b)) for (a, b) in zip(self.sizes, row)]\n", " \n", " def separator(self):\n", " return \"|\".join([\"-\" * n for n in self.sizes])\n", " \n", " def showRow(self, row):\n", " def pad(n, t):\n", " while len(t) < n:\n", " t += \" \"\n", " return t\n", " \n", " return \"|\".join([pad(n, t) for (n,t) in zip(self.sizes, row)])\n", " \n", " def show(self):\n", " print(self.showRow(self.heading))\n", " print(self.separator())\n", " for row in self.rows:\n", " print(self.showRow(row))\n", " \n", " def showLatex(self, caption, key):\n", " \n", " columnConfig = \"|\".join([\"l\"] + [\"@{\\\\hskip3pt}c@{\\\\hskip3pt}\" for h in self.heading[1:]])\n", " heading = \"\\\\begin{table*}[ht]\\\\scriptsize\"\n", " heading += \"\\\\caption{\" + caption + \"}\\\\label{\" + key + \"}\"\n", " heading += \"\\\\centering\\\\tabularnewline\"\n", " heading += \"\\\\begin{tabular}{\" + columnConfig + \"}\\hline\"\n", " footer = \"\\hline\\end{tabular}\\end{table*}\"\n", " \n", " print(heading)\n", " print(\" & \".join([\"\\\\textbf{\" + h + \"}\" for h in self.heading]))\n", " print(\"\\\\tabularnewline\")\n", " print(\"\\\\hline\")\n", " for row in self.rows:\n", " print(\" & \".join(row))\n", " print(\"\\\\tabularnewline\")\n", " print(footer)" ] }, { "cell_type": "markdown", "id": "87e9d6f8", "metadata": {}, "source": [ "\\begin{table*}[ht]\n", "\\scriptsize\n", "\\caption{LR classifier (1)}\n", "\\label{tbl:results:lr1}\n", "\\centering\n", "\\tabularnewline\n", "\\begin{tabular}{l |@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt} c @{\\hskip3pt}|@{\\hskip3pt} c@{\\hskip3pt}|@{\\hskip3pt} c@{\\hskip3pt}| @{\\hskip3pt}c @{\\hskip3pt}}\n", "\\hline\n", "\n", "\\textbf{dataset ($f_1~$score$~/~\\kappa~$score)} & \\textbf{ProWRAS} & \\textbf{Repeater} & \\textbf{SimpleGAN} & \\textbf{ctGAN} & \\textbf{CTAB GAN} \\tabularnewline\n", "\\hline\n", "abalone 17 vs 7 8 9 10 & 0.340 / 0.314 & 0.275 / 0.244 & 0.339 / 0.327 & 0.172 / 0.140 & 0.189 / 0.153 \\tabularnewline\n", "abalone9 18 & 0.568 / 0.535 & 0.458 / 0.409 & 0.562 / 0.540 & 0.315 / 0.267 & 0.471 / 0.427 \\tabularnewline\n", "car good & 0.100 / 0.029 & 0.106 / 0.035 & 0.073 / 0.013 & 0.107 / 0.036 & 0.106 / 0.035 \\tabularnewline\n", "car vgood & 0.395 / 0.357 & 0.362 / 0.320 & 0.192 / 0.153 & 0.322 / 0.276 & 0.367 / 0.328 \\tabularnewline\n", "flare F & 0.276 / 0.226 & 0.263 / 0.210 & 0.328 / 0.311 & 0.332 / 0.289 & 0.346 / 0.308 \\tabularnewline\n", "hypothyroid & 0.400 / 0.353 & 0.357 / 0.304 & 0.414 / 0.393 & 0.289 / 0.229 & 0.248 / 0.207 \\tabularnewline\n", "kddcup guess passwd vs satan & 0.997 / 0.996 & 0.997 / 0.996 & 0.981 / 0.980 & 1.000 / 1.000 & 0.996 / 0.996 \\tabularnewline\n", "kr vs k three vs eleven & 0.965 / 0.964 & 0.942 / 0.941 & 0.943 / 0.941 & 0.575 / 0.558 & 0.702 / 0.691 \\tabularnewline\n", "kr vs k zero one vs draw & 0.744 / 0.732 & 0.650 / 0.632 & 0.758 / 0.748 & 0.401 / 0.364 & 0.739 / 0.727 \\tabularnewline\n", "shuttle 2 vs 5 & 0.998 / 0.998 & 0.998 / 0.998 & 0.983 / 0.982 & 0.980 / 0.980 & 0.991 / 0.991 \\tabularnewline\n", "winequality red 4 & 0.143 / 0.090 & 0.113 / 0.056 & 0.013 / 0.009 & 0.108 / 0.059 & 0.127 / 0.080 \\tabularnewline\n", "yeast4 & 0.243 / 0.197 & 0.236 / 0.188 & 0.292 / 0.279 & 0.231 / 0.188 & 0.282 / 0.252 \\tabularnewline\n", "yeast5 & 0.592 / 0.574 & 0.574 / 0.555 & 0.533 / 0.520 & 0.530 / 0.510 & 0.612 / 0.598 \\tabularnewline\n", "yeast6 & 0.291 / 0.262 & 0.242 / 0.210 & 0.406 / 0.396 & 0.226 / 0.195 & 0.399 / 0.382 \\tabularnewline\n", "\n", "\n", "\\hline\n", "\n", "\\end{tabular}\n", "%\\vspace{-6mm}\n", "\\end{table*}" ] }, { "cell_type": "code", "execution_count": 21, "id": "d0e2faa0", "metadata": {}, "outputs": [], "source": [ "def tableRow(algo, dataset):\n", " row = []\n", " for gan in (list(gans)[-1:] if algo[0:3] == \"GAN\" else gans):\n", " v = getValueOf(gan, dataset, algo, f1Score)\n", " w = getValueOf(gan, dataset, algo, kScore)\n", " row.append((v, w))\n", " return row" ] }, { "cell_type": "code", "execution_count": 36, "id": "8c820b02", "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "% ### LR\n", "\n", "\\begin{table*}[ht]\\scriptsize\\caption{LR}\\label{tab:results:LR}\\centering\\tabularnewline\\begin{tabular}{l|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}}\\hline\n", "\\textbf{dataset ($f_1~$score$~/~\\kappa~$score)} & \\textbf{Repeater} & \\textbf{ProWRAS} & \\textbf{GAN} & \\textbf{ctGAN} & \\textbf{CTAB GAN} & \\textbf{convGAN majority 5} & \\textbf{convGAN proximary 5}\n", "\\tabularnewline\n", "\\hline\n", "abalone 17 vs 7 8 9 10 & 0.275 / 0.244 & 0.340 / 0.314 & 0.354 / 0.335 & 0.172 / 0.140 & 0.189 / 0.153 & 0.296 / 0.266 & 0.305 / 0.276 \n", "\\tabularnewline\n", "abalone9 18 & 0.458 / 0.409 & 0.568 / 0.535 & 0.477 / 0.442 & 0.315 / 0.267 & 0.471 / 0.427 & 0.523 / 0.483 & 0.518 / 0.478 \n", "\\tabularnewline\n", "car good & 0.106 / 0.035 & 0.100 / 0.029 & 0.091 / 0.021 & 0.107 / 0.036 & 0.106 / 0.035 & 0.107 / 0.036 & 0.108 / 0.037 \n", "\\tabularnewline\n", "car vgood & 0.362 / 0.320 & 0.395 / 0.357 & 0.369 / 0.335 & 0.322 / 0.276 & 0.367 / 0.328 & 0.379 / 0.339 & 0.381 / 0.341 \n", "\\tabularnewline\n", "flare F & 0.263 / 0.210 & 0.276 / 0.226 & 0.334 / 0.300 & 0.332 / 0.289 & 0.346 / 0.308 & 0.267 / 0.216 & 0.272 / 0.221 \n", "\\tabularnewline\n", "hypothyroid & 0.357 / 0.304 & 0.400 / 0.353 & 0.287 / 0.265 & 0.289 / 0.229 & 0.248 / 0.207 & 0.366 / 0.314 & 0.363 / 0.311 \n", "\\tabularnewline\n", "kddcup guess passwd vs satan & 0.997 / 0.996 & 0.997 / 0.996 & 0.994 / 0.994 & 1.000 / 1.000 & 0.996 / 0.996 & 0.991 / 0.991 & 0.997 / 0.996 \n", "\\tabularnewline\n", "kr vs k three vs eleven & 0.942 / 0.941 & 0.965 / 0.964 & 0.954 / 0.953 & 0.575 / 0.558 & 0.702 / 0.691 & 0.950 / 0.948 & 0.952 / 0.950 \n", "\\tabularnewline\n", "kr vs k zero one vs draw & 0.650 / 0.632 & 0.744 / 0.732 & 0.791 / 0.782 & 0.401 / 0.364 & 0.739 / 0.727 & 0.708 / 0.694 & 0.711 / 0.697 \n", "\\tabularnewline\n", "shuttle 2 vs 5 & 0.998 / 0.998 & 0.998 / 0.998 & 0.990 / 0.990 & 0.980 / 0.980 & 0.991 / 0.991 & 0.994 / 0.994 & 0.994 / 0.994 \n", "\\tabularnewline\n", "winequality red 4 & 0.113 / 0.056 & 0.143 / 0.090 & 0.025 / 0.020 & 0.108 / 0.059 & 0.127 / 0.080 & 0.129 / 0.074 & 0.129 / 0.073 \n", "\\tabularnewline\n", "yeast4 & 0.236 / 0.188 & 0.243 / 0.197 & 0.260 / 0.245 & 0.231 / 0.188 & 0.282 / 0.252 & 0.244 / 0.199 & 0.246 / 0.200 \n", "\\tabularnewline\n", "yeast5 & 0.574 / 0.555 & 0.592 / 0.574 & 0.558 / 0.545 & 0.530 / 0.510 & 0.612 / 0.598 & 0.589 / 0.571 & 0.584 / 0.566 \n", "\\tabularnewline\n", "yeast6 & 0.242 / 0.210 & 0.291 / 0.262 & 0.436 / 0.426 & 0.226 / 0.195 & 0.399 / 0.382 & 0.296 / 0.268 & 0.293 / 0.264 \n", "\\tabularnewline\n", "\\hline Average & 0.470 / 0.436 & 0.504 / 0.473 & 0.494 / 0.475 & 0.399 / 0.364 & 0.470 / 0.441 & 0.489 / 0.457 & 0.490 / 0.457 \n", "\\tabularnewline\n", "maximum & 0.071 / 0.071 & 0.071 / 0.071 & 0.071 / 0.071 & 0.071 / 0.071 & 0.071 / 0.071 & 0.071 / 0.071 & 0.071 / 0.071 \n", "\\tabularnewline\n", "\\hline\\end{tabular}\\end{table*}\n", "\n", "% ### GB\n", "\n", "\\begin{table*}[ht]\\scriptsize\\caption{GB}\\label{tab:results:GB}\\centering\\tabularnewline\\begin{tabular}{l|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}}\\hline\n", "\\textbf{dataset ($f_1~$score$~/~\\kappa~$score)} & \\textbf{Repeater} & \\textbf{ProWRAS} & \\textbf{GAN} & \\textbf{ctGAN} & \\textbf{CTAB GAN} & \\textbf{convGAN majority 5} & \\textbf{convGAN proximary 5}\n", "\\tabularnewline\n", "\\hline\n", "abalone 17 vs 7 8 9 10 & 0.333 / 0.311 & 0.339 / 0.321 & 0.261 / 0.249 & 0.195 / 0.178 & 0.211 / 0.199 & 0.294 / 0.273 & 0.320 / 0.299 \n", "\\tabularnewline\n", "abalone9 18 & 0.388 / 0.352 & 0.399 / 0.361 & 0.362 / 0.333 & 0.324 / 0.292 & 0.371 / 0.340 & 0.348 / 0.307 & 0.374 / 0.335 \n", "\\tabularnewline\n", "car good & 0.839 / 0.831 & 0.845 / 0.840 & 0.853 / 0.847 & 0.533 / 0.504 & 0.773 / 0.765 & 0.718 / 0.709 & 0.714 / 0.704 \n", "\\tabularnewline\n", "car vgood & 0.938 / 0.935 & 0.973 / 0.972 & 0.967 / 0.966 & 0.812 / 0.803 & 0.974 / 0.973 & 0.950 / 0.948 & 0.936 / 0.933 \n", "\\tabularnewline\n", "flare F & 0.283 / 0.235 & 0.132 / 0.113 & 0.222 / 0.208 & 0.326 / 0.285 & 0.184 / 0.167 & 0.205 / 0.190 & 0.179 / 0.165 \n", "\\tabularnewline\n", "hypothyroid & 0.781 / 0.768 & 0.789 / 0.779 & 0.808 / 0.799 & 0.742 / 0.727 & 0.803 / 0.794 & 0.789 / 0.778 & 0.793 / 0.781 \n", "\\tabularnewline\n", "kddcup guess passwd vs satan & 1.000 / 1.000 & 1.000 / 1.000 & 0.982 / 0.982 & 1.000 / 1.000 & 1.000 / 1.000 & 1.000 / 1.000 & 1.000 / 1.000 \n", "\\tabularnewline\n", "kr vs k three vs eleven & 0.995 / 0.995 & 0.995 / 0.995 & 0.995 / 0.995 & 0.748 / 0.739 & 0.995 / 0.995 & 0.997 / 0.997 & 0.995 / 0.995 \n", "\\tabularnewline\n", "kr vs k zero one vs draw & 0.944 / 0.942 & 0.961 / 0.960 & 0.971 / 0.969 & 0.636 / 0.617 & 0.949 / 0.948 & 0.957 / 0.956 & 0.957 / 0.955 \n", "\\tabularnewline\n", "shuttle 2 vs 5 & 1.000 / 1.000 & 1.000 / 1.000 & 0.994 / 0.994 & 1.000 / 1.000 & 1.000 / 1.000 & 0.998 / 0.998 & 0.998 / 0.998 \n", "\\tabularnewline\n", "winequality red 4 & 0.127 / 0.094 & 0.096 / 0.070 & 0.079 / 0.067 & 0.106 / 0.081 & 0.091 / 0.076 & 0.136 / 0.097 & 0.126 / 0.087 \n", "\\tabularnewline\n", "yeast4 & 0.375 / 0.347 & 0.352 / 0.330 & 0.249 / 0.234 & 0.254 / 0.225 & 0.285 / 0.271 & 0.253 / 0.238 & 0.258 / 0.243 \n", "\\tabularnewline\n", "yeast5 & 0.714 / 0.705 & 0.708 / 0.699 & 0.709 / 0.700 & 0.630 / 0.617 & 0.687 / 0.678 & 0.723 / 0.715 & 0.721 / 0.713 \n", "\\tabularnewline\n", "yeast6 & 0.478 / 0.464 & 0.544 / 0.533 & 0.499 / 0.490 & 0.346 / 0.329 & 0.428 / 0.417 & 0.493 / 0.483 & 0.485 / 0.476 \n", "\\tabularnewline\n", "\\hline Average & 0.657 / 0.641 & 0.652 / 0.641 & 0.639 / 0.631 & 0.547 / 0.528 & 0.625 / 0.616 & 0.633 / 0.621 & 0.633 / 0.620 \n", "\\tabularnewline\n", "maximum & 0.071 / 0.071 & 0.071 / 0.071 & 0.071 / 0.071 & 0.071 / 0.071 & 0.071 / 0.071 & 0.071 / 0.071 & 0.071 / 0.071 \n", "\\tabularnewline\n", "\\hline\\end{tabular}\\end{table*}\n", "\n", "% ### KNN\n", "\n", "\\begin{table*}[ht]\\scriptsize\\caption{KNN}\\label{tab:results:KNN}\\centering\\tabularnewline\\begin{tabular}{l|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}}\\hline\n", "\\textbf{dataset ($f_1~$score$~/~\\kappa~$score)} & \\textbf{Repeater} & \\textbf{ProWRAS} & \\textbf{GAN} & \\textbf{ctGAN} & \\textbf{CTAB GAN} & \\textbf{convGAN majority 5} & \\textbf{convGAN proximary 5}\n", "\\tabularnewline\n", "\\hline\n", "abalone 17 vs 7 8 9 10 & 0.315 / 0.291 & 0.337 / 0.314 & 0.153 / 0.143 & 0.122 / 0.117 & 0.111 / 0.105 & 0.287 / 0.258 & 0.287 / 0.257 \n", "\\tabularnewline\n", "abalone9 18 & 0.342 / 0.286 & 0.395 / 0.347 & 0.194 / 0.177 & 0.213 / 0.196 & 0.132 / 0.118 & 0.366 / 0.310 & 0.342 / 0.283 \n", "\\tabularnewline\n", "car good & 0.357 / 0.312 & 0.720 / 0.706 & 0.496 / 0.472 & 0.247 / 0.190 & 0.390 / 0.349 & 0.545 / 0.517 & 0.568 / 0.542 \n", "\\tabularnewline\n", "car vgood & 0.413 / 0.375 & 0.805 / 0.797 & 0.736 / 0.725 & 0.308 / 0.260 & 0.634 / 0.614 & 0.689 / 0.673 & 0.677 / 0.660 \n", "\\tabularnewline\n", "flare F & 0.245 / 0.191 & 0.294 / 0.250 & 0.315 / 0.279 & 0.293 / 0.250 & 0.262 / 0.219 & 0.263 / 0.213 & 0.275 / 0.226 \n", "\\tabularnewline\n", "hypothyroid & 0.568 / 0.540 & 0.616 / 0.593 & 0.591 / 0.569 & 0.610 / 0.586 & 0.608 / 0.588 & 0.580 / 0.552 & 0.582 / 0.555 \n", "\\tabularnewline\n", "kddcup guess passwd vs satan & 0.991 / 0.991 & 0.991 / 0.991 & 0.991 / 0.991 & 0.991 / 0.991 & 0.991 / 0.991 & 0.982 / 0.982 & 0.987 / 0.987 \n", "\\tabularnewline\n", "kr vs k three vs eleven & 0.901 / 0.898 & 0.932 / 0.929 & 0.948 / 0.947 & 0.638 / 0.624 & 0.816 / 0.810 & 0.895 / 0.892 & 0.893 / 0.890 \n", "\\tabularnewline\n", "kr vs k zero one vs draw & 0.840 / 0.833 & 0.887 / 0.882 & 0.867 / 0.862 & 0.784 / 0.774 & 0.795 / 0.787 & 0.855 / 0.848 & 0.859 / 0.853 \n", "\\tabularnewline\n", "shuttle 2 vs 5 & 0.951 / 0.951 & 0.956 / 0.955 & 0.929 / 0.928 & 0.949 / 0.948 & 0.916 / 0.915 & 0.959 / 0.958 & 0.958 / 0.958 \n", "\\tabularnewline\n", "winequality red 4 & 0.069 / 0.016 & 0.072 / 0.020 & 0.024 / 0.006 & 0.043 / 0.000 & 0.040 / -0.010 & 0.077 / 0.019 & 0.070 / 0.012 \n", "\\tabularnewline\n", "yeast4 & 0.329 / 0.293 & 0.367 / 0.336 & 0.350 / 0.324 & 0.298 / 0.267 & 0.269 / 0.234 & 0.320 / 0.282 & 0.331 / 0.293 \n", "\\tabularnewline\n", "yeast5 & 0.670 / 0.657 & 0.689 / 0.677 & 0.679 / 0.668 & 0.599 / 0.582 & 0.706 / 0.696 & 0.641 / 0.626 & 0.647 / 0.632 \n", "\\tabularnewline\n", "yeast6 & 0.409 / 0.387 & 0.460 / 0.442 & 0.452 / 0.434 & 0.343 / 0.319 & 0.433 / 0.415 & 0.344 / 0.318 & 0.339 / 0.313 \n", "\\tabularnewline\n", "\\hline Average & 0.529 / 0.502 & 0.609 / 0.589 & 0.552 / 0.537 & 0.460 / 0.436 & 0.507 / 0.488 & 0.557 / 0.532 & 0.558 / 0.533 \n", "\\tabularnewline\n", "maximum & 0.071 / 0.071 & 0.071 / 0.071 & 0.071 / 0.071 & 0.071 / 0.071 & 0.071 / 0.071 & 0.070 / 0.070 & 0.070 / 0.070 \n", "\\tabularnewline\n", "\\hline\\end{tabular}\\end{table*}\n", "\n", "% ### DoG\n", "\n", "\\begin{table*}[ht]\\scriptsize\\caption{DoG}\\label{tab:results:DoG}\\centering\\tabularnewline\\begin{tabular}{l|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}|@{\\hskip3pt}c@{\\hskip3pt}}\\hline\n", "\\textbf{dataset ($f_1~$score$~/~\\kappa~$score)} & \\textbf{Repeater} & \\textbf{ProWRAS} & \\textbf{GAN} & \\textbf{ctGAN} & \\textbf{CTAB GAN} & \\textbf{convGAN majority 5} & \\textbf{convGAN proximary 5}\n", "\\tabularnewline\n", "\\hline\n", "abalone 17 vs 7 8 9 10 & ? / ? & ? / ? & ? / ? & ? / ? & ? / ? & 0.287 / 0.256 & 0.209 / 0.175 \n", "\\tabularnewline\n", "abalone9 18 & ? / ? & ? / ? & ? / ? & ? / ? & ? / ? & 0.442 / 0.394 & 0.443 / 0.395 \n", "\\tabularnewline\n", "car good & ? / ? & ? / ? & ? / ? & ? / ? & ? / ? & 0.693 / 0.678 & 0.626 / 0.606 \n", "\\tabularnewline\n", "car vgood & ? / ? & ? / ? & ? / ? & ? / ? & ? / ? & 0.706 / 0.693 & 0.723 / 0.711 \n", "\\tabularnewline\n", "flare F & ? / ? & ? / ? & ? / ? & ? / ? & ? / ? & 0.313 / 0.270 & 0.165 / 0.106 \n", "\\tabularnewline\n", "hypothyroid & ? / ? & ? / ? & ? / ? & ? / ? & ? / ? & 0.585 / 0.558 & 0.380 / 0.333 \n", "\\tabularnewline\n", "kddcup guess passwd vs satan & ? / ? & ? / ? & ? / ? & ? / ? & ? / ? & 0.984 / 0.983 & 0.996 / 0.996 \n", "\\tabularnewline\n", "kr vs k three vs eleven & ? / ? & ? / ? & ? / ? & ? / ? & ? / ? & 0.986 / 0.985 & 0.979 / 0.978 \n", "\\tabularnewline\n", "kr vs k zero one vs draw & ? / ? & ? / ? & ? / ? & ? / ? & ? / ? & 0.928 / 0.925 & 0.940 / 0.938 \n", "\\tabularnewline\n", "shuttle 2 vs 5 & ? / ? & ? / ? & ? / ? & ? / ? & ? / ? & 1.000 / 1.000 & 0.685 / 0.678 \n", "\\tabularnewline\n", "winequality red 4 & ? / ? & ? / ? & ? / ? & ? / ? & ? / ? & 0.095 / 0.040 & 0.089 / 0.031 \n", "\\tabularnewline\n", "yeast4 & ? / ? & ? / ? & ? / ? & ? / ? & ? / ? & 0.292 / 0.252 & 0.193 / 0.147 \n", "\\tabularnewline\n", "yeast5 & ? / ? & ? / ? & ? / ? & ? / ? & ? / ? & 0.570 / 0.551 & 0.353 / 0.322 \n", "\\tabularnewline\n", "yeast6 & ? / ? & ? / ? & ? / ? & ? / ? & ? / ? & 0.344 / 0.318 & 0.221 / 0.190 \n", "\\tabularnewline\n", "\\hline Average & 0.000 / 0.000 & 0.000 / 0.000 & 0.000 / 0.000 & 0.000 / 0.000 & 0.000 / 0.000 & 0.588 / 0.565 & 0.500 / 0.472 \n", "\\tabularnewline\n", "maximum & 0.000 / 0.000 & 0.000 / 0.000 & 0.000 / 0.000 & 0.000 / 0.000 & 0.000 / 0.000 & 0.071 / 0.071 & 0.071 / 0.071 \n", "\\tabularnewline\n", "\\hline\\end{tabular}\\end{table*}\n" ] } ], "source": [ "def p(f):\n", " if f is None:\n", " return \" ? \"\n", " else:\n", " return f\" {f:0.3f} \"\n", "\n", "def latex(text):\n", " r = \"\"\n", " for x in text:\n", " if x == \"_\" or x == \"-\":\n", " r += \" \"\n", " else:\n", " r += x\n", " return r\n", " \n", "for algo in algs:\n", " print()\n", " print(\"% ### \" + algo)\n", " print()\n", " f = \"\"\n", " heading = [\"dataset ($f_1~$score$~/~\\\\kappa~$score)\"]\n", " if algo[0:3] == \"GAN\":\n", " for g in list(gans)[-1:]:\n", " heading.append(latex(g))\n", " else:\n", " for g in gans:\n", " heading.append(latex(g))\n", " table = Table(heading)\n", " \n", " avg = [[0.0, 0.0] for h in heading[1:]]\n", " mx = [[0.0, 0.0] for h in heading[1:]]\n", " cnt = 0\n", " \n", " for d in testSets:\n", " d = cleanupName(d)\n", " if d not in ignore:\n", " cnt += 1\n", " row = tableRow(algo, d)\n", " line = [latex(d)]\n", " for (n, r) in enumerate(row):\n", " line.append(f\"{p(r[0])} / {p(r[1])}\")\n", " avg[n][0] += r[0] or 0.0\n", " avg[n][1] += r[1] or 0.0\n", " mx[n][0] = max(mx[n][0], r[0] or 0.0)\n", " mx[n][1] = max(mx[n][1], r[1] or 0.0)\n", " table.add(line)\n", " \n", " table.add([\"\\\\hline Average\"] + [f\"{p(a / cnt)} / {p(b / cnt)}\" for (a,b) in avg])\n", " table.add([\"maximum\"] + [f\"{p(a / cnt)} / {p(b / cnt)}\" for (a,b) in mx])\n", " \n", " tableB = None\n", " #if len(table.heading) > 5:\n", " # heading = [table.heading[0]] + table.heading[6:]\n", " # tableB = Table(heading)\n", " # tableB.sizes = [table.sizes[0]] + table.sizes[6:]\n", " # tableB.rows = [\n", " # [r[0]] + r[6:]\n", " # for r in table.rows\n", " # ]\n", " # table.heading = table.heading[0:6]\n", " # table.sizes = table.sizes[0:6]\n", " # table.rows = [\n", " # r[0:6]\n", " # for r in table.rows\n", " # ]\n", "\n", " table.showLatex(algo, \"tab:results:\" + algo)\n", " if tableB is not None:\n", " print()\n", " tableB.showLatex(algo, \"tab:results:\" + algo)\n", " \n" ] }, { "cell_type": "code", "execution_count": 23, "id": "f1b75f48", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3.272 - winequality-red-4\n", "11.183 - flare-F\n", "11.466 - abalone_17_vs_7_8_9_10\n", "12.302 - yeast4\n", "16.632 - abalone9-18\n", "17.136 - yeast6\n", "20.443 - car_good\n", "25.218 - hypothyroid\n", "28.642 - yeast5\n", "29.150 - car-vgood\n", "37.551 - kr-vs-k-zero-one_vs_draw\n", "41.417 - kr-vs-k-three_vs_eleven\n", "44.464 - shuttle-2_vs_5\n", "45.712 - kddcup-guess_passwd_vs_satan\n" ] } ], "source": [ "def dsWeight(d, score):\n", " w = 0.0\n", " for g in gans:\n", " for a in algs:\n", " x = getValueOf(g, d, a, score)\n", " if x is not None:\n", " w += x\n", " return w\n", "\n", "\n", "\n", "dataNames = [cleanupName(d) for d in testSets]\n", "dataNames.sort(key=lambda d: dsWeight(d, f1Score) + dsWeight(d, kScore))\n", "for d in dataNames:\n", " w = dsWeight(d, f1Score) + dsWeight(d, kScore)\n", " print(f\"{w:0.3f} - {d}\")" ] }, { "cell_type": "markdown", "id": "28bdb691", "metadata": {}, "source": [ "# Radar per GAN / algo" ] }, { "cell_type": "code", "execution_count": 24, "id": "7fe67f6a", "metadata": {}, "outputs": [], "source": [ "def latexRadarPicture(data, gan=\"?\"):\n", " lData = \"\"\n", " for k in data.keys():\n", " xs = data[k]\n", " if lData != \"\":\n", " lData += \",\\n \"\n", " for x in xs:\n", " if x is None or x < 0:\n", " lData += \"0.00/\"\n", " else:\n", " lData += f\"{x:0.3f}/\"\n", " lData += \"{\" + k.replace(\"_\", \"-\") + \"}\"\n", " \n", " angle = \"90 - \\\\i * 360 / __COUNT__\"\n", " \n", " return '''\n", "\\\\begin{tikzpicture}\n", " \\\\coordinate (origin) at (0, 0);\n", " \\\\node (title) at (0, 5) {''' + gan + '''};\n", "\n", " \\\\foreach[count=\\\\i] \\\\LR/\\\\GB/\\\\KNN/\\\\GAN/\\\\dim in {\n", " ''' + lData + '''\n", " }{\n", " \\\\coordinate (LR\\\\i) at (__ANGLE__: \\\\radarRadius * \\\\LR);\n", " \\\\coordinate (GB\\\\i) at (__ANGLE__: \\\\radarRadius * \\\\GB);\n", " \\\\coordinate (KNN\\\\i) at (__ANGLE__: \\\\radarRadius * \\\\KNN);\n", " \\\\coordinate (GAN\\\\i) at (__ANGLE__: \\\\radarRadius * \\\\GAN);\n", " \\\\node (title) [text width=2cm, text centered] at (__ANGLE__: \\\\radarRadius * 1.3) {\\\\tiny\\\\dim};\n", " \\\\coordinate (025x\\\\i) at (__ANGLE__: \\\\radarRadius * 0.25);\n", " \\\\coordinate (050x\\\\i) at (__ANGLE__: \\\\radarRadius * 0.50);\n", " \\\\coordinate (075x\\\\i) at (__ANGLE__: \\\\radarRadius * 0.75);\n", " \\\\coordinate (100x\\\\i) at (__ANGLE__: \\\\radarRadius * 1.00);\n", " \\\\draw [color=black!50] (origin) -- (100x\\\\i);\n", " }\n", "\n", " \\\\node (title) at (90: \\\\radarRadius * 0.25) {\\\\tiny0.25};\n", " \\\\node (title) at (90: \\\\radarRadius * 0.50) {\\\\tiny0.50};\n", " \\\\node (title) at (90: \\\\radarRadius * 0.75) {\\\\tiny0.75};\n", " \\\\node (title) at (90: \\\\radarRadius * 1.00) {\\\\tiny1.00};\n", "\n", " \\\\draw [color=red!80, thick] (LR1) \\\\foreach \\\\i in {2,...,__COUNT__}{-- (LR\\\\i)} --cycle;\n", " \\\\draw [color=blue!80, thick] (GB1) \\\\foreach \\\\i in {2,...,__COUNT__}{-- (GB\\\\i)} --cycle;\n", " \\\\draw [color=cyan!80, thick] (KNN1) \\\\foreach \\\\i in {2,...,__COUNT__}{-- (KNN\\\\i)} --cycle;\n", " \\\\draw [color=black!50, thick] (GAN1) \\\\foreach \\\\i in {2,...,__COUNT__}{-- (GAN\\\\i)} --cycle;\n", " \\\\draw [color=black!25, thin] (025x1) \\\\foreach \\\\i in {2,...,__COUNT__}{-- (025x\\\\i)} --cycle;\n", " \\\\draw [color=black!25, thin] (050x1) \\\\foreach \\\\i in {2,...,__COUNT__}{-- (050x\\\\i)} --cycle;\n", " \\\\draw [color=black!25, thin] (075x1) \\\\foreach \\\\i in {2,...,__COUNT__}{-- (075x\\\\i)} --cycle;\n", " \\\\draw [color=black!50, thin] (100x1) \\\\foreach \\\\i in {2,...,__COUNT__}{-- (100x\\\\i)} --cycle;\n", "\\\\end{tikzpicture}\n", "'''.replace(\"__ANGLE__\", angle).replace(\"__COUNT__\", str(len(data.keys())))" ] }, { "cell_type": "code", "execution_count": 25, "id": "74cfc4ba", "metadata": {}, "outputs": [], "source": [ "def getRadarData(gan, score):\n", " radarData = {}\n", " for d in dataNames:\n", " d = cleanupName(d)\n", " radarData[d] = [getValueOf(gan, d, a, f1Score) for a in algs]\n", " return radarData" ] }, { "cell_type": "code", "execution_count": 26, "id": "31b39078", "metadata": {}, "outputs": [], "source": [ "with open(\"documentation/paper/images/radarPlot.tex\", \"w\") as f:\n", " f.write(\"\\\\subsection{f-score}\\n\")\n", " #f.write(\"\\\\newcommand{\\\\pAngle}[3]{(0.25 + (#1 * 360 / #2): \\\\radarRadius * #3)}\")\n", " f.write(\"\\\\newcommand{\\\\radarRadius}{3.0cm}\")\n", " fl = False\n", " for gan in gans:\n", " if fl:\n", " f.write(\"\\\\hfill\")\n", " fl = False\n", " else:\n", " f.write(\"\\n\\n\")\n", " fl = True\n", " f.write(latexRadarPicture(getRadarData(gan, f1Score), gan))\n", " \n", " f.write(\"\\n\\n\\\\subsection{kappa-score}\\n\")\n", " for gan in gans:\n", " if fl:\n", " f.write(\"\\\\hfill\")\n", " fl = False\n", " else:\n", " f.write(\"\\n\\n\")\n", " fl = True\n", " f.write(latexRadarPicture(getRadarData(gan, kScore), gan))" ] }, { "cell_type": "markdown", "id": "b11b5a9a", "metadata": {}, "source": [ "# Radar per Algo / GAN" ] }, { "cell_type": "code", "execution_count": 27, "id": "3d407d30", "metadata": {}, "outputs": [], "source": [ "def latexRadarPicture(data, title=\"?\", rowTitles=None, colors=None):\n", " lData = \"\"\n", " keys = list(data.keys())\n", " for k in keys:\n", " if lData != \"\":\n", " lData += \",\\n \"\n", " lData += \"{\" + k.replace(\"_\", \"-\") + \"}\"\n", " \n", " angle = \"90 - \\\\i * 360 / __COUNT__\"\n", " \n", " if colors is None:\n", " colors = [\"red!80\", \"blue!80\", \"cyan!80\", \"black!80\", \"black!30\", \"red!40\"]\n", " \n", " tex = '''\n", "\\\\begin{tikzpicture}\n", " \\\\coordinate (origin) at (0, 0);\n", " \\\\node (title) at (0, 5) {''' + title + '''};\n", "\n", " \\\\foreach[count=\\\\i] \\\\axisTitle in {''' + lData + '''}{\n", " \\\\coordinate (025x\\\\i) at (__ANGLE__: \\\\radarRadius * 0.25);\n", " \\\\coordinate (050x\\\\i) at (__ANGLE__: \\\\radarRadius * 0.50);\n", " \\\\coordinate (075x\\\\i) at (__ANGLE__: \\\\radarRadius * 0.75);\n", " \\\\coordinate (100x\\\\i) at (__ANGLE__: \\\\radarRadius * 1.00);\n", " \\\\draw [color=black!50] (origin) -- (100x\\\\i);\n", " \\\\node (title) [text width=2cm, text centered] at (__ANGLE__: \\\\radarRadius * 1.3) {\\\\tiny\\\\axisTitle};\n", " }\n", "\n", " \\\\node (title) at (90: \\\\radarRadius * 0.25) {\\\\tiny0.25};\n", " \\\\node (title) at (90: \\\\radarRadius * 0.50) {\\\\tiny0.50};\n", " \\\\node (title) at (90: \\\\radarRadius * 0.75) {\\\\tiny0.75};\n", " \\\\node (title) at (90: \\\\radarRadius * 1.00) {\\\\tiny1.00};\n", "\n", " \\\\draw [color=black!25, thin] (025x1) \\\\foreach \\\\i in {2,...,__COUNT__}{-- (025x\\\\i)} --cycle;\n", " \\\\draw [color=black!25, thin] (050x1) \\\\foreach \\\\i in {2,...,__COUNT__}{-- (050x\\\\i)} --cycle;\n", " \\\\draw [color=black!25, thin] (075x1) \\\\foreach \\\\i in {2,...,__COUNT__}{-- (075x\\\\i)} --cycle;\n", " \\\\draw [color=black!50, thin] (100x1) \\\\foreach \\\\i in {2,...,__COUNT__}{-- (100x\\\\i)} --cycle;\n", "\n", "'''\n", "\n", " if rowTitles is not None:\n", " y = 4\n", " x = -4\n", " for (n, t) in enumerate(rowTitles):\n", " if x < 0:\n", " tex += \"\\\\node [color=\" + colors[n] + \"] (rowTitle) at (\" + str(x) + \", \" + str(y) + \") {\\\\tiny \" + t + \"};\"\n", " else:\n", " tex += \"\\\\node [color=\" + colors[n] + \"] (rowTitle) at (\" + str(x) + \", \" + str(y) + \") {\\\\tiny \" + t + \"};\"\n", " y -= 0.25\n", "\n", " x *= -1\n", " \n", " for n in range(len(data[keys[0]])):\n", " lData = \"\"\n", " for k in keys:\n", " if lData != \"\":\n", " lData += \",\"\n", " x = data[k][n]\n", " if x is None or x < 0:\n", " lData += \"0.00\"\n", " else:\n", " lData += f\"{x:0.3f}\"\n", "\n", " tex += '''\\\\foreach[count=\\\\i] \\\\axisValue in {''' + lData + '''}{\n", " \\\\coordinate (ROWx__ROW__x\\\\i) at (__ANGLE__: \\\\radarRadius * \\\\axisValue);\n", " }\n", " \n", " \\\\draw [color=__COLOR__, thick] (ROWx__ROW__x1) \\\\foreach \\\\i in {2,...,__COUNT__}{-- (ROWx__ROW__x\\\\i)} --cycle;\n", " '''.replace(\"__ROW__\", str(n)).replace(\"__COLOR__\", colors[n])\n", "\n", " tex += \"\\\\end{tikzpicture}\"\n", " \n", " return tex.replace(\"__ANGLE__\", angle).replace(\"__COUNT__\", str(len(data.keys())))" ] }, { "cell_type": "code", "execution_count": 28, "id": "eb1453f8", "metadata": {}, "outputs": [], "source": [ "def getRadarAlgData(alg, score):\n", " radarData = {}\n", " for d in dataNames:\n", " d = cleanupName(d)\n", " radarData[d] = [getValueOf(gan, d, alg, f1Score) for gan in gans]\n", " return radarData" ] }, { "cell_type": "markdown", "id": "a6796c67", "metadata": {}, "source": [ "gans = [gans[0], gans[-1]] + gans[1:-1] \n", "\n", "with open(\"documentation/paper/images/radarPlotAlg.tex\", \"w\") as f:\n", " f.write(\"\\\\subsection{f-score}\\n\")\n", " #f.write(\"\\\\newcommand{\\\\pAngle}[3]{(0.25 + (#1 * 360 / #2): \\\\radarRadius * #3)}\")\n", " #f.write(\"\\\\newcommand{\\\\radarRadius}{3.0cm}\")\n", " fl = False\n", " for a in algs:\n", " if fl:\n", " f.write(\"\\\\hfill\")\n", " fl = False\n", " else:\n", " f.write(\"\\n\\n\")\n", " fl = True\n", " f.write(latexRadarPicture(getRadarAlgData(a, f1Score), a, gans))\n", " \n", " f.write(\"\\n\\n\\\\subsection{kappa-score}\\n\")\n", " for a in algs:\n", " if fl:\n", " f.write(\"\\\\hfill\")\n", " fl = False\n", " else:\n", " f.write(\"\\n\\n\")\n", " fl = True\n", " f.write(latexRadarPicture(getRadarAlgData(a, kScore), a, gans))" ] }, { "cell_type": "markdown", "id": "6dc1357f", "metadata": { "scrolled": false }, "source": [ "for a in algs:\n", " showDiagnose(a, f1Score)\n", " showDiagnose(a, kScore)\n", " break\n", " \n", "#showDiagnoseAverage(f1Score)\n", "#showDiagnoseAverage(kScore)\n", "#\n", "#for t in testSets:\n", "# showDiagnoseDataset(cleanupName(t))\n", "#\n", "#showDiagnoseDataset(\"Average\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" } }, "nbformat": 4, "nbformat_minor": 5 }