{ "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", "Algorithm task: binary classification.\n", "\n", "Dataset stats ==================== >>\n", "Shape: (142193, 22)\n", "Memory: 61.69 MB\n", "Scaled: False\n", "Missing values: 316559 (10.1%)\n", "Categorical features: 5 (23.8%)\n", "Duplicate samples: 45 (0.0%)\n", "-------------------------------------\n", "Train set size: 113755\n", "Test set size: 28438\n", "-------------------------------------\n", "| | dataset | train | test |\n", "| - | -------------- | -------------- | -------------- |\n", "| 0 | 110316 (3.5) | 88253 (3.5) | 22063 (3.5) |\n", "| 1 | 31877 (1.0) | 25502 (1.0) | 6375 (1.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", " --> Dropping 637 samples due to missing values in feature MinTemp.\n", " --> Dropping 322 samples due to missing values in feature MaxTemp.\n", " --> Dropping 1406 samples due to missing values in feature Rainfall.\n", " --> Dropping 60843 samples due to missing values in feature Evaporation.\n", " --> Dropping 67816 samples due to missing values in feature Sunshine.\n", " --> Dropping 9330 samples due to missing values in feature WindGustDir.\n", " --> Dropping 9270 samples due to missing values in feature WindGustSpeed.\n", " --> Dropping 10013 samples due to missing values in feature WindDir9am.\n", " --> Dropping 3778 samples due to missing values in feature WindDir3pm.\n", " --> Dropping 1348 samples due to missing values in feature WindSpeed9am.\n", " --> Dropping 2630 samples due to missing values in feature WindSpeed3pm.\n", " --> Dropping 1774 samples due to missing values in feature Humidity9am.\n", " --> Dropping 3610 samples due to missing values in feature Humidity3pm.\n", " --> Dropping 14014 samples due to missing values in feature Pressure9am.\n", " --> Dropping 13981 samples due to missing values in feature Pressure3pm.\n", " --> Dropping 53657 samples due to missing values in feature Cloud9am.\n", " --> Dropping 57094 samples due to missing values in feature Cloud3pm.\n", " --> Dropping 904 samples due to missing values in feature Temp9am.\n", " --> Dropping 2726 samples due to missing values in feature Temp3pm.\n", " --> Dropping 1406 samples due to missing values in feature RainToday.\n", "Fitting Encoder...\n", "Encoding categorical columns...\n", " --> LeaveOneOut-encoding feature Location. Contains 26 classes.\n", " --> LeaveOneOut-encoding feature WindGustDir. Contains 16 classes.\n", " --> LeaveOneOut-encoding feature WindDir9am. Contains 16 classes.\n", " --> LeaveOneOut-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.7127\n", "Test evaluation --> f1: 0.5994\n", "Time elapsed: 1.697s\n", "-------------------------------------------------\n", "Total time: 1.697s\n", "\n", "\n", "Final results ==================== >>\n", "Total time: 1.699s\n", "-------------------------------------\n", "KNearestNeighbors --> f1: 0.5994\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.7127\n", "Test evaluation --> f1: 0.5994\n", "Time elapsed: 1.119s\n", "-------------------------------------------------\n", "Total time: 1.119s\n", "\n", "\n", "Final results ==================== >>\n", "Total time: 1.120s\n", "-------------------------------------\n", "KNearestNeighbors --> f1: 0.5994\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", "
score_trainscore_testtime_fittime
KNN0.71270.59941.6970751.697075
KNN_acc0.71270.59941.1191911.119191
\n", "
" ], "text/plain": [ " score_train score_test time_fit time\n", "KNN 0.7127 0.5994 1.697075 1.697075\n", "KNN_acc 0.7127 0.5994 1.119191 1.119191" ] }, "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://plot.ly" }, "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": [ 1.697075, 1.119191 ], "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": [ 1.697075, 1.119191 ], "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, "boxmode": "group", "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, 1.7863947368421051 ], "title": { "font": { "size": 16 }, "text": "time (s)" }, "type": "linear" }, "xaxis2": { "anchor": "y2", "automargin": true, "autorange": true, "domain": [ 0.55, 1 ], "range": [ 0, 1.7863947368421051 ], "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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", "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\")\n" ] } ], "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.10.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 }