Skip to content

Instantly share code, notes, and snippets.

@waitingfy
Created June 24, 2018 10:25
Show Gist options
  • Save waitingfy/d37356cfcb26956a8d8b02c3f5f7c6be to your computer and use it in GitHub Desktop.
Save waitingfy/d37356cfcb26956a8d8b02c3f5f7c6be to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import graphlab"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"This non-commercial license of GraphLab Create for academic use is assigned to waitingfy.com@gmail.com and will expire on June 23, 2019.\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"[INFO] graphlab.cython.cy_server: GraphLab Create v2.1 started. Logging: /tmp/graphlab_server_1529834992.log\n"
]
}
],
"source": [
"sales = graphlab.SFrame('home_data.gl/')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\"><table frame=\"box\" rules=\"cols\">\n",
" <tr>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">id</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">date</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">price</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">bedrooms</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">bathrooms</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_living</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_lot</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">floors</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">waterfront</th>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">7129300520</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2014-10-13 00:00:00+00:00</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">221900</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1180</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">5650</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">6414100192</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2014-12-09 00:00:00+00:00</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">538000</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2.25</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2570</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">7242</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">5631500400</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2015-02-25 00:00:00+00:00</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">180000</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">770</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">10000</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2487200875</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2014-12-09 00:00:00+00:00</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">604000</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">4</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1960</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">5000</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1954400510</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2015-02-18 00:00:00+00:00</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">510000</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1680</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">8080</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">7237550310</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2014-05-12 00:00:00+00:00</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1225000</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">4</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">4.5</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">5420</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">101930</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1321400060</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2014-06-27 00:00:00+00:00</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">257500</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2.25</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1715</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">6819</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2008000270</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2015-01-15 00:00:00+00:00</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">291850</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1.5</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1060</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">9711</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2414600126</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2015-04-15 00:00:00+00:00</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">229500</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1780</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">7470</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3793500160</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2015-03-12 00:00:00+00:00</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">323000</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2.5</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1890</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">6560</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" </tr>\n",
"</table>\n",
"<table frame=\"box\" rules=\"cols\">\n",
" <tr>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">view</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">condition</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">grade</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_above</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_basement</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">yr_built</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">yr_renovated</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">zipcode</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">lat</th>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">7</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1180</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1955</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">98178</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">47.51123398</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">7</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2170</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">400</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1951</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1991</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">98125</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">47.72102274</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">6</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">770</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1933</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">98028</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">47.73792661</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">5</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">7</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1050</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">910</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1965</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">98136</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">47.52082</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">8</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1680</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1987</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">98074</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">47.61681228</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">11</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3890</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1530</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2001</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">98053</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">47.65611835</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">7</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1715</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1995</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">98003</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">47.30972002</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">7</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1060</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1963</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">98198</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">47.40949984</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">7</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1050</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">730</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1960</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">98146</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">47.51229381</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">7</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1890</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2003</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">98038</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">47.36840673</td>\n",
" </tr>\n",
"</table>\n",
"<table frame=\"box\" rules=\"cols\">\n",
" <tr>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">long</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_living15</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_lot15</th>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">-122.25677536</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1340.0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">5650.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">-122.3188624</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1690.0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">7639.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">-122.23319601</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2720.0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">8062.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">-122.39318505</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1360.0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">5000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">-122.04490059</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1800.0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">7503.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">-122.00528655</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">4760.0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">101930.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">-122.32704857</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2238.0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">6819.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">-122.31457273</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1650.0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">9711.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">-122.33659507</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1780.0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">8113.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">-122.0308176</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2390.0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">7570.0</td>\n",
" </tr>\n",
"</table>\n",
"[21613 rows x 21 columns]<br/>Note: Only the head of the SFrame is printed.<br/>You can use print_rows(num_rows=m, num_columns=n) to print more rows and columns.\n",
"</div>"
],
"text/plain": [
"Columns:\n",
"\tid\tstr\n",
"\tdate\tdatetime\n",
"\tprice\tint\n",
"\tbedrooms\tstr\n",
"\tbathrooms\tstr\n",
"\tsqft_living\tint\n",
"\tsqft_lot\tint\n",
"\tfloors\tstr\n",
"\twaterfront\tint\n",
"\tview\tint\n",
"\tcondition\tint\n",
"\tgrade\tint\n",
"\tsqft_above\tint\n",
"\tsqft_basement\tint\n",
"\tyr_built\tint\n",
"\tyr_renovated\tint\n",
"\tzipcode\tstr\n",
"\tlat\tfloat\n",
"\tlong\tfloat\n",
"\tsqft_living15\tfloat\n",
"\tsqft_lot15\tfloat\n",
"\n",
"Rows: 21613\n",
"\n",
"Data:\n",
"+------------+---------------------------+---------+----------+-----------+-------------+\n",
"| id | date | price | bedrooms | bathrooms | sqft_living |\n",
"+------------+---------------------------+---------+----------+-----------+-------------+\n",
"| 7129300520 | 2014-10-13 00:00:00+00:00 | 221900 | 3 | 1 | 1180 |\n",
"| 6414100192 | 2014-12-09 00:00:00+00:00 | 538000 | 3 | 2.25 | 2570 |\n",
"| 5631500400 | 2015-02-25 00:00:00+00:00 | 180000 | 2 | 1 | 770 |\n",
"| 2487200875 | 2014-12-09 00:00:00+00:00 | 604000 | 4 | 3 | 1960 |\n",
"| 1954400510 | 2015-02-18 00:00:00+00:00 | 510000 | 3 | 2 | 1680 |\n",
"| 7237550310 | 2014-05-12 00:00:00+00:00 | 1225000 | 4 | 4.5 | 5420 |\n",
"| 1321400060 | 2014-06-27 00:00:00+00:00 | 257500 | 3 | 2.25 | 1715 |\n",
"| 2008000270 | 2015-01-15 00:00:00+00:00 | 291850 | 3 | 1.5 | 1060 |\n",
"| 2414600126 | 2015-04-15 00:00:00+00:00 | 229500 | 3 | 1 | 1780 |\n",
"| 3793500160 | 2015-03-12 00:00:00+00:00 | 323000 | 3 | 2.5 | 1890 |\n",
"+------------+---------------------------+---------+----------+-----------+-------------+\n",
"+----------+--------+------------+------+-----------+-------+------------+---------------+\n",
"| sqft_lot | floors | waterfront | view | condition | grade | sqft_above | sqft_basement |\n",
"+----------+--------+------------+------+-----------+-------+------------+---------------+\n",
"| 5650 | 1 | 0 | 0 | 3 | 7 | 1180 | 0 |\n",
"| 7242 | 2 | 0 | 0 | 3 | 7 | 2170 | 400 |\n",
"| 10000 | 1 | 0 | 0 | 3 | 6 | 770 | 0 |\n",
"| 5000 | 1 | 0 | 0 | 5 | 7 | 1050 | 910 |\n",
"| 8080 | 1 | 0 | 0 | 3 | 8 | 1680 | 0 |\n",
"| 101930 | 1 | 0 | 0 | 3 | 11 | 3890 | 1530 |\n",
"| 6819 | 2 | 0 | 0 | 3 | 7 | 1715 | 0 |\n",
"| 9711 | 1 | 0 | 0 | 3 | 7 | 1060 | 0 |\n",
"| 7470 | 1 | 0 | 0 | 3 | 7 | 1050 | 730 |\n",
"| 6560 | 2 | 0 | 0 | 3 | 7 | 1890 | 0 |\n",
"+----------+--------+------------+------+-----------+-------+------------+---------------+\n",
"+----------+--------------+---------+-------------+---------------+---------------+-----+\n",
"| yr_built | yr_renovated | zipcode | lat | long | sqft_living15 | ... |\n",
"+----------+--------------+---------+-------------+---------------+---------------+-----+\n",
"| 1955 | 0 | 98178 | 47.51123398 | -122.25677536 | 1340.0 | ... |\n",
"| 1951 | 1991 | 98125 | 47.72102274 | -122.3188624 | 1690.0 | ... |\n",
"| 1933 | 0 | 98028 | 47.73792661 | -122.23319601 | 2720.0 | ... |\n",
"| 1965 | 0 | 98136 | 47.52082 | -122.39318505 | 1360.0 | ... |\n",
"| 1987 | 0 | 98074 | 47.61681228 | -122.04490059 | 1800.0 | ... |\n",
"| 2001 | 0 | 98053 | 47.65611835 | -122.00528655 | 4760.0 | ... |\n",
"| 1995 | 0 | 98003 | 47.30972002 | -122.32704857 | 2238.0 | ... |\n",
"| 1963 | 0 | 98198 | 47.40949984 | -122.31457273 | 1650.0 | ... |\n",
"| 1960 | 0 | 98146 | 47.51229381 | -122.33659507 | 1780.0 | ... |\n",
"| 2003 | 0 | 98038 | 47.36840673 | -122.0308176 | 2390.0 | ... |\n",
"+----------+--------------+---------+-------------+---------------+---------------+-----+\n",
"[21613 rows x 21 columns]\n",
"Note: Only the head of the SFrame is printed.\n",
"You can use print_rows(num_rows=m, num_columns=n) to print more rows and columns."
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sales"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"graphlab.canvas.set_target('ipynb')"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"$(\"head\").append($(\"<link/>\").attr({\n",
" rel: \"stylesheet\",\n",
" type: \"text/css\",\n",
" href: \"//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.1.0/css/font-awesome.min.css\"\n",
"}));\n",
"$(\"head\").append($(\"<link/>\").attr({\n",
" rel: \"stylesheet\",\n",
" type: \"text/css\",\n",
" href: \"https://static.turi.com/products/graphlab-create/2.1/canvas/css/canvas.css\"\n",
"}));\n",
"\n",
" (function(){\n",
"\n",
" var e = null;\n",
" if (typeof element == 'undefined') {\n",
" var scripts = document.getElementsByTagName('script');\n",
" var thisScriptTag = scripts[scripts.length-1];\n",
" var parentDiv = thisScriptTag.parentNode;\n",
" e = document.createElement('div');\n",
" parentDiv.appendChild(e);\n",
" } else {\n",
" e = element[0];\n",
" }\n",
"\n",
" if (typeof requirejs !== 'undefined') {\n",
" // disable load timeout; ipython_app.js is large and can take a while to load.\n",
" requirejs.config({waitSeconds: 0});\n",
" }\n",
"\n",
" require(['https://static.turi.com/products/graphlab-create/2.1/canvas/js/ipython_app.js'], function(IPythonApp){\n",
" var app = new IPythonApp();\n",
" app.attachView('sframe','Plots', {\"selected_variable\": {\"name\": [\"sales\"], \"descriptives\": {\"rows\": 21613, \"columns\": 21}, \"view_component\": \"Plots\", \"view_file\": \"sframe\", \"view_params\": {\"y\": \"price\", \"x\": \"sqft_living\", \"columns\": [\"id\", \"date\", \"price\", \"bedrooms\", \"bathrooms\", \"sqft_living\", \"sqft_lot\", \"floors\", \"waterfront\", \"view\", \"condition\", \"grade\", \"sqft_above\", \"sqft_basement\", \"yr_built\", \"yr_renovated\", \"zipcode\", \"lat\", \"long\", \"sqft_living15\", \"sqft_lot15\"], \"view\": \"Scatter Plot\"}, \"view_components\": [\"Summary\", \"Table\", \"Bar Chart\", \"BoxWhisker Plot\", \"Line Chart\", \"Scatter Plot\", \"Heat Map\", \"Plots\"], \"type\": \"SFrame\", \"columns\": [{\"dtype\": \"str\", \"name\": \"id\"}, {\"dtype\": \"datetime\", \"name\": \"date\"}, {\"dtype\": \"int\", \"name\": \"price\"}, {\"dtype\": \"str\", \"name\": \"bedrooms\"}, {\"dtype\": \"str\", \"name\": \"bathrooms\"}, {\"dtype\": \"int\", \"name\": \"sqft_living\"}, {\"dtype\": \"int\", \"name\": \"sqft_lot\"}, {\"dtype\": \"str\", \"name\": \"floors\"}, {\"dtype\": \"int\", \"name\": \"waterfront\"}, {\"dtype\": \"int\", \"name\": \"view\"}, {\"dtype\": \"int\", \"name\": \"condition\"}, {\"dtype\": \"int\", \"name\": \"grade\"}, {\"dtype\": \"int\", \"name\": \"sqft_above\"}, {\"dtype\": \"int\", \"name\": \"sqft_basement\"}, {\"dtype\": \"int\", \"name\": \"yr_built\"}, {\"dtype\": \"int\", \"name\": \"yr_renovated\"}, {\"dtype\": \"str\", \"name\": \"zipcode\"}, {\"dtype\": \"float\", \"name\": \"lat\"}, {\"dtype\": \"float\", \"name\": \"long\"}, {\"dtype\": \"float\", \"name\": \"sqft_living15\"}, {\"dtype\": \"float\", \"name\": \"sqft_lot15\"}], \"column_identifiers\": [\"bathrooms\", \"sqft_living15\", \"sqft_above\", \"grade\", \"yr_built\", \"price\", \"bedrooms\", \"zipcode\", \"long\", \"id\", \"sqft_lot15\", \"sqft_living\", \"floors\", \"sqft_lot\", \"date\", \"waterfront\", \"sqft_basement\", \"yr_renovated\", \"lat\", \"condition\", \"view\"]}, \"complete\": 1, \"ipython\": true, \"progress\": 1.0, \"data\": [[1410, 295832], [2570, 538000], [770, 180000], [1020, 680000], [1680, 510000], [3440, 853000], [3220, 485000], [1830, 249000], [2200, 475000], [1410, 229950], [5960, 1355000], [2360, 370000], [3800, 2395000], [3130, 665000], [1010, 310000], [3960, 2500000], [290, 142000], [2480, 470000], [2290, 436500], [1960, 600000], [1250, 294000], [2690, 805000], [1670, 415900], [1070, 252700], [1300, 431000], [1710, 233000], [1110, 190500], [1610, 246700], [1930, 605000], [1660, 608000], [790, 342888], [1350, 275000], [930, 178500], [1800, 160000], [1470, 465000], [1970, 405000], [2210, 685000], [1590, 346000], [760, 129000], [1520, 575000], [830, 135000], [5070, 1100000], [740, 350000], [2000, 585000], [1870, 615000], [2750, 1030000], [1500, 782000], [2900, 485000], [2650, 790000], [2650, 725000], [2560, 619000], [1060, 140000], [1250, 230000], [1270, 467000], [1660, 425000], [1280, 215000], [1950, 400000], [2510, 570000], [1900, 629000], [1850, 430000], [840, 187500], [1444, 420000], [5290, 1690000], [1940, 320000], [2160, 750000], [1800, 607500], [2720, 975000], [1190, 375000], [2080, 780000], [3920, 1000000], [2470, 365000], [2480, 450000], [2260, 459000], [1776, 620000], [3180, 1149000], [2810, 999000], [1760, 380000], [1510, 260000], [1820, 286000], [1020, 290000], [1670, 180000], [5700, 1385000], [2970, 726000], [2000, 267000], [1330, 375000], [2150, 450000], [2120, 575000], [2960, 605000], [2140, 625000], [1290, 350500], [2520, 536000], [2320, 248000], [1230, 399950], [1830, 347500], [1310, 323000], [2290, 776500], [2430, 305000], [940, 250000], [3040, 420000], [1090, 236000], [2230, 556000], [4700, 1400000], [1778, 435000], [1820, 309933], [1870, 460000], [1430, 440000], [1020, 195000], [2700, 725000], [1680, 475000], [2200, 322000], [3700, 1728000], [3040, 500000], [2650, 370000], [2780, 560000], [4030, 912000], [2280, 820000], [2730, 542500], [3900, 1200000], [1830, 510000], [1470, 250000], [1990, 445000], [2590, 1175000], [1680, 425000], [1040, 314950], [2700, 1557600], [770, 257000], [880, 330000], [3320, 1800000], [3828, 552900], [2190, 391000], [1940, 306888], [2441, 340000], [1600, 453000], [1730, 348000], [1380, 235500], [3840, 1135000], [1640, 369950], [2253, 385000], [2100, 283500], [2250, 390000], [1620, 265000], [1820, 683500], [1480, 269950], [1240, 226800], [2370, 510000], [1550, 533000], [1840, 327000], [1010, 441500], [2310, 515000], [2490, 520000], [960, 345000], [1590, 280000], [1170, 527500], [1370, 420550], [2550, 834000], [1260, 195000], [1950, 601000], [3130, 675000], [2410, 767500], [1540, 742000], [1050, 325000], [1780, 438000], [1260, 485000], [2060, 432000], [1110, 345000], [2940, 635000], [980, 463800], [1390, 400000], [990, 222000], [2430, 412000], [1770, 415000], [2074, 515100], [1960, 540000], [2220, 615000], [2940, 503000], [3200, 337000], [1500, 530000], [3100, 1600000], [3550, 2100000], [2220, 569000], [1670, 260000], [1590, 295000], [1820, 393000], [3280, 810000], [1190, 550700], [4090, 1095000], [1150, 240000], [1300, 250000], [2290, 247500], [980, 575000], [1650, 264500], [2160, 390000], [1230, 329000], [1720, 514000], [1320, 262000], [4660, 1637500], [900, 553000], [1150, 123300], [2790, 700000], [1350, 385000], [860, 210000], [2770, 347000], [2290, 536000], [2750, 950000], [1689, 384400], [2600, 1225000], [2210, 435000], [1060, 346000], [1180, 425000], [2300, 464000], [1240, 275000], [3590, 1205000], [1420, 240000], [2130, 381000], [3070, 575000], [1860, 400000], [3300, 1505000], [2420, 740000], [1430, 288000], [1960, 569500], [1560, 269000], [1660, 300000], [2330, 527000], [2590, 480000], [1650, 550000], [670, 175000], [2840, 790000], [2620, 394250], [2290, 949880], [2160, 429000], [2530, 454000], [4350, 1150000], [1250, 355000], [2410, 415000], [3320, 1699990], [920, 275000], [1340, 245000], [2770, 505000], [840, 251000], [1500, 262500], [1000, 715000], [1150, 300000], [2030, 643000], [2100, 555000], [1890, 280500], [4390, 1230000], [1930, 495000], [2170, 420000], [2250, 395000], [1370, 305000], [1900, 230000], [2620, 672500], [1190, 440000], [2720, 560000], [1280, 575000], [900, 179500], [1610, 203000], [4410, 765000], [1850, 383000], [1730, 200000], [1830, 468000], [2940, 914154], [3540, 888990], [1850, 330000], [2070, 364950], [3020, 320000], [3970, 995000], [1450, 524000], [1470, 380000], [2990, 490000], [7320, 1135250], [2670, 430000], [3220, 697000], [1550, 266000], [3500, 895000], [3580, 2050000], [2600, 700000], [2690, 620000], [1770, 450000], [1170, 225000], [1650, 265000], [1590, 310000], [2940, 420000], [1980, 442000], [1610, 626500], [2140, 554000], [1830, 283000], [2050, 825000], [1690, 452000], [2730, 440000], [3470, 1218000], [3490, 830000], [1160, 315500], [5350, 3345000], [1210, 660000], [1230, 195000], [2270, 732350], [2650, 674950], [1830, 544950], [1220, 215500], [1440, 409000], [1660, 458000], [3540, 820000], [1100, 210000], [2150, 316500], [4740, 1349000], [1510, 420250], [700, 209995], [1260, 300000], [2300, 420000], [1370, 555000], [2030, 430000], [2720, 599950], [1270, 226000], [2070, 635000], [3340, 1150000], [1530, 880000], [3831, 2700000], [1770, 345000], [1320, 462600], [3150, 819900], [2100, 605000], [3620, 480000], [2010, 427500], [2400, 585000], [3370, 812000], [2690, 311000], [2050, 740000], [940, 223000], [750, 213000], [2730, 545000], [1620, 641000], [1370, 280000], [1747, 267500], [1470, 380000], [1460, 446000], [2980, 932800], [1840, 274900], [2930, 1050000], [1500, 210000], [1630, 499990], [2010, 360000], [1150, 305000], [1540, 275000], [3030, 837219], [1540, 462500], [1770, 286000], [1420, 475000], [1120, 425000], [2430, 502500], [1340, 263000], [2750, 869900], [1590, 249000], [1490, 735000], [1280, 240000], [1330, 1050000], [1430, 510000], [3420, 655000], [2710, 540000], [1960, 180000], [1640, 463000], [2000, 265000], [1040, 596000], [2640, 750000], [860, 160000], [1260, 490000], [1010, 245000], [1150, 287000], [2380, 330000], [2060, 550000], [1430, 280000], [1760, 405000], [2290, 580000], [1800, 439000], [3800, 894000], [2800, 490000], [1850, 445000], [1860, 585000], [1040, 411100], [900, 205500], [1910, 435000], [4040, 950000], [3190, 1100000], [1170, 200000], [1030, 650000], [1530, 245000], [1230, 147500], [1210, 259000], [3410, 675000], [2620, 565000], [1770, 350500], [2260, 451000], [1490, 465000], [2240, 939000], [1510, 450000], [3260, 1280000], [2720, 530000], [1940, 365000], [1650, 559500], [2070, 550000], [1990, 564800], [2620, 683000], [2880, 525000], [2720, 1275000], [1360, 396500], [2390, 750000], [1830, 270000], [1340, 265000], [2420, 1010000], [1940, 505000], [3410, 599000], [833, 517534], [1600, 265000], [1360, 550000], [1930, 439990], [4490, 700000], [3660, 475000], [1010, 340000], [1860, 355000], [1170, 400000], [1570, 478000], [1210, 340000], [750, 292500], [1860, 730000], [1520, 160000], [1510, 225900], [3530, 487500], [2807, 630000], [1650, 183750], [2600, 790000], [2690, 700000], [2360, 340000], [2660, 1444000], [2310, 815000], [828, 110000], [1690, 431000], [1010, 225000], [1570, 485000], [2529, 370950], [1100, 194820], [3330, 936000], [700, 200000], [1080, 460000], [2440, 550000], [2190, 625000], [2160, 900000], [2030, 597500], [2170, 260000], [1050, 235000], [1630, 468000], [1400, 217500], [1570, 485000], [1440, 395000], [1560, 511100], [4030, 890000], [2110, 981000], [2260, 325000], [1110, 249000], [1800, 850000], [1030, 250000], [1790, 650000], [1680, 366000], [1410, 225000], [680, 193000], [2560, 535000], [1800, 381000], [1580, 359000], [950, 320000], [2620, 360000], [2100, 305000], [3330, 911100], [1760, 500000], [1680, 275000], [1930, 650000], [3390, 859900], [2800, 653000], [1980, 638500], [1710, 372000], [1800, 390000], [1620, 385000], [1340, 432500], [2020, 554729], [2120, 400000], [1340, 279950], [1870, 680000], [1180, 205000], [1950, 899000], [2370, 957000], [5010, 1468000], [1120, 165000], [1710, 529999], [3500, 350000], [1090, 306000], [1990, 852000], [1560, 380000], [910, 254000], [1530, 371025], [1489, 255900], [1620, 370000], [1760, 229000], [1770, 279900], [1710, 525000], [3140, 310000], [2900, 630000], [1490, 425000], [2414, 292000], [1210, 529000], [2290, 550000], [970, 600000], [970, 495000], [4400, 1800000], [3150, 1900000], [1110, 416000], [1300, 417000], [1990, 537000], [1680, 550000], [1340, 281000], [1570, 281700], [1200, 275000], [1520, 235000], [2350, 767500], [2550, 612500], [2530, 515000], [2610, 535000], [940, 275000], [1960, 275000], [910, 232900], [1210, 582000], [2700, 652500], [2140, 998500], [1780, 270500], [1360, 200000], [730, 174950], [1310, 230000], [1190, 900000], [3880, 702000], [2160, 629000], [1750, 499000], [4500, 750000], [1370, 231000], [1580, 551000], [2920, 1250000], [1450, 309950], [2480, 540000], [1430, 175000], [1790, 940000], [1790, 585000], [4660, 1280000], [3620, 858000], [2370, 522500], [2500, 695000], [1650, 600000], [2420, 755000], [1820, 515000], [1520, 460000], [1200, 345000], [1100, 465000], [1890, 325000], [2080, 352800], [1870, 325000], [3910, 1475000], [2370, 543000], [2210, 315000], [2030, 389000], [2020, 599950], [1470, 638000], [2056, 303000], [2330, 550000], [1110, 440150], [1510, 309950], [1020, 168500], [3200, 720000], [1610, 346500], [1810, 585000], [1010, 145000], [700, 248000], [4590, 1135000], [770, 413500], [1170, 285950], [2850, 1275000], [1390, 608000], [1230, 220000], [1600, 495000], [1440, 437000], [2080, 600000], [1550, 415000], [2130, 344000], [2010, 245000], [2790, 803000], [2360, 300000], [3300, 1350000], [2320, 600000], [1590, 305000], [1400, 575000], [1190, 245000], [2440, 720000], [1960, 360000], [1440, 250000], [2320, 436300], [3020, 490000], [2200, 465000], [2550, 355000], [1930, 230000], [860, 198000], [1220, 320600], [1360, 640000], [1900, 770000], [3370, 1550000], [1670, 223000], [4520, 550000], [2420, 352000], [1630, 360400], [1680, 485000], [3530, 908990], [1010, 185000], [1400, 128000], [1730, 480680], [1670, 545000], [1100, 212000], [3190, 765000], [2390, 800000], [1578, 259950], [1210, 200000], [1170, 295000], [660, 100000], [1510, 675000], [1720, 521000], [3470, 598600], [1270, 543500], [1400, 511555], [2180, 506000], [1600, 515000], [1860, 280000], [3430, 749950], [1620, 430000], [2620, 680000], [1050, 250000], [2620, 885000], [3390, 915000], [1900, 450000], [1300, 819000], [2250, 305000], [1940, 1330000], [1630, 400000], [1600, 625000], [1410, 240000], [1200, 186000], [2390, 650000], [1070, 327500], [5550, 3710000], [1800, 228000], [2600, 252500], [2900, 312000], [3090, 1450000], [2310, 580000], [4620, 1459000], [860, 399000], [820, 532500], [2658, 411605], [1640, 540000], [1790, 243000], [3596, 580000], [1710, 255000], [1940, 390000], [3770, 1038000], [1550, 453500], [960, 490000], [1440, 355000], [2010, 487585], [700, 330000], [1320, 195000], [2290, 367950], [4860, 2950000], [1850, 385000], [2280, 433000], [2450, 800000], [2570, 625000], [1750, 270000], [1300, 560000], [1680, 381000], [1130, 420000], [1040, 210000], [930, 210000], [3040, 468000], [3700, 489000], [2650, 302000], [2020, 330000], [1590, 323000], [3320, 852600], [1140, 239950], [1520, 425000], [2153, 259000], [1070, 361500], [1670, 696000], [2060, 680000], [2950, 810000], [1420, 450000], [3650, 697000], [1690, 215000], [1600, 292000], [2290, 975000], [1410, 600000], [2010, 439000], [710, 299000], [3110, 725000], [980, 393000], [780, 370000], [3740, 392000], [4300, 2500000], [1594, 269000], [2120, 385000], [1450, 400000], [2120, 765000], [1480, 663000], [1430, 270000], [1460, 260000], [3580, 879900], [1410, 390000], [1550, 685000], [3830, 710000], [2720, 436000], [1430, 266200], [2382, 345000], [1430, 580000], [2520, 350000], [2090, 289950], [2310, 520000], [2260, 359950], [1140, 518000], [1960, 395000], [3070, 860000], [1970, 291700], [1660, 412500], [1120, 442500], [2156, 347500], [2500, 685000], [1740, 585000], [1090, 140000], [1820, 276000], [1180, 355000], [2220, 585000], [1340, 381000], [1630, 445000], [2750, 750000], [2950, 424900], [2610, 650000], [3480, 1850000], [2880, 1260000], [2420, 298000], [4160, 1110000], [1460, 285000], [2720, 685000], [2910, 915000], [3001, 373000], [1350, 353000], [2320, 429950], [2210, 507000], [3950, 1310000], [2550, 490000], [1460, 570000], [1340, 376000], [1400, 220000], [2540, 630000], [2500, 312500], [2150, 399950], [990, 329000], [2380, 650000], [1410, 274800], [1930, 245000], [1510, 195000], [1510, 269950], [2620, 746000], [1660, 165000], [1100, 139000], [1200, 390000], [1750, 325000], [1200, 249000], [1980, 400000], [3600, 679950], [960, 550000], [750, 300000], [1160, 508300], [3700, 540000], [1800, 471001], [1590, 580000], [1200, 231500], [1770, 420000], [1140, 425000], [3130, 999000], [1520, 640000], [1220, 655100], [3085, 359000], [2910, 605000], [1830, 410000], [2620, 749950], [2810, 575000], [1270, 615000], [2150, 639000], [1860, 397500], [3850, 995000], [2100, 283000], [1520, 167000], [1330, 479000], [1470, 250000], [5040, 2532000], [1690, 500000], [2660, 583000], [2040, 279000], [3250, 562000], [3050, 950000], [2160, 625500], [2290, 209950], [1060, 340000], [1890, 473000], [1240, 405000], [2920, 325000], [3790, 1165000], [2070, 450000], [2880, 550000], [1400, 410000], [2070, 662500], [1480, 439000], [2010, 530000], [1560, 519000], [1140, 195000], [2630, 560000], [3780, 1598888], [1400, 386500], [1990, 590000], [3620, 1015000], [1610, 565000], [5550, 1500000], [1360, 265000], [1550, 299000], [960, 435000], [2480, 979700], [6330, 2385000], [1410, 335000], [1170, 312500], [1580, 720000], [2040, 475000], [1280, 165000], [1490, 368888], [1950, 725000], [2360, 957500], [1360, 360000], [1470, 399950], [1330, 180000], [2320, 1070000], [2520, 372000], [1460, 225000], [2260, 418200], [2020, 321000], [840, 185000], [2750, 615000], [980, 375000], [1720, 265000], [1870, 205000], [2350, 440000], [1620, 451000], [3520, 905000], [1690, 530000], [1980, 450000], [960, 225000], [1020, 335000], [1120, 230000], [2420, 390000], [2850, 1325000], [1150, 370000], [2180, 289999], [2260, 675000], [4150, 1206688], [2320, 380000], [1650, 233500], [3000, 380000], [2230, 334950], [2890, 855000], [2700, 420000], [2370, 479000], [1820, 287000], [2090, 311000], [1921, 245000], [1560, 260750], [1440, 491000], [850, 320000], [1100, 397000], [1380, 209950], [2940, 845000], [650, 230000], [1570, 325000], [1840, 301000], [1410, 550000], [1530, 448000], [3190, 725995], [1510, 415000], [2000, 910000], [1440, 275000], [1509, 410000], [5020, 1500000], [4430, 1960000], [1940, 545000], [720, 310000], [1720, 280000], [4570, 1037000], [2550, 430000], [1660, 680000], [1700, 349950], [3890, 850000], [1270, 400000], [2450, 500000], [790, 280000], [1930, 583000], [840, 151100], [2930, 800000], [3730, 599950], [2920, 1051000], [1480, 479000], [3526, 911000], [3790, 875000], [2120, 290000], [1740, 580000], [2250, 765000], [1340, 255000], [2380, 800000], [3180, 1000000], [4490, 1715000], [1480, 685000], [1950, 425000], [900, 157340], [2570, 1170000], [1480, 200000], [1080, 329500], [1080, 525000], [2000, 358500], [3300, 789888], [2500, 235000], [1250, 225000], [5990, 1525000], [2160, 550000], [1230, 740000], [1470, 432500], [2700, 625000], [3060, 520000], [820, 300000], [2090, 489000], [1340, 383000], [670, 245000], [2500, 599950], [1876, 613500], [3230, 699000], [2240, 410000], [830, 350000], [1960, 415000], [2500, 368000], [1940, 495000], [2670, 550000], [790, 248000], [2020, 385000], [1860, 291000], [1660, 410000], [1150, 349000], [1010, 385000], [1450, 355000], [3110, 655000], [1650, 465000], [1950, 438000], [1380, 285000], [1782, 326000], [2680, 437500], [1260, 349500], [1140, 379900], [2710, 544999], [2290, 670000], [2060, 415000], [2790, 765000], [3410, 2600000], [1710, 579000], [2300, 453000], [1000, 207100], [1030, 427200], [3320, 800000], [1160, 299000], [1050, 414500], [2210, 640000], [2960, 785000], [2120, 278000], [1330, 300000], [1970, 499000], [2650, 672500], [3600, 875000], [2310, 627000], [3430, 780000], [1160, 336000], [2590, 569888], [1720, 263000], [1870, 433000], [2840, 580000], [1960, 342000], [3040, 790000], [1410, 425000]], \"columns\": [{\"dtype\": \"str\", \"name\": \"id\"}, {\"dtype\": \"datetime\", \"name\": \"date\"}, {\"dtype\": \"int\", \"name\": \"price\"}, {\"dtype\": \"str\", \"name\": \"bedrooms\"}, {\"dtype\": \"str\", \"name\": \"bathrooms\"}, {\"dtype\": \"int\", \"name\": \"sqft_living\"}, {\"dtype\": \"int\", \"name\": \"sqft_lot\"}, {\"dtype\": \"str\", \"name\": \"floors\"}, {\"dtype\": \"int\", \"name\": \"waterfront\"}, {\"dtype\": \"int\", \"name\": \"view\"}, {\"dtype\": \"int\", \"name\": \"condition\"}, {\"dtype\": \"int\", \"name\": \"grade\"}, {\"dtype\": \"int\", \"name\": \"sqft_above\"}, {\"dtype\": \"int\", \"name\": \"sqft_basement\"}, {\"dtype\": \"int\", \"name\": \"yr_built\"}, {\"dtype\": \"int\", \"name\": \"yr_renovated\"}, {\"dtype\": \"str\", \"name\": \"zipcode\"}, {\"dtype\": \"float\", \"name\": \"lat\"}, {\"dtype\": \"float\", \"name\": \"long\"}, {\"dtype\": \"float\", \"name\": \"sqft_living15\"}, {\"dtype\": \"float\", \"name\": \"sqft_lot15\"}]}, e);\n",
" });\n",
" })();\n",
" "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sales.show(view=\"Scatter Plot\", x = \"sqft_living\", y = \"price\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 分离出训练集和测试集"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"train_data, test_data = sales.random_split(.8, seed=0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 构建回归模型"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"PROGRESS: Creating a validation set from 5 percent of training data. This may take a while.\n",
" You can set ``validation_set=None`` to disable validation tracking.\n",
"\n"
]
},
{
"data": {
"text/html": [
"<pre>Linear regression:</pre>"
],
"text/plain": [
"Linear regression:"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>--------------------------------------------------------</pre>"
],
"text/plain": [
"--------------------------------------------------------"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>Number of examples : 16493</pre>"
],
"text/plain": [
"Number of examples : 16493"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>Number of features : 1</pre>"
],
"text/plain": [
"Number of features : 1"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>Number of unpacked features : 1</pre>"
],
"text/plain": [
"Number of unpacked features : 1"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>Number of coefficients : 2</pre>"
],
"text/plain": [
"Number of coefficients : 2"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>Starting Newton Method</pre>"
],
"text/plain": [
"Starting Newton Method"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>--------------------------------------------------------</pre>"
],
"text/plain": [
"--------------------------------------------------------"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>+-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+</pre>"
],
"text/plain": [
"+-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sqft_model = graphlab.linear_regression.create(train_data, target=\"price\",features=['sqft_living'])"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<pre>| Iteration | Passes | Elapsed Time | Training-max_error | Validation-max_error | Training-rmse | Validation-rmse |</pre>"
],
"text/plain": [
"| Iteration | Passes | Elapsed Time | Training-max_error | Validation-max_error | Training-rmse | Validation-rmse |"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"543054.042563\n"
]
},
{
"data": {
"text/html": [
"<pre>+-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+</pre>"
],
"text/plain": [
"+-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print test_data[\"price\"].mean()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<pre>| 1 | 2 | 1.005964 | 4363743.970591 | 2197569.449099 | 262115.728733 | 277890.584539 |</pre>"
],
"text/plain": [
"| 1 | 2 | 1.005964 | 4363743.970591 | 2197569.449099 | 262115.728733 | 277890.584539 |"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>+-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+</pre>"
],
"text/plain": [
"+-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>SUCCESS: Optimal solution found.</pre>"
],
"text/plain": [
"SUCCESS: Optimal solution found."
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre></pre>"
],
"text/plain": []
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'max_error': 4154815.206525885, 'rmse': 255172.44235438204}\n"
]
}
],
"source": [
"print sqft_model.evaluate(test_data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 看看我们的预测是什么样子的"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x11037e0d0>,\n",
" <matplotlib.lines.Line2D at 0x10f340f50>]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(test_data['sqft_living'], test_data['price'],'.', test_data['sqft_living'], sqft_model.predict(test_data),'-')"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\"><table frame=\"box\" rules=\"cols\">\n",
" <tr>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">name</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">index</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">value</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">stderr</th>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">(intercept)</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">None</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">-44835.8192108</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">5044.04586485</td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">sqft_living</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">None</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">280.588535155</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2.21871412526</td>\n",
" </tr>\n",
"</table>\n",
"[2 rows x 4 columns]<br/>\n",
"</div>"
],
"text/plain": [
"Columns:\n",
"\tname\tstr\n",
"\tindex\tstr\n",
"\tvalue\tfloat\n",
"\tstderr\tfloat\n",
"\n",
"Rows: 2\n",
"\n",
"Data:\n",
"+-------------+-------+----------------+---------------+\n",
"| name | index | value | stderr |\n",
"+-------------+-------+----------------+---------------+\n",
"| (intercept) | None | -44835.8192108 | 5044.04586485 |\n",
"| sqft_living | None | 280.588535155 | 2.21871412526 |\n",
"+-------------+-------+----------------+---------------+\n",
"[2 rows x 4 columns]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sqft_model.get('coefficients')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 构建更多特征的回归模型"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"my_features = ['bedrooms', 'bathrooms', 'sqft_living', 'sqft_lot', 'floors', 'zipcode']"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Canvas is updated and available in a tab in the default browser.\n"
]
}
],
"source": [
"sales[my_features].show()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Canvas is updated and available in a tab in the default browser.\n"
]
}
],
"source": [
"sales.show(view='BoxWhisker Plot', x='zipcode', y='price')"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"PROGRESS: Creating a validation set from 5 percent of training data. This may take a while.\n",
" You can set ``validation_set=None`` to disable validation tracking.\n",
"\n"
]
},
{
"data": {
"text/html": [
"<pre>Linear regression:</pre>"
],
"text/plain": [
"Linear regression:"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>--------------------------------------------------------</pre>"
],
"text/plain": [
"--------------------------------------------------------"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>Number of examples : 16471</pre>"
],
"text/plain": [
"Number of examples : 16471"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>Number of features : 6</pre>"
],
"text/plain": [
"Number of features : 6"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>Number of unpacked features : 6</pre>"
],
"text/plain": [
"Number of unpacked features : 6"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>Number of coefficients : 115</pre>"
],
"text/plain": [
"Number of coefficients : 115"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>Starting Newton Method</pre>"
],
"text/plain": [
"Starting Newton Method"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>--------------------------------------------------------</pre>"
],
"text/plain": [
"--------------------------------------------------------"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>+-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+</pre>"
],
"text/plain": [
"+-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>| Iteration | Passes | Elapsed Time | Training-max_error | Validation-max_error | Training-rmse | Validation-rmse |</pre>"
],
"text/plain": [
"| Iteration | Passes | Elapsed Time | Training-max_error | Validation-max_error | Training-rmse | Validation-rmse |"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>+-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+</pre>"
],
"text/plain": [
"+-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"my_features_model = graphlab.linear_regression.create(train_data, target='price', features=my_features)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<pre>| 1 | 2 | 0.036594 | 3774159.294175 | 1920794.192471 | 182509.457533 | 173588.343454 |</pre>"
],
"text/plain": [
"| 1 | 2 | 0.036594 | 3774159.294175 | 1920794.192471 | 182509.457533 | 173588.343454 |"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>+-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+</pre>"
],
"text/plain": [
"+-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre>SUCCESS: Optimal solution found.</pre>"
],
"text/plain": [
"SUCCESS: Optimal solution found."
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre></pre>"
],
"text/plain": []
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1104a7b50>,\n",
" <matplotlib.lines.Line2D at 0x1104a7bd0>]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(test_data['sqft_living'], test_data['price'],'.', test_data['sqft_living'], my_features_model.predict(test_data),'-')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 应用学到的模型来预测房屋的售价"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"house1 = sales[sales['id'] == '5309101200']\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\"><table frame=\"box\" rules=\"cols\">\n",
" <tr>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">id</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">date</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">price</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">bedrooms</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">bathrooms</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_living</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_lot</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">floors</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">waterfront</th>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">5309101200</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2014-06-05 00:00:00+00:00</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">620000</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">4</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2.25</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2400</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">5350</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1.5</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" </tr>\n",
"</table>\n",
"<table frame=\"box\" rules=\"cols\">\n",
" <tr>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">view</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">condition</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">grade</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_above</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_basement</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">yr_built</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">yr_renovated</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">zipcode</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">lat</th>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">4</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">7</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1460</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">940</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1929</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">98117</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">47.67632376</td>\n",
" </tr>\n",
"</table>\n",
"<table frame=\"box\" rules=\"cols\">\n",
" <tr>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">long</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_living15</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_lot15</th>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">-122.37010126</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1250.0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">4880.0</td>\n",
" </tr>\n",
"</table>\n",
"[? rows x 21 columns]<br/>Note: Only the head of the SFrame is printed. This SFrame is lazily evaluated.<br/>You can use sf.materialize() to force materialization.\n",
"</div>"
],
"text/plain": [
"Columns:\n",
"\tid\tstr\n",
"\tdate\tdatetime\n",
"\tprice\tint\n",
"\tbedrooms\tstr\n",
"\tbathrooms\tstr\n",
"\tsqft_living\tint\n",
"\tsqft_lot\tint\n",
"\tfloors\tstr\n",
"\twaterfront\tint\n",
"\tview\tint\n",
"\tcondition\tint\n",
"\tgrade\tint\n",
"\tsqft_above\tint\n",
"\tsqft_basement\tint\n",
"\tyr_built\tint\n",
"\tyr_renovated\tint\n",
"\tzipcode\tstr\n",
"\tlat\tfloat\n",
"\tlong\tfloat\n",
"\tsqft_living15\tfloat\n",
"\tsqft_lot15\tfloat\n",
"\n",
"Rows: Unknown\n",
"\n",
"Data:\n",
"+------------+---------------------------+--------+----------+-----------+-------------+\n",
"| id | date | price | bedrooms | bathrooms | sqft_living |\n",
"+------------+---------------------------+--------+----------+-----------+-------------+\n",
"| 5309101200 | 2014-06-05 00:00:00+00:00 | 620000 | 4 | 2.25 | 2400 |\n",
"+------------+---------------------------+--------+----------+-----------+-------------+\n",
"+----------+--------+------------+------+-----------+-------+------------+---------------+\n",
"| sqft_lot | floors | waterfront | view | condition | grade | sqft_above | sqft_basement |\n",
"+----------+--------+------------+------+-----------+-------+------------+---------------+\n",
"| 5350 | 1.5 | 0 | 0 | 4 | 7 | 1460 | 940 |\n",
"+----------+--------+------------+------+-----------+-------+------------+---------------+\n",
"+----------+--------------+---------+-------------+---------------+---------------+-----+\n",
"| yr_built | yr_renovated | zipcode | lat | long | sqft_living15 | ... |\n",
"+----------+--------------+---------+-------------+---------------+---------------+-----+\n",
"| 1929 | 0 | 98117 | 47.67632376 | -122.37010126 | 1250.0 | ... |\n",
"+----------+--------------+---------+-------------+---------------+---------------+-----+\n",
"[? rows x 21 columns]\n",
"Note: Only the head of the SFrame is printed. This SFrame is lazily evaluated.\n",
"You can use sf.materialize() to force materialization."
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"house1"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[620000, ... ]\n"
]
}
],
"source": [
"print house1['price']"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[628576.6651616886]\n"
]
}
],
"source": [
"print sqft_model.predict(house1)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[721729.5318102781]\n"
]
}
],
"source": [
"print my_features_model.predict(house1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 预测另一个房屋的售价"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"house2 = sales[sales['id'] == '1925069082']"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\"><table frame=\"box\" rules=\"cols\">\n",
" <tr>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">id</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">date</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">price</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">bedrooms</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">bathrooms</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_living</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_lot</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">floors</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">waterfront</th>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1925069082</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2015-05-11 00:00:00+00:00</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2200000</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">5</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">4.25</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">4640</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">22703</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1</td>\n",
" </tr>\n",
"</table>\n",
"<table frame=\"box\" rules=\"cols\">\n",
" <tr>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">view</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">condition</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">grade</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_above</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_basement</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">yr_built</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">yr_renovated</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">zipcode</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">lat</th>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">4</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">5</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">8</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">2860</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1780</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">1952</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">98052</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">47.63925783</td>\n",
" </tr>\n",
"</table>\n",
"<table frame=\"box\" rules=\"cols\">\n",
" <tr>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">long</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_living15</th>\n",
" <th style=\"padding-left: 1em; padding-right: 1em; text-align: center\">sqft_lot15</th>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">-122.09722322</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">3140.0</td>\n",
" <td style=\"padding-left: 1em; padding-right: 1em; text-align: center; vertical-align: top\">14200.0</td>\n",
" </tr>\n",
"</table>\n",
"[? rows x 21 columns]<br/>Note: Only the head of the SFrame is printed. This SFrame is lazily evaluated.<br/>You can use sf.materialize() to force materialization.\n",
"</div>"
],
"text/plain": [
"Columns:\n",
"\tid\tstr\n",
"\tdate\tdatetime\n",
"\tprice\tint\n",
"\tbedrooms\tstr\n",
"\tbathrooms\tstr\n",
"\tsqft_living\tint\n",
"\tsqft_lot\tint\n",
"\tfloors\tstr\n",
"\twaterfront\tint\n",
"\tview\tint\n",
"\tcondition\tint\n",
"\tgrade\tint\n",
"\tsqft_above\tint\n",
"\tsqft_basement\tint\n",
"\tyr_built\tint\n",
"\tyr_renovated\tint\n",
"\tzipcode\tstr\n",
"\tlat\tfloat\n",
"\tlong\tfloat\n",
"\tsqft_living15\tfloat\n",
"\tsqft_lot15\tfloat\n",
"\n",
"Rows: Unknown\n",
"\n",
"Data:\n",
"+------------+---------------------------+---------+----------+-----------+-------------+\n",
"| id | date | price | bedrooms | bathrooms | sqft_living |\n",
"+------------+---------------------------+---------+----------+-----------+-------------+\n",
"| 1925069082 | 2015-05-11 00:00:00+00:00 | 2200000 | 5 | 4.25 | 4640 |\n",
"+------------+---------------------------+---------+----------+-----------+-------------+\n",
"+----------+--------+------------+------+-----------+-------+------------+---------------+\n",
"| sqft_lot | floors | waterfront | view | condition | grade | sqft_above | sqft_basement |\n",
"+----------+--------+------------+------+-----------+-------+------------+---------------+\n",
"| 22703 | 2 | 1 | 4 | 5 | 8 | 2860 | 1780 |\n",
"+----------+--------+------------+------+-----------+-------+------------+---------------+\n",
"+----------+--------------+---------+-------------+---------------+---------------+-----+\n",
"| yr_built | yr_renovated | zipcode | lat | long | sqft_living15 | ... |\n",
"+----------+--------------+---------+-------------+---------------+---------------+-----+\n",
"| 1952 | 0 | 98052 | 47.63925783 | -122.09722322 | 3140.0 | ... |\n",
"+----------+--------------+---------+-------------+---------------+---------------+-----+\n",
"[? rows x 21 columns]\n",
"Note: Only the head of the SFrame is printed. This SFrame is lazily evaluated.\n",
"You can use sf.materialize() to force materialization."
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"house2"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1257094.98390933]\n"
]
}
],
"source": [
"print sqft_model.predict(house2)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1444916.601567305]\n"
]
}
],
"source": [
"print my_features_model.predict(house2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.15"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment