{
"cells": [
{
"cell_type": "markdown",
"id": "81e0620e",
"metadata": {},
"source": [
"Last updated: 16 Feb 2023\n",
"\n",
"# 👋 PyCaret Clustering Tutorial\n",
"\n",
"PyCaret is an open-source, low-code machine learning library in Python that automates machine learning workflows. It is an end-to-end machine learning and model management tool that exponentially speeds up the experiment cycle and makes you more productive.\n",
"\n",
"Compared with the other open-source machine learning libraries, PyCaret is an alternate low-code library that can be used to replace hundreds of lines of code with a few lines only. This makes experiments exponentially fast and efficient. PyCaret is essentially a Python wrapper around several machine learning libraries and frameworks, such as scikit-learn, XGBoost, LightGBM, CatBoost, spaCy, Optuna, Hyperopt, Ray, and a few more.\n",
"\n",
"The design and simplicity of PyCaret are inspired by the emerging role of citizen data scientists, a term first used by Gartner. Citizen Data Scientists are power users who can perform both simple and moderately sophisticated analytical tasks that would previously have required more technical expertise.\n"
]
},
{
"cell_type": "markdown",
"id": "8116e19d",
"metadata": {},
"source": [
"# 💻 Installation\n",
"\n",
"PyCaret is tested and supported on the following 64-bit systems:\n",
"- Python 3.7 – 3.10\n",
"- Python 3.9 for Ubuntu only\n",
"- Ubuntu 16.04 or later\n",
"- Windows 7 or later\n",
"\n",
"You can install PyCaret with Python's pip package manager:\n",
"\n",
"`pip install pycaret`\n",
"\n",
"PyCaret's default installation will not install all the extra dependencies automatically. For that you will have to install the full version:\n",
"\n",
"`pip install pycaret[full]`\n",
"\n",
"or depending on your use-case you may install one of the following variant:\n",
"\n",
"- `pip install pycaret[analysis]`\n",
"- `pip install pycaret[models]`\n",
"- `pip install pycaret[tuner]`\n",
"- `pip install pycaret[mlops]`\n",
"- `pip install pycaret[parallel]`\n",
"- `pip install pycaret[test]`"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "d7142a33",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'3.0.0'"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# check installed version\n",
"import pycaret\n",
"pycaret.__version__"
]
},
{
"cell_type": "markdown",
"id": "fb66e98d",
"metadata": {},
"source": [
"# 🚀 Quick start"
]
},
{
"cell_type": "markdown",
"id": "00347d44",
"metadata": {},
"source": [
"PyCaret's Clustering Module is an unsupervised machine learning module that performs the task of grouping a set of objects in such a way that objects in the same group (also known as a cluster) are more similar to each other than to those in other groups. \n",
"\n",
"It provides several pre-processing features that prepare the data for modeling through the setup function. It has over 10 ready-to-use algorithms and several plots to analyze the performance of trained models. \n",
"\n",
"A typical workflow in PyCaret's unsupervised module consist of following 6 steps in this order:\n",
"\n",
"### **Setup** ➡️ **Create Model** ➡️ **Assign Labels** ➡️ **Analyze Model** ➡️ **Prediction** ➡️ **Save Model**"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "956dfdab",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Age \n",
" Income \n",
" SpendingScore \n",
" Savings \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 58 \n",
" 77769 \n",
" 0.791329 \n",
" 6559.829923 \n",
" \n",
" \n",
" 1 \n",
" 59 \n",
" 81799 \n",
" 0.791082 \n",
" 5417.661426 \n",
" \n",
" \n",
" 2 \n",
" 62 \n",
" 74751 \n",
" 0.702657 \n",
" 9258.992965 \n",
" \n",
" \n",
" 3 \n",
" 59 \n",
" 74373 \n",
" 0.765680 \n",
" 7346.334504 \n",
" \n",
" \n",
" 4 \n",
" 87 \n",
" 17760 \n",
" 0.348778 \n",
" 16869.507130 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Age Income SpendingScore Savings\n",
"0 58 77769 0.791329 6559.829923\n",
"1 59 81799 0.791082 5417.661426\n",
"2 62 74751 0.702657 9258.992965\n",
"3 59 74373 0.765680 7346.334504\n",
"4 87 17760 0.348778 16869.507130"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# loading sample dataset from pycaret dataset module\n",
"from pycaret.datasets import get_data\n",
"data = get_data('jewellery')"
]
},
{
"cell_type": "markdown",
"id": "c00f6a4a",
"metadata": {},
"source": [
"## Setup\n",
"This function initializes the training environment and creates the transformation pipeline. Setup function must be called before executing any other function in PyCaret. It only has one required parameter i.e. `data`. All the other parameters are optional."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "97f2c6c6",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
" \n",
" \n",
" Description \n",
" Value \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" Session id \n",
" 123 \n",
" \n",
" \n",
" 1 \n",
" Original data shape \n",
" (505, 4) \n",
" \n",
" \n",
" 2 \n",
" Transformed data shape \n",
" (505, 4) \n",
" \n",
" \n",
" 3 \n",
" Numeric features \n",
" 4 \n",
" \n",
" \n",
" 4 \n",
" Preprocess \n",
" True \n",
" \n",
" \n",
" 5 \n",
" Imputation type \n",
" simple \n",
" \n",
" \n",
" 6 \n",
" Numeric imputation \n",
" mean \n",
" \n",
" \n",
" 7 \n",
" Categorical imputation \n",
" mode \n",
" \n",
" \n",
" 8 \n",
" CPU Jobs \n",
" -1 \n",
" \n",
" \n",
" 9 \n",
" Use GPU \n",
" False \n",
" \n",
" \n",
" 10 \n",
" Log Experiment \n",
" False \n",
" \n",
" \n",
" 11 \n",
" Experiment Name \n",
" cluster-default-name \n",
" \n",
" \n",
" 12 \n",
" USI \n",
" 3c6c \n",
" \n",
" \n",
"
\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# import pycaret clustering and init setup\n",
"from pycaret.clustering import *\n",
"s = setup(data, session_id = 123)"
]
},
{
"cell_type": "markdown",
"id": "3c583864",
"metadata": {},
"source": [
"Once the setup has been successfully executed it shows the information grid containing experiment level information. \n",
"\n",
"- **Session id:** A pseudo-random number distributed as a seed in all functions for later reproducibility. If no `session_id` is passed, a random number is automatically generated that is distributed to all functions. \n",
" \n",
"- **Original data shape:** Shape of the original data prior to any transformations. \n",
" \n",
"- **Transformed data shape:** Shape of data after transformations \n",
" \n",
"- **Numeric features :** The number of features considered as numerical. \n",
" \n",
"- **Categorical features :** The number of features considered as categorical. "
]
},
{
"cell_type": "markdown",
"id": "ada19398",
"metadata": {},
"source": [
"PyCaret has two set of API's that you can work with. (1) Functional (as seen above) and (2) Object Oriented API.\n",
"\n",
"With Object Oriented API instead of executing functions directly you will import a class and execute methods of class."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "32ee91c9",
"metadata": {},
"outputs": [],
"source": [
"# import ClusteringExperiment and init the class\n",
"from pycaret.clustering import ClusteringExperiment\n",
"exp = ClusteringExperiment()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "3ead9fb5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"pycaret.clustering.oop.ClusteringExperiment"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# check the type of exp\n",
"type(exp)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "f05b8590",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
" \n",
" \n",
" Description \n",
" Value \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" Session id \n",
" 123 \n",
" \n",
" \n",
" 1 \n",
" Original data shape \n",
" (505, 4) \n",
" \n",
" \n",
" 2 \n",
" Transformed data shape \n",
" (505, 4) \n",
" \n",
" \n",
" 3 \n",
" Numeric features \n",
" 4 \n",
" \n",
" \n",
" 4 \n",
" Preprocess \n",
" True \n",
" \n",
" \n",
" 5 \n",
" Imputation type \n",
" simple \n",
" \n",
" \n",
" 6 \n",
" Numeric imputation \n",
" mean \n",
" \n",
" \n",
" 7 \n",
" Categorical imputation \n",
" mode \n",
" \n",
" \n",
" 8 \n",
" CPU Jobs \n",
" -1 \n",
" \n",
" \n",
" 9 \n",
" Use GPU \n",
" False \n",
" \n",
" \n",
" 10 \n",
" Log Experiment \n",
" False \n",
" \n",
" \n",
" 11 \n",
" Experiment Name \n",
" cluster-default-name \n",
" \n",
" \n",
" 12 \n",
" USI \n",
" 6c6d \n",
" \n",
" \n",
"
\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# init setup on exp\n",
"exp.setup(data, session_id = 123)"
]
},
{
"cell_type": "markdown",
"id": "77213120",
"metadata": {},
"source": [
"You can use any of the two method i.e. Functional or OOP and even switch back and forth between two set of API's. The choice of method will not impact the results and has been tested for consistency.\n",
"___"
]
},
{
"cell_type": "markdown",
"id": "5de1eab6",
"metadata": {},
"source": [
"## Create Model\n",
"\n",
"This function trains and evaluates the performance of a given model. Metrics evaluated can be accessed using the `get_metrics` function. Custom metrics can be added or removed using the `add_metric` and `remove_metric` function. All the available models can be accessed using the `models` function."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "65a19df4",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
" \n",
" \n",
" Silhouette \n",
" Calinski-Harabasz \n",
" Davies-Bouldin \n",
" Homogeneity \n",
" Rand Index \n",
" Completeness \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 0.7207 \n",
" 5011.8115 \n",
" 0.4114 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" \n",
" \n",
"
\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Processing: 0%| | 0/3 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# train kmeans model\n",
"kmeans = create_model('kmeans')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "8e1442ef",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Name \n",
" Reference \n",
" \n",
" \n",
" ID \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" kmeans \n",
" K-Means Clustering \n",
" sklearn.cluster._kmeans.KMeans \n",
" \n",
" \n",
" ap \n",
" Affinity Propagation \n",
" sklearn.cluster._affinity_propagation.Affinity... \n",
" \n",
" \n",
" meanshift \n",
" Mean Shift Clustering \n",
" sklearn.cluster._mean_shift.MeanShift \n",
" \n",
" \n",
" sc \n",
" Spectral Clustering \n",
" sklearn.cluster._spectral.SpectralClustering \n",
" \n",
" \n",
" hclust \n",
" Agglomerative Clustering \n",
" sklearn.cluster._agglomerative.AgglomerativeCl... \n",
" \n",
" \n",
" dbscan \n",
" Density-Based Spatial Clustering \n",
" sklearn.cluster._dbscan.DBSCAN \n",
" \n",
" \n",
" optics \n",
" OPTICS Clustering \n",
" sklearn.cluster._optics.OPTICS \n",
" \n",
" \n",
" birch \n",
" Birch Clustering \n",
" sklearn.cluster._birch.Birch \n",
" \n",
" \n",
" kmodes \n",
" K-Modes Clustering \n",
" kmodes.kmodes.KModes \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Name \\\n",
"ID \n",
"kmeans K-Means Clustering \n",
"ap Affinity Propagation \n",
"meanshift Mean Shift Clustering \n",
"sc Spectral Clustering \n",
"hclust Agglomerative Clustering \n",
"dbscan Density-Based Spatial Clustering \n",
"optics OPTICS Clustering \n",
"birch Birch Clustering \n",
"kmodes K-Modes Clustering \n",
"\n",
" Reference \n",
"ID \n",
"kmeans sklearn.cluster._kmeans.KMeans \n",
"ap sklearn.cluster._affinity_propagation.Affinity... \n",
"meanshift sklearn.cluster._mean_shift.MeanShift \n",
"sc sklearn.cluster._spectral.SpectralClustering \n",
"hclust sklearn.cluster._agglomerative.AgglomerativeCl... \n",
"dbscan sklearn.cluster._dbscan.DBSCAN \n",
"optics sklearn.cluster._optics.OPTICS \n",
"birch sklearn.cluster._birch.Birch \n",
"kmodes kmodes.kmodes.KModes "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# to check all the available models\n",
"models()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "4954b77b",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
" \n",
" \n",
" Silhouette \n",
" Calinski-Harabasz \n",
" Davies-Bouldin \n",
" Homogeneity \n",
" Rand Index \n",
" Completeness \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 0.7393 \n",
" 3567.5370 \n",
" 0.3435 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" \n",
" \n",
"
\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Processing: 0%| | 0/3 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# train meanshift model\n",
"meanshift = create_model('meanshift')"
]
},
{
"cell_type": "markdown",
"id": "8aad62df",
"metadata": {},
"source": [
"## Assign Model\n",
"This function assigns cluster labels to the training data, given a trained model."
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "f1e54158",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Age \n",
" Income \n",
" SpendingScore \n",
" Savings \n",
" Cluster \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 58 \n",
" 77769 \n",
" 0.791329 \n",
" 6559.830078 \n",
" Cluster 2 \n",
" \n",
" \n",
" 1 \n",
" 59 \n",
" 81799 \n",
" 0.791082 \n",
" 5417.661621 \n",
" Cluster 2 \n",
" \n",
" \n",
" 2 \n",
" 62 \n",
" 74751 \n",
" 0.702657 \n",
" 9258.993164 \n",
" Cluster 2 \n",
" \n",
" \n",
" 3 \n",
" 59 \n",
" 74373 \n",
" 0.765680 \n",
" 7346.334473 \n",
" Cluster 2 \n",
" \n",
" \n",
" 4 \n",
" 87 \n",
" 17760 \n",
" 0.348778 \n",
" 16869.507812 \n",
" Cluster 0 \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 500 \n",
" 28 \n",
" 101206 \n",
" 0.387441 \n",
" 14936.775391 \n",
" Cluster 1 \n",
" \n",
" \n",
" 501 \n",
" 93 \n",
" 19934 \n",
" 0.203140 \n",
" 17969.693359 \n",
" Cluster 0 \n",
" \n",
" \n",
" 502 \n",
" 90 \n",
" 35297 \n",
" 0.355149 \n",
" 16091.402344 \n",
" Cluster 0 \n",
" \n",
" \n",
" 503 \n",
" 91 \n",
" 20681 \n",
" 0.354679 \n",
" 18401.087891 \n",
" Cluster 0 \n",
" \n",
" \n",
" 504 \n",
" 89 \n",
" 30267 \n",
" 0.289310 \n",
" 14386.351562 \n",
" Cluster 0 \n",
" \n",
" \n",
"
\n",
"
505 rows × 5 columns
\n",
"
"
],
"text/plain": [
" Age Income SpendingScore Savings Cluster\n",
"0 58 77769 0.791329 6559.830078 Cluster 2\n",
"1 59 81799 0.791082 5417.661621 Cluster 2\n",
"2 62 74751 0.702657 9258.993164 Cluster 2\n",
"3 59 74373 0.765680 7346.334473 Cluster 2\n",
"4 87 17760 0.348778 16869.507812 Cluster 0\n",
".. ... ... ... ... ...\n",
"500 28 101206 0.387441 14936.775391 Cluster 1\n",
"501 93 19934 0.203140 17969.693359 Cluster 0\n",
"502 90 35297 0.355149 16091.402344 Cluster 0\n",
"503 91 20681 0.354679 18401.087891 Cluster 0\n",
"504 89 30267 0.289310 14386.351562 Cluster 0\n",
"\n",
"[505 rows x 5 columns]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"kmeans_cluster = assign_model(kmeans)\n",
"kmeans_cluster"
]
},
{
"cell_type": "markdown",
"id": "6a77ec0c",
"metadata": {},
"source": [
"## Analyze Model"
]
},
{
"cell_type": "markdown",
"id": "595ea108",
"metadata": {},
"source": [
"You can use the `plot_model` function to analyzes the performance of a trained model on the test set. It may require re-training the model in certain cases."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "0ec7fad6",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
" \n",
" "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"customdata": [
[
89
],
[
85
],
[
88
],
[
94
],
[
89
],
[
87
],
[
92
],
[
85
],
[
93
],
[
86
],
[
79
],
[
82
],
[
89
],
[
84
],
[
87
],
[
86
],
[
94
],
[
88
],
[
95
],
[
89
],
[
86
],
[
85
],
[
87
],
[
89
],
[
92
],
[
85
],
[
90
],
[
90
],
[
84
],
[
88
],
[
84
],
[
88
],
[
91
],
[
89
],
[
86
],
[
88
],
[
87
],
[
85
],
[
82
],
[
79
],
[
91
],
[
85
],
[
94
],
[
85
],
[
88
],
[
89
],
[
88
],
[
89
],
[
89
],
[
87
],
[
87
],
[
90
],
[
88
],
[
90
],
[
88
],
[
93
],
[
90
],
[
91
],
[
89
],
[
84
],
[
87
],
[
85
],
[
87
],
[
88
],
[
88
],
[
85
],
[
87
],
[
90
],
[
86
],
[
91
],
[
91
],
[
87
],
[
92
],
[
89
],
[
84
],
[
88
],
[
89
],
[
84
],
[
91
],
[
91
],
[
88
],
[
85
],
[
92
],
[
91
],
[
83
],
[
83
],
[
83
],
[
84
],
[
86
],
[
81
],
[
91
],
[
91
],
[
82
],
[
94
],
[
82
],
[
86
],
[
94
],
[
91
],
[
88
],
[
83
],
[
91
],
[
91
],
[
87
],
[
86
],
[
85
],
[
87
],
[
92
],
[
87
],
[
88
],
[
87
],
[
82
],
[
84
],
[
91
],
[
97
],
[
92
],
[
83
],
[
91
],
[
90
],
[
90
],
[
84
],
[
91
],
[
84
],
[
84
],
[
94
],
[
86
],
[
92
],
[
87
],
[
88
],
[
91
],
[
87
],
[
90
],
[
87
],
[
87
],
[
88
],
[
90
],
[
83
],
[
93
],
[
84
],
[
83
],
[
94
],
[
90
],
[
84
],
[
83
],
[
83
],
[
91
],
[
92
],
[
83
]
],
"hovertemplate": "Cluster=Cluster 0 PCA1=%{x} PCA2=%{y} Feature=%{customdata[0]} ",
"legendgroup": "Cluster 0",
"marker": {
"color": "#636efa",
"opacity": 0.5,
"symbol": "circle"
},
"mode": "markers",
"name": "Cluster 0",
"orientation": "v",
"showlegend": true,
"textposition": "top center",
"type": "scatter",
"x": [
-45316.581389427374,
-49427.52412175888,
-47129.844161164685,
-47975.629885853,
-41047.37638673445,
-57176.86780758157,
-42194.79875082259,
-47211.309228383594,
-55300.438368619965,
-39708.646986385116,
-37510.58805740357,
-43231.47785779805,
-55368.98425714009,
-48469.75824737505,
-51191.18314121457,
-46897.28721880448,
-36822.88273567959,
-42594.243035417414,
-48754.553262303794,
-49610.67501721531,
-28705.212825263345,
-47927.75616068905,
-45592.662707943855,
-50446.68720778378,
-42805.17470565497,
-40907.25151543578,
-51240.79467140158,
-42382.6988227996,
-46294.696563603386,
-49640.51628007659,
-33685.82301953529,
-41654.28539711411,
-46752.17189818297,
-53680.72060591249,
-60035.35569518884,
-47339.94734492914,
-59885.18347781833,
-41090.432743024736,
-51335.69631678477,
-43219.5706384472,
-45489.120008583355,
-47271.41327800883,
-54957.490976530244,
-44945.69896471381,
-40724.15684584516,
-47490.05336010272,
-58306.893745623165,
-44680.89355364248,
-51006.625949623805,
-49952.56387007485,
-50055.78755676451,
-50029.04864430798,
-48459.57886574735,
-42253.87288275519,
-43012.76980619298,
-58127.503834469906,
-45508.35391168645,
-50504.82310462912,
-48762.364713996,
-37730.769294571925,
-28723.991918569285,
-46206.76075642487,
-44821.27196488107,
-56178.67329217832,
-49206.07300463819,
-54413.15852823437,
-45504.92819267482,
-53514.36611000951,
-43811.47260914543,
-63634.72202883467,
-39063.28666484058,
-63656.34761270805,
-53329.08892211857,
-56491.72617965686,
-53484.99043374052,
-57750.757755218016,
-42432.6451210219,
-48329.37517055244,
-47000.17167428389,
-48496.8479100809,
-53103.847928511896,
-46522.91946866403,
-39882.0232882802,
-46108.5643741535,
-45148.06214368701,
-57495.82749294876,
-48890.1620634034,
-48254.0062095681,
-56854.2449292782,
-41272.895354261316,
-55116.83598721045,
-58771.33010005759,
-51459.51352500545,
-56820.087514001265,
-42172.091374211624,
-39916.59061180589,
-48448.1898314992,
-49274.44239573865,
-46888.40588576984,
-47148.049525131864,
-51304.420783637215,
-49855.360193773886,
-49083.989006407,
-52219.788910884425,
-53905.330812432665,
-45889.16122740452,
-39730.75490897845,
-44207.36922040722,
-42334.04764915752,
-49618.5642662469,
-42152.50284228481,
-39255.47389259957,
-52957.61627730337,
-48338.70468800093,
-56895.33601319732,
-41183.65208626923,
-47591.22513143459,
-52877.381623309746,
-38257.01248030675,
-45243.3359459051,
-38870.67259289509,
-55003.11474871313,
-51590.97204811316,
-51858.95285548026,
-48031.600303378444,
-53120.54075530758,
-52745.27195482759,
-57888.98693996798,
-44891.72695125933,
-33223.78792540309,
-46621.67517287663,
-57945.294049611366,
-52350.13687817325,
-44316.39099715632,
-42485.198938817666,
-41229.08531754963,
-55837.89619000486,
-57516.27314156978,
-42546.30924747514,
-47366.649428725366,
-40392.52356154922,
-48086.4715980166,
-52508.303527129036,
-45053.50114082117,
-48867.33425333959,
-40276.44812098458,
-47072.83269048476
],
"xaxis": "x",
"y": [
72.34217763365419,
-3282.4965395289973,
-2166.945504634241,
-2697.480521875645,
163.0082475778472,
-500.3822652767259,
-2831.245268015842,
-497.02890750722275,
-2379.445630722072,
-2812.6407933646487,
-2385.9314929128664,
-2464.3656356469846,
-990.6072888551697,
-975.0114136119696,
-2999.048697401424,
-1500.6000118770833,
-3004.136044051589,
-4573.136558318882,
-3476.758241532864,
-2494.346157927883,
-2125.5165605467582,
1139.067591383127,
-1858.741442949728,
-1789.8301942200426,
-2383.9238128105276,
-2247.723767110281,
-337.58306102870245,
-1026.2176795347032,
-3445.141443035066,
-2403.4517367006006,
-2359.9807573111766,
-1284.276804921396,
-4260.668084206524,
-1523.1535588510797,
-2067.784524904224,
-2756.2106649257653,
968.1817045075763,
-2507.468602483165,
-2253.3241819888626,
-982.6375502407398,
-857.2362973575497,
-1422.2632977402075,
-1273.0338864987414,
-2663.4354555556265,
-3403.3543346107713,
-1025.6554152767997,
-1498.3071568123478,
-3320.238902579961,
1229.6345018341267,
-1016.3629330534905,
-458.73281868832174,
-2907.7976923646947,
-623.0250548560471,
-2813.408968099352,
-2388.397928565653,
-3329.4235557220845,
-1716.096216771758,
-2541.1034297579617,
-1902.30456623323,
-3447.522083521282,
-1283.2493348069195,
-3972.4381382736697,
-809.248028239832,
-1450.732271212416,
646.5434219075455,
-1055.9964673992274,
-1656.4246533860949,
-3511.6510358173923,
-3844.050469725101,
-958.5370357661066,
-2178.9510788997623,
-672.130776142057,
-3704.115462201349,
-1529.949851865195,
-2964.870935052016,
-1546.7861986769078,
-2804.317989764126,
-2106.955706664308,
-3258.592151182359,
-1255.0228766467976,
-1838.6649351563988,
-2395.1514908507816,
-3145.8380799741676,
-4704.899979069126,
-918.4435120938786,
-874.5934065316495,
-3117.0439521319945,
-3586.392580330958,
-1039.8872367476156,
-2039.0522118035894,
-3386.6308713700596,
-1946.4256473207154,
-1443.6315773519354,
-2626.4940910385008,
-3482.9500826311164,
-5860.40700494763,
-424.4946391842377,
-1819.141122643649,
-1747.2843051407021,
-948.1703671149696,
-1341.642033865233,
-2551.6401760254344,
-2706.953602076431,
-361.82290007413934,
776.7212819595751,
-3656.859751453876,
-3215.3115156639474,
-1788.5954480508228,
-946.4423236598792,
-1200.498978591492,
-3595.426920160017,
-2456.06295838429,
-512.1679220763313,
-296.94836353178636,
-219.83546115270886,
-2299.1778477879425,
-2876.0171941981107,
-1034.0459046785422,
-3209.704980791507,
-2386.7438202843036,
-4966.632164446527,
-1806.3718853762575,
-1709.6808347140882,
-1998.3145888103281,
-2520.879074299024,
-2373.9076829435644,
-3270.2493332029303,
-2297.4104831044383,
-1059.5101766806483,
-4327.5997846590935,
-1061.3925460477683,
-1690.2242432392866,
-1271.8366522528777,
-1681.1081908254478,
-1573.1294931068785,
-559.8885893852685,
-2913.1509550389637,
-2662.2372056655686,
-2323.9543527396136,
-2226.524522178832,
-1918.0710771595102,
-3267.664257900956,
-2003.3794666631088,
-3267.8529257017867,
-3330.095620391113,
-3159.402908770568,
-3652.142734722462
],
"yaxis": "y"
},
{
"customdata": [
[
35
],
[
39
],
[
33
],
[
31
],
[
35
],
[
29
],
[
38
],
[
37
],
[
31
],
[
36
],
[
29
],
[
38
],
[
84
],
[
34
],
[
31
],
[
33
],
[
39
],
[
33
],
[
33
],
[
34
],
[
31
],
[
31
],
[
37
],
[
32
],
[
36
],
[
85
],
[
34
],
[
30
],
[
29
],
[
30
],
[
33
],
[
30
],
[
37
],
[
88
],
[
36
],
[
30
],
[
33
],
[
28
],
[
33
],
[
26
],
[
35
],
[
33
],
[
31
],
[
40
],
[
36
],
[
31
],
[
36
],
[
28
],
[
37
],
[
36
],
[
84
],
[
43
],
[
30
],
[
34
],
[
37
],
[
33
],
[
31
],
[
29
],
[
31
],
[
30
],
[
42
],
[
37
],
[
37
],
[
27
],
[
24
],
[
30
],
[
34
],
[
33
],
[
22
],
[
28
],
[
33
],
[
31
],
[
35
],
[
31
],
[
30
],
[
34
],
[
31
],
[
44
],
[
35
],
[
30
],
[
86
],
[
30
],
[
39
],
[
31
],
[
35
],
[
38
],
[
29
],
[
36
],
[
34
],
[
32
],
[
35
],
[
34
],
[
31
],
[
28
],
[
84
],
[
36
],
[
34
],
[
29
],
[
28
],
[
30
],
[
33
],
[
32
],
[
38
],
[
32
],
[
34
],
[
31
],
[
32
],
[
32
],
[
29
],
[
25
],
[
25
],
[
59
],
[
35
],
[
29
],
[
29
],
[
28
],
[
37
],
[
37
],
[
37
],
[
35
],
[
31
],
[
31
],
[
28
],
[
33
],
[
36
],
[
31
],
[
36
],
[
35
],
[
29
],
[
33
]
],
"hovertemplate": "Cluster=Cluster 1 PCA1=%{x} PCA2=%{y} Feature=%{customdata[0]} ",
"legendgroup": "Cluster 1",
"marker": {
"color": "#EF553B",
"opacity": 0.5,
"symbol": "circle"
},
"mode": "markers",
"name": "Cluster 1",
"orientation": "v",
"showlegend": true,
"textposition": "top center",
"type": "scatter",
"x": [
30806.776365699683,
24706.12836543105,
25328.069975138635,
25363.91919366969,
37194.902271544604,
26228.376273797556,
37939.717010227345,
31960.75447088308,
26983.04635508586,
20592.34660124049,
35036.71586290586,
18943.37281532901,
34834.90179722817,
35572.715402147114,
25732.344964588854,
32561.02538427929,
23470.847054512175,
31361.085258501153,
31045.22028118458,
27758.38755378162,
35758.275461121084,
39135.37624685957,
30949.63690680686,
32572.750284951693,
23967.006141706406,
35579.20584184772,
22393.4177046297,
31911.001222896,
40673.85966572635,
26298.148403025214,
38869.64947043886,
32797.64364946061,
21900.78529345971,
38847.169751928894,
32210.979752849802,
22224.556150677465,
19295.267700776076,
25474.40276313259,
24613.751994747225,
21973.307957772937,
41298.631284922674,
30584.124596856775,
32416.939856368153,
23032.68011842759,
24491.38892446562,
37228.73474929926,
29861.546691899726,
33379.420597243974,
32912.89205445821,
22350.76980617095,
39513.27355052197,
25938.050515546736,
25376.693283330602,
14006.000973765149,
22105.03460663262,
30046.489099008362,
30148.68268283114,
15764.491422930658,
32307.936747625536,
24294.80848197433,
31253.468503847278,
32289.540193394674,
34830.86604526112,
31016.952780284246,
34815.25490758295,
31614.44255774996,
23196.213321683514,
36008.72534227599,
33345.15627446258,
23858.59823485603,
22258.6086782299,
23748.6778260255,
34360.481813439445,
32345.708411108044,
32149.92130246567,
27456.9132589894,
32322.908535523773,
38938.11811665463,
31317.298082396956,
30614.165788924765,
39941.237372007025,
20486.140681685305,
24819.36093398272,
31330.34395958769,
28912.89514356203,
28960.63498700782,
36813.76713471409,
33203.84261491329,
28627.259856345157,
26343.67868382353,
32691.86956188506,
26507.042897939544,
29210.556892903744,
36260.399872485126,
38543.62513846534,
28639.38501225212,
31502.360315169364,
26312.37296994564,
22236.169465667845,
33217.92658728097,
16918.676225923726,
26023.566392701516,
39399.401380792246,
34753.148471170534,
23022.218288328782,
40419.57667419343,
19785.994373705318,
30836.97832091276,
23392.942038336685,
25765.790066438298,
30950.101845843255,
15177.319702791374,
30155.334179480957,
30268.705481027388,
27412.691418946462,
19017.169490301145,
32853.06228404298,
35023.21628615081,
31202.412658451638,
26003.522420593872,
28681.54987121016,
35187.910560505494,
24827.97879769219,
40849.4806011811,
26071.981192203377,
29240.509736461725,
34060.87751097296,
26578.153217150317,
35711.08000629997,
23896.36879719901
],
"xaxis": "x",
"y": [
-5560.204279339282,
-6304.28666973399,
-4507.818639633964,
-6518.878337708825,
-4030.4862142381594,
-4266.484394821199,
-4683.440267913227,
-7950.138456796402,
-2897.4182757985145,
-4611.58786570278,
-6415.6994227079485,
-6099.926572904184,
-5079.540897002698,
-4807.6649456087935,
-4846.280154278848,
-5658.52873889132,
-4720.2485683084615,
-4837.589777514424,
-4354.880238261408,
-3524.602272808,
-4122.47165904104,
-4339.706610389623,
-4397.197247861169,
-6711.00561277483,
-5918.695473496275,
-6195.256076450445,
-5150.7473873856125,
-2672.9115870036853,
-5771.827355976955,
-5023.0388936156905,
-4117.835744147907,
-5654.547208585252,
-5234.914564220799,
-8209.639605398577,
-5806.362656038767,
-5737.01410615847,
-3266.6498646157047,
-4541.161734519428,
-3288.464044751346,
-5227.972192633895,
-6422.065158701397,
-5198.652074260119,
-3316.8740951794775,
-5461.179167794462,
-3378.5436476328764,
-4575.537585729343,
-4210.49136349359,
-4139.052833212817,
-4588.6648482675855,
-5405.192571717665,
-4805.682615179937,
-4054.2525236210595,
-3922.328915477504,
-1775.6048970799568,
-4346.187481501869,
-2733.109173664304,
-3727.641074472827,
-2149.152364399403,
-3401.081205177556,
-3156.1748108191573,
-4792.820646769864,
-3634.341607017835,
-5377.228895403828,
-4865.004250775129,
-5108.281907469467,
-3948.413294987954,
-5613.714696123653,
-6111.705479451019,
-6080.299784647316,
-4857.997405051628,
-5195.925254869434,
-4085.3877140573586,
-5038.8163456089,
-2201.7207440339266,
-5508.945012028894,
-4868.312310128523,
-3681.290698907489,
-4443.170207612084,
-6141.762968151087,
-4762.434742638747,
-5237.495096676853,
-4804.20396185195,
-6443.116855817874,
-5635.163992926352,
-5224.554320132972,
-5439.902010858874,
-4615.462129937949,
-6552.89238394367,
-3324.816428758574,
-3863.006710456133,
-6066.457134457766,
-5484.674224534336,
-6286.357858424555,
-3890.344534167897,
-7198.063500096869,
-3130.95037385806,
-5081.2058281248155,
-4286.405352481017,
-4400.042493871477,
-4387.405057818727,
-2877.1941821022297,
-7172.334086297059,
-5202.0903724529035,
-4008.5892737018034,
-4439.122431386051,
-6642.234020142066,
-4699.391881256266,
-4248.41077613017,
-5117.926531788425,
-4647.514683014754,
-6274.399316410825,
4253.6700801853995,
-6491.84558752481,
-4917.675610318436,
-5970.6593858539245,
-4587.056170558121,
-5910.595732886553,
-4416.577014358738,
-4006.8812090056676,
-3786.133848157171,
-4194.112749071161,
-4164.857943447234,
-5088.608026609542,
-5591.430813146166,
-4687.76444193895,
-5240.7101050214305,
-5075.678179352552,
-4542.181119259884,
-4543.480905662913,
-4653.572749186032
],
"yaxis": "y"
},
{
"customdata": [
[
59
],
[
57
],
[
59
],
[
61
],
[
60
],
[
65
],
[
57
],
[
64
],
[
59
],
[
58
],
[
63
],
[
59
],
[
51
],
[
57
],
[
58
],
[
61
],
[
67
],
[
65
],
[
56
],
[
59
],
[
55
],
[
62
],
[
60
],
[
61
],
[
62
],
[
60
],
[
58
],
[
60
],
[
66
],
[
59
],
[
56
],
[
61
],
[
55
],
[
58
],
[
58
],
[
61
],
[
68
],
[
65
],
[
59
],
[
63
],
[
67
],
[
63
],
[
58
],
[
67
],
[
56
],
[
59
],
[
61
],
[
58
],
[
62
],
[
58
],
[
62
],
[
66
],
[
57
],
[
66
],
[
63
],
[
64
],
[
62
],
[
62
],
[
60
],
[
65
],
[
60
],
[
63
],
[
56
],
[
60
],
[
58
],
[
62
],
[
56
],
[
59
],
[
65
],
[
62
],
[
59
],
[
66
],
[
64
],
[
62
],
[
61
],
[
56
],
[
62
],
[
60
],
[
62
],
[
59
],
[
64
],
[
58
],
[
56
],
[
59
],
[
62
],
[
59
],
[
54
],
[
61
],
[
55
],
[
53
],
[
55
],
[
61
],
[
59
],
[
59
],
[
56
],
[
61
],
[
61
],
[
63
],
[
60
],
[
61
],
[
55
],
[
53
],
[
61
],
[
64
],
[
62
],
[
55
],
[
58
],
[
57
],
[
59
],
[
58
],
[
59
],
[
64
],
[
58
],
[
57
],
[
63
],
[
57
],
[
58
],
[
63
],
[
62
],
[
59
],
[
67
],
[
58
],
[
58
],
[
57
],
[
66
],
[
64
],
[
59
],
[
59
],
[
59
],
[
59
],
[
68
],
[
58
],
[
61
],
[
61
],
[
57
],
[
57
],
[
55
],
[
64
],
[
64
],
[
56
],
[
63
],
[
60
],
[
61
],
[
53
],
[
56
],
[
61
],
[
59
],
[
60
],
[
58
],
[
58
],
[
55
],
[
56
],
[
62
],
[
56
],
[
61
],
[
59
]
],
"hovertemplate": "Cluster=Cluster 2 PCA1=%{x} PCA2=%{y} Feature=%{customdata[0]} ",
"legendgroup": "Cluster 2",
"marker": {
"color": "#00cc96",
"opacity": 0.5,
"symbol": "circle"
},
"mode": "markers",
"name": "Cluster 2",
"orientation": "v",
"showlegend": true,
"textposition": "top center",
"type": "scatter",
"x": [
-7981.746785180182,
-10371.48706517594,
-2220.635444393811,
3607.6218458178587,
-805.5182754639131,
-811.2732950246508,
-3147.971701777522,
-12402.614021503563,
5619.125533378015,
2868.6753241163115,
7034.567000940583,
-1709.0067144922564,
-3127.7464850155247,
4615.604597857519,
4968.764656493565,
-6214.354922912841,
5679.93501906246,
-4794.730197271373,
-9823.292972914789,
-5787.584451174631,
1547.9124272171955,
-7431.169948635805,
-11770.096233982846,
-3197.7706738433167,
-1424.296859729877,
-5149.414552703784,
-4588.845678205519,
-9176.939927564545,
1855.0479746174185,
7017.407221041009,
5122.282549932676,
-967.1345392121356,
-10419.650737321674,
-4883.720557377946,
3333.037006876282,
-7827.504394122572,
-6270.130047136961,
-4114.6658392531535,
-7225.6566572804895,
-4661.643211273577,
-6586.3750253164635,
-7793.211518497565,
-6075.723954598627,
3574.8676307498317,
-1755.3663671079712,
-1864.5940731049402,
-9270.983238674971,
2555.784223730438,
-5898.744482221793,
-5327.512632351789,
-1710.0091114415,
-2630.7941444101584,
1381.2925353027417,
-10238.837919558968,
-2329.616773935962,
-3536.6249026123105,
-11570.013634605875,
-12594.17525719195,
-3881.279238659186,
-9447.566961580664,
-4595.725464525729,
5567.478118222908,
9121.20833327475,
4848.44275648667,
499.496624006364,
-4176.722628358165,
-6529.597903259437,
-7423.928781748681,
-9153.99211227534,
4864.68365176265,
-7249.028144112699,
7325.256189942492,
1198.2155216057806,
-6945.490210959247,
-5628.983755072115,
-6874.447279795802,
3175.730103636436,
-10072.87512235504,
-5806.077068066832,
-6051.798043076611,
11039.026949927069,
-4972.9221323188995,
11129.424152003645,
6644.597598902894,
-611.8920901109232,
-879.6961238367875,
1270.5926144944237,
-3354.409395225731,
-3652.051625562806,
1535.320025725934,
3442.0678892712554,
1691.1470012917125,
-9514.742116918946,
-5495.930033917727,
-11393.26427331702,
-1006.7942920597748,
-11385.807306619192,
10499.407287118554,
-5228.773563698111,
-2009.7086269484455,
-847.300232329234,
-13124.391619355425,
-6112.701963031476,
-14757.626867529665,
-5414.451735591036,
-4197.995988224732,
-907.6690954314622,
4241.775879690278,
-2601.8696305967806,
1797.869290930973,
-860.4354508721326,
13091.374146760918,
-4333.353165561371,
106.44731571900178,
-5414.849621040671,
-1148.5927303150024,
834.6063397987256,
-182.8750991486991,
-12401.012613234328,
384.48864417494497,
-15876.014206199558,
2392.9514015408095,
-4856.160273050595,
-9604.976111586082,
-3578.6411698601864,
3594.042431937774,
-5713.304473394477,
-7793.454361394592,
-18832.32309725967,
277.3194394523527,
2456.1149302637336,
3385.822034418757,
-1867.5011781843514,
-4025.5345829792054,
-5506.504771609419,
1380.9095889215503,
-1254.7960958097494,
1223.333286810533,
-10817.514887710628,
375.6120103283671,
-18377.080909021166,
-7740.904886148209,
-9600.009518947492,
-284.9346156042528,
-15159.901907030266,
-4335.121225148139,
-3902.6507664053634,
-9955.598990292232,
8122.080380431861,
5073.487342754965,
871.0561288830006,
3735.222284723835,
-8175.944783875935,
-7927.279401739004,
-3222.028498023295,
2663.814116403005
],
"xaxis": "x",
"y": [
3467.566430123231,
6211.274367328179,
4177.140252105052,
4852.444506942659,
4348.095844750883,
4771.515278723635,
5506.9964385163485,
4277.420175996704,
4314.803831727304,
5223.642144465051,
3374.2873062887675,
3684.6952600892155,
5318.2818445711,
5713.4422040032005,
3943.1172738218793,
8154.200471910179,
4711.285755352463,
5174.4703666073765,
6862.24756855008,
5711.628519863226,
3973.906796941001,
6342.036887449047,
5001.4205881955295,
5127.9492979435245,
7267.328447090975,
5556.666162538331,
4468.268199202194,
7146.662700635211,
5468.743079867762,
5588.800471678816,
3424.0734017075106,
4638.724083111247,
5982.858062463171,
4688.370839749903,
4012.2154853373427,
5701.6975673885545,
5401.821899173081,
3078.895982492392,
4564.6175359122635,
4875.411844599688,
4795.659468727204,
6334.243106042947,
3500.5963142113897,
6638.189555586541,
4273.205130157205,
5267.352326944875,
5996.549301848867,
5164.690207216517,
5205.840127358392,
5507.67433861768,
5692.091535965765,
5512.809747300337,
5207.220968280962,
7423.315553060341,
6502.207658399992,
5070.413063690284,
6393.584858504259,
5058.593260676161,
3532.750550096714,
6026.370077872565,
4575.315312500282,
6399.679501338911,
4076.18894041781,
6716.389157420842,
4450.572584113251,
5121.948253777009,
5174.060198642425,
5595.425013755257,
6237.454829267955,
4834.954016262223,
5030.101276940088,
5245.750184774924,
6031.5977029474325,
5240.283887422072,
3413.4612857981865,
3266.470555811605,
4727.0798785274455,
7033.832267439081,
5686.132099777846,
6221.683197407646,
4384.687445082089,
5053.974565097909,
2451.395705037185,
6074.108602891885,
2642.856238209565,
4574.029857294057,
4918.861045396699,
4039.0497266262287,
4298.147977719973,
6617.143268176046,
3293.926138303474,
4305.605568968253,
5484.06232146995,
5033.927141363305,
4760.726839204438,
6827.736581903404,
5239.834348120357,
4092.586673558624,
4906.821114529853,
4571.311395238504,
5435.293660917688,
5122.2983241763395,
7150.265776891166,
5008.011891703157,
6401.496667099216,
4646.423182047725,
4662.571681544222,
4854.373360315709,
5720.0638913443645,
3616.9067455458803,
1366.2174572861734,
3878.073904440504,
6791.121854812125,
5019.545227332765,
4509.378968992945,
6154.518340801153,
5141.10135312582,
4411.324333177551,
6731.62241348175,
6845.141671584188,
7337.462411005282,
5992.684142669537,
6861.841813756618,
5517.45683612465,
4687.331267871385,
5244.223965614595,
6098.407220683642,
5788.853750291187,
6823.253221994716,
5152.077474584819,
5539.978054207804,
4513.1591882356615,
2685.6629912898047,
5644.552286645024,
6298.430264198272,
5567.1127539626605,
6380.915678462944,
5666.368020665916,
6677.482013672136,
5049.606055105611,
5086.374515846047,
5133.639365463536,
4923.281736972965,
4064.0083597599264,
5573.243770197074,
2658.2975017240046,
5499.339242197263,
4085.312440945957,
4731.012077645321,
5244.436589238666,
5689.000195132621,
4370.467576915724,
5599.274846074169,
5673.527612414196,
4129.181187750043,
3399.119908746677
],
"yaxis": "y"
},
{
"customdata": [
[
18
],
[
85
],
[
27
],
[
28
],
[
25
],
[
83
],
[
18
],
[
26
],
[
32
],
[
89
],
[
20
],
[
88
],
[
30
],
[
26
],
[
17
],
[
92
],
[
23
],
[
22
],
[
20
],
[
22
],
[
90
],
[
25
],
[
17
],
[
24
],
[
29
],
[
84
],
[
25
],
[
83
],
[
31
],
[
21
],
[
28
],
[
24
],
[
82
],
[
26
],
[
28
],
[
23
],
[
26
],
[
26
],
[
29
],
[
21
],
[
86
],
[
23
],
[
25
],
[
24
],
[
87
],
[
28
],
[
20
],
[
27
],
[
86
],
[
82
],
[
22
],
[
25
],
[
91
],
[
17
],
[
93
],
[
34
],
[
29
],
[
77
],
[
27
],
[
28
],
[
83
],
[
29
],
[
24
],
[
24
],
[
17
],
[
28
],
[
25
],
[
90
],
[
24
],
[
23
],
[
24
],
[
88
]
],
"hovertemplate": "Cluster=Cluster 3 PCA1=%{x} PCA2=%{y} Feature=%{customdata[0]} ",
"legendgroup": "Cluster 3",
"marker": {
"color": "#ab63fa",
"opacity": 0.5,
"symbol": "circle"
},
"mode": "markers",
"name": "Cluster 3",
"orientation": "v",
"showlegend": true,
"textposition": "top center",
"type": "scatter",
"x": [
48551.897789887524,
42414.13983525134,
46271.74997443962,
48029.23597884718,
62912.45710039263,
43629.01274005913,
55587.35172793505,
56651.455486319515,
41328.25268046831,
43861.74707162002,
53899.23405406332,
44952.90204718015,
47549.76255316081,
47842.8836691323,
59798.17481890998,
47182.068601211664,
51395.224355863276,
57857.2890531498,
47415.389155965175,
58984.550283890065,
48410.00928895817,
55168.45153662265,
59803.04557597497,
53976.789993076745,
56449.67813276753,
46993.64107086383,
53422.552479964776,
41580.27174136413,
47836.448388874844,
48602.57110350954,
52465.033585302095,
52263.49411048377,
50433.85140507419,
51532.470054685786,
46000.802483408486,
63317.06653029418,
52086.38065950189,
50397.08388459137,
43600.216207210484,
54542.56027032768,
52679.137439365106,
54778.91990697272,
45728.4011392722,
59239.85352122589,
41859.154366077884,
48281.96476028116,
54230.31142876455,
49923.2324005917,
48577.24595197165,
45920.30382555989,
45302.570913649906,
55809.6082475434,
43084.43131856263,
48697.32854572939,
50874.59371963918,
44074.744333958406,
47210.61128826445,
52844.21452066907,
47518.88132347978,
53924.5970418673,
42157.80543094878,
66750.62107639125,
45280.29646688086,
61617.256018538916,
61085.161818166234,
41933.87633764401,
55783.42885409023,
42045.79572232821,
55795.99791010046,
45049.713023239456,
59196.59307835406,
47964.552285061145
],
"xaxis": "x",
"y": [
4668.2147013471895,
-5432.281984340339,
4207.414538362321,
5422.323715263655,
5261.355290099567,
-6254.840940318084,
3427.13517017135,
4271.2922568352615,
-4823.645609095871,
-6877.0362371637675,
3176.746804746799,
-4985.514604349105,
3437.896625297286,
4758.188583448424,
4315.751653167794,
-4557.716265875782,
5657.241523409545,
5717.501103770007,
4709.388721993287,
3350.7117975359874,
-5693.665477980675,
4016.981500839464,
8450.307548937883,
5488.389848804973,
5101.398631128984,
-4647.129392602895,
3894.235404068605,
-5615.560841025175,
6059.983303443483,
6249.537248101829,
3371.5330641923256,
5916.358116348504,
-6854.205790290385,
6006.733800938252,
3884.452852169693,
4946.177503380897,
3388.427067520488,
2890.550760271962,
-5657.478374018939,
4193.883189681699,
-4749.056737128217,
4629.791345722708,
3658.3064353496766,
4745.144493284467,
-4543.326342656859,
8499.966919747458,
3238.42893748413,
6048.724076369277,
-6305.307643166667,
-4953.921494062044,
3778.181609385137,
3879.1495425780936,
-4660.855325409081,
5282.49786165519,
-5178.053057007989,
-6307.668957592938,
6674.234783135662,
-5677.667836398276,
4941.999476017813,
5765.842917677424,
-5954.454575332954,
2693.0080673252,
4437.356755042903,
6726.313729421183,
4243.721803980186,
4717.997031231385,
4732.087674705496,
-3106.103134052821,
4252.897482631883,
4590.872356292782,
3903.9748137910706,
-4397.185708241045
],
"yaxis": "y"
}
],
"layout": {
"height": 600,
"legend": {
"title": {
"text": "Cluster"
},
"tracegroupgap": 0
},
"margin": {
"t": 60
},
"plot_bgcolor": "rgb(240,240,240)",
"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": {
"text": "2D Cluster PCA Plot"
},
"xaxis": {
"anchor": "y",
"domain": [
0,
1
],
"title": {
"text": "PCA1"
}
},
"yaxis": {
"anchor": "x",
"domain": [
0,
1
],
"title": {
"text": "PCA2"
}
}
}
},
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot pca cluster plot \n",
"plot_model(kmeans, plot = 'cluster')"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "9fc4b9b1",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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iV69erG4raTMTU0QUscNgHGsaBYdHY1BgwZh6tSpuH37ttDhEBERUSWl8wiuubk5zMx0fhgZqVAfDxyPScL5+2koLCqGhZmpYLHk5ubi7Nmzyq+JiIiIykPnSrV///4YPXo03njjDdStWxdWVlYq9yt6c6lyUKxoVlBUjCsP0xFS1/0FjyAiIiIybjoXuKtXrwYAbNmypcx9IpGIBW4l066uO0QiQCYDTt1LYYFLRERElZ7OBW50dHRFxEECcbS2QJCnMyIfZeBUXDKmoLHQIRERERG9lHI30969exe3b9+Gubk56tevD19fX33GRQYU6uuOyEcZOH0vBTKZDCKRSOiQiIiIiMpN5wJXIpFg6tSpOHr0qHKbSCRC586d8e2338LCwkKvAVLFC/Vxx3enbyM5twB303Lg5+YgdEhERERE5abzNGHLli1DZGQkVq9ejQsXLuDcuXNYuXIlbt68iZUrV1ZEjFTBFCuaAfI+XCIiIqLKTOcC98CBA/jiiy/w6quvwt7eHo6OjujatSs+//xz/P777xURI1Wwus62qOVgDQA4HSf8fLhEREREL0PnFoW8vDzUq1evzHZfX1+kp6frJSgyLJFIhFBfD+yKiBd0BLdhw4bYtWsX4uPj0aBBA8HiICIiospN5xHchg0b4tChQ2W2//nnn7zQrBILezIfblRSFtLzJYLE4ODggLZt26Jp06awt7cXJAYiIiKq/HQewf3oo48wbtw4REVFoUWLFgCAS5cu4a+//sLSpUv1HiAZRqjP0z7c03Ep6N24toDREBEREZWfzgVup06dsHz5cmzYsAEnTpyATCaDv78/vv32W3Tv3r0iYiQDaFbLGbYWZsgrLMLpe8kscImIiKjSKtc8uF27dkXLli3h4uICAIiMjERgYKBeAyPDMjM1QUgdN/wd8xin44Tpw7127RpGjBiBwsJC/PDDD2jdurUgcRAREVHlpnMP7v3799GzZ09s3LhRuW3MmDF444038OjRI70GR4YV+qQP9/z9VEiKig1+folEgvv37+Px48eQSITpAyYiIqLKT+cCd8GCBahbty7effdd5baDBw+iZs2aCA8P12dsZGCK+XAlRSW4nMAZMYiIiKhy0rnAvXjxImbOnAkPj6cXJbm4uGD69Ok4e/asXoMjw2pb1w0mT5bpPX2P8+ESERFR5aRzgWtmZobs7Owy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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot elbow\n",
"plot_model(kmeans, plot = 'elbow')"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "bbc790e4",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAq4AAAH7CAYAAAANVB3fAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAACPE0lEQVR4nOzdd3gUVdsG8HvK1vQeCCV0AgQISO9YaCKCDUEQgU8pggVFwC4qIChKl45iQQFBRcXyCiJSBJQmIF1qqKGlbJnz/bHJkpAA2bDJZDf377pyZXZ2dvZ5tj575pwzkhBCgIiIiIiomJP1DoCIiIiIKD9YuBIRERGRT2DhSkREREQ+gYUrEREREfkEFq5ERERE5BNYuBIRERGRT2DhSkREREQ+gYUrEREREfkEFq7kE649T4YvnTfDl2Il7+HzTlT88X3qe1i4+ol///0XzzzzDJo1a4ZatWqhefPmePrpp7F79+4c2/Xq1Qu9evUCABw9ehTVqlXD0qVLAQBLly5FtWrVcPTo0SKP/3ouXryI4cOHY9OmTe51mzdvxuOPP37L+87KP/tf9erVkZSUhG7dumHx4sXubTds2IBq1aphw4YN+d6/zWbD22+/jW+++eaWY718+TIGDBiAOnXqoEGDBjh06FCubW70/M2aNQvVqlXDc889B6fT6d62WrVqOHjwYJ73+dtvv7m38UXr1q3Dk08+iRYtWqBOnTpo164dxo0bh7Nnz7q3ufY94C2//PILXnjhBa/sq6jfl+PHj0fDhg1Rt25dLFu2zOv7nzhxYq73XbVq1TBnzhz3Ng6HA++//z5atWqFOnXqoEePHti6dWuO/Rw+fDjP/dx99903jWHp0qXo3r076tWrhzp16qBTp0744IMPcPnyZa/neyuyf14XprZt22LEiBFe3eeJEydQv359TJ48OV/bZ2RkYP78+bjvvvtQv359NGzYEN27d8eyZcsKrbj05vuUio6qdwB06/bu3YuHHnoIdevWxUsvvYSIiAicPHkSCxcuxIMPPoiPPvoIdevWBQC8+uqr+gbroV27dmH58uW477773Ou+/PJL7N+/32v3MXDgQLRu3RqA69f3lStX8OWXX+LFF1+Ew+FA9+7dC7TfU6dOYcGCBRgzZswtx7hs2TL8+uuveOWVV1ClShWUKVMm37edM2cOJkyYgG7duuGtt96CLF/9vSrLMn744QcMHDgw1+2+++67W45bLxMmTMDs2bPRvn17vPjiiwgNDcWePXswa9Ys/Pjjj1i4cCFKlSpVaPc/f/58r+2rdevWWLRoEaKjo722z+v5999/MXv2bDz44IPo0qULKlas6PX72L17Nxo2bIhhw4blWF+6dGn38tixY7F48WIMGzYMcXFxmDdvHvr06YNly5ahfPnyAFyfDYDrsbZYLO7bms3mG97/lClTMGPGDPTt2xcDBw6EwWDAjh07MHv2bKxZswafffYZDAaDt9L1CVOmTEFgYKDX9ieEwKhRo/L9Q+DMmTPo378/Tpw4gV69eqF27drQNA2//vorRowYgU2bNmH06NGQJMlrMQLefZ9S0WHh6gfmzZuHsLAwzJo1C6p69Sm944470L59e0ybNg0zZ84EAFSuXFmvMIutcuXKuQv7LE2bNsXu3bsxf/78Aheu3pSSkgIA6NGjh0cf3vPmzcM777yDhx56CK+//nqu29arVw/ff/99rsLVZrPh559/RkJCgrtA8BUrVqzArFmzMHLkSPTp08e9vnHjxmjVqhW6du2Kt956C1OmTNEvSA+Eh4cjPDy8SO4r63XWqVMn3HbbbYVyH7t27UK3bt1yveeynDhxAp999hlefPFF9OjRAwDQvHlztGvXDrNmzcKbb77p3k9sbCyaNGmS7/u22WyYNWsW+vXrh2eeeca9vmnTpqhYsSIGDx6Mn3/+GR06dCh4gj6oRo0aXt3fp59+igMHDuR7+xdeeAEnT57EokWLEB8f717funVrlC5dGu+99x7atGmD22+/3atxkm9iVwE/cObMGQghoGlajvVWqxWjRo3K8SGcn0NPW7duRffu3ZGYmIjWrVtj9uzZOa6/dOkSxowZgzvuuAOJiYm4++67cxxWB4Bq1arlOkQ0efLkXIedN23ahEceeQR16tRBw4YN8cILL+DcuXMAXIfne/fuDQDo3bs3evXqhREjRuCrr77CsWPHchzizcjIwDvvvINWrVqhVq1a6Ny58y21GMqyjISEBBw/fvy622zfvh39+vVDo0aNUK9ePQwYMAB79+4F4DoEnfUhO3LkSLRt2/a6+8nIyMDUqVPRvn17JCYm4q677sLMmTPdz2evXr3cj2X16tXzfUhv/vz5GDt2LB555JE8i1YA6NixI/bs2ZOru8Bvv/0GSZLQsmXLXLe50XOW5c8//0S/fv3QoEED1KpVC23btsXkyZPdOWUdov/+++8xdOhQJCUloWHDhnjppZeQmprq3s+OHTvw6KOPon79+khKSkKfPn3w999/3zDvmTNnonLlynj00UdzXRcfH4/nn38eSUlJeR5+zOs1CuR+PX/77be45557ULt2bTRu3BjPPfcckpOTAbier40bN2Ljxo05upekpKTglVdeQdOmTZGYmIgHH3wQ69aty3U/U6ZMQbdu3VC7dm1MmTIlV1eBESNGoE+fPliyZAnatWuHWrVqoUuXLvjtt99y7Ouvv/5Cz549UbduXbRu3RoLFixAnz59rvv6mTx5svuz4dFHH3W/Zp1OJz755BN07twZtWvXRuvWrTFhwgRkZGS4bztixAg8+uijePXVV1GvXj107NgRTqcz132cO3cOycnJSEhIyDMGwNXFw+Fw4M4773SvMxqNaN26NVavXu1et3v37hvuJy+XL19Genp6rs9KAGjVqhWeeeYZlC1b1r3u6NGjGD58OJo3b46aNWuiSZMmGD58OM6fP+/epm3btpgyZQrefvttNGrUCElJSRg2bBiuXLmCmTNnomXLlqhfvz6GDBmS63YTJ07E22+/jQYNGqBRo0YYPny4+8dDXjRNw8yZM3HnnXeiVq1aaNeuHT7++OMc2/z3338YMGAAGjVqhDp16uChhx7K8bjlJXtXgfy+N6/nyJEjmDBhAkaPHn3TbQHXD5Dff/8d/fr1y1G0ZunTpw969uwJq9XqXnf8+HE8++yzaNiwIerUqYNHH30U//zzj/v6/OTg7feppmmYOHEi2rZt6/7Me/fdd2G32/P1OFD+sXD1A61bt8bx48fRvXt3fPLJJ9i/f7/7S7l9+/bo2rWrR/t77bXX0KlTJ8ycORNJSUkYP348fv31VwBAeno6evTogW+++Qb9+/fHtGnTUL9+fbz44ouYMWOGR/fz559/ok+fPjCbzXj//fcxatQobNy4Eb1790Z6ejpq1qyJV155BQDwyiuv4NVXX8WgQYPQqlUrREVFYdGiRWjdujWEEBg8eDA+//xzPPbYY5g+fTqSkpLwzDPP3FIfvYMHD6JcuXJ5Xrd+/Xo8/PDDAIC3334bb775Jk6cOIHu3btj//79iI6OdrfoDRw48Lqte0IIDBgwALNnz8YDDzyAGTNmoH379nj//ffd3TpeffVV3H///QCARYsWYdCgQTeNPauLQq9evfDyyy9ft5W2WbNmCAkJwQ8//JBj/XfffYc777wz1yHTmz1ngKug6NOnD0JDQzFx4kRMnz4dt912G6ZMmYLvv/8+x/5effVVxMXFYdq0aejXrx8WL16M6dOnA3AVGf3790dYWBgmT56MiRMnIi0tDf369cOlS5fyzOf06dPYvXs3Wrdufd2ce/TogX79+hX4sOPmzZsxfPhw3HXXXe6W3fXr17sPfb/66quoUaMGatSogUWLFqFmzZrIyMjAo48+il9++QXPPPMMpkyZgtjYWPTv3z/Xl+KMGTPQuXNnTJo0Ce3atcszhh07dmDOnDkYOnQopk6dCkVRMGTIEFy4cAEAsH//fndr83vvvYchQ4Zg5syZ2Lx583XzeuCBB3K837Jes6+88or7h+r06dPRs2dPLFy4EIMGDcpR/G/atAknTpzA1KlTMWzYMCiKkus+svrcr1q1Cm3atEHNmjVx77335iis9u/fj4CAAERFReW4bfny5XHq1ClcuXIFgKvguXLlivtHdrNmzTBhwoQbFgrh4eGoU6cO5syZgxdeeAE///yz+0eXwWDAgAEDUKtWLQBAWloaevfujf379+PVV1/FnDlz0Lt3b6xYsQITJ07Msd+5c+fixIkTmDhxIgYOHIhvv/0W9913H37//XeMHj0azz77LH755RdMmjQpx+0+/fRTbNmyBWPGjMGwYcOwevVqPPHEE9ft0/naa69h0qRJuOeee9yfFW+//TamTp0KwFXYPvHEE0hLS8M777yDadOmITQ0FAMHDsThw4ev+7jk5UbvzevRNA0jRoxAhw4d8vzRm5c1a9YAwHV/3JtMJrzyyivulvVz586he/fu2LlzJ15++WW8++670DQNPXv2zNWF7EY5ePt9OmvWLHz22WcYPHgw5s6di4cffhhz5sy56WNGnmNXAT/Qo0cPnD59GnPmzMEbb7wBAAgLC0Pz5s3Ru3dv1K5d26P9Pfvss+6irG7duvjpp5+wfv16tGnTBkuXLsW///6Lzz//HElJSQCAFi1awOFwYNq0aejevTtCQ0PzdT/vvvsuKlSogA8//ND9JZc1UGLJkiXo2bOnu2tD5cqV3cvh4eEwGo3uQ41r167FmjVrMHHiRHTs2NEdU1paGiZMmIC77747RxeKa2maBofD4V5OTk7Gxx9/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gwaJ5ORkHSIuuGs/G71dz0hCZLbXEhEREREVY77f0ZCIiIiISgQWrkRERETkE1i4EhEREZFPYOFKRERERD6BhSsRERER+QQWrkRERETkE1i4EhEREZFPYOFKRAW2YcMGVKtWDUePHgUAtG3bFpMnTwYALF26FNWqVdMzPLdff/0V+/btc1/evHkzNm3apGNEN5eSkoI+ffogMTER999/f67LkydPRtu2bfO1L0+2za+9e/di1apVXt1ndiNGjECvXr0Kbf9E5JtYuBJRgSUlJeH3339HqVKl9A7luo4dO4YBAwbg7Nmz7nU9evTAf//9p2NUN/f1119j06ZN+OSTTzB16tRcl/v27YvFixfna1+ebJtfTzzxBLZv3+7VfRIR3YyqdwBE5LuMRiOioqL0DuOGfPXkgBcvXkRUVBRq166d52UACAgIyNe+AgIC8r0tEVFxxhZXIrqh1atXo1u3bqhTpw6aNGmCESNG4MKFCwBydxXIy9KlS3HHHXcgMTER3bp1w9atW93Xpaen4/3338ftt9+OxMREdOnSBStXrsxx22u7G1y7zmazYfz48WjRogWSkpLw4IMP4vfffwcAHD16FLfffjsAoHfv3pg8ebL7tiNHjsSIESMAAMnJyXjmmWdw2223oVGjRhgwYAAOHTp0w8dl27Zt6NOnD5KSktC0aVO8+uqrSEtLAwA4nU7Mnz8f7dq1Q2JiItq1a4fPPvssx+3379+P//u//0NSUhKaN2+OYcOG4fTp0wBch8knT56M48ePo1q1au4uGFmXly5dmuvw/5kzZzB8+HA0atQI9evXxxNPPIHDhw8DyN1V4Gb5jhgxAiNGjMC4cePQpEkT1KlTB0888QSSk5MBuLqEHDt2DFOmTMnzcP7SpUuRmJiIixcv5lh/xx13YOLEiQCATZs2oXfv3qhXrx5q1aqFDh06YPny5Xk+1kePHkW1atWwYcOGG65bsmQJOnTogNq1a6NDhw5YsGABNE1zX79s2TJ06tQJiYmJaNGiBd566y3YbLY875OIiicWrkR0XefOncOTTz6J++67D9999x2mTJmCP//8E++8806+9/HFF1/gvffew5IlS2A0GvH000+7r3v22WexbNkyvPzyy/j6669xxx134KmnnsLPP/+c7/2PHDkSa9euxYQJE/DVV1+hQ4cOGDBgAFatWoVSpUrhyy+/BOAq3vr27esuakeNGoUXX3wRqamp7uJr4cKF+PjjjxEWFoYHH3zQXahd68iRI3j00UcRHR2NRYsWYfLkyVi7di1ef/11AMDYsWMxbdo0PPnkk/jmm2/Qs2dPvPXWW5g/fz4AV+HYo0cPlC9fHosXL8aMGTNw+fJlPPTQQ0hNTcWLL76Ivn37IjY2Fr///juWL1+e43LHjh1zxONwONC3b1/s27cP06ZNwxdffAFN09C/f384nc4c2+Y332+//RYpKSlYuHAhZs2ahZ07d+L9998HACxevBixsbHo27evu09zdu3bt4eqqjl+hGzZsgVHjhxBt27dkJycjH79+iExMRFfffUVli1bhtq1a+PFF1/EmTNn8vW8X2vRokV455138OSTT2LFihV4+umnMWvWLEyYMAEAsHv3brz00ksYMmQIVq5cibfffhvLly/H7NmzC3R/RKQPdhUgoutKTk6GzWZD6dKlERcXh7i4OMyYMSNXMXQjb731FipVqgQA6NevH5588kmcPXsWKSkp+OWXXzBjxgy0bt0aADBkyBDs3r0bM2bMwB133PH/7d1pSFT/GsDx72RjYU6j0+JWqZmB2YtWm/RF2UYuldqGUlaKUURFq0ahGWnQYosttFhpo7ZRQi6hWBrRQkWLITo25VYUUVIaFILdF+G5mst/qnvv/z/c5wMDzm/ObxvPi2fOeZ6Zvxy7pqaG3NxccnJy8PLyAmDZsmVUVFSQlpbG5MmT0el0AGi12na3zDUaDRqNhkuXLvH582f27NlDz549lTXfv3+fixcvsnr16g7zXrx4ETs7O5KTk5U+O3fu5PHjxzQ1NZGdnU1cXByzZs0CwM3Njfr6ek6cOMGSJUvIzs7G0dGRbdu2KWMeOHAAvV7P9evXCQsLw8bGBisrKyUV4+fnbd29e5fKykquX7+Ou7u7sp6zZ88qV8db5eXlmbVfjUbDjh07UKvVeHh4EBgYSGlpKQA6nQ4rKytsbGyws7PrsB4bGxtmzpzJtWvXmD9/PgDXrl1jzJgxuLq6Ultby+rVq4mOjkalUgGwfPlycnJyqK6upn///t381zt39OhRVq5cSVBQEACDBw+mqamJxMRE1q5dS319PSqVChcXF5ydnXF2diYtLQ1bW9tfnksI8feRwFUI0SUvLy+Cg4NZsWIFAwYMwM/Pj8mTJzN9+nSzx3Bzc1P+7tu3L/AjRaCyshKAsWPHtjt+/PjxpKSkmDV2eXk58KPYqq3m5mZlLnPG+PTpE+PHj2/X/u3bN0wmU6d9jEYj3t7eSuAHoNfr0ev1PHv2jObm5g778vHxIT09nQ8fPlBeXk5VVRWjR482e87uGI1GtFqtErQCODg4EBsb+9v7HTJkCGq1Wnmu0Whobm42e01hYWFERkby7t07dDodBQUFbNiwQRk7LCyMjIwMjEYjtbW1VFRUAPzSh6JWHz9+5O3bt6SkpHDw4EGlvaWlhW/fvlFfX6+kksybN49Bgwbh5+fH1KlTGTly5C/PJ4T4+0jgKoTo1r59+1i1ahW3bt3izp07bNq0ibFjx5Kenm5Wfysrqw5t3RVMff/+vV1A+LO2gU3rOJmZmR2Kj3r0MC8TqqWlBXd3d44dO9bhNRsbm077dLe+rvbWmmvZs2dPWlpa0Ov1JCQkdDhOo9GYs2yz19PZOszZr7W19S+vo61x48bh4uJCbm4uQ4cO5evXrwQEBADw4sULIiIi8Pb2xtfXlxkzZmBvb69cnTVH2/Og9b3dsmULvr6+HY51cnLC2tqajIwMysvLuX37Nrdv32bFihWEhISwa9euP9qrEOJ/R3JchRBdevr0KcnJyQwdOpSlS5dy4sQJkpOTuXfvXruvl/odrUVSjx49atf+8OFDhg0bBqBc8WtqalJeb1tE5OnpCcD79+9xdXVVHleuXOHKlSsAyq3orgwfPpw3b96g0WiU/s7Ozuzbt48HDx502mfYsGGUl5e3C56KioqYMmUKHh4eqNXqTvc1YMAAtFotnp6emEwmnJyclDm1Wi3JyckYjcZu19vVej59+qQUY8GPq5ATJkzgyZMnf7zf36FSqQgNDaWwsJC8vDymTZum3JY/f/48/fr148yZM8TExDBp0iQlt7WzwP+vzoN+/fqh0+moq6trdx60zcstLS3l8OHDjBgxguXLl5ORkcGaNWvIz8//j+1ZCPHfJ4GrEKJLtra2ZGVlsWfPHmpqajAajeTn5+Pm5oa9vf0fje3h4YG/vz+JiYmUlJTw6tUrDh8+THFxMVFRUQCMGjUKlUpFamoq9fX1FBQUcPXqVWUMT09P/P39SUhI4MaNG9TV1XHy5EmOHz/OkCFDgH9fRTQajTQ2NiptJpOJhoYGZs+ejVarZc2aNTx9+hSTyURcXBy3bt3q8gcUIiIiaGhoICEhAZPJpBSs6fV6bG1tWbhwIYcOHSI3N5eamhoyMzPJysoiKioKlUpFREQEjY2NbNy4kYqKCioqKli3bh1lZWUMHz78l9/LiRMnMnLkSGJjY3n27BlVVVXExsai0+nw9vZud+zv7Lczffr0obq6uttiqtDQUMrKyiguLiYsLExpd3R05O3bt5SWlvL69WsKCwvZvn07QKdV/gMHDsTFxYX09HRMJhOPHj3i4MGDyocSlUpFTEwM586dw2AwUFtbS1FREdu3b6d3795YW1ujVqs5cuQIZ8+epa6ujufPn1NSUtIhXUMI8c8mgasQokseHh6kpqZy7949QkJCCA8Px8rKipMnT5p9K747KSkpTJs2ja1btzJ79mxu3rxJamoqM2fOBH4U2CQmJlJUVERAQAAXLlxg8+bN7cbYv38/M2bMID4+nsDAQHJyckhKSiI0NBQAe3t75s6dy+7du5X8x6ioKAwGA1u2bEGj0WAwGLC3tyc6Opp58+bx7t07Tp8+rRSV/czBwYHTp0/z8uVLQkJCWLduHf7+/sTHxwM/bllHRkayd+9egoKCyM7OJj4+XgnIBw8ejMFg4MuXL4SHh7No0SLUajUZGRlKMdmv6NGjB0ePHsXR0ZFly5YRHh5Or169OHXqVLs8VeC39tuZxYsXU1JSouypM87Ozvj4+KDVatHr9Up7ZGQkAQEBbN68meDgYI4dO8b69etxcXHp9EcNVCoVu3fvpqmpiTlz5hAfH8/69evbnYNRUVHExcVhMBgIDAwkKSmJBQsWKN/04OvrS1JSEpcvXyY4OJjo6GhcXV3NzqcWQvwzqL5b6rdzCyGEEEKI/ytyxVUIIYQQQlgECVyFEEIIIYRFkMBVCCGEEEJYBAlchRBCCCGERZDAVQghhBBCWAQJXIUQQgghhEWQwFUIIYQQQlgECVyFEEIIIYRFkMBVCCGEEEJYBAlchRBCCCGERZDAVQghhBBCWAQJXIUQQgghhEX4FzlWztou+ZW8AAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot silhouette\n",
"plot_model(kmeans, plot = 'silhouette')"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "da718984",
"metadata": {},
"outputs": [],
"source": [
"# check docstring to see available plots \n",
"# help(plot_model)"
]
},
{
"cell_type": "markdown",
"id": "6bd66179",
"metadata": {},
"source": [
"An alternate to `plot_model` function is `evaluate_model`. It can only be used in Notebook since it uses ipywidget."
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "c75f07a8",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "e6b94e61d5414660940963bf43d72020",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(ToggleButtons(description='Plot Type:', icons=('',), options=(('Pipeline Plot', 'pipelin…"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"evaluate_model(kmeans)"
]
},
{
"cell_type": "markdown",
"id": "954cbeff",
"metadata": {},
"source": [
"## Prediction\n",
"The `predict_model` function returns `Cluster` label as a new column in the input dataframe. This step may or may not be needed depending on the use-case. Some times clustering models are trained for analysis purpose only and the interest of user is only in assigned labels on the training dataset, that can be done using `assign_model` function. `predict_model` is only useful when you want to obtain cluster labels on unseen data (i.e. data that was not used during training the model)."
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "87c1a007",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Age \n",
" Income \n",
" SpendingScore \n",
" Savings \n",
" Cluster \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 58.0 \n",
" 77769.0 \n",
" 0.791329 \n",
" 6559.829923 \n",
" Cluster 2 \n",
" \n",
" \n",
" 1 \n",
" 59.0 \n",
" 81799.0 \n",
" 0.791082 \n",
" 5417.661426 \n",
" Cluster 2 \n",
" \n",
" \n",
" 2 \n",
" 62.0 \n",
" 74751.0 \n",
" 0.702657 \n",
" 9258.992965 \n",
" Cluster 2 \n",
" \n",
" \n",
" 3 \n",
" 59.0 \n",
" 74373.0 \n",
" 0.765680 \n",
" 7346.334504 \n",
" Cluster 2 \n",
" \n",
" \n",
" 4 \n",
" 87.0 \n",
" 17760.0 \n",
" 0.348778 \n",
" 16869.507130 \n",
" Cluster 0 \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 500 \n",
" 28.0 \n",
" 101206.0 \n",
" 0.387441 \n",
" 14936.775389 \n",
" Cluster 1 \n",
" \n",
" \n",
" 501 \n",
" 93.0 \n",
" 19934.0 \n",
" 0.203140 \n",
" 17969.693769 \n",
" Cluster 0 \n",
" \n",
" \n",
" 502 \n",
" 90.0 \n",
" 35297.0 \n",
" 0.355149 \n",
" 16091.401954 \n",
" Cluster 0 \n",
" \n",
" \n",
" 503 \n",
" 91.0 \n",
" 20681.0 \n",
" 0.354679 \n",
" 18401.088445 \n",
" Cluster 0 \n",
" \n",
" \n",
" 504 \n",
" 89.0 \n",
" 30267.0 \n",
" 0.289310 \n",
" 14386.351880 \n",
" Cluster 0 \n",
" \n",
" \n",
"
\n",
"
505 rows × 5 columns
\n",
"
"
],
"text/plain": [
" Age Income SpendingScore Savings Cluster\n",
"0 58.0 77769.0 0.791329 6559.829923 Cluster 2\n",
"1 59.0 81799.0 0.791082 5417.661426 Cluster 2\n",
"2 62.0 74751.0 0.702657 9258.992965 Cluster 2\n",
"3 59.0 74373.0 0.765680 7346.334504 Cluster 2\n",
"4 87.0 17760.0 0.348778 16869.507130 Cluster 0\n",
".. ... ... ... ... ...\n",
"500 28.0 101206.0 0.387441 14936.775389 Cluster 1\n",
"501 93.0 19934.0 0.203140 17969.693769 Cluster 0\n",
"502 90.0 35297.0 0.355149 16091.401954 Cluster 0\n",
"503 91.0 20681.0 0.354679 18401.088445 Cluster 0\n",
"504 89.0 30267.0 0.289310 14386.351880 Cluster 0\n",
"\n",
"[505 rows x 5 columns]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# predict on test set\n",
"kmeans_pred = predict_model(kmeans, data=data)\n",
"kmeans_pred"
]
},
{
"cell_type": "markdown",
"id": "e4384735",
"metadata": {},
"source": [
"## Save Model"
]
},
{
"cell_type": "markdown",
"id": "cd63f053",
"metadata": {},
"source": [
"Finally, you can save the entire pipeline on disk for later use, using pycaret's `save_model` function."
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "4181de41",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Transformation Pipeline and Model Successfully Saved\n"
]
},
{
"data": {
"text/plain": [
"(Pipeline(memory=FastMemory(location=C:\\Users\\owner\\AppData\\Local\\Temp\\joblib),\n",
" steps=[('numerical_imputer',\n",
" TransformerWrapper(include=['Age', 'Income', 'SpendingScore',\n",
" 'Savings'],\n",
" transformer=SimpleImputer())),\n",
" ('categorical_imputer',\n",
" TransformerWrapper(include=[],\n",
" transformer=SimpleImputer(strategy='most_frequent'))),\n",
" ('trained_model', KMeans(n_clusters=4, random_state=123))]),\n",
" 'kmeans_pipeline.pkl')"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# save pipeline\n",
"save_model(kmeans, 'kmeans_pipeline')"
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "40ed5152",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Transformation Pipeline and Model Successfully Loaded\n"
]
},
{
"data": {
"text/html": [
"Pipeline(memory=FastMemory(location=C:\\Users\\owner\\AppData\\Local\\Temp\\joblib),\n",
" steps=[('numerical_imputer',\n",
" TransformerWrapper(include=['Age', 'Income', 'SpendingScore',\n",
" 'Savings'],\n",
" transformer=SimpleImputer())),\n",
" ('categorical_imputer',\n",
" TransformerWrapper(include=[],\n",
" transformer=SimpleImputer(strategy='most_frequent'))),\n",
" ('trained_model', KMeans(n_clusters=4, random_state=123))]) In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org. Pipeline Pipeline(memory=FastMemory(location=C:\\Users\\owner\\AppData\\Local\\Temp\\joblib),\n",
" steps=[('numerical_imputer',\n",
" TransformerWrapper(include=['Age', 'Income', 'SpendingScore',\n",
" 'Savings'],\n",
" transformer=SimpleImputer())),\n",
" ('categorical_imputer',\n",
" TransformerWrapper(include=[],\n",
" transformer=SimpleImputer(strategy='most_frequent'))),\n",
" ('trained_model', KMeans(n_clusters=4, random_state=123))]) "
],
"text/plain": [
"Pipeline(memory=FastMemory(location=C:\\Users\\owner\\AppData\\Local\\Temp\\joblib),\n",
" steps=[('numerical_imputer',\n",
" TransformerWrapper(include=['Age', 'Income', 'SpendingScore',\n",
" 'Savings'],\n",
" transformer=SimpleImputer())),\n",
" ('categorical_imputer',\n",
" TransformerWrapper(include=[],\n",
" transformer=SimpleImputer(strategy='most_frequent'))),\n",
" ('trained_model', KMeans(n_clusters=4, random_state=123))])"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# load pipeline\n",
"kmeans_pipeline = load_model('kmeans_pipeline')\n",
"kmeans_pipeline"
]
},
{
"cell_type": "markdown",
"id": "b2c7d62e",
"metadata": {},
"source": [
"# 👇 Detailed function-by-function overview"
]
},
{
"cell_type": "markdown",
"id": "e05937f5",
"metadata": {},
"source": [
"## ✅ Setup\n",
"This function initializes the training environment and creates the transformation pipeline. Setup function must be called before executing any other function in PyCaret. It only has one required parameter i.e. `data`. All the other parameters are optional."
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "24e503be",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
" \n",
" \n",
" Description \n",
" Value \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" Session id \n",
" 123 \n",
" \n",
" \n",
" 1 \n",
" Original data shape \n",
" (505, 4) \n",
" \n",
" \n",
" 2 \n",
" Transformed data shape \n",
" (505, 4) \n",
" \n",
" \n",
" 3 \n",
" Numeric features \n",
" 4 \n",
" \n",
" \n",
" 4 \n",
" Preprocess \n",
" True \n",
" \n",
" \n",
" 5 \n",
" Imputation type \n",
" simple \n",
" \n",
" \n",
" 6 \n",
" Numeric imputation \n",
" mean \n",
" \n",
" \n",
" 7 \n",
" Categorical imputation \n",
" mode \n",
" \n",
" \n",
" 8 \n",
" CPU Jobs \n",
" -1 \n",
" \n",
" \n",
" 9 \n",
" Use GPU \n",
" False \n",
" \n",
" \n",
" 10 \n",
" Log Experiment \n",
" False \n",
" \n",
" \n",
" 11 \n",
" Experiment Name \n",
" cluster-default-name \n",
" \n",
" \n",
" 12 \n",
" USI \n",
" 89ea \n",
" \n",
" \n",
"
\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# init setup\n",
"s = setup(data, session_id = 123)"
]
},
{
"cell_type": "markdown",
"id": "924d198b",
"metadata": {},
"source": [
"To access all the variables created by the setup function such as transformed dataset, random_state, etc. you can use `get_config` method."
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "76128b08",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'USI',\n",
" 'X',\n",
" 'X_train',\n",
" 'X_train_transformed',\n",
" 'X_transformed',\n",
" '_available_plots',\n",
" '_ml_usecase',\n",
" 'data',\n",
" 'dataset',\n",
" 'dataset_transformed',\n",
" 'exp_id',\n",
" 'exp_name_log',\n",
" 'gpu_n_jobs_param',\n",
" 'gpu_param',\n",
" 'html_param',\n",
" 'idx',\n",
" 'is_multiclass',\n",
" 'log_plots_param',\n",
" 'logging_param',\n",
" 'memory',\n",
" 'n_jobs_param',\n",
" 'pipeline',\n",
" 'seed',\n",
" 'train',\n",
" 'train_transformed',\n",
" 'variable_and_property_keys',\n",
" 'variables'}"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# check all available config\n",
"get_config()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "dbc43292",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Age \n",
" Income \n",
" SpendingScore \n",
" Savings \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 58.0 \n",
" 77769.0 \n",
" 0.791329 \n",
" 6559.830078 \n",
" \n",
" \n",
" 1 \n",
" 59.0 \n",
" 81799.0 \n",
" 0.791082 \n",
" 5417.661621 \n",
" \n",
" \n",
" 2 \n",
" 62.0 \n",
" 74751.0 \n",
" 0.702657 \n",
" 9258.993164 \n",
" \n",
" \n",
" 3 \n",
" 59.0 \n",
" 74373.0 \n",
" 0.765680 \n",
" 7346.334473 \n",
" \n",
" \n",
" 4 \n",
" 87.0 \n",
" 17760.0 \n",
" 0.348778 \n",
" 16869.507812 \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 500 \n",
" 28.0 \n",
" 101206.0 \n",
" 0.387441 \n",
" 14936.775391 \n",
" \n",
" \n",
" 501 \n",
" 93.0 \n",
" 19934.0 \n",
" 0.203140 \n",
" 17969.693359 \n",
" \n",
" \n",
" 502 \n",
" 90.0 \n",
" 35297.0 \n",
" 0.355149 \n",
" 16091.402344 \n",
" \n",
" \n",
" 503 \n",
" 91.0 \n",
" 20681.0 \n",
" 0.354679 \n",
" 18401.087891 \n",
" \n",
" \n",
" 504 \n",
" 89.0 \n",
" 30267.0 \n",
" 0.289310 \n",
" 14386.351562 \n",
" \n",
" \n",
"
\n",
"
505 rows × 4 columns
\n",
"
"
],
"text/plain": [
" Age Income SpendingScore Savings\n",
"0 58.0 77769.0 0.791329 6559.830078\n",
"1 59.0 81799.0 0.791082 5417.661621\n",
"2 62.0 74751.0 0.702657 9258.993164\n",
"3 59.0 74373.0 0.765680 7346.334473\n",
"4 87.0 17760.0 0.348778 16869.507812\n",
".. ... ... ... ...\n",
"500 28.0 101206.0 0.387441 14936.775391\n",
"501 93.0 19934.0 0.203140 17969.693359\n",
"502 90.0 35297.0 0.355149 16091.402344\n",
"503 91.0 20681.0 0.354679 18401.087891\n",
"504 89.0 30267.0 0.289310 14386.351562\n",
"\n",
"[505 rows x 4 columns]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# lets access X_train_transformed\n",
"get_config('X_train_transformed')"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "ef9cd061",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The current seed is: 123\n",
"The new seed is: 786\n"
]
}
],
"source": [
"# another example: let's access seed\n",
"print(\"The current seed is: {}\".format(get_config('seed')))\n",
"\n",
"# now lets change it using set_config\n",
"set_config('seed', 786)\n",
"print(\"The new seed is: {}\".format(get_config('seed')))"
]
},
{
"cell_type": "markdown",
"id": "7afbe41d",
"metadata": {},
"source": [
"All the preprocessing configurations and experiment settings/parameters are passed into the `setup` function. To see all available parameters, check the docstring:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "2885a14f",
"metadata": {},
"outputs": [],
"source": [
"# help(setup)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "34ae0fce",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
" \n",
" \n",
" Description \n",
" Value \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" Session id \n",
" 123 \n",
" \n",
" \n",
" 1 \n",
" Original data shape \n",
" (505, 4) \n",
" \n",
" \n",
" 2 \n",
" Transformed data shape \n",
" (505, 4) \n",
" \n",
" \n",
" 3 \n",
" Numeric features \n",
" 4 \n",
" \n",
" \n",
" 4 \n",
" Preprocess \n",
" True \n",
" \n",
" \n",
" 5 \n",
" Imputation type \n",
" simple \n",
" \n",
" \n",
" 6 \n",
" Numeric imputation \n",
" mean \n",
" \n",
" \n",
" 7 \n",
" Categorical imputation \n",
" mode \n",
" \n",
" \n",
" 8 \n",
" Normalize \n",
" True \n",
" \n",
" \n",
" 9 \n",
" Normalize method \n",
" minmax \n",
" \n",
" \n",
" 10 \n",
" CPU Jobs \n",
" -1 \n",
" \n",
" \n",
" 11 \n",
" Use GPU \n",
" False \n",
" \n",
" \n",
" 12 \n",
" Log Experiment \n",
" False \n",
" \n",
" \n",
" 13 \n",
" Experiment Name \n",
" cluster-default-name \n",
" \n",
" \n",
" 14 \n",
" USI \n",
" cded \n",
" \n",
" \n",
"
\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# init setup with normalize = True\n",
"\n",
"s = setup(data, session_id = 123,\n",
" normalize = True, normalize_method = 'minmax')"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "04204ae7",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAqAAAAHTCAYAAAD4Yqo3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAkN0lEQVR4nO3df3TV9X348ddVyA+kbBWEU2ElrZTTqBBDKG6r1s62R/BgUdAVdTqnFeovuqOdDt3QTRn1Z7sp/sDVH9O2/gJ1Hntsa53dOlHWIGEY5CRqLD2oJ+lkanPlhvL5/uHM14BIrl7el5s8HudwaD73k7zf8ZVP+uRz8yOXZVkWAACQyF7l3gAAAIOLAAUAICkBCgBAUgIUAICkBCgAAEkJUAAAkhKgAAAkJUABAEhqSLk30F/PPvtsZFkWQ4cOLfdWAAB4Hz09PZHL5aKxsfEDz6uYO6BZlkXKX9qUZVkUCoWka1JaZlj5zLCymV/lM8PKl3qG/e21irkD+u6dz0mTJiVZr7u7O9avXx8TJkyIYcOGJVmT0jLDymeGlc38Kp8ZVr7UM/zv//7vfp1XMXdAAQAYGAQoAABJCVAAAJISoAAAJCVAAQBISoACAJCUAAUAICkBCgBAUgIUAICkBCgAAEkJUAAAkhKgAAAkJUABAEhKgAIAkJQABQAgKQEKAEBSHzpAC4VCzJw5M5555pneY2vWrIm5c+dGY2NjHHXUUXH//ff3eZ2nnnoqZs6cGQ0NDXHqqafGxo0bP/zOAQCoSB8qQLds2RLnn39+tLW19R7r7OyMM888M6ZNmxYPPvhgLFiwIC6//PJ48sknIyJi06ZNcc4558Ts2bPjgQceiH333TfOPvvsyLKsJO8IAACVYUixr9De3h4XXHDBDuH4+OOPx6hRo+L888+PiIi6urp45pln4pFHHokvfvGLcf/998fBBx8cp59+ekRELFmyJD7/+c/HqlWr4tBDDy3BuwJQefa+4K5yb2G3WnXSgeXeArAHKvoO6LvBeO+99/Y5fvjhh8eSJUt2OP+tt96KiIiWlpaYOnVq7/Ha2to46KCDYs2aNcVuAQCAClb0HdCTTjrpfY+PGzcuxo0b1/vyb37zm3j00UfjvPPOi4h3nqIfPXp0n9cZOXJkvPrqq/1eO8uy6O7uLnbLH0o+n+/zN5XHDCufGQ4M5le5XIOVL/UMsyyLXC63y/OKDtD+ePvtt+O8886LUaNGxde+9rWIeOcdr6qq6nNeVVVVFAqFfr/dnp6eWL9+fUn3uisdHR1J16P0zLDymWFlM7/KZ4aVL+UMt++991PyAP3tb38bZ599dnR0dMQPfvCDqK2tjYiI6urqHWKzUCjEiBEj+v22hw4dGhMmTCjpfncmn89HR0dH1NXV9b4PVBYzrHyDY4at5d7Abjew5zewDY5rcGBLPcP29vZ+nVfSAH3rrbfi61//evzqV7+KO++8M+rq6nofGzNmTHR1dfU5v6urK+rr6/v99nO5XAwbNqxU2+2X2tra5GtSWmZY+cywsplf5TPDypdqhv15+j2ihD+Iftu2bXHuuefGr3/967jrrrviM5/5TJ/HGxoaorm5ufflfD4fra2t0dDQUKotAABQAUoWoA888EA888wzccUVV8SIESOis7MzOjs7Y/PmzRERMWfOnFi9enUsW7Ys2traYuHChTFu3Dg/ggkAYJAp2VPwP/7xj2Pbtm0xf/78PsenTZsWd911V4wbNy6uv/76+Id/+IdYunRpNDY2xtKlS/t9qxYAgIHhIwXohg0bev/39773vV2ef8QRR8QRRxzxUZYEAKDClewpeAAA6A8BCgBAUgIUAICkBCgAAEkJUAAAkhKgAAAkJUABAEhKgAIAkJQABQAgKQEKAEBSAhQAgKQEKAAASQlQAACSEqAAACQlQAEASEqAAgCQlAAFACApAQoAQFICFACApAQoAABJCVAAAJISoAAAJCVAAQBISoACAJCUAAUAICkBCgBAUgIUAICkBCgAAEkJUAAAkhKgAAAkJUABAEhKgAIAkJQABQAgKQEKAEBSAhQAgKQEKAAASQlQAACSEqAAACQlQAEASEqAAgCQlAAFACApAQoAQFICFACApAQoAABJCVAAAJISoAAAJCVAAQBISoACAJCUAAUAICkBCgBAUgIUAICkBCgAAEkJUAAAkhKgAAAkJUABAEjqQwdooVCImTNnxjPPPNN7bOPGjXHaaafFIYccEkcffXT84he/6PM6Tz31VMycOTMaGhri1FNPjY0bN374nQMAUJE+VIBu2bIlzj///Ghra+s9lmVZnHPOOTFq1KhYvnx5zJo1K84999zYtGlTRERs2rQpzjnnnJg9e3Y88MADse+++8bZZ58dWZaV5j0BAKAiDCn2Fdrb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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# lets check the X_train_transformed to see effect of params passed\n",
"get_config('X_train_transformed')['Age'].hist()"
]
},
{
"cell_type": "markdown",
"id": "d28a3e4e",
"metadata": {},
"source": [
"Notice that all the values are between 0 and 1 - that is because we passed `normalize=True` in the `setup` function. If you don't remember how it compares to actual data, no problem - we can also access non-transformed values using `get_config` and then compare. See below and notice the range of values on x-axis and compare it with histogram above."
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "68cc1c63",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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GN/85jejvb29qGezdevWGDVqVNx7770xY8aM+OAHPxgrVqyI3bt3F/VcXuuOO+6IioqKmDFjRkQU9/lUVlYWl112Wdx1111RWVkZJ598crzvfe+L2bNnF/VcRowYEX/9618jl8vlt23fvj1eeumlopzLWWedFRdffHGUl5d32L6vWRRiVgMOcs0cgKVLl8amTZti1apVceutt0ZpaWmH20tLS6O9vT3R6tL51re+FS0tLXH55ZfHkiVLIpfLFe1s2tra4qtf/WpcdtllMWjQoA63FfNcIl75PqVXZ7B8+fL405/+FFdeeWW8+OKLRT2b1tbWePrpp+POO++MJUuWRHNzc1x22WVRXl5e1HP5R1mWxd133x3nnXdefluxz+bJJ5+MD3zgA/HJT34yGhoaYtGiRfGud72rqOdSWVkZFRUVsWjRorj00kujubk5brnlloh45Yd9inUur7WvY6QQx5Ao7WZLly6N2267La655poYP358lJWVxc6dOzvcp729fY8QKQYTJ06MiFeC7Itf/GLMmjWrw79UI4pnNtddd10cd9xxHa6wv6qsrGyPk7pY5hIRMWrUqHjsscfi9a9/fZSUlMSECRNi9+7d8aUvfSlqamqKdjYDBgyIF154IZYtWxajRo2KiFcC/o477ogxY8YU7Vz+0e9///vYsWNHnHrqqfltxXw+Pfroo7Fq1ap46KGHYtCgQTFx4sTYsWNH3HDDDXHkkUcW7VzKyspi+fLl8YUvfCGqq6tj+PDhcd5558WSJUuipKSkaOfyWvvql67OraFDh+73Pjx9340WLVoUt9xySyxdujROOumkiIg44ogjoqWlpcP9Wlpa9rjk3V+1tLTE/fff32HbuHHjYteuXTFy5Miinc19990X999/f1RVVUVVVVWsXbs21q5dG1VVVUV/zEREvOENb8h/r1tExNFHHx1tbW1FfcyMHDkyysrK8kEaEXHUUUfFs88+65j5u1/+8pcxZcqUeP3rX5/fVsyz2bhxY4wZM6ZDUB1zzDGxbdu2op5LRMTxxx8fDzzwQPziF7+IBx98MI466qh44xvfGG95y1uKei7/aF/HSFe3jxw5cr/3IUq7yXXXXRd33nlnXH311R3+lV5ZWRl/+MMf4sUXX8xvq6uri8rKyhTL7HF/+tOfYv78+bFjx478to0bN8awYcOiurq6aGezcuXKWLt2bdx7771x7733xvTp02P69Olx7733RmVlZfzud7/Lv6xGlmWxbt26ophLxCthMXXq1A5X0Tdv3hxveMMborq6umhnU1lZGW1tbfHUU0/lt23ZsiVGjRpV9MfMqzZs2BCTJ0/usK2YZ1NRURFPP/10h6tZW7ZsidGjRxf1XHbu3BlnnnlmPPfcczFy5MgYMGBAPPjgg1FTU1P0X7P/0b5mUVlZGXV1dfnbcrlcbNq06YBmJUq7wZNPPhnXX399fOYzn4nq6upobm7Ov9XU1MSb3vSmWLhwYTQ0NERtbW1s2LAhzjjjjNTL7hETJ06MY489Ni6++OJobGyMhx56KJYuXRqf/exni3o2o0aNijFjxuTfDj/88Dj88MNjzJgxMWPGjHj++edj8eLF0djYGIsXL45cLhcnn3xy6mX3iKqqqigrK4tLL700tmzZEg899FBcddVVcd555xX1bN761rfG+9///li4cGH88Y9/jF/+8pdRW1sbZ555ZlHP5R81NDR0eCWLiCjq2UyfPj0GDhwYl156aTz11FPxwAMPxI033hhnn312Uc/lDW94Q7S2tsbSpUtj69atcffdd8fq1avjvPPOK+qvS6+1r1nMmjUr1q1bF7W1tdHQ0BALFy6M0aNHx9SpU/d/Jwf/SlZ05aabbsrGjx/f6VuWZVlTU1P2sY99LDvuuOOyU089NfvVr36VeMU9a/v27dm8efOyyZMnZ+95z3uyG264If/aeMU+m1dddNFF+dcpzbIsq6+vzz784Q9nEydOzM4444zsD3/4Q8LV9bz//d//zc4999xs0qRJ2Xve857s2muvzR8zxTyb559/PvvSl76UTZo0KXvXu95lLq8xceLE7Be/+MUe24t5Ng0NDdm5556bTZ48OTvxxBOzW265xTGTZdmTTz6ZffzjH88qKyuzU089NXvggQfytxXz16V/fJ3SLNv3LB588MHsX/7lX7Ljjz8++8QnPtHhtV/3R0mWHchL7QMAQOF5+h4AgOREKQAAyYlSAACSE6UAACQnSgEASE6UAgCQnCgFACA5UQoAQHKiFACA5EQpAADJiVIAAJITpQAAJPf/AM132yHfRtAsAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"get_config('X_train')['Age'].hist()"
]
},
{
"cell_type": "markdown",
"id": "9e6c47cb",
"metadata": {},
"source": [
"## ✅ Experiment Logging\n",
"PyCaret integrates with many different type of experiment loggers (default = 'mlflow'). To turn on experiment tracking in PyCaret you can set `log_experiment` and `experiment_name` parameter. It will automatically track all the metrics, hyperparameters, and artifacts based on the defined logger."
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "1af63fd0",
"metadata": {},
"outputs": [],
"source": [
"# from pycaret.clustering import *\n",
"# s = setup(data, log_experiment='mlflow', experiment_name='jewellery_project')"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "42cd6120",
"metadata": {},
"outputs": [],
"source": [
"# train kmeans\n",
"# kmeans = create_model('kmeans')"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "adc82ce5",
"metadata": {},
"outputs": [],
"source": [
"# start mlflow server on localhost:5000\n",
"# !mlflow ui"
]
},
{
"cell_type": "markdown",
"id": "a06f9df7",
"metadata": {},
"source": [
"By default PyCaret uses `MLFlow` logger that can be changed using `log_experiment` parameter. Following loggers are available:\n",
" \n",
" - mlflow\n",
" - wandb\n",
" - comet_ml\n",
" - dagshub\n",
" \n",
"Other logging related parameters that you may find useful are:\n",
"\n",
"- experiment_custom_tags\n",
"- log_plots\n",
"- log_data\n",
"- log_profile\n",
"\n",
"For more information check out the docstring of the `setup` function."
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "2f8b6aa1",
"metadata": {},
"outputs": [],
"source": [
"# help(setup)"
]
},
{
"cell_type": "markdown",
"id": "6ce0b555",
"metadata": {},
"source": [
"## ✅ Create Model\n",
"This function trains and evaluates the performance of a given estimator using cross-validation. The output of this function is a scoring grid with CV scores by fold. Metrics evaluated during CV can be accessed using the `get_metrics` function. Custom metrics can be added or removed using `add_metric` and `remove_metric` function. All the available models can be accessed using the models function."
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "837cebfa",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Name \n",
" Reference \n",
" \n",
" \n",
" ID \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" kmeans \n",
" K-Means Clustering \n",
" sklearn.cluster._kmeans.KMeans \n",
" \n",
" \n",
" ap \n",
" Affinity Propagation \n",
" sklearn.cluster._affinity_propagation.Affinity... \n",
" \n",
" \n",
" meanshift \n",
" Mean Shift Clustering \n",
" sklearn.cluster._mean_shift.MeanShift \n",
" \n",
" \n",
" sc \n",
" Spectral Clustering \n",
" sklearn.cluster._spectral.SpectralClustering \n",
" \n",
" \n",
" hclust \n",
" Agglomerative Clustering \n",
" sklearn.cluster._agglomerative.AgglomerativeCl... \n",
" \n",
" \n",
" dbscan \n",
" Density-Based Spatial Clustering \n",
" sklearn.cluster._dbscan.DBSCAN \n",
" \n",
" \n",
" optics \n",
" OPTICS Clustering \n",
" sklearn.cluster._optics.OPTICS \n",
" \n",
" \n",
" birch \n",
" Birch Clustering \n",
" sklearn.cluster._birch.Birch \n",
" \n",
" \n",
" kmodes \n",
" K-Modes Clustering \n",
" kmodes.kmodes.KModes \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Name \\\n",
"ID \n",
"kmeans K-Means Clustering \n",
"ap Affinity Propagation \n",
"meanshift Mean Shift Clustering \n",
"sc Spectral Clustering \n",
"hclust Agglomerative Clustering \n",
"dbscan Density-Based Spatial Clustering \n",
"optics OPTICS Clustering \n",
"birch Birch Clustering \n",
"kmodes K-Modes Clustering \n",
"\n",
" Reference \n",
"ID \n",
"kmeans sklearn.cluster._kmeans.KMeans \n",
"ap sklearn.cluster._affinity_propagation.Affinity... \n",
"meanshift sklearn.cluster._mean_shift.MeanShift \n",
"sc sklearn.cluster._spectral.SpectralClustering \n",
"hclust sklearn.cluster._agglomerative.AgglomerativeCl... \n",
"dbscan sklearn.cluster._dbscan.DBSCAN \n",
"optics sklearn.cluster._optics.OPTICS \n",
"birch sklearn.cluster._birch.Birch \n",
"kmodes kmodes.kmodes.KModes "
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# check all the available models\n",
"models()"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "16641cab",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
" \n",
" \n",
" Silhouette \n",
" Calinski-Harabasz \n",
" Davies-Bouldin \n",
" Homogeneity \n",
" Rand Index \n",
" Completeness \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 0.7569 \n",
" 1449.9983 \n",
" 0.3958 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" \n",
" \n",
"
\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Processing: 0%| | 0/3 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# train kmeans\n",
"kmeans = create_model('kmeans')"
]
},
{
"cell_type": "markdown",
"id": "074b4572",
"metadata": {},
"source": [
"The function above has return trained model object as an output. The scoring grid is only displayed and not returned. If you need access to the scoring grid you can use `pull` function to access the dataframe."
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "fe277e1b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Silhouette \n",
" Calinski-Harabasz \n",
" Davies-Bouldin \n",
" Homogeneity \n",
" Rand Index \n",
" Completeness \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 0.7569 \n",
" 1449.9983 \n",
" 0.3958 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Silhouette Calinski-Harabasz Davies-Bouldin Homogeneity Rand Index \\\n",
"0 0.7569 1449.9983 0.3958 0 0 \n",
"\n",
" Completeness \n",
"0 0 "
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"kmeans_results = pull()\n",
"print(type(kmeans_results))\n",
"kmeans_results"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "148a74c4",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
" \n",
" \n",
" Silhouette \n",
" Calinski-Harabasz \n",
" Davies-Bouldin \n",
" Homogeneity \n",
" Rand Index \n",
" Completeness \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 0.2828 \n",
" 2304.6187 \n",
" 1.3370 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" \n",
" \n",
"
\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Processing: 0%| | 0/3 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"KMeans(n_clusters=10, random_state=123) In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org. "
],
"text/plain": [
"KMeans(n_clusters=10, random_state=123)"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# train kmeans with 10 clusters\n",
"create_model('kmeans', num_clusters = 10)"
]
},
{
"cell_type": "markdown",
"id": "08634e9e",
"metadata": {},
"source": [
"Some other parameters that you might find very useful in `create_model` are:\n",
"\n",
"- num_clusters\n",
"- ground_truth\n",
"- fit_kwargs\n",
"- experiment_custom_tags\n",
"- engine\n",
"\n",
"You can check the docstring of the function for more info."
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "3fb32c74",
"metadata": {},
"outputs": [],
"source": [
"# help(create_model)"
]
},
{
"cell_type": "markdown",
"id": "0376bf74",
"metadata": {},
"source": [
"## ✅ Assign Model\n",
"This function assigns cluster labels to the training data, given a trained model."
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "2978c95b",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Age \n",
" Income \n",
" SpendingScore \n",
" Savings \n",
" Cluster \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 58 \n",
" 77769 \n",
" 0.791329 \n",
" 6559.830078 \n",
" Cluster 1 \n",
" \n",
" \n",
" 1 \n",
" 59 \n",
" 81799 \n",
" 0.791082 \n",
" 5417.661621 \n",
" Cluster 1 \n",
" \n",
" \n",
" 2 \n",
" 62 \n",
" 74751 \n",
" 0.702657 \n",
" 9258.993164 \n",
" Cluster 1 \n",
" \n",
" \n",
" 3 \n",
" 59 \n",
" 74373 \n",
" 0.765680 \n",
" 7346.334473 \n",
" Cluster 1 \n",
" \n",
" \n",
" 4 \n",
" 87 \n",
" 17760 \n",
" 0.348778 \n",
" 16869.507812 \n",
" Cluster 0 \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 500 \n",
" 28 \n",
" 101206 \n",
" 0.387441 \n",
" 14936.775391 \n",
" Cluster 2 \n",
" \n",
" \n",
" 501 \n",
" 93 \n",
" 19934 \n",
" 0.203140 \n",
" 17969.693359 \n",
" Cluster 0 \n",
" \n",
" \n",
" 502 \n",
" 90 \n",
" 35297 \n",
" 0.355149 \n",
" 16091.402344 \n",
" Cluster 0 \n",
" \n",
" \n",
" 503 \n",
" 91 \n",
" 20681 \n",
" 0.354679 \n",
" 18401.087891 \n",
" Cluster 0 \n",
" \n",
" \n",
" 504 \n",
" 89 \n",
" 30267 \n",
" 0.289310 \n",
" 14386.351562 \n",
" Cluster 0 \n",
" \n",
" \n",
"
\n",
"
505 rows × 5 columns
\n",
"
"
],
"text/plain": [
" Age Income SpendingScore Savings Cluster\n",
"0 58 77769 0.791329 6559.830078 Cluster 1\n",
"1 59 81799 0.791082 5417.661621 Cluster 1\n",
"2 62 74751 0.702657 9258.993164 Cluster 1\n",
"3 59 74373 0.765680 7346.334473 Cluster 1\n",
"4 87 17760 0.348778 16869.507812 Cluster 0\n",
".. ... ... ... ... ...\n",
"500 28 101206 0.387441 14936.775391 Cluster 2\n",
"501 93 19934 0.203140 17969.693359 Cluster 0\n",
"502 90 35297 0.355149 16091.402344 Cluster 0\n",
"503 91 20681 0.354679 18401.087891 Cluster 0\n",
"504 89 30267 0.289310 14386.351562 Cluster 0\n",
"\n",
"[505 rows x 5 columns]"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"assign_model(kmeans)"
]
},
{
"cell_type": "markdown",
"id": "2dc8e294",
"metadata": {},
"source": [
"## ✅ Plot Model\n",
"This function analyzes the performance of a trained model."
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "952b6f24",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABVoAAAP1CAYAAACQXVTmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAB7CAAAewgFu0HU+AAEAAElEQVR4nOzdd3hT5fsG8Dvdgw4oLdABZUMLZVP23lKWLAURFRVkiSCCICIOQESWCIoMZSOyyiy0FEGgpaxCgQItpXvvnab5/dFfzjdp0jbpSsf9uS4vk5OTkyfpSULu857nFUmlUimIiIiIiIiIiIiIqNR0tF0AERERERERERERUXXHoJWIiIiIiIiIiIiojBi0EhEREREREREREZURg1YiIiIiIiIiIiKiMmLQSkRERERERERERFRGDFqJiIiIiIiIiIiIyohBKxEREREREREREVEZMWglIiIiIiIiIiIiKiMGrURERERERERERERlxKCViIiIiIiIiIiIqIwYtBIRERERERERERGVEYNWIiIiIiIiIiIiojJi0EpERERERERERERURgxaiYiIiIiIiIiIiMqIQSsRERERERERERFRGTFoJSIiIiIiIiIiIiojBq1EREREREREREREZcSglYiIiIiIiIiIiKiMGLQSEVGtIRaLtV1CkapybURERFQ2/J4nIqod9LRdABERVW0nTpzA8uXLi11HV1cXBgYGsLCwgJ2dHbp164bRo0ejZcuWJW5/2bJlOHnyJADgr7/+gqura7nUXdiJEyfg7e2NrVu3Vsj2SysvLw9//vknIiIisGrVKqXbt23bhl9++QUAsHbtWkyYMKGyS6wUT548wZUrV3Dz5k1ER0cjMTER+vr6sLKygp2dHXr37o3BgwejadOm2i61xmjdunWZt1H4Pevj44MZM2YAAMaPH49169YprD9o0CBEREQAAAIDA8v8+DVNVlYW/vjjD3h4eCAqKgrZ2dkwMzNDv379sH79em2XVyz5v60mn+V///03vvrqK0ilUgBA27ZtsWfPHtSrVw+A4neEzO7du9GnTx+N6pPfN2U8PDzQpEkTjbZDpRcREYGLFy/i1q1bePnyJZKSkiCRSGBubo5mzZqhS5cuGDNmDJo3b17sdirr3w3lJTk5GRs2bEC3bt0wbtw4bZcDAAgPD8fgwYMBAN27d8f+/fu1XBERUc3B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iIiIiIiIiMqIQSsRERERERERERFRGTFoJSIiIiIiIiIiIiojBq1EREREREREREREZcSglYiIiIiIiIiIiKiMGLQSERERERERERERlZGetgsgzeXm5iI5OVm4bmhoCF1dXe0VREREREREREREVI1IJBLk5OQI1y0tLWFgYFCmbTJorYaSk5MRFham7TKIiIiIiIiIiIhqDBsbmzLdn60DiIiIiIiIiIiIiMqIQSsRERERERERERFRGbF1QDVkaGiocN3BwQEmJiZaqqZivHz5EhKJBLq6umjRooW2y6FqgPsMaYr7DGmK+wxpivsMaYL7C2mK+wxpivsMaaqm7zOZmZkKrTkL522lwaC1Gio88ZWJiQnq1KmjpWoqho6ODiQSCXR0dGrcc6OKwX2GNMV9hjTFfYY0xX2GNMH9hTTFfYY0xX2GNFXb9pnymGierQOIiIiIiIiIiIiIyogjWomIiIhK0KlTJyQmJgrX69Wrh/v372uxIiIiIiIiqmoYtBIRERGVICUlBWlpacL18jitiIiIiIiIaha2DiAiIiIiIiIiIiIqIwatRERERERERERERGXEoJWIiIiIiIiIiIiojBi0EhEREREREREREZURg1YiIiIiIiIiIiKiMmLQSkRERERERERERFRGDFqJiIiIiIiIiIiIyohBKxEREREREREREVEZMWglIiIiIiIiIiIiKiMGrURERERERERERERlpKftAoiIiIiIqHxIJBKkpaUhLS0NYrEYUqlU2yWRmnR0dGBgYACRSISgoCBtl0PVAPcZ0hT3GdJUVdpnRCIR9PX1YWZmBjMzM+jq6mq1nqIwaCUiIiIiqgGSk5ORkJAAc3Nz2NjYCD+MqHrIzMyEVCqFSCSCiYmJtsuhaoD7DGmK+wxpqirtM1KpFLm5uUhNTUVISAisrKxgaWmp1ZpUYdBKRERERFTNJScnIyUlBU2bNoWODruDERERUc0iEolgaGgIa2trWFlZISwsDACqXNjKf4UREREREVVjEokECQkJcHBwYMhKRERENZ6Ojg4cHByQkJAAiUSi7XIU8F9iRERERETVWFpaGszNzRmyEhERUa2ho6MDc3NzpKWlabsUBfzXGBERERFRNSYLWomIiIhqEzMzsyoXtLJHKxEREVEJHjx4gICAAIjFYujr68PZ2VnbJREJxGIxDAwMtF0GERERUaUyNDSEWCzWdhkKGLQSERERlcDc3BympqZC0MrRg1SVyGYDJiIiIqpNRCIRpFKptstQwNYBVCXtfBCN3/1jtV0GERERERERERGRWjiilaqcby49xG8PYwAAurq6+NXFRcsVERERERERERERFY8jWqlK+ebSQ6zx8Beu//YwBt9ceqjFioiIiIiIiIiIiErGoJWqjMIhq8waD3+GrUREREREREREVKUxaKUqoaiQVYZhKxERERERERERVWXs0UpaV1LIKiNb5+vhHSq6JCIiIgXPnz/Hq1evkJeXBz09PRgZGaFVq1baLouIiIiIiKoQBq2kVeqGrDIMW4mISBtGjBiB5ORk4bqlpSWCg4O1VxAREREREVU5DFpJazQNWWUYthIRERERUU2Wl5eHzp07IycnB3p6erh37x4MDQ21XRYREZWAQStpRWlDVhmGrUREREREVNWIxWLo6+uXeTtBQUHIyckBADRr1qzGhqwnTpzA8uXLNbrPxIkT8f3331dQRUSlt3btWuzbt0+4bmdnBy8vr1Jvz8fHBzNmzChTPRMmTCh2ndzcXJw/fx7nzp3Dy5cvER8fDwsLC9jb22Po0KEYMWIELC0tNXpcX19fnDlzBn5+foiLi4NYLIa1tTVat26NUaNGYcSIEdDTq7lxZM19ZlRllTVklWHYSkRERES13aBBgxAREQEACAwMVPs2Kl95eXn4888/ERERgVWrVpV5e0+fPhUuOzk5lXl7RFSx/P398ddff2m7DAX169cv9vagoCAsXrxY4fMGAOLi4hAXF4f79+/jjz/+wOrVq9G3b98SHy8pKQlLly7Fv//+q3RbeHg4wsPD4enpiT179mDDhg1o3ry5Zk+ommDQSpWqvEJWGYatRERERESkTdHR0fj444/x7NkzjB8/vly2KR98tG3btly2WdU1a9YMPXv2LHG9Tp06VUI1ROoTi8VYsWIF8vPzy3W7DRo0wLRp09Re/7///kNISAiAgpC1V69eRa4bHR2NmTNnIjY2FgAgEonQrVs3ODg4IDExEbdu3UJ2djYSExPx2WefYfv27RgwYECR20tJScHUqVOFxwcABwcHdOzYEYaGhggNDcX9+/chFosREBCAGTNm4OjRo7C3t1f7+VUXDFqp0pR3yCrDsJWIiIiIiLTl9evXePbsWblu88mTJ8Ll2jKitUOHDuUyGpiosu3a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IiKimoZBK9UKbs4OSsvcA9inlYiIiIiIiIiIygeDVqoV3JztlZadexIOSX6+FqohIiIiIiIiIqKahkEr1QqtbczRsr6ZwrL4jBzcCokv4h5ERERERERERETqY9BKtYJIJMKYdqraB4RpoRoiIiIiIiIiIqppGLRSraGqfQD7tBIRERERERERUXlg0Eq1Rs8m1rAyMVRYFhiXisDYFC1VRERERERERERENQWDVqo19HR1MMrJTmk5R7USEREREREREVFZMWilWmWMs6o+rQxaiYiIiIiIiIiobBi0Uq0yrHUjGOgq7vY3Q+IQl56tpYqIiIiIiIiIiKgmYNBKtUodQ30MatlQYVm+VIrzTyO0VBEREREREREREdUEDFqp1nFT0T7gTECYFiohIiIiIiIiIqKagkEr1TpuzvZKyzwCI5EtlmihGiIiIiIiIiIiqgkYtFKtY2dhgq4OVgrLMnMl8HoZraWKiIiIiIiIiIioumPQSrWSqlGt7mwfQEREREREREREpcSglWolVUHr2YBw5OdLtVANERERERERERFVd3raLoBIG1wa1UXjuqYITcoQlkWmZuFueAK6Na6vxcqIiKgqunHjBp48eYK8vDzo6enByclJ2yUREREREVEVwxGtVCuJRCK4OalqHxCuhWqIiKiqs7W1hY2NDaytrWFjYwNbW1ttl0RERERERFUMg1aqtca0c1BaxqCViIiIiIiIiIhKg0Er1Vr9mtnA3EhfYZl/VBJCEtO1VBEREREREREREVVXDFqp1jLQ08WINsqnfp7lqFYiIiIiIiIiItIQg1aq1dycldsHnAkI00IlRERERERERERUnTFopVptZBtb6OqIFJZdC4pBclaulioiIiIiIiIiIqLqiEEr1Wp1TQzRv1kDhWV5+VJcfBahpYqIiKgqioyMRGxsLOLi4hAbG4vIyEhtl0RERERERFWMnrYLINI2N2d7eL2MVljmHhCOqZ2aaqkiIiKqavr06YPk5GThuqWlJYKDg7VXEBERERERVTkc0Uq13mhne6VlF55GQCzJ10I1RERERERERERUHTFopVqvmZUZ2jW0VFiWki3Gv0Ex2imIiIiIiIiIiIiqHQatRChoH1CY+5NwLVRCRERERERERETVEYNWIgBj2jkoLXMPCINUKtVCNUREREREREREVN0waCUC0NXeCg3NjBWWhSRm4HF0snYKIiIiIiIiIiKiaoVBKxEAHR0RRjvbKS13D2D7ACIiIiIiIiIiKhmDVqL/5+as3D7gzOMwLVRCRERERERERETVDYNWov83uGVDmBjoKiy7E5aAyJRMLVVERERERERERETVBYNWov9nrK+Hoa1slZaffcL2AUREREREREREVDwGrURy3JztlZaxTysREREREREREZWEQSuRnDfa2kEkUlzm+SIKGTli7RRERERERERERETVAoNWIjk2Zsbo2cRaYVlOXj48nkdpqSIiIiIiIiIiIqoOGLQSFTLG2UFpGdsHEBERERERERFRcRi0EhWiqk/ruSfhkOTna6EaIiIiIiIiIiKqDhi0EhXS2sYcLeubKSyLz8jB7dfxWqqIiIiIiIiIiIiqOgatRIWIRCK4qWgfcOZxmBaqISIiIiIiIiKi6oBBK5EKqtoHsE8rEVHtZWdnhwYNGgj/2dnZabskIiIiIiKqYvS0XQBRVdTL0RpWJoZIyMwRlgXGpSIwNgWtbSy0WBkREWnD9evX4e/vD7FYDH19fbi4uGi7JCIiIiIiqmI4opVIBT1dHYxyUh6tdJajWomIiIiIiIiISAUGrURFUNk+4AmDViIiIiIiIiIiUsaglagIw1rZwkBX8S3y36s4xKdna6kiIiIiIiIiIiKqqhi0EhXBzEgfA1s2VFiWL5Xi3NMILVVERERERERERERVFYNWomKMcXZQWubOPq1ERERERERERFQIg1aiYoxWMSGWR2AkssUSLVRDRERERERERERVlZ62CyCqyuwtTdHFvh7uhicKyzJy83D1ZTRGtlUOYYmIqGY6c+YMgoKCkJeXBz09PYSEhGDMmDHaLouIiIiIiKoQBq1EJXBzdlAIWgHgTEAYg1Yiolrk008/RXJysnDd0tKSQSsRERERESlg6wCiErg52ystOxsQjvx8qRaqISIiIiIiIiKiqohBK1EJOtjWReO6pgrLIlOzcC8isYh7EBERERERERFRbcOglagEIpEIbk7Ko1rdA8K0UA0REREREREREVVFDFqJ1KCqfYB7QLgWKiEiIiIiIiIioqqIQSuRGvo3bwAzQ32FZQ8jkxCSmK6lioiIiIiIiIiIqCph0EqkBgM9XYxoY6u0/CxHtRIRERERERERERi0EqltTDsHpWVn2KeViIiIiIiIiIjAoJVIbSPb2EJXR6Sw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Q8wuCVFk7Nixmjt3brHrXnzxRfXv378CKkJlcObMGc2ZM0cbNmzQoUOHlJubq8suu0wdO3ZUSkqKLr30UrNLRBR47rnn9O9//7tE95kzZ47at29fThWhMtm6davee+897dixQ1lZWapWrZqaNWum3r17q2fPnrJa6adCsA8//FCLFy9WamqqTp8+rdq1a+u6667TQw89pFatWpldHqKA73XvuHHjdPfddxe51uFwaMGCBVqxYoX27dsnj8ejxMREdenSRQ8//LBq1apVMUVHKYJWRAWn06nnnntOK1euDNrvcDiUlpamtLQ0LVq0SG+99ZbatGljUpWIFg6HQ88++6zWrl0btP/o0aM6evSo1qxZo/vuu08vvfSSLBaLSVWiMnjllVd04MABs8tAlPrvf/9rdgmoZHbv3q2BAwfq+PHjQfsPHDigAwcOaPny5ZoxY4aSk5NNqhCVWbVq1cwuAVFg/PjxmjVrVtC+rKwsff755/r888+1cuVKvfXWW6pSpYpJFSKa5OTkaMSIEfrggw+C9qenp2vVqlVatWqVhg4dqieffNKkChENNmzYoHnz5kW0Njc3V48++qi+/PLLoP179+7V3r179a9//UszZ85UUlJSeZRaKVg8Ho/H7CKAwBcMnTt31qOPPqrGjRsrIyNDmzdv1ttvv63s7GzVqlVLK1asoBskxr3yyit65513JEm/+93v9Mgjj6hBgwY6cuSIZs6cqXXr1kmShg0bpkGDBplZKqLYxx9/rMcff9z/PR2tCOR2u9W2bVtlZ2dr1KhRuuuuu8KujY+Pl91ur8DqEI0yMjLUo0cPZWVlqXr16nr66afVqVMnOZ1Obdq0Sa+//rp+/fVX1a1bV2vXrtWFF15odskwUV5enhwOR5Frtm7dqsGDB8vj8eixxx7T8OHDK6g6RKvFixfrhRdekCS1bt1aw4YN01VXXaVjx47pnXfe0apVqyRJ99xzj15++WUzS0WUGDFihJYvXy5JatOmjYYOHapmzZrp559/1vvvv+//5M5TTz2lP/7xj2aWCpNs3LhRTz31lP93UnEdrX/605+0evVq2e12DR48WD169FB8fLw2b96sV199VSdPnlRiYqJWrVqlqlWrVtQ/I6oQtMJ06enpuvXWW+V0OnXnnXdq4sSJhdakpqaqb9++cjqd6tevn0aOHGlCpYgG6enp6ty5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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# to control the scale of plot\n",
"plot_model(kmeans, plot = 'elbow', scale = 2)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "54389270",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"'Elbow Plot.png'"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# to save the plot\n",
"plot_model(kmeans, plot = 'elbow', save=True)"
]
},
{
"cell_type": "markdown",
"id": "2fef279d",
"metadata": {},
"source": [
"Some other parameters that you might find very useful in `plot_model` are:\n",
"\n",
"- feature\n",
"- label\n",
"- display_format\n",
"\n",
"You can check the docstring of the function for more info."
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "54b09b8e",
"metadata": {},
"outputs": [],
"source": [
"# help(plot_model)"
]
},
{
"cell_type": "markdown",
"id": "ed00202c",
"metadata": {},
"source": [
"## ✅ Deploy Model\n",
"This function deploys the entire ML pipeline on the cloud.\n",
"\n",
"**AWS:** When deploying model on AWS S3, environment variables must be configured using the command-line interface. To configure AWS environment variables, type `aws configure` in terminal. The following information is required which can be generated using the Identity and Access Management (IAM) portal of your amazon console account:\n",
"\n",
"- AWS Access Key ID\n",
"- AWS Secret Key Access\n",
"- Default Region Name (can be seen under Global settings on your AWS console)\n",
"- Default output format (must be left blank)\n",
"\n",
"**GCP:** To deploy a model on Google Cloud Platform ('gcp'), the project must be created using the command-line or GCP console. Once the project is created, you must create a service account and download the service account key as a JSON file to set environment variables in your local environment. Learn more about it: https://cloud.google.com/docs/authentication/production\n",
"\n",
"**Azure:** To deploy a model on Microsoft Azure ('azure'), environment variables for the connection string must be set in your local environment. Go to settings of storage account on Azure portal to access the connection string required.\n",
"AZURE_STORAGE_CONNECTION_STRING (required as environment variable)\n",
"Learn more about it: https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-python?toc=%2Fpython%2Fazure%2FTOC.json"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "40b20a18",
"metadata": {},
"outputs": [],
"source": [
"# deploy model on aws s3\n",
"# deploy_model(kmeans, model_name = 'my_first_platform_on_aws',\n",
"# platform = 'aws', authentication = {'bucket' : 'pycaret-test'})"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "9e236516",
"metadata": {},
"outputs": [],
"source": [
"# load model from aws s3\n",
"# loaded_from_aws = load_model(model_name = 'my_first_platform_on_aws', platform = 'aws',\n",
"# authentication = {'bucket' : 'pycaret-test'})\n",
"\n",
"# loaded_from_aws"
]
},
{
"cell_type": "markdown",
"id": "e169ae86",
"metadata": {},
"source": [
"## ✅ Save / Load Model\n",
"This function saves the transformation pipeline and a trained model object into the current working directory as a pickle file for later use."
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "bc5cf24a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Transformation Pipeline and Model Successfully Saved\n"
]
},
{
"data": {
"text/plain": [
"(Pipeline(memory=FastMemory(location=C:\\Users\\owner\\AppData\\Local\\Temp\\joblib),\n",
" steps=[('numerical_imputer',\n",
" TransformerWrapper(include=['Age', 'Income', 'SpendingScore',\n",
" 'Savings'],\n",
" transformer=SimpleImputer())),\n",
" ('categorical_imputer',\n",
" TransformerWrapper(include=[],\n",
" transformer=SimpleImputer(strategy='most_frequent'))),\n",
" ('normalize', TransformerWrapper(transformer=MinMaxScaler())),\n",
" ('trained_model', KMeans(n_clusters=4, random_state=123))]),\n",
" 'my_first_model.pkl')"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# save model\n",
"save_model(kmeans, 'my_first_model')"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "e8478d34",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Transformation Pipeline and Model Successfully Loaded\n"
]
},
{
"data": {
"text/html": [
"Pipeline(memory=FastMemory(location=C:\\Users\\owner\\AppData\\Local\\Temp\\joblib),\n",
" steps=[('numerical_imputer',\n",
" TransformerWrapper(include=['Age', 'Income', 'SpendingScore',\n",
" 'Savings'],\n",
" transformer=SimpleImputer())),\n",
" ('categorical_imputer',\n",
" TransformerWrapper(include=[],\n",
" transformer=SimpleImputer(strategy='most_frequent'))),\n",
" ('normalize', TransformerWrapper(transformer=MinMaxScaler())),\n",
" ('trained_model', KMeans(n_clusters=4, random_state=123))]) In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org. Pipeline Pipeline(memory=FastMemory(location=C:\\Users\\owner\\AppData\\Local\\Temp\\joblib),\n",
" steps=[('numerical_imputer',\n",
" TransformerWrapper(include=['Age', 'Income', 'SpendingScore',\n",
" 'Savings'],\n",
" transformer=SimpleImputer())),\n",
" ('categorical_imputer',\n",
" TransformerWrapper(include=[],\n",
" transformer=SimpleImputer(strategy='most_frequent'))),\n",
" ('normalize', TransformerWrapper(transformer=MinMaxScaler())),\n",
" ('trained_model', KMeans(n_clusters=4, random_state=123))]) "
],
"text/plain": [
"Pipeline(memory=FastMemory(location=C:\\Users\\owner\\AppData\\Local\\Temp\\joblib),\n",
" steps=[('numerical_imputer',\n",
" TransformerWrapper(include=['Age', 'Income', 'SpendingScore',\n",
" 'Savings'],\n",
" transformer=SimpleImputer())),\n",
" ('categorical_imputer',\n",
" TransformerWrapper(include=[],\n",
" transformer=SimpleImputer(strategy='most_frequent'))),\n",
" ('normalize', TransformerWrapper(transformer=MinMaxScaler())),\n",
" ('trained_model', KMeans(n_clusters=4, random_state=123))])"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# load model\n",
"loaded_from_disk = load_model('my_first_model')\n",
"loaded_from_disk"
]
},
{
"cell_type": "markdown",
"id": "de5eee8c",
"metadata": {},
"source": [
"## ✅ Save / Load Experiment\n",
"This function saves all the experiment variables on disk, allowing to later resume without rerunning the setup function."
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "6a3c61b6",
"metadata": {},
"outputs": [],
"source": [
"# save experiment\n",
"save_experiment('my_experiment')"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "83252c09",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
" \n",
" \n",
" Description \n",
" Value \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" Session id \n",
" 123 \n",
" \n",
" \n",
" 1 \n",
" Original data shape \n",
" (505, 4) \n",
" \n",
" \n",
" 2 \n",
" Transformed data shape \n",
" (505, 4) \n",
" \n",
" \n",
" 3 \n",
" Numeric features \n",
" 4 \n",
" \n",
" \n",
" 4 \n",
" Preprocess \n",
" True \n",
" \n",
" \n",
" 5 \n",
" Imputation type \n",
" simple \n",
" \n",
" \n",
" 6 \n",
" Numeric imputation \n",
" mean \n",
" \n",
" \n",
" 7 \n",
" Categorical imputation \n",
" mode \n",
" \n",
" \n",
" 8 \n",
" Normalize \n",
" True \n",
" \n",
" \n",
" 9 \n",
" Normalize method \n",
" minmax \n",
" \n",
" \n",
" 10 \n",
" CPU Jobs \n",
" -1 \n",
" \n",
" \n",
" 11 \n",
" Use GPU \n",
" False \n",
" \n",
" \n",
" 12 \n",
" Log Experiment \n",
" False \n",
" \n",
" \n",
" 13 \n",
" Experiment Name \n",
" cluster-default-name \n",
" \n",
" \n",
" 14 \n",
" USI \n",
" 79ce \n",
" \n",
" \n",
"
\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# load experiment from disk\n",
"exp_from_disk = load_experiment('my_experiment', data=data)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ac030246",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "pycaretrc5",
"language": "python",
"name": "pycaretrc5"
},
"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.8.15"
}
},
"nbformat": 4,
"nbformat_minor": 5
}