Skip to content

Instantly share code, notes, and snippets.

@anand086
Last active July 15, 2021 06:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anand086/50c99b02095526b0971b95415ccbef04 to your computer and use it in GitHub Desktop.
Save anand086/50c99b02095526b0971b95415ccbef04 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "1c53fd56",
"metadata": {},
"outputs": [],
"source": [
"### Import standard libraries ###\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "190c70fd",
"metadata": {},
"outputs": [],
"source": [
"### Load in the dataset and split it ###\n",
" \n",
"from sklearn.datasets import load_digits\n",
"from sklearn.model_selection import train_test_split\n",
" \n",
"X, y = load_digits(n_class = 2, return_X_y = True)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "f0fea47a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((360, 64), (360,))"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X.shape, y.shape"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "aeee003d",
"metadata": {},
"outputs": [],
"source": [
"#Split the data into train and test \n",
"X_train, X_test, y_train, y_test = train_test_split(X,y,random_state = 8675309)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "12d8f1e5",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Plot two examples\n",
"plt.imshow(X[0].reshape(8,8),cmap='Greys')\n",
"plt.show()\n",
"plt.imshow(X[1].reshape(8,8),cmap='Greys')\n",
"plt.show()"
]
},
{
"cell_type": "raw",
"id": "cbf73c89",
"metadata": {},
"source": [
"What is the Euclidean distance between X[0] and X[1]?\n",
"What is the L1 distance between X[0] and X[1]?\n",
"What is the L∞ distance between X[0] and X[1]?"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "99046583",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0., 0., 5., 13., 9., 1., 0., 0., 0., 0., 13., 15., 10.,\n",
" 15., 5., 0., 0., 3., 15., 2., 0., 11., 8., 0., 0., 4.,\n",
" 12., 0., 0., 8., 8., 0., 0., 5., 8., 0., 0., 9., 8.,\n",
" 0., 0., 4., 11., 0., 1., 12., 7., 0., 0., 2., 14., 5.,\n",
" 10., 12., 0., 0., 0., 0., 6., 13., 10., 0., 0., 0.])"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X[0]"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "ab22a5a2",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0., 0., 0., 12., 13., 5., 0., 0., 0., 0., 0., 11., 16.,\n",
" 9., 0., 0., 0., 0., 3., 15., 16., 6., 0., 0., 0., 7.,\n",
" 15., 16., 16., 2., 0., 0., 0., 0., 1., 16., 16., 3., 0.,\n",
" 0., 0., 0., 1., 16., 16., 6., 0., 0., 0., 0., 1., 16.,\n",
" 16., 6., 0., 0., 0., 0., 0., 11., 16., 10., 0., 0.])"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X[1]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "73cda111",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Euclidean distance between X[0] and X[1]: 59.55669567731239\n",
"The L1 distance between X[0] and X[1]: 335.0\n",
"The L_infinity distance between X[0] and X[1]: 16.0\n"
]
}
],
"source": [
"# Using linalg.norm() from numpy\n",
"print(\"The Euclidean distance between X[0] and X[1]: {}\".format(np.linalg.norm(X[0]-X[1])))\n",
"print(\"The L1 distance between X[0] and X[1]: {}\".format(np.linalg.norm(X[0]-X[1],ord=1)))\n",
"print(\"The L_infinity distance between X[0] and X[1]: {}\".format(np.linalg.norm(X[0]-X[1],ord=np.inf)))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "e76beaf3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"59.55669567731239\n"
]
}
],
"source": [
"#Euclidean distance using square and sum\n",
"distance = X[0] - X[1]\n",
"Euclidean = np.sqrt(np.sum(np.square(distance)))\n",
"print(Euclidean)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "a890e239",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0., 0., 5., 1., -4., -4., 0., 0., 0., 0., 13.,\n",
" 4., -6., 6., 5., 0., 0., 3., 12., -13., -16., 5.,\n",
" 8., 0., 0., -3., -3., -16., -16., 6., 8., 0., 0.,\n",
" 5., 7., -16., -16., 6., 8., 0., 0., 4., 10., -16.,\n",
" -15., 6., 7., 0., 0., 2., 13., -11., -6., 6., 0.,\n",
" 0., 0., 0., 6., 2., -6., -10., 0., 0.])"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"distance"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment