Skip to content

Instantly share code, notes, and snippets.

@firmai
Last active January 29, 2024 19:17
Show Gist options
  • Save firmai/0a20f90e9e6a8c13c048b9b163cbed8c to your computer and use it in GitHub Desktop.
Save firmai/0a20f90e9e6a8c13c048b9b163cbed8c to your computer and use it in GitHub Desktop.
AirBnB Valuation.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/firmai/0a20f90e9e6a8c13c048b9b163cbed8c/airbnb-valuation.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Aconh-UHZXEI"
},
"source": [
"**Airbnb Rental Valuation**\n",
"\n",
"Welcome to Airbnb Analysis Corp.! Your task is to set the competitive **daily accomodation rate** for a client's house in Bondi Beach. The owner currently charges $500. We have been tasked to estimate a **fair value** that the owner should be charging. The house has the following characteristics and constraints. While developing this model you came to realise that Airbnb can use your model to estimate the fair value of any property on their database, your are effectively creating a recommendation model for all prospective hosts!\n",
"\n",
"\n",
"1. The owner has been a host since **August 2010**\n",
"1. The location is **lon:151.274506, lat:33.889087**\n",
"1. The current review score rating **95.0**\n",
"1. Number of reviews **53**\n",
"1. Minimum nights **4**\n",
"1. The house can accommodate **10** people.\n",
"1. The owner currently charges a cleaning fee of **370**\n",
"1. The house has **3 bathrooms, 5 bedrooms, 7 beds**.\n",
"1. The house is available for **255 of the next 365 days**\n",
"1. The client is **verified**, and they are a **superhost**.\n",
"1. The cancellation policy is **strict with a 14 days grace period**.\n",
"1. The host requires a security deposit of **$1,500**\n",
"\n",
"\n",
"*All values strictly apply to the month of July 2018*"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"id": "lTnEOeuYZXEK"
},
"outputs": [],
"source": [
"from dateutil import parser\n",
"dict_client = {}\n",
"\n",
"dict_client[\"city\"] = \"Bondi Beach\"\n",
"dict_client[\"longitude\"] = 151.274506\n",
"dict_client[\"latitude\"] = -33.889087\n",
"dict_client[\"review_scores_rating\"] = 95\n",
"dict_client[\"number_of_reviews\"] = 53\n",
"dict_client[\"minimum_nights\"] = 4\n",
"dict_client[\"accommodates\"] = 10\n",
"dict_client[\"bathrooms\"] = 3\n",
"dict_client[\"bedrooms\"] = 5\n",
"dict_client[\"beds\"] = 7\n",
"dict_client[\"security_deposit\"] = 1500\n",
"dict_client[\"cleaning_fee\"] = 370\n",
"dict_client[\"property_type\"] = \"House\"\n",
"dict_client[\"room_type\"] = \"Entire home/apt\"\n",
"dict_client[\"availability_365\"] = 255\n",
"dict_client[\"host_identity_verified\"] = 1 ## 1 for yes, 0 for no\n",
"dict_client[\"host_is_superhost\"] = 1\n",
"dict_client[\"cancellation_policy\"] = \"strict_14_with_grace_period\"\n",
"dict_client[\"host_since\"] = parser.parse(\"01-08-2010\")\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "XLqEwDW3ZXEN"
},
"source": [
"# Setup"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "g-5V7ujhZXEO"
},
"source": [
"First, let's make sure this notebook works well in both python 2 and 3, import a few common modules, ensure MatplotLib plots figures inline and prepare a function to save the figures:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"id": "LsbHVGAqZXEP"
},
"outputs": [],
"source": [
"# To support both python 2 and python 3\n",
"from __future__ import division, print_function, unicode_literals\n",
"# Common imports\n",
"import numpy as np\n",
"import os\n",
"import pandas as pd\n",
"\n",
"# to make this notebook's output stable across runs\n",
"np.random.seed(42)\n",
"\n",
"# To plot pretty figures\n",
"%matplotlib inline\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"plt.rcParams['axes.labelsize'] = 14\n",
"plt.rcParams['xtick.labelsize'] = 12\n",
"plt.rcParams['ytick.labelsize'] = 12\n",
"\n",
"# Where to save the figures\n",
"PROJECT_ROOT_DIR = \".\"\n",
"CHAPTER_ID = \"end_to_end_project\"\n",
"IMAGES_PATH = os.path.join(PROJECT_ROOT_DIR, \"images\", CHAPTER_ID)\n",
"\n",
"def save_fig(fig_id, tight_layout=True, fig_extension=\"png\", resolution=300):\n",
" path = os.path.join(IMAGES_PATH, fig_id + \".\" + fig_extension)\n",
" print(\"Saving figure\", fig_id)\n",
" if tight_layout:\n",
" plt.tight_layout()\n",
" try:\n",
" plt.savefig(path, format=fig_extension, dpi=resolution)\n",
" except:\n",
" plt.savefig(fig_id + \".\" + fig_extension, format=fig_extension, dpi=resolution)\n",
"\n",
"# Ignore useless warnings (see SciPy issue #5998)\n",
"import warnings\n",
"warnings.filterwarnings(action=\"ignore\", message=\"^internal gelsd\")\n",
"pd.options.display.max_columns = None"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "o6O0qpwJZXEQ"
},
"source": [
"# Get the data"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"id": "ACVfMcS3ZXEQ",
"outputId": "c0ee9078-9f82-4f15-8ca3-ce6bda4a32c3",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Be patient: loading from database (2 minutes)\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-3-1a096963100c>:15: DtypeWarning: Columns (36,54,55) have mixed types. Specify dtype option on import or set low_memory=False.\n",
" df = pd.read_csv(github_p+'sydney_airbnb.csv')\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Done\n"
]
}
],
"source": [
"import pandas as pd\n",
"## This is simply a bit of importing logic that you don't have ..\n",
"## .. to concern yourself with for now.\n",
"\n",
"from pathlib import Path\n",
"\n",
"github_p = \"https://storage.googleapis.com/public-quant/course//content/\"\n",
"\n",
"my_file = Path(\"sydney_airbnb.csv\") # Defines path\n",
"if my_file.is_file(): # See if file exists\n",
" print(\"Local file found\")\n",
" df = pd.read_csv('sydney_airbnb.csv')\n",
"else:\n",
" print(\"Be patient: loading from database (2 minutes)\")\n",
" df = pd.read_csv(github_p+'sydney_airbnb.csv')\n",
" print(\"Done\")"
]
},
{
"cell_type": "code",
"source": [
"df.head()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 764
},
"id": "UhaVCzir9pVA",
"outputId": "7ad7b145-e2bf-41e2-94ea-c2d19ba5dfae"
},
"execution_count": 4,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" id listing_url \\\n",
"0 11156 https://www.airbnb.com/rooms/11156 \n",
"1 12351 https://www.airbnb.com/rooms/12351 \n",
"2 14250 https://www.airbnb.com/rooms/14250 \n",
"3 14935 https://www.airbnb.com/rooms/14935 \n",
"4 14974 https://www.airbnb.com/rooms/14974 \n",
"\n",
" name \\\n",
"0 An Oasis in the City \n",
"1 Sydney City & Harbour at the door \n",
"2 Manly Harbour House \n",
"3 Eco-conscious Travellers: Private Room \n",
"4 Eco-conscious Traveller: Sofa Couch \n",
"\n",
" summary \\\n",
"0 Very central to the city which can be reached ... \n",
"1 Come stay with Vinh & Stuart (Awarded as one o... \n",
"2 Beautifully renovated, spacious and quiet, our... \n",
"3 Welcome! This apartment will suit a short term... \n",
"4 Welcome! This apartment will suit a short term... \n",
"\n",
" space \\\n",
"0 Potts Pt. is a vibrant and popular inner-city... \n",
"1 We're pretty relaxed hosts, and we fully appre... \n",
"2 Our home is a thirty minute walk along the sea... \n",
"3 I live upstairs in my own room with my own bat... \n",
"4 Comes with a fully equipped gym and pool - whi... \n",
"\n",
" description \\\n",
"0 Very central to the city which can be reached ... \n",
"1 Come stay with Vinh & Stuart (Awarded as one o... \n",
"2 Beautifully renovated, spacious and quiet, our... \n",
"3 Welcome! This apartment will suit a short term... \n",
"4 Welcome! This apartment will suit a short term... \n",
"\n",
" neighborhood_overview \\\n",
"0 It is very close to everything and everywhere,... \n",
"1 Pyrmont is an inner-city village of Sydney, on... \n",
"2 Balgowlah Heights is one of the most prestigio... \n",
"3 NaN \n",
"4 NaN \n",
"\n",
" notes \\\n",
"0 $150.00 key security deposit, refundable on re... \n",
"1 We've a few reasons for the 6.00pm arrival tim... \n",
"2 NaN \n",
"3 The building can be hard to find, so please en... \n",
"4 I live upstairs in my own room with my own bat... \n",
"\n",
" transit \\\n",
"0 It is 7 minutes walk to the Kings Cross.train ... \n",
"1 Our home is centrally located and an easy walk... \n",
"2 Balgowlah - Manly bus # 131 or #132 (Bus stop... \n",
"3 DIRECTIONS VIA TAXI: Get dropped off at Renwic... \n",
"4 DIRECTIONS VIA TAXI: Get dropped off at Renwic... \n",
"\n",
" access \\\n",
"0 Kitchen & laundry facilities. Shared bathroom. \n",
"1 We look forward to welcoming you just as we wo... \n",
"2 Guests have access to whole house except locke... \n",
"3 I work from home most times - so if I'm home, ... \n",
"4 I work from home most times - so if I'm home, ... \n",
"\n",
" interaction \\\n",
"0 As much as they want. \n",
"1 As much or as little as you like. We live here... \n",
"2 NaN \n",
"3 I'm not a big chatter, so don't get offended i... \n",
"4 I'm not a big chatter, so don't get offended i... \n",
"\n",
" house_rules \\\n",
"0 Be considerate. No showering after 2330h. \n",
"1 We look forward to welcoming you to stay you j... \n",
"2 Standard Terms and Conditions of Temporary Hol... \n",
"3 1. Enjoy and always bring a smile during your ... \n",
"4 1. Enjoy and always bring a smile during your ... \n",
"\n",
" picture_url host_id \\\n",
"0 https://a0.muscache.com/im/pictures/2797669/17... 40855 \n",
"1 https://a0.muscache.com/im/pictures/763ad5c8-c... 17061 \n",
"2 https://a0.muscache.com/im/pictures/56935671/f... 55948 \n",
"3 https://a0.muscache.com/im/pictures/2257353/d3... 58796 \n",
"4 https://a0.muscache.com/im/pictures/2197966/6e... 58796 \n",
"\n",
" host_url host_name host_since \\\n",
"0 https://www.airbnb.com/users/show/40855 Colleen 23/09/09 \n",
"1 https://www.airbnb.com/users/show/17061 Stuart 14/05/09 \n",
"2 https://www.airbnb.com/users/show/55948 Heidi 20/11/09 \n",
"3 https://www.airbnb.com/users/show/58796 Kevin 30/11/09 \n",
"4 https://www.airbnb.com/users/show/58796 Kevin 30/11/09 \n",
"\n",
" host_location \\\n",
"0 Potts Point, New South Wales, Australia \n",
"1 Sydney, New South Wales, Australia \n",
"2 Sydney, New South Wales, Australia \n",
"3 Sydney, New South Wales, Australia \n",
"4 Sydney, New South Wales, Australia \n",
"\n",
" host_about host_response_time \\\n",
"0 Recently retired, I've lived & worked on 4 con... within a day \n",
"1 G'Day from Australia!\\r\\n\\r\\nHe's Vinh, and I'... within an hour \n",
"2 I am a Canadian who has made Australia her hom... within a few hours \n",
"3 I've moved countries twice in the span of 10 y... within an hour \n",
"4 I've moved countries twice in the span of 10 y... within an hour \n",
"\n",
" host_response_rate host_is_superhost \\\n",
"0 67% t \n",
"1 100% f \n",
"2 100% f \n",
"3 100% f \n",
"4 100% f \n",
"\n",
" host_thumbnail_url \\\n",
"0 https://a0.muscache.com/im/users/40855/profile... \n",
"1 https://a0.muscache.com/im/users/17061/profile... \n",
"2 https://a0.muscache.com/im/users/55948/profile... \n",
"3 https://a0.muscache.com/im/users/58796/profile... \n",
"4 https://a0.muscache.com/im/users/58796/profile... \n",
"\n",
" host_picture_url host_neighbourhood \\\n",
"0 https://a0.muscache.com/im/users/40855/profile... Potts Point \n",
"1 https://a0.muscache.com/im/users/17061/profile... Pyrmont \n",
"2 https://a0.muscache.com/im/users/55948/profile... Balgowlah \n",
"3 https://a0.muscache.com/im/users/58796/profile... Redfern \n",
"4 https://a0.muscache.com/im/users/58796/profile... Redfern \n",
"\n",
" host_listings_count host_total_listings_count \\\n",
"0 1.0 1.0 \n",
"1 2.0 2.0 \n",
"2 2.0 2.0 \n",
"3 2.0 2.0 \n",
"4 2.0 2.0 \n",
"\n",
" host_verifications host_has_profile_pic \\\n",
"0 ['email', 'phone', 'reviews'] t \n",
"1 ['email', 'phone', 'manual_online', 'reviews',... t \n",
"2 ['email', 'phone', 'reviews', 'jumio'] t \n",
"3 ['email', 'phone', 'facebook', 'reviews', 'jum... t \n",
"4 ['email', 'phone', 'facebook', 'reviews', 'jum... t \n",
"\n",
" host_identity_verified street neighbourhood \\\n",
"0 f Potts Point, NSW, Australia Potts Point \n",
"1 t Pyrmont, NSW, Australia Pyrmont \n",
"2 t Balgowlah, NSW, Australia Balgowlah \n",
"3 t Redfern, NSW, Australia Redfern \n",
"4 t Redfern, NSW, Australia Redfern \n",
"\n",
" neighbourhood_cleansed neighbourhood_group_cleansed city state \\\n",
"0 Sydney NaN Potts Point NSW \n",
"1 Sydney NaN Pyrmont NSW \n",
"2 Manly NaN Balgowlah NSW \n",
"3 Sydney NaN Redfern NSW \n",
"4 Sydney NaN Redfern NSW \n",
"\n",
" zipcode market smart_location country_code country latitude \\\n",
"0 2011 Sydney Potts Point, Australia AU Australia -33.869168 \n",
"1 2009 Sydney Pyrmont, Australia AU Australia -33.865153 \n",
"2 2093 Sydney Balgowlah, Australia AU Australia -33.800929 \n",
"3 2016 Sydney Redfern, Australia AU Australia -33.890765 \n",
"4 2016 Sydney Redfern, Australia AU Australia -33.889667 \n",
"\n",
" longitude is_location_exact property_type room_type accommodates \\\n",
"0 151.226562 t Apartment Private room 1 \n",
"1 151.191896 t Townhouse Private room 2 \n",
"2 151.261722 t House Entire home/apt 6 \n",
"3 151.200450 t Apartment Private room 2 \n",
"4 151.200896 t Apartment Shared room 1 \n",
"\n",
" bathrooms bedrooms beds bed_type \\\n",
"0 NaN 1.0 1.0 Real Bed \n",
"1 1.0 1.0 1.0 Real Bed \n",
"2 3.0 3.0 3.0 Real Bed \n",
"3 1.0 1.0 1.0 Real Bed \n",
"4 2.0 1.0 1.0 Pull-out Sofa \n",
"\n",
" amenities square_feet price \\\n",
"0 {TV,Kitchen,Elevator,\"Buzzer/wireless intercom... NaN $65.00 \n",
"1 {TV,Internet,Wifi,\"Air conditioning\",\"Paid par... NaN $98.00 \n",
"2 {TV,Wifi,\"Air conditioning\",Kitchen,\"Pets live... NaN $469.00 \n",
"3 {Internet,Wifi,\"Wheelchair accessible\",Pool,Ki... NaN $63.00 \n",
"4 {Internet,Wifi,Pool,Kitchen,Gym,Elevator,\"Buzz... 0.0 $39.00 \n",
"\n",
" weekly_price monthly_price security_deposit cleaning_fee guests_included \\\n",
"0 NaN NaN NaN NaN 1 \n",
"1 $800.00 NaN $0.00 $55.00 2 \n",
"2 $3,000.00 NaN $900.00 $100.00 6 \n",
"3 NaN NaN NaN NaN 1 \n",
"4 NaN NaN NaN NaN 1 \n",
"\n",
" extra_people minimum_nights maximum_nights calendar_updated \\\n",
"0 $0.00 2 180 4 weeks ago \n",
"1 $395.00 2 7 yesterday \n",
"2 $40.00 5 22 4 months ago \n",
"3 $40.00 2 1125 today \n",
"4 $0.00 2 1125 4 days ago \n",
"\n",
" has_availability availability_30 availability_60 availability_90 \\\n",
"0 t 9 39 69 \n",
"1 t 13 30 45 \n",
"2 t 0 0 0 \n",
"3 t 13 31 31 \n",
"4 t 24 50 50 \n",
"\n",
" availability_365 number_of_reviews first_review last_review \\\n",
"0 339 177 5/12/09 1/07/18 \n",
"1 188 468 24/07/10 27/06/18 \n",
"2 168 1 2/01/16 2/01/16 \n",
"3 215 172 28/11/11 26/06/18 \n",
"4 287 147 23/09/11 2/07/18 \n",
"\n",
" review_scores_rating review_scores_accuracy review_scores_cleanliness \\\n",
"0 92.0 9.0 9.0 \n",
"1 95.0 10.0 9.0 \n",
"2 100.0 10.0 10.0 \n",
"3 89.0 9.0 8.0 \n",
"4 90.0 9.0 8.0 \n",
"\n",
" review_scores_checkin review_scores_communication review_scores_location \\\n",
"0 10.0 10.0 10.0 \n",
"1 10.0 10.0 10.0 \n",
"2 10.0 8.0 10.0 \n",
"3 9.0 10.0 9.0 \n",
"4 9.0 9.0 9.0 \n",
"\n",
" review_scores_value instant_bookable cancellation_policy \\\n",
"0 9.0 f moderate \n",
"1 10.0 f strict_14_with_grace_period \n",
"2 10.0 f strict_14_with_grace_period \n",
"3 9.0 f moderate \n",
"4 9.0 f moderate \n",
"\n",
" require_guest_profile_picture require_guest_phone_verification \\\n",
"0 f f \n",
"1 t t \n",
"2 f f \n",
"3 f f \n",
"4 f f \n",
"\n",
" calculated_host_listings_count reviews_per_month \n",
"0 1 1.69 \n",
"1 2 4.83 \n",
"2 2 0.03 \n",
"3 2 2.14 \n",
"4 2 1.78 "
],
"text/html": [
"\n",
" <div id=\"df-41fb46e1-939e-4eb2-a870-e37faa4e627a\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>listing_url</th>\n",
" <th>name</th>\n",
" <th>summary</th>\n",
" <th>space</th>\n",
" <th>description</th>\n",
" <th>neighborhood_overview</th>\n",
" <th>notes</th>\n",
" <th>transit</th>\n",
" <th>access</th>\n",
" <th>interaction</th>\n",
" <th>house_rules</th>\n",
" <th>picture_url</th>\n",
" <th>host_id</th>\n",
" <th>host_url</th>\n",
" <th>host_name</th>\n",
" <th>host_since</th>\n",
" <th>host_location</th>\n",
" <th>host_about</th>\n",
" <th>host_response_time</th>\n",
" <th>host_response_rate</th>\n",
" <th>host_is_superhost</th>\n",
" <th>host_thumbnail_url</th>\n",
" <th>host_picture_url</th>\n",
" <th>host_neighbourhood</th>\n",
" <th>host_listings_count</th>\n",
" <th>host_total_listings_count</th>\n",
" <th>host_verifications</th>\n",
" <th>host_has_profile_pic</th>\n",
" <th>host_identity_verified</th>\n",
" <th>street</th>\n",
" <th>neighbourhood</th>\n",
" <th>neighbourhood_cleansed</th>\n",
" <th>neighbourhood_group_cleansed</th>\n",
" <th>city</th>\n",
" <th>state</th>\n",
" <th>zipcode</th>\n",
" <th>market</th>\n",
" <th>smart_location</th>\n",
" <th>country_code</th>\n",
" <th>country</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" <th>is_location_exact</th>\n",
" <th>property_type</th>\n",
" <th>room_type</th>\n",
" <th>accommodates</th>\n",
" <th>bathrooms</th>\n",
" <th>bedrooms</th>\n",
" <th>beds</th>\n",
" <th>bed_type</th>\n",
" <th>amenities</th>\n",
" <th>square_feet</th>\n",
" <th>price</th>\n",
" <th>weekly_price</th>\n",
" <th>monthly_price</th>\n",
" <th>security_deposit</th>\n",
" <th>cleaning_fee</th>\n",
" <th>guests_included</th>\n",
" <th>extra_people</th>\n",
" <th>minimum_nights</th>\n",
" <th>maximum_nights</th>\n",
" <th>calendar_updated</th>\n",
" <th>has_availability</th>\n",
" <th>availability_30</th>\n",
" <th>availability_60</th>\n",
" <th>availability_90</th>\n",
" <th>availability_365</th>\n",
" <th>number_of_reviews</th>\n",
" <th>first_review</th>\n",
" <th>last_review</th>\n",
" <th>review_scores_rating</th>\n",
" <th>review_scores_accuracy</th>\n",
" <th>review_scores_cleanliness</th>\n",
" <th>review_scores_checkin</th>\n",
" <th>review_scores_communication</th>\n",
" <th>review_scores_location</th>\n",
" <th>review_scores_value</th>\n",
" <th>instant_bookable</th>\n",
" <th>cancellation_policy</th>\n",
" <th>require_guest_profile_picture</th>\n",
" <th>require_guest_phone_verification</th>\n",
" <th>calculated_host_listings_count</th>\n",
" <th>reviews_per_month</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>11156</td>\n",
" <td>https://www.airbnb.com/rooms/11156</td>\n",
" <td>An Oasis in the City</td>\n",
" <td>Very central to the city which can be reached ...</td>\n",
" <td>Potts Pt. is a vibrant and popular inner-city...</td>\n",
" <td>Very central to the city which can be reached ...</td>\n",
" <td>It is very close to everything and everywhere,...</td>\n",
" <td>$150.00 key security deposit, refundable on re...</td>\n",
" <td>It is 7 minutes walk to the Kings Cross.train ...</td>\n",
" <td>Kitchen &amp; laundry facilities. Shared bathroom.</td>\n",
" <td>As much as they want.</td>\n",
" <td>Be considerate. No showering after 2330h.</td>\n",
" <td>https://a0.muscache.com/im/pictures/2797669/17...</td>\n",
" <td>40855</td>\n",
" <td>https://www.airbnb.com/users/show/40855</td>\n",
" <td>Colleen</td>\n",
" <td>23/09/09</td>\n",
" <td>Potts Point, New South Wales, Australia</td>\n",
" <td>Recently retired, I've lived &amp; worked on 4 con...</td>\n",
" <td>within a day</td>\n",
" <td>67%</td>\n",
" <td>t</td>\n",
" <td>https://a0.muscache.com/im/users/40855/profile...</td>\n",
" <td>https://a0.muscache.com/im/users/40855/profile...</td>\n",
" <td>Potts Point</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>['email', 'phone', 'reviews']</td>\n",
" <td>t</td>\n",
" <td>f</td>\n",
" <td>Potts Point, NSW, Australia</td>\n",
" <td>Potts Point</td>\n",
" <td>Sydney</td>\n",
" <td>NaN</td>\n",
" <td>Potts Point</td>\n",
" <td>NSW</td>\n",
" <td>2011</td>\n",
" <td>Sydney</td>\n",
" <td>Potts Point, Australia</td>\n",
" <td>AU</td>\n",
" <td>Australia</td>\n",
" <td>-33.869168</td>\n",
" <td>151.226562</td>\n",
" <td>t</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Real Bed</td>\n",
" <td>{TV,Kitchen,Elevator,\"Buzzer/wireless intercom...</td>\n",
" <td>NaN</td>\n",
" <td>$65.00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>$0.00</td>\n",
" <td>2</td>\n",
" <td>180</td>\n",
" <td>4 weeks ago</td>\n",
" <td>t</td>\n",
" <td>9</td>\n",
" <td>39</td>\n",
" <td>69</td>\n",
" <td>339</td>\n",
" <td>177</td>\n",
" <td>5/12/09</td>\n",
" <td>1/07/18</td>\n",
" <td>92.0</td>\n",
" <td>9.0</td>\n",
" <td>9.0</td>\n",
" <td>10.0</td>\n",
" <td>10.0</td>\n",
" <td>10.0</td>\n",
" <td>9.0</td>\n",
" <td>f</td>\n",
" <td>moderate</td>\n",
" <td>f</td>\n",
" <td>f</td>\n",
" <td>1</td>\n",
" <td>1.69</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>12351</td>\n",
" <td>https://www.airbnb.com/rooms/12351</td>\n",
" <td>Sydney City &amp; Harbour at the door</td>\n",
" <td>Come stay with Vinh &amp; Stuart (Awarded as one o...</td>\n",
" <td>We're pretty relaxed hosts, and we fully appre...</td>\n",
" <td>Come stay with Vinh &amp; Stuart (Awarded as one o...</td>\n",
" <td>Pyrmont is an inner-city village of Sydney, on...</td>\n",
" <td>We've a few reasons for the 6.00pm arrival tim...</td>\n",
" <td>Our home is centrally located and an easy walk...</td>\n",
" <td>We look forward to welcoming you just as we wo...</td>\n",
" <td>As much or as little as you like. We live here...</td>\n",
" <td>We look forward to welcoming you to stay you j...</td>\n",
" <td>https://a0.muscache.com/im/pictures/763ad5c8-c...</td>\n",
" <td>17061</td>\n",
" <td>https://www.airbnb.com/users/show/17061</td>\n",
" <td>Stuart</td>\n",
" <td>14/05/09</td>\n",
" <td>Sydney, New South Wales, Australia</td>\n",
" <td>G'Day from Australia!\\r\\n\\r\\nHe's Vinh, and I'...</td>\n",
" <td>within an hour</td>\n",
" <td>100%</td>\n",
" <td>f</td>\n",
" <td>https://a0.muscache.com/im/users/17061/profile...</td>\n",
" <td>https://a0.muscache.com/im/users/17061/profile...</td>\n",
" <td>Pyrmont</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>['email', 'phone', 'manual_online', 'reviews',...</td>\n",
" <td>t</td>\n",
" <td>t</td>\n",
" <td>Pyrmont, NSW, Australia</td>\n",
" <td>Pyrmont</td>\n",
" <td>Sydney</td>\n",
" <td>NaN</td>\n",
" <td>Pyrmont</td>\n",
" <td>NSW</td>\n",
" <td>2009</td>\n",
" <td>Sydney</td>\n",
" <td>Pyrmont, Australia</td>\n",
" <td>AU</td>\n",
" <td>Australia</td>\n",
" <td>-33.865153</td>\n",
" <td>151.191896</td>\n",
" <td>t</td>\n",
" <td>Townhouse</td>\n",
" <td>Private room</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Real Bed</td>\n",
" <td>{TV,Internet,Wifi,\"Air conditioning\",\"Paid par...</td>\n",
" <td>NaN</td>\n",
" <td>$98.00</td>\n",
" <td>$800.00</td>\n",
" <td>NaN</td>\n",
" <td>$0.00</td>\n",
" <td>$55.00</td>\n",
" <td>2</td>\n",
" <td>$395.00</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>yesterday</td>\n",
" <td>t</td>\n",
" <td>13</td>\n",
" <td>30</td>\n",
" <td>45</td>\n",
" <td>188</td>\n",
" <td>468</td>\n",
" <td>24/07/10</td>\n",
" <td>27/06/18</td>\n",
" <td>95.0</td>\n",
" <td>10.0</td>\n",
" <td>9.0</td>\n",
" <td>10.0</td>\n",
" <td>10.0</td>\n",
" <td>10.0</td>\n",
" <td>10.0</td>\n",
" <td>f</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>t</td>\n",
" <td>t</td>\n",
" <td>2</td>\n",
" <td>4.83</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>14250</td>\n",
" <td>https://www.airbnb.com/rooms/14250</td>\n",
" <td>Manly Harbour House</td>\n",
" <td>Beautifully renovated, spacious and quiet, our...</td>\n",
" <td>Our home is a thirty minute walk along the sea...</td>\n",
" <td>Beautifully renovated, spacious and quiet, our...</td>\n",
" <td>Balgowlah Heights is one of the most prestigio...</td>\n",
" <td>NaN</td>\n",
" <td>Balgowlah - Manly bus # 131 or #132 (Bus stop...</td>\n",
" <td>Guests have access to whole house except locke...</td>\n",
" <td>NaN</td>\n",
" <td>Standard Terms and Conditions of Temporary Hol...</td>\n",
" <td>https://a0.muscache.com/im/pictures/56935671/f...</td>\n",
" <td>55948</td>\n",
" <td>https://www.airbnb.com/users/show/55948</td>\n",
" <td>Heidi</td>\n",
" <td>20/11/09</td>\n",
" <td>Sydney, New South Wales, Australia</td>\n",
" <td>I am a Canadian who has made Australia her hom...</td>\n",
" <td>within a few hours</td>\n",
" <td>100%</td>\n",
" <td>f</td>\n",
" <td>https://a0.muscache.com/im/users/55948/profile...</td>\n",
" <td>https://a0.muscache.com/im/users/55948/profile...</td>\n",
" <td>Balgowlah</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>['email', 'phone', 'reviews', 'jumio']</td>\n",
" <td>t</td>\n",
" <td>t</td>\n",
" <td>Balgowlah, NSW, Australia</td>\n",
" <td>Balgowlah</td>\n",
" <td>Manly</td>\n",
" <td>NaN</td>\n",
" <td>Balgowlah</td>\n",
" <td>NSW</td>\n",
" <td>2093</td>\n",
" <td>Sydney</td>\n",
" <td>Balgowlah, Australia</td>\n",
" <td>AU</td>\n",
" <td>Australia</td>\n",
" <td>-33.800929</td>\n",
" <td>151.261722</td>\n",
" <td>t</td>\n",
" <td>House</td>\n",
" <td>Entire home/apt</td>\n",
" <td>6</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>Real Bed</td>\n",
" <td>{TV,Wifi,\"Air conditioning\",Kitchen,\"Pets live...</td>\n",
" <td>NaN</td>\n",
" <td>$469.00</td>\n",
" <td>$3,000.00</td>\n",
" <td>NaN</td>\n",
" <td>$900.00</td>\n",
" <td>$100.00</td>\n",
" <td>6</td>\n",
" <td>$40.00</td>\n",
" <td>5</td>\n",
" <td>22</td>\n",
" <td>4 months ago</td>\n",
" <td>t</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>168</td>\n",
" <td>1</td>\n",
" <td>2/01/16</td>\n",
" <td>2/01/16</td>\n",
" <td>100.0</td>\n",
" <td>10.0</td>\n",
" <td>10.0</td>\n",
" <td>10.0</td>\n",
" <td>8.0</td>\n",
" <td>10.0</td>\n",
" <td>10.0</td>\n",
" <td>f</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>f</td>\n",
" <td>f</td>\n",
" <td>2</td>\n",
" <td>0.03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>14935</td>\n",
" <td>https://www.airbnb.com/rooms/14935</td>\n",
" <td>Eco-conscious Travellers: Private Room</td>\n",
" <td>Welcome! This apartment will suit a short term...</td>\n",
" <td>I live upstairs in my own room with my own bat...</td>\n",
" <td>Welcome! This apartment will suit a short term...</td>\n",
" <td>NaN</td>\n",
" <td>The building can be hard to find, so please en...</td>\n",
" <td>DIRECTIONS VIA TAXI: Get dropped off at Renwic...</td>\n",
" <td>I work from home most times - so if I'm home, ...</td>\n",
" <td>I'm not a big chatter, so don't get offended i...</td>\n",
" <td>1. Enjoy and always bring a smile during your ...</td>\n",
" <td>https://a0.muscache.com/im/pictures/2257353/d3...</td>\n",
" <td>58796</td>\n",
" <td>https://www.airbnb.com/users/show/58796</td>\n",
" <td>Kevin</td>\n",
" <td>30/11/09</td>\n",
" <td>Sydney, New South Wales, Australia</td>\n",
" <td>I've moved countries twice in the span of 10 y...</td>\n",
" <td>within an hour</td>\n",
" <td>100%</td>\n",
" <td>f</td>\n",
" <td>https://a0.muscache.com/im/users/58796/profile...</td>\n",
" <td>https://a0.muscache.com/im/users/58796/profile...</td>\n",
" <td>Redfern</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>['email', 'phone', 'facebook', 'reviews', 'jum...</td>\n",
" <td>t</td>\n",
" <td>t</td>\n",
" <td>Redfern, NSW, Australia</td>\n",
" <td>Redfern</td>\n",
" <td>Sydney</td>\n",
" <td>NaN</td>\n",
" <td>Redfern</td>\n",
" <td>NSW</td>\n",
" <td>2016</td>\n",
" <td>Sydney</td>\n",
" <td>Redfern, Australia</td>\n",
" <td>AU</td>\n",
" <td>Australia</td>\n",
" <td>-33.890765</td>\n",
" <td>151.200450</td>\n",
" <td>t</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Real Bed</td>\n",
" <td>{Internet,Wifi,\"Wheelchair accessible\",Pool,Ki...</td>\n",
" <td>NaN</td>\n",
" <td>$63.00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>$40.00</td>\n",
" <td>2</td>\n",
" <td>1125</td>\n",
" <td>today</td>\n",
" <td>t</td>\n",
" <td>13</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>215</td>\n",
" <td>172</td>\n",
" <td>28/11/11</td>\n",
" <td>26/06/18</td>\n",
" <td>89.0</td>\n",
" <td>9.0</td>\n",
" <td>8.0</td>\n",
" <td>9.0</td>\n",
" <td>10.0</td>\n",
" <td>9.0</td>\n",
" <td>9.0</td>\n",
" <td>f</td>\n",
" <td>moderate</td>\n",
" <td>f</td>\n",
" <td>f</td>\n",
" <td>2</td>\n",
" <td>2.14</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>14974</td>\n",
" <td>https://www.airbnb.com/rooms/14974</td>\n",
" <td>Eco-conscious Traveller: Sofa Couch</td>\n",
" <td>Welcome! This apartment will suit a short term...</td>\n",
" <td>Comes with a fully equipped gym and pool - whi...</td>\n",
" <td>Welcome! This apartment will suit a short term...</td>\n",
" <td>NaN</td>\n",
" <td>I live upstairs in my own room with my own bat...</td>\n",
" <td>DIRECTIONS VIA TAXI: Get dropped off at Renwic...</td>\n",
" <td>I work from home most times - so if I'm home, ...</td>\n",
" <td>I'm not a big chatter, so don't get offended i...</td>\n",
" <td>1. Enjoy and always bring a smile during your ...</td>\n",
" <td>https://a0.muscache.com/im/pictures/2197966/6e...</td>\n",
" <td>58796</td>\n",
" <td>https://www.airbnb.com/users/show/58796</td>\n",
" <td>Kevin</td>\n",
" <td>30/11/09</td>\n",
" <td>Sydney, New South Wales, Australia</td>\n",
" <td>I've moved countries twice in the span of 10 y...</td>\n",
" <td>within an hour</td>\n",
" <td>100%</td>\n",
" <td>f</td>\n",
" <td>https://a0.muscache.com/im/users/58796/profile...</td>\n",
" <td>https://a0.muscache.com/im/users/58796/profile...</td>\n",
" <td>Redfern</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>['email', 'phone', 'facebook', 'reviews', 'jum...</td>\n",
" <td>t</td>\n",
" <td>t</td>\n",
" <td>Redfern, NSW, Australia</td>\n",
" <td>Redfern</td>\n",
" <td>Sydney</td>\n",
" <td>NaN</td>\n",
" <td>Redfern</td>\n",
" <td>NSW</td>\n",
" <td>2016</td>\n",
" <td>Sydney</td>\n",
" <td>Redfern, Australia</td>\n",
" <td>AU</td>\n",
" <td>Australia</td>\n",
" <td>-33.889667</td>\n",
" <td>151.200896</td>\n",
" <td>t</td>\n",
" <td>Apartment</td>\n",
" <td>Shared room</td>\n",
" <td>1</td>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Pull-out Sofa</td>\n",
" <td>{Internet,Wifi,Pool,Kitchen,Gym,Elevator,\"Buzz...</td>\n",
" <td>0.0</td>\n",
" <td>$39.00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>$0.00</td>\n",
" <td>2</td>\n",
" <td>1125</td>\n",
" <td>4 days ago</td>\n",
" <td>t</td>\n",
" <td>24</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>287</td>\n",
" <td>147</td>\n",
" <td>23/09/11</td>\n",
" <td>2/07/18</td>\n",
" <td>90.0</td>\n",
" <td>9.0</td>\n",
" <td>8.0</td>\n",
" <td>9.0</td>\n",
" <td>9.0</td>\n",
" <td>9.0</td>\n",
" <td>9.0</td>\n",
" <td>f</td>\n",
" <td>moderate</td>\n",
" <td>f</td>\n",
" <td>f</td>\n",
" <td>2</td>\n",
" <td>1.78</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-41fb46e1-939e-4eb2-a870-e37faa4e627a')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-41fb46e1-939e-4eb2-a870-e37faa4e627a button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-41fb46e1-939e-4eb2-a870-e37faa4e627a');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-1760236c-3c40-4fbe-ae47-801f903715c6\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-1760236c-3c40-4fbe-ae47-801f903715c6')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-1760236c-3c40-4fbe-ae47-801f903715c6 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
]
},
"metadata": {},
"execution_count": 4
}
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"id": "ebrF0xLFZXES"
},
"outputs": [],
"source": [
"### To make this project easier, I will select only a small number of features\n",
"incl = [\"price\",\"city\",\"longitude\",\"latitude\",\"review_scores_rating\",\"number_of_reviews\",\"minimum_nights\",\"security_deposit\",\"cleaning_fee\",\"accommodates\",\"bathrooms\",\"bedrooms\",\"beds\",\"property_type\",\"room_type\",\"availability_365\" ,\"host_identity_verified\", \"host_is_superhost\",\"host_since\",\"cancellation_policy\"]\n",
"df = df[incl]"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "jWFkhwNdZXET"
},
"source": [
"Lets reformat the price to floats, it is currently a string (object). And lets makes sure the date is in a datetime format."
]
},
{
"cell_type": "code",
"source": [
"df[[\"price\"]].head()"
],
"metadata": {
"id": "oygW0Mptozfq",
"outputId": "2891980e-d702-4d27-fb98-4978633cbcf2",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
}
},
"execution_count": 6,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" price\n",
"0 $65.00 \n",
"1 $98.00 \n",
"2 $469.00 \n",
"3 $63.00 \n",
"4 $39.00 "
],
"text/html": [
"\n",
" <div id=\"df-e757b35f-afc3-4538-aedd-bee0915ced98\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>$65.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>$98.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>$469.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>$63.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>$39.00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-e757b35f-afc3-4538-aedd-bee0915ced98')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-e757b35f-afc3-4538-aedd-bee0915ced98 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-e757b35f-afc3-4538-aedd-bee0915ced98');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-2470b38c-29d3-4a76-b9e1-178444090e82\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-2470b38c-29d3-4a76-b9e1-178444090e82')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-2470b38c-29d3-4a76-b9e1-178444090e82 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
]
},
"metadata": {},
"execution_count": 6
}
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"id": "2Y7AZMImZXEU"
},
"outputs": [],
"source": [
"import re\n",
"price_list = [\"price\",\"cleaning_fee\",\"security_deposit\"]\n",
"\n",
"for col in price_list:\n",
" df[col] = df[col].fillna(\"0\")\n",
" df[col] = df[col].apply(lambda x: float(re.compile('[^0-9eE.]').sub('', x)) if len(x)>0 else 0)\n",
"\n",
"df['host_since'] = pd.to_datetime(df['host_since'])"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"id": "V2_un0LhZXEU",
"outputId": "cbdfdd92-5f7d-43a4-ddc4-a2466a8ae2ef",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"0 65.0\n",
"1 98.0\n",
"2 469.0\n",
"3 63.0\n",
"4 39.0\n",
"Name: price, dtype: float64"
]
},
"metadata": {},
"execution_count": 8
}
],
"source": [
"df[\"price\"].head()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"id": "Qh-IpjZtZXEW",
"outputId": "54a874ee-f2c5-453d-e8e5-b295475658bc",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 452
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<Axes: >"
]
},
"metadata": {},
"execution_count": 9
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAGhCAYAAACNn9uxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA4TUlEQVR4nO3de3hU1b3H/08uk0kCJBTEkJBAOATUcmmoXCqPgCJQCF5SBNp6qwcsrdwKCGpoFUMF1HBpxYNI8YBWDy1GDlgMSgSKsUKQGlroDwUteHITRCRDSDKZJPv3B7/sH0NCzEDCkFnv1/Pkgb32d9as4Xkm+8Na+xJkWZYlAAAAAwX7ewAAAAD+QhACAADGIggBAABjEYQAAICxCEIAAMBYBCEAAGAsghAAADAWQQgAABgr1N8DuJrV1NSoqKhIbdq0UVBQkL+HAwAAGsGyLJ05c0ZxcXEKDm54zocg1ICioiIlJCT4exgAAOAS5OfnKz4+vsEaglAD2rRpI+ncP2RUVJSfRwOgKXk8Hm3btk0jR46Uw+Hw93AANCGXy6WEhAT7ON4QglADapfDoqKiCEJAgPF4PIqMjFRUVBRBCAhQjTmthZOlAQCAsQhCAADAWAQhAABgLIIQAAAwFkEIAAAYiyAEAACMRRACAADGIggBAABjEYQAGKe6ulq7du3S+++/r127dqm6utrfQwLgJwQhAEbZuHGjkpKSNGLECC1btkwjRoxQUlKSNm7c6O+hAfADghAAY2zcuFHjxo1T7969lZOTo/Xr1ysnJ0e9e/fWuHHjCEOAgYIsy7L8PYirlcvlUnR0tEpKSnjWGNDCVVdXKykpSb1799amTZtUXV2trKwspaSkKCQkRKmpqTp48KCOHDmikJAQfw8XwGXw5fjNjBAAI+Tk5OjYsWOaN2+egoO9f/UFBwcrLS1NR48eVU5Ojp9GCMAfCEIAjFBcXCxJ6tWrV737a9tr6wCYgSAEwAixsbGSpIMHD9a7v7a9tg6AGQhCAIwwePBgJSYmatGiRaqpqfHaV1NTo8WLF6tr164aPHiwn0YIwB8IQgCMEBISoqVLl2rLli1KTU3Vnj17VF5erj179ig1NVVbtmzRkiVLOFEaMEyovwcAAFfK2LFjlZmZqUceeURDhgyx27t27arMzEyNHTvWj6MD4A9cPt8ALp8HAlN1dbV27typrVu3avTo0br11luZCQICiC/Hb2aEABgnJCREQ4cO1dmzZzV06FBCEGAwzhECAADGIggBAABjEYQAAICxCEIAAMBYBCEAAGAsghAAADAWQQgAABiLIAQAAIxFEAIAAMYiCAEAAGMRhAAAgLEIQgAAwFgEIQAAYCyCEAAAMJbPQai0tFTz58/XqFGj1K5dOwUFBWndunVeNTU1NVq3bp3uvPNOJSQkqFWrVurVq5eefvppVVRU1Nvvyy+/rBtuuEHh4eHq3r27VqxYUW9dYWGhJkyYoLZt2yoqKkp33XWX/v3vf19WnwDMUllZqeeff16rV6/W888/r8rKSn8PCYC/WD46evSoJcnq3Lmzdcstt1iSrLVr13rVnDlzxpJk/eAHP7Cefvppa/Xq1dZ//ud/WsHBwdYtt9xi1dTUeNWvWrXKkmTdfffd1urVq63777/fkmQ988wzdfrt3r27de2111rPPvustWzZMishIcGKj4+3Tp48eUl9NqSkpMSSZJWUlPj2jwTgqjV37lwrNDTUkmT/hIaGWnPnzvX30AA0EV+O3z4HoYqKCqu4uNiyLMv66KOP6g1Cbrfb+tvf/lbntenp6ZYkKzs7224rKyuz2rdvb40ZM8ar9t5777VatWplnTp1ym579tlnLUnW3r177bZDhw5ZISEhVlpa2iX12RCCEBBY5s6da0myYmJirFWrVllr1661Vq1aZcXExFiSCENAgPDl+O3z0pjT6VTHjh0brAkLC9OgQYPqtP/oRz+SJB06dMhu27lzp77++mtNmTLFq3bq1Kk6e/as3n77bbstMzNT/fv3V//+/e2266+/Xrfddps2bNhwSX0CMENlZaWWL1+umJgYFRQUaOLEifrOd76jiRMnqqCgQDExMVq+fDnLZIBhQq/km3355ZeSpGuuucZuy8vLkyT169fPq/bGG29UcHCw8vLydN9996mmpkb//Oc/NXHixDr9DhgwQNu2bdOZM2fUpk2bRvd5IbfbLbfbbW+7XC5JksfjkcfjuZSPDOAqsWLFClVVVSk9PV2WZdnfaY/HI4fDofnz52vKlClasWKFZsyY4efRArgcvhyzr2gQeu655xQVFaXRo0fbbcXFxQoJCdG1117rVRsWFqb27durqKhIknTq1Cm53W7FxsbW6be2raioSNddd12j+7zQ4sWLlZ6eXqd927ZtioyM9O3D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Zg9CH3/8se688061a9dOkZGR6tWrl55//nmvmg8//FA333yzIiMj1bFjR82YMUOlpaV1+nK73XrssccUFxeniIgIDRw4UNnZ2fW+b2P7BAAA5gptzs63bdumO+64Q3379tUTTzyh1q1b6/PPP1dBQYFds3//ft1222264YYbtGzZMhUUFGjJkiU6cuSItm7d6tXfgw8+qMzMTM2cOVPdu3fXunXrlJKSop07d+rmm2++pD4BAIDBrGZSUlJixcTEWD/60Y+s6urqi9aNHj3aio2NtUpKSuy2P/zhD5Yk691337XbcnNzLUlWRkaG3VZeXm5169bNuummmy6pz8Z8Bkle/QAIDJWVldamTZusyspKfw8FQBPz5fjdbEtj//M//6Pjx49r4cKFCg4O1tmzZ1VTU+NV43K5lJ2drfvuu09RUVF2+wMPPKDWrVtrw4YNdltmZqZCQkI0efJkuy08PFyTJk3S7t27lZ+f73OfAADAbM22NPbee+8pKipKhYWFSk1N1eHDh9WqVSvdf//9Wr58ucLDw3XgwAFVVVWpX79+Xq8NCwtTcnKy8vLy7La8vDz16NHDK9xI0oABAySdWw5LSEjwqc8Lud1uud1ue9vlckmSPB6PPB7Ppf1DALgq1X6n+W4DgceX73WzBaEjR46oqqpKd911lyZNmqTFixfrr3/9q1asWKHTp09r/fr1Ki4uliTFxsbWeX1sbKxycnLs7eLi4ovWSVJRUZFd19g+L7R48WKlp6fXad+2bZsiIyMb+rgAWqiLXXABoOUqKytrdG2zBaHS0lKVlZXpl7/8pX2V2NixY1VZWamXXnpJCxYsUHl5uSTJ6XTWeX14eLi9X5LKy8svWle7//w/G9PnhdLS0jR79mx72+VyKSEhQSNHjqwzEwWgZfN4PMrOztaIESPkcDj8PRwATah2Racxmi0IRURESJJ++tOferXfc889eumll7R79257luX85ahaFRUVdh+1/V2s7vz3q/2zMX1eyOl01hugHA4HvyiBAMX3Gwg8vnynm+1k6bi4OElSTEyMV/u1114rSfrmm2/s5ava5azzFRcX231I55a1LlZ3/vv50icAADBbswWhG2+8UZJUWFjo1V57Lk+HDh3Uq1cvhYaGat++fV41lZWV2r9/v5KTk+225ORkHT58uM50V25urr1fkk99AgAAszVbEJow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5/ncbrfcbre97XK5JEkej0cej6fe1wBoGWbOnClJ6tatm958801VV1fr66+/1ve//329+eab6tmzpz7//HPNnDlTL7zwgn8HC+Cy+HLMbtYg9PXXX+vJJ5/UE088oQ4dOtRbU/u/L6fTWWdfeHi41//OysvLL1p3fl++9Hm+xYsXKz09vU77tm3bFBkZWe9rALQM27dvlySNHTtW77zzjt1ee9Vpamqqli5dqu3btysrK8svYwTQNMrKyhpd26xB6De/+Y3atWun6dOnX7QmIiJCkrxmYmpVVFTY+2trL1Z3fl++9Hm+tLQ0zZ492952uVxKSEjQyJEj6yzHAWhZVqxYoc8//1wej0cpKSnyeDzKzs7WiBEj5HA4tGPHDklSYmKiUlJS/DxaAJejdkWnMZotCB05ckSrV6/W7373O3vJSjoXRDwej44dO6aoqCh7+ap2Oet8xcXFiouLs7djY2NVWFhYb50ku9aXPs/ndDrrnUVyOBxyOBwX/awArn5z587V9u3b9cILL+jZZ5+1v9MOh0OWZWnlypV2Hd93oGXz5TvcbCdLFxYWqqamRjNmzFDXrl3tn9zcXB0+fFhdu3bVggUL1KtXL4WGhmrfvn1er6+srNT+/fuVnJxstyUnJ+vw4cN1kl5ubq69X5JPfQIww/DhwxUZGamqqiq1bt1a8+bNU2FhoebNm6fWrVurqqpKkZGRGj58uL+HCuAKCrIsy2qOjk+ePFnnJofSueWyM2fO6Pe//726deum3r17a/To0frHP/6hTz/9VG3atJEkvfzyy3rooYe0detWjRo1StK5wPODH/xAGRkZmjNnjqRzy1+9evVS+/bttWfPHvt9GttnQ1wul6Kjo1VSUsLSGBAANm7cqLvvvvui+998802NHTv2Co4IQHPw5fjdbEHoYm655RadPHlSBw8etNs+/vhjDRo0SN/97nc1efJkFRQUaOnSpRoyZIjeffddr9dPmDBB//u//6tZs2YpKSlJr7zyivbu3avt27dryJAhl9TnxRCEgMCzceNGzZ49W1988YXdlpiYqKVLlxKCgADR4oKQJH3wwQd67LHH9PHHH6tNmzaaMGGCFi9ebM/m1KqoqNATTzyh1157Td9884369Omj3/72t/rhD39Y570a2+fFEISAwFRdXa2dO3dq69atGj16tG699VaFhIT4e1gAmshV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\n"
},
"metadata": {}
}
],
"source": [
"## Winsorize for high price values, outliers.\n",
"\n",
"df.boxplot(column=\"price\")"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"id": "0rk7c4VuZXEW",
"outputId": "72bbc0f5-6da3-4c58-cf3d-36085f25cd93",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"13.808558337216192"
]
},
"metadata": {},
"execution_count": 10
}
],
"source": [
"## this is high, because we have a price we expect it to be high.\n",
"## however, it shouldn't be much above 3.\n",
"df[\"price\"].skew()"
]
},
{
"cell_type": "code",
"source": [
"# df[\"price\"]].clip(low_entry, high_entry)"
],
"metadata": {
"id": "zkRM_IsQpnjy"
},
"execution_count": 12,
"outputs": []
},
{
"cell_type": "code",
"source": [
"df[\"price\"].max()"
],
"metadata": {
"id": "MnGNC0LZpknd",
"outputId": "8a16dfab-ac69-4d1c-eb4a-abd10db5a64d",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"execution_count": 13,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"12999.0"
]
},
"metadata": {},
"execution_count": 13
}
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"id": "0pHgBvGwZXEX",
"outputId": "871085f7-93ec-45ae-955d-3d9e2dcb1492",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"1600.0"
]
},
"metadata": {},
"execution_count": 14
}
],
"source": [
"## This value is still relatively high\n",
"df[\"price\"].quantile(0.995) ## @99.5%"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "W4BY2ErJZXEX"
},
"outputs": [],
"source": [
"df = df[df[\"price\"]<df[\"price\"].quantile(0.995)].reset_index(drop=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "6VOcuojRZXEY",
"outputId": "c7ecb493-8de3-40d0-e6bd-a2b01b0af21d",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"2.957872457159033"
]
},
"metadata": {},
"execution_count": 22
}
],
"source": [
"## This would do for now, it might also be worth transforming ..\n",
"## .. the price with a log function at a later stage\n",
"df[\"price\"].skew()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "1m15b3s9ZXEZ",
"outputId": "e1289008-9cc4-402c-e1ad-7eaec4f20436",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"price 0\n",
"city 32\n",
"longitude 0\n",
"latitude 0\n",
"review_scores_rating 7466\n",
"number_of_reviews 0\n",
"minimum_nights 0\n",
"security_deposit 0\n",
"cleaning_fee 0\n",
"accommodates 0\n",
"bathrooms 22\n",
"bedrooms 8\n",
"beds 33\n",
"property_type 0\n",
"room_type 0\n",
"availability_365 0\n",
"host_identity_verified 34\n",
"host_is_superhost 34\n",
"host_since 34\n",
"cancellation_policy 0\n",
"dtype: int64"
]
},
"metadata": {},
"execution_count": 23
}
],
"source": [
"df.isnull().sum()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "lDW6Pf9GZXEa",
"outputId": "beaa1e9a-cfb8-4f84-e641-594750486406",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 26931 entries, 0 to 26930\n",
"Data columns (total 20 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 price 26931 non-null float64 \n",
" 1 city 26899 non-null object \n",
" 2 longitude 26931 non-null float64 \n",
" 3 latitude 26931 non-null float64 \n",
" 4 review_scores_rating 19465 non-null float64 \n",
" 5 number_of_reviews 26931 non-null int64 \n",
" 6 minimum_nights 26931 non-null int64 \n",
" 7 security_deposit 26931 non-null float64 \n",
" 8 cleaning_fee 26931 non-null float64 \n",
" 9 accommodates 26931 non-null int64 \n",
" 10 bathrooms 26909 non-null float64 \n",
" 11 bedrooms 26923 non-null float64 \n",
" 12 beds 26898 non-null float64 \n",
" 13 property_type 26931 non-null object \n",
" 14 room_type 26931 non-null object \n",
" 15 availability_365 26931 non-null int64 \n",
" 16 host_identity_verified 26897 non-null object \n",
" 17 host_is_superhost 26897 non-null object \n",
" 18 host_since 26897 non-null datetime64[ns]\n",
" 19 cancellation_policy 26931 non-null object \n",
"dtypes: datetime64[ns](1), float64(9), int64(4), object(6)\n",
"memory usage: 4.1+ MB\n"
]
}
],
"source": [
"df.info()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "5TJ9xolVZXEa",
"outputId": "da660924-4b2c-4251-bb56-54921ebfca18",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"0 11492\n",
"365 743\n",
"364 476\n",
"89 414\n",
"90 324\n",
" ... \n",
"114 11\n",
"230 11\n",
"100 10\n",
"259 10\n",
"226 9\n",
"Name: availability_365, Length: 366, dtype: int64"
]
},
"metadata": {},
"execution_count": 25
}
],
"source": [
"df[\"availability_365\"].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "nYb7PcN4ZXEc",
"outputId": "cc903474-d6f3-4bf3-f2c0-9c855a78c83f",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 296
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-5e4cb894-de8d-4b05-82c2-fae837958324\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>price</th>\n",
" <th>longitude</th>\n",
" <th>latitude</th>\n",
" <th>review_scores_rating</th>\n",
" <th>number_of_reviews</th>\n",
" <th>minimum_nights</th>\n",
" <th>security_deposit</th>\n",
" <th>cleaning_fee</th>\n",
" <th>accommodates</th>\n",
" <th>bathrooms</th>\n",
" <th>bedrooms</th>\n",
" <th>beds</th>\n",
" <th>availability_365</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>26931.000000</td>\n",
" <td>26931.000000</td>\n",
" <td>26931.000000</td>\n",
" <td>19465.000000</td>\n",
" <td>26931.000000</td>\n",
" <td>26931.000000</td>\n",
" <td>26931.000000</td>\n",
" <td>26931.000000</td>\n",
" <td>26931.000000</td>\n",
" <td>26909.000000</td>\n",
" <td>26923.000000</td>\n",
" <td>26898.000000</td>\n",
" <td>26931.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>196.065464</td>\n",
" <td>151.210438</td>\n",
" <td>-33.862675</td>\n",
" <td>93.404932</td>\n",
" <td>14.070031</td>\n",
" <td>4.482010</td>\n",
" <td>293.870261</td>\n",
" <td>65.268687</td>\n",
" <td>3.357395</td>\n",
" <td>1.340964</td>\n",
" <td>1.600787</td>\n",
" <td>1.996542</td>\n",
" <td>101.575916</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>199.813830</td>\n",
" <td>0.079425</td>\n",
" <td>0.071861</td>\n",
" <td>9.358515</td>\n",
" <td>29.870227</td>\n",
" <td>14.421896</td>\n",
" <td>549.642202</td>\n",
" <td>84.886663</td>\n",
" <td>2.160004</td>\n",
" <td>0.638187</td>\n",
" <td>1.091213</td>\n",
" <td>1.506535</td>\n",
" <td>127.822623</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>0.000000</td>\n",
" <td>150.644964</td>\n",
" <td>-34.135212</td>\n",
" <td>20.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>80.000000</td>\n",
" <td>151.184336</td>\n",
" <td>-33.897653</td>\n",
" <td>90.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>2.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>132.000000</td>\n",
" <td>151.223029</td>\n",
" <td>-33.883161</td>\n",
" <td>96.000000</td>\n",
" <td>3.000000</td>\n",
" <td>2.000000</td>\n",
" <td>0.000000</td>\n",
" <td>40.000000</td>\n",
" <td>2.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>32.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>225.000000</td>\n",
" <td>151.264706</td>\n",
" <td>-33.832189</td>\n",
" <td>100.000000</td>\n",
" <td>13.000000</td>\n",
" <td>5.000000</td>\n",
" <td>400.000000</td>\n",
" <td>99.000000</td>\n",
" <td>4.000000</td>\n",
" <td>1.500000</td>\n",
" <td>2.000000</td>\n",
" <td>2.000000</td>\n",
" <td>179.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>1599.000000</td>\n",
" <td>151.339811</td>\n",
" <td>-33.389728</td>\n",
" <td>100.000000</td>\n",
" <td>468.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>7000.000000</td>\n",
" <td>999.000000</td>\n",
" <td>16.000000</td>\n",
" <td>10.000000</td>\n",
" <td>46.000000</td>\n",
" <td>29.000000</td>\n",
" <td>365.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5e4cb894-de8d-4b05-82c2-fae837958324')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-5e4cb894-de8d-4b05-82c2-fae837958324 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-5e4cb894-de8d-4b05-82c2-fae837958324');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" price longitude latitude review_scores_rating \\\n",
"count 26931.000000 26931.000000 26931.000000 19465.000000 \n",
"mean 196.065464 151.210438 -33.862675 93.404932 \n",
"std 199.813830 0.079425 0.071861 9.358515 \n",
"min 0.000000 150.644964 -34.135212 20.000000 \n",
"25% 80.000000 151.184336 -33.897653 90.000000 \n",
"50% 132.000000 151.223029 -33.883161 96.000000 \n",
"75% 225.000000 151.264706 -33.832189 100.000000 \n",
"max 1599.000000 151.339811 -33.389728 100.000000 \n",
"\n",
" number_of_reviews minimum_nights security_deposit cleaning_fee \\\n",
"count 26931.000000 26931.000000 26931.000000 26931.000000 \n",
"mean 14.070031 4.482010 293.870261 65.268687 \n",
"std 29.870227 14.421896 549.642202 84.886663 \n",
"min 0.000000 1.000000 0.000000 0.000000 \n",
"25% 1.000000 1.000000 0.000000 0.000000 \n",
"50% 3.000000 2.000000 0.000000 40.000000 \n",
"75% 13.000000 5.000000 400.000000 99.000000 \n",
"max 468.000000 1000.000000 7000.000000 999.000000 \n",
"\n",
" accommodates bathrooms bedrooms beds \\\n",
"count 26931.000000 26909.000000 26923.000000 26898.000000 \n",
"mean 3.357395 1.340964 1.600787 1.996542 \n",
"std 2.160004 0.638187 1.091213 1.506535 \n",
"min 1.000000 0.000000 0.000000 0.000000 \n",
"25% 2.000000 1.000000 1.000000 1.000000 \n",
"50% 2.000000 1.000000 1.000000 1.000000 \n",
"75% 4.000000 1.500000 2.000000 2.000000 \n",
"max 16.000000 10.000000 46.000000 29.000000 \n",
"\n",
" availability_365 \n",
"count 26931.000000 \n",
"mean 101.575916 \n",
"std 127.822623 \n",
"min 0.000000 \n",
"25% 0.000000 \n",
"50% 32.000000 \n",
"75% 179.000000 \n",
"max 365.000000 "
]
},
"metadata": {},
"execution_count": 26
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Uy_enZlZZXEd",
"outputId": "ef71fa30-de2a-4bfc-f5e7-b6a994fa0616",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Saving figure attribute_histogram_plots\n"
]
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x1080 with 9 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"\n",
"try:\n",
" df.iloc[:,6:].hist(bins=50, figsize=(20,15))\n",
" save_fig(\"attribute_histogram_plots\")\n",
" plt.show()\n",
"except AttributeError:\n",
" pass\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "GgkH-ZWzZXEe",
"outputId": "779f5770-7c2d-4ceb-bd85-6a566f222571",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Bondi Beach 1671\n",
"Manly 958\n",
"Surry Hills 919\n",
"Bondi 785\n",
"Randwick 684\n",
"Sydney 682\n",
"Coogee 675\n",
"Darlinghurst 660\n",
"North Bondi 629\n",
"Newtown 490\n",
"Name: city, dtype: int64"
]
},
"metadata": {},
"execution_count": 28
}
],
"source": [
"## Even though our customer, sepecifcally wants information about..\n",
"## .. Bondi the addition of other areas will help the final prediction\n",
"\n",
"df[\"city\"].value_counts().head(10)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "OvITLiauZXEf"
},
"outputs": [],
"source": [
"## For this taks we will keep the top 20 Sydney locations\n",
"\n",
"list_of_20 = list(df[\"city\"].value_counts().head(10).index)\n",
"df = df[df[\"city\"].isin(list_of_20)].reset_index(drop=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "gbbpk03GZXEf",
"outputId": "04e8ea80-c922-4b7b-d3e6-610fadfe6562",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Apartment 5970\n",
"House 1497\n",
"Townhouse 271\n",
"Condominium 115\n",
"Loft 59\n",
"Guest suite 44\n",
"Other 33\n",
"Hostel 30\n",
"Bed and breakfast 25\n",
"Guesthouse 24\n",
"Serviced apartment 23\n",
"Villa 16\n",
"Bungalow 7\n",
"Boutique hotel 6\n",
"Tent 6\n",
"Cottage 6\n",
"Resort 5\n",
"Tiny house 5\n",
"Hotel 3\n",
"Cabin 2\n",
"Aparthotel 1\n",
"Earth house 1\n",
"Houseboat 1\n",
"Chalet 1\n",
"Yurt 1\n",
"Camper/RV 1\n",
"Name: property_type, dtype: int64"
]
},
"metadata": {},
"execution_count": 30
}
],
"source": [
"df[\"property_type\"].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "0TnvlsBUZXEf"
},
"outputs": [],
"source": [
"## Remove rare occurences in categories as is necessary for..\n",
"## .. the eventaul cross validation step, the below step is somewhat ..\n",
"## .. similar for what has been done with cities above\n",
"\n",
"item_counts = df.groupby(['property_type']).size()\n",
"rare_items = list(item_counts.loc[item_counts <= 10].index.values)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "A5W30DNnZXEf"
},
"outputs": [],
"source": [
"df = df[~df[\"property_type\"].isin(rare_items)].reset_index(drop=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "kt9-HbbXZXEf"
},
"outputs": [],
"source": [
"# to make this notebook's output identical at every run\n",
"np.random.seed(42)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "lq-WJp8TZXEg"
},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"# For illustration only. Sklearn has train_test_split()\n",
"def split_train_test(data, test_ratio):\n",
" shuffled_indices = np.random.permutation(len(data))\n",
" test_set_size = int(len(data) * test_ratio)\n",
" test_indices = shuffled_indices[:test_set_size]\n",
" train_indices = shuffled_indices[test_set_size:]\n",
" return data.iloc[train_indices], data.iloc[test_indices]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "5Hrqdh3RZXEg",
"outputId": "42709019-1c84-4492-c645-c8a09a68a38d",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"6486 train + 1621 test\n"
]
}
],
"source": [
"train_set, test_set = split_train_test(df, 0.2)\n",
"print(len(train_set), \"train +\", len(test_set), \"test\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "79eD-QSnZXEg"
},
"outputs": [],
"source": [
"from zlib import crc32\n",
"\n",
"def test_set_check(identifier, test_ratio):\n",
" return crc32(np.int64(identifier)) & 0xffffffff < test_ratio * 2**32\n",
"\n",
"def split_train_test_by_id(data, test_ratio, id_column):\n",
" ids = data[id_column]\n",
" in_test_set = ids.apply(lambda id_: test_set_check(id_, test_ratio))\n",
" return data.loc[~in_test_set], data.loc[in_test_set]"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "J0AASY24ZXEh"
},
"source": [
"The implementation of `test_set_check()` above works fine in both Python 2 and Python 3. In earlier releases, the following implementation was proposed, which supported any hash function, but was much slower and did not support Python 2:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "iC7rt_JuZXEh"
},
"outputs": [],
"source": [
"import hashlib\n",
"\n",
"def test_set_check(identifier, test_ratio, hash=hashlib.md5):\n",
" return hash(np.int64(identifier)).digest()[-1] < 256 * test_ratio"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "fRgaKim3ZXEh"
},
"source": [
"If you want an implementation that supports any hash function and is compatible with both Python 2 and Python 3, here is one:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "V8hHq3PaZXEh"
},
"outputs": [],
"source": [
"def test_set_check(identifier, test_ratio, hash=hashlib.md5):\n",
" return bytearray(hash(np.int64(identifier)).digest())[-1] < 256 * test_ratio"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "c85a4a--ZXEi"
},
"outputs": [],
"source": [
"df_with_id = df.reset_index() # adds an `index` column\n",
"train_set, test_set = split_train_test_by_id(df_with_id, 0.2, \"index\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "7a3cLzzMZXEi"
},
"outputs": [],
"source": [
"df_with_id[\"id\"] = df[\"longitude\"] * 1000 + df_with_id[\"latitude\"]\n",
"train_set, test_set = split_train_test_by_id(df_with_id, 0.2, \"id\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "RJ4scQdlZXEi",
"outputId": "d8f5414b-2da2-46b0-95bd-c47f7756ecf6",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 357
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-1cc7b124-01cf-4952-8521-d124ea1b6fd6\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>index</th>\n",
" <th>price</th>\n",
" <th>city</th>\n",
" <th>longitude</th>\n",
" <th>latitude</th>\n",
" <th>review_scores_rating</th>\n",
" <th>number_of_reviews</th>\n",
" <th>minimum_nights</th>\n",
" <th>security_deposit</th>\n",
" <th>cleaning_fee</th>\n",
" <th>accommodates</th>\n",
" <th>bathrooms</th>\n",
" <th>bedrooms</th>\n",
" <th>beds</th>\n",
" <th>property_type</th>\n",
" <th>room_type</th>\n",
" <th>availability_365</th>\n",
" <th>host_identity_verified</th>\n",
" <th>host_is_superhost</th>\n",
" <th>host_since</th>\n",
" <th>cancellation_policy</th>\n",
" <th>id</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>111.0</td>\n",
" <td>Darlinghurst</td>\n",
" <td>151.216541</td>\n",
" <td>-33.880455</td>\n",
" <td>88.0</td>\n",
" <td>272</td>\n",
" <td>2</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>285</td>\n",
" <td>t</td>\n",
" <td>f</td>\n",
" <td>2009-03-12</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>151182.660345</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>130.0</td>\n",
" <td>Bondi Beach</td>\n",
" <td>151.273084</td>\n",
" <td>-33.891846</td>\n",
" <td>95.0</td>\n",
" <td>119</td>\n",
" <td>4</td>\n",
" <td>200.0</td>\n",
" <td>60.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>94</td>\n",
" <td>t</td>\n",
" <td>t</td>\n",
" <td>2012-01-18</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>151239.192454</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>5</td>\n",
" <td>111.0</td>\n",
" <td>Sydney</td>\n",
" <td>151.268865</td>\n",
" <td>-33.885690</td>\n",
" <td>89.0</td>\n",
" <td>11</td>\n",
" <td>4</td>\n",
" <td>0.0</td>\n",
" <td>100.0</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>14</td>\n",
" <td>f</td>\n",
" <td>f</td>\n",
" <td>2010-12-14</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>151234.979210</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>9</td>\n",
" <td>990.0</td>\n",
" <td>Coogee</td>\n",
" <td>151.260116</td>\n",
" <td>-33.914816</td>\n",
" <td>98.0</td>\n",
" <td>13</td>\n",
" <td>7</td>\n",
" <td>3000.0</td>\n",
" <td>0.0</td>\n",
" <td>12</td>\n",
" <td>5.0</td>\n",
" <td>6.0</td>\n",
" <td>6.0</td>\n",
" <td>Villa</td>\n",
" <td>Entire home/apt</td>\n",
" <td>33</td>\n",
" <td>t</td>\n",
" <td>f</td>\n",
" <td>2011-10-02</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>151226.201484</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>12</td>\n",
" <td>202.0</td>\n",
" <td>Bondi</td>\n",
" <td>151.268418</td>\n",
" <td>-33.895158</td>\n",
" <td>91.0</td>\n",
" <td>90</td>\n",
" <td>1</td>\n",
" <td>1000.0</td>\n",
" <td>150.0</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>204</td>\n",
" <td>f</td>\n",
" <td>f</td>\n",
" <td>2011-03-31</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>151234.523342</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-1cc7b124-01cf-4952-8521-d124ea1b6fd6')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-1cc7b124-01cf-4952-8521-d124ea1b6fd6 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-1cc7b124-01cf-4952-8521-d124ea1b6fd6');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" index price city longitude latitude review_scores_rating \\\n",
"0 0 111.0 Darlinghurst 151.216541 -33.880455 88.0 \n",
"4 4 130.0 Bondi Beach 151.273084 -33.891846 95.0 \n",
"5 5 111.0 Sydney 151.268865 -33.885690 89.0 \n",
"9 9 990.0 Coogee 151.260116 -33.914816 98.0 \n",
"12 12 202.0 Bondi 151.268418 -33.895158 91.0 \n",
"\n",
" number_of_reviews minimum_nights security_deposit cleaning_fee \\\n",
"0 272 2 0.0 0.0 \n",
"4 119 4 200.0 60.0 \n",
"5 11 4 0.0 100.0 \n",
"9 13 7 3000.0 0.0 \n",
"12 90 1 1000.0 150.0 \n",
"\n",
" accommodates bathrooms bedrooms beds property_type room_type \\\n",
"0 2 1.0 1.0 1.0 Apartment Private room \n",
"4 2 1.0 1.0 1.0 Apartment Entire home/apt \n",
"5 4 1.0 2.0 2.0 Apartment Entire home/apt \n",
"9 12 5.0 6.0 6.0 Villa Entire home/apt \n",
"12 4 1.0 2.0 2.0 Apartment Entire home/apt \n",
"\n",
" availability_365 host_identity_verified host_is_superhost host_since \\\n",
"0 285 t f 2009-03-12 \n",
"4 94 t t 2012-01-18 \n",
"5 14 f f 2010-12-14 \n",
"9 33 t f 2011-10-02 \n",
"12 204 f f 2011-03-31 \n",
"\n",
" cancellation_policy id \n",
"0 strict_14_with_grace_period 151182.660345 \n",
"4 strict_14_with_grace_period 151239.192454 \n",
"5 strict_14_with_grace_period 151234.979210 \n",
"9 strict_14_with_grace_period 151226.201484 \n",
"12 strict_14_with_grace_period 151234.523342 "
]
},
"metadata": {},
"execution_count": 41
}
],
"source": [
"test_set.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "eyyGG0fcZXEj"
},
"outputs": [],
"source": [
"from sklearn.model_selection import train_test_split\n",
"\n",
"train_set, test_set = train_test_split(df, test_size=0.2, random_state=42)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "v9LZBp0fZXEj",
"outputId": "f53186d0-0df3-47d9-d06a-966480296b33",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 357
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-38a1fab0-45bc-4013-abe5-2c334d1d2fa5\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>price</th>\n",
" <th>city</th>\n",
" <th>longitude</th>\n",
" <th>latitude</th>\n",
" <th>review_scores_rating</th>\n",
" <th>number_of_reviews</th>\n",
" <th>minimum_nights</th>\n",
" <th>security_deposit</th>\n",
" <th>cleaning_fee</th>\n",
" <th>accommodates</th>\n",
" <th>bathrooms</th>\n",
" <th>bedrooms</th>\n",
" <th>beds</th>\n",
" <th>property_type</th>\n",
" <th>room_type</th>\n",
" <th>availability_365</th>\n",
" <th>host_identity_verified</th>\n",
" <th>host_is_superhost</th>\n",
" <th>host_since</th>\n",
" <th>cancellation_policy</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4084</th>\n",
" <td>68.0</td>\n",
" <td>North Bondi</td>\n",
" <td>151.279684</td>\n",
" <td>-33.884092</td>\n",
" <td>93.0</td>\n",
" <td>3</td>\n",
" <td>7</td>\n",
" <td>150.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>2.5</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>House</td>\n",
" <td>Private room</td>\n",
" <td>4</td>\n",
" <td>t</td>\n",
" <td>f</td>\n",
" <td>2016-08-18</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" <tr>\n",
" <th>965</th>\n",
" <td>128.0</td>\n",
" <td>Surry Hills</td>\n",
" <td>151.212610</td>\n",
" <td>-33.891416</td>\n",
" <td>100.0</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>690.0</td>\n",
" <td>99.0</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>Townhouse</td>\n",
" <td>Entire home/apt</td>\n",
" <td>173</td>\n",
" <td>t</td>\n",
" <td>t</td>\n",
" <td>2014-10-31</td>\n",
" <td>moderate</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8100</th>\n",
" <td>115.0</td>\n",
" <td>Darlinghurst</td>\n",
" <td>151.217882</td>\n",
" <td>-33.874271</td>\n",
" <td>98.0</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>0.0</td>\n",
" <td>30.0</td>\n",
" <td>3</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>12</td>\n",
" <td>f</td>\n",
" <td>f</td>\n",
" <td>2017-04-02</td>\n",
" <td>moderate</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3882</th>\n",
" <td>125.0</td>\n",
" <td>Sydney</td>\n",
" <td>151.204837</td>\n",
" <td>-33.875924</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>150.0</td>\n",
" <td>50.0</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>Other</td>\n",
" <td>Shared room</td>\n",
" <td>363</td>\n",
" <td>f</td>\n",
" <td>f</td>\n",
" <td>2014-12-01</td>\n",
" <td>flexible</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1010</th>\n",
" <td>250.0</td>\n",
" <td>North Bondi</td>\n",
" <td>151.274298</td>\n",
" <td>-33.885652</td>\n",
" <td>100.0</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>0.0</td>\n",
" <td>80.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>363</td>\n",
" <td>t</td>\n",
" <td>f</td>\n",
" <td>2012-09-29</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-38a1fab0-45bc-4013-abe5-2c334d1d2fa5')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-38a1fab0-45bc-4013-abe5-2c334d1d2fa5 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-38a1fab0-45bc-4013-abe5-2c334d1d2fa5');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" price city longitude latitude review_scores_rating \\\n",
"4084 68.0 North Bondi 151.279684 -33.884092 93.0 \n",
"965 128.0 Surry Hills 151.212610 -33.891416 100.0 \n",
"8100 115.0 Darlinghurst 151.217882 -33.874271 98.0 \n",
"3882 125.0 Sydney 151.204837 -33.875924 NaN \n",
"1010 250.0 North Bondi 151.274298 -33.885652 100.0 \n",
"\n",
" number_of_reviews minimum_nights security_deposit cleaning_fee \\\n",
"4084 3 7 150.0 0.0 \n",
"965 4 5 690.0 99.0 \n",
"8100 8 2 0.0 30.0 \n",
"3882 0 2 150.0 50.0 \n",
"1010 4 2 0.0 80.0 \n",
"\n",
" accommodates bathrooms bedrooms beds property_type room_type \\\n",
"4084 2 2.5 1.0 1.0 House Private room \n",
"965 4 1.0 2.0 2.0 Townhouse Entire home/apt \n",
"8100 3 1.0 1.0 1.0 Apartment Entire home/apt \n",
"3882 4 1.0 1.0 3.0 Other Shared room \n",
"1010 2 1.0 1.0 1.0 Apartment Entire home/apt \n",
"\n",
" availability_365 host_identity_verified host_is_superhost host_since \\\n",
"4084 4 t f 2016-08-18 \n",
"965 173 t t 2014-10-31 \n",
"8100 12 f f 2017-04-02 \n",
"3882 363 f f 2014-12-01 \n",
"1010 363 t f 2012-09-29 \n",
"\n",
" cancellation_policy \n",
"4084 strict_14_with_grace_period \n",
"965 moderate \n",
"8100 moderate \n",
"3882 flexible \n",
"1010 strict_14_with_grace_period "
]
},
"metadata": {},
"execution_count": 43
}
],
"source": [
"test_set.head()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "HuKh50cyZXEj"
},
"source": [
"The models that would be used in this project can't read textual data, thus we have to turn text categories into numeric categories. The code below will create city codes, this time for the purpose of statified sampeing.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Z70O8_ZrZXEk"
},
"outputs": [],
"source": [
"from sklearn import preprocessing\n",
"le = preprocessing.LabelEncoder()\n",
"\n",
"for col in [\"city\"]:\n",
" df[col+\"_code\"] = le.fit_transform(df[col])\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "oGpC3nWIZXEk"
},
"outputs": [],
"source": [
"## Similar to above encoding, here we encode binary 1, 0 for t and f.\n",
"\n",
"df[\"host_identity_verified\"] = df[\"host_identity_verified\"].apply(lambda x: 1 if x==\"t\" else 0)\n",
"df[\"host_is_superhost\"] = df[\"host_is_superhost\"].apply(lambda x: 1 if x==\"t\" else 0)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "k9feliBNZXEk"
},
"outputs": [],
"source": [
"from sklearn.model_selection import StratifiedShuffleSplit\n",
"\n",
"## we will stratify according to city\n",
"\n",
"split = StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=42)\n",
"for train_index, test_index in split.split(df, df[\"city_code\"]):\n",
" del df[\"city_code\"]\n",
" strat_train_set = df.loc[train_index]\n",
" strat_test_set = df.loc[test_index]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "0eDCFB1vZXEl",
"outputId": "e2586f3f-dde5-44da-c143-2b990729b610",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"city\n",
"Bondi 198.745223\n",
"Bondi Beach 199.879880\n",
"Coogee 196.574627\n",
"Darlinghurst 184.700000\n",
"Manly 223.447368\n",
"Newtown 117.938776\n",
"North Bondi 248.857143\n",
"Randwick 178.072993\n",
"Surry Hills 175.732240\n",
"Sydney 193.962687\n",
"Name: price, dtype: float64"
]
},
"metadata": {},
"execution_count": 48
}
],
"source": [
"## Average price per area\n",
"strat_test_set.groupby(\"city\")[\"price\"].mean()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "JDojCQEeZXEl"
},
"source": [
"# Discover and visualize the data to gain insights"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "XpoW0SnUZXEl"
},
"outputs": [],
"source": [
"traval = strat_train_set.copy() ##traval - training and validation set"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "a1uLDcx_ZXEl",
"outputId": "a612acfc-1878-4c0d-eee6-6470dfe775ea",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 314
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Saving figure bad_visualization_plot\n"
]
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"traval.plot(kind=\"scatter\", x=\"longitude\", y=\"latitude\")\n",
"save_fig(\"bad_visualization_plot\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "qIV__NDiZXEm",
"outputId": "14170acf-b876-47d4-a231-4f66419a7011",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 314
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Saving figure better_visualization_plot\n"
]
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"traval.plot(kind=\"scatter\", x=\"longitude\", y=\"latitude\", alpha=0.1)\n",
"save_fig(\"better_visualization_plot\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "nUK4fLMkZXEm"
},
"source": [
"The argument `sharex=False` fixes a display bug (the x-axis values and legend were not displayed). This is a temporary fix (see: https://github.com/pandas-dev/pandas/issues/10611). Thanks to Wilmer Arellano for pointing it out."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "LmGs6YM9ZXEm"
},
"outputs": [],
"source": [
"traval_co = traval[(traval[\"longitude\"]>151.16)&(traval[\"latitude\"]<-33.75)].reset_index(drop=True)\n",
"\n",
"traval_co = traval_co[traval_co[\"latitude\"]>-33.95].reset_index(drop=True)\n",
"\n",
"traval_co = traval_co[traval_co[\"price\"]<600].reset_index(drop=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "texzSnfjZXEn",
"outputId": "641d5ded-695c-409b-bf92-94864343ec71",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 530
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Saving figure housing_prices_scatterplot\n"
]
},
{
"output_type": "display_data",
"data": {
"image/png": "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Pnv37uX4449nxYoV9PT0sGbNGj784Q+/fl44nNzN7MILL+SOO+5g2bJl/PGPf+TKK698U70tW7bw8ssvs2LFCiAZjidMmADAkiVLePLJJ1m1ahVXXXUVDz30ENZaTjvtNABOOeUULrnkEj7ykY9w/vnnD/taRERExppYMEiTZmKHRSF2lOjui77tMgG/x02wP/qO6h9cExsKhTjzzDO5/vrrueSSSygsLHx9rexA55xzDldddRXt7e2sW7eOM844403j1lpmzZrFU0899ZbPLl26lNWrV9PY2Mi5557LddddhzGG97///QDceOONPPPMM9x///2ceOKJrFu3jpKSdz67LCIikuk0Ezt8CrGjRH62l95wDJ/HNeQ54VicQNa7e4pVTk4OP/3pTznvvPO48sorqa2t5c477+TDH/4w1lrWr1/PvHnzyMvL46STTuJLX/oSZ599Nm73m++ZnD59Oi0tLTz11FMsXryYaDTK1q1bmTVrFqeddhpXX301S5cuxeVyUVxczAMPPMC1114LJNfhLly4kIULF/Lggw+ye/duhVgRETmmRYNBmjUTOyxDJyYZUadMKaW77/CzrN39UU6ZUvquv2vBggXMnTuX22+/nd///vf8+te/Zt68ecyaNYt77rnn9fMuvPBCbrvtNi688MK31PD5fNx111184xvfYN68ecyfP581a9YAUFNTg7WWpUuXAnDqqadSWFhIUVERAF/72teYM2cOs2fPZsmSJcybN+9dX5OIiEgmMyS32ErHa6wy1r7lKanyLtTV1dm1a9e+6dimTZs4/vjjD/u5UCTGjx7eQixhKcrxvWW8IxTB4zJHZXeCTHAkv5mIiMjRZIxZZ62tc+K7Z0+caP/38svTUnvWd7/r2HWl09hPQxkix+fhsqWT+eWqHeztCJGf7cXvcROOxenuj5Kf5eWypZOPiQArIiJyrIkFg7RpOcGwKBGNIhMKsvnqmdNff2JXsD9KIMvLe2eWv+sndomIiMjo5QkEKNONXcOiVDTK5Pg8LJpS8q72ghUREZHMopnY4VOIHSHWWowxTreREbROW0REjjXeQIBxmokdFoXYEZCVlUVbWxslJSUKsm/DWktbWxtZWVlOtyIiIjJiYsEg7ZqJHRaF2BFQWVnJnj17aGlpcbqVjJCVlUVlZaXTbYiIiIwYg0LZcOn3GgFer5fa2lqn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\n",
"text/plain": [
"<Figure size 720x504 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"traval_co.plot(kind=\"scatter\", x=\"longitude\", y=\"latitude\", alpha=0.5,\n",
" s=traval_co[\"number_of_reviews\"]/2, label=\"Reviews\", figsize=(10,7),\n",
" c=\"price\", cmap=plt.get_cmap(\"jet\"), colorbar=True,\n",
" sharex=False)\n",
"plt.legend()\n",
"save_fig(\"housing_prices_scatterplot\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "R27lovILZXEo"
},
"outputs": [],
"source": [
"corr_matrix = traval.corr()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "jg5vrs2EZXEo",
"outputId": "d86eb393-9f90-43dd-968d-c53fddb1c8bb",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"price 1.000000\n",
"accommodates 0.674368\n",
"bedrooms 0.668963\n",
"beds 0.582378\n",
"bathrooms 0.553773\n",
"cleaning_fee 0.529834\n",
"security_deposit 0.469423\n",
"longitude 0.157902\n",
"availability_365 0.148263\n",
"latitude 0.131160\n",
"review_scores_rating 0.067066\n",
"host_identity_verified 0.048821\n",
"minimum_nights 0.022103\n",
"host_is_superhost -0.016695\n",
"number_of_reviews -0.064011\n",
"Name: price, dtype: float64"
]
},
"metadata": {},
"execution_count": 55
}
],
"source": [
"corr_matrix[\"price\"].sort_values(ascending=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "tHoRs0SuZXEo",
"outputId": "8b3a08fe-0cca-4133-eeb5-6ba59164882f",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 602
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Saving figure scatter_matrix_plot\n"
]
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x576 with 25 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"# from pandas.tools.plotting import scatter_matrix # For older versions of Pandas\n",
"from pandas.plotting import scatter_matrix\n",
"\n",
"attributes = [\"price\", \"accommodates\", \"bedrooms\",\n",
" \"cleaning_fee\",\"review_scores_rating\"]\n",
"scatter_matrix(traval[attributes], figsize=(12, 8))\n",
"save_fig(\"scatter_matrix_plot\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "sv2J8-7PZXEp",
"outputId": "9aeeb3b9-5586-4b47-984a-91d9813870e5",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 314
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Saving figure income_vs_house_value_scatterplot\n"
]
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"traval.plot(kind=\"scatter\", x=\"accommodates\", y=\"price\",\n",
" alpha=0.1)\n",
"save_fig(\"income_vs_house_value_scatterplot\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "PGPu3Zq_ZXEp",
"outputId": "23e932bd-78e4-4958-842b-10e6b393f020",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 357
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-fa214074-a9f7-484d-91da-28af693ae0da\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>price</th>\n",
" <th>city</th>\n",
" <th>longitude</th>\n",
" <th>latitude</th>\n",
" <th>review_scores_rating</th>\n",
" <th>number_of_reviews</th>\n",
" <th>minimum_nights</th>\n",
" <th>security_deposit</th>\n",
" <th>cleaning_fee</th>\n",
" <th>accommodates</th>\n",
" <th>bathrooms</th>\n",
" <th>bedrooms</th>\n",
" <th>beds</th>\n",
" <th>property_type</th>\n",
" <th>room_type</th>\n",
" <th>availability_365</th>\n",
" <th>host_identity_verified</th>\n",
" <th>host_is_superhost</th>\n",
" <th>host_since</th>\n",
" <th>cancellation_policy</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5484</th>\n",
" <td>200.0</td>\n",
" <td>Newtown</td>\n",
" <td>151.178552</td>\n",
" <td>-33.907150</td>\n",
" <td>96.0</td>\n",
" <td>61</td>\n",
" <td>2</td>\n",
" <td>250.0</td>\n",
" <td>85.0</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>House</td>\n",
" <td>Entire home/apt</td>\n",
" <td>127</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2016-01-22</td>\n",
" <td>moderate</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1267</th>\n",
" <td>183.0</td>\n",
" <td>Randwick</td>\n",
" <td>151.249030</td>\n",
" <td>-33.906190</td>\n",
" <td>97.0</td>\n",
" <td>6</td>\n",
" <td>4</td>\n",
" <td>0.0</td>\n",
" <td>20.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2014-03-28</td>\n",
" <td>moderate</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6658</th>\n",
" <td>175.0</td>\n",
" <td>Manly</td>\n",
" <td>151.288491</td>\n",
" <td>-33.802074</td>\n",
" <td>100.0</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0.0</td>\n",
" <td>40.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2014-01-09</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2522</th>\n",
" <td>85.0</td>\n",
" <td>Randwick</td>\n",
" <td>151.236423</td>\n",
" <td>-33.913614</td>\n",
" <td>94.0</td>\n",
" <td>20</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>90</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2015-11-22</td>\n",
" <td>flexible</td>\n",
" </tr>\n",
" <tr>\n",
" <th>722</th>\n",
" <td>80.0</td>\n",
" <td>Coogee</td>\n",
" <td>151.259342</td>\n",
" <td>-33.918435</td>\n",
" <td>92.0</td>\n",
" <td>139</td>\n",
" <td>30</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2014-01-07</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-fa214074-a9f7-484d-91da-28af693ae0da')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-fa214074-a9f7-484d-91da-28af693ae0da button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-fa214074-a9f7-484d-91da-28af693ae0da');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" price city longitude latitude review_scores_rating \\\n",
"5484 200.0 Newtown 151.178552 -33.907150 96.0 \n",
"1267 183.0 Randwick 151.249030 -33.906190 97.0 \n",
"6658 175.0 Manly 151.288491 -33.802074 100.0 \n",
"2522 85.0 Randwick 151.236423 -33.913614 94.0 \n",
"722 80.0 Coogee 151.259342 -33.918435 92.0 \n",
"\n",
" number_of_reviews minimum_nights security_deposit cleaning_fee \\\n",
"5484 61 2 250.0 85.0 \n",
"1267 6 4 0.0 20.0 \n",
"6658 2 2 0.0 40.0 \n",
"2522 20 3 0.0 0.0 \n",
"722 139 30 0.0 0.0 \n",
"\n",
" accommodates bathrooms bedrooms beds property_type room_type \\\n",
"5484 4 1.0 2.0 2.0 House Entire home/apt \n",
"1267 2 1.0 1.0 1.0 Apartment Private room \n",
"6658 2 1.0 1.0 1.0 Apartment Entire home/apt \n",
"2522 2 1.0 1.0 1.0 Apartment Private room \n",
"722 3 1.0 1.0 2.0 Apartment Private room \n",
"\n",
" availability_365 host_identity_verified host_is_superhost host_since \\\n",
"5484 127 1 0 2016-01-22 \n",
"1267 0 1 0 2014-03-28 \n",
"6658 0 1 0 2014-01-09 \n",
"2522 90 0 0 2015-11-22 \n",
"722 0 1 0 2014-01-07 \n",
"\n",
" cancellation_policy \n",
"5484 moderate \n",
"1267 moderate \n",
"6658 strict_14_with_grace_period \n",
"2522 flexible \n",
"722 strict_14_with_grace_period "
]
},
"metadata": {},
"execution_count": 58
}
],
"source": [
"traval.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hcQJ17YIZXEp"
},
"outputs": [],
"source": [
"#### Some Feature Engineering"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "eQMO4aceZXEq"
},
"outputs": [],
"source": [
"traval[\"bedrooms_per_person\"] = traval[\"bedrooms\"]/traval[\"accommodates\"]\n",
"traval[\"bathrooms_per_person\"] = traval[\"bathrooms\"]/traval[\"accommodates\"]\n",
"traval['host_since'] = pd.to_datetime(traval['host_since'])\n",
"traval['days_on_airbnb'] = (pd.to_datetime('today') - traval['host_since']).dt.days"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "i82bqIMTZXEq"
},
"source": [
"# Prepare the data for Machine Learning algorithms"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "f-0iksJhZXEq"
},
"outputs": [],
"source": [
"## Here I will forget about traval and use a more formal way of introducing...\n",
"## ..preprocessin using pipelines"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "-WH9zsrXZXEq"
},
"outputs": [],
"source": [
"X = traval.copy().drop(\"price\", axis=1) # drop labels for training set"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "xaXicvUAZXEr",
"outputId": "6b72ca39-81ed-4729-e66d-06eeb5468967",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 374
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"(5, 22)\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-9659e329-74e6-417e-8071-b58c3bfeca17\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>city</th>\n",
" <th>longitude</th>\n",
" <th>latitude</th>\n",
" <th>review_scores_rating</th>\n",
" <th>number_of_reviews</th>\n",
" <th>minimum_nights</th>\n",
" <th>security_deposit</th>\n",
" <th>cleaning_fee</th>\n",
" <th>accommodates</th>\n",
" <th>bathrooms</th>\n",
" <th>bedrooms</th>\n",
" <th>beds</th>\n",
" <th>property_type</th>\n",
" <th>room_type</th>\n",
" <th>availability_365</th>\n",
" <th>host_identity_verified</th>\n",
" <th>host_is_superhost</th>\n",
" <th>host_since</th>\n",
" <th>cancellation_policy</th>\n",
" <th>bedrooms_per_person</th>\n",
" <th>bathrooms_per_person</th>\n",
" <th>days_on_airbnb</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5594</th>\n",
" <td>Randwick</td>\n",
" <td>151.238806</td>\n",
" <td>-33.913834</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>800.0</td>\n",
" <td>80.0</td>\n",
" <td>6</td>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>House</td>\n",
" <td>Entire home/apt</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2013-11-27</td>\n",
" <td>moderate</td>\n",
" <td>0.500000</td>\n",
" <td>0.166667</td>\n",
" <td>2987.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5439</th>\n",
" <td>Newtown</td>\n",
" <td>151.184469</td>\n",
" <td>-33.894582</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>5000.0</td>\n",
" <td>100.0</td>\n",
" <td>11</td>\n",
" <td>2.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2014-07-16</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>0.272727</td>\n",
" <td>0.181818</td>\n",
" <td>2756.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3847</th>\n",
" <td>Bondi Beach</td>\n",
" <td>151.273077</td>\n",
" <td>-33.895142</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>7</td>\n",
" <td>271.0</td>\n",
" <td>27.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2015-12-07</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>0.500000</td>\n",
" <td>0.500000</td>\n",
" <td>2247.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1312</th>\n",
" <td>Randwick</td>\n",
" <td>151.245793</td>\n",
" <td>-33.920622</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>80.0</td>\n",
" <td>3</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2015-10-02</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>0.666667</td>\n",
" <td>0.333333</td>\n",
" <td>2313.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6194</th>\n",
" <td>Bondi Beach</td>\n",
" <td>151.273411</td>\n",
" <td>-33.888113</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>10</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2015-08-14</td>\n",
" <td>moderate</td>\n",
" <td>0.500000</td>\n",
" <td>0.500000</td>\n",
" <td>2362.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-9659e329-74e6-417e-8071-b58c3bfeca17')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-9659e329-74e6-417e-8071-b58c3bfeca17 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-9659e329-74e6-417e-8071-b58c3bfeca17');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" city longitude latitude review_scores_rating \\\n",
"5594 Randwick 151.238806 -33.913834 NaN \n",
"5439 Newtown 151.184469 -33.894582 NaN \n",
"3847 Bondi Beach 151.273077 -33.895142 NaN \n",
"1312 Randwick 151.245793 -33.920622 NaN \n",
"6194 Bondi Beach 151.273411 -33.888113 NaN \n",
"\n",
" number_of_reviews minimum_nights security_deposit cleaning_fee \\\n",
"5594 0 2 800.0 80.0 \n",
"5439 0 3 5000.0 100.0 \n",
"3847 0 7 271.0 27.0 \n",
"1312 0 3 0.0 80.0 \n",
"6194 0 10 0.0 0.0 \n",
"\n",
" accommodates bathrooms bedrooms beds property_type room_type \\\n",
"5594 6 1.0 3.0 3.0 House Entire home/apt \n",
"5439 11 2.0 3.0 4.0 Apartment Entire home/apt \n",
"3847 2 1.0 1.0 1.0 Apartment Private room \n",
"1312 3 1.0 2.0 2.0 Apartment Entire home/apt \n",
"6194 2 1.0 1.0 1.0 Apartment Private room \n",
"\n",
" availability_365 host_identity_verified host_is_superhost host_since \\\n",
"5594 0 0 0 2013-11-27 \n",
"5439 0 1 0 2014-07-16 \n",
"3847 0 0 0 2015-12-07 \n",
"1312 0 0 0 2015-10-02 \n",
"6194 0 1 0 2015-08-14 \n",
"\n",
" cancellation_policy bedrooms_per_person bathrooms_per_person \\\n",
"5594 moderate 0.500000 0.166667 \n",
"5439 strict_14_with_grace_period 0.272727 0.181818 \n",
"3847 strict_14_with_grace_period 0.500000 0.500000 \n",
"1312 strict_14_with_grace_period 0.666667 0.333333 \n",
"6194 moderate 0.500000 0.500000 \n",
"\n",
" days_on_airbnb \n",
"5594 2987.0 \n",
"5439 2756.0 \n",
"3847 2247.0 \n",
"1312 2313.0 \n",
"6194 2362.0 "
]
},
"metadata": {},
"execution_count": 62
}
],
"source": [
"sample_incomplete_rows = X[X.isnull().any(axis=1)].head()\n",
"print(sample_incomplete_rows.shape)\n",
"sample_incomplete_rows"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "4XwodyVPZXEr",
"outputId": "1855ce10-a079-4a18-e4d9-144b8719433b",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 114
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-23de0ab3-9b09-4b91-9ff6-3408892044a1\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>city</th>\n",
" <th>longitude</th>\n",
" <th>latitude</th>\n",
" <th>review_scores_rating</th>\n",
" <th>number_of_reviews</th>\n",
" <th>minimum_nights</th>\n",
" <th>security_deposit</th>\n",
" <th>cleaning_fee</th>\n",
" <th>accommodates</th>\n",
" <th>bathrooms</th>\n",
" <th>bedrooms</th>\n",
" <th>beds</th>\n",
" <th>property_type</th>\n",
" <th>room_type</th>\n",
" <th>availability_365</th>\n",
" <th>host_identity_verified</th>\n",
" <th>host_is_superhost</th>\n",
" <th>host_since</th>\n",
" <th>cancellation_policy</th>\n",
" <th>bedrooms_per_person</th>\n",
" <th>bathrooms_per_person</th>\n",
" <th>days_on_airbnb</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-23de0ab3-9b09-4b91-9ff6-3408892044a1')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-23de0ab3-9b09-4b91-9ff6-3408892044a1 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-23de0ab3-9b09-4b91-9ff6-3408892044a1');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
"Empty DataFrame\n",
"Columns: [city, longitude, latitude, review_scores_rating, number_of_reviews, minimum_nights, security_deposit, cleaning_fee, accommodates, bathrooms, bedrooms, beds, property_type, room_type, availability_365, host_identity_verified, host_is_superhost, host_since, cancellation_policy, bedrooms_per_person, bathrooms_per_person, days_on_airbnb]\n",
"Index: []"
]
},
"metadata": {},
"execution_count": 63
}
],
"source": [
"# Rows Remove\n",
"sample_incomplete_rows.dropna(subset=[\"review_scores_rating\"]) # option 1"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "eX4eI_xeZXEr",
"outputId": "60560a2f-a9b9-43fb-ee5d-1a3df5b0da23",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 357
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-edfcb2bd-1907-4231-af18-64a4fd2f85f5\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>city</th>\n",
" <th>longitude</th>\n",
" <th>latitude</th>\n",
" <th>number_of_reviews</th>\n",
" <th>minimum_nights</th>\n",
" <th>security_deposit</th>\n",
" <th>cleaning_fee</th>\n",
" <th>accommodates</th>\n",
" <th>bathrooms</th>\n",
" <th>bedrooms</th>\n",
" <th>beds</th>\n",
" <th>property_type</th>\n",
" <th>room_type</th>\n",
" <th>availability_365</th>\n",
" <th>host_identity_verified</th>\n",
" <th>host_is_superhost</th>\n",
" <th>host_since</th>\n",
" <th>cancellation_policy</th>\n",
" <th>bedrooms_per_person</th>\n",
" <th>bathrooms_per_person</th>\n",
" <th>days_on_airbnb</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5594</th>\n",
" <td>Randwick</td>\n",
" <td>151.238806</td>\n",
" <td>-33.913834</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>800.0</td>\n",
" <td>80.0</td>\n",
" <td>6</td>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>House</td>\n",
" <td>Entire home/apt</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2013-11-27</td>\n",
" <td>moderate</td>\n",
" <td>0.500000</td>\n",
" <td>0.166667</td>\n",
" <td>2987.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5439</th>\n",
" <td>Newtown</td>\n",
" <td>151.184469</td>\n",
" <td>-33.894582</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>5000.0</td>\n",
" <td>100.0</td>\n",
" <td>11</td>\n",
" <td>2.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2014-07-16</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>0.272727</td>\n",
" <td>0.181818</td>\n",
" <td>2756.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3847</th>\n",
" <td>Bondi Beach</td>\n",
" <td>151.273077</td>\n",
" <td>-33.895142</td>\n",
" <td>0</td>\n",
" <td>7</td>\n",
" <td>271.0</td>\n",
" <td>27.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2015-12-07</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>0.500000</td>\n",
" <td>0.500000</td>\n",
" <td>2247.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1312</th>\n",
" <td>Randwick</td>\n",
" <td>151.245793</td>\n",
" <td>-33.920622</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>80.0</td>\n",
" <td>3</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2015-10-02</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>0.666667</td>\n",
" <td>0.333333</td>\n",
" <td>2313.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6194</th>\n",
" <td>Bondi Beach</td>\n",
" <td>151.273411</td>\n",
" <td>-33.888113</td>\n",
" <td>0</td>\n",
" <td>10</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2015-08-14</td>\n",
" <td>moderate</td>\n",
" <td>0.500000</td>\n",
" <td>0.500000</td>\n",
" <td>2362.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-edfcb2bd-1907-4231-af18-64a4fd2f85f5')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-edfcb2bd-1907-4231-af18-64a4fd2f85f5 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-edfcb2bd-1907-4231-af18-64a4fd2f85f5');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" city longitude latitude number_of_reviews minimum_nights \\\n",
"5594 Randwick 151.238806 -33.913834 0 2 \n",
"5439 Newtown 151.184469 -33.894582 0 3 \n",
"3847 Bondi Beach 151.273077 -33.895142 0 7 \n",
"1312 Randwick 151.245793 -33.920622 0 3 \n",
"6194 Bondi Beach 151.273411 -33.888113 0 10 \n",
"\n",
" security_deposit cleaning_fee accommodates bathrooms bedrooms beds \\\n",
"5594 800.0 80.0 6 1.0 3.0 3.0 \n",
"5439 5000.0 100.0 11 2.0 3.0 4.0 \n",
"3847 271.0 27.0 2 1.0 1.0 1.0 \n",
"1312 0.0 80.0 3 1.0 2.0 2.0 \n",
"6194 0.0 0.0 2 1.0 1.0 1.0 \n",
"\n",
" property_type room_type availability_365 host_identity_verified \\\n",
"5594 House Entire home/apt 0 0 \n",
"5439 Apartment Entire home/apt 0 1 \n",
"3847 Apartment Private room 0 0 \n",
"1312 Apartment Entire home/apt 0 0 \n",
"6194 Apartment Private room 0 1 \n",
"\n",
" host_is_superhost host_since cancellation_policy \\\n",
"5594 0 2013-11-27 moderate \n",
"5439 0 2014-07-16 strict_14_with_grace_period \n",
"3847 0 2015-12-07 strict_14_with_grace_period \n",
"1312 0 2015-10-02 strict_14_with_grace_period \n",
"6194 0 2015-08-14 moderate \n",
"\n",
" bedrooms_per_person bathrooms_per_person days_on_airbnb \n",
"5594 0.500000 0.166667 2987.0 \n",
"5439 0.272727 0.181818 2756.0 \n",
"3847 0.500000 0.500000 2247.0 \n",
"1312 0.666667 0.333333 2313.0 \n",
"6194 0.500000 0.500000 2362.0 "
]
},
"metadata": {},
"execution_count": 64
}
],
"source": [
"# Columns Remove\n",
"sample_incomplete_rows.drop([\"review_scores_rating\"], axis=1) # option 2"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "oF5OvJd8ZXEr",
"outputId": "b3a0b257-fc93-4a14-fd43-14f007fdadcc",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 357
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-45ff1141-25a2-4a4a-8852-5015a89a4fd2\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>city</th>\n",
" <th>longitude</th>\n",
" <th>latitude</th>\n",
" <th>review_scores_rating</th>\n",
" <th>number_of_reviews</th>\n",
" <th>minimum_nights</th>\n",
" <th>security_deposit</th>\n",
" <th>cleaning_fee</th>\n",
" <th>accommodates</th>\n",
" <th>bathrooms</th>\n",
" <th>bedrooms</th>\n",
" <th>beds</th>\n",
" <th>property_type</th>\n",
" <th>room_type</th>\n",
" <th>availability_365</th>\n",
" <th>host_identity_verified</th>\n",
" <th>host_is_superhost</th>\n",
" <th>host_since</th>\n",
" <th>cancellation_policy</th>\n",
" <th>bedrooms_per_person</th>\n",
" <th>bathrooms_per_person</th>\n",
" <th>days_on_airbnb</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5594</th>\n",
" <td>Randwick</td>\n",
" <td>151.238806</td>\n",
" <td>-33.913834</td>\n",
" <td>96.0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>800.0</td>\n",
" <td>80.0</td>\n",
" <td>6</td>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>House</td>\n",
" <td>Entire home/apt</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2013-11-27</td>\n",
" <td>moderate</td>\n",
" <td>0.500000</td>\n",
" <td>0.166667</td>\n",
" <td>2987.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5439</th>\n",
" <td>Newtown</td>\n",
" <td>151.184469</td>\n",
" <td>-33.894582</td>\n",
" <td>96.0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>5000.0</td>\n",
" <td>100.0</td>\n",
" <td>11</td>\n",
" <td>2.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2014-07-16</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>0.272727</td>\n",
" <td>0.181818</td>\n",
" <td>2756.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3847</th>\n",
" <td>Bondi Beach</td>\n",
" <td>151.273077</td>\n",
" <td>-33.895142</td>\n",
" <td>96.0</td>\n",
" <td>0</td>\n",
" <td>7</td>\n",
" <td>271.0</td>\n",
" <td>27.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2015-12-07</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>0.500000</td>\n",
" <td>0.500000</td>\n",
" <td>2247.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1312</th>\n",
" <td>Randwick</td>\n",
" <td>151.245793</td>\n",
" <td>-33.920622</td>\n",
" <td>96.0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>80.0</td>\n",
" <td>3</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2015-10-02</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>0.666667</td>\n",
" <td>0.333333</td>\n",
" <td>2313.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6194</th>\n",
" <td>Bondi Beach</td>\n",
" <td>151.273411</td>\n",
" <td>-33.888113</td>\n",
" <td>96.0</td>\n",
" <td>0</td>\n",
" <td>10</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2015-08-14</td>\n",
" <td>moderate</td>\n",
" <td>0.500000</td>\n",
" <td>0.500000</td>\n",
" <td>2362.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-45ff1141-25a2-4a4a-8852-5015a89a4fd2')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-45ff1141-25a2-4a4a-8852-5015a89a4fd2 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-45ff1141-25a2-4a4a-8852-5015a89a4fd2');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" city longitude latitude review_scores_rating \\\n",
"5594 Randwick 151.238806 -33.913834 96.0 \n",
"5439 Newtown 151.184469 -33.894582 96.0 \n",
"3847 Bondi Beach 151.273077 -33.895142 96.0 \n",
"1312 Randwick 151.245793 -33.920622 96.0 \n",
"6194 Bondi Beach 151.273411 -33.888113 96.0 \n",
"\n",
" number_of_reviews minimum_nights security_deposit cleaning_fee \\\n",
"5594 0 2 800.0 80.0 \n",
"5439 0 3 5000.0 100.0 \n",
"3847 0 7 271.0 27.0 \n",
"1312 0 3 0.0 80.0 \n",
"6194 0 10 0.0 0.0 \n",
"\n",
" accommodates bathrooms bedrooms beds property_type room_type \\\n",
"5594 6 1.0 3.0 3.0 House Entire home/apt \n",
"5439 11 2.0 3.0 4.0 Apartment Entire home/apt \n",
"3847 2 1.0 1.0 1.0 Apartment Private room \n",
"1312 3 1.0 2.0 2.0 Apartment Entire home/apt \n",
"6194 2 1.0 1.0 1.0 Apartment Private room \n",
"\n",
" availability_365 host_identity_verified host_is_superhost host_since \\\n",
"5594 0 0 0 2013-11-27 \n",
"5439 0 1 0 2014-07-16 \n",
"3847 0 0 0 2015-12-07 \n",
"1312 0 0 0 2015-10-02 \n",
"6194 0 1 0 2015-08-14 \n",
"\n",
" cancellation_policy bedrooms_per_person bathrooms_per_person \\\n",
"5594 moderate 0.500000 0.166667 \n",
"5439 strict_14_with_grace_period 0.272727 0.181818 \n",
"3847 strict_14_with_grace_period 0.500000 0.500000 \n",
"1312 strict_14_with_grace_period 0.666667 0.333333 \n",
"6194 moderate 0.500000 0.500000 \n",
"\n",
" days_on_airbnb \n",
"5594 2987.0 \n",
"5439 2756.0 \n",
"3847 2247.0 \n",
"1312 2313.0 \n",
"6194 2362.0 "
]
},
"metadata": {},
"execution_count": 65
}
],
"source": [
"median = X[\"review_scores_rating\"].median()\n",
"sample_incomplete_rows[\"review_scores_rating\"].fillna(median, inplace=True) # option 3\n",
"\n",
"sample_incomplete_rows"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "LRGC0OEFZXEs"
},
"outputs": [],
"source": [
"from sklearn.impute import SimpleImputer\n",
"imputer = SimpleImputer(missing_values=np.nan, strategy='median')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "CLvExC7xZXEs"
},
"source": [
"Remove the text attribute because median can only be calculated on numerical attributes:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "mG3Tkpj5ZXEs"
},
"outputs": [],
"source": [
"cat_cols = [\"city\",\"cancellation_policy\",\"host_since\",\"room_type\",\"property_type\",\"host_since\"]\n",
"X_num = X.drop(cat_cols, axis=1)\n",
"# alternatively: X_num = X.select_dtypes(include=[int, float])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "EF1i_7GYZXEs",
"outputId": "3c16b362-ecb0-4869-f507-395ede376ab9",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"SimpleImputer(strategy='median')"
]
},
"metadata": {},
"execution_count": 68
}
],
"source": [
"imputer.fit(X_num)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "0HhMdYSwZXEs",
"outputId": "a36bd71d-8cf9-4029-88e7-9a3ce4d61eb0",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([ 1.51259665e+02, -3.38885369e+01, 9.60000000e+01, 3.00000000e+00,\n",
" 3.00000000e+00, 0.00000000e+00, 5.00000000e+01, 2.00000000e+00,\n",
" 1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 4.00000000e+00,\n",
" 1.00000000e+00, 0.00000000e+00, 5.00000000e-01, 5.00000000e-01,\n",
" 2.62700000e+03])"
]
},
"metadata": {},
"execution_count": 69
}
],
"source": [
"imputer.statistics_"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8FHn3TgDZXEt"
},
"source": [
"Check that this is the same as manually computing the median of each attribute:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "d2IXsugRZXEt",
"outputId": "dfab33a4-1119-46d2-efff-368a30652350",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([ 1.51259665e+02, -3.38885369e+01, 9.60000000e+01, 3.00000000e+00,\n",
" 3.00000000e+00, 0.00000000e+00, 5.00000000e+01, 2.00000000e+00,\n",
" 1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 4.00000000e+00,\n",
" 1.00000000e+00, 0.00000000e+00, 5.00000000e-01, 5.00000000e-01,\n",
" 2.62700000e+03])"
]
},
"metadata": {},
"execution_count": 70
}
],
"source": [
"X_num.median().values"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "D-DxnF2LZXEt"
},
"source": [
"Transform the training set:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "mUAqpg8yZXEu"
},
"outputs": [],
"source": [
"X_num_np = imputer.transform(X_num)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "NYr-ylqvZXEu"
},
"outputs": [],
"source": [
"X_num = pd.DataFrame(X_num_np, columns=X_num.columns,\n",
" index = list(X_num.index.values))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Qjt67ohqZXEu",
"outputId": "de8050eb-0a2f-4c9a-ccfc-51466643b2ce",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 270
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-e76ba259-ce98-4f89-a734-01077cdb21e7\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>longitude</th>\n",
" <th>latitude</th>\n",
" <th>review_scores_rating</th>\n",
" <th>number_of_reviews</th>\n",
" <th>minimum_nights</th>\n",
" <th>security_deposit</th>\n",
" <th>cleaning_fee</th>\n",
" <th>accommodates</th>\n",
" <th>bathrooms</th>\n",
" <th>bedrooms</th>\n",
" <th>beds</th>\n",
" <th>availability_365</th>\n",
" <th>host_identity_verified</th>\n",
" <th>host_is_superhost</th>\n",
" <th>bedrooms_per_person</th>\n",
" <th>bathrooms_per_person</th>\n",
" <th>days_on_airbnb</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5594</th>\n",
" <td>151.238806</td>\n",
" <td>-33.913834</td>\n",
" <td>96.0</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>800.0</td>\n",
" <td>80.0</td>\n",
" <td>6.0</td>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.500000</td>\n",
" <td>0.166667</td>\n",
" <td>2987.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5439</th>\n",
" <td>151.184469</td>\n",
" <td>-33.894582</td>\n",
" <td>96.0</td>\n",
" <td>0.0</td>\n",
" <td>3.0</td>\n",
" <td>5000.0</td>\n",
" <td>100.0</td>\n",
" <td>11.0</td>\n",
" <td>2.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.272727</td>\n",
" <td>0.181818</td>\n",
" <td>2756.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3847</th>\n",
" <td>151.273077</td>\n",
" <td>-33.895142</td>\n",
" <td>96.0</td>\n",
" <td>0.0</td>\n",
" <td>7.0</td>\n",
" <td>271.0</td>\n",
" <td>27.0</td>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.500000</td>\n",
" <td>0.500000</td>\n",
" <td>2247.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1312</th>\n",
" <td>151.245793</td>\n",
" <td>-33.920622</td>\n",
" <td>96.0</td>\n",
" <td>0.0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>80.0</td>\n",
" <td>3.0</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.666667</td>\n",
" <td>0.333333</td>\n",
" <td>2313.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6194</th>\n",
" <td>151.273411</td>\n",
" <td>-33.888113</td>\n",
" <td>96.0</td>\n",
" <td>0.0</td>\n",
" <td>10.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.500000</td>\n",
" <td>0.500000</td>\n",
" <td>2362.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-e76ba259-ce98-4f89-a734-01077cdb21e7')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-e76ba259-ce98-4f89-a734-01077cdb21e7 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-e76ba259-ce98-4f89-a734-01077cdb21e7');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" longitude latitude review_scores_rating number_of_reviews \\\n",
"5594 151.238806 -33.913834 96.0 0.0 \n",
"5439 151.184469 -33.894582 96.0 0.0 \n",
"3847 151.273077 -33.895142 96.0 0.0 \n",
"1312 151.245793 -33.920622 96.0 0.0 \n",
"6194 151.273411 -33.888113 96.0 0.0 \n",
"\n",
" minimum_nights security_deposit cleaning_fee accommodates bathrooms \\\n",
"5594 2.0 800.0 80.0 6.0 1.0 \n",
"5439 3.0 5000.0 100.0 11.0 2.0 \n",
"3847 7.0 271.0 27.0 2.0 1.0 \n",
"1312 3.0 0.0 80.0 3.0 1.0 \n",
"6194 10.0 0.0 0.0 2.0 1.0 \n",
"\n",
" bedrooms beds availability_365 host_identity_verified \\\n",
"5594 3.0 3.0 0.0 0.0 \n",
"5439 3.0 4.0 0.0 1.0 \n",
"3847 1.0 1.0 0.0 0.0 \n",
"1312 2.0 2.0 0.0 0.0 \n",
"6194 1.0 1.0 0.0 1.0 \n",
"\n",
" host_is_superhost bedrooms_per_person bathrooms_per_person \\\n",
"5594 0.0 0.500000 0.166667 \n",
"5439 0.0 0.272727 0.181818 \n",
"3847 0.0 0.500000 0.500000 \n",
"1312 0.0 0.666667 0.333333 \n",
"6194 0.0 0.500000 0.500000 \n",
"\n",
" days_on_airbnb \n",
"5594 2987.0 \n",
"5439 2756.0 \n",
"3847 2247.0 \n",
"1312 2313.0 \n",
"6194 2362.0 "
]
},
"metadata": {},
"execution_count": 73
}
],
"source": [
"X_num.loc[sample_incomplete_rows.index.values]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "6pHX0HJTZXEu",
"outputId": "e4224d9b-d221-4620-c121-2583f2a12dec",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 35
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "string"
},
"text/plain": [
"'median'"
]
},
"metadata": {},
"execution_count": 74
}
],
"source": [
"imputer.strategy"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9p6IGSz9ZXEv"
},
"source": [
"Now let's preprocess the categorical input feature, `ocean_proximity`:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "jt18aFVyZXEv",
"outputId": "e60470a4-a8cd-4dec-fcc6-903240be691f",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 363
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-93677505-3490-4d99-b479-31a143e85ba6\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>city</th>\n",
" <th>property_type</th>\n",
" <th>room_type</th>\n",
" <th>cancellation_policy</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5484</th>\n",
" <td>Newtown</td>\n",
" <td>House</td>\n",
" <td>Entire home/apt</td>\n",
" <td>moderate</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1267</th>\n",
" <td>Randwick</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>moderate</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6658</th>\n",
" <td>Manly</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2522</th>\n",
" <td>Randwick</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>flexible</td>\n",
" </tr>\n",
" <tr>\n",
" <th>722</th>\n",
" <td>Coogee</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3150</th>\n",
" <td>Manly</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2865</th>\n",
" <td>Surry Hills</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4906</th>\n",
" <td>Bondi Beach</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" <tr>\n",
" <th>575</th>\n",
" <td>Coogee</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5827</th>\n",
" <td>Newtown</td>\n",
" <td>House</td>\n",
" <td>Private room</td>\n",
" <td>flexible</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-93677505-3490-4d99-b479-31a143e85ba6')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-93677505-3490-4d99-b479-31a143e85ba6 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-93677505-3490-4d99-b479-31a143e85ba6');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" city property_type room_type cancellation_policy\n",
"5484 Newtown House Entire home/apt moderate\n",
"1267 Randwick Apartment Private room moderate\n",
"6658 Manly Apartment Entire home/apt strict_14_with_grace_period\n",
"2522 Randwick Apartment Private room flexible\n",
"722 Coogee Apartment Private room strict_14_with_grace_period\n",
"3150 Manly Apartment Entire home/apt strict_14_with_grace_period\n",
"2865 Surry Hills Apartment Entire home/apt strict_14_with_grace_period\n",
"4906 Bondi Beach Apartment Entire home/apt strict_14_with_grace_period\n",
"575 Coogee Apartment Entire home/apt strict_14_with_grace_period\n",
"5827 Newtown House Private room flexible"
]
},
"metadata": {},
"execution_count": 75
}
],
"source": [
"X_cat = X.select_dtypes(include=[object])\n",
"X_cat.head(10)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "avVCgxAFZXEv"
},
"outputs": [],
"source": [
"from sklearn.preprocessing import OrdinalEncoder"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "H0KRRktvZXEv",
"outputId": "9159236b-b125-41f1-944f-b2148445a1e1",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-ee476872-36dc-462e-ad86-fbe3178db0b1\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>city</th>\n",
" <th>property_type</th>\n",
" <th>room_type</th>\n",
" <th>cancellation_policy</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5484</th>\n",
" <td>Newtown</td>\n",
" <td>House</td>\n",
" <td>Entire home/apt</td>\n",
" <td>moderate</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1267</th>\n",
" <td>Randwick</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>moderate</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6658</th>\n",
" <td>Manly</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2522</th>\n",
" <td>Randwick</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>flexible</td>\n",
" </tr>\n",
" <tr>\n",
" <th>722</th>\n",
" <td>Coogee</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-ee476872-36dc-462e-ad86-fbe3178db0b1')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-ee476872-36dc-462e-ad86-fbe3178db0b1 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-ee476872-36dc-462e-ad86-fbe3178db0b1');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" city property_type room_type cancellation_policy\n",
"5484 Newtown House Entire home/apt moderate\n",
"1267 Randwick Apartment Private room moderate\n",
"6658 Manly Apartment Entire home/apt strict_14_with_grace_period\n",
"2522 Randwick Apartment Private room flexible\n",
"722 Coogee Apartment Private room strict_14_with_grace_period"
]
},
"metadata": {},
"execution_count": 77
}
],
"source": [
"X_cat.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "wBwZIFPrZXEw",
"outputId": "02c74a9d-41ec-4af1-b09a-40743b03a7ca",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[5., 6., 0., 1.],\n",
" [7., 0., 1., 1.],\n",
" [4., 0., 0., 2.],\n",
" [7., 0., 1., 0.],\n",
" [2., 0., 1., 2.],\n",
" [4., 0., 0., 2.],\n",
" [8., 0., 0., 2.],\n",
" [1., 0., 0., 2.],\n",
" [2., 0., 0., 2.],\n",
" [5., 6., 1., 0.]])"
]
},
"metadata": {},
"execution_count": 78
}
],
"source": [
"ordinal_encoder = OrdinalEncoder()\n",
"X_cat_enc = ordinal_encoder.fit_transform(X_cat)\n",
"X_cat_enc[:10]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "iz8WYbg6ZXEx",
"outputId": "c70c5ee5-cbfe-4dce-8a92-f4685b8b0221",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[array(['Bondi', 'Bondi Beach', 'Coogee', 'Darlinghurst', 'Manly',\n",
" 'Newtown', 'North Bondi', 'Randwick', 'Surry Hills', 'Sydney'],\n",
" dtype=object),\n",
" array(['Apartment', 'Bed and breakfast', 'Condominium', 'Guest suite',\n",
" 'Guesthouse', 'Hostel', 'House', 'Loft', 'Other',\n",
" 'Serviced apartment', 'Townhouse', 'Villa'], dtype=object),\n",
" array(['Entire home/apt', 'Private room', 'Shared room'], dtype=object),\n",
" array(['flexible', 'moderate', 'strict_14_with_grace_period',\n",
" 'super_strict_60'], dtype=object)]"
]
},
"metadata": {},
"execution_count": 79
}
],
"source": [
"ordinal_encoder.categories_"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "VTp9-r3LZXEx",
"outputId": "b51e56b8-c245-4fee-889b-1b2c0c33a343",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<6485x29 sparse matrix of type '<class 'numpy.float64'>'\n",
"\twith 25940 stored elements in Compressed Sparse Row format>"
]
},
"metadata": {},
"execution_count": 80
}
],
"source": [
"from sklearn.preprocessing import OneHotEncoder\n",
"\n",
"cat_encoder = OneHotEncoder()\n",
"X_cat_1hot = cat_encoder.fit_transform(X_cat)\n",
"X_cat_1hot"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "FRN0MRzoZXEx"
},
"source": [
"By default, the `OneHotEncoder` class returns a sparse array, but we can convert it to a dense array if needed by calling the `toarray()` method:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ejwzN3QXZXEx",
"outputId": "1cb93388-b58a-4aea-adc6-cf2b91366823",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[0., 0., 0., ..., 1., 0., 0.],\n",
" [0., 0., 0., ..., 1., 0., 0.],\n",
" [0., 0., 0., ..., 0., 1., 0.],\n",
" ...,\n",
" [1., 0., 0., ..., 1., 0., 0.],\n",
" [0., 0., 0., ..., 0., 1., 0.],\n",
" [0., 0., 1., ..., 0., 1., 0.]])"
]
},
"metadata": {},
"execution_count": 81
}
],
"source": [
"X_cat_1hot.toarray()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "GQAIib7XZXEy"
},
"source": [
"Alternatively, you can set `sparse=False` when creating the `OneHotEncoder`:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "UbmeOaTTZXEy",
"outputId": "602cb2ca-5b14-4ef0-eb5a-89b880351fb2",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[0., 0., 0., ..., 1., 0., 0.],\n",
" [0., 0., 0., ..., 1., 0., 0.],\n",
" [0., 0., 0., ..., 0., 1., 0.],\n",
" ...,\n",
" [1., 0., 0., ..., 1., 0., 0.],\n",
" [0., 0., 0., ..., 0., 1., 0.],\n",
" [0., 0., 1., ..., 0., 1., 0.]])"
]
},
"metadata": {},
"execution_count": 83
}
],
"source": [
"cat_encoder = OneHotEncoder(sparse=False)\n",
"X_cat_1hot = cat_encoder.fit_transform(X_cat)\n",
"X_cat_1hot"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "BXYuh9cBZXEy",
"outputId": "a5b5aac6-a296-427f-956d-e046d62bf5bf",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[array(['Bondi', 'Bondi Beach', 'Coogee', 'Darlinghurst', 'Manly',\n",
" 'Newtown', 'North Bondi', 'Randwick', 'Surry Hills', 'Sydney'],\n",
" dtype=object),\n",
" array(['Apartment', 'Bed and breakfast', 'Condominium', 'Guest suite',\n",
" 'Guesthouse', 'Hostel', 'House', 'Loft', 'Other',\n",
" 'Serviced apartment', 'Townhouse', 'Villa'], dtype=object),\n",
" array(['Entire home/apt', 'Private room', 'Shared room'], dtype=object),\n",
" array(['flexible', 'moderate', 'strict_14_with_grace_period',\n",
" 'super_strict_60'], dtype=object)]"
]
},
"metadata": {},
"execution_count": 84
}
],
"source": [
"cat_encoder.categories_"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "R__DyD99ZXEz"
},
"source": [
"Let's create a custom transformer to add extra attributes:"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "6eUaohqrZXEz"
},
"source": [
"#### **Now let's create a pipeline for preprocessing that is built on the techniques we used up and till now and introduce some new pipeline techniques.**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "2lH84PvDZXEz"
},
"outputs": [],
"source": [
"from sklearn.base import BaseEstimator, TransformerMixin\n",
"from datetime import datetime\n",
"numerics = ['int16', 'int32', 'int64', 'float16', 'float32', 'float64']\n",
"\n",
"# Receive numpy array, convert to pandas for features, convert back to array for output.\n",
"\n",
"class CombinedAttributesAdder(BaseEstimator, TransformerMixin):\n",
" def __init__(self, popularity = True, num_cols=[]): # no *args or **kargs\n",
" self.popularity = popularity\n",
" self.num_cols = num_cols\n",
" def fit(self, X, y=None):\n",
" return self # nothing else to do\n",
" def transform(self, X, y=None):\n",
"\n",
" ### Some feature engineering\n",
" X = pd.DataFrame(X, columns=self.num_cols)\n",
" X[\"bedrooms_per_person\"] = X[\"bedrooms\"]/X[\"accommodates\"]\n",
" X[\"bathrooms_per_person\"] = X[\"bathrooms\"]/X[\"accommodates\"]\n",
"\n",
" global feats\n",
" feats = [\"bedrooms_per_person\",\"bathrooms_per_person\"]\n",
"\n",
" if self.popularity:\n",
" X[\"past_and_future_popularity\"]=X[\"number_of_reviews\"]/(X[\"availability_365\"]+1)\n",
" feats.append(\"past_and_future_popularity\")\n",
"\n",
" return X.values\n",
" else:\n",
" return X.values\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "QZN0uWl0ZXEz"
},
"outputs": [],
"source": [
"from sklearn.pipeline import Pipeline\n",
"from sklearn.preprocessing import StandardScaler\n",
"\n",
"X = strat_train_set.copy().drop(\"price\",axis=1)\n",
"Y = strat_train_set[\"price\"]\n",
"\n",
"num_cols = list(X.select_dtypes(include=numerics).columns)\n",
"cat_cols = list(X.select_dtypes(include=[object]).columns)\n",
"\n",
"num_pipeline = Pipeline([\n",
" ('imputer', SimpleImputer(strategy='median')),\n",
" ('attribs_adder', CombinedAttributesAdder(num_cols=num_cols,popularity=True)),\n",
" ('std_scaler', StandardScaler()),\n",
" ])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "iOIWdl0nZXE0"
},
"outputs": [],
"source": [
"from sklearn.compose import ColumnTransformer\n",
"import itertools\n",
"\n",
"\n",
"numerics = ['int16', 'int32', 'int64', 'float16', 'float32', 'float64']\n",
"\n",
"mid_pipeline = ColumnTransformer([\n",
" (\"num\", num_pipeline, num_cols),\n",
" (\"cat\", OneHotEncoder(),cat_cols ),\n",
" ])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "lGYW5ngnZXE1"
},
"outputs": [],
"source": [
"mid_pipeline.fit(X) # this one specifically has to be fitted for the cat names\n",
"cat_encoder = mid_pipeline.named_transformers_[\"cat\"]\n",
"sublists = [list(bas) for bas in cat_encoder.categories_]\n",
"one_cols = list(itertools.chain(*sublists))\n",
"\n",
"## In this class, I will be converting numpy back to pandas\n",
"\n",
"class ToPandasDF(BaseEstimator, TransformerMixin):\n",
" def __init__(self, fit_index = [] ): # no *args or **kargs\n",
" self.fit_index = fit_index\n",
" def fit(self, X_df, y=None):\n",
" return self # nothing else to do\n",
" def transform(self, X_df, y=None):\n",
" global cols\n",
" cols = num_cols.copy()\n",
" cols.extend(feats)\n",
" cols.extend(one_cols) # one in place of cat\n",
" X_df = pd.DataFrame(X_df, columns=cols,index=self.fit_index)\n",
"\n",
" return X_df\n",
"\n",
"def pipe(inds):\n",
" return Pipeline([\n",
" (\"mid\", mid_pipeline),\n",
" (\"PD\", ToPandasDF(inds)),\n",
" ])\n",
"\n",
"params = {\"inds\" : list(X.index)}\n",
"\n",
"X_pr = pipe(**params).fit_transform(X) # Now we have done all the preprocessing instead of\n",
" #.. doing it bit by bit. The pipeline becomes\n",
" #.. extremely handy in the cross-validation step."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "q1NzMdZMZXE2"
},
"source": [
"# Select and train a model"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "PmMUHQUrZXE3",
"outputId": "aaa7e283-6697-4b01-8d2b-55aaed1bbe30",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"LinearRegression()"
]
},
"metadata": {},
"execution_count": 90
}
],
"source": [
"from sklearn.linear_model import LinearRegression\n",
"Y_pr = Y.copy() # just for naming convention, _pr for processed.\n",
"\n",
"lin_reg = LinearRegression()\n",
"lin_reg.fit(X_pr, Y_pr)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Z3Vy7xZrZXE4",
"outputId": "fcd3b708-ba58-4d14-9265-a27dcc0f2187",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Predictions: [213.73373314 41.43930499 159.42015301 51.73470971 57.8647697 ]\n"
]
}
],
"source": [
"# let's try the full preprocessing pipeline on a few training instances\n",
"some_data = X.iloc[:5]\n",
"some_labels = Y.iloc[:5]\n",
"some_data_prepared = pipe(inds=list(some_data.index)).transform(some_data)\n",
"\n",
"print(\"Predictions:\", lin_reg.predict(some_data_prepared))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "kouA5WArZXE4"
},
"source": [
"Compare against the actual values:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "OSu92IcSZXE4",
"outputId": "cd410e9a-02ae-48d1-94e4-7e49dcf8dccf",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Labels: [200.0, 183.0, 175.0, 85.0, 80.0]\n"
]
}
],
"source": [
"print(\"Labels:\", list(some_labels))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "3T4flEmtZXE5"
},
"outputs": [],
"source": [
"## Naturally, these metrics are not that fair, because it is insample.\n",
"## However the first model is linear so overfitting is less likley.\n",
"## We will look at some out of sample validation later on."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "cTdwKQ6QZXE5",
"outputId": "c5824d5e-5305-4175-bee2-69f0e1c2f18f",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"105.96524352798795"
]
},
"metadata": {},
"execution_count": 94
}
],
"source": [
"from sklearn.metrics import mean_squared_error, mean_absolute_error\n",
"\n",
"X_pred = lin_reg.predict(X_pr)\n",
"lin_mse = mean_squared_error(Y, X_pred)\n",
"lin_rmse = np.sqrt(lin_mse)\n",
"lin_rmse"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "cETn4gAkZXE5",
"outputId": "4f420c6e-0f94-483a-a1e4-1801ee6e81eb",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"67.26978406629445"
]
},
"metadata": {},
"execution_count": 95
}
],
"source": [
"from sklearn.metrics import mean_absolute_error\n",
"\n",
"lin_mae = mean_absolute_error(Y, X_pred)\n",
"lin_mae"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ZRK9Iu9oZXE6",
"outputId": "ba5e7dda-8853-4a96-a67a-fd5d5f2751ae",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"DecisionTreeRegressor(random_state=42)"
]
},
"metadata": {},
"execution_count": 96
}
],
"source": [
"from sklearn.tree import DecisionTreeRegressor\n",
"\n",
"tree_reg = DecisionTreeRegressor(random_state=42)\n",
"tree_reg.fit(X_pr, Y)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "vNI9NayEZXE6",
"outputId": "333c2913-c465-4e38-da0d-130d12a8c5c0",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"0.0"
]
},
"metadata": {},
"execution_count": 97
}
],
"source": [
"X_pred = tree_reg.predict(X_pr)\n",
"tree_mse = mean_squared_error(Y, X_pred)\n",
"tree_rmse = np.sqrt(tree_mse)\n",
"tree_rmse ## Model is complex and overfits completely."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "A4PNKzEzZXE6"
},
"source": [
"# Fine-tune your model"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Bsd5tpbMZXE7"
},
"outputs": [],
"source": [
"from sklearn.model_selection import cross_val_score\n",
"\n",
"scores = cross_val_score(DecisionTreeRegressor(random_state=42), X_pr, Y,\n",
" scoring=\"neg_mean_squared_error\", cv=10)\n",
"tree_rmse_scores = np.sqrt(-scores)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "QmwGenEsZXE7",
"outputId": "dfb7cbf9-bf73-4321-d040-0ebe82561ece",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Scores: [156.28105238 124.28821071 134.0732385 128.15088853 139.53568724\n",
" 132.41886055 131.85578893 140.82139989 145.64308755 147.38275838]\n",
"Mean: 138.04509726649928\n",
"Standard deviation: 9.275161339670507\n"
]
}
],
"source": [
"def display_scores(scores):\n",
" print(\"Scores:\", scores)\n",
" print(\"Mean:\", scores.mean())\n",
" print(\"Standard deviation:\", scores.std())\n",
"\n",
"display_scores(tree_rmse_scores)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "dZdAf0FVZXE7",
"outputId": "aea19a7a-0295-4069-ce80-a938d57ccf92",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Scores: [8.49207574 8.14863276 8.16271694 8.23897312 8.05176911 8.1944819\n",
" 8.28255886 8.13214541 8.09775686 8.57665211]\n",
"Mean: 8.237776280571119\n",
"Standard deviation: 0.16196568113321622\n"
]
}
],
"source": [
"lin_scores = cross_val_score(LinearRegression(), X_pr, Y,\n",
" scoring=\"neg_mean_absolute_error\", cv=10)\n",
"lin_rmse_scores = np.sqrt(-lin_scores)\n",
"display_scores(lin_rmse_scores)\n",
"## bad performance, might need some regularisation."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "bQ87leZjZXE7",
"outputId": "a40d7c88-2c46-4ebb-d654-c93831fe0fb5",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"RandomForestRegressor(random_state=42)"
]
},
"metadata": {},
"execution_count": 101
}
],
"source": [
"from sklearn.ensemble import RandomForestRegressor\n",
"\n",
"forest_reg = RandomForestRegressor(random_state=42)\n",
"forest_reg.fit(X_pr, Y)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "i3eHPk_FZXE8",
"outputId": "327da65d-8c97-4116-c19a-56c24cb658f4",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"37.13182906316284"
]
},
"metadata": {},
"execution_count": 103
}
],
"source": [
"X_pred = forest_reg.predict(X_pr)\n",
"forest_mse = mean_squared_error(Y, X_pred)\n",
"forest_rmse = np.sqrt(forest_mse)\n",
"forest_rmse"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "a7WxR5raZXE8",
"outputId": "55e5cb0f-f2cf-45a7-d604-b7b43b968714",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Scores: [100.1462783 99.02900267 90.66372495 95.33295731 94.68716428\n",
" 95.99410459 98.76173054 97.77569275 98.33173491 118.6137359 ]\n",
"Mean: 98.93361262081221\n",
"Standard deviation: 7.060795137979904\n"
]
}
],
"source": [
"#might take 40 seconds\n",
"\n",
"from sklearn.model_selection import cross_val_score\n",
"\n",
"forest_scores = cross_val_score(forest_reg, X_pr, Y,\n",
" scoring=\"neg_mean_squared_error\", cv=10)\n",
"forest_rmse_scores = np.sqrt(-forest_scores)\n",
"display_scores(forest_rmse_scores)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "q-ECZNJ2ZXE8",
"outputId": "9635be4c-0750-42e4-9fda-024deb889f4d",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"count 10.000000\n",
"mean 106.860441\n",
"std 7.980777\n",
"min 101.432398\n",
"25% 102.532852\n",
"50% 103.917220\n",
"75% 106.914584\n",
"max 127.604757\n",
"dtype: float64"
]
},
"metadata": {},
"execution_count": 105
}
],
"source": [
"scores = cross_val_score(lin_reg, X_pr, Y, scoring=\"neg_mean_squared_error\", cv=10)\n",
"pd.Series(np.sqrt(-scores)).describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "XSzo6ZnXZXE9",
"outputId": "e9498960-9511-4802-bae3-00093226fcbe",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"115.17213979847577"
]
},
"metadata": {},
"execution_count": 106
}
],
"source": [
"from sklearn.svm import SVR\n",
"\n",
"svm_reg = SVR(kernel=\"linear\")\n",
"svm_reg.fit( X_pr, Y,)\n",
"X_pred = svm_reg.predict(X_pr)\n",
"svm_mse = mean_squared_error(Y, X_pred)\n",
"svm_rmse = np.sqrt(svm_mse)\n",
"svm_rmse"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "GE_D08IFZXE9",
"outputId": "ca275551-9b10-420f-cba4-269cb06b3ec8",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"GridSearchCV(cv=5, estimator=RandomForestRegressor(random_state=42),\n",
" param_grid=[{'max_features': [2, 4, 6, 8],\n",
" 'n_estimators': [3, 10, 30]},\n",
" {'bootstrap': [False], 'max_features': [2, 3, 4],\n",
" 'n_estimators': [3, 10]}],\n",
" return_train_score=True, scoring='neg_mean_squared_error')"
]
},
"metadata": {},
"execution_count": 107
}
],
"source": [
"## 50 Seconds to run this code block.\n",
"from sklearn.model_selection import GridSearchCV\n",
"\n",
"param_grid = [\n",
" # try 12 (3×4) combinations of hyperparameters\n",
" {'n_estimators': [3, 10, 30], 'max_features': [2, 4, 6, 8]},\n",
" # then try 6 (2×3) combinations with bootstrap set as False\n",
" {'bootstrap': [False], 'n_estimators': [3, 10], 'max_features': [2, 3, 4]},\n",
" ]\n",
"\n",
"forest_reg = RandomForestRegressor(random_state=42)\n",
"# train across 5 folds, that's a total of (12+6)*5=90 rounds of training\n",
"grid_search = GridSearchCV(forest_reg, param_grid, cv=5,\n",
" scoring='neg_mean_squared_error', return_train_score=True)\n",
"grid_search.fit( X_pr, Y)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "2Kkj9tt5ZXE-"
},
"source": [
"The best hyperparameter combination found:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "FOO2uIjyZXE-",
"outputId": "fa8b27bc-68ea-496c-9616-bcbb9a2e2dc6",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"{'max_features': 8, 'n_estimators': 30}"
]
},
"metadata": {},
"execution_count": 108
}
],
"source": [
"grid_search.best_params_"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ETCJEzqeZXE_",
"outputId": "a375ea67-fd86-42d4-eb3b-d50459299b4a",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"RandomForestRegressor(max_features=8, n_estimators=30, random_state=42)"
]
},
"metadata": {},
"execution_count": 109
}
],
"source": [
"grid_search.best_estimator_"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "OxG9iaZ5ZXE_"
},
"source": [
"Let's look at the score of each hyperparameter combination tested during the grid search:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ybvom2NLZXE_",
"outputId": "d9c48476-5c0e-4e3e-91d3-45fb9a5f6014",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"122.39284414100575 {'max_features': 2, 'n_estimators': 3}\n",
"107.52558724072307 {'max_features': 2, 'n_estimators': 10}\n",
"103.24120436817456 {'max_features': 2, 'n_estimators': 30}\n",
"117.01056323911455 {'max_features': 4, 'n_estimators': 3}\n",
"104.52887121598017 {'max_features': 4, 'n_estimators': 10}\n",
"100.54607113831867 {'max_features': 4, 'n_estimators': 30}\n",
"114.82721863582032 {'max_features': 6, 'n_estimators': 3}\n",
"102.40550231127109 {'max_features': 6, 'n_estimators': 10}\n",
"99.29218505733148 {'max_features': 6, 'n_estimators': 30}\n",
"113.39151446263007 {'max_features': 8, 'n_estimators': 3}\n",
"102.32887396868892 {'max_features': 8, 'n_estimators': 10}\n",
"99.00755576481376 {'max_features': 8, 'n_estimators': 30}\n",
"117.6929070419739 {'bootstrap': False, 'max_features': 2, 'n_estimators': 3}\n",
"103.26241827713363 {'bootstrap': False, 'max_features': 2, 'n_estimators': 10}\n",
"119.41447085064425 {'bootstrap': False, 'max_features': 3, 'n_estimators': 3}\n",
"105.63627556700698 {'bootstrap': False, 'max_features': 3, 'n_estimators': 10}\n",
"115.8025113703555 {'bootstrap': False, 'max_features': 4, 'n_estimators': 3}\n",
"103.66218346831528 {'bootstrap': False, 'max_features': 4, 'n_estimators': 10}\n",
"\n",
"Best grid-search performance: 99.00755576481376\n"
]
}
],
"source": [
"cvres = grid_search.cv_results_\n",
"for mean_score, params in zip(cvres[\"mean_test_score\"], cvres[\"params\"]):\n",
" print(np.sqrt(-mean_score), params)\n",
"\n",
"print(\"\")\n",
"print(\"Best grid-search performance: \", np.sqrt(-cvres[\"mean_test_score\"].max()))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "SpbhLoVfZXFA",
"outputId": "84133b91-ba69-41bd-b51f-9f7a4ece78e0",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 530
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-fc8bc834-f406-4caa-9b99-decf5f43d5af\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>mean_fit_time</th>\n",
" <th>std_fit_time</th>\n",
" <th>mean_score_time</th>\n",
" <th>std_score_time</th>\n",
" <th>param_max_features</th>\n",
" <th>param_n_estimators</th>\n",
" <th>param_bootstrap</th>\n",
" <th>params</th>\n",
" <th>split0_test_score</th>\n",
" <th>split1_test_score</th>\n",
" <th>split2_test_score</th>\n",
" <th>split3_test_score</th>\n",
" <th>split4_test_score</th>\n",
" <th>mean_test_score</th>\n",
" <th>std_test_score</th>\n",
" <th>rank_test_score</th>\n",
" <th>split0_train_score</th>\n",
" <th>split1_train_score</th>\n",
" <th>split2_train_score</th>\n",
" <th>split3_train_score</th>\n",
" <th>split4_train_score</th>\n",
" <th>mean_train_score</th>\n",
" <th>std_train_score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.026091</td>\n",
" <td>0.002264</td>\n",
" <td>0.005229</td>\n",
" <td>0.000997</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>NaN</td>\n",
" <td>{'max_features': 2, 'n_estimators': 3}</td>\n",
" <td>-16555.022466</td>\n",
" <td>-13597.055770</td>\n",
" <td>-13638.039236</td>\n",
" <td>-14055.813587</td>\n",
" <td>-17054.110426</td>\n",
" <td>-14980.008297</td>\n",
" <td>1506.661461</td>\n",
" <td>18</td>\n",
" <td>-3758.787383</td>\n",
" <td>-4104.555748</td>\n",
" <td>-4184.716932</td>\n",
" <td>-4050.117879</td>\n",
" <td>-4046.602223</td>\n",
" <td>-4028.956033</td>\n",
" <td>144.032695</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.068738</td>\n",
" <td>0.001743</td>\n",
" <td>0.008437</td>\n",
" <td>0.000537</td>\n",
" <td>2</td>\n",
" <td>10</td>\n",
" <td>NaN</td>\n",
" <td>{'max_features': 2, 'n_estimators': 10}</td>\n",
" <td>-12260.708984</td>\n",
" <td>-9805.314089</td>\n",
" <td>-10820.006739</td>\n",
" <td>-10569.772097</td>\n",
" <td>-14352.957648</td>\n",
" <td>-11561.751911</td>\n",
" <td>1606.154048</td>\n",
" <td>11</td>\n",
" <td>-2159.404627</td>\n",
" <td>-2301.210635</td>\n",
" <td>-2226.197450</td>\n",
" <td>-2135.518113</td>\n",
" <td>-2068.878288</td>\n",
" <td>-2178.241823</td>\n",
" <td>79.450122</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.282132</td>\n",
" <td>0.067924</td>\n",
" <td>0.025084</td>\n",
" <td>0.005109</td>\n",
" <td>2</td>\n",
" <td>30</td>\n",
" <td>NaN</td>\n",
" <td>{'max_features': 2, 'n_estimators': 30}</td>\n",
" <td>-10838.332181</td>\n",
" <td>-9061.133565</td>\n",
" <td>-9598.273290</td>\n",
" <td>-9842.449315</td>\n",
" <td>-13953.543045</td>\n",
" <td>-10658.746279</td>\n",
" <td>1745.350790</td>\n",
" <td>6</td>\n",
" <td>-1742.879858</td>\n",
" <td>-1760.021413</td>\n",
" <td>-1738.622983</td>\n",
" <td>-1670.326953</td>\n",
" <td>-1554.314992</td>\n",
" <td>-1693.233240</td>\n",
" <td>75.906064</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.046774</td>\n",
" <td>0.004537</td>\n",
" <td>0.007873</td>\n",
" <td>0.000975</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>NaN</td>\n",
" <td>{'max_features': 4, 'n_estimators': 3}</td>\n",
" <td>-14263.993918</td>\n",
" <td>-12641.935663</td>\n",
" <td>-13288.890088</td>\n",
" <td>-13525.348068</td>\n",
" <td>-14737.191810</td>\n",
" <td>-13691.471910</td>\n",
" <td>736.546963</td>\n",
" <td>15</td>\n",
" <td>-3554.445408</td>\n",
" <td>-3943.233637</td>\n",
" <td>-3761.036002</td>\n",
" <td>-3538.098711</td>\n",
" <td>-3404.721173</td>\n",
" <td>-3640.306986</td>\n",
" <td>189.557099</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.137139</td>\n",
" <td>0.004381</td>\n",
" <td>0.011503</td>\n",
" <td>0.000295</td>\n",
" <td>4</td>\n",
" <td>10</td>\n",
" <td>NaN</td>\n",
" <td>{'max_features': 4, 'n_estimators': 10}</td>\n",
" <td>-11013.902089</td>\n",
" <td>-9836.500710</td>\n",
" <td>-10254.743855</td>\n",
" <td>-10532.813608</td>\n",
" <td>-12993.464325</td>\n",
" <td>-10926.284918</td>\n",
" <td>1102.209069</td>\n",
" <td>9</td>\n",
" <td>-2085.552922</td>\n",
" <td>-2147.860768</td>\n",
" <td>-2174.949850</td>\n",
" <td>-1951.323770</td>\n",
" <td>-1870.559938</td>\n",
" <td>-2046.049450</td>\n",
" <td>116.885333</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-fc8bc834-f406-4caa-9b99-decf5f43d5af')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-fc8bc834-f406-4caa-9b99-decf5f43d5af button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-fc8bc834-f406-4caa-9b99-decf5f43d5af');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" mean_fit_time std_fit_time mean_score_time std_score_time \\\n",
"0 0.026091 0.002264 0.005229 0.000997 \n",
"1 0.068738 0.001743 0.008437 0.000537 \n",
"2 0.282132 0.067924 0.025084 0.005109 \n",
"3 0.046774 0.004537 0.007873 0.000975 \n",
"4 0.137139 0.004381 0.011503 0.000295 \n",
"\n",
" param_max_features param_n_estimators param_bootstrap \\\n",
"0 2 3 NaN \n",
"1 2 10 NaN \n",
"2 2 30 NaN \n",
"3 4 3 NaN \n",
"4 4 10 NaN \n",
"\n",
" params split0_test_score \\\n",
"0 {'max_features': 2, 'n_estimators': 3} -16555.022466 \n",
"1 {'max_features': 2, 'n_estimators': 10} -12260.708984 \n",
"2 {'max_features': 2, 'n_estimators': 30} -10838.332181 \n",
"3 {'max_features': 4, 'n_estimators': 3} -14263.993918 \n",
"4 {'max_features': 4, 'n_estimators': 10} -11013.902089 \n",
"\n",
" split1_test_score split2_test_score split3_test_score split4_test_score \\\n",
"0 -13597.055770 -13638.039236 -14055.813587 -17054.110426 \n",
"1 -9805.314089 -10820.006739 -10569.772097 -14352.957648 \n",
"2 -9061.133565 -9598.273290 -9842.449315 -13953.543045 \n",
"3 -12641.935663 -13288.890088 -13525.348068 -14737.191810 \n",
"4 -9836.500710 -10254.743855 -10532.813608 -12993.464325 \n",
"\n",
" mean_test_score std_test_score rank_test_score split0_train_score \\\n",
"0 -14980.008297 1506.661461 18 -3758.787383 \n",
"1 -11561.751911 1606.154048 11 -2159.404627 \n",
"2 -10658.746279 1745.350790 6 -1742.879858 \n",
"3 -13691.471910 736.546963 15 -3554.445408 \n",
"4 -10926.284918 1102.209069 9 -2085.552922 \n",
"\n",
" split1_train_score split2_train_score split3_train_score \\\n",
"0 -4104.555748 -4184.716932 -4050.117879 \n",
"1 -2301.210635 -2226.197450 -2135.518113 \n",
"2 -1760.021413 -1738.622983 -1670.326953 \n",
"3 -3943.233637 -3761.036002 -3538.098711 \n",
"4 -2147.860768 -2174.949850 -1951.323770 \n",
"\n",
" split4_train_score mean_train_score std_train_score \n",
"0 -4046.602223 -4028.956033 144.032695 \n",
"1 -2068.878288 -2178.241823 79.450122 \n",
"2 -1554.314992 -1693.233240 75.906064 \n",
"3 -3404.721173 -3640.306986 189.557099 \n",
"4 -1870.559938 -2046.049450 116.885333 "
]
},
"metadata": {},
"execution_count": 111
}
],
"source": [
"# Top five results as presented in a dataframe\n",
"pd.DataFrame(grid_search.cv_results_).head(5)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "UVW3yJYXZXFB",
"outputId": "064d0157-04e7-4816-e35d-c2fccdad0158",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"RandomizedSearchCV(cv=5, estimator=RandomForestRegressor(random_state=42),\n",
" n_iter=5,\n",
" param_distributions={'max_features': <scipy.stats._distn_infrastructure.rv_frozen object at 0x7f0bcda4c190>,\n",
" 'n_estimators': <scipy.stats._distn_infrastructure.rv_frozen object at 0x7f0bcda4c790>},\n",
" random_state=42, scoring='neg_mean_squared_error')"
]
},
"metadata": {},
"execution_count": 112
}
],
"source": [
"from sklearn.model_selection import RandomizedSearchCV\n",
"from scipy.stats import randint\n",
"\n",
"param_distribs = {\n",
" 'n_estimators': randint(low=1, high=200),\n",
" 'max_features': randint(low=1, high=8),\n",
" }\n",
"\n",
"forest_reg = RandomForestRegressor(random_state=42)\n",
"rnd_search = RandomizedSearchCV(forest_reg, param_distributions=param_distribs,\n",
" n_iter=5, cv=5, scoring='neg_mean_squared_error', random_state=42)\n",
"rnd_search.fit( X_pr, Y)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "0Elj0p-3ZXFB",
"outputId": "6eac1ab4-470c-457f-ba65-dd0bd647c05d",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"98.00290801665426 {'max_features': 7, 'n_estimators': 180}\n",
"101.90428852795614 {'max_features': 5, 'n_estimators': 15}\n",
"101.22457105793195 {'max_features': 3, 'n_estimators': 72}\n",
"100.66971697857105 {'max_features': 5, 'n_estimators': 21}\n",
"98.2244904709187 {'max_features': 7, 'n_estimators': 122}\n",
"Best grid-search performance: 98.00290801665426\n"
]
}
],
"source": [
"cvres = rnd_search.cv_results_\n",
"for mean_score, params in zip(cvres[\"mean_test_score\"], cvres[\"params\"]):\n",
" print(np.sqrt(-mean_score), params)\n",
"\n",
"print(\"Best grid-search performance: \", np.sqrt(-cvres[\"mean_test_score\"].max()))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hf382EgvZXFB",
"outputId": "026c55b8-7419-4b2f-cdd4-5150f9a0c5ce",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([5.21516849e-02, 4.26770168e-02, 1.83638010e-02, 2.43596502e-02,\n",
" 2.55534252e-02, 5.27505928e-02, 4.16792757e-02, 1.30305162e-01,\n",
" 9.97171303e-02, 9.72528704e-02, 1.21297875e-01, 3.02257465e-02,\n",
" 6.78430943e-03, 2.03658936e-03, 2.09530971e-02, 4.03208286e-02,\n",
" 2.78096690e-02, 2.73549738e-03, 5.15415355e-03, 1.78486022e-03,\n",
" 2.70978771e-03, 2.97859493e-03, 1.40150013e-03, 5.68502898e-03,\n",
" 2.33712174e-03, 1.58189052e-03, 2.13285259e-03, 1.25708518e-02,\n",
" 1.55850071e-04, 6.47611317e-04, 5.90204089e-05, 7.76555510e-04,\n",
" 5.55735018e-04, 2.24163824e-02, 1.23442982e-04, 5.09695472e-04,\n",
" 1.67304588e-04, 2.14379870e-03, 4.11953985e-04, 4.49042422e-02,\n",
" 3.31642784e-02, 2.71052020e-03, 4.70309008e-03, 4.44714650e-03,\n",
" 6.60464381e-03, 1.87864242e-04])"
]
},
"metadata": {},
"execution_count": 114
}
],
"source": [
"feature_importances = grid_search.best_estimator_.feature_importances_\n",
"feature_importances"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "jND7SmfKZXFC"
},
"outputs": [],
"source": [
"feats = pd.DataFrame()\n",
"feats[\"Name\"] = list(X_pr.columns)\n",
"feats[\"Score\"] = feature_importances"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "LXbIqFlvZXFC",
"outputId": "f7d35e0f-55f0-4da5-c7c1-80cc65335fbb",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 676
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-1ae2b63e-67ef-49db-b9cb-c0e9e7974afc\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Name</th>\n",
" <th>Score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>accommodates</td>\n",
" <td>0.13031</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>beds</td>\n",
" <td>0.12130</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>bathrooms</td>\n",
" <td>0.09972</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>bedrooms</td>\n",
" <td>0.09725</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>security_deposit</td>\n",
" <td>0.05275</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>longitude</td>\n",
" <td>0.05215</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>Entire home/apt</td>\n",
" <td>0.04490</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>latitude</td>\n",
" <td>0.04268</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>cleaning_fee</td>\n",
" <td>0.04168</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>bathrooms_per_person</td>\n",
" <td>0.04032</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>Private room</td>\n",
" <td>0.03316</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>availability_365</td>\n",
" <td>0.03023</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>past_and_future_popularity</td>\n",
" <td>0.02781</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>minimum_nights</td>\n",
" <td>0.02555</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>number_of_reviews</td>\n",
" <td>0.02436</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>House</td>\n",
" <td>0.02242</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>bedrooms_per_person</td>\n",
" <td>0.02095</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>review_scores_rating</td>\n",
" <td>0.01836</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>Apartment</td>\n",
" <td>0.01257</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>host_identity_verified</td>\n",
" <td>0.00678</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-1ae2b63e-67ef-49db-b9cb-c0e9e7974afc')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-1ae2b63e-67ef-49db-b9cb-c0e9e7974afc button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-1ae2b63e-67ef-49db-b9cb-c0e9e7974afc');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" Name Score\n",
"7 accommodates 0.13031\n",
"10 beds 0.12130\n",
"8 bathrooms 0.09972\n",
"9 bedrooms 0.09725\n",
"5 security_deposit 0.05275\n",
"0 longitude 0.05215\n",
"39 Entire home/apt 0.04490\n",
"1 latitude 0.04268\n",
"6 cleaning_fee 0.04168\n",
"15 bathrooms_per_person 0.04032\n",
"40 Private room 0.03316\n",
"11 availability_365 0.03023\n",
"16 past_and_future_popularity 0.02781\n",
"4 minimum_nights 0.02555\n",
"3 number_of_reviews 0.02436\n",
"33 House 0.02242\n",
"14 bedrooms_per_person 0.02095\n",
"2 review_scores_rating 0.01836\n",
"27 Apartment 0.01257\n",
"12 host_identity_verified 0.00678"
]
},
"metadata": {},
"execution_count": 116
}
],
"source": [
"feats.sort_values(\"Score\",ascending=False).round(5).head(20)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "WMCMhuiSZXFC",
"outputId": "f415c157-0408-4572-feb6-b382cb989743",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 357
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-f212cb2d-461d-48bd-988c-f0d024eef577\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>price</th>\n",
" <th>city</th>\n",
" <th>longitude</th>\n",
" <th>latitude</th>\n",
" <th>review_scores_rating</th>\n",
" <th>number_of_reviews</th>\n",
" <th>minimum_nights</th>\n",
" <th>security_deposit</th>\n",
" <th>cleaning_fee</th>\n",
" <th>accommodates</th>\n",
" <th>bathrooms</th>\n",
" <th>bedrooms</th>\n",
" <th>beds</th>\n",
" <th>property_type</th>\n",
" <th>room_type</th>\n",
" <th>availability_365</th>\n",
" <th>host_identity_verified</th>\n",
" <th>host_is_superhost</th>\n",
" <th>host_since</th>\n",
" <th>cancellation_policy</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1098</th>\n",
" <td>110.0</td>\n",
" <td>Darlinghurst</td>\n",
" <td>151.219597</td>\n",
" <td>-33.876213</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>250.0</td>\n",
" <td>50.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2014-07-16</td>\n",
" <td>moderate</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4811</th>\n",
" <td>225.0</td>\n",
" <td>Manly</td>\n",
" <td>151.288501</td>\n",
" <td>-33.806436</td>\n",
" <td>100.0</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>750.0</td>\n",
" <td>219.0</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2012-09-18</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3678</th>\n",
" <td>91.0</td>\n",
" <td>Bondi Beach</td>\n",
" <td>151.277634</td>\n",
" <td>-33.888887</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>200.0</td>\n",
" <td>25.0</td>\n",
" <td>1</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2013-10-14</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2982</th>\n",
" <td>45.0</td>\n",
" <td>Bondi Beach</td>\n",
" <td>151.281182</td>\n",
" <td>-33.889755</td>\n",
" <td>84.0</td>\n",
" <td>25</td>\n",
" <td>7</td>\n",
" <td>400.0</td>\n",
" <td>50.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Other</td>\n",
" <td>Private room</td>\n",
" <td>361</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2015-05-07</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5140</th>\n",
" <td>115.0</td>\n",
" <td>Manly</td>\n",
" <td>151.282273</td>\n",
" <td>-33.793341</td>\n",
" <td>100.0</td>\n",
" <td>14</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>House</td>\n",
" <td>Private room</td>\n",
" <td>19</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2016-10-22</td>\n",
" <td>moderate</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-f212cb2d-461d-48bd-988c-f0d024eef577')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-f212cb2d-461d-48bd-988c-f0d024eef577 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-f212cb2d-461d-48bd-988c-f0d024eef577');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" price city longitude latitude review_scores_rating \\\n",
"1098 110.0 Darlinghurst 151.219597 -33.876213 NaN \n",
"4811 225.0 Manly 151.288501 -33.806436 100.0 \n",
"3678 91.0 Bondi Beach 151.277634 -33.888887 NaN \n",
"2982 45.0 Bondi Beach 151.281182 -33.889755 84.0 \n",
"5140 115.0 Manly 151.282273 -33.793341 100.0 \n",
"\n",
" number_of_reviews minimum_nights security_deposit cleaning_fee \\\n",
"1098 0 2 250.0 50.0 \n",
"4811 1 3 750.0 219.0 \n",
"3678 0 3 200.0 25.0 \n",
"2982 25 7 400.0 50.0 \n",
"5140 14 1 0.0 0.0 \n",
"\n",
" accommodates bathrooms bedrooms beds property_type room_type \\\n",
"1098 2 1.0 1.0 1.0 Apartment Entire home/apt \n",
"4811 4 1.0 2.0 2.0 Apartment Entire home/apt \n",
"3678 1 1.0 1.0 1.0 Apartment Private room \n",
"2982 2 1.0 1.0 1.0 Other Private room \n",
"5140 2 1.0 1.0 1.0 House Private room \n",
"\n",
" availability_365 host_identity_verified host_is_superhost host_since \\\n",
"1098 0 0 0 2014-07-16 \n",
"4811 0 0 0 2012-09-18 \n",
"3678 0 1 0 2013-10-14 \n",
"2982 361 1 0 2015-05-07 \n",
"5140 19 1 0 2016-10-22 \n",
"\n",
" cancellation_policy \n",
"1098 moderate \n",
"4811 strict_14_with_grace_period \n",
"3678 strict_14_with_grace_period \n",
"2982 strict_14_with_grace_period \n",
"5140 moderate "
]
},
"metadata": {},
"execution_count": 117
}
],
"source": [
"strat_test_set.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "RnZVVxx6ZXFC"
},
"outputs": [],
"source": [
"### Now we can test the out of sample performance.\n",
"\n",
"final_model = grid_search.best_estimator_\n",
"\n",
"X_test = strat_test_set.drop(\"price\", axis=1)\n",
"y_test = strat_test_set[\"price\"].copy()\n",
"\n",
"X_test_prepared = pipe(list(X_test.index)).transform(X_test)\n",
"final_predictions = final_model.predict(X_test_prepared)\n",
"\n",
"final_mse = mean_squared_error(y_test, final_predictions)\n",
"final_rmse = np.sqrt(final_mse)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "D-wE7tl0ZXFD",
"outputId": "fbad4694-777e-49d8-b761-5b3259233a1c",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"96.41999111314205"
]
},
"metadata": {},
"execution_count": 119
}
],
"source": [
"final_rmse"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "oBs0b4fpZXFD"
},
"outputs": [],
"source": [
"final_mae = mean_absolute_error(y_test, final_predictions)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Yx0NPbruZXFD",
"outputId": "d996d802-41cf-4f6c-9647-0b9581d6eef0",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"58.29936292642828"
]
},
"metadata": {},
"execution_count": 121
}
],
"source": [
"final_mae ## not too bad"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "0imyjZlhZXFE"
},
"outputs": [],
"source": [
"## Value Estimation for Client"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "tvUezT8LZXFE"
},
"outputs": [],
"source": [
"df_client = pd.DataFrame.from_dict(dict_client, orient='index').T"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "s2SRq3CbZXFE",
"outputId": "9dca0441-b013-40d5-b6cb-332dc478d707",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 162
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-df048ef0-bf1d-4fa9-805b-ba89e6550ce2\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>city</th>\n",
" <th>longitude</th>\n",
" <th>latitude</th>\n",
" <th>review_scores_rating</th>\n",
" <th>number_of_reviews</th>\n",
" <th>minimum_nights</th>\n",
" <th>accommodates</th>\n",
" <th>bathrooms</th>\n",
" <th>bedrooms</th>\n",
" <th>beds</th>\n",
" <th>security_deposit</th>\n",
" <th>cleaning_fee</th>\n",
" <th>property_type</th>\n",
" <th>room_type</th>\n",
" <th>availability_365</th>\n",
" <th>host_identity_verified</th>\n",
" <th>host_is_superhost</th>\n",
" <th>cancellation_policy</th>\n",
" <th>host_since</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Bondi Beach</td>\n",
" <td>151.275</td>\n",
" <td>-33.8891</td>\n",
" <td>95</td>\n",
" <td>53</td>\n",
" <td>4</td>\n",
" <td>10</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>1500</td>\n",
" <td>370</td>\n",
" <td>House</td>\n",
" <td>Entire home/apt</td>\n",
" <td>255</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" <td>2010-01-08</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-df048ef0-bf1d-4fa9-805b-ba89e6550ce2')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-df048ef0-bf1d-4fa9-805b-ba89e6550ce2 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-df048ef0-bf1d-4fa9-805b-ba89e6550ce2');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" city longitude latitude review_scores_rating number_of_reviews \\\n",
"0 Bondi Beach 151.275 -33.8891 95 53 \n",
"\n",
" minimum_nights accommodates bathrooms bedrooms beds security_deposit \\\n",
"0 4 10 3 5 7 1500 \n",
"\n",
" cleaning_fee property_type room_type availability_365 \\\n",
"0 370 House Entire home/apt 255 \n",
"\n",
" host_identity_verified host_is_superhost cancellation_policy \\\n",
"0 1 1 strict_14_with_grace_period \n",
"\n",
" host_since \n",
"0 2010-01-08 "
]
},
"metadata": {},
"execution_count": 123
}
],
"source": [
"df_client"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "LJlvhehKZXFE"
},
"outputs": [],
"source": [
"df_client = pipe(list(df_client.index)).transform(df_client)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "M57QpQ6QZXFF"
},
"outputs": [],
"source": [
"client_pred = final_model.predict(df_client)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "EqfZb-JHZXFF",
"outputId": "9478826f-76c7-4139-d943-a5fdc6daa392",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"\u001b[1;31m648.5666666666667\u001b[0m\n",
"\u001b[1;31m-500\u001b[0m\n",
"\u001b[1;31m= 148.56666666666672\u001b[0m\n"
]
}
],
"source": [
"### Client should be charging about $150 more.\n",
"print('\\x1b[1;31m'+str(client_pred[0])+'\\x1b[0m')\n",
"print('\\x1b[1;31m'+str(-500)+'\\x1b[0m')\n",
"print('\\x1b[1;31m'+\"= \"+str(client_pred[0]-500)+'\\x1b[0m')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "4Pk0__NRZXFF"
},
"source": [
"#### We can compute a crude 95% confidence interval for the test RMSE:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "vY9kd2GXZXFF"
},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "bSQ2bTtyZXFG",
"outputId": "cec56fd2-f99b-4085-edf8-92e8e36bd3a3",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"22.0"
]
},
"metadata": {},
"execution_count": 128
}
],
"source": [
"y_test.min()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "4HmHsc9ZZXFG",
"outputId": "902f5cea-d795-4964-8679-b1be0ff3588a",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"MSE Interval: [ 86.99451312 105.0027812 ]\n"
]
}
],
"source": [
"## This calculates the RMSE confidence interval\n",
"\n",
"confidence = 0.95\n",
"squared_errors = (final_predictions - y_test) ** 2\n",
"mean = squared_errors.mean()\n",
"m = len(squared_errors)\n",
"\n",
"## MSE\n",
"MSE_int = np.sqrt(stats.t.interval(confidence, m - 1,\n",
" loc=np.mean(squared_errors),\n",
" scale=stats.sem(squared_errors)))\n",
"\n",
"print(\"MSE Interval: \", MSE_int)\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "HxLsGqt0ZXFG"
},
"source": [
"We could also compute the interval manually like this:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "tIK_sxZKZXFG",
"outputId": "47413b2b-57c7-403b-baab-a040035e06a4",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(86.99451311678477, 105.00278120169172)"
]
},
"metadata": {},
"execution_count": 130
}
],
"source": [
"tscore = stats.t.ppf((1 + confidence) / 2, df=m - 1)\n",
"tmargin = tscore * squared_errors.std(ddof=1) / np.sqrt(m)\n",
"np.sqrt(mean - tmargin), np.sqrt(mean + tmargin)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "F1XBucP5ZXFG"
},
"source": [
"Alternatively, we could use a z-scores rather than t-scores:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "_Eps1ZorZXFG",
"outputId": "43fa3750-36ae-475d-cd1a-b05820688585",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(87.0019317577372, 104.99663443624668)"
]
},
"metadata": {},
"execution_count": 131
}
],
"source": [
"zscore = stats.norm.ppf((1 + confidence) / 2)\n",
"zmargin = zscore * squared_errors.std(ddof=1) / np.sqrt(m)\n",
"np.sqrt(mean - zmargin), np.sqrt(mean + zmargin)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Jh82mE0JZXFH",
"outputId": "1800971c-e198-451f-926f-dbf3828e3837",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"MAE Interval: (54.55796996620988, 62.040755886646565)\n"
]
}
],
"source": [
"####### What about for MAE\n",
"\n",
"absolute_errors = (final_predictions - y_test).abs()\n",
"mean = absolute_errors.mean()\n",
"m = len(absolute_errors)\n",
"\n",
"MAE_int = stats.t.interval(confidence, m - 1,\n",
" loc=np.mean(absolute_errors),\n",
" scale=stats.sem(absolute_errors))\n",
"\n",
"print(\"MAE Interval: \", MAE_int)\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "xSyJvcfxZXFH"
},
"source": [
"# Extra material"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "0me0PggXZXFH"
},
"source": [
"## You can also include the parameter optimisation in a pipline"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "X4P6k25XZXFH",
"outputId": "5e549c56-cfff-4af4-d633-1028353009e3",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 357
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-161c4797-35e5-4ceb-bdec-daea3ebdf05a\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>city</th>\n",
" <th>longitude</th>\n",
" <th>latitude</th>\n",
" <th>review_scores_rating</th>\n",
" <th>number_of_reviews</th>\n",
" <th>minimum_nights</th>\n",
" <th>security_deposit</th>\n",
" <th>cleaning_fee</th>\n",
" <th>accommodates</th>\n",
" <th>bathrooms</th>\n",
" <th>bedrooms</th>\n",
" <th>beds</th>\n",
" <th>property_type</th>\n",
" <th>room_type</th>\n",
" <th>availability_365</th>\n",
" <th>host_identity_verified</th>\n",
" <th>host_is_superhost</th>\n",
" <th>host_since</th>\n",
" <th>cancellation_policy</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5484</th>\n",
" <td>Newtown</td>\n",
" <td>151.178552</td>\n",
" <td>-33.907150</td>\n",
" <td>96.0</td>\n",
" <td>61</td>\n",
" <td>2</td>\n",
" <td>250.0</td>\n",
" <td>85.0</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>House</td>\n",
" <td>Entire home/apt</td>\n",
" <td>127</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2016-01-22</td>\n",
" <td>moderate</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1267</th>\n",
" <td>Randwick</td>\n",
" <td>151.249030</td>\n",
" <td>-33.906190</td>\n",
" <td>97.0</td>\n",
" <td>6</td>\n",
" <td>4</td>\n",
" <td>0.0</td>\n",
" <td>20.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2014-03-28</td>\n",
" <td>moderate</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6658</th>\n",
" <td>Manly</td>\n",
" <td>151.288491</td>\n",
" <td>-33.802074</td>\n",
" <td>100.0</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0.0</td>\n",
" <td>40.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Entire home/apt</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2014-01-09</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2522</th>\n",
" <td>Randwick</td>\n",
" <td>151.236423</td>\n",
" <td>-33.913614</td>\n",
" <td>94.0</td>\n",
" <td>20</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>90</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2015-11-22</td>\n",
" <td>flexible</td>\n",
" </tr>\n",
" <tr>\n",
" <th>722</th>\n",
" <td>Coogee</td>\n",
" <td>151.259342</td>\n",
" <td>-33.918435</td>\n",
" <td>92.0</td>\n",
" <td>139</td>\n",
" <td>30</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>Apartment</td>\n",
" <td>Private room</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2014-01-07</td>\n",
" <td>strict_14_with_grace_period</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-161c4797-35e5-4ceb-bdec-daea3ebdf05a')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-161c4797-35e5-4ceb-bdec-daea3ebdf05a button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-161c4797-35e5-4ceb-bdec-daea3ebdf05a');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" city longitude latitude review_scores_rating \\\n",
"5484 Newtown 151.178552 -33.907150 96.0 \n",
"1267 Randwick 151.249030 -33.906190 97.0 \n",
"6658 Manly 151.288491 -33.802074 100.0 \n",
"2522 Randwick 151.236423 -33.913614 94.0 \n",
"722 Coogee 151.259342 -33.918435 92.0 \n",
"\n",
" number_of_reviews minimum_nights security_deposit cleaning_fee \\\n",
"5484 61 2 250.0 85.0 \n",
"1267 6 4 0.0 20.0 \n",
"6658 2 2 0.0 40.0 \n",
"2522 20 3 0.0 0.0 \n",
"722 139 30 0.0 0.0 \n",
"\n",
" accommodates bathrooms bedrooms beds property_type room_type \\\n",
"5484 4 1.0 2.0 2.0 House Entire home/apt \n",
"1267 2 1.0 1.0 1.0 Apartment Private room \n",
"6658 2 1.0 1.0 1.0 Apartment Entire home/apt \n",
"2522 2 1.0 1.0 1.0 Apartment Private room \n",
"722 3 1.0 1.0 2.0 Apartment Private room \n",
"\n",
" availability_365 host_identity_verified host_is_superhost host_since \\\n",
"5484 127 1 0 2016-01-22 \n",
"1267 0 1 0 2014-03-28 \n",
"6658 0 1 0 2014-01-09 \n",
"2522 90 0 0 2015-11-22 \n",
"722 0 1 0 2014-01-07 \n",
"\n",
" cancellation_policy \n",
"5484 moderate \n",
"1267 moderate \n",
"6658 strict_14_with_grace_period \n",
"2522 flexible \n",
"722 strict_14_with_grace_period "
]
},
"metadata": {},
"execution_count": 133
}
],
"source": [
"X.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ApZFzmykZXFH",
"outputId": "71240bbe-ee31-4e5f-a275-58b6405fa6d7",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"5484 200.0\n",
"1267 183.0\n",
"6658 175.0\n",
"2522 85.0\n",
"722 80.0\n",
"Name: price, dtype: float64"
]
},
"metadata": {},
"execution_count": 134
}
],
"source": [
"Y.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "MilKfoaeZXFI"
},
"outputs": [],
"source": [
"from sklearn.model_selection import RandomizedSearchCV\n",
"from scipy.stats import randint\n",
"\n",
"class Optimise(BaseEstimator, TransformerMixin):\n",
" def __init__(self, Y=[] ): # no *args or **kargs\n",
" self.Y = Y\n",
" def fit(self, X_df, y=None):\n",
" return self # nothing else to do\n",
" def transform(self, X_df, y=None):\n",
" param_distribs = {\n",
" 'n_estimators': randint(low=1, high=200),\n",
" 'max_features': randint(low=1, high=8),\n",
" }\n",
"\n",
" forest_reg = RandomForestRegressor(random_state=42)\n",
" rnd_search = RandomizedSearchCV(forest_reg, param_distributions=param_distribs,\n",
" n_iter=5, cv=5, scoring='neg_mean_squared_error', random_state=42)\n",
"\n",
" rnd_search.fit(X_df, self.Y)\n",
"\n",
" return rnd_search.best_estimator_\n",
"\n",
"def pipe_full(inds, Y):\n",
" return Pipeline([\n",
" (\"first\", pipe(inds)),\n",
" (\"opt\", Optimise(Y)),\n",
" ])\n",
"\n",
"params = {\"inds\" : list(X.index),\"Y\" : Y}\n",
"\n",
"modell = pipe_full(**params).fit_transform(X) # Now we have done all the preprocessing instead of\n",
" #.. doing it bit by bit. The pipeline becomes\n",
" #.. extremely handy in the cross-validation step.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "o8QfCuirZXFI"
},
"outputs": [],
"source": [
"X_test_prepared = pipe(list(X_test.index)).transform(X_test)\n",
"X_pred = modell.predict(X_test_prepared)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "K_YsHpVGZXFJ",
"outputId": "17d2a74d-f878-41a3-988c-804680e1fcf6",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([142.5 , 268.67222222, 78.78888889, 67.51666667,\n",
" 93.05 , 119.42222222, 65.49444444, 189.74444444,\n",
" 113.12222222, 287.10555556])"
]
},
"metadata": {},
"execution_count": 137
}
],
"source": [
"X_pred[:10]"
]
}
],
"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.6.3"
},
"nav_menu": {
"height": "279px",
"width": "309px"
},
"toc": {
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"toc_cell": false,
"toc_position": {},
"toc_section_display": "block",
"toc_window_display": false
},
"colab": {
"name": "AirBnB Valuation.ipynb",
"provenance": [],
"include_colab_link": true
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment