{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Example: Accelerating pipelines\n", "---------------------------------\n", "\n", "This example shows how to accelerate your models on cpu using [sklearnex](https://github.com/intel/scikit-learn-intelex).\n", "\n", "The data used is a variation on the [Australian weather dataset](https://www.kaggle.com/jsphyg/weather-dataset-rattle-package) from Kaggle. You can download it from [here](https://github.com/tvdboom/ATOM/blob/master/examples/datasets/weatherAUS.csv). The goal of this dataset is to predict whether or not it will rain tomorrow training a binary classifier on target `RainTomorrow`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load the data" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Import packages\n", "import pandas as pd\n", "from atom import ATOMClassifier" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
LocationMinTempMaxTempRainfallEvaporationSunshineWindGustDirWindGustSpeedWindDir9amWindDir3pm...Humidity9amHumidity3pmPressure9amPressure3pmCloud9amCloud3pmTemp9amTemp3pmRainTodayRainTomorrow
0MelbourneAirport18.026.921.47.08.9SSE41.0WSSE...95.054.01019.51017.08.05.018.526.0Yes0
1Adelaide17.223.40.0NaNNaNS41.0SWSW...59.036.01015.71015.7NaNNaN17.721.9No0
2Cairns18.624.67.43.06.1SSE54.0SSESE...78.057.01018.71016.63.03.020.824.1Yes0
3Portland13.616.84.21.20.0ESE39.0ESEESE...76.074.01021.41020.57.08.015.616.0Yes1
4Walpole16.419.90.0NaNNaNSE44.0SESE...78.070.01019.41018.9NaNNaN17.418.1No0
\n", "

5 rows × 22 columns

\n", "
" ], "text/plain": [ " Location MinTemp MaxTemp Rainfall Evaporation Sunshine \\\n", "0 MelbourneAirport 18.0 26.9 21.4 7.0 8.9 \n", "1 Adelaide 17.2 23.4 0.0 NaN NaN \n", "2 Cairns 18.6 24.6 7.4 3.0 6.1 \n", "3 Portland 13.6 16.8 4.2 1.2 0.0 \n", "4 Walpole 16.4 19.9 0.0 NaN NaN \n", "\n", " WindGustDir WindGustSpeed WindDir9am WindDir3pm ... Humidity9am \\\n", "0 SSE 41.0 W SSE ... 95.0 \n", "1 S 41.0 S WSW ... 59.0 \n", "2 SSE 54.0 SSE SE ... 78.0 \n", "3 ESE 39.0 ESE ESE ... 76.0 \n", "4 SE 44.0 SE SE ... 78.0 \n", "\n", " Humidity3pm Pressure9am Pressure3pm Cloud9am Cloud3pm Temp9am \\\n", "0 54.0 1019.5 1017.0 8.0 5.0 18.5 \n", "1 36.0 1015.7 1015.7 NaN NaN 17.7 \n", "2 57.0 1018.7 1016.6 3.0 3.0 20.8 \n", "3 74.0 1021.4 1020.5 7.0 8.0 15.6 \n", "4 70.0 1019.4 1018.9 NaN NaN 17.4 \n", "\n", " Temp3pm RainToday RainTomorrow \n", "0 26.0 Yes 0 \n", "1 21.9 No 0 \n", "2 24.1 Yes 0 \n", "3 16.0 Yes 1 \n", "4 18.1 No 0 \n", "\n", "[5 rows x 22 columns]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Load data\n", "X = pd.read_csv(\"./datasets/weatherAUS.csv\")\n", "\n", "# Let's have a look\n", "X.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Run the pipeline" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "<< ================== ATOM ================== >>\n", "\n", "Configuration ==================== >>\n", "Algorithm task: Binary classification.\n", "\n", "Dataset stats ==================== >>\n", "Shape: (142193, 22)\n", "Train set size: 113755\n", "Test set size: 28438\n", "-------------------------------------\n", "Memory: 25.03 MB\n", "Scaled: False\n", "Missing values: 316559 (10.1%)\n", "Categorical features: 5 (23.8%)\n", "Duplicates: 45 (0.0%)\n", "\n" ] } ], "source": [ "atom = ATOMClassifier(X, \"RainTomorrow\", verbose=2)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fitting Imputer...\n", "Imputing missing values...\n", " --> Imputing 637 missing values with mean (12.18) in column MinTemp.\n", " --> Imputing 322 missing values with mean (23.22) in column MaxTemp.\n", " --> Imputing 1406 missing values with mean (2.37) in column Rainfall.\n", " --> Imputing 60843 missing values with mean (5.46) in column Evaporation.\n", " --> Imputing 67816 missing values with mean (7.62) in column Sunshine.\n", " --> Imputing 9330 missing values with most_frequent (W) in column WindGustDir.\n", " --> Imputing 9270 missing values with mean (39.96) in column WindGustSpeed.\n", " --> Imputing 10013 missing values with most_frequent (N) in column WindDir9am.\n", " --> Imputing 3778 missing values with most_frequent (SE) in column WindDir3pm.\n", " --> Imputing 1348 missing values with mean (13.99) in column WindSpeed9am.\n", " --> Imputing 2630 missing values with mean (18.62) in column WindSpeed3pm.\n", " --> Imputing 1774 missing values with mean (68.86) in column Humidity9am.\n", " --> Imputing 3610 missing values with mean (51.48) in column Humidity3pm.\n", " --> Imputing 14014 missing values with mean (1017.64) in column Pressure9am.\n", " --> Imputing 13981 missing values with mean (1015.24) in column Pressure3pm.\n", " --> Imputing 53657 missing values with mean (4.44) in column Cloud9am.\n", " --> Imputing 57094 missing values with mean (4.5) in column Cloud3pm.\n", " --> Imputing 904 missing values with mean (16.98) in column Temp9am.\n", " --> Imputing 2726 missing values with mean (21.68) in column Temp3pm.\n", " --> Imputing 1406 missing values with most_frequent (No) in column RainToday.\n", "Fitting Encoder...\n", "Encoding categorical columns...\n", " --> Target-encoding feature Location. Contains 49 classes.\n", " --> Target-encoding feature WindGustDir. Contains 16 classes.\n", " --> Target-encoding feature WindDir9am. Contains 16 classes.\n", " --> Target-encoding feature WindDir3pm. Contains 16 classes.\n", " --> Ordinal-encoding feature RainToday. Contains 2 classes.\n" ] } ], "source": [ "# Impute missing values and encode categorical columns\n", "atom.impute()\n", "atom.encode()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Training ========================= >>\n", "Models: KNN\n", "Metric: f1\n", "\n", "\n", "Results for KNearestNeighbors:\n", "Fit ---------------------------------------------\n", "Train evaluation --> f1: 0.6962\n", "Test evaluation --> f1: 0.5818\n", "Time elapsed: 16.214s\n", "-------------------------------------------------\n", "Time: 16.214s\n", "\n", "\n", "Final results ==================== >>\n", "Total time: 16.249s\n", "-------------------------------------\n", "KNearestNeighbors --> f1: 0.5818\n" ] } ], "source": [ "# Train a K-Nearest Neighbors model (using default sklearn)\n", "atom.run(models=\"KNN\", metric=\"f1\")" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Training ========================= >>\n", "Models: KNN_acc\n", "Metric: f1\n", "\n", "\n", "Results for KNearestNeighbors:\n", "Fit ---------------------------------------------\n", "Train evaluation --> f1: 0.6962\n", "Test evaluation --> f1: 0.5818\n", "Time elapsed: 5.443s\n", "-------------------------------------------------\n", "Time: 5.443s\n", "\n", "\n", "Final results ==================== >>\n", "Total time: 5.477s\n", "-------------------------------------\n", "KNearestNeighbors --> f1: 0.5818\n" ] } ], "source": [ "# Now, we train an accelerated KNN using engine=\"sklearnex\"\n", "# Note the diffrence in training speed!!\n", "atom.run(models=\"KNN_acc\", metric=\"f1\", engine=\"sklearnex\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analyze the results" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
f1_trainf1_testtime_fittime
KNN0.69620.581816.21396116.213961
KNN_acc0.69620.58185.4428555.442855
\n", "
" ], "text/plain": [ " f1_train f1_test time_fit time\n", "KNN 0.6962 0.5818 16.213961 16.213961\n", "KNN_acc 0.6962 0.5818 5.442855 5.442855" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "atom.results" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "KNeighborsClassifier(n_jobs=1)\n", "KNeighborsClassifier(n_jobs=1)\n", "sklearn.neighbors._classification\n", "sklearnex.neighbors.knn_classification\n" ] } ], "source": [ "# Note how the underlying estimators might look the same...\n", "print(atom.knn.estimator)\n", "print(atom.knn_acc.estimator)\n", "\n", "# ... but are using different implementations\n", "print(atom.knn.estimator.__module__)\n", "print(atom.knn_acc.estimator.__module__)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plotly.com" }, "data": [ { "hovertemplate": "%{x}time_fit", "legendgroup": "time_fit", "marker": { "color": "rgba(0, 98, 98, 0.2)", "line": { "color": "rgb(0, 98, 98)", "width": 2 } }, "name": "time_fit", "orientation": "h", "showlegend": true, "type": "bar", "x": [ 16.213961, 5.442855 ], "xaxis": "x", "y": [ "KNN", "KNN_acc" ], "yaxis": "y" }, { "hovertemplate": "%{x}time", "legendgroup": "time", "marker": { "color": "rgba(56, 166, 165, 0.2)", "line": { "color": "rgb(56, 166, 165)", "width": 2 } }, "name": "time", "orientation": "h", "showlegend": true, "type": "bar", "x": [ 16.213961, 5.442855 ], "xaxis": "x2", "y": [ "KNN", "KNN_acc" ], "yaxis": "y2" } ], "layout": { "annotations": [ { "font": { "size": 20 }, "showarrow": false, "text": "Training", "x": 0.225, "xanchor": "center", "xref": "paper", "y": 1.005, "yanchor": "bottom", "yref": "paper" }, { "font": { "size": 20 }, "showarrow": false, "text": "Total", "x": 0.775, "xanchor": "center", "xref": "paper", "y": 1.005, "yanchor": "bottom", "yref": "paper" } ], "bargroupgap": 0.05, "font": { "size": 12 }, "height": 600, "hoverlabel": { "font": { "size": 16 } }, "legend": { "bgcolor": "rgba(255, 255, 255, 0.5)", "font": { "size": 16 }, "groupclick": "togglegroup", "traceorder": "grouped" }, "margin": { "b": 50, "l": 50, "pad": 0, "r": 0, "t": 73 }, "showlegend": true, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "font": { "size": 24 }, "pad": { "b": 15, "t": 15 }, "text": "Timing engines: sklearn vs sklearnex", "x": 0.5, "xanchor": "center", "xref": "paper", "y": 1, "yanchor": "top" }, "width": 1250, "xaxis": { "anchor": "y", "automargin": true, "autorange": true, "domain": [ 0, 0.45 ], "range": [ 0, 17.067327368421054 ], "title": { "font": { "size": 16 }, "text": "time (s)" }, "type": "linear" }, "xaxis2": { "anchor": "y2", "automargin": true, "autorange": true, "domain": [ 0.55, 1 ], "range": [ 0, 17.067327368421054 ], "title": { "font": { "size": 16 }, "text": "time (s)" }, "type": "linear" }, "yaxis": { "anchor": "x", "automargin": true, "autorange": true, "categoryorder": "total ascending", "domain": [ 0, 1 ], "range": [ -0.5, 1.5 ], "title": { "font": { "size": 16 } }, "type": "category" }, "yaxis2": { "anchor": "x2", "automargin": true, "autorange": true, "categoryorder": "total ascending", "domain": [ 0, 1 ], "range": [ -0.5, 1.5 ], "title": { "font": { "size": 16 } }, "type": "category" } } }, "image/png": "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nmbMmGm/v+0vduaFV9jtd95nw0cMt802XNPWevtbbdIZF9uXD9u75xyZxc84EIAABCAAAQhUINCJRHvksafsrAuvsut+d0f5nab4frTrdpvZHjtvaQvMN0951tZ3oMeffHa2LrbbckP7yuH72Zi5R9nVv7q5/H503wP/tH+99HJ57PLLLGnv23w922OnLcvvOa0PEq1CoCyBAAQgkEAAiZYAi0MhkBuBTiRacavnsku/yW66/e6e8ddYdYXyjU/X/faO8gH/fX2WffOb7NtfP9hWWGbJnh/PSaINHzbMXp3+Wo+May0qvmh+82sHzfKCgzlJtBtuvtMWGbugPfjw47O19cl9d7YD9tze5hoxovzZ62+8Yaefe5mddt5P+422t6jLLX/mgQAEIAABCEAgncBAEu2m2+62zx0zebbvNMWZ1l1zZTvxyPG22CILdSzRiu9PZ110VZ+NbrD2qnbCkeNtkYUXKH+OREvPkxUQgAAEUggg0VJocSwEMiPQiUQr3qb5zjVWsk/us5Ot846VbOTIueZI4YV//dsuuOQa++65Py2vIjtgzx06kmhPP/O87bLdprbvB99vb15ycZv+2mt2yZW/tuO/8wPbaZt325c+89Gec89JorX3O2LECPvjX+6zL33jLBsxfLid9o1D7c1LLlb2dMPNd9mnvnCKLb3kovalgz9q66+9annM1Bdesh9ffYMVX1qRaJltesaBAAQgAAEIDJLAnL4/Fd+DPvvV0+wPd9xjB+79Adtzl61s/vnmsaeeeb78R7spl11nu++wuX3+0x+xUaNGVpJeM2fOtCeenmqnnfsTu+TK39jJR32yvCoNiTbIYFkOAQhAoAMCSLQOIHEIBHIl0IlEe/CRJ8qrznrfKjAQjyefnmqf+Pwk23Cd1eyzB36w51bMOV2JVnz5631scY5np/7Lxk882RaYf97yC2Lr9oc5SbSH/ln0e2jPv8gWdYovmyee/kObctn1dtZJh9s7VlvRpk9/zb466Tz7+fW32KSvfNLevf4as4zV1zkGmpufQwACEIAABCCQP4E5fX8qvj987LATbIetN7YjD9mrFGWtT3Fb56FHfcemPv9izz/qDebKseJxGgccfqId9LFdbbftN0ei5b/1mBACEBAggEQTCIEWIDBUBDqRaA8/9lQp0RZecP4+2yy+EF57w232u1v/Yk8+/Zw9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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "with atom.canvas(1, 2, title=\"Timing engines: sklearn vs sklearnex\"):\n", " atom.plot_results(metric=\"time_fit\", title=\"Training\")\n", " atom.plot_results(metric=\"time\", title=\"Total\")" ] } ], "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.11.2" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }