ml-schoo-and-maybe-andrew-ng/work2/.ipynb_checkpoints/oldC1_W2_Lab02_Cost_functio...

276 lines
56 KiB
Plaintext
Raw Permalink Normal View History

2022-11-15 10:53:25 -05:00
{
"cells": [
{
"cell_type": "markdown",
"id": "appropriate-yorkshire",
"metadata": {},
"source": [
"# Ungraded Lab: Cost Function\n",
"\n",
"In this ungraded lab, you will implement the cost function for linear regression with one variable.\n",
"\n",
"First, let's run the cell below to import [matplotlib](http://matplotlib.org), which is a famous library to plot graphs in Python. "
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "liberal-template",
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"id": "surrounded-liverpool",
"metadata": {},
"source": [
"## Problem Statement\n",
"\n",
"Let's use the same two data points as before - a house with 1000 square feet sold for \\\\$200,000 and a house with 2000 square feet sold for \\\\$400,000.\n",
"\n",
"That is our dataset contains has the following two points - \n",
"\n",
"| Size (feet$^2$) | Price (1000s of dollars) |\n",
"| -------------------| ------------------------ |\n",
"| 1000 | 200 |\n",
"| 2000 | 400 |\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "equal-potential",
"metadata": {},
"outputs": [],
"source": [
"# X is the input variable (size in square feet)\n",
"# y in the output variable (price in 1000s of dollars)\n",
"X = [1000, 2000] \n",
"y = [200, 400]"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "employed-thing",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 0, 'Size (feet^2)')"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Plot the data points\n",
"plt.scatter(X, y, marker='x', c='r')\n",
"\n",
"# Set the title\n",
"plt.title(\"Housing Prices\")\n",
"# Set the y-axis label\n",
"plt.ylabel('Price (in 1000s of dollars)')\n",
"# Set the x-axis label\n",
"plt.xlabel('Size (feet^2)')"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "therapeutic-drunk",
"metadata": {},
"outputs": [],
"source": [
"# Function to calculate the cost\n",
"def cost_function(w, X, y, plot=True):\n",
" \n",
" m = len(X)\n",
" \n",
" # Calculate the hypothesis\n",
" h0 = w[0]+ w[1]*X[0]\n",
" h1 = w[0]+ w[1]*X[1]\n",
" h = [h0, h1]\n",
" \n",
"\n",
" # Plot points along with hypothesis \n",
" if plot:\n",
" print(\"w\", w)\n",
" print(\"h\",h)\n",
" \n",
" plt.scatter(X, y, marker='x', c='r')\n",
" plt.plot(X, h, c='b')\n",
" \n",
" # Calculate the cost\n",
" cost1 = (h[0] - y[0])**2\n",
" cost2 = (h[1] - y[1])**2\n",
" total_cost = 1/(2*m)* (cost1 + cost2)\n",
"\n",
" return total_cost"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "daily-silence",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"w [0, 2]\n",
"h [2000, 4000]\n",
"Total cost : 4050000.0\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"w = [0, 2] # w0 = w[0], w1 = w[1]\n",
"\n",
"total_cost = cost_function(w, X, y)\n",
"print(\"Total cost :\", total_cost)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "activated-parking",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x107971d90>]"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAD4CAYAAAAZ1BptAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAtZElEQVR4nO3deXhU5fXA8e9JQlgiSxJCWAIkSAADKssIuNa6YBQVaq0Fa6HWStW61bbW1vaHS2vVVq3UrbgVbN1KXVBRRMGqrSwJ+05IWBK2kIQE2UKS8/tjXugYs0wgkzuZnM/zzJN7z7133vMSMmfu+oqqYowxxtQkyusEjDHGhC8rEsYYY2plRcIYY0ytrEgYY4yplRUJY4wxtYrxOoHG1rlzZ01NTfU6DWOMaVays7N3q2pS9XjEFYnU1FSysrK8TsMYY5oVEdlcU9wONxljjKmVFQljjDG1siJhjDGmVlYkjDHG1MqKhDHGmFoFVSRE5KciskpEVorIKyLSRkTSRGSBiOSIyGsiEuvWbe3mc9zy1ID3+ZWLrxORiwLimS6WIyJ3BcRrbMMYY0zTqLdIiEgP4FbAp6qDgGhgHPAQ8Jiq9gVKgOvcJtcBJS7+mFsPEclw2w0EMoGnRCRaRKKBJ4GLgQxgvFuXOtowxhjTBII93BQDtBWRGKAdsB04D5jhlk8DxrrpMW4et/x8EREXf1VVD6lqHpADDHevHFXNVdVy4FVgjNumtjYa3YerdvDygi2hentjjGmW6i0SqloA/AnYgr84lALZwB5VrXCr5QM93HQPYKvbtsKtnxgYr7ZNbfHEOtr4ChGZJCJZIpJVWFhYX5dq9K/F+dz/7mq2lx44pu2NMSYSBXO4KR7/XkAa0B2Iw3+4KGyo6lRV9amqLynpa3eVB+U3ozOoVOUPs9Y2cnbGGNN8BXO46QIgT1ULVfUw8AZwJtDJHX4CSAEK3HQB0BPALe8IFAXGq21TW7yojjYaXc+EdtxwTh9mLtvGwrziUDVjjDHNSjBFYgswUkTaufME5wOrgXnAlW6dicDbbnqmm8ctn6v+MVJnAuPc1U9pQDqwEFgEpLsrmWLxn9ye6baprY2QuPHcvnTv2IbJM1dRWWXDuhpjTDDnJBbgP3m8GFjhtpkK/BK4Q0Ry8J8/eN5t8jyQ6OJ3AHe591kFvI6/wHwA/ERVK905h5uB2cAa4HW3LnW0ERJtY6O5e3QGa7aX8fJCO4ltjDHi/8IeOXw+nx7PU2BVlfHPzmftjr3M+9m5xMfZrRnGmMgnItmq6qsetzuuqxER7rl8IGUHDvPonPVep2OMMZ6yIlGDAV078P2RvfnHgs2s3lbmdTrGGOMZKxK1+OmF/ejYthX3vLOKSDskZ4wxwbIiUYtO7WL5xUUDWJhXzLvLt3udjjHGeMKKRB2+e1pPBnbvwAOz1rC/vKL+DYwxJsJYkahDdJRw7+UD2V56kKfmbfQ6HWOMaXJWJOrhS01g7ODuTP00l81F+7xOxxhjmpQViSDcdfFJxEQLv3tvjdepGGNMk7IiEYSuHdtw83l9mbN6J/9ef2xPmTXGmObIikSQrjsrjdTEdtz7zirKK6q8TscYY5qEFYkgtY6J5v8uyyC3cB/Tv9jkdTrGGNMkrEg0wHkDkvlm/yT+/NEGdu096HU6xhgTclYkGui3l2ZwqKKShz9Y53UqxhgTclYkGqhP0gn88Kw0ZmTns2RLidfpGGNMSFmROAa3nJdOl/atuWfmKqpscCJjTASzInEMTmgdw68uGcCy/FJmLM73Oh1jjAmZeouEiPQXkaUBrzIRuV1EEkRkjohscD/j3foiIlNEJEdElovI0ID3mujW3yAiEwPiw0RkhdtmihsmldraCAdjB/dgaK9OPPzBWsoOHvY6HWOMCYlghi9dp6qDVXUwMAzYD7yJf1jSj1U1HfjYzQNcjH/86nRgEvA0+D/wgcnACGA4MDngQ/9p4PqA7TJdvLY2PCci3Hv5IIr2lTPlow1ep2OMMSHR0MNN5wMbVXUzMAaY5uLTgLFuegwwXf3mA51EpBtwETBHVYtVtQSYA2S6ZR1Udb76B26YXu29amojLJyc0pFxp/Xkb//dRM6uvV6nY4wxja6hRWIc8IqbTlbVIwMt7ACS3XQPYGvANvkuVlc8v4Z4XW18hYhMEpEsEckqLGzax2b8fFR/2sZGc8/M1TY4kTEm4gRdJEQkFrgc+Gf1ZW4PIKSfkHW1oapTVdWnqr6kpKRQpvE1iSe05o4L+/F5zm4+XL2zSds2xphQa8iexMXAYlU98km40x0qwv3c5eIFQM+A7VJcrK54Sg3xutoIK98f2Zt+ySdw/7urOXi40ut0jDGm0TSkSIznf4eaAGYCR65Qmgi8HRCf4K5yGgmUukNGs4FRIhLvTliPAma7ZWUiMtJd1TSh2nvV1EZYiYmO4p7LBpJfcoBnP831Oh1jjGk0QRUJEYkDLgTeCAg/CFwoIhuAC9w8wCwgF8gBngVuAlDVYuB+YJF73ediuHWec9tsBN6vp42wc0bfzlxyclee/CSHbXsOeJ2OMcY0Com0k60+n0+zsrI8aTu/ZD/nP/JvLshI5smrh9a/gTHGhAkRyVZVX/W43XHdiFLi23HjuSfy3vLtfLGxyOt0jDHmuFmRaGQ3fONEenRqy73vrKKi0gYnMsY0b1YkGlmbVtH89tKTWLtjLy8v3OJ1OsYYc1ysSITARQO7cmbfRB75cD3F+8q9TscYY46ZFYkQEBEmXzaQLw9V8MiHNjiRMab5siIRIv2S2zPh9N68vHALKwtKvU7HGGOOiRWJELr9gn7Et4vl3ndW2XOdjDHNkhWJEOrYthV3XtSfRZtKmLlsm9fpGGNMg1mRCLGrfD05JaUjD8xaw75DFV6nY4wxDWJFIsSiovwnsXeWHeLJeTlep2OMMQ1iRaIJDOsdzxVDe/DcZ3ls2r3P63SMMSZoViSayF2ZA2gVLfzuvdVep2KMMUGzItFEunRow63np/PRml3MWxeWw2IYY8zXWJFoQteemUafznHc985qyivsuU7GmPBnRaIJxcZE8X+XZZC3ex8v/ifP63SMMaZeViSa2Ln9u3DBSV2Y8vEGdpUd9DodY4ypU7Aj03USkRkislZE1ojI6SKSICJzRGSD+xnv1hURmSIiOSKyXESGBrzPRLf+BhGZGBAfJiIr3DZT3DCm1NZGc/eb0RkcrlQe/GCt16kYY0ydgt2TeBz4QFUHAKcCa4C7gI9VNR342M0DXAyku9ck4Gnwf+ADk4ERwHBgcsCH/tPA9QHbZbp4bW00a6md4/jR2Wm8sbiA7M0lXqdjjDG1qrdIiEhH4BzgeQBVLVfVPcAYYJpbbRow1k2PAaar33ygk4h0Ay4C5qhqsaqWAHOATLesg6rOV/8DjqZXe6+a2mj2fvLNviR3aM09M1dRVWXPdTLGhKdg9iTSgELgRRFZIiLPiUgckKyq2906O4BkN90D2Bqwfb6L1RXPryFOHW18hYhMEpEsEckqLCwMokvei2sdw68vOYkVBaW8nrW1/g2MMcYDwRSJGGAo8LSqDgH2Ue2wj9sDCOnX4braUNWpqupTVV9SUlIo02hUl5/andNS43l49jpKDxz2Oh1jjPmaYIpEPpCvqgvc/Az8RWOnO1SE+3nkDrECoGfA9ikuVlc8pYY4dbQREUSEey4fyJ795fz5o/Vep2OMMV9Tb5FQ1R3AVhHp70LnA6uBmcCRK5QmAm+76ZnABHeV00ig1B0ymg2MEpF4d8J6FDDbLSsTkZHuqqYJ1d6rpjYixsDuHRk/vBfTv9jM+p17vU7HGGO+Itirm24B/iEiy4HBwAPAg8CFIrIBuMDNA8wCcoEc4FngJgBVLQbuBxa5130uhlvnObfNRuB9F6+tjYjys1H9OaF1jA1OZIwJOxJpH0o+n0+zsrK8TqPBpn+xif97exXPXDOUzEHdvE7HGNPCiEi2qvqqx+2O6zBx9fBeDOjanvvfXcOB8kqv0zHGGMCKRNiIiY7inssHUrDnAH/9dKPX6RhjDGBFIqyM7JPIpad04+lPNpJfst/rdIwxxop
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Print w1 vs cost to see minimum\n",
"\n",
"w1_list = [-0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6]\n",
"cost_list = []\n",
"\n",
"for w1 in w1_list:\n",
" w = [0, w1]\n",
" total_cost = cost_function(w, X, y, plot=False)\n",
" cost_list.append(total_cost)\n",
" \n",
"plt.plot(w1_list, cost_list)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "certain-boating",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"w [0, 0.2]\n",
"h [200.0, 400.0]\n",
"Total cost : 0.0\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD4CAYAAAAXUaZHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAkPklEQVR4nO3de5yWc/7H8ddHclqHSoO2Iha7qiUaOVsbViyyu+yGtZbIcRXW+bcry65DMSHVdiJEkhQdkE4KHaaazslIu6RlpIOUTvP5/fG94i4zzT11z1z34f18PO5H1/W9rnvm83Xvfvr0vb7392vujoiIZJed4g5ARERST8ldRCQLKbmLiGQhJXcRkSyk5C4ikoV2jjsAgLp163qjRo3iDkNEJKNMmzbtS3fPK+taWiT3Ro0aUVhYGHcYIiIZxcz+U941DcuIiGQhJXcRkSyk5C4ikoWU3EVEspCSu4hIHLZe1yvF63wlndzNrIaZzTCzYdH5wWY22cyKzewlM9slat81Oi+OrjdKacQiIpmuY0e4+ebvE7p7OO/YMWW/ojKVe3tgfsL5w0CBux8KLAfaRu1tgeVRe0F0n4iIQEjkK1bA449/n+Bvvjmcr1iRsgo+qeRuZg2AXwO9o3MDWgKDolv6ARdEx62jc6Lrp0f3i4iIGRQU4De1p8/jX/P6TueHxN6+PRQUhOspkGzl3gW4HSiNzvcFVrj7xuj8U6B+dFwf+AQgur4yun8LZtbOzArNrLCkpGT7ohcRyUCLPjbOmFPAVfShP5eGxhQmdkgiuZvZucAX7j4tZb8VcPee7p7v7vl5eWV+e1ZEJKts2gRdusDPf+5MnbiOHlzDC1wSLiaOwadAMpX7ScD5ZrYYGEAYjnkcqGVmm5cvaAAsiY6XAA0Bouv7AMtSFrGISAaaOxdOOink8F/uN4956w/lmva7s1PppjAkkzgGnwIVri3j7ncBdwGY2WnAX939UjN7GbiQkPAvB4ZGb3ktOn8/uj7GtZefiOSo9evhoYfggQdgn33ghRegzYKXsZUXfj8UU1AQbq5VK2VDMzuycNgdwAAzewCYAfSJ2vsAz5lZMfAV0GbHQhQRyUxTp0LbtjB7Nlx8cSjOwyh0x1Chb07kmxN8CsfcK5Xc3X0cMC46XgS0KOOeb4GLUhCbiEhGWrMG7r0XHnsM6tWD116D887b6qatE3mKJxWmxZK/IiLZYtw4uPpqKC6Gdu3gkUfCcEx10/IDIiIpsHIlXHst/PKXYcRlzBj497/jSeyg5C4issOGDYMmTaBXL/jrX2HWrJDk46TkLiKynUpK4JJLwnh67drw/vvQqRPssUfckSm5i4hUmju8+CI0bgyDBsF998G0adDiB1NM4qMHqiIilfDpp3DddWEopkUL6NMHmjaNO6ofUuUuIpKE0lLo2TOMrY8eHaY5vvdeeiZ2UOUuIlKh4uIwvXHcOGjZMjw4PeSQuKPaNlXuIiLl2LgROneGn/8cpk8PSf3tt9M/sYMqdxGRMs2eHZYOmDoVzj8funWD+vUrfl+6UOUuIpJg3bqwdMAxx8DixTBgAAwZklmJHVS5i4h8Z/LkUK3PnQt//GNYy6tu3bij2j6q3EUk533zDdxyC5xwQlhGYPhweO65zE3soMpdRHLcmDFhJsyiRWH++kMPwd57xx3VjlPlLiI5acWKkNRPPx1q1IDx48ND02xI7KDkLiI5aOjQsHRA375w++0wcyacemrcUaVWMhtk72ZmU8xsppnNNbP7ovYJZlYUvT4zsyFR+2lmtjLh2t+ruA8iIkn54gto0wYuuCDsiDR5Mjz8MOy+e9yRpV4yY+7rgJbuvtrMagITzWyku5+y+QYze4Xv91AFmODu56Y4VhGR7eIO/fuHfahXr4b774c77oCaNeOOrOoks0G2A6uj05rR67sNr81sb6AlcEVVBCgisiM++SRsojFiRJgN07t3GJLJdkmNuZtZDTMrAr4ARrn75ITLFwCj3X1VQtsJ0TDOSDNrUs7PbGdmhWZWWFJSsp3hi4iUrbQUuncPiXzcuLA59YQJuZHYIcnk7u6b3L0Z0ABoYWaJ66BdDLyYcD4dOMjdjwKeBIaU8zN7unu+u+fnhe3ARURSYuFCOO00uP56OP54mDMHbropzIrJFZWaLePuK4CxQCsAM6sLtACGJ9yzyt1XR8cjgJrRfSIiVWrjxrAh9VFHhbVh+vaFt96Cgw+OO7Lql8xsmTwzqxUd7w6cCSyILl8IDHP3bxPuP8DMLDpuEf2OZSmOW0RkCzNnwnHHhQelZ58N8+bBFVdAyEa5J5nZMvWAfmZWg5CoB7r7sOhaG+Chre6/ELjOzDYCa4E20UNZEZGUW7cOHnggfLO0Th14+WX43e9yN6lvlsxsmVnA0eVcO62Mtq5A1x2OTESkAu+9B1ddBfPnw+WXh92R6tSJO6r0oG+oikjGWb06zFk/+eSw6Ncbb8AzzyixJ1JyF5GMMmpU2BnpiSfghhvCTJizzoo7qvSj5C4iGWH5crjySvjVr2DXXcOc9SefhL32ijuy9KTkLiJp79VXw5ePnn0W7roLiorCkIyUT+u5i0ja+t//4C9/gUGDoFmzsITA0WVO75CtqXIXkbTjDv36hWr99dfhX/+CKVOU2CtDlbuIpJX//AeuuQbefBNOOiks9PWzn8UdVeZR5S4iaaG0FLp2hSZNYOLE8LD0nXeU2LeXKncRid0HH0DbtvDuu2Fa47//DQcdFHdUmU2Vu4jEZsMGePDBsNDXvHnhi0gjRyqxp4IqdxGJxYwZYd56URFceGEYhjnggLijyh6q3EWkWn37bZirfuyxYarjK6+Exb6U2FNLlbuIVJuJE8PY+sKFYTneRx+F2rXjjio7qXIXkSr39ddw441wyimwfn3YQKNvXyX2qqTkLiJV6s03oWlT6NYtbHU3ezaceWbcUWU/JXcRqRLLloU11lu1gj32CEMyjz8Oe+4Zd2S5IZlt9nYzsylmNtPM5prZfVH7M2b2sZkVRa9mUbuZ2RNmVmxms8zsmCrug4ikEfewFkzjxvDCC/B//xdmxpx4YtyR5ZZkHqiuA1q6+2ozqwlMNLOR0bXb3H3QVvefDRwWvY4Dukd/ikiWW7o0rLH+6qvQvHkYWz/qqLijyk0VVu4erI5Oa0avbe2J2hp4NnrfJKCWmdXb8VBFJF25w9NPh2p95Eh4+GGYNEmJPU5JjbmbWQ0zKwK+AEa5++To0j+joZcCM9s1aqsPfJLw9k+jtq1/ZjszKzSzwpKSku3vgYjE6uOPwwYaV14ZdkiaORNuvx121kTrWCWV3N19k7s3AxoALcysKXAX8DPgWKAOcEdlfrG793T3fHfPz8vLq1zUIhK7TZvCVndNm4YqvVs3GDcODj887sgEKjlbxt1XAGOBVu6+NBp6WQc8DbSIblsCNEx4W4OoTUSyxLx5Yc56+/bwi1/A3Llw3XWwk+bfpY1kZsvkmVmt6Hh34ExgweZxdDMz4AJgTvSW14A/RbNmjgdWuvvSKohdRKrZhg3wwANh04yFC+H552H4cDjwwLgjk60lMypWD+hnZjUIfxkMdPdhZjbGzPIAA4qAa6P7RwDnAMXAGuCKlEctItVu2rQwrj5rFvzhD2FIZr/94o5KylNhcnf3WcAPNrdy95bl3O/ADTsemoikg7VroWNH6NwZ9t8fhgyB1q3jjkoqoufZIlKud96Bq66CDz8Mf3bqBLVqxR2VJEOPP0TkB1atguuvDw9LN26Et9+GXr2U2DOJkruIbGHEiLCP6b//DbfcEhb6Ov30uKOSylJyFxEAvvwS/vhH+PWvYe+94b33wnrrP/pR3JHJ9lByF8lx7vDSS2HpgJdegnvvhenT4TitCJXR9EBVJId99ln48tFrr0F+PoweHZYQkMynyl0kB7lD796hWn/rrTDN8f33ldiziSp3kRzz0UfQrh2MGRNmw/TuDYceGndUkmqq3EVyxKZN8NhjoTovLAyzYcaMUWLPVqrcRXLAnDnQti1MmQLnngvdu0ODBnFHJVVJlbtIFlu/Hu67D445BhYtCtvevfaaEnsuUOUukqW
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# We can see a global minimum at w1 = 0.2 Therefore, let's try w = [0,0.2] \n",
"# to see if that fits the data\n",
"w = [0, 0.2] # w0 = 0, w1 = 0.2\n",
"\n",
"total_cost = cost_function(w, X, y)\n",
"print(\"Total cost :\", total_cost)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "signal-incident",
"metadata": {},
"outputs": [],
"source": []
}
],
"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.9.1"
}
},
"nbformat": 4,
"nbformat_minor": 5
}