blob: 3d6dabb7a1ed556f57621e2ba8f4906da00d7f32 [file] [log] [blame]
{
"cells": [
{
"cell_type": "markdown",
"id": "547cbc07",
"metadata": {},
"source": [
"# Implementation Comparison ASF DataSketches vs datasketch\n",
"\n",
"We compare implementations of the HyperLogLog algorithm from the [Apache Software Foundation DataSketches](https://github.com/apache/datasketches-cpp/tree/master/python) library and the open-source python [datasketch](https://github.com/ekzhu/datasketch). Both libraries present python implementations or bindings for common \"sketching\" algorithms.\n",
"In the writing we abbreviate the two implementations as `ASF:HLL` for the ASF DataSketches \n",
"and `datasketch:HLL` for the other implementation.\n",
"\n",
"This notebook needs easily available libraries that are available on PyPi."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "7e9b5d90",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"import numpy as np\n",
"import datasketches as asf\n",
"import datasketch as ds\n",
"import mmh3"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "33a4124b",
"metadata": {},
"outputs": [],
"source": [
"# Plotting parameters\n",
"method_plot_params = {\n",
" \"asf\" : {\"color\": \"C0\", \"marker\": '.'},\n",
" \"datasketch\" : {\"color\": \"C1\", \"marker\": \"^\"}\n",
"}\n",
"asf_color = method_plot_params[\"asf\"][\"color\"]\n",
"ds__color = method_plot_params[\"datasketch\"][\"color\"]\n",
"q90_ls = \"--\"\n",
"\n",
"params = {'legend.fontsize': 'x-large',\n",
" 'axes.labelsize': 'x-large',\n",
" 'axes.titlesize':'x-large',\n",
" 'xtick.labelsize':'x-large',\n",
" 'ytick.labelsize':'x-large',\n",
" \"lines.linewidth\": 2.5}\n",
"plt.rcParams.update(params)"
]
},
{
"cell_type": "markdown",
"id": "11f9a14b",
"metadata": {},
"source": [
"## HyperLogLog API\n",
"The two libraries implement HyperLogLog (HLL) slightly differently. We aim to find a baseline that highlights these differences. The following tables summarize the differences.\n",
"\n",
"| Feature | ASF DataSketches |\n",
"| --- | --- |\n",
"| **Type of hash functions** | 64-bit Murmurhash only |\n",
"| **Bucket sizes (bits)** | $4,6$ or $8$ bits. Bucket size does not affect accuracy, only sketch size in bits. | \n",
"|**Estimator** | Smoothly transitions across various estimators for greatest accuracy. Implements a higher accuracy estimator for the \"single\" sketch setting [cite here] |\n",
"\n",
"| Feature | datasketch |\n",
"| --- | --- |\n",
"| **Type of hash functions** | `hashlib` SHA1 by default but any other callable hash functions (e.g. 32 or 64 bit Murmurhash or xxhash) |\n",
"| **Bucket sizes (bits)** | $4$ for $32$ bit hash, $8$ for $64$ bit hash. | \n",
"|**Estimator** | Only the \"standard\" HLL estimators. |\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "9e0d0c7a",
"metadata": {},
"source": [
"### <a name=\"error_vs_cardinality\"></a>1. Error vs Cardinality \n",
"We study the error behaviour as the input cardinality increases. We provide an initial comparison to highlight the differences in the estimators.\n",
"These plots are crucial to understanding error distributions of sketches and are not presented in the `datasketch` library documentation.\n",
"\n",
"To generate the synthetic data, we use \"Fibonacci Hashing\" as a cheap way to generate a pseudorandom sequence. This process starts with an initial selection of a $64$-bit integer. Then, for every new item that must be generated, we add the full $64$ bit range scaled by the integer golden ratio so that every other update _intentionally_ overflows and maps once more back into the $64$ bit range.\n",
"\n",
"#### 1a. Single sketch estimation\n",
"\n",
"From the project root run\n",
"\n",
"```./cardinality_error_experiment.py -lgk 14 -lgt 7 -lgN 20``` \n",
"\n",
"which generates $8$ \"plot points\" between every power of $2$ not exceeding $N = 2^{21}$. We fix `-lgt 7` for $128$ trials and use a sketch size of with $2^{14}$. For every trial, an fresh sketch is initialised.\n",
"\n",
"*ASF DataSketches Sketch Setup*\n",
"- `hll = asf.hll_sketch(self.sketch_lgk)`\n",
"\n",
"*datasketch sketch setup*\n",
"- `h = ds.HyperLogLogPlusPlus(p=self.sketch_lgk, hashfunc=lambda x: mmh3.hash64(x, signed=False)[0])`\n",
"\n",
"This setting uses the default target type for the datasketches implementation which is $8$ bits per bucket.\n",
"Does HLL bucket size only affect the serialization?"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "1a237439",
"metadata": {},
"outputs": [],
"source": [
"asf_errors = pd.read_csv(\"../hll_accuracy_profile_20230504/DataSketches_hll_1516lgK_14_lgT_8trials_256.csv\", index_col=0)\n",
"ds__errors = pd.read_csv(\"../hll_accuracy_profile_20230504/datasketch_hll_1516lgK_14_lgT_8trials_256.csv\", index_col=0)\n",
"\n",
"lgk = 14"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "a542b13c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 0, 'Input cardinality $n$')"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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+OCDbB1LmTJl2LlzJ/369eO7775j8eLFdO3alYoVK5KcnMyFCxfYs2cPSUlJumE1omho3bo1kydPZs6cOdSpU4eBAwdia2vL2rVr8fT0NDuF3VtvvcX48eNp2LAhAwYMwNbWlqCgIM6fP0/v3r1Zv369yTqdO3fmzz//pHfv3jRq1AhbW1vatWtHu3btmDBhAoGBgbz44osMHDiQ8uXLc/bsWbZs2cJLL73E8uXLjba1dOlS5s2bR5s2bahatSqenp6EhISwfv167O3tmTJlisXjtba2ZvHixTg4OLBgwQL69+/PypUrsbe355NPPuHUqVP88ssvrF+/nk6dOlGhQgUiIiK4fPkyQUFBzJgxQzftpYuLiy4p49ChQ/H398fa2po+ffpQr149unXrxn/+8x+++OILatasSb9+/fDx8SE8PJwDBw7QokULFi1a9ER/P22vFCWbPb0ePXpEmTJldLk9rKysCAoK4tChQ9SsWZMVK1aYJKt8+eWXWb16NStXrqRhw4b07t2byMhIli9fTlpaGr/++mum0yS/8cYbODo68vXXxlPhDh06lGnTpvH6669z5MgRQkJC2L17N//3f/+Xae8GLSsrK1asWMGwYcNYu3YtVapUoXPnztSsWVOXX2TXrl3cu3ePd999N1vvjyhccnN9elKtWrXi7bffZtasWdSrV4+BAweSnJzM8uXLiYqKYs6cOfj6+hqtM3fuXKZPn87UqVONpvLt378/x48fp2rVqqSnp5ud5tdwaMiDBw/o3LkzUVFRdO7cmUOHDnHokOlU65amFs9OkkpQh8OtX7+etm3b4uPjg729PRcvXmTLli2kpaUxZswYi8NihchzBR0JEUJItFdRFGXIkCEKoAQEBGRZt2vXrgqgrF69WlEURdm/f7/y0UcfKa1bt1Z8fHwUOzs7xcnJSfH391dGjx6tnD592mQb2e0RkZsnaJcuXVL69++veHt7K3Z2doqHh4fSoUMH5ffff1fS09MtrhcZGam88cYbSsWKFRVbW1ulbNmyymuvvabcuHEj0/298847ipeXl3L37l2zr//9999K7dq1FVtbW6VKlSrKr7/+mu1j0UpKSlIWLFig9OzZUylbtqxia2uruLi4KHXq1FEmT55s8h5Lj4iiIT09XZkzZ45So0YNxc7OTilXrpwyYcIEJTo62uKT+MDAQKV+/fqK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tyIjI62mTZta999/v3XixInyPwEJCF034i1dM+ItXTNSGrpuxFu6ZioPZUSIiIiIiIiISLlRjQgRERERERERKTcKRIiIiIiIiIhIuVEgQkRERERERETKjQIRIiIiIiIiIlJuFIgQERERERERkXKjQISIiIiIiIiIlBsFIkRERERERESk3CgQISIiIiIiIiLlRoEIERERERERESk3CkSIiIiIiIiISLlRIEJEREREREREyo0CESIiIiIiIiJSbhSIEBEREfFQ8+bNad68ucuyXbt2YbPZmDhxYrn2pajjBqo/IiIinlIgQkREpBKx2WzYbLZAd6NE+jBcsej/Q0REKpKIQHdAREREpDJr1KgRmzdvJj4+PtBdASpef0RERApSIEJERESkDCIjI2nXrl2gu5GvovVHRESkIA3NEBERqcScU+537drF+PHjqV27NjExMfTs2ZPvvvuu2G22bNnCmDFjSEhIoGrVqpx//vnMnTu30DaLFi3CZrPx1FNPue2Hc+2Ep556ihYtWgDwwQcf5A8nsdlsvP/++x6f28qVKxk3bhyNGjUiOjqaBg0aMGLECL788kuX9d5//32uvPJKWrZsSZUqVYiLi2PAgAF8/PHHxZ57UlIS48aNo27duoSFhbFo0SIALMvi9ddfp2PHjsTExNCoUSPuueceUlJS3PbT3bCH0vy/eHsuRSnYn5L+P7Zs2YLNZmPo0KFF7rNz585ERkZy8ODBEo8/b948bDYbjz32GBs2bODaa6+lXr16VKtWjf79+7NixQqPz0VERIKTMiJERESCwO7du+nduzctW7bk+uuv58SJE3zxxRdcfvnl/Pjjj24/ZO7cuZN+/frRuXNnbr/9dg4ePMgXX3zBxRdfzKeffsq4ceNK1ZchQ4Zw6tQp/vWvf3HeeecxZsyY/Ne6du3q0T7eeecd7rzzTsLDwxk9ejRt2rThyJEjrF69mjfffJOrr746f90777yTjh07MmjQIBo0aMDx48eZNWsW119/PVu3buXZZ58ttP8dO3bQp08f2rZty4QJEzh79ixxcXEAPPDAA7z22ms0aNCA2267jcjISGbMmMGKFSvIysoiKirK45+Ft/8vpTmXkpT0/9GuXTuGDh3KwoULSUpKom3bti7bL1u2jA0bNnDllVfSoEGDEo/322+/AZCUlESvXr0YPnw4N954Ixs3bmTW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",
"text/plain": [
"<Figure size 1200x800 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(12,8))\n",
"\n",
"methods = [\"ASF\", \"datasketch\"]\n",
"\n",
"for i, (method, colour, df) in enumerate(zip(methods, [asf_color, ds__color], [asf_errors, ds__errors])):\n",
" xn = df.index \n",
" median = df.median(axis=1)\n",
" q95 = df.quantile(q=0.977725, axis=1)\n",
" q05 = df.quantile(q=0.022275, axis=1) # df.mean(axis=1) - df.std(axis=1)\n",
" ax.plot(xn, median,\n",
" color=colour, label=method+\": median\")\n",
" ax.plot(xn, q95,\n",
" color=colour, linestyle=q90_ls)\n",
" ax.plot(xn, q05,\n",
" color=colour, linestyle=q90_ls, label=method+\": 90% CI\")\n",
"\n",
"ax.plot(xn, 2.04/np.sqrt(1<<lgk)*np.ones_like(xn), \n",
" color=\"red\", lw=3., linestyle=\":\", label=\"q = 0.97725\")\n",
"ax.plot(xn, -2.04/np.sqrt(1<<lgk)*np.ones_like(xn), \n",
" color=\"red\", lw=3., linestyle=\"-.\", label=\"q=0.2275\")\n",
"\n",
"ax.set_xscale('log', base=10)\n",
"ax.legend(loc='upper center', bbox_to_anchor=(0.5, 1.15),\n",
" ncol=3, fancybox=True)\n",
"ax.grid()\n",
"ax.set_ylabel(r\"Relative Error: $ \\frac{n - \\hat{n}}{n}$\")\n",
"ax.set_xlabel(r\"Input cardinality $n$\")"
]
},
{
"cell_type": "markdown",
"id": "ce0cc56d",
"metadata": {},
"source": [
"**Experiment Summary**\n",
"\n",
"The plotted red lines represent $\\pm 2 \\sigma$ where, for HLL, the standard error of the estimator is $\\sigma = 1.04 / \\sqrt{k}$. \n",
"Hence, the area between the red lines is a confidence interval. We have chosen the quantiles \n",
"$q = 0.022275, 0.977725$ so that the area between the red lines is approximately a $90\\%$ confidence interval.\n",
"This test uses a number of buckets $k = 2^{14}$. Changing the number of buckets in the sketch alters the standard error so the red lines, and the behaviour of the error curves at quantile level $q$, would change appropriately.\n",
"\n",
"\n",
"Both implementations have a median that is centered about an error of $0$, suggesting that they are unbiased estimators. At small cardinalities, `ASF:HLL` is vastly better than the `datasketch:HLL`. This is because it transitions through various estimators to ensure small error. All of the curves for `ASF:HLL` have zero error until about $n = 10^3$ because it is in sparse mode and a different estimator can be used. Without this behaviour and resorting to the standard change of estimators as reported in [cite] can cause the wild error curves at small cardinalities. It is important to be accurate on low cardinality inputs as many big data streams are power-law distributed, so only a few have extremely large cardinality, while many might be have small cardinality.\n",
"\n",
"At large cardinalities, _for a single sketch_, `ASF:HLL` uses the HIP estimator which mildly improves on the standard large cardinality estimator. However, when we need to merge sketches later on, this behaviour will revert to the standard HLL estimator.\n",
"\n",
"### 2. Single sketch estimation: Real data\n",
"Now let's see what happens when we want sketch some real data. \n",
"We will download an opensource dataset from the [UCI Machine Learning Repository](https://archive.ics.uci.edu/ml/datasets/BitcoinHeistRansomwareAddressDataset#).\n"
]
},
{
"cell_type": "code",
"execution_count": 135,
"id": "91403f05",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" % Total % Received % Xferd Average Speed Time Time Time Current\n",
" Dload Upload Total Spent Left Speed\n",
"100 110M 100 110M 0 0 5252k 0 0:00:21 0:00:21 --:--:-- 6128k258k 0 0:07:18 0:00:01 0:07:17 260k3:51 0:00:02 0:03:49 491k40k 0 0:00:22 0:00:16 0:00:06 6121k\n"
]
}
],
"source": [
"!curl -o bitcoin.zip \"https://archive.ics.uci.edu/ml/machine-learning-databases/00526/data.zip\""
]
},
{
"cell_type": "code",
"execution_count": 137,
"id": "b1ffc601",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Archive: bitcoin.zip\n",
" inflating: BitcoinHeistData.csv \n"
]
}
],
"source": [
"!unzip bitcoin.zip"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "6b139532",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>address</th>\n",
" <th>year</th>\n",
" <th>day</th>\n",
" <th>length</th>\n",
" <th>weight</th>\n",
" <th>count</th>\n",
" <th>looped</th>\n",
" <th>neighbors</th>\n",
" <th>income</th>\n",
" <th>label</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>111K8kZAEnJg245r2cM6y9zgJGHZtJPy6</td>\n",
" <td>2017</td>\n",
" <td>11</td>\n",
" <td>18</td>\n",
" <td>0.008333</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>100050000.0</td>\n",
" <td>princetonCerber</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1123pJv8jzeFQaCV4w644pzQJzVWay2zcA</td>\n",
" <td>2016</td>\n",
" <td>132</td>\n",
" <td>44</td>\n",
" <td>0.000244</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>100000000.0</td>\n",
" <td>princetonLocky</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>112536im7hy6wtKbpH1qYDWtTyMRAcA2p7</td>\n",
" <td>2016</td>\n",
" <td>246</td>\n",
" <td>0</td>\n",
" <td>1.000000</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>200000000.0</td>\n",
" <td>princetonCerber</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1126eDRw2wqSkWosjTCre8cjjQW8sSeWH7</td>\n",
" <td>2016</td>\n",
" <td>322</td>\n",
" <td>72</td>\n",
" <td>0.003906</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>71200000.0</td>\n",
" <td>princetonCerber</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1129TSjKtx65E35GiUo4AYVeyo48twbrGX</td>\n",
" <td>2016</td>\n",
" <td>238</td>\n",
" <td>144</td>\n",
" <td>0.072848</td>\n",
" <td>456</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>200000000.0</td>\n",
" <td>princetonLocky</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" address year day length weight count \n",
"0 111K8kZAEnJg245r2cM6y9zgJGHZtJPy6 2017 11 18 0.008333 1 \\\n",
"1 1123pJv8jzeFQaCV4w644pzQJzVWay2zcA 2016 132 44 0.000244 1 \n",
"2 112536im7hy6wtKbpH1qYDWtTyMRAcA2p7 2016 246 0 1.000000 1 \n",
"3 1126eDRw2wqSkWosjTCre8cjjQW8sSeWH7 2016 322 72 0.003906 1 \n",
"4 1129TSjKtx65E35GiUo4AYVeyo48twbrGX 2016 238 144 0.072848 456 \n",
"\n",
" looped neighbors income label \n",
"0 0 2 100050000.0 princetonCerber \n",
"1 0 1 100000000.0 princetonLocky \n",
"2 0 2 200000000.0 princetonCerber \n",
"3 0 2 71200000.0 princetonCerber \n",
"4 0 1 200000000.0 princetonLocky "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bitcoin_df = pd.read_csv(\"BitcoinHeistData.csv\", header=0)\n",
"bitcoin_df.head()"
]
},
{
"cell_type": "markdown",
"id": "e84320f6",
"metadata": {},
"source": [
"Let's focus on the simple task of counting how many unique addresses are present in the dataset.\n",
"With native pandas functionality, we see that there are about $2.6$ million unique addresses.\n",
"We will use HLL sketches to estimate this count."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "00a8f7bf",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 1.15 s, sys: 89.9 ms, total: 1.24 s\n",
"Wall time: 1.26 s\n"
]
}
],
"source": [
"%%time\n",
"true_count = bitcoin_df[\"address\"].nunique()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "30521d71",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"There are 2631095 unique addresses\n"
]
}
],
"source": [
"print(f\"There are {true_count} unique addresses\")"
]
},
{
"cell_type": "markdown",
"id": "318fef9e",
"metadata": {},
"source": [
"Now define equivalent sketches from both libraries.\n",
"We use $2^{14}$ buckets and $8$-bit HyperLogLog sketches for each implementation. The `datsketch:HLL` uses the MurmurHash library so that we have equivalent sketches for comparison."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "a5ee01e2",
"metadata": {},
"outputs": [],
"source": [
"asf_hll = asf.hll_sketch(14, asf.HLL_8)\n",
"ds_hll = ds.HyperLogLogPlusPlus(p=14, hashfunc=lambda x: mmh3.hash64(x, signed=False)[0])"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "3652c114",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 3.93 s, sys: 32 ms, total: 3.96 s\n",
"Wall time: 4.01 s\n"
]
}
],
"source": [
"%%time\n",
"for ad in bitcoin_df[\"address\"]:\n",
" asf_hll.update(ad)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "5b59567b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 9.33 s, sys: 36.8 ms, total: 9.37 s\n",
"Wall time: 9.52 s\n"
]
}
],
"source": [
"%%time\n",
"for ad in bitcoin_df[\"address\"]:\n",
" ds_hll.update(ad)"
]
},
{
"cell_type": "markdown",
"id": "aedd1cbe",
"metadata": {},
"source": [
"On this simple example we see that the datasketches implementation takes about $4$ seconds compared to about $10$ for datasketch. Note that these times are longer than for the native Pandas call to nunique; this is not a problem because, unlike `pd.nunique(.)` the sketches are designed for large datasets not entirely held in memory.\n",
"\n",
"For estimation, we have the following behaviour for the single sketches. Since we have the true count, we can also evaluate the error."
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "e2c2fb5c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ASF estimate: 2650083.4660\n",
"ASF error: 0.7217 %\n"
]
}
],
"source": [
"# DataSketches\n",
"print(f\"ASF estimate: {asf_hll.get_estimate():.4f}\")\n",
"print(f\"ASF error: {100*(asf_hll.get_estimate()-true_count)/true_count:.4f} %\")"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "04607338",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"datasketch estimate: 2646133.7361\n",
"datasketch error: 0.5716 %\n"
]
}
],
"source": [
"# Datasketch\n",
"print(f\"datasketch estimate: {ds_hll.count():.4f}\")\n",
"print(f\"datasketch error: {100*(ds_hll.count() - true_count)/true_count:.4f} %\")"
]
},
{
"cell_type": "markdown",
"id": "d88fc63f",
"metadata": {},
"source": [
"On this example, the datasketch implementation has a lower error than the ASF method. However, this was a single sketch so we cannot draw any strong conclusions. Rather, we would have to study the error distribution as previously done in [Section 1](error_vs_cardinality). \n",
"\n",
"We run $25$ independent trials of each algorithm, each trial with a fresh sketch.\n",
"Since HLL is deterministic given the hash seed, with no change to the input we would obtain the same output every time. To avoid this, we prepend the trial number to every incoming string so that the number of unique items remains the same but the streams are superficially different."
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "4e7b941c",
"metadata": {},
"outputs": [],
"source": [
"lgk = 14\n",
"num_trials = 25\n",
"\n",
"all_asf_hll = [asf.hll_sketch(14, asf.HLL_8) for _ in range(num_trials)]\n",
"all_ds_hll = [ds.HyperLogLogPlusPlus(p=14, hashfunc=lambda x: mmh3.hash64(x, signed=False)[0]) for _ in range(num_trials)]\n",
"\n",
"asf_hll_estimates = np.zeros((num_trials,), dtype=float)\n",
"asf_hll_errors = np.zeros_like(asf_hll_estimates)\n",
"ds__hll_estimates = np.zeros_like(asf_hll_estimates)\n",
"ds__hll_errors = np.zeros_like(asf_hll_estimates)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "ec3fb80b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 2min 2s, sys: 1.34 s, total: 2min 3s\n",
"Wall time: 2min 9s\n"
]
}
],
"source": [
"%%time\n",
"for trial in range(num_trials):\n",
" for ad in bitcoin_df[\"address\"]:\n",
" all_asf_hll[trial].update(str(trial) + ad)\n",
" asf_hll_estimates[trial] = all_asf_hll[trial].get_estimate()"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "68f3e787",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 4min 18s, sys: 806 ms, total: 4min 19s\n",
"Wall time: 4min 21s\n"
]
}
],
"source": [
"%%time\n",
"for trial in range(num_trials):\n",
" for i, ad in enumerate(bitcoin_df[\"address\"]):\n",
" all_ds_hll[trial].update(str(trial) + ad)\n",
" ds__hll_estimates[trial] = all_ds_hll[trial].count()"
]
},
{
"cell_type": "markdown",
"id": "254e2d14",
"metadata": {},
"source": [
"The ASF HLL runs in about half of the time as the datasketch implementation.\n",
"However, we are also interested in the distribution of errors for each sketch implementation.\n",
"Since we have fewer trials than in Section 1, we plot a box and whisker diagram which is still useful in understanding the error distribution, despite being less informative about the full error distribution than the pitchfork plots from Section 1. The plot can be interpreted as a cross-section of the pitchfork plot at the vertical line $n = 2631095$."
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "a00a0f70",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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sf7+taaNi5oVJnxERobLshAZmG2jgdKCJ7cpLRDbkdGqd8KXmJiIPn36oEOHDggICEBoaCh++OEHnD9/HmVlNfyVQUQ6dUNWhCV7VZdlWbLvApdlIdJnoz/XbjsySPVO+F577TW4ublh9erV8Pf3R0ZGBj744AP07NkTLVq00GaMRKQlp6/cw2OrskAQgDNX7ukkHiLSggt7tNuODFK91+G7efMm4uLi4OnpqVKel5eHs2fPNjgwItI+QXg83assb+JAiEh7xnwm3pFbuTRLdbjThtGr9wzf4MGDkZ2drVbu6OiI4cOHNyQmImokHRyrX2/PzZHLshDpLSt7YHgYAEkNDSRiPRddNmr1TvjmzJmDjz76CLdv39ZmPETUiApKy6stLyytqLaciPTA9bPAjvGA2gUblQSx/jrPvhmzep/SHT9+PADA29sbY8aMwaBBg9CrVy/07NkTNjZctZ+oOarcaaNq2sedNoj03J5XVJdkqVyPz8QMj+7QKhPbLbzQ5OFR81DvGb5r167hP//5D959910oFAps2LAB/v7+sLe3x9NPP63NGIlIS7jTBpEBmnYQsLAVn5uYAa883Ev3lZhHyZ+FrdiOjFa9Z/jat2+P9u3bY/ToR+v6FBYW4vfff8f58+fV2td0sTgRNa2J/TrALr83Rn8v7rQxijttEOm3Vm7AmyniOnsv/wC07QaczQGcnwVe+684szftoNiOjFa9E77q2NjYYNCgQRg0aJBaXUUFrxEiai5at7BUeSQiPdfK7dHpWoXiUXn7XjyNSwC40wYRERGRwWPCR0RERGTgmPARERERGTgmfFXk5ORgxowZcHFxgaWlJTw8PLBw4ULcu1e3bafy8vKwcOFCeHh4wNLSEi4uLpgxYwZycnK0NrZEIqnxa+DAgXWKl4zP3QclKo9ERGTYtHrThj7LyMiAr68vbt26hXHjxqFr1644deoU1q9fj9jYWCQlJaF169a19nP37l34+vpCKpUiICAAkyZNQnp6OiIiInDgwAGcOHFCbTu6+o7t7u6OadOmqZW7urrW++dAhm936lUs2XUaAPDmrtP4uKU7JvJOXSIig8aE76E333wTt27dwoYNGzBv3jxleWhoKNatW4f3338fmzdvrrWf9957D1KpFKGhofj888+V5Rs2bMCCBQvw5ptvIjY2Vitje3h4YPny5fX4bklf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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"asf_hll_errors = (asf_hll_estimates - true_count) / true_count\n",
"datasketch_hll_errors = (ds__hll_estimates - true_count) / true_count\n",
"\n",
"for arr in [asf_hll_errors, datasketch_hll_errors]:\n",
" arr.sort()\n",
"\n",
"fig, ax = plt.subplots()\n",
"error_data = {\"ASF\": asf_hll_errors, \"datasketch\": datasketch_hll_errors}\n",
"\n",
"#\n",
"box_plot = ax.boxplot(list(error_data.values()), vert=True)\n",
"for median in box_plot['medians']:\n",
" median.set_color('black')\n",
" \n",
"\n",
"\n",
"ax.scatter(np.ones_like(asf_hll_errors), asf_hll_errors, marker=\".\")\n",
"ax.scatter(2*np.ones_like(datasketch_hll_errors), datasketch_hll_errors, marker=\"x\")\n",
"ax.set_xticks([1,2], list(error_data.keys()))\n",
"ax.set_ylabel(r\"Relative Error: $ \\frac{n - \\hat{n}}{n}$\")\n",
"ax.grid()"
]
},
{
"cell_type": "markdown",
"id": "3755cc1f",
"metadata": {},
"source": [
"The error statistics from the experiment are as follows."
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "a8b6c959",
"metadata": {},
"outputs": [],
"source": [
"experiment_error_statistics = {\n",
" \"ASF\": {\"median\" : None, \"IQR\" : None}, \n",
" \"datasketch\": {\"median\" : None, \"IQR\" : None}\n",
"}\n",
"key_list = list(experiment_error_statistics.keys())\n",
"\n",
"for i, m in enumerate(box_plot[\"medians\"]):\n",
" method_median = m.get_data()[0][0]\n",
" experiment_error_statistics[key_list[i]][\"median\"] = method_median\n",
"\n",
"for i, line in enumerate(box_plot[\"boxes\"]):\n",
" liney = line.get_ydata()\n",
" iqr = liney.max() - liney.min()\n",
" experiment_error_statistics[key_list[i]][\"IQR\"] = iqr"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "35b55d5f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'ASF': {'median': 0.925, 'IQR': 0.009980189698406661},\n",
" 'datasketch': {'median': 1.925, 'IQR': 0.015456189289630978}}"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"experiment_error_statistics"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "27d5b8ae",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Library Median IQR \n",
"------------------------------------\n",
"ASF 0.9250 0.0100 \n",
"datasketch 1.9250 0.0155 \n",
"\n",
"\n",
"\n",
"xChange Median IQR \n",
"------------------------------------\n",
" 0.4805 0.6457 \n"
]
}
],
"source": [
"print(\"{:<12}{:<12}{:<12}\".format(\"Library\", \"Median\", \"IQR\"))\n",
"print(\"-\"*36)\n",
"for k,vd in experiment_error_statistics.items():\n",
" print(\"{:<12}{:<12.4f}{:<12.4f}\".format(k, vd[\"median\"], vd[\"IQR\"]))\n",
" \n",
"print(\"\\n\"*2)\n",
"print(\"{:<12}{:<12}{:<12}\".format(\"xChange\", \"Median\", \"IQR\"))\n",
"print(\"-\"*36)\n",
"median_factor = experiment_error_statistics[\"ASF\"][\"median\"] / experiment_error_statistics[\"datasketch\"][\"median\"]\n",
"iqr_factor = experiment_error_statistics[\"ASF\"][\"IQR\"] / experiment_error_statistics[\"datasketch\"][\"IQR\"]\n",
"print(\"{:<12}{:<12.4f}{:<12.4f}\".format(\"\", median_factor, iqr_factor))"
]
},
{
"cell_type": "markdown",
"id": "3352f4ed",
"metadata": {},
"source": [
"These tables show that, in this example, the median reported solution using ASF DataSketches HLL is about $50\\%$ closer to the true input cardinality. Meanwhile, the interquartile range is about $65\\%$ smaller when using `ASF:HLL` rather than `datasketch:HLL`. In other words, the error distribution is more tightly concentrated about the true answer."
]
},
{
"cell_type": "markdown",
"id": "8a615abf",
"metadata": {},
"source": [
"## 3. Other key differences\n",
"\n",
"There are other crucial differences in each library's API of which users should be aware.\n",
"\n",
"1. The `update()` method for `ASF:HLL` accepts inputs as integers, strings, bytes, and floats. On the other hand, `datasketch:HLL` library only accepts byte and string type inputs."
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "60df51ec",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4.000000029802323"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Datasketches HLL can accept multiple inputs\n",
"# These are treated as different items in a single sketch.\n",
"asf_hll_types = asf.hll_sketch(14, asf.HLL_8)\n",
"asf_hll_types.update(1)\n",
"asf_hll_types.update(1.0)\n",
"asf_hll_types.update(str(1))\n",
"\n",
"xx = 1\n",
"xx_bytes = xx.to_bytes(64, \"little\")\n",
"asf_hll_types.update(xx_bytes)\n",
"\n",
"asf_hll_types.get_estimate()"
]
},
{
"cell_type": "code",
"execution_count": 344,
"id": "410a3bd4",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Exception on integer input\n",
"Exception on float input\n",
"Accepts bytes input\n",
"Accepts string input\n",
"2.000122080247517\n"
]
}
],
"source": [
"# datasketch HLL needs bytes\n",
"dhll_type = ds.HyperLogLogPlusPlus(14, hashfunc=lambda x: mmh3.hash64(x, signed=False)[0])\n",
"try:\n",
" dhll_type.update(1)\n",
"except:\n",
" print(\"Exception on integer input\")\n",
" \n",
"try:\n",
" dhll_type.update(1.0)\n",
"except:\n",
" print(\"Exception on float input\")\n",
" \n",
"try:\n",
" dhll_type.update(xx_bytes)\n",
" print(\"Accepts bytes input\")\n",
"except:\n",
" print(\"Exception on string input\")\n",
" \n",
"try:\n",
" dhll_type.update(str(1))\n",
" print(\"Accepts string input\")\n",
"except:\n",
" print(\"Exception on string input\")\n",
" \n",
"print(dhll_type.count()) # only two distinct items inserted into the sketch."
]
},
{
"cell_type": "markdown",
"id": "08c695a5",
"metadata": {},
"source": [
"2. The ASF HLL implementation comes with `get_upper_bound()` and `get_lower_bound()` functions. These enable the user to understand with what confidence. On the other hand, the `datasketch` implementation returns only the estimated count.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "64b95f07",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Lower bound (1 std. dev) as % of true value: 99.8909\n",
"ASF HyperLogLog estimate as % of true value: 100.5406\n",
"Upper bound (1 std. dev) as % of true value: 101.1989\n"
]
}
],
"source": [
"asf_hll_sketch = all_asf_hll[0]\n",
"print(f\"Lower bound (1 std. dev) as % of true value: {(100*asf_hll_sketch.get_lower_bound(1) / true_count):.4f}\")\n",
"print(f\"ASF HyperLogLog estimate as % of true value: {(100*asf_hll_sketch.get_estimate() / true_count):.4f}\")\n",
"print(f\"Upper bound (1 std. dev) as % of true value: {(100*asf_hll_sketch.get_upper_bound(1) / true_count):.4f}\")\n"
]
},
{
"cell_type": "markdown",
"id": "9a55fa78",
"metadata": {},
"source": [
"3. In Section 2 that the `ASF:HLL` is substantially faster. We will study this more thoroughly in a later notebook."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "62724771",
"metadata": {},
"outputs": [],
"source": []
}
],
"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.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}