diff --git a/20 ML Algorithms For House Prices Prediction/20 ML Algorithms For House Prices Prediction.ipynb b/20 ML Algorithms For House Prices Prediction/20 ML Algorithms For House Prices Prediction.ipynb new file mode 100644 index 0000000..9bc7eef --- /dev/null +++ b/20 ML Algorithms For House Prices Prediction/20 ML Algorithms For House Prices Prediction.ipynb @@ -0,0 +1,3035 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a8f9622945156d6337ba73c481da2de7efef7384" + }, + "source": [ + " ##
20 ML Algorithms For House Prices Prediction
\n", + "\n", + "There are plenty of **courses and tutorials** that can help you learn machine learning from scratch but here in **Kaggle**, I want to predict **House Prices** a popular machine learning Dataset as a comprehensive workflow with python packages. \n", + "After reading, you can use this workflow to solve other real problems and use it as a template to deal with machine learning problems. \n", + "\n", + "\n", + "
last update: 10/23/2018
\n", + "\n", + "---------------------------------------------------------------------\n", + "\n", + ">###### you may be interested have a look at it: [A Comprehensive Machine Learning Workflow with Python](http://https://www.kaggle.com/mjbahmani/a-comprehensive-ml-workflow-with-python)\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\n", + "you can Fork and Run this kernel on Github:\n", + "> ###### [ GitHub](https://github.com/mjbahmani/Machine-Learning-Workflow-with-Python)\n", + "\n", + "\n", + "-----------------------------\n", + " **I hope you find this kernel helpful and some UPVOTES would be very much appreciated**\n", + " \n", + " \n", + " -----------" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cda11210a88d6484112cbe2c3624225328326c6a" + }, + "source": [ + "## Notebook Content\n", + "* 1- [Introduction](#1)\n", + "* 2- [Machine learning workflow](#2)\n", + "* 3- [Problem Definition](#3)\n", + "* 3-1 [Problem feature](#4)\n", + "* 3-2 [Aim](#5)\n", + "* 3-3 [Variables](#6)\n", + "* 4-[ Inputs & Outputs](#7)\n", + "* 4-1 [Inputs ](#8)\n", + "* 4-2 [Outputs](#9)\n", + "* 5- [Installation](#10)\n", + "* 5-1 [ jupyter notebook](#11)\n", + "* 5-2[ kaggle kernel](#12)\n", + "* 5-3 [Colab notebook](#13)\n", + "* 5-4 [install python & packages](#14)\n", + "* 5-5 [Loading Packages](#15)\n", + "* 6- [Exploratory data analysis](#16)\n", + "* 6-1 [Data Collection](#17)\n", + "* 6-2 [Visualization](#18)\n", + "* 6-2-1 [Scatter plot](#19)\n", + "* 6-2-2 [Box](#20)\n", + "* 6-2-3 [Histogram](#21)\n", + "* 6-2-4 [Multivariate Plots](#22)\n", + "* 6-2-5 [Violinplots](#23)\n", + "* 6-2-6 [Pair plot](#24)\n", + "* 6-2-7 [Kde plot](#25)\n", + "* 6-2-8 [Joint plot](#26)\n", + "* 6-2-9 [Andrews curves](#27)\n", + "* 6-2-10 [Heatmap](#28)\n", + "* 6-2-11 [Radviz](#29)\n", + "* 6-3 [Data Preprocessing](#30)\n", + "* 6-4 [Data Cleaning](#31)\n", + "* 7- [Model Deployment](#32)\n", + "* 8- [Conclusion](#53)\n", + "* 9- [References](#54)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "750903cc2679d39058f56df6c6c040be02b748df" + }, + "source": [ + "
\n", + "## 1- Introduction\n", + "This is a **A Comprehensive ML Workflow for House Prices** data set, it is clear that everyone in this community is familiar with house prices dataset but if you need to review your information about the dataset please visit this [link](https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data).\n", + "\n", + "I have tried to help **Fans of Machine Learning** in Kaggle how to face machine learning problems. and I think it is a great opportunity for who want to learn machine learning workflow with python **completely**.\n", + "\n", + "I have covered most of the methods that are implemented for house prices until **2018**, you can start to learn and review your knowledge about ML with a simple dataset and try to learn and memorize the workflow for your journey in Data science world.\n", + "\n", + "I am open to getting your feedback for improving this **kernel**\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e11b73b618b0f6e4335520ef80267c6d577d1ba5" + }, + "source": [ + "
\n", + "## 2- Machine Learning Workflow\n", + "If you have already read some [machine learning books](https://towardsdatascience.com/list-of-free-must-read-machine-learning-books-89576749d2ff). You have noticed that there are different ways to stream data into machine learning.\n", + "\n", + "most of these books share the following steps:\n", + "* Define Problem\n", + "* Specify Inputs & Outputs\n", + "* Exploratory data analysis\n", + "* Data Collection\n", + "* Data Preprocessing\n", + "* Data Cleaning\n", + "* Visualization\n", + "* Model Design, Training, and Offline Evaluation\n", + "* Model Deployment, Online Evaluation, and Monitoring\n", + "* Model Maintenance, Diagnosis, and Retraining\n", + "\n", + "**You can see my workflow in the below image** :\n", + " \n", + "\n", + "## 2-1 How to solve Problem?\n", + "**Data Science has so many techniques and procedures that can confuse anyone.**\n", + "\n", + "**Step 1**: Translate your business problem statement into technical one\n", + "\n", + "Analogous to any other software problem, data science aims at solving a business problem. Most of the times, business problem statements are vague and can be interpreted in multiple ways. This occurs mostly because we generally use qualitative words in our language which cannot be directly translated into a machine readable code.\n", + "\n", + "Eg. Let’s say we need to develop a solution to reduce crime rate of a city. The term “reduce” can be interpreted as:\n", + "\n", + "Decreasing crime rate of areas with high crime rate\n", + "Decreasing crime rate of the most common type of crime\n", + "It is a good practice to circle back with the client or the business team who define the problem to decide on the right interpretation.\n", + "\n", + "**Step 2**: Decide on the supervised learning technique\n", + "\n", + "The end goal of almost every data science problem is usually classification or regression. Deciding the supervised technique for the problem will help you get more clarity on the business statement.\n", + "\n", + "Eg. Let’s look at our problem of reducing crime rate. While the problem of reducing crime rate is more of a policy decision, depending on the choice above, we would have to decide if we need to do classification or regression.\n", + "\n", + "If we need to decrease crime rate of areas with high crime rate, we would need to determine the crime rate rate of an area. This is a regression problem.\n", + "If we need to decrease crime rate of most common type of crime, we would need to determine the most common type of crime in an area. This is a classification problem.\n", + "Again it is a good practice to circle back with the client or the business team who define the problem requirements to clarify on the exact requirement.\n", + "\n", + "**Step 3**: Literature survey\n", + "\n", + "Literature Survey is one of the most important step (and often most ignored step) to approach any problem. If you read any article about components of Data Science, you will find computer science, statistics / math and domain knowledge. As it is quite inhuman for someone to have subject expertise in all possible fields, literature survey can often help in bridging the gaps of inadequate subject expertise.\n", + "\n", + "After going through existing literature related to a problem, I usually try to come up with a set of hypotheses that could form my potential set of features. Going through existing literature helps you understand existing proofs in the domain serving as a guide to take the right direction in your problem. It also helps in interpretation of the results obtained from the prediction models.\n", + "\n", + "Eg. Going back to our problem of reducing crime rate, if you want to predict crime rate of an area, you would consider factors from general knowledge like demographics, neighboring areas, law enforcement rules etc. Literature survey will help you consider additional variables like climate, mode of transportation, divorce rate etc.\n", + "\n", + "**Step 4**: Data cleaning\n", + "\n", + "If you speak with anyone who has spent some time in data science, they will always say that most of their time is spent on cleaning the data. Real world data is always messy. Here are a few common discrepancies in most data-sets and some techniques of how to clean them:\n", + "\n", + "Missing values\n", + "Missing values are values that are blank in the data-set. This can be due to various reasons like value being unknown, unrecorded, confidential etc. Since the reason for a value being missing is not clear, it is hard to guess the value.\n", + "\n", + "You could try different techniques to impute missing values starting with simple methods like column mean, median etc. and complex methods like using machine leaning models to estimate missing values.\n", + "\n", + "Duplicate records\n", + "The challenge with duplicate records is identifying a record being duplicate. Duplicate records often occur while merging data from multiple sources. It could also occur due to human error. To identify duplicates, you could approximate a numeric values to certain decimal places and for text values, fuzzy matching could be a good start. Identification of duplicates could help the data engineering team to improve collection of data to prevent such errors.\n", + "\n", + "Incorrect values\n", + "Incorrect values are mostly due to human error. For Eg. If there is a field called age and the value is 500, it is clearly wrong. Having domain knowledge of the data will help identify such values. A good technique to identify incorrect values for numerical columns could be to manually look at values beyond 3 standard deviations from the mean to check for correctness.\n", + "\n", + "**Step 5**: Feature engineering\n", + "\n", + "Feature Engineering is one of the most important step in any data science problem. Good set of features might make simple models work for your data. If features are not good enough, you might need to go for complex models. Feature Engineering mostly involves:\n", + "\n", + "Removing redundant features\n", + "If a feature is not contributing a lot to the output value or is a function of other features, you can remove the feature. There are various metrics like AIC and BIC to identify redundant features. There are built in packages to perform operations like forward selection, backward selection etc. to remove redundant features.\n", + "\n", + "Transforming a feature\n", + "A feature might have a non linear relationship with the output column. While complex models can capture this with enough data, simple models might not be able to capture this. I usually try to visualize different functions of each column like log, inverse, quadratic, cubic etc. and choose the transformation that looks closest to a normal curve.\n", + "\n", + "**Step 6**: Data modification\n", + "\n", + "Once the data is cleaned, there are a few modifications that might be needed before applying machine learning models. One of the most common modification would be scaling every column to the same range in order to give same weight to all columns. Some of the other required modifications might be data specific Eg. If output column is skewed, you might need to up-sample or down-sample.\n", + "\n", + "Steps 7 through 9 are iterative.\n", + "\n", + "**Step 7**: Modelling\n", + "\n", + "Once I have the data ready, I usually start with trying all the standard machine learning models. If it is a classification problem, a good start will beLogistic Regression, Naive Bayes, k-Nearest Neighbors, Decision Tree etc. If it is a regression problem, you could try linear regression, regression tree etc. The reason for starting with simple models is that simple models have lesser parameters to alter. If we start with a complex model like Neural Network orSupport Vector Machines, there are so many parameters that you could change that trying all options exhaustively might be time consuming.\n", + "\n", + "Each of the machine learning models make some underlying assumptions about the data. For Eg. Linear Regression / Logistic Regression assumes that the data comes from a linear combination of input parameters. Naive Bayes makes an assumption that the input parameters are independent of each other. Having the knowledge of these assumptions can help you judge the results of the different models. It is often helpful to visualize the actual vs predicted values to see these differences.\n", + "\n", + "**Step 8**: Model comparison\n", + "\n", + "One of the most standard technique to evaluate different machine learning models would be through the process of cross validation. I usually choose 10-fold cross validation but you may choose the right cross validation split based on the size of the data. Cross validation basically brings out an average performance of a model. This can help eliminate choosing a model that performs good specific to the data or in other words avoid over-fitting. It is often a good practice to randomize data before cross validation.\n", + "\n", + "A good technique to compare performance of different models is ROC curves. ROC curves help you visualize performance of different models across different thresholds. While ROC curves give a holistic sense of model performance, based on the business decision, you must choose the performance metric like Accuracy, True Positive Rate, False Positive Rate, F1-Score etc.\n", + "\n", + "**Step 9**: Error analysis\n", + "\n", + "At this point, you have tried a bunch of machine learning models and got the results. It is a good usage of time to not just look at the results like accuracy or True Positive Rate but to look at the set of data points that failed in some of the models. This will help you understand the data better and improve the models faster than trying all possible combinations of models. This is the time to try ensemble models like Random Forest, Gradient Boosting or a meta model of your own [Eg. Decision tree + Logistic Regression]. Ensemble models are almost always guaranteed to perform better than any standard model.\n", + "\n", + "**Step 10**: Improving your best model\n", + "\n", + "Once I have the best model, I usually plot training vs testing accuracy [or the right metric] against the number of parameters. Usually, it is easy to check training and testing accuracy against number of data points. Basically this plot will tell you whether your model is over-fitting or under-fitting. This articleDetecting over-fitting vs under-fitting explains this concept clearly.\n", + "\n", + "Understanding if your model is over-fitting or under-fitting will tell you how to proceed with the next steps. If the model is over-fitting, you might consider collecting more data. If the model is under-fitting, you might consider making the models more complex. [Eg. Adding higher order terms to a linear / logistic regression]\n", + "\n", + "**Step 11**: Deploying the model\n", + "\n", + "Once you have your final model, you would want the model to be deployed so that it automatically predicts output for new data point without retraining. While you can derive a formula for simple models like Linear Regression, Logistic Regression, Decision Tree etc. , it is not so straight forward for complex models like SVM, Neural Networks, Random Forest etc. I’m not very familiar with other languages but Python has a library called pickle which allows you to save models and use it to predict output for new data.\n", + "\n", + "**Step 12**: Adding feedback\n", + "\n", + "Usually, data for any data science problem is historical data. While this might be similar to the current data up-to a certain degree, it might not be able to capture the current trends or changes. For Eg. If you are using population as an input parameter, while population from 2015–2016 might vary slightly, if you use the model after 5 years, it might give incorrect results.\n", + "\n", + "One way to deal with this problem is to keep retraining your model with additional data. This might be a good option but retraining a model might be time consuming. Also, if you have applications in which data inflow is huge, this might need to be done at regular intervals. An alternative and a better option would be to use active learning. Active learning basically tries to use real time data as feedback and automatically update the model. The most common approaches to do this are Batch Gradient Descent and Stochastic Gradient Descent. It might be appropriate to use the right approach based on the application.\n", + "\n", + "Concluding remarks\n", + "\n", + "The field of data science is really vast. People spend their lifetime researching on individual topics discussed above. As a data scientist, you would mostly have to solve business problems than researching on individual subtopics. Additionally, you will have to explain the technical process and results to business teams who might not have enough technical knowledge. Thus, while you might not need a very in-depth knowledge of every technique, you need to have enough clarity to abstract the technical process and results and explain it in business terms.[3]\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2-1 Real world Application Vs Competitions\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "600be852c0d28e7c0c5ebb718904ab15a536342c" + }, + "source": [ + "
\n", + "## 3- Problem Definition\n", + "I think one of the important things when you start a new machine learning project is Defining your problem.\n", + "\n", + "Problem Definition has four steps that have illustrated in the picture below:\n", + "\n", + "
\n", + "### 3-1 Problem Feature\n", + "we will use the house prices data set. This dataset contains information about house prices and the target value is:\n", + "\n", + "* SalePrice\n", + "\n", + "\n", + "**Why am I using House price dataset:**\n", + "\n", + "1- This is a good project because it is so well understood.\n", + "\n", + "2- Attributes are numeric and categurical so you have to figure out how to load and handle data.\n", + "\n", + "3- It is a Regression problem, allowing you to practice with perhaps an easier type of supervised learning algorithm.\n", + "\n", + "4- This is a perfect competition for data science students who have completed an online course in machine learning and are looking to expand their skill set before trying a featured competition. \n", + "\n", + "5-Creative feature engineering .\n", + "\n", + "\n", + "
\n", + "### 3-2 Aim\n", + "It is your job to predict the sales price for each house. For each Id in the test set, you must predict the value of the SalePrice variable. \n", + "\n", + "
\n", + "### 3-3 Variables\n", + "The variables are :\n", + "* SalePrice - the property's sale price in dollars. This is the target variable that you're trying to predict.\n", + "* MSSubClass: The building class\n", + "* MSZoning: The general zoning classification\n", + "* LotFrontage: Linear feet of street connected to property\n", + "* LotArea: Lot size in square feet\n", + "* Street: Type of road access\n", + "* Alley: Type of alley access\n", + "* LotShape: General shape of property\n", + "* LandContour: Flatness of the property\n", + "* Utilities: Type of utilities available\n", + "* LotConfig: Lot configuration\n", + "* LandSlope: Slope of property\n", + "* Neighborhood: Physical locations within Ames city limits\n", + "* Condition1: Proximity to main road or railroad\n", + "* Condition2: Proximity to main road or railroad (if a second is present)\n", + "* BldgType: Type of dwelling\n", + "* HouseStyle: Style of dwelling\n", + "* OverallQual: Overall material and finish quality\n", + "* OverallCond: Overall condition rating\n", + "* YearBuilt: Original construction date\n", + "* YearRemodAdd: Remodel date\n", + "* RoofStyle: Type of roof\n", + "* RoofMatl: Roof material\n", + "* Exterior1st: Exterior covering on house\n", + "* Exterior2nd: Exterior covering on house (if more than one material)\n", + "* MasVnrType: Masonry veneer type\n", + "* MasVnrArea: Masonry veneer area in square feet\n", + "* ExterQual: Exterior material quality\n", + "* ExterCond: Present condition of the material on the exterior\n", + "* Foundation: Type of foundation\n", + "* BsmtQual: Height of the basement\n", + "* BsmtCond: General condition of the basement\n", + "* BsmtExposure: Walkout or garden level basement walls\n", + "* BsmtFinType1: Quality of basement finished area\n", + "* BsmtFinSF1: Type 1 finished square feet\n", + "* BsmtFinType2: Quality of second finished area (if present)\n", + "* BsmtFinSF2: Type 2 finished square feet\n", + "* BsmtUnfSF: Unfinished square feet of basement area\n", + "* TotalBsmtSF: Total square feet of basement area\n", + "* Heating: Type of heating\n", + "* HeatingQC: Heating quality and condition\n", + "* CentralAir: Central air conditioning\n", + "* Electrical: Electrical system\n", + "* 1stFlrSF: First Floor square feet\n", + "* 2ndFlrSF: Second floor square feet\n", + "* LowQualFinSF: Low quality finished square feet (all floors)\n", + "* GrLivArea: Above grade (ground) living area square feet\n", + "* BsmtFullBath: Basement full bathrooms\n", + "* BsmtHalfBath: Basement half bathrooms\n", + "* FullBath: Full bathrooms above grade\n", + "* HalfBath: Half baths above grade\n", + "* Bedroom: Number of bedrooms above basement level\n", + "* Kitchen: Number of kitchens\n", + "* KitchenQual: Kitchen quality\n", + "* TotRmsAbvGrd: Total rooms above grade (does not include bathrooms)\n", + "* Functional: Home functionality rating\n", + "* Fireplaces: Number of fireplaces\n", + "* FireplaceQu: Fireplace quality\n", + "* GarageType: Garage location\n", + "* GarageYrBlt: Year garage was built\n", + "* GarageFinish: Interior finish of the garage\n", + "* GarageCars: Size of garage in car capacity\n", + "* GarageArea: Size of garage in square feet\n", + "* GarageQual: Garage quality\n", + "* GarageCond: Garage condition\n", + "* PavedDrive: Paved driveway\n", + "* WoodDeckSF: Wood deck area in square feet\n", + "* OpenPorchSF: Open porch area in square feet\n", + "* EnclosedPorch: Enclosed porch area in square feet\n", + "* 3SsnPorch: Three season porch area in square feet\n", + "* ScreenPorch: Screen porch area in square feet\n", + "* PoolArea: Pool area in square feet\n", + "* PoolQC: Pool quality\n", + "* Fence: Fence quality\n", + "* MiscFeature: Miscellaneous feature not covered in other categories\n", + "* MiscVal: $Value of miscellaneous feature\n", + "* MoSold: Month Sold\n", + "* YrSold: Year Sold\n", + "* SaleType: Type of sale\n", + "* SaleCondition: Condition of sale" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8bb4dfebb521f83543e1d45db3559216dad8f6fb" + }, + "source": [ + "
\n", + "## 4- Inputs & Outputs\n", + "\n", + "\n", + "
\n", + "### 4-1 Inputs\n", + "* train.csv - the training set\n", + "\n", + "
\n", + "\n", + "### 4-2 Outputs\n", + "* sale prices for every record in test.csv" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "89ee0cda57822cd4102eadf8992c5bfe1964d557" + }, + "source": [ + "
\n", + "## 5-Installation\n", + "#### Windows:\n", + "* Anaconda (from https://www.continuum.io) is a free Python distribution for SciPy stack. It is also available for Linux and Mac.\n", + "* Canopy (https://www.enthought.com/products/canopy/) is available as free as well as commercial distribution with full SciPy stack for Windows, Linux and Mac.\n", + "* Python (x,y) is a free Python distribution with SciPy stack and Spyder IDE for Windows OS. (Downloadable from http://python-xy.github.io/)\n", + "#### Linux\n", + "Package managers of respective Linux distributions are used to install one or more packages in SciPy stack.\n", + "\n", + "For Ubuntu Users:\n", + "sudo apt-get install python-numpy python-scipy python-matplotlibipythonipythonnotebook\n", + "python-pandas python-sympy python-nose" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c1793fb141d3338bbc4300874be6ffa5cb1a9139" + }, + "source": [ + "
\n", + "## 5-1 Jupyter notebook\n", + "I strongly recommend installing **Python** and **Jupyter** using the **[Anaconda Distribution](https://www.anaconda.com/download/)**, which includes Python, the Jupyter Notebook, and other commonly used packages for scientific computing and data science.\n", + "\n", + "First, download Anaconda. We recommend downloading Anaconda’s latest Python 3 version.\n", + "\n", + "Second, install the version of Anaconda which you downloaded, following the instructions on the download page.\n", + "\n", + "Congratulations, you have installed Jupyter Notebook! To run the notebook, run the following command at the Terminal (Mac/Linux) or Command Prompt (Windows):" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "abbd1757dde9805758a2cec47a186e31dbc29822" + }, + "source": [ + "> jupyter notebook\n", + "> " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8a70c253d5afa93f07a7a7e048dbb2d7812c8d10" + }, + "source": [ + "
\n", + "## 5-2 Kaggle Kernel\n", + "Kaggle kernel is an environment just like you use jupyter notebook, it's an **extension** of the where in you are able to carry out all the functions of jupyter notebooks plus it has some added tools like forking et al." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "237bbe4e4509c9491ce165e3599c432b979d7b90" + }, + "source": [ + "
\n", + "## 5-3 Colab notebook\n", + "**Colaboratory** is a research tool for machine learning education and research. It’s a Jupyter notebook environment that requires no setup to use.\n", + "### 5-3-1 What browsers are supported?\n", + "Colaboratory works with most major browsers, and is most thoroughly tested with desktop versions of Chrome and Firefox.\n", + "### 5-3-2 Is it free to use?\n", + "Yes. Colaboratory is a research project that is free to use.\n", + "### 5-3-3 What is the difference between Jupyter and Colaboratory?\n", + "Jupyter is the open source project on which Colaboratory is based. Colaboratory allows you to use and share Jupyter notebooks with others without having to download, install, or run anything on your own computer other than a browser." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "fbedcae8843986c2139f18dad4b5f313e6535ac5" + }, + "source": [ + "
\n", + "## 5-5 Loading Packages\n", + "In this kernel we are using the following packages:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "61f49281fdd8592b44c0867225f57e6fce36342c" + }, + "source": [ + " " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", + "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5" + }, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'lightgbm'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 12\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpyplot\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mscipy\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstats\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mstats\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 14\u001b[1;33m \u001b[1;32mimport\u001b[0m \u001b[0mlightgbm\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mlgb\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 15\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mseaborn\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0msns\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 16\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mxgboost\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mxgb\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'lightgbm'" + ] + } + ], + "source": [ + "from sklearn.base import BaseEstimator, TransformerMixin, RegressorMixin, clone\n", + "from sklearn.linear_model import ElasticNet, Lasso, BayesianRidge, LassoLarsIC\n", + "from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor\n", + "from sklearn.model_selection import KFold, cross_val_score, train_test_split\n", + "from sklearn.metrics import classification_report\n", + "from sklearn.metrics import mean_squared_error\n", + "from sklearn.preprocessing import RobustScaler\n", + "from sklearn.metrics import confusion_matrix\n", + "from sklearn.kernel_ridge import KernelRidge\n", + "from sklearn.pipeline import make_pipeline\n", + "from sklearn.metrics import accuracy_score\n", + "import matplotlib.pyplot as plt\n", + "import scipy.stats as stats\n", + "import lightgbm as lgb\n", + "import seaborn as sns\n", + "import xgboost as xgb\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib\n", + "import warnings\n", + "import sklearn\n", + "import scipy\n", + "import numpy\n", + "import json\n", + "import sys\n", + "import csv\n", + "import os\n", + "\n", + "\n", + "\n", + "\n", + "print('matplotlib: {}'.format(matplotlib.__version__))\n", + "print('sklearn: {}'.format(sklearn.__version__))\n", + "print('scipy: {}'.format(scipy.__version__))\n", + "print('seaborn: {}'.format(sns.__version__))\n", + "print('pandas: {}'.format(pd.__version__))\n", + "print('numpy: {}'.format(np.__version__))\n", + "print('Python: {}'.format(sys.version))\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "warnings.filterwarnings('ignore')\n", + "sns.set(color_codes=True)\n", + "plt.style.available\n", + "%matplotlib inline\n", + "%precision 2" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "04ff1a533119d589baee777c21194a951168b0c7" + }, + "source": [ + "
\n", + "## 6- Exploratory Data Analysis(EDA)\n", + " In this section, you'll learn how to use graphical and numerical techniques to begin uncovering the structure of your data. \n", + " \n", + "* Which variables suggest interesting relationships?\n", + "* Which observations are unusual?\n", + "\n", + "By the end of the section, you'll be able to answer these questions and more, while generating graphics that are both insightful and beautiful. then We will review analytical and statistical operations:\n", + "\n", + "* 5-1 Data Collection\n", + "* 5-2 Visualization\n", + "* 5-3 Data Preprocessing\n", + "* 5-4 Data Cleaning\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cedecea930b278f86292367cc28d2996a235a169" + }, + "source": [ + "
\n", + "## 6-1 Data Collection\n", + "**Data collection** is the process of gathering and measuring data, information or any variables of interest in a standardized and established manner that enables the collector to answer or test hypothesis and evaluate outcomes of the particular collection.[techopedia]\n", + "\n", + "\n", + "> **<< Note >>**\n", + "\n", + "> **The rows being the samples and the columns being attributes**\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "9269ae851b744856bce56840637030a16a5877e1", + "collapsed": true + }, + "outputs": [], + "source": [ + "# import Dataset to play with it\n", + "train = pd.read_csv('../input/train.csv')\n", + "test= pd.read_csv('../input/test.csv')\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "58ed9c838069f54de5cf90b20a774c3e236149b3" + }, + "source": [ + "**<< Note 1 >>**\n", + "\n", + "* Each row is an observation (also known as : sample, example, instance, record)\n", + "* Each column is a feature (also known as: Predictor, attribute, Independent Variable, input, regressor, Covariate)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7b5fd1034cd591ebd29fba1c77d342ec2b408d13" + }, + "source": [ + "After loading the data via **pandas**, we should checkout what the content is, description and via the following:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "edd043f8feb76cfe51b79785302ca4936ceb7b51", + "collapsed": true + }, + "outputs": [], + "source": [ + "type(train)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "84d5501bec1fe4bed4f3566522749ff419acd5d3", + "collapsed": true + }, + "outputs": [], + "source": [ + "type(test)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "581b90e6a869c3793472c7edd59091d6d6342fb2" + }, + "source": [ + "## 6-1-1 Statistical Summary\n", + "1- Dimensions of the dataset.\n", + "\n", + "2- Peek at the data itself.\n", + "\n", + "3- Statistical summary of all attributes.\n", + "\n", + "4- Breakdown of the data by the class variable.[7]\n", + "\n", + "Don’t worry, each look at the data is **one command**. These are useful commands that you can use again and again on future projects." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "4b45251be7be77333051fe738639104ae1005fa5", + "collapsed": true + }, + "outputs": [], + "source": [ + "# shape\n", + "print(train.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "52ab14a7403315e4b9181c5578cd53ffe8cefbfd" + }, + "source": [ + "Train has one column more than test why? (yes ==>> **target value**)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "145f02fa22f216885a59cddee46dc08550426fa9", + "collapsed": true + }, + "outputs": [], + "source": [ + "# shape\n", + "print(test.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "c64e9d3e0bf394fb833de94a0fc5c34f69fce24c", + "collapsed": true + }, + "outputs": [], + "source": [ + "#columns*rows\n", + "train.size" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "ab9191a7ba134d3d69112b43ea87a76f7678e7ef", + "collapsed": true + }, + "outputs": [], + "source": [ + "#columns*rows\n", + "test.size" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "277e1998627d6a3ddeff4e913a6b8c3dc81dec96" + }, + "source": [ + "\n", + "We can get a quick idea of how many instances (rows) and how many attributes (columns) the data contains with the shape property.\n", + "\n", + "**You should see 1460 instances and 81 attributes for train and 1459 instances and 80 attributes for test**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "95ee5e18f97bc410df1e54ac74e32cdff2b30755" + }, + "source": [ + "for getting some information about the dataset you can use **info()** command" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "ca840f02925751186f87e402fcb5f637ab1ab8a0", + "collapsed": true + }, + "outputs": [], + "source": [ + "print(train.info())" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b8c23c40749ebc193b55facb2267b488c3a5c7e5" + }, + "source": [ + "**if you want see the type of data and unique value of it you use following script**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "4b90d165a007106ae99809ad28edd75bd8153dd8", + "collapsed": true + }, + "outputs": [], + "source": [ + "train['Fence'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8accfbddf2228274ad412c3ad3be72b4107d6f6c", + "collapsed": true + }, + "outputs": [], + "source": [ + "train[\"HouseStyle\"].value_counts()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ae08b544a8d4202c7d0a47ec83d685e81c91a66d" + }, + "source": [ + "**to check the first 5 rows of the data set, we can use head(5).**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "5899889553c3416b27e93efceddb106eb71f5156", + "collapsed": true + }, + "outputs": [], + "source": [ + "train.head(5) " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1150b6ac3d82562aefd5c64f9f01accee5eace4d" + }, + "source": [ + "**to check out last 5 row of the data set, we use tail() function**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "79339442ff1f53ae1054d794337b9541295d3305", + "collapsed": true + }, + "outputs": [], + "source": [ + "train.tail() " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2c288c3dc8656a872a8529368812546e434d3a22" + }, + "source": [ + "to pop up 5 random rows from the data set, we can use **sample(5)** function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "09eb18d1fcf4a2b73ba2f5ddce99dfa521681140", + "collapsed": true + }, + "outputs": [], + "source": [ + "train.sample(5) " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c8a1cc36348c68fb98d6cb28aa9919fc5f2892f3" + }, + "source": [ + "to give a statistical summary about the dataset, we can use **describe()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "3f7211e96627b9a81c5b620a9ba61446f7719ea3", + "collapsed": true + }, + "outputs": [], + "source": [ + "train.describe() " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "031d16ca235837e889734635ecff193be64b27a4" + }, + "source": [ + "to check out how many null info are on the dataset, we can use **isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8807b632269e2fa734ad26e8513199400fc09a83", + "collapsed": true + }, + "outputs": [], + "source": [ + "train.isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "446e6162e16325213047ff31454813455668b574", + "collapsed": true + }, + "outputs": [], + "source": [ + "train.groupby('SaleType').count()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c2f1eaf0b6dfdc7cc4dace04614e99ed56425d00" + }, + "source": [ + "to print dataset **columns**, we can use columns atribute" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "909d61b33ec06249d0842e6115597bbacf21163f", + "collapsed": true + }, + "outputs": [], + "source": [ + "train.columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "f19c27cec4367f8b176d2609f12d22afbd7e1e0d", + "collapsed": true + }, + "outputs": [], + "source": [ + "type((train.columns))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "22bc5d81c18275ee1fb082c0adbb7a65bdbec4cc" + }, + "source": [ + "**<< Note 2 >>**\n", + "in pandas's data frame you can perform some query such as \"where\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8b545ff7e8367c5ab9c1db710f70b6936ac8422c", + "collapsed": true + }, + "outputs": [], + "source": [ + "train[train['SalePrice']>700000]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a13559aa5f98e70d9cab54c714ac299a63b737f4" + }, + "source": [ + "## 6-1-2Select numberical features and categorical features" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "55651cdda3b812451c08875762b9708155f53ce2", + "collapsed": true + }, + "outputs": [], + "source": [ + "numberic_features=train.select_dtypes(include=[np.number])\n", + "categorical_features=train.select_dtypes(include=[np.object])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "85d23b77d7fb1bb3e000535dc2475aca5862f242" + }, + "source": [ + "## 6-1-3 Target Value Analysis\n", + "as you know **SalePrice** is our target value that we should predict it then now we take a look at it" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "2d891ad744dec398f3920ce0fd9458c00671ed7b", + "collapsed": true + }, + "outputs": [], + "source": [ + "\n", + "train['SalePrice'].describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "09f6d29aa3a63f1d0d3033e7ef6b544fd8035889" + }, + "source": [ + "Flexibly plot a univariate distribution of observations.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "c7dceaddee057bb78a930c519221d3ad43eed360", + "collapsed": true + }, + "outputs": [], + "source": [ + "sns.distplot(train['SalePrice']);\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "a4fe40f3d3f57bf1369c7b9847c5c05ec704c0b6", + "collapsed": true + }, + "outputs": [], + "source": [ + "#skewness and kurtosis\n", + "print(\"Skewness: %f\" % train['SalePrice'].skew())\n", + "print(\"Kurtosis: %f\" % train['SalePrice'].kurt())" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "055772bd170aa8018aabd85106b76675802c33b3" + }, + "source": [ + "
\n", + "## 6-2 Visualization\n", + "**Data visualization** is the presentation of data in a pictorial or graphical format. It enables decision makers to see analytics presented visually, so they can grasp difficult concepts or identify new patterns.\n", + "\n", + "With interactive visualization, you can take the concept a step further by using technology to drill down into charts and graphs for more detail, interactively changing what data you see and how it’s processed.[SAS]\n", + "\n", + " In this section I show you **11 plots** with **matplotlib** and **seaborn** that is listed in the blew picture:\n", + " \n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b0014a7a52e714996bc443981c853095926d20e5" + }, + "source": [ + "
\n", + "### 6-2-1 Scatter plot\n", + "\n", + "Scatter plot Purpose To identify the type of relationship (if any) between two quantitative variables\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "af099546eed64ebc796403d4139cb4c977c27b03", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Modify the graph above by assigning each species an individual color.\n", + "columns = ['SalePrice','OverallQual','TotalBsmtSF','GrLivArea','GarageArea','FullBath','YearBuilt','YearRemodAdd']\n", + "sns.FacetGrid(train[columns], hue=\"OverallQual\", size=5) \\\n", + " .map(plt.scatter, \"OverallQual\", \"SalePrice\") \\\n", + " .add_legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d1c7b62b5f8cba427bca13049256365141655372" + }, + "source": [ + "
\n", + "### 6-2-2 Box\n", + "In descriptive statistics, a **box plot** or boxplot is a method for graphically depicting groups of numerical data through their quartiles. Box plots may also have lines extending vertically from the boxes (whiskers) indicating variability outside the upper and lower quartiles, hence the terms box-and-whisker plot and box-and-whisker diagram.[wikipedia]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "0655e20f31a582f861d391308a088778cd7eaae9", + "collapsed": true + }, + "outputs": [], + "source": [ + "train[columns].plot(y='SalePrice',x='OverallQual',kind='box')\n", + "plt.figure()\n", + "#This gives us a much clearer idea of the distribution of the input attributes:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "ad8774475841cac4bb2559b64b70252b360a9aa8", + "collapsed": true + }, + "outputs": [], + "source": [ + "data = pd.concat([train['SalePrice'], train['OverallQual']], axis=1)\n", + "f, ax = plt.subplots(figsize=(12, 8))\n", + "fig = sns.boxplot(x='OverallQual', y=\"SalePrice\", data=data)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "f7f6426fd44bcd77d35a5fdbc8c4fc4f18d991ad", + "collapsed": true + }, + "outputs": [], + "source": [ + "# To plot the species data using a box plot:\n", + "\n", + "sns.boxplot(x=\"OverallQual\", y=\"SalePrice\", data=train[columns] )\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "7b193e4aa7e6fb337d3f65c334849094addd097a", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Use Seaborn's striplot to add data points on top of the box plot \n", + "# Insert jitter=True so that the data points remain scattered and not piled into a verticle line.\n", + "# Assign ax to each axis, so that each plot is ontop of the previous axis. \n", + "\n", + "ax= sns.boxplot(x=\"OverallQual\", y=\"SalePrice\", data=train[columns])\n", + "ax= sns.stripplot(x=\"OverallQual\", y=\"SalePrice\", data=train[columns], jitter=True, edgecolor=\"gray\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "56adbafa89c117118621c72b3b7cb19edc21298e", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Tweek the plot above to change fill and border color color using ax.artists.\n", + "# Assing ax.artists a variable name, and insert the box number into the corresponding brackets\n", + "\n", + "ax= sns.boxplot(x=\"OverallQual\", y=\"SalePrice\", data=train[columns])\n", + "ax= sns.stripplot(x=\"OverallQual\", y=\"SalePrice\", data=train[columns], jitter=True, edgecolor=\"gray\")\n", + "\n", + "boxtwo = ax.artists[2]\n", + "boxtwo.set_facecolor('red')\n", + "boxtwo.set_edgecolor('black')\n", + "boxthree=ax.artists[1]\n", + "boxthree.set_facecolor('yellow')\n", + "boxthree.set_edgecolor('black')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "743a92c3c2fff1a1f99845518247f7971ad18b7c" + }, + "source": [ + "
\n", + "### 6-2-3 Histogram\n", + "We can also create a **histogram** of each input variable to get an idea of the distribution.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "5da0520ed3e738ee8814b2d91843ed4acec2b6e6", + "collapsed": true + }, + "outputs": [], + "source": [ + "# histograms\n", + "train.hist(figsize=(15,20))\n", + "plt.figure()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b4e3de19781686010c6038f0e3076eb678398169" + }, + "source": [ + "It looks like perhaps two of the input variables have a Gaussian distribution. This is useful to note as we can use algorithms that can exploit this assumption.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3bbff56707484f88625eb8ef309b712ba03f939e" + }, + "source": [ + "
\n", + "### 6-2-4 Multivariate Plots\n", + "Now we can look at the interactions between the variables.\n", + "\n", + "First, let’s look at scatterplots of all pairs of attributes. This can be helpful to spot structured relationships between input variables." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "eb4e5d117e4ef40d7668632f42130206a5537bd0", + "collapsed": true + }, + "outputs": [], + "source": [ + "\n", + "# scatter plot matrix\n", + "pd.plotting.scatter_matrix(train[columns],figsize=(10,10))\n", + "plt.figure()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "de7fea7986071fafbe0b93933e3beda445cbe373" + }, + "source": [ + "Note the diagonal grouping of some pairs of attributes. This suggests a high correlation and a predictable relationship." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e0f696ec021ec99c1058a62e22c8b73082fe6fa7" + }, + "source": [ + "
\n", + "### 6-2-5 violinplots" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "e352d2f8340609adf4bf6718b1d2ecee0fa730b5", + "collapsed": true + }, + "outputs": [], + "source": [ + "# violinplots on petal-length for each species\n", + "sns.violinplot(data=train,x=\"Functional\", y=\"SalePrice\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0ed35bceb87051e56316d35a630334518e8b8c64" + }, + "source": [ + "
\n", + "### 6-2-6 pairplot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "b80350add6f9a742f10bffc4b497562f8bebea95", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Using seaborn pairplot to see the bivariate relation between each pair of features\n", + "sns.set()\n", + "columns = ['SalePrice','OverallQual','TotalBsmtSF','GrLivArea','GarageArea','FullBath','YearBuilt','YearRemodAdd']\n", + "sns.pairplot(train[columns],size = 2 ,kind ='scatter')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "fb187bcc0fb51e53f8abe9e3952c6ae5c3177411" + }, + "source": [ + "From the plot, we can see that the species setosa is separataed from the other two across all feature combinations\n", + "\n", + "We can also replace the histograms shown in the diagonal of the pairplot by kde." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2544d3c2dd34a360d295019d8cb597c7ef8f66bc" + }, + "source": [ + "
\n", + "### 6-2-7 kdeplot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "1d07222b89303b386e9e824d52cc73c045667f25", + "collapsed": true + }, + "outputs": [], + "source": [ + "# seaborn's kdeplot, plots univariate or bivariate density estimates.\n", + "#Size can be changed by tweeking the value used\n", + "columns = ['SalePrice','OverallQual','TotalBsmtSF','GrLivArea','GarageArea','FullBath','YearBuilt','YearRemodAdd']\n", + "sns.FacetGrid(train[columns], hue=\"OverallQual\", size=5).map(sns.kdeplot, \"YearBuilt\").add_legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "560d8e8f17bacefaf8c3855a9648f26b82fdee9b" + }, + "source": [ + "
\n", + "### 6-2-8 jointplot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "4adb4da16ea61e0f1a12bc9925dfbbaaa81e0360", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Use seaborn's jointplot to make a hexagonal bin plot\n", + "#Set desired size and ratio and choose a color.\n", + "columns = ['SalePrice','OverallQual','TotalBsmtSF','GrLivArea','GarageArea','FullBath','YearBuilt','YearRemodAdd']\n", + "sns.jointplot(x=\"OverallQual\", y=\"SalePrice\", data=train[columns], size=10,ratio=10, kind='hex',color='green')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3768e31e990bfe4c2ff7b45087fbba85e0560d00" + }, + "source": [ + "
\n", + "### 6-2-9 andrews_curves" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "937b6856d109001db14a3ac99568df45efbe1070", + "collapsed": true + }, + "outputs": [], + "source": [ + "#In Pandas use Andrews Curves to plot and visualize data structure.\n", + "#Each multivariate observation is transformed into a curve and represents the coefficients of a Fourier series.\n", + "#This useful for detecting outliers in times series data.\n", + "#Use colormap to change the color of the curves\n", + "columns = ['SalePrice','OverallQual','TotalBsmtSF','GrLivArea','GarageArea','FullBath','YearBuilt','YearRemodAdd']\n", + "from pandas.tools.plotting import andrews_curves\n", + "andrews_curves(train[columns], \"YearBuilt\",colormap='rainbow')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "263eaa9d2bfad0f8c68b6e8e874bdc11a6e802ac", + "collapsed": true + }, + "outputs": [], + "source": [ + "# we will use seaborn jointplot shows bivariate scatterplots and univariate histograms with Kernel density \n", + "# estimation in the same figure\n", + "columns = ['SalePrice','OverallQual','TotalBsmtSF','GrLivArea','GarageArea','FullBath','YearBuilt','YearRemodAdd']\n", + "sns.jointplot(x=\"SalePrice\", y=\"YearBuilt\", data=train[columns], size=6, kind='kde', color='#800000', space=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8e73333289d17dd648b7b2112d7fe3fe7ea444d0" + }, + "source": [ + "
\n", + "### 6-2-10 Heatmap" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "3100955ca9dc61ac7d435e9c064d10d06f26afa7", + "collapsed": true + }, + "outputs": [], + "source": [ + "plt.figure(figsize=(7,4)) \n", + "columns = ['SalePrice','OverallQual','TotalBsmtSF','GrLivArea','GarageArea','FullBath','YearBuilt','YearRemodAdd']\n", + "sns.heatmap(train[columns].corr(),annot=True,cmap='cubehelix_r') #draws heatmap with input as the correlation matrix calculted by(iris.corr())\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b81dbdd5dd8cb92a86b1f7114ffb6f088458a527" + }, + "source": [ + "
\n", + "### 6-2-11 radviz" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "33fed3027d7242227d612a84bbb42b012356091b", + "collapsed": true + }, + "outputs": [], + "source": [ + "# A final multivariate visualization technique pandas has is radviz\n", + "# Which puts each feature as a point on a 2D plane, and then simulates\n", + "# having each sample attached to those points through a spring weighted\n", + "# by the relative value for that feature\n", + "from pandas.tools.plotting import radviz\n", + "columns = ['SalePrice','OverallQual','TotalBsmtSF','GrLivArea','GarageArea','FullBath','YearBuilt','YearRemodAdd']\n", + "radviz(train[columns], \"OverallQual\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5af51158a5bc342947c553392e3d1665ac24ba62" + }, + "source": [ + "### 6-2-12 Conclusion\n", + "we have used Python to apply data visualization tools to the House prices dataset. Color and size changes were made to the data points in scatterplots. I changed the border and fill color of the boxplot and violin, respectively." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "91dda1f631cf4ed362162501aaaac6d19cfd6cc7" + }, + "source": [ + "
\n", + "## 6-3 Data Preprocessing\n", + "**Data preprocessing** refers to the transformations applied to our data before feeding it to the algorithm.\n", + " \n", + "Data Preprocessing is a technique that is used to convert the raw data into a clean data set. In other words, whenever the data is gathered from different sources it is collected in raw format which is not feasible for the analysis.\n", + "there are plenty of steps for data preprocessing and we just listed some of them :\n", + "* removing Target column (id)\n", + "* Sampling (without replacement)\n", + "* Making part of iris unbalanced and balancing (with undersampling and SMOTE)\n", + "* Introducing missing values and treating them (replacing by average values)\n", + "* Noise filtering\n", + "* Data discretization\n", + "* Normalization and standardization\n", + "* PCA analysis\n", + "* Feature selection (filter, embedded, wrapper)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1f8ae3a438f0fd7104974daa57b42b29f079ec45" + }, + "source": [ + "## 6-3-1 removing ID" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "3487e242b0c6ef83c93730c1b8eab2e231fff269", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Save Id and drop it\n", + "train_ID=train['Id']\n", + "test_ID=test['Id']\n", + "train.drop('Id',axis=1,inplace=True)\n", + "test.drop('Id',axis=1,inplace=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1756ad43f10e017c7d3af76f640b8c948a65fe02" + }, + "source": [ + "## 6-3-2 Noise filtering" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "1c92b300076a232321c915857d8a7c5685a97865", + "collapsed": true + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots()\n", + "ax.scatter(x = train['GrLivArea'], y = train['SalePrice'])\n", + "plt.ylabel('SalePrice', fontsize=13)\n", + "plt.xlabel('GrLivArea', fontsize=13)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "90f79293f40d0558bad91352ff70482bdfb77041" + }, + "source": [ + "We can see at the bottom right two with extremely large GrLivArea that are of a low price. These values are huge oultliers. Therefore, we can safely delete them." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "def67c793d2e365f07e90b190ae8211c0afd886c", + "collapsed": true + }, + "outputs": [], + "source": [ + "\n", + "#Deleting outliers\n", + "train = train.drop(train[(train['GrLivArea']>4000) & (train['SalePrice']<300000)].index)\n", + "\n", + "#Check the graphic again\n", + "fig, ax = plt.subplots()\n", + "ax.scatter(train['GrLivArea'], train['SalePrice'])\n", + "plt.ylabel('SalePrice', fontsize=13)\n", + "plt.xlabel('GrLivArea', fontsize=13)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "183141b0c586eaf07701807196a48f792e10e374" + }, + "source": [ + "## 6-3-3 Target Variable\n", + "SalePrice is the variable we need to predict. So let's do some analysis on this variable first." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8e9795273f50c45e5e582bf8af30facfb9087b8f", + "collapsed": true + }, + "outputs": [], + "source": [ + "sns.distplot(train['SalePrice'] , fit=norm);\n", + "\n", + "# Get the fitted parameters used by the function\n", + "(mu, sigma) = norm.fit(train['SalePrice'])\n", + "print( '\\n mu = {:.2f} and sigma = {:.2f}\\n'.format(mu, sigma))\n", + "\n", + "#Now plot the distribution\n", + "plt.legend(['Normal dist. ($\\mu=$ {:.2f} and $\\sigma=$ {:.2f} )'.format(mu, sigma)],\n", + " loc='best')\n", + "plt.ylabel('Frequency')\n", + "plt.title('SalePrice distribution')\n", + "\n", + "#Get also the QQ-plot\n", + "fig = plt.figure()\n", + "res = stats.probplot(train['SalePrice'], plot=plt)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1440b564cfa5fdd2059d684af5b1b1711658d929" + }, + "source": [ + "The target variable is right skewed. As (linear) models love normally distributed data , we need to transform this variable and make it more normally distributed.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ce6f0b8460a6ed6e0170885e25cb8a9c15199746" + }, + "source": [ + "Log-transformation of the target variable" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "e13d451c514c35bf24c6bbd634bf6162cd0bfbed", + "collapsed": true + }, + "outputs": [], + "source": [ + "#We use the numpy fuction log1p which applies log(1+x) to all elements of the column\n", + "train[\"SalePrice\"] = np.log1p(train[\"SalePrice\"])\n", + "\n", + "#Check the new distribution \n", + "sns.distplot(train['SalePrice'] , fit=norm);\n", + "\n", + "# Get the fitted parameters used by the function\n", + "(mu, sigma) = norm.fit(train['SalePrice'])\n", + "print( '\\n mu = {:.2f} and sigma = {:.2f}\\n'.format(mu, sigma))\n", + "\n", + "#Now plot the distribution\n", + "plt.legend(['Normal dist. ($\\mu=$ {:.2f} and $\\sigma=$ {:.2f} )'.format(mu, sigma)],\n", + " loc='best')\n", + "plt.ylabel('Frequency')\n", + "plt.title('SalePrice distribution')\n", + "\n", + "#Get also the QQ-plot\n", + "fig = plt.figure()\n", + "res = stats.probplot(train['SalePrice'], plot=plt)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "46e63104bd10792804b7605f4aed43ef1b8b87b4" + }, + "source": [ + "The skew seems now corrected and the data appears more normally distributed." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "247350c88346f931d7987b4aacc3b55cae11d092" + }, + "source": [ + "## 6-3-4 Feature selection\n", + "let's first concatenate the train and test data in the same dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "5584b10a50a819f6e5eb684efa01e69536d6e910", + "collapsed": true + }, + "outputs": [], + "source": [ + "ntrain = train.shape[0]\n", + "ntest = test.shape[0]\n", + "y_train = train.SalePrice.values\n", + "all_data = pd.concat((train, test)).reset_index(drop=True)\n", + "all_data.drop(['SalePrice'], axis=1, inplace=True)\n", + "print(\"all_data size is : {}\".format(all_data.shape))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "58270b83638976da66c1aef6ba97017e01ef6dde" + }, + "source": [ + "
\n", + "## 6-4 Data Cleaning\n", + "When dealing with real-world data, dirty data is the norm rather than the exception. We continuously need to predict correct values, impute missing ones, and find links between various data artefacts such as schemas and records. We need to stop treating data cleaning as a piecemeal exercise (resolving different types of errors in isolation), and instead leverage all signals and resources (such as constraints, available statistics, and dictionaries) to accurately predict corrective actions.\n", + "\n", + "The primary goal of data cleaning is to detect and remove errors and anomalies to increase the value of data in analytics and decision making. While it has been the focus of many researchers for several years, individual problems have been addressed separately. These include missing value imputation, outliers detection, transformations, integrity constraints violations detection and repair, consistent query answering, deduplication, and many other related problems such as profiling and constraints mining.[8]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "4f37f9033ce20f8f60455419038b643e227f4eb7", + "collapsed": true + }, + "outputs": [], + "source": [ + "all_data_na = (all_data.isnull().sum() / len(all_data)) * 100\n", + "all_data_na = all_data_na.drop(all_data_na[all_data_na == 0].index).sort_values(ascending=False)[:30]\n", + "missing_data = pd.DataFrame({'Missing Ratio' :all_data_na})\n", + "missing_data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "bcf718ed92a7d790f04ebcb5fe493109ad9a0d2d", + "collapsed": true + }, + "outputs": [], + "source": [ + "f, ax = plt.subplots(figsize=(15, 12))\n", + "plt.xticks(rotation='90')\n", + "sns.barplot(x=all_data_na.index, y=all_data_na)\n", + "plt.xlabel('Features', fontsize=15)\n", + "plt.ylabel('Percent of missing values', fontsize=15)\n", + "plt.title('Percent missing data by feature', fontsize=15)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "4014c62255af00a70ab63c1b03d5a510e88f3126", + "collapsed": true + }, + "outputs": [], + "source": [ + "#Correlation map to see how features are correlated with SalePrice\n", + "corrmat = train.corr()\n", + "plt.subplots(figsize=(12,9))\n", + "sns.heatmap(corrmat, vmax=0.9, square=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "acebef6cacdb2d377f8c66e15781021b4dd623bd" + }, + "source": [ + "## 6-4-1 Imputing missing values" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "f4d374f64c50c29c534e286798033fd4586c929a" + }, + "source": [ + "We impute them by proceeding sequentially through features with missing values\n", + "\n", + "PoolQC : data description says NA means \"No Pool\". That make sense, given the huge ratio of missing value (+99%) and majority of houses have no Pool at all in general. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "cb7ae811b45fd5288639b3933a7cb76117d9e918", + "collapsed": true + }, + "outputs": [], + "source": [ + "all_data[\"PoolQC\"] = all_data[\"PoolQC\"].fillna(\"None\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a698f185d0bc10d50adad032d5aa4df6e971fc42" + }, + "source": [ + "MiscFeature : data description says NA means \"no misc feature\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "63c20b645a9b8885ed0421ab0fbe4f7e762c1e80", + "collapsed": true + }, + "outputs": [], + "source": [ + "all_data[\"MiscFeature\"] = all_data[\"MiscFeature\"].fillna(\"None\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6d8cdccabe631475c6911ff2ddacb0c8c0bb099d" + }, + "source": [ + "Alley : data description says NA means \"no alley access\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "d513b815317dfa095ca32de6158fe34e3d8b630a", + "collapsed": true + }, + "outputs": [], + "source": [ + "all_data[\"Alley\"] = all_data[\"Alley\"].fillna(\"None\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8df3b4eafb903e8961425d37f5a956f748454049" + }, + "source": [ + "Fence : data description says NA means \"no fence\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "ca718d780d6523767d8721ffe2a5776f3318c21e", + "collapsed": true + }, + "outputs": [], + "source": [ + "all_data[\"Fence\"] = all_data[\"Fence\"].fillna(\"None\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c00dc7a0fee9e12df4b679ce15acc0b68bdb9269" + }, + "source": [ + "FireplaceQu : data description says NA means \"no fireplace\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d264ec2eda6739c5468edec9524fbc88545ab023" + }, + "source": [ + "LotFrontage : Since the area of each street connected to the house property most likely have a similar area to other houses in its neighborhood , we can fill in missing values by the median LotFrontage of the neighborhood." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "043fd8463ce9e9ce9a204c36793cacb0bc9e7da7", + "collapsed": true + }, + "outputs": [], + "source": [ + "#Group by neighborhood and fill in missing value by the median LotFrontage of all the neighborhood\n", + "all_data[\"LotFrontage\"] = all_data.groupby(\"Neighborhood\")[\"LotFrontage\"].transform(\n", + " lambda x: x.fillna(x.median()))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a3de6297ee4b1c8aa191f371b7c4439c44dc6d17" + }, + "source": [ + "GarageType, GarageFinish, GarageQual and GarageCond : Replacing missing data with None" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "9e891f0e9f74e1c73df4eb4b6998ca0145ef2cf4", + "collapsed": true + }, + "outputs": [], + "source": [ + "for col in ('GarageType', 'GarageFinish', 'GarageQual', 'GarageCond'):\n", + " all_data[col] = all_data[col].fillna('None')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e187c90a90d3ef19ad70502804cbf5793811dea6" + }, + "source": [ + "GarageYrBlt, GarageArea and GarageCars : Replacing missing data with 0 (Since No garage = no cars in such garage.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "2299992e24897468a34357457ced6e0a48ed4af9", + "collapsed": true + }, + "outputs": [], + "source": [ + "for col in ('GarageYrBlt', 'GarageArea', 'GarageCars'):\n", + " all_data[col] = all_data[col].fillna(0)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a318163bdbb74721c4312ca50f07dc707be96421" + }, + "source": [ + "BsmtFinSF1, BsmtFinSF2, BsmtUnfSF, TotalBsmtSF, BsmtFullBath and BsmtHalfBath : missing values are likely zero for having no basement" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "626a388694a294d0e4a7196c30b78bcdcd76049f", + "collapsed": true + }, + "outputs": [], + "source": [ + "for col in ('BsmtFinSF1', 'BsmtFinSF2', 'BsmtUnfSF','TotalBsmtSF', 'BsmtFullBath', 'BsmtHalfBath'):\n", + " all_data[col] = all_data[col].fillna(0)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "f162adc10c70d93058400053d931117ada886366" + }, + "source": [ + "BsmtQual, BsmtCond, BsmtExposure, BsmtFinType1 and BsmtFinType2 : For all these categorical basement-related features, NaN means that there is no basement." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "3837452a0ff8a13fa9a586460de324990cde7681", + "collapsed": true + }, + "outputs": [], + "source": [ + "for col in ('BsmtQual', 'BsmtCond', 'BsmtExposure', 'BsmtFinType1', 'BsmtFinType2'):\n", + " all_data[col] = all_data[col].fillna('None')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "aeb4b6ba3f5dc22d2611fdef40bf013689adf6cc" + }, + "source": [ + "MasVnrArea and MasVnrType : NA most likely means no masonry veneer for these houses. We can fill 0 for the area and None for the type. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "5943301908ccdbc320559eebe0fa039768f483b0", + "collapsed": true + }, + "outputs": [], + "source": [ + "all_data[\"MasVnrType\"] = all_data[\"MasVnrType\"].fillna(\"None\")\n", + "all_data[\"MasVnrArea\"] = all_data[\"MasVnrArea\"].fillna(0)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6995b801412966716240fedc95de48ff0fc30324" + }, + "source": [ + "MSZoning (The general zoning classification) : 'RL' is by far the most common value. So we can fill in missing values with 'RL'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "a3e9c2f67447bdc7bcff9cede08347e57ccd6fc8", + "collapsed": true + }, + "outputs": [], + "source": [ + "all_data['MSZoning'] = all_data['MSZoning'].fillna(all_data['MSZoning'].mode()[0])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "bbed86b2cc9be58ccc55717819609fa942959c8a" + }, + "source": [ + "Functional : data description says NA means typical" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "27c02c0abbb923d886107d3c905b7445c6be002a", + "collapsed": true + }, + "outputs": [], + "source": [ + "all_data[\"Functional\"] = all_data[\"Functional\"].fillna(\"Typ\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "04a55104d376a28fea4b2c266fa85a93e98ffa09" + }, + "source": [ + "Electrical : It has one NA value. Since this feature has mostly 'SBrkr', we can set that for the missing value." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "c3c3270ff082eece4143bc770fc8e47f4d170868", + "collapsed": true + }, + "outputs": [], + "source": [ + "all_data['Electrical'] = all_data['Electrical'].fillna(all_data['Electrical'].mode()[0])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a606a784f53964b90f8d24378c29f5260d81d203" + }, + "source": [ + "KitchenQual: Only one NA value, and same as Electrical, we set 'TA' (which is the most frequent) for the missing value in KitchenQual." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "b43419729c3a74bcfde64130805fbbd339d80ca0", + "collapsed": true + }, + "outputs": [], + "source": [ + "all_data['KitchenQual'] = all_data['KitchenQual'].fillna(all_data['KitchenQual'].mode()[0])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c712c673465bed46fca7a5b66d35413fb1ba90d9" + }, + "source": [ + "Exterior1st and Exterior2nd : Again Both Exterior 1 & 2 have only one missing value. We will just substitute in the most common string" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "7546dfbcafcc04f672654be1408eeb554882aef2", + "collapsed": true + }, + "outputs": [], + "source": [ + "\n", + "all_data['Exterior1st'] = all_data['Exterior1st'].fillna(all_data['Exterior1st'].mode()[0])\n", + "all_data['Exterior2nd'] = all_data['Exterior2nd'].fillna(all_data['Exterior2nd'].mode()[0])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c05bad0b6eedbf0ff8942f7662f2749e704e3c5a" + }, + "source": [ + "SaleType : Fill in again with most frequent which is \"WD\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "60cb2511b84686d61d82a89b3915357eef08cafb", + "collapsed": true + }, + "outputs": [], + "source": [ + "all_data['SaleType'] = all_data['SaleType'].fillna(all_data['SaleType'].mode()[0])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d4ab263a1327656d5e9cb8d93f05e4438b1447b6" + }, + "source": [ + "MSSubClass : Na most likely means No building class. We can replace missing values with None" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "91b32f390489a4bf3002d45a170437cadc0799b6", + "collapsed": true + }, + "outputs": [], + "source": [ + "all_data['MSSubClass'] = all_data['MSSubClass'].fillna(\"None\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "fe8d0d7661c16446e9b3f8064ce9a7c9347833c2" + }, + "source": [ + "FireplaceQu : data description says NA means \"no fireplace\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "a641088283207c78240be69c4df50b3199bbc4ac", + "collapsed": true + }, + "outputs": [], + "source": [ + "all_data[\"FireplaceQu\"] = all_data[\"FireplaceQu\"].fillna(\"None\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d51b94089f5c8fd6275a3baf26b0af3b71304053" + }, + "source": [ + "Is there any remaining missing value ?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "58706fd1525df4334577d7e5c8e502dd745af232", + "collapsed": true + }, + "outputs": [], + "source": [ + "#Check remaining missing values if any \n", + "all_data_na = (all_data.isnull().sum() / len(all_data)) * 100\n", + "all_data_na = all_data_na.drop(all_data_na[all_data_na == 0].index).sort_values(ascending=False)\n", + "missing_data = pd.DataFrame({'Missing Ratio' :all_data_na})\n", + "missing_data.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d41b34f251f139dc614e88b13b6732ff89ab2a7e" + }, + "source": [ + "## 6-4-2 More features engeneering\n", + "\n", + "Transforming some numerical variables that are really categorical" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "62cb0d2fdf9f7c43145549f95b50fd3a72645db9", + "collapsed": true + }, + "outputs": [], + "source": [ + "#MSSubClass=The building class\n", + "all_data['MSSubClass'] = all_data['MSSubClass'].apply(str)\n", + "\n", + "\n", + "#Changing OverallCond into a categorical variable\n", + "all_data['OverallCond'] = all_data['OverallCond'].astype(str)\n", + "\n", + "\n", + "#Year and month sold are transformed into categorical features.\n", + "all_data['YrSold'] = all_data['YrSold'].astype(str)\n", + "all_data['MoSold'] = all_data['MoSold'].astype(str)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8596a40b16f3b2ff70f89e9bf6c96d37d597c0bb" + }, + "source": [ + "Label Encoding some categorical variables that may contain information in their ordering set" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "76dfc757e71406abfe2a46c6f9b5d851833173c8", + "collapsed": true + }, + "outputs": [], + "source": [ + "from sklearn.preprocessing import LabelEncoder\n", + "cols = ('FireplaceQu', 'BsmtQual', 'BsmtCond', 'GarageQual', 'GarageCond', \n", + " 'ExterQual', 'ExterCond','HeatingQC', 'PoolQC', 'KitchenQual', 'BsmtFinType1', \n", + " 'BsmtFinType2', 'Functional', 'Fence', 'BsmtExposure', 'GarageFinish', 'LandSlope',\n", + " 'LotShape', 'PavedDrive', 'Street', 'Alley', 'CentralAir', 'MSSubClass', 'OverallCond', \n", + " 'YrSold', 'MoSold')\n", + "# process columns, apply LabelEncoder to categorical features\n", + "for c in cols:\n", + " lbl = LabelEncoder() \n", + " lbl.fit(list(all_data[c].values)) \n", + " all_data[c] = lbl.transform(list(all_data[c].values))\n", + "\n", + "# shape \n", + "print('Shape all_data: {}'.format(all_data.shape))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1323b314e494ba961bd78e1d37b66fd1b04b4848" + }, + "source": [ + "Adding one more important feature" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "f06c3bf68559168f99b3e6d986555957871621c5" + }, + "source": [ + "Since area related features are very important to determine house prices, we add one more feature which is the total area of basement, first and second floor areas of each house" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "e798f483a3a92e37830225d644a9656e34dcd5d6", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Adding total sqfootage feature \n", + "all_data['TotalSF'] = all_data['TotalBsmtSF'] + all_data['1stFlrSF'] + all_data['2ndFlrSF']" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "fd970993e0049ba8f5b5e245e59667a264a1c2ab" + }, + "source": [ + "## 6-5 Skewed features" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "e6084e1a715325e47d110bb30aed9b662b205444", + "collapsed": true + }, + "outputs": [], + "source": [ + "numeric_feats = all_data.dtypes[all_data.dtypes != \"object\"].index\n", + "\n", + "# Check the skew of all numerical features\n", + "skewed_feats = all_data[numeric_feats].apply(lambda x: skew(x.dropna())).sort_values(ascending=False)\n", + "print(\"\\nSkew in numerical features: \\n\")\n", + "skewness = pd.DataFrame({'Skew' :skewed_feats})\n", + "skewness.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "dfa3549f9cca97eb1d11cc398b24f4c2f3bcc6e1" + }, + "source": [ + "Box Cox Transformation of (highly) skewed features\n", + "\n", + "We use the scipy function boxcox1p which computes the Box-Cox transformation of \n", + "1+x\n", + "1+x\n", + ".\n", + "Note that setting \n", + "λ=0\n", + "λ=0\n", + "is equivalent to log1p used above for the target variable.\n", + "See this page for more details on Box Cox Transformation as well as the scipy function's page" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "cf4f2d574d61654a43bd5d51e905a43bee1a8a63", + "collapsed": true + }, + "outputs": [], + "source": [ + "skewness = skewness[abs(skewness) > 0.75]\n", + "print(\"There are {} skewed numerical features to Box Cox transform\".format(skewness.shape[0]))\n", + "\n", + "from scipy.special import boxcox1p\n", + "skewed_features = skewness.index\n", + "lam = 0.15\n", + "for feat in skewed_features:\n", + " #all_data[feat] += 1\n", + " all_data[feat] = boxcox1p(all_data[feat], lam)\n", + " \n", + "#all_data[skewed_features] = np.log1p(all_data[skewed_features])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8a5c392b2a526da1525c8a932371b09e7d17e72d" + }, + "source": [ + "Getting dummy categorical features" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "289cf5d2051cdc8ecaf6c65526ddb57ca400a28a", + "collapsed": true + }, + "outputs": [], + "source": [ + "all_data = pd.get_dummies(all_data)\n", + "print(all_data.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "bf69a592a66f806c9609d5d541701f8f94248531" + }, + "source": [ + "Getting the new train and test sets." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "cc337f5030c5e10f798ea070e9db87ad205a219a", + "collapsed": true + }, + "outputs": [], + "source": [ + "train = all_data[:ntrain]\n", + "test = all_data[ntrain:]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "72cc7c7b60a33390a85b16bc34e3b9e424650cdd" + }, + "source": [ + "
\n", + "## 7- Model Deployment\n", + "In this section have been applied more than **20 learning algorithms** that play an important rule in your experiences and improve your knowledge in case of ML technique.\n", + "\n", + "> **<< Note 3 >>** : The results shown here may be slightly different for your analysis because, for example, the neural network algorithms use random number generators for fixing the initial value of the weights (starting points) of the neural networks, which often result in obtaining slightly different (local minima) solutions each time you run the analysis. Also note that changing the seed for the random number generator used to create the train, test, and validation samples can change your results." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b2a62eeab41a10c4dce5a17d519325e19b928c1c" + }, + "source": [ + "## 7-1 Define a cross validation strategy" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "361202ee3e187da7bdfedfe0a22ccee402fc5529" + }, + "source": [ + "We use the cross_val_score function of **Sklearn**. However this function has not a shuffle attribut, we add then one line of code, in order to shuffle the dataset prior to cross-validation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8c0a3918a57cf88a08f7784d71271bdda86a8b1a", + "collapsed": true + }, + "outputs": [], + "source": [ + "\n", + "#Validation function\n", + "n_folds = 5\n", + "\n", + "def rmsle_cv(model):\n", + " kf = KFold(n_folds, shuffle=True, random_state=42).get_n_splits(train.values)\n", + " rmse= np.sqrt(-cross_val_score(model, train.values, y_train, scoring=\"neg_mean_squared_error\", cv = kf))\n", + " return(rmse)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8750d7d0b0d3c19b43fc27beec890055022635df" + }, + "source": [ + "## 7-2 Model" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "23e42d6030d979df79b81ea58da45effc31f0d4d" + }, + "source": [ + "## 7-2-1 LASSO Regression \n", + "In statistics and machine learning, lasso (least absolute shrinkage and selection operator) is a **regression analysis** method that performs both variable selection and regularization in order to enhance the prediction accuracy and interpretability of the statistical model it produces. Lasso was originally formulated for least squares models and this simple case reveals a substantial amount about the behavior of the estimator, including its relationship to ridge regression and best subset selection and the connections between lasso coefficient estimates and so-called soft thresholding. It also reveals that (like standard linear regression) the coefficient estimates need not be unique if covariates are collinear.\n", + "\n", + "This model may be very sensitive to outliers. So we need to made it more robust on them. For that we use the sklearn's Robustscaler() method on pipeline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "a0edc93fc6298e4696eaab1430467b8262037f2a", + "collapsed": true + }, + "outputs": [], + "source": [ + "lasso = make_pipeline(RobustScaler(), Lasso(alpha =0.0005, random_state=1))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8273cf674a3d93d8d5edc8849ea0ca81d80c453c" + }, + "source": [ + "## 7-2-2 Elastic Net Regression \n", + "the elastic net is a regularized regression method that linearly combines the L1 and L2 penalties of the lasso and ridge methods.\n", + "again made robust to outliers" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "36065ec44f99bffc2e61904d444918a3f8d15104", + "collapsed": true + }, + "outputs": [], + "source": [ + "ENet = make_pipeline(RobustScaler(), ElasticNet(alpha=0.0005, l1_ratio=.9, random_state=3))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8e92dca79ca3291620ba7d07de3c9879030aee90" + }, + "source": [ + "## 7-2-3 Kernel Ridge Regression \n", + "Kernel ridge regression (KRR) combines Ridge Regression (linear least squares with l2-norm regularization) with the kernel trick. It thus learns a linear function in the space induced by the respective kernel and the data. For non-linear kernels, this corresponds to a non-linear function in the original space." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "d9242099a3f75392efe6dfe23a06f8b472bbf6b0", + "collapsed": true + }, + "outputs": [], + "source": [ + "KRR = KernelRidge(alpha=0.6, kernel='polynomial', degree=2, coef0=2.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0b2f64974b200069e751844090c32044a2ab08aa" + }, + "source": [ + "## 7-2-4 Gradient Boosting Regression\n", + "With huber loss that makes it robust to outliers" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "29f20b79c32d0083171671453399bf28f0677ce2", + "collapsed": true + }, + "outputs": [], + "source": [ + "GBoost = GradientBoostingRegressor(n_estimators=3000, learning_rate=0.05,\n", + " max_depth=4, max_features='sqrt',\n", + " min_samples_leaf=15, min_samples_split=10, \n", + " loss='huber', random_state =5)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "55a55a6cfca539fd9a8b110ab6143a09e4962972" + }, + "source": [ + "## 7-2-5 XGBoost" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "64f958e8e7e3c4880eb23a7f654f405a3dbff163", + "collapsed": true + }, + "outputs": [], + "source": [ + "model_xgb = xgb.XGBRegressor(colsample_bytree=0.4603, gamma=0.0468, \n", + " learning_rate=0.05, max_depth=3, \n", + " min_child_weight=1.7817, n_estimators=2200,\n", + " reg_alpha=0.4640, reg_lambda=0.8571,\n", + " subsample=0.5213, silent=1,\n", + " random_state =7, nthread = -1)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1fef6eaaf1cf5780ec134cf3e1017750e500dfc7" + }, + "source": [ + "## 7-2-6 LightGBM" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "b08f8cb3235e85ccd962dd26c030ca38c6c1ddb5", + "collapsed": true + }, + "outputs": [], + "source": [ + "model_lgb = lgb.LGBMRegressor(objective='regression',num_leaves=5,\n", + " learning_rate=0.05, n_estimators=720,\n", + " max_bin = 55, bagging_fraction = 0.8,\n", + " bagging_freq = 5, feature_fraction = 0.2319,\n", + " feature_fraction_seed=9, bagging_seed=9,\n", + " min_data_in_leaf =6, min_sum_hessian_in_leaf = 11)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "4811c189f288825b7a3d4a73589bea75966ad6f8" + }, + "source": [ + "\n", + "## 7-2-7 Base models scores\n", + "\n", + "Let's see how these base models perform on the data by evaluating the cross-validation rmsle error" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "432cfefb8fd0481baa754ee142900da68e1242a1", + "collapsed": true + }, + "outputs": [], + "source": [ + "score = rmsle_cv(lasso)\n", + "print(\"\\nLasso score: {:.4f} ({:.4f})\\n\".format(score.mean(), score.std()))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "1a1b1442588e8027fa3e322336d429a6bd0a0698", + "collapsed": true + }, + "outputs": [], + "source": [ + "score = rmsle_cv(ENet)\n", + "print(\"ElasticNet score: {:.4f} ({:.4f})\\n\".format(score.mean(), score.std()))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "2733161f02721cfedf6fb87b75c4ec02373c11b6", + "collapsed": true + }, + "outputs": [], + "source": [ + "score = rmsle_cv(KRR)\n", + "print(\"Kernel Ridge score: {:.4f} ({:.4f})\\n\".format(score.mean(), score.std()))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "f47e020b29a530a41262d1e303c30db37b73adc7", + "collapsed": true + }, + "outputs": [], + "source": [ + "score = rmsle_cv(GBoost)\n", + "print(\"Gradient Boosting score: {:.4f} ({:.4f})\\n\".format(score.mean(), score.std()))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "c2a6b8ae0750efcb82851f5bca5fe1052e105a78", + "collapsed": true + }, + "outputs": [], + "source": [ + "score = rmsle_cv(model_xgb)\n", + "print(\"Xgboost score: {:.4f} ({:.4f})\\n\".format(score.mean(), score.std()))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "abc7b6c547d39419c7b61924cfea81b55f353a4c", + "collapsed": true + }, + "outputs": [], + "source": [ + "score = rmsle_cv(model_lgb)\n", + "print(\"LGBM score: {:.4f} ({:.4f})\\n\" .format(score.mean(), score.std()))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "feb056008e799b45ef4c34b09a288606c9587857" + }, + "source": [ + "Stacking models" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "bce02781b5a07d0fdd1e5f53908d2d7c7410b1a3" + }, + "source": [ + "Simplest Stacking approach : Averaging base models\n", + "We begin with this simple approach of averaging base models. We build a new class to extend scikit-learn with our model and also to laverage encapsulation and code reuse (inheritance)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "47bf4fec6d2a926a04b3eecfe4c32a092b00037f" + }, + "source": [ + "Averaged base models class" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "45f494d3bf43f0e7d54802555ea75e52c3d71a0b", + "collapsed": true + }, + "outputs": [], + "source": [ + "\n", + "class AveragingModels(BaseEstimator, RegressorMixin, TransformerMixin):\n", + " def __init__(self, models):\n", + " self.models = models\n", + " \n", + " # we define clones of the original models to fit the data in\n", + " def fit(self, X, y):\n", + " self.models_ = [clone(x) for x in self.models]\n", + " \n", + " # Train cloned base models\n", + " for model in self.models_:\n", + " model.fit(X, y)\n", + "\n", + " return self\n", + " \n", + " #Now we do the predictions for cloned models and average them\n", + " def predict(self, X):\n", + " predictions = np.column_stack([\n", + " model.predict(X) for model in self.models_\n", + " ])\n", + " return np.mean(predictions, axis=1) " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0a277422c2957a9780a723b78d3420dded90876c" + }, + "source": [ + "\n", + "Averaged base models score\n", + "\n", + "We just average four models here ENet, GBoost, KRR and lasso. Of course we could easily add more models in the mix." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "219536044d4f86e0787854c61e47fe066d7c74ea", + "collapsed": true + }, + "outputs": [], + "source": [ + "averaged_models = AveragingModels(models = (ENet, GBoost, KRR, lasso))\n", + "\n", + "score = rmsle_cv(averaged_models)\n", + "print(\" Averaged base models score: {:.4f} ({:.4f})\\n\".format(score.mean(), score.std()))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "d7c6a15fce609c765ea854ac4b6b159eaad681a1", + "collapsed": true + }, + "outputs": [], + "source": [ + "class StackingAveragedModels(BaseEstimator, RegressorMixin, TransformerMixin):\n", + " def __init__(self, base_models, meta_model, n_folds=5):\n", + " self.base_models = base_models\n", + " self.meta_model = meta_model\n", + " self.n_folds = n_folds\n", + " # We again fit the data on clones of the original models\n", + " def fit(self, X, y):\n", + " self.base_models_ = [list() for x in self.base_models]\n", + " self.meta_model_ = clone(self.meta_model)\n", + " kfold = KFold(n_splits=self.n_folds, shuffle=True, random_state=156)\n", + " \n", + " # Train cloned base models then create out-of-fold predictions\n", + " # that are needed to train the cloned meta-model\n", + " out_of_fold_predictions = np.zeros((X.shape[0], len(self.base_models)))\n", + " for i, model in enumerate(self.base_models):\n", + " for train_index, holdout_index in kfold.split(X, y):\n", + " instance = clone(model)\n", + " self.base_models_[i].append(instance)\n", + " instance.fit(X[train_index], y[train_index])\n", + " y_pred = instance.predict(X[holdout_index])\n", + " out_of_fold_predictions[holdout_index, i] = y_pred\n", + " \n", + " # Now train the cloned meta-model using the out-of-fold predictions as new feature\n", + " self.meta_model_.fit(out_of_fold_predictions, y)\n", + " return self\n", + " #Do the predictions of all base models on the test data and use the averaged predictions as \n", + " #meta-features for the final prediction which is done by the meta-model\n", + " def predict(self, X):\n", + " meta_features = np.column_stack([\n", + " np.column_stack([model.predict(X) for model in base_models]).mean(axis=1)\n", + " for base_models in self.base_models_ ])\n", + " return self.meta_model_.predict(meta_features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "4906e53b1fcf685b054ea884cc2281b613a78918", + "collapsed": true + }, + "outputs": [], + "source": [ + "stacked_averaged_models = StackingAveragedModels(base_models = (ENet, GBoost, KRR),\n", + " meta_model = lasso)\n", + "\n", + "score = rmsle_cv(stacked_averaged_models)\n", + "print(\"Stacking Averaged models score: {:.4f} ({:.4f})\".format(score.mean(), score.std()))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "a67243faf709d764428b6b7451aa61e917da0bab", + "collapsed": true + }, + "outputs": [], + "source": [ + "def rmsle(y, y_pred):\n", + " return np.sqrt(mean_squared_error(y, y_pred))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "45edc8ed4de1313734facc50567a74ccf7f7075b", + "collapsed": true + }, + "outputs": [], + "source": [ + "#StackedRegressor\n", + "#Final Training and Prediction\n", + "stacked_averaged_models.fit(train.values, y_train)\n", + "stacked_train_pred = stacked_averaged_models.predict(train.values)\n", + "stacked_pred = np.expm1(stacked_averaged_models.predict(test.values))\n", + "print(rmsle(y_train, stacked_train_pred))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "ca83502d37f38b6cce5928220538749982352f2e", + "collapsed": true + }, + "outputs": [], + "source": [ + "#XGBoost\n", + "model_xgb.fit(train, y_train)\n", + "xgb_train_pred = model_xgb.predict(train)\n", + "xgb_pred = np.expm1(model_xgb.predict(test))\n", + "print(rmsle(y_train, xgb_train_pred))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "9611bf793492523c101226912037b78ad54b2bdc", + "collapsed": true + }, + "outputs": [], + "source": [ + "#lightGBM\n", + "model_lgb.fit(train, y_train)\n", + "lgb_train_pred = model_lgb.predict(train)\n", + "lgb_pred = np.expm1(model_lgb.predict(test.values))\n", + "print(rmsle(y_train, lgb_train_pred))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "435ff580ab2d73f4709ad871af48f254ddabbc7b", + "collapsed": true + }, + "outputs": [], + "source": [ + "'''RMSE on the entire Train data when averaging'''\n", + "\n", + "print('RMSLE score on train data:')\n", + "print(rmsle(y_train,stacked_train_pred*0.70 +\n", + " xgb_train_pred*0.15 + lgb_train_pred*0.15 ))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9e18ae69a5e4a12f5b4042f91e65b88da7d1b6ba" + }, + "source": [ + "## 7-2-8 Ensemble prediction" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "f82001f0b991dd92f701d9781e2fe5c5dbfbdaac", + "collapsed": true + }, + "outputs": [], + "source": [ + "ensemble = stacked_pred*0.70 + xgb_pred*0.15 + lgb_pred*0.15" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "b1839af2f826485972714196d8ea8ee17400808e", + "collapsed": true + }, + "outputs": [], + "source": [ + "sub = pd.DataFrame()\n", + "sub['Id'] = test_ID\n", + "sub['SalePrice'] = ensemble\n", + "sub.to_csv('submission.csv',index=False)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "97adc471c068fbd8d36ca19a4db0d98b0924c731" + }, + "source": [ + "-----------------\n", + "
\n", + "## 8- Conclusion" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1adfb5ba84e0f1d8fba58a2fca30546ead095047", + "collapsed": true + }, + "source": [ + "In this kernel, I have tried to cover all the parts related to the process of ML with a variety of Python packages and I know that there are still some problems then I hope to get your feedback to improve it." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cf3679a51c72dbe2d2549b5fe97e4ac5f1fa0fa0" + }, + "source": [ + "you can follow me on:\n", + "> ###### [ GitHub](https://github.com/mjbahmani)\n", + "> ###### [Kaggle](https://www.kaggle.com/mjbahmani/)\n", + "\n", + "--------------------------------------\n", + "\n", + " **I hope you find this kernel helpful and some UPVOTES would be very much appreciated** " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_cell_guid": "79c7e3d0-c299-4dcb-8224-4455121ee9b0", + "_uuid": "d629ff2d2480ee46fbb7e2d37f6b5fab8052498a", + "collapsed": true + }, + "source": [ + "
\n", + "# 9- References\n", + "* [1] [https://skymind.ai/wiki/machine-learning-workflow](https://skymind.ai/wiki/machine-learning-workflow)\n", + "* [2] [Problem-define](https://machinelearningmastery.com/machine-learning-in-python-step-by-step/)\n", + "* [3] [Sklearn](http://scikit-learn.org/)\n", + "* [4] [machine-learning-in-python-step-by-step](https://machinelearningmastery.com/machine-learning-in-python-step-by-step/)\n", + "* [5] [Data Cleaning](http://wp.sigmod.org/?p=2288)\n", + "* [6] [kaggle kernel](https://www.kaggle.com/serigne/stacked-regressions-top-4-on-leaderboard)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Not Completed Yet !!! " + ] + } + ], + "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.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/20 ML Algorithms For House Prices Prediction/data_description.txt b/20 ML Algorithms For House Prices Prediction/data_description.txt new file mode 100644 index 0000000..cba0710 --- /dev/null +++ b/20 ML Algorithms For House Prices Prediction/data_description.txt @@ -0,0 +1,523 @@ +MSSubClass: Identifies the type of dwelling involved in the sale. + + 20 1-STORY 1946 & NEWER ALL STYLES + 30 1-STORY 1945 & OLDER + 40 1-STORY W/FINISHED ATTIC ALL AGES + 45 1-1/2 STORY - UNFINISHED ALL AGES + 50 1-1/2 STORY FINISHED ALL AGES + 60 2-STORY 1946 & NEWER + 70 2-STORY 1945 & OLDER + 75 2-1/2 STORY ALL AGES + 80 SPLIT OR MULTI-LEVEL + 85 SPLIT FOYER + 90 DUPLEX - ALL STYLES AND AGES + 120 1-STORY PUD (Planned Unit Development) - 1946 & NEWER + 150 1-1/2 STORY PUD - ALL AGES + 160 2-STORY PUD - 1946 & NEWER + 180 PUD - MULTILEVEL - INCL SPLIT LEV/FOYER + 190 2 FAMILY CONVERSION - ALL STYLES AND AGES + +MSZoning: Identifies the general zoning classification of the sale. + + A Agriculture + C Commercial + FV Floating Village Residential + I Industrial + RH Residential High Density + RL Residential Low Density + RP Residential Low Density Park + RM Residential Medium Density + +LotFrontage: Linear feet of street connected to property + +LotArea: Lot size in square feet + +Street: Type of road access to property + + Grvl Gravel + Pave Paved + +Alley: Type of alley access to property + + Grvl Gravel + Pave Paved + NA No alley access + +LotShape: General shape of property + + Reg Regular + IR1 Slightly irregular + IR2 Moderately Irregular + IR3 Irregular + +LandContour: Flatness of the property + + Lvl Near Flat/Level + Bnk Banked - Quick and significant rise from street grade to building + HLS Hillside - Significant slope from side to side + Low Depression + +Utilities: Type of utilities available + + AllPub All public Utilities (E,G,W,& S) + NoSewr Electricity, Gas, and Water (Septic Tank) + NoSeWa Electricity and Gas Only + ELO Electricity only + +LotConfig: Lot configuration + + Inside Inside lot + Corner Corner lot + CulDSac Cul-de-sac + FR2 Frontage on 2 sides of property + FR3 Frontage on 3 sides of property + +LandSlope: Slope of property + + Gtl Gentle slope + Mod Moderate Slope + Sev Severe Slope + +Neighborhood: Physical locations within Ames city limits + + Blmngtn Bloomington Heights + Blueste Bluestem + BrDale Briardale + BrkSide Brookside + ClearCr Clear Creek + CollgCr College Creek + Crawfor Crawford + Edwards Edwards + Gilbert Gilbert + IDOTRR Iowa DOT and Rail Road + MeadowV Meadow Village + Mitchel Mitchell + Names North Ames + NoRidge Northridge + NPkVill Northpark Villa + NridgHt Northridge Heights + NWAmes Northwest Ames + OldTown Old Town + SWISU South & West of Iowa State University + Sawyer Sawyer + SawyerW Sawyer West + Somerst Somerset + StoneBr Stone Brook + Timber Timberland + Veenker Veenker + +Condition1: Proximity to various conditions + + Artery Adjacent to arterial street + Feedr Adjacent to feeder street + Norm Normal + RRNn Within 200' of North-South Railroad + RRAn Adjacent to North-South Railroad + PosN Near positive off-site feature--park, greenbelt, etc. + PosA Adjacent to postive off-site feature + RRNe Within 200' of East-West Railroad + RRAe Adjacent to East-West Railroad + +Condition2: Proximity to various conditions (if more than one is present) + + Artery Adjacent to arterial street + Feedr Adjacent to feeder street + Norm Normal + RRNn Within 200' of North-South Railroad + RRAn Adjacent to North-South Railroad + PosN Near positive off-site feature--park, greenbelt, etc. + PosA Adjacent to postive off-site feature + RRNe Within 200' of East-West Railroad + RRAe Adjacent to East-West Railroad + +BldgType: Type of dwelling + + 1Fam Single-family Detached + 2FmCon Two-family Conversion; originally built as one-family dwelling + Duplx Duplex + TwnhsE Townhouse End Unit + TwnhsI Townhouse Inside Unit + +HouseStyle: Style of dwelling + + 1Story One story + 1.5Fin One and one-half story: 2nd level finished + 1.5Unf One and one-half story: 2nd level unfinished + 2Story Two story + 2.5Fin Two and one-half story: 2nd level finished + 2.5Unf Two and one-half story: 2nd level unfinished + SFoyer Split Foyer + SLvl Split Level + +OverallQual: Rates the overall material and finish of the house + + 10 Very Excellent + 9 Excellent + 8 Very Good + 7 Good + 6 Above Average + 5 Average + 4 Below Average + 3 Fair + 2 Poor + 1 Very Poor + +OverallCond: Rates the overall condition of the house + + 10 Very Excellent + 9 Excellent + 8 Very Good + 7 Good + 6 Above Average + 5 Average + 4 Below Average + 3 Fair + 2 Poor + 1 Very Poor + +YearBuilt: Original construction date + +YearRemodAdd: Remodel date (same as construction date if no remodeling or additions) + +RoofStyle: Type of roof + + Flat Flat + Gable Gable + Gambrel Gabrel (Barn) + Hip Hip + Mansard Mansard + Shed Shed + +RoofMatl: Roof material + + ClyTile Clay or Tile + CompShg Standard (Composite) Shingle + Membran Membrane + Metal Metal + Roll Roll + Tar&Grv Gravel & Tar + WdShake Wood Shakes + WdShngl Wood Shingles + +Exterior1st: Exterior covering on house + + AsbShng Asbestos Shingles + AsphShn Asphalt Shingles + BrkComm Brick Common + BrkFace Brick Face + CBlock Cinder Block + CemntBd Cement Board + HdBoard Hard Board + ImStucc Imitation Stucco + MetalSd Metal Siding + Other Other + Plywood Plywood + PreCast PreCast + Stone Stone + Stucco Stucco + VinylSd Vinyl Siding + Wd Sdng Wood Siding + WdShing Wood Shingles + +Exterior2nd: Exterior covering on house (if more than one material) + + AsbShng Asbestos Shingles + AsphShn Asphalt Shingles + BrkComm Brick Common + BrkFace Brick Face + CBlock Cinder Block + CemntBd Cement Board + HdBoard Hard Board + ImStucc Imitation Stucco + MetalSd Metal Siding + Other Other + Plywood Plywood + PreCast PreCast + Stone Stone + Stucco Stucco + VinylSd Vinyl Siding + Wd Sdng Wood Siding + WdShing Wood Shingles + +MasVnrType: Masonry veneer type + + BrkCmn Brick Common + BrkFace Brick Face + CBlock Cinder Block + None None + Stone Stone + +MasVnrArea: Masonry veneer area in square feet + +ExterQual: Evaluates the quality of the material on the exterior + + Ex Excellent + Gd Good + TA Average/Typical + Fa Fair + Po Poor + +ExterCond: Evaluates the present condition of the material on the exterior + + Ex Excellent + Gd Good + TA Average/Typical + Fa Fair + Po Poor + +Foundation: Type of foundation + + BrkTil Brick & Tile + CBlock Cinder Block + PConc Poured Contrete + Slab Slab + Stone Stone + Wood Wood + +BsmtQual: Evaluates the height of the basement + + Ex Excellent (100+ inches) + Gd Good (90-99 inches) + TA Typical (80-89 inches) + Fa Fair (70-79 inches) + Po Poor (<70 inches + NA No Basement + +BsmtCond: Evaluates the general condition of the basement + + Ex Excellent + Gd Good + TA Typical - slight dampness allowed + Fa Fair - dampness or some cracking or settling + Po Poor - Severe cracking, settling, or wetness + NA No Basement + +BsmtExposure: Refers to walkout or garden level walls + + Gd Good Exposure + Av Average Exposure (split levels or foyers typically score average or above) + Mn Mimimum Exposure + No No Exposure + NA No Basement + +BsmtFinType1: Rating of basement finished area + + GLQ Good Living Quarters + ALQ Average Living Quarters + BLQ Below Average Living Quarters + Rec Average Rec Room + LwQ Low Quality + Unf Unfinshed + NA No Basement + +BsmtFinSF1: Type 1 finished square feet + +BsmtFinType2: Rating of basement finished area (if multiple types) + + GLQ Good Living Quarters + ALQ Average Living Quarters + BLQ Below Average Living Quarters + Rec Average Rec Room + LwQ Low Quality + Unf Unfinshed + NA No Basement + +BsmtFinSF2: Type 2 finished square feet + +BsmtUnfSF: Unfinished square feet of basement area + +TotalBsmtSF: Total square feet of basement area + +Heating: Type of heating + + Floor Floor Furnace + GasA Gas forced warm air furnace + GasW Gas hot water or steam heat + Grav Gravity furnace + OthW Hot water or steam heat other than gas + Wall Wall furnace + +HeatingQC: Heating quality and condition + + Ex Excellent + Gd Good + TA Average/Typical + Fa Fair + Po Poor + +CentralAir: Central air conditioning + + N No + Y Yes + +Electrical: Electrical system + + SBrkr Standard Circuit Breakers & Romex + FuseA Fuse Box over 60 AMP and all Romex wiring (Average) + FuseF 60 AMP Fuse Box and mostly Romex wiring (Fair) + FuseP 60 AMP Fuse Box and mostly knob & tube wiring (poor) + Mix Mixed + +1stFlrSF: First Floor square feet + +2ndFlrSF: Second floor square feet + +LowQualFinSF: Low quality finished square feet (all floors) + +GrLivArea: Above grade (ground) living area square feet + +BsmtFullBath: Basement full bathrooms + +BsmtHalfBath: Basement half bathrooms + +FullBath: Full bathrooms above grade + +HalfBath: Half baths above grade + +Bedroom: Bedrooms above grade (does NOT include basement bedrooms) + +Kitchen: Kitchens above grade + +KitchenQual: Kitchen quality + + Ex Excellent + Gd Good + TA Typical/Average + Fa Fair + Po Poor + +TotRmsAbvGrd: Total rooms above grade (does not include bathrooms) + +Functional: Home functionality (Assume typical unless deductions are warranted) + + Typ Typical Functionality + Min1 Minor Deductions 1 + Min2 Minor Deductions 2 + Mod Moderate Deductions + Maj1 Major Deductions 1 + Maj2 Major Deductions 2 + Sev Severely Damaged + Sal Salvage only + +Fireplaces: Number of fireplaces + +FireplaceQu: Fireplace quality + + Ex Excellent - Exceptional Masonry Fireplace + Gd Good - Masonry Fireplace in main level + TA Average - Prefabricated Fireplace in main living area or Masonry Fireplace in basement + Fa Fair - Prefabricated Fireplace in basement + Po Poor - Ben Franklin Stove + NA No Fireplace + +GarageType: Garage location + + 2Types More than one type of garage + Attchd Attached to home + Basment Basement Garage + BuiltIn Built-In (Garage part of house - typically has room above garage) + CarPort Car Port + Detchd Detached from home + NA No Garage + +GarageYrBlt: Year garage was built + +GarageFinish: Interior finish of the garage + + Fin Finished + RFn Rough Finished + Unf Unfinished + NA No Garage + +GarageCars: Size of garage in car capacity + +GarageArea: Size of garage in square feet + +GarageQual: Garage quality + + Ex Excellent + Gd Good + TA Typical/Average + Fa Fair + Po Poor + NA No Garage + +GarageCond: Garage condition + + Ex Excellent + Gd Good + TA Typical/Average + Fa Fair + Po Poor + NA No Garage + +PavedDrive: Paved driveway + + Y Paved + P Partial Pavement + N Dirt/Gravel + +WoodDeckSF: Wood deck area in square feet + +OpenPorchSF: Open porch area in square feet + +EnclosedPorch: Enclosed porch area in square feet + +3SsnPorch: Three season porch area in square feet + +ScreenPorch: Screen porch area in square feet + +PoolArea: Pool area in square feet + +PoolQC: Pool quality + + Ex Excellent + Gd Good + TA Average/Typical + Fa Fair + NA No Pool + +Fence: Fence quality + + GdPrv Good Privacy + MnPrv Minimum Privacy + GdWo Good Wood + MnWw Minimum Wood/Wire + NA No Fence + +MiscFeature: Miscellaneous feature not covered in other categories + + Elev Elevator + Gar2 2nd Garage (if not described in garage section) + Othr Other + Shed Shed (over 100 SF) + TenC Tennis Court + NA None + +MiscVal: $Value of miscellaneous feature + +MoSold: Month Sold (MM) + +YrSold: Year Sold (YYYY) + +SaleType: Type of sale + + WD Warranty Deed - Conventional + CWD Warranty Deed - Cash + VWD Warranty Deed - VA Loan + New Home just constructed and sold + COD Court Officer Deed/Estate + Con Contract 15% Down payment regular terms + ConLw Contract Low Down payment and low interest + ConLI Contract Low Interest + ConLD Contract Low Down + Oth Other + +SaleCondition: Condition of sale + + Normal Normal Sale + Abnorml Abnormal Sale - trade, foreclosure, short sale + AdjLand Adjoining Land Purchase + Alloca Allocation - two linked properties with separate deeds, typically condo with a garage unit + Family Sale between family members + Partial Home was not completed when last assessed (associated with New Homes) diff --git a/20 ML Algorithms For House Prices Prediction/sample_submission.csv b/20 ML Algorithms For House Prices Prediction/sample_submission.csv new file mode 100644 index 0000000..a5547c9 --- /dev/null +++ b/20 ML Algorithms For House Prices Prediction/sample_submission.csv @@ -0,0 +1,1460 @@ +Id,SalePrice +1461,169277.0524984 +1462,187758.393988768 +1463,183583.683569555 +1464,179317.47751083 +1465,150730.079976501 +1466,177150.989247307 +1467,172070.659229164 +1468,175110.956519547 +1469,162011.698831665 +1470,160726.247831419 +1471,157933.279456005 +1472,145291.245020389 +1473,159672.017631819 +1474,164167.518301885 +1475,150891.638244053 +1476,179460.96518734 +1477,185034.62891405 +1478,182352.192644656 +1479,183053.458213802 +1480,187823.339254278 +1481,186544.114327568 +1482,158230.77520516 +1483,190552.829321091 +1484,147183.67487199 +1485,185855.300905493 +1486,174350.470676986 +1487,201740.620690863 +1488,162986.378895754 +1489,162330.199085679 +1490,165845.938616539 +1491,180929.622876974 +1492,163481.501519718 +1493,187798.076714233 +1494,198822.198942566 +1495,194868.409899858 +1496,152605.298564403 +1497,147797.702836811 +1498,150521.96899297 +1499,146991.630153739 +1500,150306.307814534 +1501,151164.372534604 +1502,151133.706960953 +1503,156214.042540726 +1504,171992.760735142 +1505,173214.912549738 +1506,192429.187345783 +1507,190878.69508543 +1508,194542.544135519 +1509,191849.439072822 +1510,176363.773907793 +1511,176954.185412429 +1512,176521.216975696 +1513,179436.704810176 +1514,220079.756777048 +1515,175502.918109444 +1516,188321.073833569 +1517,163276.324450004 +1518,185911.366293097 +1519,171392.830997252 +1520,174418.207020775 +1521,179682.709603774 +1522,179423.751581665 +1523,171756.918091777 +1524,166849.638174419 +1525,181122.168676666 +1526,170934.462746566 +1527,159738.292580329 +1528,174445.759557658 +1529,174706.363659627 +1530,164507.672539365 +1531,163602.512172832 +1532,154126.270249525 +1533,171104.853481351 +1534,167735.39270528 +1535,183003.613338104 +1536,172580.381161499 +1537,165407.889104689 +1538,176363.773907793 +1539,175182.950898522 +1540,190757.177789246 +1541,167186.995771991 +1542,167839.376779276 +1543,173912.421165137 +1544,154034.917445551 +1545,156002.955794336 +1546,168173.94329857 +1547,168882.437104132 +1548,168173.94329857 +1549,157580.177551642 +1550,181922.15256011 +1551,155134.227842592 +1552,188885.573319552 +1553,183963.193012381 +1554,161298.762306335 +1555,188613.66763056 +1556,175080.111822945 +1557,174744.400305232 +1558,168175.911336919 +1559,182333.472575006 +1560,158307.206742274 +1561,193053.055502348 +1562,175031.089987177 +1563,160713.294602908 +1564,173186.215014436 +1565,191736.7598055 +1566,170401.630997116 +1567,164626.577880222 +1568,205469.409444832 +1569,209561.784211885 +1570,182271.503072356 +1571,178081.549427793 +1572,178425.956138831 +1573,162015.318511503 +1574,181722.420373045 +1575,156705.730169433 +1576,182902.420342386 +1577,157574.595395085 +1578,184380.739100813 +1579,169364.469225677 +1580,175846.179822063 +1581,189673.295302136 +1582,174401.317715566 +1583,179021.448718583 +1584,189196.845337149 +1585,139647.095720655 +1586,161468.198288911 +1587,171557.32317862 +1588,179447.36804185 +1589,169611.619017694 +1590,172088.872655744 +1591,171190.624128768 +1592,154850.508361878 +1593,158617.655719941 +1594,209258.33693701 +1595,177939.027626751 +1596,194631.100299584 +1597,213618.871562568 +1598,198342.504228533 +1599,138607.971472497 +1600,150778.958976731 +1601,146966.230339786 +1602,162182.59620952 +1603,176825.940961269 +1604,152799.812402444 +1605,180322.322067129 +1606,177508.027228367 +1607,208029.642652019 +1608,181987.282510201 +1609,160172.72797397 +1610,176761.317654248 +1611,176515.497545231 +1612,176270.453065471 +1613,183050.846258475 +1614,150011.102062216 +1615,159270.537808667 +1616,163419.663729346 +1617,163399.983345859 +1618,173364.161505756 +1619,169556.835902417 +1620,183690.595995738 +1621,176980.914909382 +1622,204773.36222471 +1623,174728.655998442 +1624,181873.458244461 +1625,177322.000823979 +1626,193927.939041863 +1627,181715.622732304 +1628,199270.841200324 +1629,177109.589956218 +1630,153909.578271486 +1631,162931.203336223 +1632,166386.7567182 +1633,173719.30379824 +1634,179757.925656704 +1635,179007.601964376 +1636,180370.808623106 +1637,185102.616730563 +1638,198825.563452058 +1639,184294.576009142 +1640,200443.7920562 +1641,181294.784484153 +1642,174354.336267919 +1643,172023.677781517 +1644,181666.922855025 +1645,179024.491269586 +1646,178324.191575907 +1647,184534.676687694 +1648,159397.250378784 +1649,178430.966728182 +1650,177743.799385967 +1651,179395.305519087 +1652,151713.38474815 +1653,151713.38474815 +1654,168434.977996215 +1655,153999.100311019 +1656,164096.097354123 +1657,166335.403036551 +1658,163020.725375757 +1659,155862.510668829 +1660,182760.651095509 +1661,201912.270622883 +1662,185988.233987516 +1663,183778.44888032 +1664,170935.85921771 +1665,184468.908382254 +1666,191569.089663229 +1667,232991.025583822 +1668,180980.721388278 +1669,164279.13048219 +1670,183859.460411109 +1671,185922.465682076 +1672,191742.778119363 +1673,199954.072465842 +1674,180690.274752587 +1675,163099.3096358 +1676,140791.922472443 +1677,166481.86647592 +1678,172080.434496773 +1679,191719.161659178 +1680,160741.098612515 +1681,157829.546854733 +1682,196896.748596341 +1683,159675.423990355 +1684,182084.790901946 +1685,179233.926374487 +1686,155774.270901623 +1687,181354.326716058 +1688,179605.563663918 +1689,181609.34866147 +1690,178221.531623281 +1691,175559.920735795 +1692,200328.822792041 +1693,178630.060559899 +1694,177174.535221728 +1695,172515.687368714 +1696,204032.992922943 +1697,176023.232787689 +1698,202202.073341595 +1699,181734.480075862 +1700,183982.158993126 +1701,188007.94241481 +1702,185922.966763517 +1703,183978.544874918 +1704,177199.618638821 +1705,181878.647956764 +1706,173622.088728263 +1707,180728.168562655 +1708,176477.026606328 +1709,184282.266697609 +1710,162062.47538448 +1711,182550.070992189 +1712,180987.949624695 +1713,178173.79762147 +1714,179980.635948606 +1715,173257.637826205 +1716,177271.291059307 +1717,175338.355442312 +1718,177548.140549508 +1719,175969.91662932 +1720,175011.481953462 +1721,185199.372568143 +1722,188514.050228937 +1723,185080.145268797 +1724,157304.402574096 +1725,194260.859481297 +1726,181262.329995106 +1727,157003.292706732 +1728,182924.499359899 +1729,181902.586375439 +1730,188985.371708134 +1731,185290.904495068 +1732,177304.425752748 +1733,166274.900490809 +1734,177807.420530107 +1735,180330.624816201 +1736,179069.112234629 +1737,175943.371816948 +1738,185199.050609653 +1739,167350.910824524 +1740,149315.311876449 +1741,139010.847766793 +1742,155412.151845447 +1743,171308.313985441 +1744,176220.543265638 +1745,177643.434991809 +1746,187222.653264601 +1747,185635.132083154 +1748,206492.534215854 +1749,181681.021081956 +1750,180500.198072685 +1751,206486.17086841 +1752,161334.301195429 +1753,176156.558313965 +1754,191642.223478994 +1755,191945.808027777 +1756,164146.306037354 +1757,179883.057071096 +1758,178071.137668844 +1759,188241.637896875 +1760,174559.656173171 +1761,182347.363042264 +1762,191507.251872857 +1763,199751.865597358 +1764,162106.416145131 +1765,164575.982314367 +1766,179176.352180931 +1767,177327.403857584 +1768,177818.083761781 +1769,186965.204048443 +1770,178762.742169197 +1771,183322.866146283 +1772,178903.295931891 +1773,186570.129421778 +1774,199144.242829024 +1775,172154.713310956 +1776,177444.019201603 +1777,166200.938073485 +1778,158995.770555632 +1779,168273.282454755 +1780,189680.453052788 +1781,181681.021081956 +1782,160277.142643643 +1783,197318.54715833 +1784,162228.935604196 +1785,187340.455456083 +1786,181065.347037275 +1787,190233.609102705 +1788,157929.594852031 +1789,168557.001935469 +1790,160805.584645628 +1791,221648.391978216 +1792,180539.88079815 +1793,182105.616283853 +1794,166380.852603154 +1795,178942.155617426 +1796,162804.747800461 +1797,183077.684392615 +1798,171728.4720292 +1799,164786.741540638 +1800,177427.267170302 +1801,197318.54715833 +1802,178658.114178223 +1803,185437.320523764 +1804,169759.652489529 +1805,173986.635055186 +1806,168607.664289468 +1807,194138.519145183 +1808,192502.440921994 +1809,176746.969818601 +1810,177604.891703134 +1811,193283.746584832 +1812,181627.061006609 +1813,169071.62025834 +1814,167398.006470987 +1815,150106.505141704 +1816,159650.304285848 +1817,179471.23597476 +1818,177109.589956218 +1819,166558.113328453 +1820,153796.714319583 +1821,174520.152570658 +1822,196297.95829524 +1823,169100.681601175 +1824,176911.319164431 +1825,169234.6454828 +1826,172386.297919134 +1827,156031.904802362 +1828,168202.892306596 +1829,166505.984017547 +1830,176507.37022149 +1831,180116.752553161 +1832,183072.740591406 +1833,189595.964677698 +1834,167523.919076265 +1835,210817.775863413 +1836,172942.930813351 +1837,145286.278144089 +1838,176468.653371492 +1839,159040.069562187 +1840,178518.204332507 +1841,169163.980786825 +1842,189786.685274579 +1843,181246.728523853 +1844,176349.927153587 +1845,205266.631009142 +1846,187397.993362224 +1847,208943.427726113 +1848,165014.532907657 +1849,182492.037566236 +1850,161718.71259042 +1851,180084.118941162 +1852,178534.950802179 +1853,151217.259961305 +1854,156342.717587562 +1855,188511.443835239 +1856,183570.337896789 +1857,225810.160292177 +1858,214217.401131694 +1859,187665.64101603 +1860,161157.177744039 +1861,187643.992594193 +1862,228156.372839158 +1863,220449.534665317 +1864,220522.352084222 +1865,156647.763531624 +1866,187388.833374873 +1867,178640.723791573 +1868,180847.216739049 +1869,159505.170529478 +1870,164305.538020654 +1871,180181.19673723 +1872,184602.734989972 +1873,193440.372174434 +1874,184199.788209911 +1875,196241.892907637 +1876,175588.618271096 +1877,179503.046546829 +1878,183658.076582555 +1879,193700.976276404 +1880,165399.62450704 +1881,186847.944787446 +1882,198127.73287817 +1883,183320.898107934 +1884,181613.606696657 +1885,178298.791761954 +1886,185733.534000593 +1887,180008.188485489 +1888,175127.59621604 +1889,183467.176862723 +1890,182705.546021743 +1891,152324.943593181 +1892,169878.515981342 +1893,183735.975076576 +1894,224118.280105941 +1895,169355.202465146 +1896,180054.276407441 +1897,174081.601977368 +1898,168494.985022146 +1899,181871.598843299 +1900,173554.489658383 +1901,169805.382165577 +1902,176192.990728755 +1903,204264.39284654 +1904,169630.906956928 +1905,185724.838807268 +1906,195699.036281861 +1907,189494.276162169 +1908,149607.905673439 +1909,154650.199045978 +1910,151579.558140433 +1911,185147.380531144 +1912,196314.53120359 +1913,210802.395364155 +1914,166271.2863726 +1915,154865.359142973 +1916,173575.5052865 +1917,179399.563554274 +1918,164280.776562049 +1919,171247.48948121 +1920,166878.587182445 +1921,188129.459710994 +1922,183517.34369691 +1923,175522.026925727 +1924,190060.105331152 +1925,174179.824771856 +1926,171059.523675194 +1927,183004.186769318 +1928,183601.647387418 +1929,163539.327185998 +1930,164677.676391525 +1931,162395.073865424 +1932,182207.6323195 +1933,192223.939790304 +1934,176391.829390125 +1935,181913.179121348 +1936,179136.097888261 +1937,196595.568243212 +1938,194822.365690957 +1939,148356.669440918 +1940,160387.604263899 +1941,181276.500571809 +1942,192474.817899346 +1943,157699.907796437 +1944,215785.540813051 +1945,181824.300998793 +1946,221813.00948166 +1947,165281.292597397 +1948,255629.49047034 +1949,173154.590990955 +1950,183884.65246539 +1951,200210.353608489 +1952,186599.221265342 +1953,192718.532696106 +1954,178628.665952764 +1955,180650.342418406 +1956,206003.107947263 +1957,166457.67844853 +1958,202916.221653487 +1959,192463.969983091 +1960,171775.497189898 +1961,175249.222149411 +1962,147086.59893993 +1963,149709.672100371 +1964,171411.404533743 +1965,178188.964799425 +1966,156491.711373235 +1967,180953.241201168 +1968,203909.759061135 +1969,175470.149087545 +1970,205578.333622415 +1971,199428.857699441 +1972,187599.163869476 +1973,192265.198109864 +1974,196666.554897677 +1975,155537.862252682 +1976,169543.240620935 +1977,202487.010170501 +1978,208232.716273485 +1979,173621.195202569 +1980,172414.608571812 +1981,164400.75641556 +1982,160480.424024781 +1983,156060.853810389 +1984,157437.192820581 +1985,158163.720929772 +1986,154849.043268978 +1987,152186.609341561 +1988,180340.215399228 +1989,178344.62451356 +1990,190170.382266827 +1991,168092.975480832 +1992,178757.912566805 +1993,174518.256882082 +1994,198168.490116289 +1995,176882.693978902 +1996,183801.672896251 +1997,196400.046680661 +1998,172281.605004025 +1999,196380.366297173 +2000,198228.354306682 +2001,195556.581268962 +2002,186453.264469043 +2003,181869.381196234 +2004,175610.840124147 +2005,183438.730800145 +2006,179584.488673295 +2007,182386.152242034 +2008,160750.367237054 +2009,182477.505046008 +2010,187720.359207171 +2011,187201.942081511 +2012,176385.102235149 +2013,175901.787841278 +2014,182584.280198283 +2015,195664.686104237 +2016,181420.346494222 +2017,176676.04995228 +2018,181594.678867334 +2019,178521.747964951 +2020,175895.883726231 +2021,168468.005916477 +2022,200973.129447888 +2023,197030.641992202 +2024,192867.417844592 +2025,196449.247639381 +2026,141684.196398607 +2027,153353.334123901 +2028,151143.549016705 +2029,163753.087114229 +2030,158682.460013921 +2031,144959.835250915 +2032,160144.390548579 +2033,156286.534303521 +2034,165726.707619571 +2035,182427.481047359 +2036,173310.56154032 +2037,173310.56154032 +2038,151556.01403002 +2039,158908.146068683 +2040,209834.383092536 +2041,192410.516550815 +2042,174026.247294886 +2043,195499.830115336 +2044,200918.018812493 +2045,207243.616023976 +2046,196149.783851876 +2047,192097.914850217 +2048,178570.948923671 +2049,228617.968325428 +2050,199929.884438451 +2051,160206.365612859 +2052,179854.431885567 +2053,185987.340461822 +2054,161122.505607926 +2055,175949.342720138 +2056,183683.590595324 +2057,176401.34762338 +2058,205832.532527897 +2059,177799.799849436 +2060,167565.362080406 +2061,186348.958436557 +2062,179782.759465081 +2063,169837.623333323 +2064,178817.275675758 +2065,174444.479149339 +2066,192834.968917174 +2067,196564.717984981 +2068,206977.567039357 +2069,157054.253944128 +2070,175142.948078577 +2071,159932.1643654 +2072,182801.408333628 +2073,181510.375176825 +2074,181613.035129451 +2075,186920.512597635 +2076,157950.170625222 +2077,176115.159022876 +2078,182744.514344465 +2079,180660.683691591 +2080,160775.629777099 +2081,186711.715848082 +2082,223581.758190888 +2083,172330.943236652 +2084,163474.633393212 +2085,175308.263299874 +2086,187462.725306432 +2087,180655.101535034 +2088,152121.98603454 +2089,159856.233909727 +2090,186559.854936737 +2091,183962.550959411 +2092,162107.168699296 +2093,162582.288981283 +2094,154407.701597409 +2095,181625.666399474 +2096,164810.609473548 +2097,176429.401241704 +2098,179188.089925259 +2099,145997.635377703 +2100,218676.768270367 +2101,188323.861214226 +2102,168690.0722914 +2103,165088.746797705 +2104,191435.007885166 +2105,168864.404664512 +2106,176041.882371574 +2107,215911.674390325 +2108,167388.238629016 +2109,163854.786753017 +2110,163299.477980171 +2111,178298.214633119 +2112,176376.586164775 +2113,170211.043976522 +2114,170818.344786366 +2115,174388.867432503 +2116,161112.987374671 +2117,172179.082325307 +2118,157798.309713876 +2119,169106.151422924 +2120,170129.531364292 +2121,157680.227412949 +2122,162690.209131977 +2123,146968.379365095 +2124,181507.721372455 +2125,191215.589752983 +2126,189432.689844522 +2127,207271.484957719 +2128,170030.807488363 +2129,148409.806476335 +2130,193850.613979055 +2131,193808.319298263 +2132,166300.235380627 +2133,163474.633393212 +2134,177473.606564978 +2135,157443.925537187 +2136,180681.007992057 +2137,183463.17030026 +2138,182481.763081195 +2139,193717.15117887 +2140,182782.55099007 +2141,175530.651633287 +2142,177804.057884623 +2143,159448.670848577 +2144,181338.976717529 +2145,178553.558537021 +2146,162820.928264556 +2147,188832.479997186 +2148,164682.185899437 +2149,181549.735943801 +2150,199158.097008868 +2151,152889.520990566 +2152,181150.551679116 +2153,181416.732376013 +2154,164391.238182305 +2155,185421.046498812 +2156,193981.327550004 +2157,178824.324789223 +2158,209270.051606246 +2159,177801.266806344 +2160,179053.762236101 +2161,178762.170601992 +2162,184655.300458183 +2163,191284.655779772 +2164,179598.085818785 +2165,167517.628078595 +2166,182873.903794044 +2167,177484.91371363 +2168,188444.597319524 +2169,179184.153848562 +2170,184365.175780982 +2171,184479.322005212 +2172,182927.863869391 +2173,178611.639373646 +2174,181943.343613558 +2175,175080.614768394 +2176,190720.794649138 +2177,198422.868144723 +2178,184482.11308349 +2179,139214.952187861 +2180,169233.113601757 +2181,180664.118686848 +2182,178818.742632666 +2183,180422.049969947 +2184,178601.93645581 +2185,183083.159775993 +2186,173163.101499699 +2187,185968.161159774 +2188,171226.050683054 +2189,281643.976116786 +2190,160031.711281258 +2191,162775.979779394 +2192,160735.445970193 +2193,166646.109048572 +2194,188384.548444549 +2195,165830.697255197 +2196,182138.358533039 +2197,171595.397975647 +2198,160337.079183809 +2199,191215.088671543 +2200,166956.093232213 +2201,186581.830878692 +2202,176450.548582099 +2203,193743.194909801 +2204,198882.566078408 +2205,176385.102235149 +2206,162447.639333636 +2207,193782.555676777 +2208,183653.890897141 +2209,210578.623546866 +2210,158527.164107319 +2211,163081.025723456 +2212,174388.867432503 +2213,191905.870131966 +2214,174388.867432503 +2215,161642.711648983 +2216,186939.507215101 +2217,172482.165792649 +2218,159695.999763546 +2219,157230.369671007 +2220,179188.089925259 +2221,157972.82120994 +2222,156804.951429181 +2223,211491.972463654 +2224,186537.246201062 +2225,200468.161070551 +2226,182241.340444154 +2227,157342.225898399 +2228,182022.387105998 +2229,181244.510876788 +2230,178556.671573788 +2231,189547.199876284 +2232,187948.65165563 +2233,194107.287565956 +2234,183521.710369283 +2235,183682.123638416 +2236,178483.353073443 +2237,184003.879764736 +2238,171318.59033449 +2239,162039.754313997 +2240,154846.252190699 +2241,194822.365690957 +2242,169788.738771463 +2243,178891.554489941 +2244,152084.772428865 +2245,139169.86642879 +2246,192439.536044606 +2247,161067.859766557 +2248,158762.648504781 +2249,175569.690441774 +2250,183659.795012187 +2251,280618.132617258 +2252,180051.809151659 +2253,176519.18031559 +2254,179028.429210291 +2255,177161.583857224 +2256,180081.508849842 +2257,205895.254584712 +2258,183389.78131415 +2259,178543.647859512 +2260,194798.320499104 +2261,162845.613675766 +2262,148103.867006579 +2263,201016.171121215 +2264,277936.12694354 +2265,249768.279823405 +2266,161596.052159825 +2267,158011.114889899 +2268,194089.683858004 +2269,181733.336941451 +2270,182852.32772198 +2271,189893.003058465 +2272,194650.210979875 +2273,187904.461286262 +2274,171774.925622692 +2275,177998.685921479 +2276,175648.484325498 +2277,196918.071362067 +2278,184299.838071218 +2279,182379.855682734 +2280,184050.725802482 +2281,158296.975970284 +2282,175053.355553278 +2283,162293.376090644 +2284,186328.880047186 +2285,151422.116936538 +2286,181969.358707768 +2287,189122.67702416 +2288,185645.475220346 +2289,182829.898109257 +2290,195848.788183328 +2291,198785.059550672 +2292,181676.126555428 +2293,194131.012663328 +2294,201416.004864508 +2295,185096.577205616 +2296,195158.972598372 +2297,184795.783735112 +2298,189168.263864671 +2299,216855.260149095 +2300,184946.642483576 +2301,189317.51282069 +2302,180803.277842406 +2303,175061.18585763 +2304,179074.839090732 +2305,145708.764336107 +2306,142398.022752011 +2307,161474.534863641 +2308,157025.945155458 +2309,163424.037827357 +2310,164692.778645345 +2311,152163.2443541 +2312,192383.215486656 +2313,182520.230322476 +2314,187254.507549722 +2315,176489.659740359 +2316,181520.466841293 +2317,186414.978214721 +2318,185197.764639705 +2319,178657.794083741 +2320,179731.198023759 +2321,161748.271317074 +2322,158608.749069322 +2323,178807.370559878 +2324,184187.158803897 +2325,181686.10402108 +2326,190311.050228337 +2327,192252.496354076 +2328,193954.849525775 +2329,181044.201560887 +2330,180258.131219792 +2331,199641.657313834 +2332,197530.775205517 +2333,191777.196949138 +2334,195779.543033588 +2335,202112.046522999 +2336,192343.34807661 +2337,185191.359443218 +2338,186760.207965688 +2339,177733.78193528 +2340,164430.391189608 +2341,185299.601552401 +2342,186414.012339254 +2343,176401.921054593 +2344,182381.322639642 +2345,176334.184710805 +2346,184901.735847457 +2347,180085.766885029 +2348,184901.735847457 +2349,183967.561548763 +2350,193046.301574659 +2351,168538.969495849 +2352,170157.842016969 +2353,196559.709259637 +2354,177133.709361852 +2355,181553.279576244 +2356,185770.606634739 +2357,177017.595099274 +2358,184123.358536806 +2359,165970.357492196 +2360,158151.985049452 +2361,177086.476441481 +2362,196373.896176551 +2363,172465.707083115 +2364,168590.782409896 +2365,158820.474171061 +2366,151611.37057651 +2367,152125.028585543 +2368,158404.073081048 +2369,160692.078640755 +2370,170175.22684199 +2371,169854.436591138 +2372,183410.785819008 +2373,180347.194026928 +2374,178930.528374292 +2375,153346.220086301 +2376,182675.204270589 +2377,180770.649792036 +2378,188714.148087543 +2379,191393.608594076 +2380,174016.157494425 +2381,183189.685319552 +2382,183621.508757866 +2383,168991.29635758 +2384,185306.650665866 +2385,189030.680303208 +2386,179208.665698449 +2387,174901.452792889 +2388,168337.406544343 +2389,158234.96461859 +2390,179562.453368834 +2391,174176.391640607 +2392,173931.531845427 +2393,184111.729429665 +2394,179374.482001188 +2395,207348.811884535 +2396,186983.419339031 +2397,206779.094049527 +2398,177472.074683935 +2399,156727.948324862 +2400,157090.568462479 +2401,160387.032696693 +2402,172410.28005086 +2403,191603.365657467 +2404,182152.207151253 +2405,180161.697340702 +2406,169652.235284283 +2407,182503.520140218 +2408,179714.630677039 +2409,180282.570719908 +2410,192600.338060371 +2411,166115.491248565 +2412,186379.553524443 +2413,184361.992258449 +2414,186220.965458121 +2415,198176.47090687 +2416,168437.776500131 +2417,178003.582312015 +2418,179180.469244588 +2419,191930.561104806 +2420,175590.266214964 +2421,176713.19307219 +2422,180159.090947005 +2423,188090.100808026 +2424,186184.717727913 +2425,223055.588672278 +2426,158270.753116401 +2427,184733.12846644 +2428,199926.378957429 +2429,175075.785166001 +2430,180917.925148076 +2431,182067.760625207 +2432,178238.60191545 +2433,173454.944606532 +2434,176821.936262814 +2435,183642.191304235 +2436,177254.582741058 +2437,168715.950111702 +2438,180096.931198144 +2439,160620.728178758 +2440,175286.544392273 +2441,153494.783276297 +2442,156407.65915545 +2443,162162.525245786 +2444,166809.886827197 +2445,172929.156408918 +2446,193514.330894137 +2447,181612.141603756 +2448,191745.386377068 +2449,171369.325038261 +2450,184425.470567051 +2451,170563.252355189 +2452,184522.369240168 +2453,164968.947931153 +2454,157939.621592364 +2455,151520.381580069 +2456,176129.508722531 +2457,171112.978971478 +2458,169762.081624282 +2459,162246.828936295 +2460,171339.303381589 +2461,189034.753653813 +2462,175758.873595981 +2463,163351.721489893 +2464,189806.546645026 +2465,175370.990918319 +2466,196895.599900301 +2467,176905.917994834 +2468,176866.557227858 +2469,163590.677170026 +2470,212693.502958393 +2471,192686.931747717 +2472,181578.684951827 +2473,166475.457581812 +2474,185998.255166219 +2475,185527.714877908 +2476,159027.118197683 +2477,181169.654933769 +2478,176732.915304722 +2479,191619.294648838 +2480,189114.303789324 +2481,180934.635330334 +2482,164573.372223048 +2483,173902.011270196 +2484,165625.127741229 +2485,179555.219570787 +2486,196899.720661579 +2487,207566.12470446 +2488,163899.981149274 +2489,189179.428177786 +2490,193892.880023125 +2491,178980.874331431 +2492,179749.876244365 +2493,197999.674975598 +2494,203717.470295797 +2495,185249.261156892 +2496,201691.208274848 +2497,181956.548314794 +2498,171895.936275806 +2499,187245.168439419 +2500,157816.77461318 +2501,191702.912573325 +2502,198599.420028908 +2503,187193.313676329 +2504,220514.993999535 +2505,181814.527595192 +2506,183750.755371907 +2507,183000.431679579 +2508,185830.971906573 +2509,185497.872344187 +2510,179613.437681321 +2511,164454.967963631 +2512,185127.237217638 +2513,178750.613844623 +2514,160927.61044889 +2515,192562.808057836 +2516,180990.24148554 +2517,180064.941503122 +2518,196070.997393789 +2519,180352.919019023 +2520,183367.953769362 +2521,176734.841494027 +2522,180848.220765939 +2523,187806.059368823 +2524,180521.52640004 +2525,181502.754496154 +2526,174525.87942676 +2527,188927.984063168 +2528,184728.870431253 +2529,179857.975518011 +2530,180962.868071609 +2531,179194.066390078 +2532,179591.789259484 +2533,180638.463702549 +2534,185846.215131922 +2535,195174.031139141 +2536,192474.56829063 +2537,164200.595496827 +2538,178403.094096818 +2539,170774.84018302 +2540,179879.945898337 +2541,177668.192752792 +2542,180174.328610725 +2543,170643.303572141 +2544,165448.004289838 +2545,195531.754886222 +2546,165314.177682121 +2547,172532.757660882 +2548,203310.218069877 +2549,175090.062515883 +2550,230841.338626282 +2551,155225.19006632 +2552,168322.342441945 +2553,165956.259265265 +2554,193956.817564124 +2555,171070.367893827 +2556,166285.243628001 +2557,182875.801346628 +2558,218108.536769738 +2559,174378.777632042 +2560,164731.316372391 +2561,156969.695083273 +2562,173388.854342604 +2563,177559.628685119 +2564,194297.789279905 +2565,174894.588364005 +2566,196544.144075798 +2567,179036.158528149 +2568,211423.986511149 +2569,208156.398935188 +2570,159233.941347257 +2571,210820.115134931 +2572,140196.10979821 +2573,198678.469082978 +2574,186818.610760803 +2575,175044.797633861 +2576,180031.162892704 +2577,176889.171525162 +2578,159638.856165666 +2579,154287.264375509 +2580,191885.618181273 +2581,177503.378612934 +2582,166548.31684976 +2583,164475.14942856 +2584,167484.744857879 +2585,188683.160555403 +2586,162243.399502668 +2587,180807.213919103 +2588,176279.079637039 +2589,163438.959094218 +2590,161495.5393685 +2591,216032.303722443 +2592,176632.181541401 +2593,168743.001567144 +2594,183810.11848086 +2595,156794.36054728 +2596,169136.43011395 +2597,183203.318752456 +2598,213252.926930889 +2599,190550.327866959 +2600,234707.209860273 +2601,135751.318892816 +2602,164228.45886894 +2603,153219.437030419 +2604,164210.746523801 +2605,163883.229117973 +2606,154892.776269956 +2607,197092.08733832 +2608,228148.376399122 +2609,178680.587503997 +2610,165643.341167808 +2611,222406.642660249 +2612,184021.843582599 +2613,170871.094939159 +2614,189562.873697309 +2615,170591.884966356 +2616,172934.351682851 +2617,186425.069879189 +2618,218648.131133006 +2619,183035.606761141 +2620,178378.906069427 +2621,184516.716597846 +2622,181419.5253183 +2623,196858.923438425 +2624,189228.701486278 +2625,208973.380761028 +2626,180269.86896412 +2627,159488.713683953 +2628,191490.299507521 +2629,228684.245137946 +2630,201842.998700429 +2631,209242.82289186 +2632,202357.62258493 +2633,168238.61218265 +2634,202524.12465369 +2635,170588.771929588 +2636,198375.31512987 +2637,170636.827889889 +2638,181991.079479377 +2639,183994.54251844 +2640,182951.482193584 +2641,174126.297156192 +2642,170575.496742588 +2643,175332.239869971 +2644,167522.061539111 +2645,168095.583738538 +2646,154406.415627461 +2647,170996.973346087 +2648,159056.890245639 +2649,181373.6165193 +2650,152272.560975937 +2651,168664.346821336 +2652,211007.008292301 +2653,182909.515032911 +2654,203926.829353303 +2655,179082.825442944 +2656,206260.099795032 +2657,181732.443415757 +2658,189698.740693148 +2659,203074.34678979 +2660,201670.634365666 +2661,173756.812589691 +2662,181387.076390881 +2663,184859.155270535 +2664,158313.615666777 +2665,151951.955409666 +2666,162537.52704471 +2667,178998.337067854 +2668,186732.584943041 +2669,187323.318406165 +2670,199437.232798284 +2671,185546.680858653 +2672,161595.015798593 +2673,154672.422763036 +2674,159355.710116165 +2675,155919.014077746 +2676,182424.87095604 +2677,178100.589622319 +2678,202577.900044456 +2679,177862.778940605 +2680,182056.024744887 +2681,191403.199177104 +2682,196264.754980043 +2683,209375.003419718 +2684,196691.81930173 +2685,192458.431539585 +2686,182242.80926507 +2687,183259.503900506 +2688,188108.243748841 +2689,171418.640195797 +2690,194698.882220432 +2691,174841.84007522 +2692,172965.476488899 +2693,189386.323677132 +2694,185682.618340257 +2695,176412.012719061 +2696,174976.489722867 +2697,180718.581707643 +2698,186131.188248242 +2699,165220.786354033 +2700,164115.893800435 +2701,182125.729127024 +2702,182285.140233276 +2703,196325.442210366 +2704,164865.215329881 +2705,182694.492209823 +2706,185425.485520958 +2707,171414.7041191 +2708,183433.472466085 +2709,176844.981155794 +2710,180568.187753206 +2711,185948.625475832 +2712,189388.291715481 +2713,142754.489165865 +2714,156106.800760811 +2715,155895.397617561 +2716,159851.977738548 +2717,185157.832305524 +2718,180716.291710805 +2719,176901.093954071 +2720,181017.222455218 +2721,183269.159407668 +2722,193550.830097069 +2723,170625.842699726 +2724,182012.405942725 +2725,179162.507290733 +2726,183269.159407668 +2727,180589.836175042 +2728,181465.935198741 +2729,196053.029878304 +2730,183421.020319014 +2731,167926.839083612 +2732,168027.530997889 +2733,182164.26685407 +2734,172469.071592608 +2735,181059.374300472 +2736,182997.570115536 +2737,166140.504179894 +2738,198515.546934075 +2739,193789.648503294 +2740,173550.025727531 +2741,176487.943174734 +2742,188813.302559147 +2743,178531.911979192 +2744,182145.731469001 +2745,179196.465024103 +2746,169618.349900686 +2747,170010.168655046 +2748,181739.671652174 +2749,172846.934955574 +2750,195560.8830172 +2751,180358.114292956 +2752,211817.702818093 +2753,176170.128686742 +2754,234492.248263699 +2755,182450.956536015 +2756,174902.068073146 +2757,173684.174293738 +2758,147196.673677562 +2759,175231.189709791 +2760,193417.64740633 +2761,183313.601249761 +2762,180882.250849082 +2763,186735.697979808 +2764,172922.865411247 +2765,202551.677190573 +2766,190485.634074173 +2767,173439.49362151 +2768,196613.598849219 +2769,178152.259700828 +2770,174519.904825949 +2771,172627.796932837 +2772,173732.689486435 +2773,209219.844787023 +2774,181059.374300472 +2775,188515.443002459 +2776,182164.26685407 +2777,188137.901597981 +2778,158893.54306269 +2779,189579.65066771 +2780,165229.803505847 +2781,162186.071220207 +2782,166374.879866351 +2783,161665.184974757 +2784,175079.328798445 +2785,203840.874021305 +2786,152129.078861057 +2787,181012.141380101 +2788,161305.53503837 +2789,203326.392972343 +2790,168385.571141831 +2791,183564.365159986 +2792,163784.619440861 +2793,171989.192193993 +2794,180839.95616829 +2795,170895.923185907 +2796,174071.054808518 +2797,259423.859147546 +2798,188000.824679588 +2799,179171.703565498 +2800,171022.241447762 +2801,174126.297156192 +2802,187625.573271948 +2803,199567.946369234 +2804,205328.078219268 +2805,166231.535025379 +2806,154743.91606057 +2807,159714.537012622 +2808,185563.069082422 +2809,171500.796725006 +2810,180983.443844799 +2811,183141.236914997 +2812,178498.634450214 +2813,224323.710512388 +2814,218200.642127877 +2815,182283.177756557 +2816,190054.639237419 +2817,160192.453934518 +2818,171289.393581756 +2819,151131.098733642 +2820,181721.458225594 +2821,172725.053851858 +2822,222438.699143414 +2823,235419.373448928 +2824,185150.926027596 +2825,184772.239624699 +2826,180658.216435809 +2827,209673.316647174 +2828,205939.810625621 +2829,165633.573325837 +2830,186030.317211014 +2831,160312.319589212 +2832,190702.440251029 +2833,175122.810326699 +2834,183783.13937519 +2835,178290.666302221 +2836,181605.343963015 +2837,187992.451444752 +2838,188885.11781517 +2839,189959.344795118 +2840,179258.619211334 +2841,181518.750275669 +2842,193008.659237315 +2843,186313.89385619 +2844,181499.39185067 +2845,174126.297156192 +2846,183918.612062767 +2847,184114.270899227 +2848,158540.947801398 +2849,197034.759055859 +2850,185170.284452595 +2851,221134.533635148 +2852,184306.637575967 +2853,199792.302740996 +2854,143237.803559736 +2855,177294.838897736 +2856,182368.620883855 +2857,176487.943174734 +2858,183849.408762071 +2859,184964.141507413 +2860,196395.969632434 +2861,188374.936650438 +2862,176261.296806135 +2863,163628.142248426 +2864,180618.032628904 +2865,161647.329794081 +2866,167129.598867773 +2867,174750.988352687 +2868,177560.202116333 +2869,192577.796112839 +2870,199202.898960871 +2871,182818.156667308 +2872,148217.262540651 +2873,188997.797082492 +2874,185807.928877601 +2875,177030.477842021 +2876,175942.474593632 +2877,172912.518576433 +2878,198359.248864591 +2879,184379.133036383 +2880,194255.566948886 +2881,209449.651603064 +2882,169979.323958443 +2883,188206.281858748 +2884,186412.438609167 +2885,196761.386409959 +2886,208353.269558209 +2887,166548.067241044 +2888,175942.474593632 +2889,166790.457916434 +2890,160515.850579067 +2891,192167.621096362 +2892,178751.551083369 +2893,198678.894117024 +2894,164553.120272354 +2895,156887.932862327 +2896,164185.777305524 +2897,212992.120630876 +2898,197468.550532521 +2899,180106.84373966 +2900,183972.071056674 +2901,245283.198337927 +2902,170351.963410756 +2903,195596.307707478 +2904,189369.756330412 +2905,223667.404551664 +2906,169335.310624364 +2907,167411.02835165 +2908,187709.555003968 +2909,196526.002998991 +2910,137402.569855589 +2911,165086.775061735 +2912,188506.431412274 +2913,172917.456816012 +2914,166274.325225982 +2915,167081.220948984 +2916,164788.778231138 +2917,219222.423400059 +2918,184924.279658997 +2919,187741.866657478 diff --git a/20 ML Algorithms For House Prices Prediction/test.csv b/20 ML Algorithms For House Prices Prediction/test.csv new file mode 100644 index 0000000..a19c5c7 --- /dev/null +++ b/20 ML Algorithms For House Prices Prediction/test.csv @@ -0,0 +1,1460 @@ +Id,MSSubClass,MSZoning,LotFrontage,LotArea,Street,Alley,LotShape,LandContour,Utilities,LotConfig,LandSlope,Neighborhood,Condition1,Condition2,BldgType,HouseStyle,OverallQual,OverallCond,YearBuilt,YearRemodAdd,RoofStyle,RoofMatl,Exterior1st,Exterior2nd,MasVnrType,MasVnrArea,ExterQual,ExterCond,Foundation,BsmtQual,BsmtCond,BsmtExposure,BsmtFinType1,BsmtFinSF1,BsmtFinType2,BsmtFinSF2,BsmtUnfSF,TotalBsmtSF,Heating,HeatingQC,CentralAir,Electrical,1stFlrSF,2ndFlrSF,LowQualFinSF,GrLivArea,BsmtFullBath,BsmtHalfBath,FullBath,HalfBath,BedroomAbvGr,KitchenAbvGr,KitchenQual,TotRmsAbvGrd,Functional,Fireplaces,FireplaceQu,GarageType,GarageYrBlt,GarageFinish,GarageCars,GarageArea,GarageQual,GarageCond,PavedDrive,WoodDeckSF,OpenPorchSF,EnclosedPorch,3SsnPorch,ScreenPorch,PoolArea,PoolQC,Fence,MiscFeature,MiscVal,MoSold,YrSold,SaleType,SaleCondition +1461,20,RH,80,11622,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Feedr,Norm,1Fam,1Story,5,6,1961,1961,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,468,LwQ,144,270,882,GasA,TA,Y,SBrkr,896,0,0,896,0,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1961,Unf,1,730,TA,TA,Y,140,0,0,0,120,0,NA,MnPrv,NA,0,6,2010,WD,Normal +1462,20,RL,81,14267,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1958,1958,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,108,TA,TA,CBlock,TA,TA,No,ALQ,923,Unf,0,406,1329,GasA,TA,Y,SBrkr,1329,0,0,1329,0,0,1,1,3,1,Gd,6,Typ,0,NA,Attchd,1958,Unf,1,312,TA,TA,Y,393,36,0,0,0,0,NA,NA,Gar2,12500,6,2010,WD,Normal +1463,60,RL,74,13830,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,5,5,1997,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,GLQ,791,Unf,0,137,928,GasA,Gd,Y,SBrkr,928,701,0,1629,0,0,2,1,3,1,TA,6,Typ,1,TA,Attchd,1997,Fin,2,482,TA,TA,Y,212,34,0,0,0,0,NA,MnPrv,NA,0,3,2010,WD,Normal +1464,60,RL,78,9978,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,6,1998,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,20,TA,TA,PConc,TA,TA,No,GLQ,602,Unf,0,324,926,GasA,Ex,Y,SBrkr,926,678,0,1604,0,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,1998,Fin,2,470,TA,TA,Y,360,36,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1465,120,RL,43,5005,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,1992,1992,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,No,ALQ,263,Unf,0,1017,1280,GasA,Ex,Y,SBrkr,1280,0,0,1280,0,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,1992,RFn,2,506,TA,TA,Y,0,82,0,0,144,0,NA,NA,NA,0,1,2010,WD,Normal +1466,60,RL,75,10000,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1993,1994,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,763,763,GasA,Gd,Y,SBrkr,763,892,0,1655,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1993,Fin,2,440,TA,TA,Y,157,84,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1467,20,RL,NA,7980,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,1Story,6,7,1992,2007,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Gd,PConc,Gd,TA,No,ALQ,935,Unf,0,233,1168,GasA,Ex,Y,SBrkr,1187,0,0,1187,1,0,2,0,3,1,TA,6,Typ,0,NA,Attchd,1992,Fin,2,420,TA,TA,Y,483,21,0,0,0,0,NA,GdPrv,Shed,500,3,2010,WD,Normal +1468,60,RL,63,8402,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,789,789,GasA,Gd,Y,SBrkr,789,676,0,1465,0,0,2,1,3,1,TA,7,Typ,1,Gd,Attchd,1998,Fin,2,393,TA,TA,Y,0,75,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1469,20,RL,85,10176,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,1Story,7,5,1990,1990,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,Gd,GLQ,637,Unf,0,663,1300,GasA,Gd,Y,SBrkr,1341,0,0,1341,1,0,1,1,2,1,Gd,5,Typ,1,Po,Attchd,1990,Unf,2,506,TA,TA,Y,192,0,0,0,0,0,NA,NA,NA,0,2,2010,WD,Normal +1470,20,RL,70,8400,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,5,1970,1970,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,804,Rec,78,0,882,GasA,TA,Y,SBrkr,882,0,0,882,1,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1970,Fin,2,525,TA,TA,Y,240,0,0,0,0,0,NA,MnPrv,NA,0,4,2010,WD,Normal +1471,120,RH,26,5858,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,NAmes,Norm,Norm,TwnhsE,1Story,7,5,1999,1999,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,1051,BLQ,0,354,1405,GasA,Ex,Y,SBrkr,1337,0,0,1337,1,0,2,0,2,1,Gd,5,Typ,1,Fa,Attchd,1999,Fin,2,511,TA,TA,Y,203,68,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1472,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,5,1971,1971,Gable,CompShg,HdBoard,HdBoard,BrkFace,504,TA,TA,CBlock,TA,TA,No,Rec,156,Unf,0,327,483,GasA,TA,Y,SBrkr,483,504,0,987,0,0,1,1,2,1,TA,5,Typ,0,NA,Detchd,1971,Unf,1,264,TA,TA,Y,275,0,0,0,0,0,NA,NA,NA,0,2,2010,COD,Normal +1473,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,5,5,1971,1971,Gable,CompShg,HdBoard,HdBoard,BrkFace,492,TA,TA,CBlock,TA,TA,No,Rec,300,Unf,0,225,525,GasA,TA,Y,SBrkr,525,567,0,1092,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1997,Unf,1,320,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal +1474,160,RL,24,2280,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NPkVill,Norm,Norm,Twnhs,2Story,6,6,1975,1975,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,TA,TA,No,ALQ,514,Unf,0,341,855,GasA,TA,Y,SBrkr,855,601,0,1456,0,0,2,1,3,1,Gd,6,Typ,1,TA,Attchd,1975,Unf,2,440,TA,TA,Y,173,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1475,120,RL,24,2280,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NPkVill,Norm,Norm,Twnhs,1Story,7,6,1975,1975,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,836,836,GasA,Ex,Y,SBrkr,836,0,0,836,0,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1975,Unf,1,308,TA,TA,Y,0,30,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1476,60,RL,102,12858,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2009,2010,Gable,CompShg,VinylSd,VinylSd,Stone,162,Ex,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1590,1590,GasA,Ex,Y,SBrkr,1627,707,0,2334,0,0,2,1,3,1,Ex,10,Typ,1,Gd,Attchd,2009,Fin,3,751,TA,TA,Y,144,133,0,0,0,0,NA,NA,NA,0,1,2010,New,Partial +1477,20,RL,94,12883,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2009,2010,Gable,CompShg,VinylSd,VinylSd,Stone,256,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1544,1544,GasA,Ex,Y,SBrkr,1544,0,0,1544,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2009,RFn,3,868,TA,TA,Y,0,35,0,0,0,0,NA,NA,NA,0,6,2010,New,Partial +1478,20,RL,90,11520,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,PosN,Norm,1Fam,1Story,9,5,2005,2005,Hip,CompShg,VinylSd,VinylSd,BrkFace,615,Gd,TA,PConc,Ex,TA,No,GLQ,110,Unf,0,1588,1698,GasA,Ex,Y,SBrkr,1698,0,0,1698,0,0,2,0,3,1,Ex,7,Typ,1,Gd,Attchd,2005,Fin,3,730,TA,TA,Y,192,74,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1479,20,RL,79,14122,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2005,2006,Hip,CompShg,CemntBd,CmentBd,BrkFace,240,Gd,TA,PConc,Ex,TA,No,GLQ,28,Unf,0,1794,1822,GasA,Ex,Y,SBrkr,1822,0,0,1822,0,0,2,0,3,1,Ex,8,Typ,1,Gd,Attchd,2005,RFn,3,678,TA,TA,Y,0,119,0,0,0,0,NA,NA,NA,0,2,2010,WD,Normal +1480,20,RL,110,14300,Pave,NA,Reg,HLS,AllPub,Inside,Mod,NridgHt,Norm,Norm,1Fam,1Story,9,5,2003,2004,Hip,CompShg,VinylSd,VinylSd,BrkFace,1095,Ex,TA,PConc,Ex,TA,Gd,GLQ,1373,Unf,0,1473,2846,GasA,Ex,Y,SBrkr,2696,0,0,2696,1,0,2,1,3,1,Ex,10,Typ,2,Gd,Attchd,2003,Fin,3,958,TA,TA,Y,220,150,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1481,60,RL,105,13650,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,232,Gd,TA,PConc,Gd,TA,Gd,GLQ,578,Unf,0,1093,1671,GasA,Ex,Y,SBrkr,1687,563,0,2250,1,0,2,1,3,1,Gd,7,Typ,1,Ex,Attchd,2002,Fin,3,756,TA,TA,Y,238,130,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1482,120,RL,41,7132,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,Stone,178,Gd,TA,PConc,Gd,TA,Mn,GLQ,24,Unf,0,1346,1370,GasA,Ex,Y,SBrkr,1370,0,0,1370,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2006,RFn,2,484,TA,TA,Y,120,49,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1483,20,RL,100,18494,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,1Story,6,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1324,1324,GasA,Ex,Y,SBrkr,1324,0,0,1324,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2005,Fin,2,430,TA,TA,Y,36,23,0,0,0,0,NA,NA,NA,0,1,2010,WD,Normal +1484,120,RL,43,3203,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,14,Gd,TA,PConc,Gd,TA,Av,GLQ,16,Unf,0,1129,1145,GasA,Ex,Y,SBrkr,1145,0,0,1145,0,0,2,0,2,1,Gd,6,Typ,0,NA,Attchd,2006,Fin,2,437,TA,TA,Y,100,116,0,0,0,0,NA,NA,NA,0,1,2010,WD,Normal +1485,80,RL,67,13300,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,326,Unf,0,58,384,GasA,Ex,Y,SBrkr,744,630,0,1374,1,0,2,1,3,1,Gd,7,Typ,1,Gd,BuiltIn,2004,Fin,2,400,TA,TA,Y,100,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1486,60,RL,63,8577,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,847,847,GasA,Ex,Y,SBrkr,847,886,0,1733,0,0,2,1,3,1,Gd,7,Typ,1,Gd,BuiltIn,2004,Fin,2,433,TA,TA,Y,144,48,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1487,60,RL,60,17433,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1998,1998,Hip,CompShg,VinylSd,VinylSd,BrkFace,114,Gd,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1629,1629,GasA,Ex,Y,SBrkr,1645,830,0,2475,0,0,2,1,4,1,Gd,7,Typ,1,TA,Attchd,1998,Fin,3,962,TA,TA,Y,23,172,0,0,256,0,NA,NA,NA,0,1,2010,WD,Normal +1488,20,RL,73,8987,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,226,Gd,TA,PConc,Gd,TA,NA,Unf,0,Unf,0,1595,1595,GasA,Ex,Y,SBrkr,1595,0,0,1595,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2005,RFn,3,880,TA,TA,Y,144,0,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1489,20,FV,92,9215,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2009,2010,Hip,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1218,1218,GasA,Ex,Y,SBrkr,1218,0,0,1218,0,0,2,0,2,1,Gd,4,Typ,0,NA,Attchd,2009,RFn,2,676,TA,TA,Y,0,136,0,0,0,0,NA,NA,NA,0,4,2010,New,Partial +1490,20,FV,84,10440,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,1Fam,1Story,6,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,No,GLQ,1414,Unf,0,54,1468,GasA,Ex,Y,SBrkr,1468,0,0,1468,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2005,Fin,2,528,TA,TA,Y,0,102,0,0,216,0,NA,NA,NA,0,5,2010,WD,Normal +1491,60,RL,70,11920,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,122,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,831,831,GasA,Ex,Y,SBrkr,831,828,0,1659,0,0,2,1,3,1,Gd,8,Typ,0,NA,Attchd,2004,RFn,2,484,TA,TA,Y,144,68,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1492,30,RH,70,9800,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,SawyerW,Feedr,Norm,1Fam,1Story,5,5,1920,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Fa,BrkTil,TA,TA,No,Unf,0,Unf,0,816,816,GasA,TA,N,FuseA,1012,0,0,1012,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1920,Unf,1,429,TA,TA,Y,121,0,80,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1493,20,RL,39,15410,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,RRNe,Norm,1Fam,1Story,6,6,1974,2002,Hip,CompShg,Plywood,Plywood,BrkCmn,250,TA,Gd,CBlock,TA,TA,Gd,BLQ,126,GLQ,859,223,1208,GasA,Ex,Y,SBrkr,1494,0,0,1494,1,0,2,0,3,1,TA,7,Typ,2,Fa,Attchd,1974,Fin,2,461,TA,TA,Y,296,0,186,0,0,0,NA,GdPrv,NA,0,4,2010,WD,Abnorml +1494,60,RL,85,13143,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1993,1993,Gable,CompShg,HdBoard,ImStucc,BrkFace,504,Gd,TA,PConc,Gd,TA,No,LwQ,250,GLQ,981,0,1231,GasA,Ex,Y,SBrkr,1251,1098,0,2349,1,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1993,RFn,3,762,TA,TA,Y,32,130,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1495,60,RL,88,11134,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1992,1993,Gable,CompShg,HdBoard,HdBoard,BrkFace,180,Gd,TA,PConc,Gd,TA,No,GLQ,1129,Unf,0,261,1390,GasA,Ex,Y,SBrkr,1402,823,0,2225,1,0,2,1,4,1,Gd,7,Typ,1,TA,Attchd,1992,RFn,3,713,TA,TA,Y,198,30,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1496,120,FV,25,4835,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,7,5,2004,2005,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Ex,TA,Av,GLQ,1298,Unf,0,190,1488,GasA,Ex,Y,SBrkr,1488,0,0,1488,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2004,Fin,2,506,TA,TA,Y,168,50,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal +1497,160,FV,39,3515,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,840,840,GasA,Ex,Y,SBrkr,840,840,0,1680,0,0,2,1,2,1,Gd,3,Typ,0,NA,Attchd,2004,RFn,2,588,TA,TA,Y,0,111,0,0,0,0,NA,NA,NA,0,1,2010,WD,Normal +1498,160,FV,30,3215,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,7,5,2004,2004,Gable,CompShg,MetalSd,MetalSd,BrkFace,120,Gd,TA,PConc,Gd,TA,Av,GLQ,280,Unf,0,320,600,GasA,Ex,Y,SBrkr,600,600,0,1200,0,0,2,1,2,1,Gd,4,Typ,0,NA,Detchd,2004,RFn,2,480,TA,TA,Y,0,172,0,0,0,0,NA,NA,NA,0,4,2010,ConLD,Normal +1499,160,FV,24,2544,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,2Story,7,5,2004,2005,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,368,ALQ,42,190,600,GasA,Ex,Y,SBrkr,600,600,0,1200,1,0,2,1,2,1,Gd,4,Typ,0,NA,Detchd,2004,RFn,2,480,TA,TA,Y,0,172,0,0,0,0,NA,NA,NA,0,2,2010,WD,Normal +1500,160,FV,24,2544,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,2Story,6,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,216,Gd,TA,PConc,Gd,TA,No,GLQ,376,Unf,0,224,600,GasA,Ex,Y,SBrkr,600,636,0,1236,1,0,2,1,2,1,Gd,4,Typ,0,NA,Detchd,2005,RFn,2,480,TA,TA,Y,0,166,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1501,160,FV,NA,2980,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,6,5,2000,2000,Gable,CompShg,MetalSd,MetalSd,BrkFace,1159,Gd,TA,PConc,Gd,TA,No,GLQ,466,Unf,0,290,756,GasA,Ex,Y,SBrkr,756,756,0,1512,1,0,2,1,2,1,Gd,5,Typ,0,NA,Detchd,2000,Unf,2,440,TA,TA,Y,0,32,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1502,160,FV,NA,2403,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,244,Unf,0,286,530,GasA,Ex,Y,SBrkr,530,550,0,1080,0,0,2,1,2,1,Gd,4,Typ,0,NA,Attchd,2003,RFn,2,496,TA,TA,Y,0,50,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1503,20,FV,57,12853,Pave,Pave,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2010,2010,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Ex,Po,No,GLQ,1032,Unf,0,610,1642,GasA,Ex,Y,SBrkr,1418,0,0,1418,1,0,1,1,1,1,Gd,6,Typ,1,Gd,Attchd,2010,RFn,3,852,TA,TA,Y,160,192,0,224,0,0,NA,NA,NA,0,4,2010,New,Partial +1504,60,FV,68,7379,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,484,Unf,0,491,975,GasA,Ex,Y,SBrkr,975,873,0,1848,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,2000,RFn,2,592,TA,TA,Y,280,184,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1505,20,FV,80,8000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,833,Unf,0,659,1492,GasA,Ex,Y,SBrkr,1492,0,0,1492,1,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2002,RFn,2,596,TA,TA,Y,277,137,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1506,20,RL,NA,10456,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,6,1967,1967,Hip,CompShg,HdBoard,HdBoard,BrkFace,120,TA,TA,CBlock,TA,TA,No,GLQ,506,Unf,0,1323,1829,GasA,Gd,Y,SBrkr,1829,0,0,1829,1,0,2,0,4,1,TA,8,Typ,0,NA,Attchd,1967,RFn,2,535,TA,TA,Y,0,76,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1507,60,RL,80,10791,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,6,5,1993,1993,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,Gd,TA,Mn,GLQ,1137,Unf,0,143,1280,GasA,Ex,Y,SBrkr,1280,1215,0,2495,1,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1993,Unf,2,660,TA,TA,Y,224,32,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal +1508,50,RL,NA,18837,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1.5Fin,6,5,1978,1978,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,Gd,TA,Mn,ALQ,687,LwQ,46,491,1224,GasA,TA,Y,SBrkr,1287,604,0,1891,0,1,3,0,3,1,TA,7,Typ,1,TA,Attchd,1978,RFn,2,678,TA,TA,Y,0,69,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1509,60,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,6,6,1971,1971,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,329,Unf,0,386,715,GasA,TA,Y,SBrkr,930,715,0,1645,0,0,1,2,4,1,TA,7,Typ,0,NA,Attchd,1971,RFn,2,441,TA,TA,Y,0,78,0,0,0,0,NA,GdWo,NA,0,6,2010,WD,Normal +1510,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1966,1966,Hip,CompShg,VinylSd,VinylSd,BrkFace,172,TA,TA,CBlock,TA,TA,No,Rec,698,Unf,0,534,1232,GasA,TA,Y,SBrkr,1232,0,0,1232,1,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1966,RFn,2,490,TA,TA,Y,0,224,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1511,20,RL,90,9900,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1966,1966,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,No,BLQ,1059,Unf,0,150,1209,GasA,Gd,Y,SBrkr,1209,0,0,1209,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1966,RFn,2,504,TA,TA,Y,0,0,120,0,0,0,NA,NA,NA,0,4,2010,ConLD,Normal +1512,20,RL,88,9680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1967,1967,Gable,CompShg,Wd Sdng,Plywood,BrkFace,268,TA,TA,CBlock,TA,TA,No,BLQ,1010,Unf,0,500,1510,GasA,Ex,Y,SBrkr,1510,0,0,1510,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1967,RFn,2,517,TA,TA,Y,0,40,0,0,204,0,NA,GdPrv,NA,0,4,2010,WD,Normal +1513,80,RL,NA,10600,Pave,Pave,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,6,5,1964,1964,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,533,533,GasA,TA,Y,SBrkr,1131,644,0,1775,0,0,2,0,3,1,TA,8,Typ,0,NA,Attchd,1964,Unf,2,480,TA,TA,Y,0,172,0,0,0,0,NA,NA,NA,0,5,2010,COD,Family +1514,90,RL,98,13260,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,Duplex,1Story,5,6,1962,2001,Hip,CompShg,HdBoard,HdBoard,BrkFace,144,TA,TA,CBlock,TA,TA,No,BLQ,1500,Unf,0,228,1728,GasA,TA,Y,SBrkr,1728,0,0,1728,2,0,2,0,6,2,TA,10,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,1,2010,Oth,Abnorml +1515,50,RL,68,9724,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1.5Fin,5,7,1952,2002,Gable,CompShg,MetalSd,MetalSd,BrkFace,265,Gd,TA,CBlock,TA,TA,No,LwQ,670,Unf,0,470,1140,GasA,Gd,Y,SBrkr,1929,532,0,2461,0,0,2,0,3,1,TA,7,Min2,2,Gd,Detchd,1994,Unf,2,400,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,3,2010,WD,Normal +1516,50,RL,120,17360,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Artery,Norm,1Fam,1.5Fin,6,6,1949,1950,Gable,CompShg,MetalSd,MetalSd,Stone,340,TA,Gd,CBlock,TA,TA,No,Rec,300,Unf,0,482,782,GasA,TA,Y,SBrkr,1019,537,0,1556,0,0,2,0,3,1,TA,6,Typ,1,Gd,Attchd,1949,Unf,2,470,TA,TA,Y,0,0,150,0,0,0,NA,NA,NA,0,1,2010,WD,Normal +1517,85,RL,75,11380,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SFoyer,6,8,1966,2008,Gable,CompShg,HdBoard,HdBoard,BrkFace,216,TA,TA,CBlock,TA,TA,Gd,GLQ,944,Unf,0,136,1080,GasA,Gd,Y,SBrkr,1128,0,0,1128,1,0,1,0,2,1,Gd,5,Typ,1,Gd,Attchd,1966,Unf,1,315,TA,TA,Y,238,0,0,0,0,0,NA,NA,Shed,1500,1,2010,WD,Normal +1518,90,RL,70,8267,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Feedr,Norm,Duplex,1Story,5,5,1958,1958,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1604,1604,GasA,TA,Y,SBrkr,1604,0,0,1604,0,0,2,0,4,2,TA,8,Typ,0,NA,Attchd,1958,Unf,2,576,TA,TA,Y,42,0,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal +1519,20,RL,70,8197,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,7,5,2003,2009,Gable,CompShg,VinylSd,VinylSd,BrkFace,506,Gd,TA,PConc,Gd,TA,No,GLQ,1188,Unf,0,292,1480,GasA,Ex,Y,SBrkr,1480,0,0,1480,1,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2003,RFn,2,620,TA,TA,Y,252,73,0,0,0,0,NA,MnPrv,Shed,300,2,2010,WD,Normal +1520,20,RL,NA,8050,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1959,1959,Hip,CompShg,MetalSd,MetalSd,BrkFace,150,TA,TA,CBlock,TA,TA,No,BLQ,856,Rec,162,125,1143,GasA,TA,Y,SBrkr,1143,0,0,1143,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1959,RFn,1,308,TA,TA,Y,0,0,0,0,0,0,NA,GdPrv,NA,0,5,2010,WD,Normal +1521,20,RL,87,10725,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1959,1959,Hip,CompShg,MetalSd,MetalSd,BrkFace,91,TA,TA,CBlock,TA,TA,No,Rec,936,Unf,0,270,1206,GasA,Fa,Y,SBrkr,1206,0,0,1206,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1959,RFn,1,312,TA,TA,Y,0,21,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1522,20,RL,80,10032,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1959,1959,Gable,CompShg,Wd Sdng,Wd Sdng,Stone,432,TA,TA,CBlock,TA,TA,No,Rec,734,Unf,0,510,1244,GasA,Ex,Y,SBrkr,1580,0,0,1580,1,0,1,1,3,1,TA,6,Typ,2,Gd,Attchd,1956,Unf,2,440,TA,TA,Y,0,28,0,0,160,0,NA,GdWo,NA,0,6,2010,WD,Normal +1523,50,RL,60,8382,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1.5Fin,4,5,1956,1956,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,832,832,GasA,TA,Y,FuseA,832,505,0,1337,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1956,Unf,1,263,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,2,2010,WD,Normal +1524,20,RL,60,10950,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1952,1952,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,339,Unf,0,525,864,GasA,TA,Y,SBrkr,1064,0,0,1064,0,1,1,0,2,1,Fa,4,Typ,0,NA,Detchd,1952,Unf,1,318,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1525,20,RL,119,10895,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1955,1955,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,Rec,648,Unf,0,324,972,GasA,TA,Y,SBrkr,972,0,0,972,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1955,Unf,1,305,TA,TA,Y,0,0,205,0,0,0,NA,GdWo,NA,0,6,2010,WD,Normal +1526,190,RL,70,13587,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,2fmCon,1Story,5,5,1958,1958,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,Av,Rec,532,Unf,0,456,988,GasA,TA,Y,SBrkr,988,0,0,988,1,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1958,Unf,1,264,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Abnorml +1527,30,RL,65,7898,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,7,1920,1994,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,576,576,GasA,Gd,Y,SBrkr,985,0,0,985,0,1,1,0,2,1,TA,4,Typ,0,NA,Detchd,1989,Unf,2,676,TA,TA,N,0,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1528,50,RL,60,8064,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Artery,Norm,1Fam,1.5Fin,6,8,1948,2004,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,TA,No,ALQ,481,Rec,174,161,816,GasA,TA,Y,SBrkr,816,408,0,1224,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1950,Unf,1,280,TA,TA,Y,414,0,0,0,0,0,NA,GdWo,NA,0,5,2010,WD,Normal +1529,20,RL,81,7635,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1960,1960,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,588,LwQ,350,237,1175,GasA,Ex,Y,SBrkr,1175,0,0,1175,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1960,RFn,2,484,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1530,20,RL,80,9760,Pave,NA,Reg,Lvl,AllPub,Inside,Mod,NAmes,Norm,Norm,1Fam,1Story,6,7,1963,1984,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,218,TA,TA,CBlock,TA,TA,Gd,BLQ,717,LwQ,263,415,1395,GasA,TA,Y,SBrkr,1395,0,0,1395,1,0,1,0,2,1,TA,7,Min1,1,TA,Attchd,1963,RFn,2,440,TA,TA,Y,657,0,113,0,240,0,NA,NA,NA,0,5,2010,WD,Normal +1531,50,RM,60,4800,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,4,5,1900,1954,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,771,TA,TA,PConc,TA,TA,No,ALQ,48,Unf,0,661,709,GasA,TA,Y,SBrkr,1157,687,0,1844,1,0,1,0,3,1,TA,9,Min2,2,Gd,Basment,1900,Unf,1,240,TA,TA,Y,84,0,0,0,0,0,NA,NA,NA,0,1,2010,COD,Abnorml +1532,30,RM,56,4485,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1Story,5,7,1920,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,BLQ,579,Unf,0,357,936,GasA,TA,Y,SBrkr,936,0,0,936,1,0,1,0,2,1,TA,5,Typ,1,Gd,NA,NA,NA,0,0,NA,NA,P,51,0,135,0,0,0,NA,MnPrv,NA,0,5,2010,WD,Normal +1533,20,RM,69,5805,Pave,Grvl,Reg,Bnk,AllPub,Inside,Mod,OldTown,Norm,Norm,1Fam,1Story,5,7,1957,1957,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,Mn,BLQ,274,Rec,1073,0,1347,GasA,Gd,Y,SBrkr,1347,0,0,1347,1,1,1,0,3,1,Gd,6,Typ,0,NA,Detchd,1957,Unf,2,551,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1534,45,RM,50,6900,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,6,7,1938,2000,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,827,827,GasA,Gd,Y,SBrkr,827,424,0,1251,0,0,1,0,3,1,Fa,6,Typ,0,NA,Detchd,1938,Unf,1,240,Fa,TA,N,0,0,0,0,0,0,NA,NA,NA,0,1,2010,WD,Normal +1535,50,RM,69,11851,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1.5Fin,5,7,1948,2009,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,BrkTil,TA,TA,No,BLQ,780,Unf,0,247,1027,GasA,Ex,Y,SBrkr,1027,606,0,1633,0,0,1,0,3,1,Gd,7,Typ,1,Gd,Detchd,1948,Unf,1,240,TA,TA,Y,0,100,126,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1536,50,RM,NA,8239,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1.5Fin,5,6,1920,1962,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Rec,176,Unf,0,832,1008,GasA,TA,Y,SBrkr,1060,185,0,1245,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1962,Unf,1,315,TA,TA,Y,0,0,334,0,0,0,NA,NA,NA,0,3,2010,WD,Normal +1537,30,RM,68,9656,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,2,2,1923,1970,Gable,CompShg,AsbShng,AsbShng,None,0,TA,Fa,BrkTil,Fa,Fa,No,Unf,0,Unf,0,678,678,GasA,TA,N,SBrkr,832,0,0,832,0,0,1,0,2,1,TA,5,Typ,1,Gd,Detchd,1928,Unf,2,780,Fa,Fa,N,0,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Abnorml +1538,70,RM,60,9600,Pave,Grvl,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,2Story,8,9,1900,2003,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,Gd,BrkTil,TA,TA,No,Unf,0,Unf,0,930,930,GasW,TA,N,SBrkr,930,636,0,1566,0,0,2,0,3,1,Gd,7,Typ,0,NA,Detchd,1930,Unf,1,288,TA,TA,Y,54,228,246,0,0,0,NA,NA,NA,0,4,2010,WD,Abnorml +1539,70,RM,50,9000,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,8,9,1890,2002,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,Gd,Stone,Fa,Fa,No,Unf,0,Unf,0,346,346,GasA,Ex,Y,SBrkr,1157,1111,0,2268,0,0,3,0,3,1,Gd,7,Typ,0,NA,Detchd,2003,Unf,2,624,TA,TA,N,0,108,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1540,190,RM,100,9045,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,2fmCon,2Story,5,3,1910,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Fa,BrkTil,TA,TA,Mn,Unf,0,Unf,0,840,840,Grav,Fa,N,FuseF,1128,1128,0,2256,0,0,2,0,4,2,Fa,12,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,18,18,0,0,0,NA,NA,NA,0,6,2010,WD,Abnorml +1541,70,RM,60,10560,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,6,7,1922,1994,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,Fa,TA,No,Rec,283,Unf,0,455,738,GasA,Ex,Y,SBrkr,868,602,0,1470,0,0,1,1,2,1,TA,6,Min1,0,NA,Detchd,1970,Unf,2,624,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1542,50,RM,53,5830,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,BrkSide,Feedr,Feedr,1Fam,1.5Fin,5,6,1950,1997,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,Rec,788,Unf,0,200,988,GasA,Ex,Y,SBrkr,1030,582,0,1612,0,0,1,1,3,1,TA,7,Typ,0,NA,Detchd,1950,Unf,1,363,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,3,2010,WD,Normal +1543,75,RL,NA,7793,Pave,NA,IR1,Bnk,AllPub,Corner,Gtl,BrkSide,Norm,Norm,1Fam,2.5Unf,7,7,1922,2005,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Gd,TA,No,BLQ,474,Unf,0,634,1108,GasA,TA,N,FuseA,1160,908,0,2068,0,0,1,1,3,1,Gd,8,Typ,1,Gd,Detchd,1928,Unf,1,315,TA,TA,Y,0,0,60,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1544,30,RM,50,5000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Feedr,Norm,1Fam,1Story,4,7,1925,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Rec,188,Unf,0,577,765,GasA,TA,N,FuseF,765,0,0,765,1,0,1,0,2,1,Gd,4,Typ,0,NA,Detchd,1926,Unf,1,200,Fa,TA,P,135,0,41,0,0,0,NA,MnPrv,NA,0,4,2010,WD,Normal +1545,50,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,7,1939,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,Gd,No,BLQ,452,LwQ,12,144,608,GasA,TA,Y,SBrkr,608,524,0,1132,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1939,Unf,1,240,TA,TA,Y,0,0,128,0,0,0,NA,MnPrv,NA,0,4,2010,WD,Abnorml +1546,50,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,6,1940,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,LwQ,264,Unf,0,308,572,GasA,Ex,Y,FuseA,848,348,0,1196,0,1,1,1,3,1,TA,6,Typ,2,Gd,Detchd,1973,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal +1547,50,RM,53,6360,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,BrkSide,Feedr,Norm,1Fam,1.5Fin,5,6,1942,1950,Gable,CompShg,MetalSd,MetalSd,Stone,300,TA,TA,CBlock,TA,TA,No,Rec,360,LwQ,159,316,835,GasA,TA,Y,FuseA,955,498,0,1453,0,0,1,1,3,1,Gd,7,Min2,2,Fa,Detchd,1942,Unf,1,240,TA,TA,Y,0,0,35,0,148,0,NA,NA,NA,0,3,2010,WD,Normal +1548,50,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,7,1948,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,300,Unf,0,480,780,GasA,TA,Y,SBrkr,780,636,0,1416,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1948,Unf,1,312,TA,TA,P,221,0,48,0,0,0,NA,NA,NA,0,3,2010,WD,Normal +1549,50,RM,52,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,7,1936,1980,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,Fa,No,Rec,276,Unf,0,252,528,GasA,Gd,Y,SBrkr,548,492,0,1040,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1979,Fin,2,624,TA,TA,P,306,0,32,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1550,50,RM,52,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,5,1930,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,LwQ,448,Unf,0,480,928,GasA,TA,Y,FuseF,928,608,0,1536,0,0,2,0,4,1,TA,7,Typ,1,Gd,Detchd,1930,Unf,2,480,TA,TA,Y,0,10,0,0,0,0,NA,MnPrv,NA,0,3,2010,WD,Normal +1551,30,RM,51,6120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1Story,6,5,1923,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Fa,Fa,No,ALQ,960,Unf,0,164,1124,GasA,TA,Y,SBrkr,1068,0,0,1068,1,0,1,0,2,1,TA,5,Typ,1,Gd,Detchd,1923,Unf,1,288,TA,TA,Y,0,0,128,0,0,0,NA,NA,NA,0,3,2010,WD,Normal +1552,50,RM,57,8094,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,4,5,1915,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Fa,CBlock,TA,TA,No,Unf,0,Unf,0,888,888,GasA,Ex,Y,SBrkr,888,1074,0,1962,0,0,1,1,4,1,TA,9,Typ,1,TA,Detchd,1915,Unf,2,572,TA,TA,Y,160,0,364,0,0,0,NA,GdPrv,NA,0,6,2010,WD,Normal +1553,70,RM,60,12900,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,6,8,1912,2009,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,Gd,PConc,TA,TA,No,Unf,0,Unf,0,780,780,GasA,Ex,Y,SBrkr,780,780,0,1560,0,0,1,1,3,1,Gd,7,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,344,0,0,0,168,0,NA,NA,NA,0,5,2010,WD,Normal +1554,70,RM,52,3068,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,6,8,1920,1993,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,BrkTil,TA,TA,No,Unf,0,Unf,0,662,662,GasA,Ex,Y,SBrkr,662,662,0,1324,0,1,1,0,3,1,TA,6,Typ,0,NA,Detchd,1920,Unf,1,180,TA,TA,Y,0,0,112,0,0,0,NA,GdPrv,NA,0,2,2010,WD,Normal +1555,20,RL,100,15263,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,ClearCr,Feedr,Norm,1Fam,1Story,5,5,1959,1959,Gable,CompShg,HdBoard,HdBoard,BrkFace,90,TA,TA,CBlock,Gd,TA,No,Rec,766,Unf,0,656,1422,GasA,Gd,Y,SBrkr,1675,0,0,1675,0,0,2,0,3,1,TA,8,Typ,2,Gd,Attchd,1959,Unf,1,365,TA,TA,Y,0,132,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1556,50,RL,72,10632,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,ClearCr,Norm,Norm,1Fam,1.5Fin,5,3,1917,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Gd,Fa,No,Unf,0,Unf,0,689,689,GasA,Gd,N,SBrkr,725,499,0,1224,0,0,1,1,3,1,NA,6,Mod,0,NA,Detchd,1917,Unf,1,180,Fa,Fa,N,0,0,248,0,0,0,NA,NA,NA,0,1,2010,COD,Normal +1557,190,RL,60,9900,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,2fmCon,1.5Fin,5,4,1915,1950,Gable,CompShg,Wd Sdng,Wd Shng,None,0,Fa,Fa,BrkTil,TA,TA,No,Rec,1026,Unf,0,186,1212,GasA,TA,N,SBrkr,1212,180,0,1392,1,0,1,0,3,1,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,168,0,0,0,NA,NA,NA,0,2,2010,ConLD,Normal +1558,50,RL,65,6001,Pave,NA,IR1,Bnk,AllPub,Inside,Mod,SWISU,Norm,Norm,1Fam,1.5Fin,6,5,1940,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,Fa,TA,No,LwQ,368,Unf,0,232,600,GasA,Ex,N,SBrkr,600,319,0,919,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1940,Unf,1,231,TA,TA,Y,0,0,45,0,0,0,NA,MnPrv,NA,0,3,2010,WD,Normal +1559,70,C (all),NA,6449,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,2Story,4,1,1907,1950,Gambrel,CompShg,Wd Sdng,Stucco,None,0,TA,TA,CBlock,TA,TA,No,Rec,73,Unf,0,634,707,GasW,TA,N,SBrkr,942,942,0,1884,0,0,1,1,4,1,TA,7,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,239,0,0,0,NA,NA,NA,0,3,2010,WD,Abnorml +1560,190,RH,60,6048,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,SWISU,Artery,Norm,2fmCon,1.5Fin,5,7,1910,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,BrkTil,TA,TA,Mn,LwQ,736,Unf,0,120,856,GasA,Gd,Y,SBrkr,936,744,0,1680,1,0,2,0,2,2,TA,7,Typ,1,Gd,Detchd,1910,Unf,2,450,TA,Fa,P,56,144,0,0,0,0,NA,NA,NA,0,6,2010,COD,Normal +1561,90,RL,72,10773,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,Duplex,1Story,4,3,1967,1967,Gable,Tar&Grv,Plywood,Plywood,BrkFace,72,Fa,Fa,CBlock,TA,TA,No,ALQ,704,Unf,0,1128,1832,GasA,TA,N,SBrkr,1832,0,0,1832,2,0,2,0,4,2,TA,8,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,58,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1562,20,RL,65,7800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,7,1966,2008,Hip,CompShg,HdBoard,HdBoard,BrkFace,47,TA,TA,CBlock,TA,TA,Mn,BLQ,240,Rec,474,150,864,GasA,Ex,Y,SBrkr,892,0,0,892,1,0,1,0,3,1,Gd,5,Typ,0,NA,Detchd,1966,Unf,1,416,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1563,20,RL,65,7832,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1968,1968,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,GLQ,775,Unf,0,89,864,GasA,Ex,Y,SBrkr,864,0,0,864,1,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1969,Unf,1,280,TA,TA,Y,226,0,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1564,90,RL,NA,7424,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,Duplex,SFoyer,5,5,1978,1978,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,Av,GLQ,1319,Unf,0,0,1319,GasA,TA,Y,SBrkr,1373,0,0,1373,1,0,1,0,3,1,TA,5,Typ,2,TA,Attchd,1978,Fin,2,591,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1565,60,RL,86,11227,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,2Story,5,5,1968,1968,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Gd,CBlock,TA,Gd,No,Rec,267,ALQ,453,0,720,GasA,Ex,Y,SBrkr,720,720,0,1440,0,0,1,1,4,1,TA,7,Typ,2,TA,Attchd,1968,Unf,2,480,TA,TA,Y,192,38,0,0,0,0,NA,MnPrv,NA,0,3,2010,WD,Normal +1566,20,RL,NA,20062,Pave,NA,IR1,Low,AllPub,Inside,Mod,ClearCr,Norm,Norm,1Fam,1Story,7,7,1977,2001,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,Gd,CBlock,Gd,TA,Gd,ALQ,1092,Unf,0,328,1420,GasA,Gd,Y,SBrkr,1483,0,0,1483,1,0,1,1,1,1,TA,4,Typ,2,TA,Attchd,1977,RFn,2,690,TA,TA,Y,496,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1567,30,RL,94,9259,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,4,4,1927,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Fa,TA,No,Unf,0,Unf,0,660,660,GasA,TA,N,SBrkr,756,0,0,756,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1945,Unf,2,440,TA,TA,N,80,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1568,60,RL,NA,17082,Pave,NA,IR1,Low,AllPub,CulDSac,Mod,ClearCr,Norm,Norm,1Fam,2Story,6,5,1978,1992,Gable,CompShg,VinylSd,VinylSd,BrkFace,288,TA,TA,PConc,Gd,TA,Av,ALQ,964,Unf,0,153,1117,GasA,Ex,Y,SBrkr,1117,864,0,1981,1,0,2,1,4,1,Gd,8,Typ,1,TA,Attchd,1978,Fin,2,522,TA,TA,Y,336,104,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1569,50,RL,124,18600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,3,4,1938,1990,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Mn,BLQ,288,LwQ,684,0,972,GasA,TA,Y,FuseA,1052,558,0,1610,0,1,2,0,4,1,Fa,8,Typ,1,Gd,Attchd,1938,RFn,1,480,TA,TA,Y,0,0,60,0,0,0,NA,NA,Shed,450,6,2010,WD,Normal +1570,20,RL,65,11479,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,6,7,1950,1987,Gable,CompShg,Wd Sdng,Plywood,None,0,TA,TA,CBlock,TA,TA,No,GLQ,104,Rec,387,172,663,GasA,Ex,Y,SBrkr,1074,0,0,1074,1,0,1,0,3,1,Gd,6,Typ,1,TA,Attchd,1987,Unf,1,467,TA,TA,Y,0,52,52,0,0,0,NA,MnPrv,NA,0,6,2010,WD,Normal +1571,50,RL,50,9350,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,4,6,1947,1979,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,Fa,No,LwQ,192,Unf,0,564,756,GasA,Ex,Y,SBrkr,1169,0,362,1531,0,0,1,0,3,1,TA,8,Typ,1,TA,Detchd,1947,Unf,1,209,Fa,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,6,2010,WD,Normal +1572,20,RL,75,9525,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,7,1954,1998,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,TA,Av,BLQ,954,Unf,0,218,1172,GasA,TA,Y,SBrkr,1172,0,0,1172,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1954,Fin,1,366,TA,TA,Y,240,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1573,20,RL,44,17485,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,7,5,2009,2010,Gable,CompShg,VinylSd,VinylSd,Stone,96,Gd,TA,PConc,Gd,TA,Gd,GLQ,1346,Unf,0,162,1508,GasA,Ex,Y,SBrkr,1508,0,0,1508,1,0,1,0,1,1,Gd,5,Typ,2,TA,Attchd,2009,RFn,2,572,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,1,2010,Con,Partial +1574,20,RL,NA,11200,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,3,1964,1964,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Fa,CBlock,TA,TA,Mn,Unf,0,Unf,0,1250,1250,GasA,Ex,Y,SBrkr,1298,0,0,1298,0,0,2,0,3,1,TA,5,Typ,0,NA,Detchd,1964,Unf,2,504,TA,Fa,N,0,144,0,0,0,0,NA,NA,NA,0,6,2010,COD,Normal +1575,20,RL,83,11980,Pave,NA,Reg,Low,AllPub,Inside,Mod,SawyerW,Norm,Norm,1Fam,1Story,7,5,1987,1987,Gable,CompShg,Plywood,Plywood,BrkFace,177,Gd,TA,CBlock,Gd,TA,Gd,GLQ,1433,Unf,0,0,1433,GasA,Ex,Y,SBrkr,1433,0,0,1433,1,0,1,1,1,1,Gd,4,Typ,2,TA,Attchd,1987,RFn,2,528,Gd,Gd,Y,0,278,0,0,266,0,NA,MnPrv,NA,0,6,2010,WD,Normal +1576,60,RL,87,12361,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,7,1993,1993,Gable,CompShg,VinylSd,VinylSd,BrkFace,85,Gd,Gd,PConc,Gd,TA,No,GLQ,860,Unf,0,86,946,GasA,Ex,Y,SBrkr,964,838,0,1802,0,1,2,1,3,1,Gd,8,Typ,1,Gd,2Types,2000,RFn,4,1017,TA,TA,Y,450,92,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1577,20,RL,64,7360,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2010,2010,Gable,CompShg,VinylSd,VinylSd,Stone,80,Gd,TA,PConc,Gd,TA,No,GLQ,24,Unf,0,1198,1222,GasA,Ex,Y,SBrkr,1222,0,0,1222,0,0,2,0,2,1,Gd,6,Typ,0,NA,Attchd,2009,RFn,2,615,TA,TA,Y,0,54,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal +1578,50,RL,82,14235,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1.5Fin,6,8,1900,1993,Gable,CompShg,Wd Sdng,Plywood,None,0,TA,TA,PConc,Fa,Gd,No,Unf,0,Unf,0,676,676,GasA,TA,Y,SBrkr,831,614,0,1445,0,0,2,0,3,1,TA,6,Typ,0,NA,Detchd,1957,Unf,2,484,TA,TA,N,0,59,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal +1579,85,RL,82,11105,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,SFoyer,5,5,1996,1996,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,PConc,Gd,Fa,Av,GLQ,870,Unf,0,0,870,GasA,Gd,Y,SBrkr,965,0,0,965,1,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1998,Unf,2,580,Gd,TA,Y,71,0,0,0,0,0,NA,GdPrv,NA,0,7,2010,WD,Normal +1580,60,RL,NA,9337,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,1997,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,ALQ,353,Unf,0,525,878,GasA,Ex,Y,SBrkr,892,800,0,1692,0,0,2,1,3,1,TA,8,Typ,1,TA,Attchd,1997,RFn,2,513,TA,TA,Y,0,39,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1581,20,RL,38,15240,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,8,1977,2004,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,Gd,CBlock,Gd,TA,No,GLQ,198,Rec,688,140,1026,GasA,Ex,Y,SBrkr,1026,0,0,1026,1,0,1,1,3,1,TA,5,Typ,0,NA,Attchd,1977,Unf,1,308,TA,TA,Y,316,85,0,0,0,0,NA,MnPrv,NA,0,6,2010,WD,Normal +1582,20,RL,68,7480,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,6,1972,1972,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Av,ALQ,480,Unf,0,396,876,GasA,TA,Y,SBrkr,876,0,0,876,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1977,Unf,2,484,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,6,2010,WD,Normal +1583,20,RL,80,10389,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2003,2003,Hip,CompShg,CemntBd,CmentBd,BrkFace,320,Gd,TA,PConc,Gd,TA,No,GLQ,1682,Unf,0,296,1978,GasA,Ex,Y,SBrkr,1978,0,0,1978,1,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2003,RFn,3,850,TA,TA,Y,188,25,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1584,60,RL,75,9375,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,1997,1997,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1040,1040,GasA,Ex,Y,SBrkr,1044,1054,0,2098,0,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1997,Fin,2,621,TA,TA,Y,331,38,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1585,120,RM,NA,4435,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,TwnhsE,1Story,6,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,170,Gd,TA,PConc,Gd,TA,Av,GLQ,672,Unf,0,176,848,GasA,Ex,Y,SBrkr,848,0,0,848,1,0,1,0,1,1,Gd,4,Typ,0,NA,Attchd,2003,Fin,2,420,TA,TA,Y,140,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1586,30,RL,67,8777,Pave,NA,Reg,Lvl,AllPub,Inside,Mod,Edwards,Feedr,Norm,1Fam,1Story,3,6,1945,2007,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,N,SBrkr,640,0,0,640,0,0,1,0,2,1,TA,5,Min1,0,NA,Detchd,1945,Unf,1,240,TA,TA,N,0,0,0,0,0,0,NA,NA,NA,0,4,2010,ConLD,Normal +1587,20,RL,68,8842,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,6,1954,1954,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,Fa,TA,No,Unf,0,Unf,0,381,381,GasA,Ex,Y,SBrkr,992,0,0,992,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1954,Unf,1,319,TA,TA,Y,60,0,56,0,0,0,NA,MnPrv,NA,0,1,2010,Oth,Abnorml +1588,20,RL,60,10044,Pave,NA,IR1,Low,AllPub,CulDSac,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,6,1968,1968,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,Gd,TA,Gd,ALQ,1070,Unf,0,126,1196,GasA,TA,Y,SBrkr,1196,0,0,1196,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1968,RFn,1,336,TA,TA,Y,257,0,168,0,0,0,NA,MnPrv,NA,0,6,2010,WD,Normal +1589,50,RL,89,11792,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,4,5,1948,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,744,744,GasA,Ex,N,FuseF,792,328,0,1120,0,0,1,0,2,1,Fa,5,Typ,0,NA,Detchd,1956,Unf,2,480,TA,Fa,P,0,0,0,0,160,0,NA,NA,NA,0,6,2010,WD,Abnorml +1590,80,RL,65,6305,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,SLvl,6,6,1975,1975,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,Av,ALQ,528,Unf,0,480,1008,GasA,TA,Y,SBrkr,1096,0,0,1096,1,0,1,0,3,1,TA,5,Typ,1,Fa,Detchd,1975,Unf,1,352,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1591,20,RL,64,6410,Pave,NA,Reg,HLS,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,5,1958,1958,Hip,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,960,960,GasA,Ex,Y,SBrkr,960,0,0,960,0,0,1,0,3,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,5,2010,WD,Normal +1592,30,RL,67,4853,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,SWISU,Artery,Norm,1Fam,1Story,5,6,1924,1999,Gable,CompShg,MetalSd,VinylSd,BrkFace,203,TA,TA,BrkTil,TA,TA,Mn,Rec,133,Unf,0,974,1107,GasA,Fa,N,FuseA,1296,0,0,1296,0,0,2,0,2,1,Fa,5,Typ,1,Gd,Detchd,1979,Unf,1,260,TA,TA,Y,0,0,36,0,0,0,NA,MnPrv,NA,0,5,2010,WD,Normal +1593,30,RL,NA,7890,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,SWISU,Norm,Norm,1Fam,1Story,6,6,1939,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,238,Unf,0,618,856,GasA,TA,Y,SBrkr,856,0,0,856,1,0,1,0,2,1,TA,4,Typ,1,Gd,Detchd,1939,Unf,2,399,TA,TA,Y,0,0,0,0,166,0,NA,NA,NA,0,3,2010,WD,Normal +1594,90,RH,60,7200,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,Duplex,2Story,4,6,1967,1967,Flat,Tar&Grv,Plywood,CBlock,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,862,1788,0,2650,0,0,3,0,6,2,TA,10,Min2,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,Shed,500,2,2010,WD,Normal +1595,50,RL,51,9839,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Feedr,Norm,1Fam,1.5Fin,5,2,1931,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,TA,Fa,No,Unf,0,Unf,0,894,894,GasA,Ex,Y,SBrkr,894,772,0,1666,1,0,1,0,3,1,TA,7,Typ,1,Gd,NA,NA,NA,0,0,NA,NA,N,0,156,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1596,50,RL,78,10452,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1.5Fin,7,6,1941,1985,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,371,Gd,Gd,BrkTil,Gd,TA,No,ALQ,426,BLQ,252,850,1528,GasA,Ex,Y,SBrkr,1225,908,0,2133,1,0,1,1,4,1,TA,8,Typ,2,TA,Attchd,1941,Unf,1,312,TA,TA,Y,0,0,86,0,0,0,NA,NA,NA,0,7,2010,WD,Normal +1597,90,RL,78,15600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,Duplex,2Story,5,6,1950,1991,Gable,CompShg,VinylSd,VinylSd,BrkFace,430,TA,Gd,CBlock,TA,TA,No,ALQ,375,Unf,0,657,1032,GasA,Ex,Y,SBrkr,1102,1075,0,2177,0,0,2,1,5,2,TA,11,Typ,0,NA,Detchd,1950,Unf,2,484,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal +1598,80,RL,85,19645,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,Crawfor,Norm,Norm,1Fam,SLvl,7,6,1994,2007,Gable,CompShg,VinylSd,VinylSd,BrkFace,44,TA,TA,PConc,Gd,TA,No,GLQ,343,Unf,0,80,423,GasA,Ex,Y,SBrkr,896,756,0,1652,1,0,2,1,3,1,Gd,6,Typ,0,NA,BuiltIn,1994,RFn,2,473,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1599,120,RM,35,3907,Pave,NA,IR1,HLS,AllPub,Inside,Mod,Blueste,Norm,Norm,TwnhsE,1Story,8,6,1989,1989,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,CBlock,Gd,TA,Gd,GLQ,747,Unf,0,235,982,GasA,Gd,Y,SBrkr,1034,0,0,1034,1,0,1,0,1,1,Gd,4,Typ,1,TA,Attchd,1989,Fin,2,598,TA,TA,Y,141,36,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1600,120,RM,35,3907,Pave,NA,IR1,HLS,AllPub,Inside,Mod,Blueste,Norm,Norm,TwnhsE,1Story,8,5,1989,1989,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,CBlock,Gd,TA,Av,GLQ,76,Unf,0,1115,1191,GasA,Gd,Y,SBrkr,1191,0,0,1191,0,0,2,0,2,1,Gd,5,Typ,1,TA,Attchd,1989,Unf,2,531,TA,TA,Y,112,81,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal +1601,30,RM,58,8154,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,2,5,1941,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,BLQ,480,Unf,0,0,480,GasA,TA,Y,SBrkr,540,0,0,540,0,0,1,0,1,1,TA,4,Typ,0,NA,Detchd,1951,Unf,1,200,Fa,Fa,N,0,0,0,0,0,0,NA,NA,NA,0,4,2010,ConLw,Normal +1602,50,RM,50,9140,Pave,NA,Reg,HLS,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,6,5,1921,1975,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,Mn,BLQ,308,Unf,0,321,629,GasA,Fa,Y,SBrkr,727,380,0,1107,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1950,Unf,1,625,TA,TA,Y,0,56,0,0,200,0,NA,MnPrv,NA,0,4,2010,COD,Normal +1603,30,C (all),66,8712,Grvl,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,4,7,1896,1950,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,Fa,Fa,CBlock,TA,TA,No,Unf,0,Unf,0,756,756,GasA,Gd,Y,SBrkr,952,0,0,952,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1896,RFn,1,330,TA,TA,N,0,0,265,0,0,0,NA,NA,NA,0,6,2010,WD,Alloca +1604,120,RM,44,3811,Pave,NA,IR1,HLS,AllPub,Corner,Mod,Crawfor,Artery,Norm,TwnhsE,1Story,8,5,2004,2005,Hip,CompShg,CemntBd,CmentBd,Stone,186,Gd,TA,PConc,Ex,TA,Gd,GLQ,1373,Unf,0,221,1594,GasA,Ex,Y,SBrkr,1646,0,0,1646,1,1,2,0,2,1,Gd,5,Typ,1,Gd,Attchd,2004,Fin,2,525,TA,TA,Y,128,53,0,0,155,0,NA,NA,NA,0,5,2010,WD,Normal +1605,60,RL,85,11050,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,2Story,8,5,1998,1999,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,615,Unf,0,434,1049,GasA,Ex,Y,SBrkr,1036,880,0,1916,1,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1998,Unf,3,741,TA,TA,Y,0,70,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1606,80,RL,74,9620,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,SLvl,6,7,1977,1977,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,679,Unf,0,564,1243,GasA,TA,Y,SBrkr,1285,0,0,1285,0,1,2,0,3,1,Gd,6,Typ,1,Fa,Attchd,1977,Unf,2,473,TA,TA,Y,375,26,0,0,0,0,NA,GdPrv,Shed,80,5,2010,WD,Normal +1607,90,RL,NA,12760,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,Duplex,1Story,6,5,1976,1976,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1958,1958,GasA,TA,Y,SBrkr,2048,0,0,2048,0,0,3,0,5,2,TA,9,Typ,0,NA,2Types,1976,Unf,2,776,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2010,ConLD,Normal +1608,20,RL,88,11896,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,1Story,7,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,Stone,60,Gd,TA,PConc,Gd,TA,No,GLQ,78,Unf,0,1258,1336,GasA,Ex,Y,SBrkr,1346,0,0,1346,1,0,2,0,3,1,Gd,6,Typ,1,TA,Attchd,2008,Fin,3,660,TA,TA,Y,100,48,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal +1609,20,RL,73,9803,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,7,5,2009,2010,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1214,1214,GasA,Ex,Y,SBrkr,1214,0,0,1214,0,0,2,0,2,1,Gd,6,Typ,0,NA,Attchd,2010,RFn,2,520,TA,TA,Y,0,25,0,0,0,0,NA,NA,NA,0,1,2010,New,Partial +1610,60,RL,73,9802,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,2Story,5,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,384,384,GasA,Gd,Y,SBrkr,744,700,0,1444,0,0,2,1,3,1,TA,7,Typ,0,NA,BuiltIn,2007,Fin,2,400,TA,TA,Y,100,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1611,20,RL,85,15300,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,5,1965,1977,Hip,CompShg,Plywood,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Rec,42,Unf,0,1026,1068,GasA,TA,Y,SBrkr,1264,0,0,1264,1,0,1,0,2,1,TA,7,Typ,1,TA,Attchd,1965,Unf,2,528,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1612,20,RL,93,10114,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Ex,TA,Av,Unf,0,Unf,0,1430,1430,GasA,Ex,Y,SBrkr,1430,0,0,1430,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2004,RFn,2,624,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal +1613,20,RL,NA,11875,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1344,1344,GasA,Ex,Y,SBrkr,1344,0,0,1344,0,0,2,0,3,1,TA,7,Typ,1,Gd,Attchd,2001,Unf,2,686,TA,TA,Y,328,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1614,120,RM,31,2394,Pave,NA,Reg,Low,AllPub,Inside,Mod,MeadowV,Norm,Norm,Twnhs,1Story,5,6,1973,1973,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,Gd,TA,Gd,GLQ,915,Unf,0,30,945,GasA,Ex,Y,SBrkr,945,0,0,945,1,1,1,0,2,1,TA,5,Typ,1,Po,Attchd,1973,RFn,1,253,TA,TA,Y,174,0,56,0,108,0,NA,NA,NA,0,5,2010,WD,Normal +1615,160,RM,21,1476,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,2Story,4,7,1970,1970,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,TA,TA,No,GLQ,176,Unf,0,370,546,GasA,Ex,Y,SBrkr,546,546,0,1092,0,0,1,1,3,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,200,26,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal +1616,160,RM,21,1900,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,2Story,4,4,1970,1970,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,546,546,GasA,Ex,Y,SBrkr,546,546,0,1092,0,0,1,1,3,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1617,160,RM,21,1890,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,2Story,4,6,1972,1972,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,TA,TA,No,Rec,294,Unf,0,252,546,GasA,TA,Y,SBrkr,546,546,0,1092,0,0,1,1,3,1,TA,5,Typ,0,NA,Attchd,1972,Unf,1,286,TA,TA,Y,0,0,64,0,0,0,NA,NA,NA,0,6,2010,WD,Normal +1618,20,RL,50,6953,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,7,1971,2004,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,469,Unf,0,395,864,GasA,Ex,Y,SBrkr,874,0,0,874,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1971,Unf,1,352,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2010,ConLD,Normal +1619,20,RL,76,12887,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,7,1984,1984,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,Gd,TA,Mn,Rec,207,GLQ,590,36,833,GasA,TA,Y,SBrkr,833,0,0,833,1,0,1,0,2,1,Gd,5,Typ,0,NA,Attchd,1984,Unf,2,495,TA,TA,Y,431,0,0,0,0,0,NA,MnPrv,NA,0,4,2010,WD,Normal +1620,90,RL,70,7700,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,Duplex,2Story,5,2,1985,1986,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Po,PConc,TA,TA,No,Unf,0,Unf,0,1216,1216,GasA,Gd,Y,SBrkr,1216,1216,0,2432,0,0,4,2,4,2,TA,10,Typ,0,NA,Attchd,1985,Unf,2,616,TA,Fa,Y,200,0,0,0,0,0,NA,NA,Shed,600,2,2010,WD,Normal +1621,60,RL,63,10475,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,2Story,5,5,1991,1991,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,No,Rec,458,Unf,0,166,624,GasA,Gd,Y,SBrkr,624,650,0,1274,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1993,Unf,2,576,TA,TA,Y,22,0,0,0,0,0,NA,GdWo,NA,0,3,2010,WD,Normal +1622,50,RL,68,10544,Pave,NA,IR1,Lvl,AllPub,Inside,Mod,Mitchel,Norm,Norm,1Fam,1.5Fin,5,5,1969,1969,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,Av,BLQ,476,Unf,0,388,864,GasA,TA,Y,SBrkr,864,615,0,1479,0,0,2,0,5,1,TA,8,Typ,0,NA,Attchd,1969,Fin,1,275,TA,TA,Y,287,0,280,0,0,0,NA,NA,NA,0,4,2010,WD,Normal +1623,20,RL,76,9892,Pave,NA,Reg,Lvl,AllPub,Inside,Mod,Mitchel,Norm,Norm,1Fam,1Story,8,5,1994,1995,Hip,CompShg,VinylSd,VinylSd,None,0,Gd,Gd,PConc,Gd,Gd,Gd,GLQ,1341,LwQ,284,54,1679,GasA,Ex,Y,SBrkr,1803,0,0,1803,1,1,2,1,3,1,Gd,6,Typ,2,TA,Attchd,1994,Unf,2,482,TA,TA,Y,129,64,222,0,0,0,NA,GdWo,NA,0,2,2010,WD,Normal +1624,60,RL,74,12961,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,2Story,6,5,1993,1994,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,Gd,PConc,Gd,TA,Mn,GLQ,944,Unf,0,208,1152,GasA,Ex,Y,SBrkr,1152,645,0,1797,1,0,2,1,3,1,Gd,7,Typ,1,Fa,Attchd,1993,Fin,2,616,TA,TA,Y,162,312,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal +1625,20,RL,74,13008,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1956,1956,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,Fa,Fa,No,Rec,564,Unf,0,318,882,GasA,TA,Y,SBrkr,882,0,0,882,0,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1956,Unf,1,502,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal +1626,20,RL,85,10200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1974,1974,Hip,CompShg,Plywood,Plywood,BrkFace,440,TA,TA,CBlock,TA,TA,No,LwQ,844,Unf,0,590,1434,GasA,TA,Y,SBrkr,1434,0,0,1434,1,0,2,0,4,1,TA,7,Typ,1,Gd,Attchd,1974,RFn,2,528,TA,TA,Y,80,21,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1627,60,RL,88,10179,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1997,1997,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,ALQ,847,Unf,0,98,945,GasA,Ex,Y,SBrkr,945,663,0,1608,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1997,Fin,2,470,TA,TA,Y,252,30,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1628,60,RL,NA,11792,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,8,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,188,Gd,TA,PConc,Gd,TA,Gd,GLQ,850,Unf,0,158,1008,GasA,Ex,Y,SBrkr,1008,1275,0,2283,0,0,2,1,4,1,Gd,9,Typ,1,Gd,BuiltIn,2003,Fin,3,632,TA,TA,Y,120,46,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1629,80,RL,60,8400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,7,5,1996,1997,Gable,CompShg,HdBoard,HdBoard,BrkFace,32,TA,TA,PConc,Gd,TA,No,GLQ,284,Unf,0,100,384,GasA,Gd,Y,SBrkr,958,670,0,1628,0,0,2,1,3,1,TA,7,Typ,1,TA,BuiltIn,1996,Fin,2,390,TA,TA,Y,48,72,0,0,0,0,NA,NA,Shed,490,6,2009,WD,Normal +1630,120,RL,28,7296,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,2004,2005,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Ex,TA,Av,GLQ,1965,Unf,0,243,2208,GasA,Ex,Y,SBrkr,2522,0,0,2522,1,0,2,0,1,1,Gd,8,Typ,1,Gd,Attchd,2004,Fin,2,564,TA,TA,Y,182,57,0,0,0,0,NA,NA,NA,0,11,2009,WD,Normal +1631,120,RL,61,7380,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,StoneBr,Norm,Norm,1Fam,1Story,8,5,1998,1998,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,PConc,Gd,TA,Av,GLQ,341,Unf,0,1077,1418,GasA,Ex,Y,SBrkr,1478,0,0,1478,1,0,2,0,2,1,TA,5,Typ,0,NA,Attchd,1998,Fin,2,495,TA,TA,Y,168,43,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1632,120,RL,57,8013,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,1995,1996,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,741,Unf,0,846,1587,GasA,Ex,Y,SBrkr,1734,0,0,1734,1,0,2,0,2,1,Gd,6,Typ,0,NA,Attchd,1995,RFn,2,528,TA,TA,Y,52,50,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal +1633,80,RL,57,8923,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,7,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,189,Unf,0,195,384,GasA,Gd,Y,SBrkr,751,631,0,1382,0,0,2,1,3,1,TA,7,Typ,1,TA,BuiltIn,1998,Fin,2,396,TA,TA,Y,256,0,0,0,0,0,NA,NA,NA,0,2,2009,WD,Normal +1634,60,RL,60,7500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1998,1999,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,476,Unf,0,476,952,GasA,Gd,Y,SBrkr,952,684,0,1636,1,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1998,Fin,2,440,TA,TA,Y,0,84,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal +1635,60,RL,NA,8803,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1994,1995,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,No,GLQ,600,Unf,0,107,707,GasA,Gd,Y,SBrkr,707,809,0,1516,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1994,Fin,2,409,TA,TA,Y,0,46,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1636,20,RL,58,7250,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,1Story,6,5,1993,1993,Gable,CompShg,HdBoard,HdBoard,BrkFace,45,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1181,1181,GasA,Ex,Y,SBrkr,1190,0,0,1190,0,0,2,0,3,1,Gd,6,Typ,1,TA,Attchd,1993,Unf,2,430,TA,TA,Y,0,21,0,0,0,0,NA,NA,NA,0,11,2009,WD,Normal +1637,60,RL,85,11900,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,5,6,1977,1977,Gable,CompShg,HdBoard,Wd Sdng,BrkFace,157,TA,TA,PConc,Gd,TA,No,ALQ,400,Unf,0,722,1122,GasA,Ex,Y,SBrkr,946,988,0,1934,1,0,2,1,3,1,TA,6,Typ,1,TA,Attchd,1977,Unf,2,567,TA,TA,P,0,176,0,0,200,0,NA,NA,NA,0,7,2009,WD,Normal +1638,60,RL,NA,13250,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,RRNn,Norm,1Fam,2Story,7,6,1978,1978,Gable,CompShg,HdBoard,HdBoard,BrkFace,256,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,832,832,GasA,TA,Y,SBrkr,1154,896,0,2050,0,0,2,1,4,1,Gd,8,Typ,1,TA,Attchd,1978,RFn,2,529,TA,TA,Y,192,192,0,0,0,0,NA,NA,NA,0,5,2009,WD,Abnorml +1639,20,RL,80,10928,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,6,1978,1986,Gable,CompShg,VinylSd,VinylSd,BrkFace,101,TA,TA,PConc,TA,TA,No,LwQ,363,Unf,0,1064,1427,GasA,TA,Y,SBrkr,1671,0,0,1671,0,0,2,0,3,1,TA,7,Typ,1,TA,Attchd,1978,RFn,2,484,TA,TA,Y,252,55,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1640,60,RL,NA,12388,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,7,7,1980,1991,Gable,CompShg,Plywood,Plywood,BrkFace,229,TA,TA,CBlock,Gd,TA,No,ALQ,602,Unf,0,441,1043,GasA,TA,Y,SBrkr,1539,1134,0,2673,0,0,2,1,4,1,Gd,9,Typ,1,TA,BuiltIn,1980,RFn,2,441,TA,TA,Y,178,84,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1641,20,RL,80,11088,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,5,1978,1998,Gable,CompShg,HdBoard,HdBoard,BrkFace,144,TA,TA,PConc,TA,TA,No,ALQ,832,Unf,0,308,1140,GasA,Gd,Y,SBrkr,1707,0,0,1707,0,0,2,0,3,1,TA,7,Typ,1,TA,Attchd,1978,Fin,2,479,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1642,60,FV,70,7000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2003,2003,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Gd,TA,Mn,GLQ,622,Unf,0,304,926,GasA,Ex,Y,SBrkr,1016,868,0,1884,1,0,2,1,3,1,Ex,7,Typ,1,Ex,Attchd,2003,RFn,2,581,TA,TA,Y,0,35,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1643,60,FV,NA,7500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,RRNn,Norm,1Fam,2Story,8,5,2000,2001,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1058,1058,GasA,Ex,Y,SBrkr,1058,816,0,1874,0,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,2000,Fin,2,588,TA,TA,Y,0,134,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal +1644,60,FV,NA,8470,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,225,ALQ,276,471,972,GasA,Ex,Y,SBrkr,972,839,0,1811,0,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2002,RFn,2,565,TA,TA,Y,225,48,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal +1645,20,RL,NA,9373,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NWAmes,PosN,Norm,1Fam,1Story,5,7,1975,1975,Gable,CompShg,HdBoard,HdBoard,BrkFace,161,TA,TA,CBlock,Gd,TA,Av,ALQ,1333,LwQ,168,120,1621,GasA,TA,Y,SBrkr,1621,0,0,1621,1,0,2,0,3,1,TA,7,Typ,2,Fa,Attchd,1975,RFn,2,478,TA,TA,Y,0,0,0,0,490,0,NA,NA,NA,0,6,2009,WD,Normal +1646,20,RL,78,10140,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,6,1974,1974,Hip,CompShg,Plywood,Plywood,BrkFace,196,TA,TA,CBlock,TA,TA,No,ALQ,888,Unf,0,228,1116,GasA,Ex,Y,SBrkr,1116,0,0,1116,1,0,2,0,3,1,TA,6,Typ,1,TA,Attchd,1974,RFn,2,528,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,4,2009,WD,Normal +1647,20,RL,85,11050,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NWAmes,Norm,Norm,1Fam,1Story,7,5,1975,1975,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,636,Unf,0,540,1176,GasA,Fa,Y,SBrkr,1193,0,0,1193,0,0,2,0,3,1,TA,5,Typ,1,TA,Attchd,1975,Unf,2,506,TA,TA,Y,40,0,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1648,20,RL,NA,7830,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1970,1970,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1180,1180,GasA,TA,Y,SBrkr,1180,0,0,1180,0,0,1,1,2,1,TA,6,Typ,0,NA,Attchd,1970,RFn,2,477,TA,TA,Y,0,45,0,0,0,0,NA,NA,NA,0,3,2009,COD,Normal +1649,20,RL,NA,8510,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1971,1971,Gable,CompShg,Plywood,Plywood,BrkFace,178,TA,TA,CBlock,Gd,TA,No,ALQ,500,Unf,0,543,1043,GasA,Ex,Y,SBrkr,1050,0,0,1050,1,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1971,Unf,1,336,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1650,20,RL,60,7038,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,6,1970,1970,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,726,Unf,0,138,864,GasA,TA,Y,SBrkr,864,0,0,864,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,2001,Unf,2,576,TA,TA,Y,210,0,0,0,0,0,NA,GdPrv,NA,0,9,2009,WD,Abnorml +1651,20,RL,60,9000,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,7,1971,2006,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,240,Unf,0,624,864,GasA,Gd,Y,SBrkr,864,0,0,864,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1986,Unf,2,576,TA,TA,Y,200,0,0,0,0,0,NA,GdWo,NA,0,7,2009,WD,Normal +1652,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,5,1973,1973,Gable,CompShg,HdBoard,HdBoard,BrkFace,504,TA,TA,CBlock,TA,TA,No,BLQ,254,Unf,0,229,483,GasA,TA,Y,SBrkr,483,504,0,987,1,0,1,1,2,1,TA,5,Typ,0,NA,Detchd,1973,Unf,1,264,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1653,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,6,1972,1972,Gable,CompShg,HdBoard,HdBoard,BrkFace,425,TA,TA,CBlock,TA,TA,No,Rec,110,LwQ,294,79,483,GasA,TA,Y,SBrkr,483,504,0,987,1,0,1,1,2,1,TA,5,Typ,0,NA,Detchd,1972,Unf,1,288,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1654,160,RL,24,2308,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NPkVill,Norm,Norm,TwnhsE,2Story,6,5,1976,1976,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,306,Unf,0,498,804,GasA,TA,Y,SBrkr,804,744,0,1548,0,0,2,1,3,1,TA,7,Typ,1,TA,Detchd,1976,RFn,2,440,TA,TA,Y,108,0,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal +1655,120,RL,24,2280,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NPkVill,Norm,Norm,Twnhs,1Story,7,5,1975,1975,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,435,LwQ,622,0,1057,GasA,TA,Y,SBrkr,1055,0,0,1055,0,1,2,0,2,1,TA,4,Typ,1,Fa,Attchd,1975,RFn,2,440,TA,TA,Y,0,27,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1656,160,RL,24,2349,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NPkVill,Norm,Norm,Twnhs,2Story,6,5,1977,1977,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,389,Unf,0,466,855,GasA,TA,Y,SBrkr,855,601,0,1456,0,0,2,1,3,1,TA,6,Typ,1,TA,Attchd,1977,Unf,2,440,TA,TA,Y,0,28,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1657,160,RL,24,2364,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NPkVill,Norm,Norm,TwnhsE,2Story,6,5,1978,1978,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,320,Unf,0,484,804,GasA,TA,Y,SBrkr,804,744,0,1548,0,1,2,1,3,1,TA,7,Typ,1,TA,Detchd,1978,Unf,2,440,TA,TA,Y,108,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1658,160,RL,24,2364,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NPkVill,Norm,Norm,TwnhsE,2Story,6,5,1978,1978,Gable,CompShg,Plywood,Brk Cmn,None,0,Gd,TA,CBlock,Gd,TA,No,ALQ,279,Unf,0,576,855,GasA,TA,Y,SBrkr,855,601,0,1456,0,0,2,1,3,1,TA,6,Typ,1,TA,Attchd,1978,Fin,2,440,TA,TA,Y,147,0,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal +1659,120,RL,24,2104,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NPkVill,Norm,Norm,TwnhsE,1Story,7,6,1976,1976,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,TA,TA,No,ALQ,536,Unf,0,300,836,GasA,TA,Y,SBrkr,836,0,0,836,0,1,1,0,2,1,TA,5,Typ,0,NA,Attchd,1976,Unf,1,345,TA,TA,Y,150,20,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal +1660,20,RL,NA,10710,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1966,2004,Hip,CompShg,HdBoard,HdBoard,BrkFace,165,Gd,TA,PConc,TA,TA,No,BLQ,644,Unf,0,220,864,GasA,Ex,Y,SBrkr,1120,0,0,1120,0,1,1,0,3,1,TA,5,Typ,1,TA,Attchd,1966,RFn,2,656,TA,TA,Y,0,162,0,0,0,0,NA,NA,Shed,1200,7,2009,WD,Normal +1661,60,RL,110,14257,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,PosN,Norm,1Fam,2Story,9,5,2007,2007,Hip,CompShg,VinylSd,VinylSd,Stone,726,Ex,TA,PConc,Ex,TA,No,GLQ,1360,Unf,0,416,1776,GasA,Ex,Y,SBrkr,1794,978,0,2772,1,0,3,1,4,1,Ex,10,Typ,3,Gd,BuiltIn,2007,Fin,3,754,TA,TA,Y,135,64,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1662,60,RL,95,12350,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2009,2009,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,No,GLQ,986,Unf,0,379,1365,GasA,Ex,Y,SBrkr,1365,1325,0,2690,1,0,2,1,3,1,Ex,8,Typ,1,Gd,Attchd,2009,RFn,3,864,TA,TA,Y,0,197,0,0,0,0,NA,NA,NA,0,7,2009,New,Partial +1663,20,RL,95,12350,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2008,2008,Hip,CompShg,VinylSd,VinylSd,Stone,450,Ex,TA,PConc,Ex,TA,Av,GLQ,1232,Unf,0,788,2020,GasA,Ex,Y,SBrkr,2020,0,0,2020,1,0,2,0,3,1,Ex,7,Typ,1,Gd,Attchd,2008,RFn,3,896,TA,TA,Y,192,98,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1664,20,RL,105,13693,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,PosA,PosA,1Fam,1Story,10,5,2007,2007,Hip,CompShg,VinylSd,VinylSd,Stone,472,Ex,TA,PConc,Ex,TA,Gd,GLQ,2288,Unf,0,342,2630,GasA,Ex,Y,SBrkr,2674,0,0,2674,2,0,2,1,2,1,Ex,8,Typ,2,Gd,Attchd,2007,Fin,3,762,TA,TA,Y,360,50,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal +1665,20,RL,95,11578,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,Stone,302,Ex,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1736,1736,GasA,Ex,Y,SBrkr,1736,0,0,1736,0,0,2,0,3,1,Ex,7,Typ,1,Gd,Attchd,2008,RFn,3,834,TA,TA,Y,319,90,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1666,20,RL,129,16870,Pave,NA,IR1,Lvl,AllPub,FR3,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2004,2005,Hip,CompShg,VinylSd,VinylSd,BrkFace,238,Gd,TA,PConc,Ex,TA,Gd,GLQ,1531,Unf,0,251,1782,GasA,Ex,Y,SBrkr,1782,0,0,1782,1,0,2,0,3,1,Gd,7,Typ,2,Gd,Attchd,2004,Fin,3,932,TA,TA,Y,99,82,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal +1667,60,RL,59,23303,Pave,NA,IR3,Lvl,AllPub,CulDSac,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,20,Gd,TA,PConc,Ex,TA,Av,GLQ,1230,Unf,0,278,1508,GasA,Ex,Y,SBrkr,1508,1012,0,2520,1,0,2,1,5,1,Ex,10,Typ,1,Gd,BuiltIn,2007,Fin,3,640,TA,TA,Y,192,273,0,0,0,0,NA,NA,NA,0,6,2009,WD,Family +1668,20,RL,87,10367,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2008,2008,Hip,CompShg,VinylSd,VinylSd,Stone,284,Ex,TA,PConc,Ex,TA,Mn,GLQ,1015,Unf,0,724,1739,GasA,Ex,Y,SBrkr,1743,0,0,1743,1,0,2,0,3,1,Ex,8,Typ,1,Gd,Attchd,2008,RFn,3,927,TA,TA,Y,168,45,0,0,0,0,NA,NA,NA,0,6,2009,ConLI,Normal +1669,20,RL,77,10872,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,Stone,122,Gd,TA,PConc,Ex,Gd,Av,GLQ,1037,Unf,0,467,1504,GasA,Ex,Y,SBrkr,1531,0,0,1531,1,0,2,0,2,1,Ex,6,Typ,1,Gd,Attchd,2006,Fin,3,700,TA,TA,Y,184,52,0,0,0,0,NA,NA,NA,0,2,2009,WD,Normal +1670,20,RL,102,13514,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2008,2008,Hip,CompShg,VinylSd,VinylSd,None,285,Ex,TA,PConc,Ex,TA,No,GLQ,1142,Unf,0,632,1774,GasA,Ex,Y,SBrkr,1808,0,0,1808,1,0,2,0,3,1,Ex,7,Typ,1,Gd,Attchd,2008,Fin,3,850,TA,TA,Y,200,26,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal +1671,20,RL,90,12878,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,1Story,7,5,2003,2004,Hip,CompShg,VinylSd,VinylSd,BrkFace,418,Gd,TA,PConc,Gd,TA,No,ALQ,1262,Unf,0,498,1760,GasA,Ex,Y,SBrkr,1760,0,0,1760,1,0,2,0,3,1,Gd,8,Typ,1,Gd,Attchd,2003,Fin,2,583,TA,TA,Y,165,190,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1672,20,RL,110,15274,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2003,2003,Hip,CompShg,VinylSd,VinylSd,BrkFace,724,Gd,TA,PConc,Ex,TA,No,GLQ,1972,Unf,0,480,2452,GasA,Ex,Y,SBrkr,2452,0,0,2452,2,0,2,0,3,1,Ex,10,Typ,1,Gd,Attchd,2003,Fin,3,886,TA,TA,Y,0,116,0,0,0,0,NA,MnPrv,NA,0,7,2009,WD,Normal +1673,60,RL,96,13262,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,Stone,186,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1082,1082,GasA,Ex,Y,SBrkr,1105,1295,0,2400,0,0,3,1,4,1,Gd,10,Typ,1,Gd,BuiltIn,2003,Fin,3,730,TA,TA,Y,114,40,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1674,20,RL,70,9658,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,Stone,383,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1598,1598,GasA,Gd,Y,SBrkr,1606,0,0,1606,0,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2006,RFn,3,871,TA,TA,Y,230,60,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1675,120,RL,47,6904,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,6,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,Stone,240,Gd,TA,PConc,Gd,TA,Av,ALQ,836,Unf,0,522,1358,GasA,Ex,Y,SBrkr,1358,0,0,1358,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2005,RFn,2,484,TA,TA,Y,192,36,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1676,120,RL,34,5122,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,Twnhs,1Story,6,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,Stone,135,Gd,TA,PConc,Gd,TA,Av,GLQ,881,Unf,0,425,1306,GasA,Ex,Y,SBrkr,1306,0,0,1306,1,0,2,0,1,1,Gd,5,Typ,1,Gd,Attchd,2005,RFn,2,624,TA,TA,Y,170,63,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal +1677,120,RL,80,10307,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,7,5,2007,2008,Gable,CompShg,VinylSd,VinylSd,Stone,176,Gd,TA,PConc,Gd,TA,No,GLQ,876,Unf,0,474,1350,GasA,Ex,Y,SBrkr,1358,0,0,1358,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2008,RFn,2,484,TA,TA,Y,192,26,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1678,20,RL,100,14836,Pave,NA,IR1,HLS,AllPub,Inside,Mod,NridgHt,Norm,Norm,1Fam,1Story,10,5,2004,2005,Hip,CompShg,CemntBd,CmentBd,Stone,730,Ex,TA,PConc,Ex,TA,Gd,GLQ,2146,Unf,0,346,2492,GasA,Ex,Y,SBrkr,2492,0,0,2492,1,0,2,1,2,1,Ex,8,Typ,1,Ex,Attchd,2004,Fin,3,949,TA,TA,Y,226,235,0,0,0,0,NA,NA,NA,0,2,2009,WD,Abnorml +1679,20,RL,117,15262,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2003,2004,Hip,CompShg,VinylSd,VinylSd,BrkFace,470,Gd,TA,PConc,Ex,TA,Gd,GLQ,1557,Unf,0,643,2200,GasA,Ex,Y,SBrkr,2200,0,0,2200,1,0,2,1,3,1,Ex,8,Typ,1,Gd,Attchd,2003,Fin,3,685,TA,TA,Y,208,55,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1680,120,RL,44,7390,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,9,5,2008,2009,Hip,CompShg,MetalSd,MetalSd,BrkFace,308,Ex,TA,PConc,Ex,TA,No,GLQ,800,Unf,0,1084,1884,GasA,Ex,Y,SBrkr,1884,0,0,1884,1,0,2,0,2,1,Ex,6,Typ,1,Gd,Attchd,2008,Fin,2,649,TA,TA,Y,231,90,0,0,0,0,NA,NA,NA,0,5,2009,New,Partial +1681,120,RL,48,6472,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,9,5,2008,2008,Hip,CompShg,VinylSd,VinylSd,BrkFace,500,Ex,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1451,1451,GasA,Ex,Y,SBrkr,1456,0,0,1456,0,0,2,0,2,1,Ex,6,Typ,1,Gd,Attchd,2008,RFn,2,539,TA,TA,Y,192,42,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal +1682,20,RL,129,16770,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2002,2003,Hip,CompShg,VinylSd,VinylSd,BrkFace,270,Gd,TA,PConc,Ex,TA,Gd,GLQ,1196,Unf,0,516,1712,GasA,Ex,Y,SBrkr,1712,0,0,1712,1,0,2,0,3,1,Gd,8,Typ,1,Gd,Attchd,2002,RFn,3,701,TA,TA,Y,218,183,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal +1683,120,RL,48,3480,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,Stone,163,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1405,1405,GasA,Ex,Y,SBrkr,1405,0,0,1405,0,0,2,0,2,1,Gd,6,Typ,1,TA,Attchd,2003,RFn,2,478,TA,TA,Y,148,36,0,0,0,0,NA,NA,NA,0,11,2009,WD,Normal +1684,60,RL,63,10928,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,RRAn,Norm,1Fam,2Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,Gd,No,Unf,0,Unf,0,728,728,GasA,Ex,Y,SBrkr,728,728,0,1456,0,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2005,Fin,2,390,TA,TA,Y,100,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1685,60,RL,57,8918,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,745,745,GasA,Ex,Y,SBrkr,745,745,0,1490,0,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2005,Fin,2,392,TA,TA,Y,36,20,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1686,120,RL,43,3182,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,16,Gd,TA,PConc,Gd,TA,Av,GLQ,16,Unf,0,1204,1220,GasA,Ex,Y,SBrkr,1220,0,0,1220,0,0,2,0,2,1,Gd,5,Typ,1,Gd,Attchd,2005,Fin,2,397,TA,TA,Y,100,16,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1687,80,RL,59,9434,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,7,5,2004,2005,Gable,CompShg,WdShing,Wd Shng,None,0,Gd,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,384,384,GasA,Ex,Y,SBrkr,744,630,0,1374,0,0,2,1,3,1,Gd,6,Typ,1,Gd,BuiltIn,2004,Fin,2,400,TA,TA,Y,100,0,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1688,60,RL,62,7984,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,200,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,868,868,GasA,Ex,Y,SBrkr,868,762,0,1630,0,0,2,1,3,1,Gd,7,Typ,1,Gd,BuiltIn,2004,Fin,2,436,TA,TA,Y,120,48,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal +1689,60,RL,61,10125,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,846,846,GasA,Ex,Y,SBrkr,846,748,0,1594,0,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2004,Fin,2,434,TA,TA,Y,300,48,0,0,0,0,NA,MnPrv,NA,0,7,2009,WD,Normal +1690,60,RL,NA,8965,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,652,Unf,0,130,782,GasA,Ex,Y,SBrkr,806,683,0,1489,1,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2003,Fin,2,400,TA,TA,Y,0,75,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1691,60,RL,NA,8174,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,494,Unf,0,204,698,GasA,Ex,Y,SBrkr,698,644,0,1342,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,2003,Fin,2,393,TA,TA,Y,100,56,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1692,60,RL,NA,12891,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,8,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,NA,NA,Gd,TA,PConc,Ex,TA,No,GLQ,651,Unf,0,219,870,GasA,Ex,Y,SBrkr,878,1126,0,2004,1,0,2,1,4,1,Gd,8,Typ,1,Gd,BuiltIn,2002,Fin,3,644,TA,TA,Y,0,48,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1693,80,RL,61,9734,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,RRAn,Norm,1Fam,SLvl,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Mn,GLQ,241,Rec,113,30,384,GasA,Ex,Y,SBrkr,744,630,0,1374,0,0,2,1,3,1,Gd,7,Typ,0,NA,BuiltIn,2004,Fin,2,400,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1694,60,RL,42,8433,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,GLQ,683,Unf,0,111,794,GasA,Ex,Y,SBrkr,819,695,0,1514,1,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,2000,Fin,2,394,TA,TA,Y,0,72,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1695,80,RL,62,7750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,7,5,1999,2000,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,384,384,GasA,Ex,Y,SBrkr,774,656,0,1430,0,0,2,1,3,1,TA,7,Typ,1,TA,BuiltIn,1999,RFn,2,400,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal +1696,60,RL,NA,15896,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,Gilbert,RRNn,Norm,1Fam,2Story,7,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,BrkFace,210,Gd,TA,PConc,Gd,TA,No,ALQ,913,Unf,0,264,1177,GasA,Ex,Y,SBrkr,1223,1089,0,2312,1,0,2,1,4,1,Gd,8,Typ,1,TA,BuiltIn,1999,Fin,3,658,TA,TA,Y,298,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1697,80,RL,64,7848,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,7,6,1999,1999,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,384,384,GasA,Ex,Y,SBrkr,774,656,0,1430,0,0,2,1,3,1,TA,7,Typ,1,TA,BuiltIn,1999,Fin,2,410,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1698,60,RL,106,12720,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,150,Gd,TA,PConc,Gd,TA,Mn,GLQ,1173,Unf,0,282,1455,GasA,Ex,Y,SBrkr,1466,1221,0,2687,1,0,2,1,4,1,Gd,10,Typ,2,TA,BuiltIn,2000,RFn,3,810,TA,TA,Y,252,30,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal +1699,20,RL,NA,10750,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NoRidge,Norm,Norm,1Fam,1Story,8,5,1994,1995,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,634,Gd,TA,PConc,Gd,TA,Av,BLQ,236,GLQ,1526,262,2024,GasA,Ex,Y,SBrkr,2063,0,0,2063,1,0,2,0,3,1,Gd,7,Typ,2,Gd,Attchd,1994,Fin,3,815,TA,TA,Y,182,56,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1700,60,RL,79,9085,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,7,5,1995,1996,Gable,CompShg,VinylSd,VinylSd,BrkFace,286,Gd,TA,PConc,Gd,TA,No,GLQ,816,Unf,0,254,1070,GasA,Ex,Y,SBrkr,1094,967,0,2061,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1995,Fin,2,647,TA,TA,Y,296,102,209,0,0,0,NA,NA,NA,0,11,2009,WD,Normal +1701,60,RL,NA,11692,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1993,1994,Gable,CompShg,HdBoard,HdBoard,BrkFace,372,Gd,TA,PConc,Gd,TA,No,GLQ,624,Unf,0,549,1173,GasA,Ex,Y,SBrkr,1215,1017,0,2232,1,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1993,RFn,2,623,TA,TA,Y,173,165,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal +1702,20,RL,86,11194,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,PosN,Norm,1Fam,1Story,8,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,Stone,240,Gd,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,1696,1696,GasA,Ex,Y,SBrkr,1696,0,0,1696,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2008,RFn,3,972,TA,TA,Y,120,56,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal +1703,20,RL,78,10206,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,PosN,Norm,1Fam,1Story,8,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,BrkFace,294,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1614,1614,GasA,Ex,Y,SBrkr,1658,0,0,1658,0,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2008,Fin,3,726,TA,TA,Y,144,44,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal +1704,20,RL,85,10130,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,260,Gd,TA,PConc,Gd,TA,Av,GLQ,1294,Unf,0,408,1702,GasA,Ex,Y,SBrkr,1702,0,0,1702,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2007,RFn,3,844,TA,TA,Y,0,69,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal +1705,20,RL,76,9139,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,Stone,206,Gd,TA,PConc,Ex,TA,Av,GLQ,379,Unf,0,1043,1422,GasA,Ex,Y,SBrkr,1432,0,0,1432,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2006,Fin,2,492,TA,TA,Y,297,50,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal +1706,20,RL,85,11128,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Somerst,PosN,PosN,1Fam,1Story,9,5,2005,2006,Hip,CompShg,VinylSd,VinylSd,Stone,198,Ex,TA,PConc,Ex,TA,Gd,GLQ,2158,Unf,0,300,2458,GasA,Ex,Y,SBrkr,2490,0,0,2490,1,0,2,0,2,1,Ex,9,Typ,2,Gd,Attchd,2005,Fin,3,795,TA,TA,Y,70,226,0,0,0,0,NA,GdPrv,NA,0,10,2009,WD,Normal +1707,20,FV,90,7993,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2008,2009,Gable,CompShg,VinylSd,VinylSd,NA,NA,Gd,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1436,1436,GasA,Ex,Y,SBrkr,1436,0,0,1436,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2008,Fin,2,529,TA,TA,Y,0,121,0,0,0,0,NA,NA,NA,0,10,2009,New,Partial +1708,20,FV,72,8640,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2008,2008,Hip,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1402,1402,GasA,Ex,Y,SBrkr,1402,0,0,1402,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2008,RFn,2,625,TA,TA,Y,205,126,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1709,20,FV,112,12606,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,9,5,2007,2008,Gable,CompShg,VinylSd,VinylSd,Stone,120,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1530,1530,GasA,Ex,Y,SBrkr,1530,0,0,1530,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2008,RFn,3,984,TA,TA,Y,212,136,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1710,20,FV,75,7500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,Stone,238,Gd,TA,PConc,Gd,TA,No,GLQ,24,Unf,0,1348,1372,GasA,Ex,Y,SBrkr,1448,0,0,1448,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2006,RFn,2,692,TA,TA,Y,0,140,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1711,60,FV,84,10603,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,Stone,121,Gd,TA,PConc,Ex,Gd,No,GLQ,682,Unf,0,218,900,GasA,Ex,Y,SBrkr,909,886,0,1795,1,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2006,Fin,3,782,TA,TA,Y,168,45,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1712,20,FV,65,8125,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2008,2009,Hip,CompShg,VinylSd,VinylSd,BrkFace,288,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1836,1836,GasA,Ex,Y,SBrkr,1836,0,0,1836,0,0,2,0,3,1,Gd,8,Typ,1,Gd,Attchd,2009,Fin,2,517,TA,TA,Y,0,175,0,0,0,0,NA,NA,NA,0,10,2009,New,Partial +1713,20,FV,85,10625,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,1430,Unf,0,222,1652,GasA,Ex,Y,SBrkr,1662,0,0,1662,1,0,2,0,3,1,Ex,8,Typ,1,Gd,Attchd,2006,RFn,3,711,TA,TA,Y,168,120,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal +1714,20,FV,68,8736,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2003,2004,Gable,CompShg,VinylSd,Wd Shng,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,771,ALQ,360,422,1553,GasA,Ex,Y,SBrkr,1553,0,0,1553,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2003,RFn,2,588,TA,TA,Y,192,88,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1715,60,FV,65,8127,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,410,Unf,0,402,812,GasA,Ex,Y,SBrkr,812,841,0,1653,1,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2003,RFn,2,628,TA,TA,Y,0,45,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal +1716,20,RL,80,9605,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,1Fam,1Story,7,6,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1218,1218,GasA,Ex,Y,SBrkr,1218,0,0,1218,0,0,1,1,3,1,Gd,6,Typ,0,NA,Detchd,2007,RFn,2,576,TA,TA,Y,0,178,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal +1717,20,RL,63,7500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,Gd,No,GLQ,54,Unf,0,1087,1141,GasA,Ex,Y,SBrkr,1141,0,0,1141,1,0,1,1,3,1,Gd,6,Typ,0,NA,Detchd,2006,RFn,2,484,TA,TA,Y,182,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1718,20,RL,63,7500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,6,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1158,1158,GasA,Ex,Y,SBrkr,1158,0,0,1158,0,0,1,1,3,1,Gd,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,50,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1719,60,RL,96,10628,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Gd,Unf,0,Unf,0,835,835,GasA,Ex,Y,SBrkr,871,941,0,1812,0,0,2,1,3,1,Gd,8,Typ,0,NA,BuiltIn,2004,RFn,2,478,TA,TA,Y,146,91,0,0,0,0,NA,NA,NA,0,1,2009,WD,Normal +1720,20,RL,76,10141,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,8,5,2004,2004,Gable,Tar&Grv,VinylSd,VinylSd,BrkFace,264,Gd,TA,PConc,Gd,TA,Gd,BLQ,516,Rec,774,222,1512,GasA,Ex,Y,SBrkr,1512,0,0,1512,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2004,RFn,3,845,TA,TA,Y,210,36,0,0,0,0,NA,NA,NA,0,1,2009,WD,Normal +1721,20,RL,63,13072,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,RRAe,Norm,1Fam,1Story,7,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1114,1114,GasA,Ex,Y,SBrkr,1114,0,0,1114,0,0,1,1,3,1,Gd,6,Typ,0,NA,Detchd,2005,Unf,2,576,TA,TA,Y,248,102,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1722,20,RL,63,13072,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,RRAe,Norm,1Fam,1Story,5,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1114,1114,GasA,Ex,Y,SBrkr,1114,0,0,1114,0,0,1,1,3,1,Gd,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,39,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1723,20,RL,60,12450,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,RRAe,Norm,1Fam,1Story,5,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,GLQ,836,Unf,0,278,1114,GasA,Ex,Y,SBrkr,1114,0,0,1114,1,0,2,0,3,1,Gd,6,Typ,0,NA,Detchd,2004,Unf,2,576,TA,TA,Y,0,42,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1724,20,RL,61,7328,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,7,5,2008,2009,Gable,CompShg,VinylSd,VinylSd,BrkFace,140,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1450,1450,GasA,Ex,Y,SBrkr,1450,0,0,1450,0,0,2,0,2,1,Gd,6,Typ,0,NA,Attchd,2008,RFn,3,788,TA,TA,Y,0,93,0,0,0,0,NA,NA,NA,0,2,2009,New,Partial +1725,60,RL,43,11492,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,1996,1997,Gable,CompShg,VinylSd,VinylSd,BrkFace,132,Gd,TA,PConc,Gd,TA,No,GLQ,637,Unf,0,276,913,GasA,Ex,Y,SBrkr,913,1209,0,2122,1,0,2,1,4,1,Gd,8,Typ,1,TA,Attchd,1997,RFn,2,559,TA,TA,Y,0,74,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal +1726,60,RL,70,7703,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,6,1992,1992,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,Gd,PConc,Gd,Gd,No,GLQ,52,Rec,364,400,816,GasA,Ex,Y,SBrkr,833,897,0,1730,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,1992,RFn,2,528,TA,TA,Y,0,91,0,0,168,0,NA,NA,NA,0,11,2009,WD,Normal +1727,120,RL,50,7175,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,TwnhsE,1Story,6,5,1990,1991,Gable,CompShg,Plywood,ImStucc,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1332,1332,GasA,Gd,Y,SBrkr,1332,0,0,1332,0,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,1990,RFn,2,542,TA,TA,Y,0,60,0,0,0,0,NA,NA,NA,0,2,2009,WD,Normal +1728,60,RL,70,9109,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,RRAe,Norm,1Fam,2Story,7,5,1994,1994,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,LwQ,36,GLQ,596,122,754,GasA,Ex,Y,SBrkr,754,786,0,1540,1,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,1994,RFn,2,495,TA,TA,Y,140,32,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal +1729,60,RL,NA,10274,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,7,1986,1986,Gable,CompShg,VinylSd,VinylSd,BrkFace,141,TA,Gd,CBlock,Gd,TA,No,Rec,331,Unf,0,345,676,GasA,TA,Y,SBrkr,698,702,0,1400,0,0,2,1,3,1,TA,6,Typ,0,NA,Attchd,1986,RFn,2,465,TA,TA,Y,0,48,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1730,90,RL,75,8250,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,Duplex,2Story,6,7,1981,1981,Gable,CompShg,Wd Sdng,Wd Shng,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,964,918,0,1882,0,0,2,0,4,2,TA,8,Typ,2,TA,Attchd,1981,Unf,2,612,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1731,20,RL,63,9750,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1962,1962,Hip,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,TA,TA,No,LwQ,68,BLQ,884,28,980,GasA,Gd,Y,SBrkr,980,0,0,980,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1969,Unf,2,400,TA,TA,Y,0,28,0,0,0,0,NA,MnPrv,NA,0,11,2009,WD,Normal +1732,20,RL,NA,8499,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,5,6,1961,1961,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,GLQ,660,Unf,0,204,864,GasA,Ex,Y,SBrkr,864,0,0,864,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1982,Unf,2,732,TA,TA,Y,0,312,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1733,20,RL,NA,9079,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1961,1961,Gable,CompShg,Wd Sdng,Plywood,None,0,TA,TA,CBlock,TA,TA,No,BLQ,864,Unf,0,0,864,GasA,TA,Y,SBrkr,864,0,0,864,0,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1961,Unf,1,440,TA,TA,Y,158,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1734,20,RL,NA,9316,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1965,1965,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,TA,TA,No,Rec,544,Unf,0,480,1024,GasA,Gd,Y,SBrkr,1020,0,0,1020,0,0,2,0,3,1,TA,5,Typ,0,NA,Attchd,1965,Unf,1,288,TA,TA,Y,171,0,0,0,0,0,NA,MnPrv,NA,0,5,2009,Oth,Family +1735,20,RL,NA,7791,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,RRAe,Norm,1Fam,1Story,5,8,1963,1995,Gable,CompShg,Plywood,Plywood,None,0,Gd,Gd,CBlock,TA,TA,No,ALQ,624,Unf,0,288,912,GasA,Ex,Y,SBrkr,912,0,0,912,1,0,1,0,3,1,Gd,6,Typ,0,NA,Attchd,1963,RFn,1,300,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,10,2009,WD,Normal +1736,20,RL,65,7150,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,5,6,1962,1962,Gable,CompShg,VinylSd,VinylSd,BrkFace,60,TA,TA,CBlock,TA,TA,No,LwQ,140,BLQ,590,182,912,GasA,Gd,Y,SBrkr,912,0,0,912,0,1,1,0,3,1,TA,6,Typ,0,NA,Attchd,1962,Unf,1,252,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal +1737,20,RL,NA,15676,Pave,NA,IR1,Low,AllPub,Inside,Gtl,Veenker,Norm,Norm,1Fam,1Story,8,8,1980,1980,Gable,CompShg,VinylSd,VinylSd,BrkFace,115,Gd,Gd,CBlock,Gd,Gd,Gd,ALQ,1733,Rec,92,189,2014,GasA,Gd,Y,SBrkr,2014,0,0,2014,1,0,2,0,2,1,Gd,6,Maj1,2,Gd,Attchd,1980,RFn,3,864,TA,TA,Y,462,0,0,255,0,0,NA,MnPrv,NA,0,4,2009,WD,Normal +1738,60,RL,NA,11949,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,7,8,1991,2008,Gable,CompShg,VinylSd,VinylSd,BrkFace,196,Gd,Gd,PConc,Gd,TA,No,GLQ,601,ALQ,216,158,975,GasA,Ex,Y,SBrkr,975,780,0,1755,0,1,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1991,Unf,2,524,TA,TA,Y,502,60,0,0,0,0,NA,GdPrv,NA,0,7,2009,WD,Normal +1739,160,FV,32,2880,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,2Story,7,5,2004,2005,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1376,1376,GasA,Ex,Y,SBrkr,1376,1629,0,3005,0,0,2,1,3,1,Gd,9,Mod,1,TA,BuiltIn,2004,Fin,3,704,TA,TA,Y,0,177,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1740,120,FV,NA,3830,Pave,Pave,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,6,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,Stone,280,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1726,1726,GasA,Ex,Y,SBrkr,1726,0,0,1726,0,0,2,1,2,1,Gd,6,Typ,1,Gd,Attchd,2008,Fin,2,561,TA,TA,Y,0,254,0,0,0,0,NA,NA,NA,0,1,2009,New,Partial +1741,120,FV,NA,4217,Pave,Pave,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,6,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,Stone,252,Gd,TA,PConc,Gd,TA,No,GLQ,962,Unf,0,183,1145,GasA,Ex,Y,SBrkr,1256,0,0,1256,1,0,1,1,1,1,Gd,5,Typ,1,Gd,Attchd,2008,Fin,2,641,TA,TA,Y,0,169,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal +1742,160,FV,34,2998,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,6,5,2000,2000,Gable,CompShg,MetalSd,MetalSd,BrkFace,513,Gd,TA,PConc,Gd,TA,No,GLQ,507,Unf,0,249,756,GasA,Ex,Y,SBrkr,756,756,0,1512,1,0,2,1,2,1,Gd,4,Typ,0,NA,Detchd,2000,Unf,2,440,TA,TA,Y,0,32,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1743,160,FV,35,3768,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,7,5,1999,1999,Hip,CompShg,MetalSd,MetalSd,BrkFace,218,Gd,TA,PConc,Gd,TA,No,GLQ,549,Unf,0,142,691,GasA,Ex,Y,SBrkr,713,739,0,1452,1,0,2,1,3,1,Gd,6,Typ,0,NA,Detchd,1999,Unf,2,506,TA,TA,Y,0,34,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal +1744,20,RL,NA,14694,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Veenker,Norm,Norm,1Fam,1Story,8,9,1977,2008,Gable,CompShg,MetalSd,MetalSd,BrkFace,450,Ex,Ex,CBlock,Gd,Gd,Gd,GLQ,1252,ALQ,136,306,1694,GasA,Ex,Y,SBrkr,1694,0,0,1694,1,0,2,0,2,1,Ex,5,Typ,1,Gd,Attchd,1977,Fin,2,642,TA,TA,Y,501,120,0,225,0,0,NA,NA,NA,0,6,2009,WD,Normal +1745,20,RL,110,15417,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Veenker,Norm,Norm,1Fam,1Story,7,5,1981,1981,Gable,CompShg,BrkFace,BrkFace,None,0,Gd,TA,CBlock,Gd,TA,Mn,LwQ,121,Unf,0,1619,1740,GasA,TA,Y,SBrkr,1740,0,0,1740,0,0,1,1,2,1,Gd,7,Typ,0,NA,Attchd,1981,RFn,2,540,TA,TA,Y,228,20,218,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1746,80,RL,80,9600,Pave,NA,Reg,Low,AllPub,FR2,Mod,Veenker,Feedr,Norm,1Fam,SLvl,8,5,1976,1976,Gable,CompShg,Plywood,Plywood,BrkFace,200,Gd,Gd,CBlock,TA,TA,No,Unf,0,Unf,0,392,392,GasA,Ex,Y,SBrkr,1487,1012,0,2499,0,0,2,1,4,1,TA,5,Typ,1,Gd,Attchd,1976,Unf,2,527,TA,TA,Y,0,64,0,0,0,0,NA,NA,NA,0,1,2009,WD,Abnorml +1747,60,RL,NA,12732,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NWAmes,PosN,Norm,1Fam,2Story,7,6,1974,1974,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,Mn,GLQ,560,LwQ,42,150,752,GasA,TA,Y,SBrkr,1285,782,0,2067,0,0,2,1,3,1,Gd,7,Typ,2,TA,Attchd,1974,RFn,2,784,TA,TA,Y,297,40,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1748,60,RL,80,10400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,PosA,Norm,1Fam,2Story,6,7,1967,1997,Gable,CompShg,MetalSd,MetalSd,BrkFace,256,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,932,932,GasA,Gd,Y,SBrkr,1271,1369,0,2640,0,0,2,1,5,1,Gd,8,Typ,1,TA,Attchd,1967,RFn,2,515,TA,TA,Y,0,120,0,0,168,0,NA,NA,NA,0,5,2009,WD,Normal +1749,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Feedr,Norm,1Fam,1Story,5,5,1969,1969,Gable,CompShg,HdBoard,HdBoard,BrkFace,128,TA,TA,CBlock,Gd,TA,Mn,ALQ,553,Rec,147,588,1288,GasA,TA,Y,SBrkr,1336,0,0,1336,0,1,2,0,3,1,TA,6,Typ,1,Fa,Attchd,1969,RFn,2,502,TA,TA,Y,312,11,0,0,0,0,NA,NA,Shed,650,8,2009,WD,Normal +1750,20,RL,75,9000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Feedr,Norm,1Fam,1Story,6,5,1969,1969,Gable,CompShg,HdBoard,HdBoard,BrkFace,200,TA,TA,CBlock,TA,TA,Av,BLQ,955,Unf,0,261,1216,GasA,TA,Y,SBrkr,1216,0,0,1216,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1969,Unf,1,336,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,8,2009,WD,Abnorml +1751,60,RL,NA,13774,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,7,7,1977,1992,Hip,CompShg,HdBoard,HdBoard,BrkFace,283,TA,Gd,PConc,Gd,TA,No,GLQ,432,Unf,0,476,908,GasA,Ex,Y,SBrkr,1316,972,0,2288,0,0,1,2,4,1,Gd,8,Typ,2,TA,Attchd,1977,RFn,2,520,TA,TA,Y,321,72,0,0,156,0,NA,NA,NA,0,11,2009,WD,Normal +1752,20,RL,62,7130,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1967,1967,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,TA,TA,No,BLQ,648,Unf,0,216,864,GasA,TA,Y,SBrkr,864,0,0,864,0,1,1,0,2,1,TA,5,Typ,0,NA,Attchd,1967,Fin,1,312,TA,TA,Y,0,0,0,0,0,0,NA,GdPrv,NA,0,6,2009,WD,Normal +1753,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1967,1967,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1568,1568,GasA,TA,Y,SBrkr,1568,0,0,1568,0,0,1,1,3,1,TA,7,Typ,0,NA,Attchd,1967,Unf,2,440,TA,TA,Y,160,40,0,0,0,0,NA,NA,NA,0,3,2009,COD,Normal +1754,60,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,7,5,1974,1974,Gable,CompShg,Plywood,Plywood,BrkFace,252,TA,TA,CBlock,TA,TA,No,ALQ,698,Unf,0,467,1165,GasA,Gd,Y,SBrkr,1165,896,0,2061,0,1,2,1,4,1,TA,8,Typ,1,TA,Attchd,1974,RFn,2,498,TA,TA,Y,0,77,0,0,196,0,NA,NA,NA,0,5,2009,COD,Abnorml +1755,85,RL,NA,16500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,SFoyer,6,5,1971,1971,Hip,CompShg,HdBoard,HdBoard,BrkFace,509,TA,TA,CBlock,Gd,TA,Av,GLQ,962,Unf,0,270,1232,GasA,Fa,Y,SBrkr,1320,0,0,1320,0,1,2,0,3,1,TA,5,Typ,1,Gd,Attchd,1971,RFn,2,495,TA,TA,Y,0,20,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1756,20,RL,60,7436,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,7,1960,1960,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,734,Unf,0,160,894,GasA,Gd,Y,SBrkr,894,0,0,894,1,0,1,0,2,1,TA,5,Typ,1,Po,Detchd,1988,Unf,2,396,TA,TA,Y,0,0,0,360,0,0,NA,GdWo,NA,0,8,2009,WD,Normal +1757,20,RL,65,8125,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1959,1959,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,403,Unf,0,461,864,GasA,Ex,Y,SBrkr,864,0,0,864,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1960,Unf,1,308,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal +1758,20,RL,NA,9450,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,5,1957,1957,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,160,TA,TA,CBlock,TA,TA,No,BLQ,775,Unf,0,265,1040,GasA,TA,Y,SBrkr,1362,0,0,1362,1,0,1,0,3,1,TA,6,Typ,1,Gd,Attchd,1982,RFn,3,768,TA,TA,Y,0,0,84,0,0,0,NA,MnPrv,NA,0,5,2009,WD,Normal +1759,20,RL,NA,13495,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1956,1956,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,70,TA,Gd,CBlock,TA,TA,No,BLQ,625,LwQ,201,222,1048,GasA,Fa,Y,SBrkr,1728,0,0,1728,1,0,2,0,3,1,TA,7,Min1,1,Gd,Detchd,1956,Unf,2,576,TA,TA,Y,0,99,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1760,20,RL,85,9350,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1961,1995,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,217,TA,TA,CBlock,TA,TA,No,ALQ,310,BLQ,512,491,1313,GasA,TA,Y,SBrkr,1313,0,0,1313,1,0,1,1,3,1,Gd,6,Typ,1,TA,Attchd,1961,RFn,2,610,TA,TA,Y,172,28,0,0,121,0,NA,MnPrv,NA,0,2,2009,WD,Normal +1761,20,RL,115,10500,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1964,1964,Gable,CompShg,HdBoard,HdBoard,Stone,144,TA,Gd,CBlock,TA,TA,No,LwQ,998,Unf,0,294,1292,GasA,TA,Y,SBrkr,1292,0,0,1292,1,0,1,1,3,1,TA,6,Typ,2,Gd,Detchd,1964,Unf,2,520,TA,TA,Y,0,32,0,0,92,0,NA,NA,NA,0,7,2009,COD,Abnorml +1762,60,RL,NA,8970,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,2Story,5,6,1965,1965,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,388,Unf,0,356,744,GasA,TA,Y,SBrkr,825,1315,0,2140,0,0,2,1,4,1,TA,7,Typ,1,TA,Attchd,1965,Fin,2,549,TA,TA,Y,0,40,264,0,0,0,NA,MnPrv,NA,0,6,2009,WD,Normal +1763,80,RL,85,11475,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,SLvl,6,6,1961,1961,Hip,CompShg,HdBoard,HdBoard,BrkFace,90,TA,TA,CBlock,TA,TA,Gd,ALQ,568,Unf,0,640,1208,GasA,Ex,Y,SBrkr,1576,0,0,1576,1,0,1,0,4,1,Gd,7,Typ,1,Po,BuiltIn,1961,Fin,2,368,TA,TA,Y,85,0,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal +1764,20,RL,68,9768,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1955,1955,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,100,ALQ,247,613,960,GasA,Gd,Y,SBrkr,960,0,0,960,1,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1955,RFn,1,330,TA,TA,Y,0,70,0,0,0,0,NA,MnPrv,NA,0,2,2009,WD,Normal +1765,20,RL,90,9900,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Feedr,Norm,1Fam,1Story,6,5,1967,1967,Gable,CompShg,BrkComm,Brk Cmn,None,0,Gd,TA,CBlock,TA,TA,No,Rec,1173,Unf,0,507,1680,GasA,TA,Y,SBrkr,1691,0,0,1691,1,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1967,Unf,2,550,Gd,TA,Y,0,67,260,0,0,0,NA,MnPrv,NA,0,4,2009,WD,Normal +1766,20,RL,92,10573,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1961,1961,Hip,CompShg,MetalSd,MetalSd,BrkFace,3,TA,TA,CBlock,TA,TA,No,Rec,1312,Unf,0,141,1453,GasA,Ex,Y,SBrkr,1453,0,0,1453,1,0,2,0,3,1,TA,6,Typ,1,TA,Attchd,1961,RFn,2,530,TA,TA,Y,0,49,0,0,288,0,NA,GdPrv,NA,0,4,2009,WD,Normal +1767,20,RL,80,14695,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,8,1966,2008,Gable,CompShg,MetalSd,MetalSd,BrkFace,210,TA,Gd,CBlock,TA,TA,No,ALQ,1387,Unf,0,175,1562,GasA,Gd,Y,SBrkr,1567,0,0,1567,1,0,2,0,2,1,Gd,5,Typ,2,Gd,Attchd,1966,Unf,2,542,TA,TA,Y,0,110,0,0,342,0,NA,GdWo,NA,0,7,2009,WD,Normal +1768,20,RL,73,8760,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1956,1956,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,164,Gd,TA,CBlock,TA,TA,No,ALQ,856,Unf,0,313,1169,GasA,TA,Y,SBrkr,1144,0,0,1144,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1956,RFn,1,286,TA,TA,Y,257,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1769,20,RL,NA,12285,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,7,6,1960,1960,Gable,CompShg,Plywood,Plywood,BrkFace,128,TA,TA,CBlock,TA,TA,No,BLQ,544,Unf,0,785,1329,GasA,Gd,Y,SBrkr,1329,0,0,1329,0,0,1,1,3,1,TA,5,Typ,2,Gd,Attchd,1960,Unf,2,441,TA,TA,Y,0,0,203,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1770,20,RL,66,9240,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,8,1959,1998,Hip,CompShg,MetalSd,MetalSd,None,0,Gd,TA,CBlock,TA,TA,No,ALQ,708,Unf,0,280,988,GasA,TA,Y,SBrkr,988,0,0,988,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1959,Unf,1,297,TA,TA,Y,156,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1771,20,RL,70,8750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1956,1956,Gable,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,Rec,435,BLQ,202,565,1202,GasA,TA,Y,SBrkr,1202,0,0,1202,0,1,1,0,3,1,TA,6,Typ,0,NA,Attchd,1956,RFn,1,304,TA,TA,Y,0,35,120,0,0,0,NA,GdWo,NA,0,11,2009,COD,Abnorml +1772,20,RL,70,8750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1955,1955,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,CBlock,TA,TA,No,Rec,172,LwQ,483,727,1382,GasA,Gd,Y,FuseA,1382,0,0,1382,0,1,1,0,3,1,Gd,6,Typ,0,NA,Attchd,1955,Unf,1,350,TA,TA,Y,280,0,0,0,0,0,NA,GdWo,NA,0,7,2009,WD,Normal +1773,20,RL,80,10400,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,5,1956,1956,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,Rec,155,LwQ,750,295,1200,GasA,TA,Y,SBrkr,1200,0,0,1200,1,0,1,0,3,1,TA,6,Typ,2,Gd,Attchd,1956,Unf,1,294,TA,TA,Y,0,189,140,0,0,0,NA,NA,NA,0,11,2009,WD,Family +1774,90,RL,76,9482,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,Duplex,1Story,5,4,1958,1958,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,657,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,1866,1866,GasA,Ex,Y,SBrkr,1866,0,0,1866,0,0,2,0,4,2,TA,8,Typ,0,NA,Detchd,1958,Unf,2,495,TA,Fa,Y,0,0,0,0,0,0,NA,NA,NA,0,12,2009,WD,Normal +1775,20,RL,53,8128,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,7,1954,1954,Hip,CompShg,MetalSd,MetalSd,BrkFace,80,TA,TA,CBlock,TA,TA,No,ALQ,490,Unf,0,572,1062,GasA,Gd,Y,SBrkr,1062,0,0,1062,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1954,Unf,1,297,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,2,2009,WD,Normal +1776,20,RL,67,13070,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1951,1951,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,308,Unf,0,323,631,GasA,TA,Y,FuseA,1112,0,0,1112,0,0,1,0,2,1,TA,5,Typ,0,NA,Basment,1951,Unf,2,480,TA,TA,Y,0,0,0,0,255,0,NA,NA,NA,0,10,2009,WD,Normal +1777,30,RL,80,8480,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1945,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,BLQ,700,Unf,0,93,793,GasA,TA,Y,SBrkr,793,0,0,793,1,0,1,0,2,1,Fa,4,Typ,0,NA,Detchd,1945,Unf,1,240,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1778,20,RL,60,7626,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,8,1952,2005,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,TA,CBlock,TA,TA,No,GLQ,931,Unf,0,100,1031,GasA,Gd,Y,SBrkr,1031,0,0,1031,1,0,1,0,2,1,Gd,5,Typ,0,NA,Attchd,1952,Unf,1,230,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,3,2009,WD,Normal +1779,20,RL,75,9533,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1953,1953,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,140,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,FuseA,1210,0,0,1210,0,0,1,1,2,1,TA,7,Typ,0,NA,Attchd,1953,Fin,1,616,TA,TA,Y,208,0,100,0,0,0,NA,MnPrv,NA,0,8,2009,ConLD,Normal +1780,60,RL,78,11419,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Artery,Norm,1Fam,2Story,7,7,1948,1999,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,TA,Mn,ALQ,699,Unf,0,0,699,GasA,Ex,Y,FuseA,801,726,0,1527,1,0,1,1,3,1,TA,6,Typ,1,Gd,Attchd,1948,Unf,2,410,TA,TA,Y,0,0,134,0,0,0,NA,GdWo,NA,0,12,2009,WD,Normal +1781,20,RL,60,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1950,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,390,Unf,0,810,1200,GasA,TA,Y,SBrkr,1200,0,0,1200,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1950,Fin,1,246,TA,TA,Y,126,0,0,0,0,0,NA,GdWo,NA,0,8,2009,WD,Normal +1782,20,RL,53,5470,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,3,5,1958,1958,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,792,792,GasA,Gd,Y,FuseA,792,0,0,792,0,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1958,Unf,1,366,Fa,TA,Y,0,90,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1783,60,RL,60,10800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,5,7,1939,2006,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,BrkTil,TA,TA,No,Unf,0,Unf,0,676,676,GasA,Ex,Y,SBrkr,676,676,0,1352,0,1,2,0,4,1,Gd,7,Typ,0,NA,Detchd,1939,Unf,2,720,TA,TA,Y,187,0,128,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1784,70,RL,80,8146,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,2Story,4,8,1900,2003,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,Gd,BrkTil,Fa,TA,No,Unf,0,Unf,0,405,405,GasA,Gd,Y,SBrkr,717,322,0,1039,0,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1940,Unf,1,281,TA,TA,N,0,0,168,0,111,0,NA,NA,NA,0,5,2009,WD,Normal +1785,30,RL,60,10230,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,7,1925,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,1054,1054,GasA,Ex,Y,SBrkr,1078,0,0,1078,0,0,1,0,3,1,Ex,6,Typ,0,NA,Detchd,1987,Unf,1,264,TA,TA,N,0,0,0,0,112,0,NA,GdWo,NA,0,12,2009,WD,Normal +1786,50,RL,60,10410,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,4,5,1915,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,1313,1313,GasA,TA,Y,SBrkr,1313,0,1064,2377,0,0,2,0,3,1,Gd,8,Min2,1,TA,Detchd,1954,Unf,2,528,TA,TA,Y,0,0,432,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1787,70,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Artery,Norm,1Fam,2Story,7,9,1910,2008,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,Gd,PConc,TA,TA,No,Unf,0,Unf,0,560,560,GasA,Ex,Y,SBrkr,930,760,0,1690,0,0,2,0,4,1,Gd,5,Typ,0,NA,Detchd,2008,Unf,2,624,TA,TA,Y,0,0,112,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1788,30,RL,90,5400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1Story,2,5,1940,1950,Gable,CompShg,Stucco,Stucco,None,0,Fa,TA,PConc,Fa,TA,No,Unf,0,Unf,0,416,416,GasA,Gd,N,FuseA,599,0,0,599,1,0,1,0,2,1,Gd,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,81,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1789,30,RL,60,10800,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,7,1920,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,720,720,GasA,TA,N,SBrkr,846,0,0,846,0,0,1,0,2,1,Gd,4,Typ,0,NA,Detchd,1980,Fin,2,576,TA,TA,N,0,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1790,30,RL,60,10800,Pave,Grvl,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1Story,3,5,1890,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,630,630,GasA,TA,Y,FuseA,725,0,0,725,0,0,1,1,1,1,TA,4,Typ,0,NA,Detchd,1959,Unf,1,320,TA,TA,Y,0,30,0,0,0,0,NA,NA,NA,0,11,2009,WD,Normal +1791,90,RL,81,9671,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Artery,Norm,Duplex,2Story,6,5,1969,1969,Gable,CompShg,MetalSd,MetalSd,Stone,480,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1248,1248,GasA,TA,Y,SBrkr,1248,1296,0,2544,0,0,2,2,6,2,TA,12,Typ,0,NA,Attchd,1969,RFn,3,907,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1792,20,RL,83,10143,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,7,1963,1963,Gable,CompShg,HdBoard,HdBoard,BrkFace,295,TA,TA,CBlock,TA,TA,No,Rec,384,Unf,0,996,1380,GasA,Fa,Y,SBrkr,1380,0,0,1380,0,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1963,Unf,1,364,TA,TA,Y,0,0,0,0,216,0,NA,GdWo,NA,0,6,2009,WD,Normal +1793,20,RL,77,11500,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,4,1967,1967,Gable,CompShg,HdBoard,HdBoard,None,0,Fa,TA,CBlock,TA,Fa,No,BLQ,872,Rec,60,108,1040,GasA,Gd,Y,SBrkr,1040,0,0,1040,1,0,1,0,3,1,TA,6,Min1,1,Po,Attchd,1967,RFn,2,480,TA,TA,Y,0,0,156,0,0,0,NA,MnPrv,NA,0,5,2009,WD,Normal +1794,20,RL,62,8010,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,9,1958,2007,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,Gd,CBlock,TA,TA,Mn,GLQ,745,Unf,0,206,951,GasA,Gd,Y,SBrkr,951,0,0,951,1,0,1,0,2,1,Gd,6,Typ,0,NA,Detchd,1985,Unf,2,480,TA,TA,Y,0,0,42,0,0,0,NA,NA,Shed,450,9,2009,WD,Normal +1795,20,RL,90,10454,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1957,1957,Hip,CompShg,Plywood,Plywood,Stone,143,TA,TA,CBlock,TA,TA,No,Rec,546,Unf,0,559,1105,GasA,Gd,Y,FuseA,1105,0,0,1105,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1957,Unf,1,308,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal +1796,20,RL,80,9000,Pave,NA,IR1,HLS,AllPub,Inside,Mod,NAmes,Norm,Norm,1Fam,1Story,6,6,1958,1958,Flat,Tar&Grv,Wd Sdng,Wd Sdng,BrkFace,82,TA,TA,CBlock,Gd,TA,Gd,Unf,0,Unf,0,160,160,GasA,Fa,Y,SBrkr,1142,0,0,1142,0,0,1,0,2,1,TA,5,Typ,1,Gd,Basment,1958,RFn,1,384,TA,TA,Y,0,28,64,0,0,0,NA,NA,NA,0,4,2009,WD,Normal +1797,50,RL,60,8064,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Artery,Norm,1Fam,1.5Fin,6,5,1950,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Av,Rec,621,Unf,0,174,795,GasA,Gd,N,SBrkr,765,368,0,1133,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1989,Unf,2,900,TA,TA,Y,0,0,0,0,231,0,NA,NA,NA,0,12,2009,COD,Abnorml +1798,20,RL,71,7350,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1958,1958,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1041,1041,GasA,Gd,Y,SBrkr,1041,0,0,1041,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1958,RFn,1,294,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,3,2009,WD,Normal +1799,20,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1952,1952,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,Gd,No,ALQ,630,BLQ,102,0,732,GasA,TA,Y,SBrkr,732,0,0,732,1,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1952,Unf,1,240,TA,TA,Y,0,68,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal +1800,80,RL,80,8000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,5,5,1959,1959,Gable,CompShg,BrkFace,Plywood,None,0,TA,TA,CBlock,Gd,TA,Av,GLQ,433,Rec,95,0,528,GasA,TA,Y,SBrkr,1183,0,0,1183,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1959,RFn,1,288,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,7,2009,WD,Normal +1801,50,RL,60,10800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Artery,Norm,1Fam,1.5Fin,4,7,1949,1996,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,832,832,GasA,TA,Y,FuseF,832,629,0,1461,0,0,2,0,4,1,TA,6,Typ,0,NA,Detchd,1949,Unf,1,384,TA,TA,Y,0,204,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1802,50,RL,60,8064,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Artery,Norm,1Fam,1.5Fin,6,7,1948,1994,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,LwQ,120,Unf,0,744,864,GasA,TA,Y,SBrkr,1064,0,431,1495,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1994,Unf,2,576,TA,TA,Y,180,36,0,0,0,0,NA,NA,NA,0,8,2009,COD,Abnorml +1803,60,RL,76,7570,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,2Story,6,5,1964,1964,Gable,CompShg,HdBoard,HdBoard,BrkFace,420,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,780,780,GasA,TA,Y,SBrkr,993,813,0,1806,0,0,1,1,4,1,TA,8,Typ,0,NA,Attchd,1964,Unf,2,483,TA,TA,Y,0,55,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal +1804,90,RL,75,8604,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,Duplex,SFoyer,5,7,1978,1978,Gable,CompShg,Plywood,Plywood,BrkFace,124,TA,Gd,CBlock,Gd,TA,Av,GLQ,941,Unf,0,0,941,GasA,Gd,Y,SBrkr,941,0,0,941,1,0,1,0,2,1,Gd,4,Typ,0,NA,Attchd,1978,Unf,2,564,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,11,2009,WD,Normal +1805,20,RL,80,7936,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1963,1963,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,BLQ,826,Unf,0,219,1045,GasA,TA,Y,SBrkr,1045,0,0,1045,1,0,1,0,3,1,TA,6,Typ,1,Fa,Attchd,1963,RFn,1,264,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal +1806,50,RM,68,4080,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,6,8,1935,1998,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,901,901,GasA,Gd,Y,SBrkr,861,517,0,1378,0,0,1,0,3,1,Gd,6,Typ,0,NA,Detchd,1920,Unf,1,162,Fa,Fa,P,54,0,40,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1807,90,RM,57,10307,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,Duplex,2Story,6,5,1910,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Mn,LwQ,633,Unf,0,339,972,GasA,Gd,N,FuseA,972,972,0,1944,1,0,2,0,4,2,TA,12,Typ,0,NA,Detchd,1920,Unf,2,324,Fa,TA,N,0,28,169,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1808,50,RM,90,15660,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,8,1910,2003,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,TA,No,Unf,0,Unf,0,240,240,GasA,TA,Y,SBrkr,810,496,0,1306,0,0,1,1,3,1,Gd,6,Typ,0,NA,Detchd,1959,Unf,2,472,Fa,TA,N,0,0,0,0,0,0,NA,MnPrv,NA,0,7,2009,WD,Normal +1809,70,RM,90,9900,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,2Story,5,8,1910,2002,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,CBlock,TA,TA,No,Unf,0,Unf,0,504,504,GasA,Ex,Y,SBrkr,764,700,0,1464,0,0,2,0,3,1,TA,7,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,176,0,0,0,NA,NA,NA,0,3,2009,WD,Normal +1810,70,RM,57,6406,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,5,6,1939,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,ALQ,421,Unf,0,269,690,GasA,TA,Y,FuseA,868,690,0,1558,0,0,1,1,3,1,TA,7,Typ,1,Gd,Detchd,1939,Unf,2,400,TA,TA,Y,0,36,0,0,182,0,NA,MnPrv,NA,0,10,2009,WD,Normal +1811,190,RM,63,7627,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Artery,Norm,2fmCon,2Story,4,6,1920,1950,Gable,CompShg,AsbShng,AsbShng,None,0,Fa,TA,BrkTil,Fa,Po,No,Unf,0,Unf,0,600,600,GasA,Gd,N,SBrkr,1101,600,0,1701,0,0,2,0,4,2,Fa,8,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,148,0,0,0,NA,NA,NA,0,10,2009,WD,Normal +1812,50,RM,56,10134,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,5,1910,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,Fa,TA,No,Unf,0,Unf,0,801,801,GasA,Gd,N,SBrkr,801,646,0,1447,0,0,1,0,3,1,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,80,0,244,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1813,50,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,7,1950,1970,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Ex,CBlock,TA,TA,No,BLQ,384,Unf,0,384,768,GasA,TA,Y,FuseA,768,560,0,1328,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1950,Unf,1,308,TA,TA,Y,0,12,0,0,0,0,NA,MnPrv,NA,0,3,2009,WD,Normal +1814,30,RM,62,7404,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1Story,4,6,1920,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,Fa,TA,No,Unf,0,Unf,0,861,861,GasA,TA,Y,SBrkr,861,0,0,861,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1920,Unf,2,288,TA,TA,N,0,0,128,0,0,0,NA,NA,NA,0,11,2009,Oth,Normal +1815,30,RM,50,5925,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1Story,2,4,1940,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,BrkTil,NA,NA,NA,NA,0,NA,0,0,0,GasA,Fa,N,FuseA,612,0,0,612,0,0,1,0,1,1,TA,4,Typ,0,NA,Detchd,1965,Unf,1,308,TA,Fa,N,0,0,25,0,0,0,NA,NA,NA,0,10,2009,WD,Normal +1816,30,RM,60,8520,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,8,1923,1950,Gable,CompShg,Stucco,Stucco,None,0,Gd,TA,PConc,Fa,TA,No,Unf,0,Unf,0,624,624,GasA,TA,Y,SBrkr,792,0,0,792,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1963,Unf,1,287,TA,TA,Y,0,0,81,0,0,0,NA,GdWo,NA,0,2,2009,WD,Normal +1817,70,RM,60,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,4,4,1910,1950,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,Gd,BrkTil,Fa,TA,No,Unf,0,Unf,0,677,677,GasA,TA,Y,SBrkr,833,677,0,1510,0,0,2,0,3,1,Gd,7,Typ,0,NA,Detchd,1974,Unf,2,720,TA,TA,N,0,0,160,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1818,70,RM,70,8400,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Artery,Norm,1Fam,2Story,6,7,1900,1950,Gable,CompShg,Stucco,BrkFace,None,0,TA,TA,BrkTil,Fa,Gd,Mn,Unf,0,Unf,0,917,917,GasA,Gd,Y,FuseA,1090,917,0,2007,0,0,2,0,3,1,Ex,8,Typ,0,NA,Detchd,1930,Unf,1,357,TA,TA,Y,0,235,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1819,70,RM,60,3600,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,6,7,1917,2007,Gable,CompShg,Stucco,Stucco,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,624,624,GasA,Ex,Y,SBrkr,664,624,0,1288,1,0,1,0,3,1,Ex,5,Typ,1,Gd,Attchd,1917,Unf,1,280,TA,TA,N,0,103,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1820,30,C (all),NA,3300,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,4,3,1910,1950,Gable,CompShg,Stucco,Stucco,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,624,624,GasA,Ex,Y,SBrkr,816,0,0,816,0,0,1,0,2,1,TA,5,Typ,1,Gd,NA,NA,NA,0,0,NA,NA,N,0,33,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1821,50,RM,60,5400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,6,6,1920,1950,Gable,CompShg,MetalSd,MetalSd,None,0,Fa,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,972,972,GasA,Ex,Y,SBrkr,1044,0,436,1480,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1920,Unf,1,207,Fa,TA,Y,0,0,176,0,0,0,NA,NA,NA,0,9,2009,ConLI,Family +1822,70,RM,60,9720,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,6,7,1910,2002,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,741,741,GasA,Ex,Y,SBrkr,780,741,0,1521,0,0,1,0,4,1,Gd,8,Typ,0,NA,Detchd,1950,Unf,3,640,TA,TA,Y,0,0,238,0,0,0,NA,MnPrv,NA,0,9,2009,WD,Normal +1823,30,C (all),72,9392,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,3,3,1900,1950,Mansard,CompShg,AsbShng,AsbShng,None,0,TA,Fa,CBlock,Fa,TA,No,Unf,0,Unf,0,245,245,GasA,TA,N,SBrkr,797,0,0,797,0,0,1,0,2,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,36,94,0,0,0,NA,NA,NA,0,9,2009,WD,Abnorml +1824,30,RL,NA,6615,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,6,6,1923,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,1022,1022,GasA,TA,N,FuseA,1432,0,0,1432,0,0,1,0,3,1,Gd,6,Typ,1,Gd,BuiltIn,1923,Unf,1,216,Fa,TA,Y,266,61,0,0,0,0,NA,GdWo,NA,0,9,2009,WD,Normal +1825,70,RL,50,4960,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,RRAn,Norm,1Fam,1.5Fin,5,7,1930,1982,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,297,297,GasA,Ex,Y,SBrkr,1001,653,0,1654,0,0,2,0,3,1,TA,7,Typ,1,Gd,Detchd,1955,Unf,1,336,TA,TA,N,244,60,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1826,50,RM,60,6000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,5,1924,1950,Gable,CompShg,Stucco,Stucco,BrkFace,444,TA,TA,BrkTil,TA,TA,No,Rec,220,Unf,0,248,468,GasA,Gd,Y,SBrkr,822,320,0,1142,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1924,Fin,1,320,TA,TA,Y,0,0,98,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1827,30,RM,51,6120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,5,6,1925,1999,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,960,960,GasA,Gd,Y,SBrkr,995,0,0,995,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1926,Unf,1,264,TA,TA,Y,0,15,51,0,0,0,NA,MnPrv,NA,0,3,2009,WD,Abnorml +1828,50,RM,51,6120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,6,1938,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,Fa,No,LwQ,273,Unf,0,679,952,GasA,TA,Y,FuseA,994,588,0,1582,0,0,2,0,3,1,TA,6,Typ,1,Gd,Detchd,1938,Unf,1,250,Fa,TA,Y,189,0,34,150,0,0,NA,NA,NA,0,2,2009,WD,Normal +1829,30,RM,50,8635,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,5,5,1925,1950,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Fa,BrkTil,TA,TA,No,LwQ,134,Unf,0,938,1072,GasA,TA,Y,SBrkr,1072,0,0,1072,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1982,Unf,5,1184,Fa,TA,P,0,0,105,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1830,70,RM,57,8094,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,6,6,1915,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,1048,1048,GasA,Gd,Y,FuseA,1048,720,0,1768,0,0,2,0,3,1,TA,8,Typ,0,NA,Detchd,1930,Unf,2,576,Fa,Fa,Y,0,0,150,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1831,70,RM,68,9928,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,7,8,1915,1994,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,BrkTil,TA,TA,No,Unf,0,Unf,0,672,672,GasA,Fa,Y,SBrkr,1272,672,0,1944,0,0,2,0,3,1,TA,8,Min2,0,NA,Detchd,1915,Unf,1,216,TA,TA,N,24,28,0,0,0,0,NA,NA,Shed,400,6,2009,WD,Normal +1832,90,RM,50,3000,Pave,Grvl,Reg,Bnk,AllPub,Inside,Gtl,OldTown,Norm,Norm,Duplex,2Story,5,1,1922,1950,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,Fa,No,Unf,0,Unf,0,1040,1040,GasA,TA,N,SBrkr,1088,1040,0,2128,0,0,2,0,4,2,TA,11,Sev,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,56,0,0,0,0,NA,NA,NA,0,9,2009,WD,Abnorml +1833,70,RM,57,6876,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,2Story,6,5,1927,1950,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,Fa,No,BLQ,522,Unf,0,198,720,GasA,Fa,Y,SBrkr,1146,784,0,1930,1,0,2,0,4,1,TA,8,Typ,0,NA,Attchd,1927,Unf,1,316,TA,TA,Y,0,0,213,0,0,0,NA,MnPrv,NA,0,8,2009,WD,Normal +1834,70,RM,NA,5775,Pave,NA,IR2,Bnk,AllPub,Corner,Mod,OldTown,Feedr,Norm,1Fam,2Story,6,7,1915,2002,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,483,483,GasA,Ex,Y,SBrkr,741,686,0,1427,0,0,1,0,3,1,Gd,7,Typ,0,NA,Attchd,1915,Unf,1,379,TA,TA,Y,0,24,112,0,0,0,NA,NA,NA,0,2,2009,WD,Normal +1835,190,RM,41,5852,Pave,NA,IR3,Bnk,AllPub,Corner,Gtl,OldTown,Feedr,Norm,2fmCon,2.5Unf,7,5,1902,2000,Gable,CompShg,MetalSd,MetalSd,Stone,188,TA,Fa,BrkTil,TA,Fa,No,Rec,169,Unf,0,851,1020,GasA,TA,N,FuseF,978,886,0,1864,0,0,2,1,6,1,TA,9,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,188,102,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1836,50,RM,60,5160,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,6,6,1927,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Fa,BrkTil,TA,TA,No,Unf,0,Unf,0,1204,1204,GasA,TA,Y,FuseA,1204,462,0,1666,0,0,1,0,3,1,TA,4,Typ,0,NA,Detchd,1927,Unf,1,384,Fa,TA,Y,0,0,148,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1837,85,RM,86,5160,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,SFoyer,4,6,1923,1950,Hip,CompShg,MetalSd,MetalSd,None,0,TA,Gd,PConc,Gd,Fa,Av,BLQ,749,Rec,63,46,858,GasA,TA,Y,SBrkr,892,0,0,892,1,0,1,0,1,1,Gd,5,Min2,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,105,0,160,0,NA,NA,NA,0,7,2009,COD,Abnorml +1838,190,RM,60,10320,Pave,Grvl,Reg,Bnk,AllPub,Inside,Gtl,IDOTRR,Artery,Norm,2fmCon,2Story,6,7,1915,1965,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,Rec,276,ALQ,262,160,698,GasA,Ex,Y,FuseF,754,649,0,1403,1,0,1,1,3,1,TA,7,Typ,0,NA,Detchd,1915,Unf,1,308,TA,TA,Y,0,0,288,0,0,0,NA,NA,NA,0,2,2009,WD,Normal +1839,20,RL,50,4280,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,4,9,1946,2001,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,Fa,TA,No,Unf,0,Unf,0,560,560,GasA,Ex,Y,FuseA,704,0,0,704,0,1,1,0,2,1,Fa,4,Typ,0,NA,CarPort,1946,Unf,1,220,TA,TA,Y,0,0,24,0,0,0,NA,NA,NA,0,9,2009,WD,Normal +1840,90,RL,60,10800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,Duplex,1Story,5,5,1987,1988,Gable,CompShg,Plywood,Plywood,None,0,TA,Gd,CBlock,Gd,Gd,Gd,GLQ,1200,Unf,0,0,1200,GasA,TA,Y,SBrkr,1200,0,0,1200,3,0,3,0,3,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,120,0,0,0,0,0,NA,NA,NA,0,3,2009,WD,Alloca +1841,90,RL,NA,10547,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,Duplex,SFoyer,5,5,1978,1978,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,PConc,Gd,Gd,Gd,GLQ,1152,Unf,0,0,1152,GasA,TA,Y,SBrkr,1152,0,0,1152,2,0,2,0,2,2,TA,6,Typ,0,NA,Detchd,1960,Unf,1,252,TA,Fa,N,0,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1842,50,RL,60,9780,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,5,3,1934,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,585,585,GasA,TA,N,FuseA,687,425,0,1112,1,0,2,0,4,1,TA,6,Typ,0,NA,Detchd,1934,Unf,1,226,Po,Po,N,0,0,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal +1843,20,RL,75,11625,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,6,1967,1967,Hip,CompShg,HdBoard,HdBoard,BrkFace,172,TA,TA,CBlock,TA,TA,No,BLQ,527,Unf,0,525,1052,GasA,TA,Y,SBrkr,1052,0,0,1052,0,0,1,1,3,1,TA,6,Typ,1,Po,Attchd,1984,Fin,1,668,TA,TA,Y,0,215,0,0,0,0,NA,NA,NA,0,4,2009,WD,Abnorml +1844,85,RL,NA,8014,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,Norm,Norm,1Fam,SFoyer,6,5,1978,1978,Gable,CompShg,Plywood,HdBoard,BrkFace,23,TA,TA,CBlock,Gd,TA,Gd,GLQ,456,Unf,0,0,456,GasA,TA,Y,SBrkr,1034,0,0,1034,0,1,1,0,3,1,TA,5,Typ,1,Fa,Basment,1978,Fin,2,504,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1845,80,RL,88,15400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,SLvl,5,5,1961,1961,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,Gd,No,Unf,0,Unf,0,552,552,GasA,TA,Y,SBrkr,904,611,259,1774,0,0,2,0,4,1,TA,8,Typ,1,TA,Attchd,1961,Unf,1,384,TA,TA,Y,290,40,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1846,80,RL,88,15312,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,SLvl,6,5,1960,1960,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,54,TA,TA,CBlock,TA,TA,Av,BLQ,588,Unf,0,550,1138,GasA,Ex,Y,SBrkr,1138,0,0,1138,0,1,1,0,3,1,TA,6,Typ,1,TA,Attchd,1960,RFn,2,480,TA,TA,Y,0,0,0,0,140,0,NA,MnPrv,NA,0,3,2009,COD,Normal +1847,80,RL,NA,15584,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,ClearCr,Norm,Norm,1Fam,SLvl,5,5,1956,1956,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,366,TA,TA,CBlock,TA,TA,Mn,Unf,0,Unf,0,825,825,GasA,Ex,Y,SBrkr,2071,0,0,2071,0,1,1,1,4,1,TA,9,Typ,1,TA,Attchd,1956,Unf,1,336,TA,TA,Y,131,28,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal +1848,20,RL,NA,9000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Norm,Norm,1Fam,1Story,2,2,1947,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,Fa,N,SBrkr,660,0,0,660,0,0,1,0,2,1,Fa,5,Min2,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,100,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1849,20,RL,NA,15635,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,5,1954,1954,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,1383,0,0,1383,0,0,1,0,2,1,TA,6,Mod,0,NA,Attchd,1980,Unf,2,498,Fa,TA,Y,0,0,90,0,110,0,NA,NA,NA,0,10,2009,WD,Normal +1850,20,RL,68,9571,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,5,1956,1956,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,257,Unf,0,816,1073,GasA,TA,Y,FuseA,1073,0,0,1073,1,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1956,Unf,1,340,TA,TA,Y,0,0,0,0,0,0,NA,GdPrv,NA,0,2,2009,WD,Normal +1851,60,RL,50,9350,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,2Story,6,7,1946,1950,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,342,Unf,0,405,747,GasA,Ex,Y,SBrkr,892,747,0,1639,0,0,1,1,3,1,Gd,6,Typ,1,Gd,Detchd,1946,Unf,1,240,TA,TA,Y,0,50,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1852,20,RL,62,7440,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,6,1954,1954,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,Gd,TA,No,BLQ,173,Unf,0,916,1089,GasW,TA,Y,SBrkr,1089,0,0,1089,1,0,1,0,3,1,TA,5,Typ,1,Gd,Detchd,1954,RFn,1,252,TA,TA,P,328,0,0,0,0,0,NA,MnPrv,NA,0,9,2009,WD,Normal +1853,120,RL,42,4235,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,TwnhsE,1Story,5,5,1984,1984,Gable,CompShg,HdBoard,HdBoard,BrkFace,149,Gd,TA,CBlock,Gd,TA,Mn,GLQ,552,ALQ,393,104,1049,GasA,TA,Y,SBrkr,1049,0,0,1049,1,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,1984,Fin,1,266,TA,TA,Y,0,105,0,0,0,0,NA,NA,NA,0,2,2009,WD,Normal +1854,80,RL,74,10778,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Feedr,Norm,1Fam,SLvl,7,6,1990,1991,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,460,ALQ,286,308,1054,GasA,Gd,Y,SBrkr,1061,0,0,1061,1,0,1,1,1,1,Gd,4,Typ,0,NA,Attchd,1990,Unf,2,462,TA,TA,Y,114,36,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1855,80,RL,66,19255,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,SLvl,6,5,1983,1983,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,100,Gd,TA,CBlock,Gd,TA,Av,Rec,70,GLQ,450,0,520,GasA,Gd,Y,SBrkr,1338,0,0,1338,0,0,1,1,2,1,Gd,5,Min2,1,Po,Attchd,1983,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,NA,Shed,600,9,2009,WD,Normal +1856,60,RL,85,10560,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,1993,1994,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,Gd,PConc,Gd,Gd,No,GLQ,474,Unf,0,605,1079,GasA,Ex,Y,SBrkr,1079,800,0,1879,1,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1993,RFn,2,473,TA,TA,Y,400,100,144,0,0,0,NA,MnPrv,NA,0,8,2009,WD,Normal +1857,70,RL,120,26400,Pave,NA,Reg,Bnk,AllPub,FR2,Gtl,SawyerW,Feedr,Norm,1Fam,2Story,5,7,1880,2007,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,NA,NA,NA,NA,0,NA,0,0,0,GasA,Ex,Y,SBrkr,1288,728,0,2016,0,0,1,0,4,1,TA,7,Mod,1,TA,Attchd,1900,Unf,2,576,TA,TA,P,0,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1858,90,RL,64,7018,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Feedr,Norm,Duplex,2Story,5,5,1979,1979,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,1114,1114,0,2228,0,0,2,0,6,2,TA,8,Typ,0,NA,Detchd,1979,Unf,2,720,TA,TA,Y,73,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Alloca +1859,90,RL,64,7018,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,SawyerW,Norm,Norm,Duplex,1Story,5,5,1979,1979,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,1535,0,0,1535,0,0,2,0,4,2,TA,8,Typ,0,NA,Attchd,1979,Unf,2,400,TA,TA,Y,0,0,0,0,0,0,NA,GdPrv,NA,0,6,2009,WD,Alloca +1860,90,RL,64,7040,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Feedr,Norm,Duplex,SFoyer,5,5,1979,1979,Gable,CompShg,Plywood,Plywood,BrkFace,216,TA,TA,CBlock,Gd,TA,Av,GLQ,1094,Unf,0,0,1094,GasA,TA,Y,SBrkr,1229,0,0,1229,2,0,0,2,2,2,Gd,6,Typ,2,TA,Detchd,1979,Unf,2,672,TA,TA,Y,120,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Alloca +1861,90,RL,64,7007,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,SawyerW,Norm,Norm,Duplex,1Story,5,5,1979,1979,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,1513,0,0,1513,0,0,2,0,4,2,TA,8,Typ,0,NA,Attchd,1979,Unf,2,400,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Alloca +1862,90,RL,NA,11855,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,Duplex,2Story,7,5,2000,2000,Hip,CompShg,VinylSd,VinylSd,BrkFace,23,TA,TA,PConc,Ex,TA,No,GLQ,820,Unf,0,348,1168,GasA,Ex,Y,SBrkr,1168,1619,0,2787,2,0,4,2,6,2,TA,8,Typ,2,TA,BuiltIn,2000,Fin,4,820,TA,TA,Y,312,0,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal +1863,90,RL,NA,7939,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Feedr,Norm,Duplex,2Story,7,5,2000,2000,Hip,CompShg,VinylSd,VinylSd,BrkFace,23,TA,TA,PConc,Ex,TA,No,GLQ,820,Unf,0,348,1168,GasA,Ex,Y,SBrkr,1168,1619,0,2787,2,0,4,2,6,2,TA,8,Typ,2,TA,BuiltIn,2000,Fin,4,820,TA,TA,Y,312,0,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal +1864,90,RL,NA,7976,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Feedr,Norm,Duplex,2Story,7,5,2000,2000,Hip,CompShg,VinylSd,VinylSd,BrkFace,23,TA,TA,PConc,Ex,TA,No,GLQ,820,Unf,0,348,1168,GasA,Ex,Y,SBrkr,1168,1619,0,2787,2,0,4,2,6,2,TA,8,Typ,2,TA,BuiltIn,2000,Fin,4,820,TA,TA,Y,312,0,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal +1865,20,RL,84,10933,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,9,5,2009,2009,Hip,CompShg,VinylSd,VinylSd,Stone,242,Ex,TA,PConc,Ex,TA,Gd,GLQ,1021,Unf,0,534,1555,GasA,Ex,Y,SBrkr,1680,0,0,1680,1,0,1,1,1,1,Ex,8,Typ,1,Gd,Attchd,2009,Fin,3,1138,TA,TA,Y,185,24,0,0,0,0,NA,NA,NA,0,7,2009,New,Partial +1866,20,RL,65,10816,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,9,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,Stone,364,Ex,TA,PConc,Ex,TA,Gd,GLQ,1104,Unf,0,616,1720,GasA,Ex,Y,SBrkr,1720,0,0,1720,1,0,2,0,3,1,Ex,8,Typ,1,Gd,Attchd,2008,RFn,3,846,TA,TA,Y,208,104,0,0,0,0,NA,NA,NA,0,11,2009,WD,Normal +1867,20,RL,71,9178,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1468,1468,GasA,Ex,Y,SBrkr,1468,0,0,1468,0,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2008,RFn,3,904,TA,TA,Y,192,142,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1868,20,RL,77,11422,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2007,2008,Hip,CompShg,VinylSd,VinylSd,Stone,352,Gd,TA,PConc,Ex,TA,Av,GLQ,1359,Unf,0,479,1838,GasA,Ex,Y,SBrkr,1838,0,0,1838,1,0,2,0,3,1,Gd,7,Typ,2,Gd,Attchd,2007,RFn,2,524,TA,TA,Y,154,222,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal +1869,20,RL,64,6762,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,902,Unf,0,380,1282,GasA,Ex,Y,SBrkr,1290,0,0,1290,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2007,RFn,2,662,TA,TA,Y,168,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1870,20,RL,95,10324,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,BrkFace,140,Gd,TA,PConc,Gd,TA,Av,GLQ,872,Unf,0,382,1254,GasA,Ex,Y,SBrkr,1254,0,0,1254,1,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,2008,RFn,3,810,TA,TA,Y,168,92,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal +1871,20,RL,78,11645,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,Stone,76,Gd,TA,PConc,Ex,TA,Gd,GLQ,24,Unf,0,1474,1498,GasA,Ex,Y,SBrkr,1498,0,0,1498,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2005,Fin,3,844,TA,TA,Y,144,98,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal +1872,60,RL,79,11646,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,6,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,704,704,GasA,Ex,Y,SBrkr,704,718,0,1422,0,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2005,Fin,2,440,TA,TA,Y,36,28,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1873,60,RL,NA,16698,Pave,NA,IR1,HLS,AllPub,CulDSac,Mod,ClearCr,Norm,Norm,1Fam,2Story,7,5,1992,1993,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,800,Unf,0,649,1449,GasA,Gd,Y,SBrkr,944,815,0,1759,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1992,Unf,2,525,TA,TA,Y,150,193,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1874,20,RL,65,9757,Pave,NA,Reg,Low,AllPub,Inside,Mod,CollgCr,Norm,Norm,1Fam,1Story,5,7,1994,1994,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,PConc,TA,TA,No,ALQ,755,Unf,0,235,990,GasA,Ex,Y,SBrkr,990,0,0,990,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1995,RFn,1,440,TA,TA,Y,66,0,0,0,92,0,NA,NA,NA,0,10,2009,WD,Normal +1875,20,RL,65,14753,Pave,NA,IR2,Low,AllPub,Inside,Gtl,CollgCr,PosN,Norm,1Fam,1Story,7,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Mn,GLQ,950,Unf,0,513,1463,GasA,Ex,Y,SBrkr,1463,0,0,1463,1,0,2,0,3,1,TA,5,Typ,0,NA,Attchd,1998,Fin,2,539,TA,TA,Y,0,81,0,0,0,0,NA,GdPrv,NA,0,12,2009,WD,Normal +1876,60,RL,70,8750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,6,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,120,TA,TA,PConc,Gd,TA,No,GLQ,606,Unf,0,322,928,GasA,Ex,Y,SBrkr,928,844,0,1772,1,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1998,RFn,2,492,TA,TA,Y,150,96,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal +1877,20,RL,65,10739,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2002,2001,Gable,CompShg,VinylSd,VinylSd,BrkFace,68,Gd,TA,PConc,Gd,TA,No,GLQ,1259,Unf,0,172,1431,GasA,Ex,Y,SBrkr,1444,0,0,1444,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2002,RFn,2,577,TA,TA,Y,144,40,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal +1878,20,RL,75,11166,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,BrkFace,180,Gd,TA,PConc,Gd,TA,Mn,GLQ,24,Unf,0,1468,1492,GasA,Ex,Y,SBrkr,1492,0,0,1492,0,0,2,0,3,1,Gd,6,Typ,1,TA,Attchd,2001,RFn,2,608,TA,TA,Y,0,114,0,0,168,0,NA,NA,NA,0,7,2009,WD,Family +1879,20,RL,NA,16269,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,5,1978,1978,Gable,CompShg,MetalSd,MetalSd,BrkFace,76,TA,TA,BrkTil,Gd,TA,Av,GLQ,625,Unf,0,282,907,GasA,TA,Y,SBrkr,907,0,0,907,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1978,Unf,1,343,TA,TA,Y,72,0,0,0,0,0,NA,MnPrv,NA,0,7,2009,WD,Normal +1880,20,RL,76,6950,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,7,1979,1979,Gable,CompShg,HdBoard,HdBoard,BrkFace,40,TA,TA,CBlock,TA,TA,No,ALQ,710,BLQ,72,132,914,GasA,TA,Y,SBrkr,914,0,0,914,1,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1979,Unf,2,444,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal +1881,20,RL,90,11664,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2002,2002,Hip,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,1234,Unf,0,335,1569,GasA,Ex,Y,SBrkr,1611,0,0,1611,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2002,RFn,3,1231,TA,TA,Y,262,93,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal +1882,60,RL,NA,12334,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,198,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1068,1068,GasA,Ex,Y,SBrkr,1068,1116,0,2184,0,0,2,1,4,1,Gd,8,Typ,1,Gd,BuiltIn,2003,RFn,2,570,TA,TA,Y,192,132,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1883,60,RL,70,8749,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,NA,NA,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,840,840,GasA,Ex,Y,SBrkr,840,885,0,1725,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2002,RFn,2,550,TA,TA,Y,0,48,0,0,0,0,NA,NA,NA,0,11,2009,WD,Normal +1884,60,RL,NA,11250,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,944,944,GasA,Ex,Y,SBrkr,944,926,0,1870,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2001,RFn,2,608,TA,TA,Y,256,43,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1885,20,RL,90,15750,Pave,NA,Reg,Lvl,AllPub,FR3,Gtl,CollgCr,Feedr,Norm,1Fam,1Story,8,5,1999,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,260,Gd,TA,PConc,Gd,TA,Gd,GLQ,1246,Unf,0,216,1462,GasA,Ex,Y,SBrkr,1513,0,0,1513,1,0,2,0,2,1,Gd,5,Typ,1,TA,Attchd,1999,Fin,2,521,TA,TA,Y,135,34,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1886,20,RL,NA,12782,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2002,2003,Hip,CompShg,HdBoard,HdBoard,BrkFace,164,Gd,TA,PConc,Ex,TA,Gd,GLQ,1360,Unf,0,462,1822,GasA,Ex,Y,SBrkr,1828,0,0,1828,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2002,Fin,2,523,TA,TA,Y,194,144,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal +1887,20,RL,70,8750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,1997,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,209,Gd,TA,PConc,Gd,TA,Av,GLQ,1111,Unf,0,306,1417,GasA,Ex,Y,SBrkr,1417,0,0,1417,1,0,2,0,3,1,Gd,7,Typ,1,TA,Attchd,1997,Unf,2,511,TA,TA,Y,60,0,0,0,117,0,NA,NA,NA,0,8,2009,WD,Normal +1888,20,RL,85,10200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,BrkFace,180,Gd,TA,PConc,Gd,TA,Av,GLQ,1478,Unf,0,100,1578,GasA,Ex,Y,SBrkr,1602,0,0,1602,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2007,RFn,3,810,TA,TA,Y,0,48,0,0,195,0,NA,NA,NA,0,1,2009,WD,Normal +1889,60,RL,85,11069,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,2Story,6,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,608,608,GasA,Ex,Y,SBrkr,608,788,0,1396,0,0,2,1,3,1,Gd,6,Typ,1,Gd,BuiltIn,2007,Fin,2,440,TA,TA,Y,100,36,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1890,20,RL,80,10682,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,6,1960,1971,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,GLQ,399,Unf,0,615,1014,GasA,TA,Y,SBrkr,1149,0,0,1149,1,0,1,0,3,1,TA,7,Min1,0,NA,2Types,1968,Fin,1,544,TA,TA,Y,0,240,0,0,0,0,NA,MnPrv,NA,0,7,2009,WD,Normal +1891,180,RM,35,3675,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,TwnhsE,SFoyer,6,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,80,TA,TA,Wood,Gd,TA,Gd,GLQ,547,Unf,0,0,547,GasA,Gd,Y,SBrkr,1072,0,0,1072,1,0,1,0,2,1,TA,5,Typ,0,NA,Basment,2005,Fin,2,525,TA,TA,Y,0,28,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal +1892,20,RL,64,6410,Pave,NA,Reg,HLS,AllPub,Inside,Mod,Edwards,Norm,Norm,1Fam,1Story,4,5,1959,1959,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,CBlock,TA,TA,No,LwQ,332,Rec,243,301,876,GasA,TA,Y,FuseA,876,0,0,876,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1959,Unf,1,320,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,3,2009,WD,Normal +1893,20,RL,70,11767,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,5,1950,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,Fa,TA,Mn,Rec,1078,Unf,0,0,1078,GasA,TA,Y,FuseA,1368,0,0,1368,1,0,1,0,3,1,TA,6,Min1,0,NA,Attchd,1950,RFn,1,195,TA,TA,Y,0,41,211,0,0,0,NA,NA,Shed,900,6,2009,WD,Normal +1894,90,RL,65,10926,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,Duplex,1Story,5,5,1959,1959,Hip,CompShg,VinylSd,VinylSd,BrkFace,74,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1678,1678,GasA,TA,Y,SBrkr,1678,0,0,1678,0,0,2,0,6,2,TA,10,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal +1895,20,RL,70,11767,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,5,1956,1956,Hip,CompShg,HdBoard,HdBoard,BrkFace,259,TA,TA,CBlock,TA,TA,No,Rec,546,Unf,0,604,1150,GasA,Ex,Y,SBrkr,1560,0,0,1560,0,0,1,0,2,1,TA,7,Min1,1,TA,Attchd,1956,Unf,1,313,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1896,50,RL,45,8212,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,5,6,1941,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,626,Unf,0,94,720,GasA,Ex,Y,SBrkr,854,444,0,1298,0,0,1,0,3,1,TA,6,Typ,2,Gd,Detchd,1940,Unf,1,256,TA,TA,Y,84,0,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal +1897,50,RH,70,6300,Pave,Pave,Reg,Lvl,AllPub,Corner,Gtl,SWISU,Norm,Norm,1Fam,1.5Fin,5,4,1938,1950,Gable,CompShg,MetalSd,MetalSd,BrkFace,88,TA,TA,PConc,TA,Fa,No,LwQ,832,Unf,0,0,832,GasA,TA,Y,SBrkr,832,436,0,1268,0,0,1,1,3,1,TA,7,Typ,2,Gd,Basment,1938,Unf,1,250,TA,TA,Y,0,0,55,0,0,0,NA,NA,NA,0,7,2009,WD,Abnorml +1898,70,RL,43,5707,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,SWISU,Feedr,Norm,1Fam,2Story,6,6,1935,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,583,583,GasA,Gd,Y,FuseF,647,595,0,1242,0,0,1,1,3,1,TA,6,Typ,1,Gd,Detchd,1926,Unf,1,180,Fa,TA,Y,329,96,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal +1899,30,RL,64,8574,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,6,8,1916,2000,Gable,CompShg,Stucco,Stucco,None,0,Gd,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,816,816,GasA,Ex,Y,SBrkr,1232,0,0,1232,0,0,1,0,3,1,Gd,6,Typ,1,Gd,Detchd,1916,Unf,2,440,TA,TA,Y,0,0,180,0,0,0,NA,NA,NA,0,10,2009,WD,Normal +1900,70,RL,53,7155,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,7,8,1918,1990,Gambrel,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,Fa,Mn,Unf,0,Unf,0,600,600,GasA,Ex,Y,SBrkr,628,600,0,1228,0,0,1,0,3,1,TA,6,Typ,1,Gd,Detchd,1918,Unf,1,215,Fa,TA,Y,0,113,0,0,195,0,NA,MnPrv,NA,0,5,2009,WD,Normal +1901,50,RL,60,13680,Pave,NA,Reg,HLS,AllPub,Inside,Mod,Crawfor,Norm,Norm,1Fam,1.5Fin,5,6,1940,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,ALQ,728,Unf,0,112,840,GasA,Ex,Y,SBrkr,840,727,0,1567,1,0,1,1,2,1,TA,6,Min2,2,TA,Detchd,1961,Unf,2,440,TA,TA,Y,0,21,150,0,0,0,NA,GdPrv,NA,0,2,2009,WD,Normal +1902,20,RL,80,14680,Pave,Grvl,IR1,HLS,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,5,4,1960,1960,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,793,Unf,0,480,1273,GasA,Ex,Y,SBrkr,1273,0,0,1273,0,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1960,Unf,1,307,TA,TA,Y,483,0,0,0,115,0,NA,MnPrv,NA,0,6,2009,WD,Normal +1903,90,RL,NA,8145,Pave,NA,IR1,HLS,AllPub,Corner,Gtl,Crawfor,Norm,Norm,Duplex,2.5Unf,7,6,1940,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,LwQ,246,Unf,0,674,920,GasA,Ex,Y,SBrkr,1240,1240,0,2480,0,0,2,1,5,2,TA,13,Typ,2,Gd,Detchd,1940,Unf,2,400,TA,TA,Y,0,0,57,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1904,20,RL,70,9100,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Feedr,Norm,1Fam,1Story,5,6,1954,1954,Gable,CompShg,BrkFace,BrkFace,None,0,TA,Gd,BrkTil,TA,TA,Mn,Rec,154,ALQ,694,264,1112,GasA,Ex,Y,SBrkr,1112,0,0,1112,1,0,1,0,2,1,TA,6,Typ,1,Gd,Attchd,1954,Unf,1,390,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,10,2009,WD,Family +1905,20,RL,90,13339,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,6,6,1960,1960,Gable,CompShg,HdBoard,Plywood,Stone,132,TA,TA,CBlock,TA,TA,No,LwQ,65,BLQ,875,621,1561,GasA,TA,Y,SBrkr,1561,0,0,1561,1,0,2,0,3,1,TA,6,Typ,1,Gd,Attchd,1960,Fin,2,463,TA,TA,Y,0,148,0,0,120,0,NA,NA,NA,0,5,2009,WD,Normal +1906,50,RL,78,15600,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1.5Fin,5,7,1949,2005,Gable,CompShg,BrkComm,Brk Cmn,None,0,TA,TA,BrkTil,TA,TA,No,BLQ,312,Rec,507,248,1067,GasW,Fa,N,SBrkr,986,537,0,1523,1,0,2,0,3,1,Fa,7,Maj2,1,TA,Attchd,1949,Unf,1,295,TA,TA,Y,0,0,81,0,0,0,NA,NA,NA,0,10,2009,WD,Normal +1907,20,RL,100,17500,Pave,NA,Reg,Bnk,AllPub,Corner,Mod,Crawfor,PosA,Norm,1Fam,1Story,6,5,1954,1954,Gable,CompShg,HdBoard,HdBoard,Stone,420,TA,TA,PConc,TA,TA,Av,LwQ,784,BLQ,435,91,1310,GasA,Ex,Y,SBrkr,1906,0,0,1906,1,0,1,1,3,1,TA,6,Typ,2,Gd,Basment,1954,Unf,2,576,TA,TA,Y,0,201,0,0,0,0,NA,NA,NA,0,1,2009,WD,Normal +1908,160,RM,24,1733,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blueste,Norm,Norm,Twnhs,2Story,6,6,1980,1980,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,516,516,GasA,TA,Y,SBrkr,516,516,0,1032,0,0,1,0,2,1,TA,5,Typ,1,TA,Detchd,1980,Unf,2,452,TA,TA,Y,279,0,0,0,0,0,NA,GdPrv,NA,0,5,2009,WD,Normal +1909,160,RM,24,1488,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blueste,Norm,Norm,TwnhsE,2Story,6,6,1980,1992,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,Gd,TA,Mn,ALQ,471,Unf,0,90,561,GasA,TA,Y,SBrkr,561,668,0,1229,1,0,1,1,2,1,Gd,5,Typ,1,TA,Attchd,1980,Fin,2,462,TA,TA,Y,176,0,0,0,0,0,NA,GdPrv,NA,0,10,2009,WD,Normal +1910,160,RM,24,1612,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blueste,Norm,Norm,Twnhs,2Story,6,6,1980,1980,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,561,561,GasA,TA,Y,SBrkr,561,668,0,1229,0,0,1,1,2,1,TA,5,Typ,1,TA,Attchd,1980,Fin,2,462,TA,TA,Y,154,0,0,0,0,0,NA,MnPrv,NA,0,7,2009,WD,Normal +1911,80,RL,NA,13607,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,SLvl,6,6,1986,1986,Gable,CompShg,VinylSd,VinylSd,BrkFace,242,TA,Gd,CBlock,TA,TA,No,ALQ,454,Unf,0,118,572,GasA,Gd,Y,SBrkr,1182,800,0,1982,1,0,2,1,3,1,TA,6,Typ,1,TA,BuiltIn,1986,Fin,2,501,TA,TA,Y,400,112,0,0,0,0,NA,NA,Shed,1500,4,2009,WD,Normal +1912,20,RL,NA,17597,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,7,9,1971,2009,Hip,CompShg,BrkFace,BrkFace,None,0,Gd,Gd,CBlock,Gd,TA,No,GLQ,803,ALQ,419,581,1803,GasA,TA,Y,SBrkr,2365,0,0,2365,1,0,2,0,3,1,Ex,7,Min1,2,Gd,Attchd,1971,Fin,2,551,TA,TA,Y,200,144,0,0,0,0,NA,GdPrv,NA,0,7,2009,WD,Normal +1913,70,RM,50,8660,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,2Story,5,6,1900,1993,Gambrel,CompShg,AsbShng,AsbShng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,760,760,GasA,Ex,N,SBrkr,928,928,312,2168,0,0,2,0,5,1,Gd,11,Typ,0,NA,Detchd,1998,Unf,2,576,TA,TA,Y,467,160,78,0,0,0,NA,NA,NA,0,12,2009,WD,Normal +1914,30,C (all),60,10200,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,4,6,1925,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,572,572,GasA,Fa,N,FuseP,572,0,0,572,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1940,Unf,1,200,TA,TA,N,0,0,72,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1915,120,RM,44,3843,Pave,NA,IR1,HLS,AllPub,Inside,Mod,Crawfor,Norm,Norm,TwnhsE,1Story,8,5,2007,2008,Hip,CompShg,CemntBd,CmentBd,Stone,174,Ex,TA,PConc,Ex,TA,Gd,GLQ,1476,Unf,0,120,1596,GasA,Ex,Y,SBrkr,1648,0,0,1648,1,1,2,0,2,1,Ex,5,Typ,1,Gd,Attchd,2007,Fin,2,482,TA,TA,Y,162,53,0,153,0,0,NA,NA,NA,0,6,2009,New,Partial +1916,30,NA,109,21780,Grvl,NA,Reg,Lvl,NA,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,2,4,1910,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Fa,Fa,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,N,FuseA,810,0,0,810,0,0,1,0,1,1,TA,4,Min1,0,NA,Detchd,1975,Unf,1,280,TA,TA,N,119,24,0,0,0,0,NA,NA,NA,0,3,2009,ConLD,Normal +1917,60,RL,75,10125,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,2Story,8,5,2000,2001,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Gd,TA,No,ALQ,445,BLQ,250,412,1107,GasA,Ex,Y,SBrkr,1040,1012,0,2052,0,0,2,1,3,1,Gd,7,Typ,1,TA,BuiltIn,2000,Fin,3,642,TA,TA,Y,210,91,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1918,85,RL,75,9750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,SFoyer,6,6,1977,1977,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,Av,ALQ,767,Unf,0,135,902,GasA,Ex,Y,SBrkr,926,0,0,926,1,0,1,0,2,1,TA,5,Typ,1,TA,Attchd,1977,Unf,1,351,TA,TA,Y,319,0,0,0,0,0,NA,MnPrv,NA,0,4,2009,WD,Normal +1919,85,RL,72,9360,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,SFoyer,6,7,1977,1977,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,Av,GLQ,841,LwQ,116,0,957,GasA,TA,Y,SBrkr,1287,0,0,1287,1,0,1,1,2,1,TA,5,Typ,2,Fa,Attchd,1977,RFn,2,541,TA,TA,Y,302,39,0,0,120,0,NA,GdWo,NA,0,11,2009,WD,Normal +1920,20,RL,82,11070,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,5,1991,1991,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,No,BLQ,55,Unf,0,1527,1582,GasA,TA,Y,SBrkr,1595,0,0,1595,1,0,2,0,2,1,TA,5,Typ,0,NA,Detchd,1991,Unf,2,672,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2009,COD,Abnorml +1921,20,RL,113,13438,Pave,NA,IR1,HLS,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,1Story,9,5,2008,2008,Gable,CompShg,CemntBd,CmentBd,Stone,246,Ex,TA,CBlock,Ex,TA,Gd,GLQ,1758,Unf,0,432,2190,GasA,Ex,Y,SBrkr,2036,0,0,2036,1,0,2,0,3,1,Ex,9,Typ,1,Ex,Attchd,2008,Fin,3,780,TA,TA,Y,90,154,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1922,20,RL,79,14463,Pave,NA,IR1,HLS,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,1Story,9,5,2008,2008,Gable,CompShg,CemntBd,CmentBd,BrkFace,406,Ex,TA,PConc,Ex,TA,Gd,GLQ,1115,Unf,0,526,1641,GasA,Ex,Y,SBrkr,1641,0,0,1641,1,0,2,0,3,1,Ex,7,Typ,0,NA,Attchd,2008,Fin,3,885,TA,TA,Y,0,95,0,0,0,0,NA,NA,NA,0,1,2009,WD,Normal +1923,60,RL,NA,9839,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Timber,Norm,Norm,1Fam,2Story,6,8,1980,2006,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,PConc,Gd,TA,No,ALQ,462,Unf,0,250,712,GasA,Ex,Y,SBrkr,1375,862,0,2237,0,0,2,1,3,1,Gd,7,Typ,1,TA,BuiltIn,1980,Fin,2,440,TA,TA,Y,305,24,0,0,0,0,NA,NA,Shed,2500,2,2009,WD,Normal +1924,80,RL,125,14419,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,SLvl,7,5,1987,1989,Hip,CompShg,Plywood,Plywood,BrkFace,310,TA,TA,PConc,Gd,TA,Gd,GLQ,904,ALQ,624,117,1645,GasA,Ex,Y,SBrkr,1479,0,0,1479,2,0,2,1,3,1,Gd,7,Min1,1,Fa,Attchd,1987,Fin,2,578,TA,TA,Y,224,238,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1925,60,RL,75,9157,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,912,912,GasA,Ex,Y,SBrkr,1072,942,0,2014,0,0,2,1,3,1,Gd,9,Typ,0,NA,Attchd,2003,Fin,2,486,TA,TA,Y,124,114,0,0,0,0,NA,NA,NA,0,2,2009,WD,Abnorml +1926,20,RL,85,12633,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,9,5,2007,2007,Hip,CompShg,CemntBd,CmentBd,Stone,290,Ex,TA,PConc,Ex,TA,Gd,GLQ,1640,Unf,0,338,1978,GasA,Ex,Y,SBrkr,1978,0,0,1978,1,0,2,0,2,1,Ex,7,Typ,1,Gd,Attchd,2007,Fin,3,920,TA,TA,Y,308,52,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal +1927,20,RL,75,12518,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,7,1968,1968,Gable,CompShg,HdBoard,HdBoard,BrkFace,182,TA,TA,CBlock,TA,TA,No,ALQ,532,Unf,0,476,1008,GasA,Gd,Y,SBrkr,1008,0,0,1008,0,0,1,0,3,1,Gd,6,Typ,0,NA,Attchd,1968,Unf,1,384,TA,TA,Y,144,0,0,0,0,0,NA,MnPrv,NA,0,4,2009,WD,Normal +1928,20,RL,83,13383,Pave,NA,IR1,Lvl,AllPub,Inside,Mod,Mitchel,Norm,Norm,1Fam,1Story,5,5,1969,2000,Hip,CompShg,HdBoard,HdBoard,BrkFace,176,TA,TA,CBlock,TA,TA,No,BLQ,594,Unf,0,594,1188,GasA,Ex,Y,SBrkr,1404,0,0,1404,0,0,2,0,3,1,TA,7,Typ,1,Po,Attchd,1969,Unf,2,504,TA,TA,Y,0,16,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal +1929,85,RL,50,7689,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,SFoyer,5,8,1972,1972,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,Gd,TA,Av,GLQ,720,BLQ,76,0,796,GasA,Gd,Y,SBrkr,796,0,0,796,0,1,1,0,2,1,TA,4,Typ,0,NA,Detchd,1998,Unf,1,336,TA,TA,Y,138,0,0,0,0,0,NA,MnPrv,NA,0,7,2009,WD,Normal +1930,80,RL,62,7706,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,SLvl,6,5,1993,1996,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Gd,CBlock,Gd,TA,Av,Rec,114,GLQ,270,0,384,GasA,Ex,Y,SBrkr,1091,0,0,1091,0,1,1,0,2,1,TA,5,Typ,0,NA,Attchd,1993,Fin,1,429,TA,TA,Y,280,0,0,0,0,0,NA,NA,Shed,700,8,2009,WD,Normal +1931,85,RL,70,7669,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,SFoyer,5,6,1992,1993,Gable,CompShg,HdBoard,Wd Shng,None,0,TA,TA,PConc,Gd,TA,Av,GLQ,718,LwQ,110,0,828,GasA,TA,Y,SBrkr,883,0,0,883,1,0,1,0,2,1,TA,5,Typ,1,Fa,Detchd,1998,Unf,2,698,TA,TA,Y,100,32,0,0,0,0,NA,GdPrv,NA,0,6,2009,WD,Normal +1932,60,RL,62,10429,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,2Story,5,5,1992,1992,Gable,CompShg,HdBoard,Wd Shng,None,0,TA,TA,PConc,Gd,TA,No,ALQ,330,Unf,0,294,624,GasA,TA,Y,SBrkr,624,663,0,1287,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,2001,Unf,2,440,TA,TA,Y,150,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal +1933,60,RL,70,10457,Pave,NA,IR1,Lvl,AllPub,Inside,Mod,Mitchel,Norm,Norm,1Fam,2Story,5,7,1969,1969,Gable,CompShg,VinylSd,VinylSd,BrkFace,178,Gd,Ex,CBlock,TA,TA,Gd,BLQ,496,LwQ,288,0,784,GasA,Ex,Y,SBrkr,784,848,0,1632,0,0,1,1,4,1,TA,7,Typ,1,TA,Attchd,1969,RFn,2,898,TA,TA,Y,0,173,368,0,0,0,NA,MnPrv,NA,0,4,2009,WD,Normal +1934,60,RL,72,8702,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1997,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,TA,TA,No,BLQ,706,Unf,0,220,926,GasA,Ex,Y,SBrkr,926,678,0,1604,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1997,Fin,2,470,TA,TA,Y,0,36,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +1935,60,RL,65,8139,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1995,1996,Gable,CompShg,VinylSd,VinylSd,BrkFace,119,TA,TA,PConc,Gd,TA,No,ALQ,476,Unf,0,204,680,GasA,Gd,Y,SBrkr,680,790,0,1470,0,0,2,1,3,1,TA,7,Typ,1,TA,BuiltIn,1995,Fin,2,420,TA,TA,Y,192,49,0,0,0,0,NA,NA,NA,0,10,2008,WD,Normal +1936,60,RL,59,9535,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Gd,GLQ,851,Unf,0,75,926,GasA,Ex,Y,SBrkr,926,678,0,1604,0,0,2,1,3,1,TA,7,Typ,0,NA,Attchd,1998,Fin,2,472,TA,TA,Y,100,82,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +1937,60,RL,NA,15038,Pave,NA,IR2,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1996,1996,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,No,Rec,138,Unf,0,778,916,GasA,Gd,Y,SBrkr,916,720,0,1636,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1996,Fin,2,386,TA,TA,Y,168,84,0,0,0,0,NA,NA,NA,0,11,2008,WD,Normal +1938,20,RL,53,14137,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,1Story,5,5,1996,1997,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,450,Unf,0,898,1348,GasA,Gd,Y,SBrkr,1384,0,0,1384,1,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,1996,Unf,2,404,TA,TA,Y,0,39,0,0,0,0,NA,NA,NA,0,11,2008,WD,Normal +1939,120,RL,45,6264,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,StoneBr,Norm,Norm,1Fam,1Story,8,5,1997,1997,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Ex,TA,Mn,GLQ,656,Unf,0,1008,1664,GasA,Ex,Y,SBrkr,1682,0,0,1682,1,0,1,1,1,1,Gd,6,Min1,1,TA,Attchd,1997,Fin,2,528,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +1940,120,RL,39,5070,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,1992,1992,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,1280,1280,GasA,Ex,Y,SBrkr,1280,0,0,1280,0,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,1992,RFn,2,506,TA,TA,Y,0,82,0,0,144,0,NA,NA,NA,0,8,2008,WD,Normal +1941,60,RL,73,11184,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,932,932,GasA,Gd,Y,SBrkr,932,701,0,1633,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1998,Fin,2,460,TA,TA,Y,0,39,0,0,0,0,NA,NA,NA,0,4,2008,WD,Family +1942,60,RL,NA,14067,Pave,NA,Reg,Lvl,AllPub,FR3,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1991,1991,Gable,CompShg,HdBoard,HdBoard,BrkFace,194,TA,TA,PConc,Gd,TA,No,ALQ,504,Unf,0,332,836,GasA,Gd,Y,SBrkr,851,858,0,1709,1,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,1991,Fin,2,416,TA,TA,Y,0,40,0,0,0,0,NA,GdPrv,NA,0,9,2008,WD,Normal +1943,120,RL,65,5950,Pave,NA,IR1,HLS,AllPub,Inside,Mod,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,1989,1989,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,Gd,GLQ,319,Unf,0,1018,1337,GasA,Gd,Y,SBrkr,1337,0,0,1337,1,0,2,0,2,1,Gd,5,Typ,1,TA,Attchd,1989,RFn,2,462,TA,TA,Y,0,73,154,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +1944,60,RL,101,13543,Pave,NA,IR1,HLS,AllPub,Corner,Gtl,StoneBr,Norm,Norm,1Fam,2Story,8,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,Stone,130,Gd,TA,PConc,Ex,TA,Gd,GLQ,16,Unf,0,1152,1168,GasA,Ex,Y,SBrkr,1168,1332,0,2500,0,0,3,1,5,1,Ex,9,Typ,1,Gd,BuiltIn,2005,Fin,3,683,TA,TA,Y,192,32,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +1945,20,RL,53,15401,Pave,NA,IR1,HLS,AllPub,CulDSac,Gtl,StoneBr,Norm,Norm,1Fam,1Story,9,5,2004,2004,Hip,CompShg,VinylSd,VinylSd,BrkFace,296,Ex,TA,PConc,Ex,TA,Gd,GLQ,1337,Unf,0,547,1884,GasA,Ex,Y,SBrkr,1884,0,0,1884,1,0,2,0,2,1,Ex,7,Typ,1,Gd,Attchd,2004,Fin,3,670,TA,TA,Y,214,76,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal +1946,20,RL,NA,31220,Pave,NA,IR1,Bnk,NA,FR2,Gtl,Gilbert,Feedr,Norm,1Fam,1Story,6,2,1952,1952,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1632,1632,GasA,TA,Y,FuseA,1474,0,0,1474,0,0,1,0,3,1,TA,7,Min2,2,Gd,Attchd,1952,Unf,2,495,TA,TA,Y,0,0,144,0,0,0,NA,NA,Shed,750,5,2008,WD,Normal +1947,120,RL,60,8118,Pave,NA,Reg,HLS,AllPub,Inside,Gtl,StoneBr,PosN,PosN,TwnhsE,1Story,9,5,2007,2007,Hip,CompShg,MetalSd,MetalSd,BrkFace,178,Ex,TA,PConc,Ex,TA,Gd,GLQ,1034,Unf,0,676,1710,GasA,Ex,Y,SBrkr,1710,0,0,1710,1,0,2,0,2,1,Ex,6,Typ,1,Gd,Attchd,2007,RFn,2,557,TA,TA,Y,156,48,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +1948,20,RL,NA,47280,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,1Story,6,5,1950,1950,Hip,CompShg,AsbShng,AsbShng,BrkFace,44,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1488,1488,GasA,Gd,Y,SBrkr,1488,0,0,1488,0,0,2,1,3,1,TA,6,Typ,1,TA,Attchd,1950,RFn,2,738,TA,TA,Y,0,0,180,0,0,0,NA,NA,NA,0,7,2008,WD,Family +1949,20,RL,63,12680,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,7,6,1988,1988,Gable,CompShg,Plywood,Wd Sdng,BrkFace,102,Gd,TA,CBlock,Gd,Gd,Mn,GLQ,983,Unf,0,692,1675,GasA,Ex,Y,SBrkr,1688,0,0,1688,1,0,2,0,2,1,Ex,6,Typ,1,Ex,Attchd,1988,RFn,2,528,TA,TA,Y,0,48,0,0,141,0,NA,NA,NA,0,6,2008,WD,Normal +1950,20,RL,NA,10825,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,7,7,1983,1983,Gable,CompShg,WdShing,Plywood,BrkFace,174,Gd,TA,CBlock,Gd,TA,Mn,GLQ,747,Unf,0,513,1260,GasA,TA,Y,SBrkr,1260,0,0,1260,1,0,2,0,3,1,TA,6,Typ,0,NA,Attchd,1983,Unf,2,598,TA,TA,Y,152,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +1951,20,RL,56,18559,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NWAmes,Norm,Norm,1Fam,1Story,7,5,1978,1978,Hip,CompShg,Plywood,Plywood,BrkFace,383,Gd,Gd,CBlock,Gd,TA,No,GLQ,1206,Rec,186,656,2048,GasA,TA,Y,SBrkr,2064,0,0,2064,1,0,2,0,3,1,Gd,7,Typ,2,Fa,Attchd,1978,Fin,2,550,TA,TA,Y,200,0,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal +1952,20,RL,85,14450,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,7,5,1979,1979,Hip,CompShg,Plywood,Plywood,BrkFace,194,Gd,TA,CBlock,Gd,Fa,No,ALQ,864,LwQ,449,469,1782,GasA,TA,Y,SBrkr,1782,0,0,1782,0,1,2,0,3,1,Gd,6,Typ,1,TA,Attchd,1979,Fin,2,551,TA,TA,Y,467,0,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal +1953,20,RL,90,13068,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,5,1976,1976,Hip,CompShg,HdBoard,HdBoard,BrkFace,621,TA,TA,PConc,Gd,TA,No,ALQ,890,Rec,48,273,1211,GasA,TA,Y,SBrkr,1211,0,0,1211,1,0,2,0,3,1,Gd,6,Typ,1,Po,Attchd,1976,Fin,2,461,TA,TA,Y,0,0,0,174,0,0,NA,MnPrv,NA,0,11,2008,WD,Normal +1954,60,RL,80,10400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,7,6,1980,1988,Gable,CompShg,HdBoard,HdBoard,BrkFace,280,TA,TA,CBlock,Gd,TA,Mn,Unf,0,Unf,0,738,738,GasA,TA,Y,SBrkr,1277,767,0,2044,0,0,2,1,3,1,TA,7,Min1,1,TA,Attchd,1980,Unf,2,489,TA,TA,Y,28,73,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal +1955,60,RL,75,9743,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,5,6,1969,1969,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,Fa,No,BLQ,280,Unf,0,440,720,GasA,Gd,Y,SBrkr,720,588,0,1308,0,0,1,1,3,1,TA,7,Typ,0,NA,Detchd,1969,Unf,2,484,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +1956,60,RL,NA,12511,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NWAmes,Norm,Norm,1Fam,2Story,7,7,1978,1978,Mansard,WdShake,Plywood,Plywood,BrkFace,168,Gd,TA,PConc,Gd,TA,No,ALQ,988,Unf,0,432,1420,GasA,Ex,Y,SBrkr,1420,1420,0,2840,0,1,2,1,4,1,Gd,8,Min2,2,Gd,Attchd,1978,Fin,4,1314,TA,Gd,Y,0,16,0,0,208,0,NA,MnPrv,NA,0,12,2008,WD,Normal +1957,20,RL,80,10400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,5,1976,1976,Gable,CompShg,HdBoard,HdBoard,BrkFace,120,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1444,1444,GasA,TA,Y,SBrkr,1444,0,0,1444,0,0,2,0,2,1,TA,5,Typ,1,Gd,Attchd,1976,Unf,2,473,TA,TA,Y,0,24,0,0,0,0,NA,GdWo,NA,0,4,2008,WD,Normal +1958,60,RL,NA,14311,Pave,NA,IR1,Lvl,AllPub,FR3,Gtl,NWAmes,Norm,Norm,1Fam,2Story,8,5,1996,1996,Gable,CompShg,VinylSd,VinylSd,BrkFace,402,Gd,TA,PConc,Gd,TA,No,GLQ,1023,Unf,0,213,1236,GasA,Ex,Y,SBrkr,1236,1104,0,2340,1,0,2,1,4,1,Gd,9,Typ,1,Gd,Attchd,1996,RFn,3,787,TA,TA,Y,192,180,218,0,0,0,NA,GdPrv,NA,0,6,2008,WD,Normal +1959,90,RL,60,9000,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NAmes,Norm,Norm,Duplex,2Story,5,5,1974,1974,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,Gd,TA,Mn,Unf,0,Unf,0,896,896,GasA,TA,Y,SBrkr,896,896,0,1792,0,0,2,2,4,2,TA,8,Typ,0,NA,Detchd,1982,Unf,2,480,TA,TA,Y,0,45,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +1960,20,RL,68,10295,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,6,1969,1969,Gable,CompShg,HdBoard,HdBoard,BrkFace,72,TA,TA,CBlock,Gd,TA,Mn,Rec,252,Unf,0,684,936,GasA,TA,Y,SBrkr,936,0,0,936,0,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1969,Unf,1,288,TA,TA,Y,16,0,0,0,0,0,NA,NA,NA,0,9,2008,COD,Normal +1961,20,RL,63,7560,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1971,1971,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,Gd,TA,No,Rec,119,ALQ,613,132,864,GasA,TA,Y,SBrkr,864,0,0,864,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1977,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +1962,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,5,1973,1973,Gable,CompShg,HdBoard,HdBoard,BrkFace,359,TA,TA,CBlock,TA,TA,No,LwQ,458,Unf,0,25,483,GasA,TA,Y,SBrkr,483,504,0,987,0,1,1,1,2,1,TA,5,Typ,0,NA,Detchd,1973,Unf,1,264,TA,TA,Y,52,0,0,0,0,0,NA,NA,NA,0,2,2008,WD,Normal +1963,160,RM,21,1890,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,6,1972,1972,Gable,CompShg,HdBoard,HdBoard,BrkFace,422,TA,TA,CBlock,TA,TA,No,LwQ,483,Unf,0,0,483,GasA,Gd,Y,SBrkr,483,504,0,987,0,0,1,1,2,1,TA,5,Typ,0,NA,Detchd,1975,Unf,1,352,TA,TA,Y,411,0,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +1964,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,5,5,1972,1972,Gable,CompShg,HdBoard,HdBoard,BrkFace,356,TA,TA,CBlock,TA,TA,No,Rec,350,Unf,0,280,630,GasA,TA,Y,SBrkr,630,672,0,1302,0,0,2,1,3,1,TA,6,Typ,0,NA,Detchd,1972,Unf,1,264,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,12,2008,WD,Normal +1965,160,RL,24,2308,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NPkVill,Norm,Norm,TwnhsE,2Story,6,6,1975,1975,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,286,LwQ,294,275,855,GasA,Gd,Y,SBrkr,855,601,0,1456,0,0,2,1,4,1,TA,7,Typ,0,NA,Attchd,1975,RFn,2,460,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +1966,120,RL,24,2529,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NPkVill,Norm,Norm,Twnhs,1Story,7,6,1977,1977,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,378,Unf,0,677,1055,GasA,Fa,Y,SBrkr,1055,0,0,1055,0,0,2,0,2,1,TA,4,Typ,0,NA,Attchd,1977,Unf,2,440,TA,TA,Y,0,38,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal +1967,20,RL,98,12704,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2007,2007,Hip,CompShg,VinylSd,VinylSd,Stone,302,Gd,TA,PConc,Ex,TA,No,GLQ,1012,Unf,0,570,1582,GasA,Ex,Y,SBrkr,1582,0,0,1582,1,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2007,Fin,3,905,TA,TA,Y,209,95,0,0,0,0,NA,NA,NA,0,1,2008,New,Partial +1968,20,RL,105,13693,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2007,2007,Hip,CompShg,VinylSd,VinylSd,Stone,554,Gd,TA,PConc,Ex,TA,Gd,GLQ,1728,BLQ,495,195,2418,GasA,Ex,Y,SBrkr,2464,0,0,2464,1,0,2,1,4,1,Ex,9,Typ,1,Ex,Attchd,2007,Fin,3,650,TA,TA,Y,358,78,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal +1969,20,RL,104,14418,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2007,2007,Hip,CompShg,VinylSd,VinylSd,BrkFace,480,Ex,TA,PConc,Ex,TA,Gd,GLQ,1375,Unf,0,575,1950,GasA,Ex,Y,SBrkr,1950,0,0,1950,1,0,2,0,2,1,Ex,7,Typ,1,Gd,Attchd,2007,Fin,3,706,TA,TA,Y,156,207,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +1970,60,RL,108,13418,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,270,Gd,TA,PConc,Ex,TA,Gd,GLQ,1420,Unf,0,430,1850,GasA,Ex,Y,SBrkr,1850,898,0,2748,1,0,2,1,4,1,Ex,9,Typ,1,Gd,BuiltIn,2006,Fin,3,850,TA,TA,Y,212,182,0,0,0,0,NA,NA,NA,0,10,2008,WD,Abnorml +1971,60,RL,96,12539,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,PosN,Norm,1Fam,2Story,10,5,2005,2006,Hip,CompShg,CemntBd,CmentBd,BrkFace,468,Ex,TA,PConc,Ex,TA,Gd,GLQ,1082,Unf,0,538,1620,GasA,Ex,Y,SBrkr,1632,1158,0,2790,1,0,2,1,4,1,Ex,10,Typ,1,Ex,BuiltIn,2005,Fin,4,1150,TA,TA,Y,30,200,0,0,192,0,NA,NA,NA,0,6,2008,WD,Normal +1972,60,RL,102,12151,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2005,2005,Gable,CompShg,CemntBd,CmentBd,BrkFace,368,Gd,TA,PConc,Ex,TA,Av,GLQ,1249,Unf,0,165,1414,GasA,Ex,Y,SBrkr,1414,917,0,2331,1,0,2,1,3,1,Ex,9,Typ,1,Gd,BuiltIn,2005,Fin,3,1003,TA,TA,Y,192,63,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal +1973,60,RL,74,8899,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2007,2007,Hip,CompShg,VinylSd,VinylSd,Stone,108,Ex,TA,PConc,Gd,TA,Av,GLQ,40,Unf,0,908,948,GasA,Ex,Y,SBrkr,948,1140,0,2088,0,0,2,1,4,1,Gd,10,Typ,1,Gd,BuiltIn,2007,Fin,3,656,TA,TA,Y,100,24,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +1974,60,RL,85,10574,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,Stone,126,Gd,TA,PConc,Ex,TA,No,GLQ,856,Unf,0,292,1148,GasA,Ex,Y,SBrkr,1170,1162,0,2332,1,0,2,1,4,1,Ex,9,Typ,1,Gd,BuiltIn,2004,Fin,3,756,TA,TA,Y,224,142,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +1975,20,RL,106,12720,Pave,NA,Reg,HLS,AllPub,Inside,Mod,NridgHt,Norm,Norm,1Fam,1Story,10,5,2003,2003,Hip,CompShg,MetalSd,MetalSd,Stone,680,Ex,TA,PConc,Ex,TA,Gd,GLQ,2257,Unf,0,278,2535,GasA,Ex,Y,SBrkr,2470,0,0,2470,2,0,1,1,1,1,Ex,7,Typ,2,Gd,Attchd,2003,Fin,3,789,TA,TA,Y,154,65,0,0,216,144,Ex,NA,NA,0,2,2008,WD,Normal +1976,20,RL,92,10845,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,504,Gd,TA,PConc,Gd,TA,Mn,GLQ,1149,Unf,0,454,1603,GasA,Ex,Y,SBrkr,1575,0,0,1575,1,0,2,0,2,1,Gd,7,Typ,1,TA,Attchd,2003,Fin,3,732,TA,TA,Y,216,28,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +1977,60,RL,130,16900,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2001,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,1110,Gd,TA,PConc,Ex,TA,Mn,GLQ,1075,Unf,0,404,1479,GasA,Ex,Y,SBrkr,1515,1134,0,2649,1,0,2,1,4,1,Gd,10,Typ,1,TA,Attchd,2001,Fin,3,746,TA,TA,Y,0,60,0,0,0,0,NA,NA,NA,0,1,2008,WD,Normal +1978,60,RL,112,16451,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,221,Gd,TA,PConc,Ex,TA,Gd,Unf,0,Unf,0,1765,1765,GasA,Ex,Y,SBrkr,1804,886,0,2690,0,0,2,1,4,1,Gd,9,Typ,1,Gd,BuiltIn,2003,Fin,3,795,TA,TA,Y,268,58,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +1979,120,RL,58,10110,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,9,5,2008,2008,Hip,CompShg,MetalSd,MetalSd,BrkFace,492,Ex,TA,PConc,Gd,TA,No,GLQ,372,Unf,0,1486,1858,GasA,Ex,Y,SBrkr,1866,0,0,1866,1,0,2,0,2,1,Ex,7,Typ,1,Gd,Attchd,2008,Fin,3,870,TA,TA,Y,0,48,0,0,0,0,NA,NA,NA,0,11,2008,New,Partial +1980,120,RL,135,12304,Pave,NA,IR3,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,Stone,144,Gd,TA,PConc,Gd,TA,No,GLQ,20,Unf,0,1347,1367,GasA,Ex,Y,SBrkr,1367,0,0,1367,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2005,RFn,2,484,TA,TA,Y,0,33,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +1981,120,RL,89,8232,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,9,5,2007,2008,Hip,CompShg,MetalSd,MetalSd,BrkFace,714,Ex,TA,PConc,Ex,TA,No,GLQ,1204,Unf,0,596,1800,GasA,Ex,Y,SBrkr,1800,0,0,1800,1,0,2,0,2,1,Ex,6,Typ,1,Gd,Attchd,2008,RFn,3,944,TA,TA,Y,210,0,0,0,0,0,NA,NA,NA,0,6,2008,New,Partial +1982,120,RL,48,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,8,5,2006,2007,Hip,CompShg,MetalSd,MetalSd,BrkFace,176,Gd,TA,PConc,Gd,TA,No,GLQ,846,Unf,0,496,1342,GasA,Ex,Y,SBrkr,1342,0,0,1342,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2007,Fin,2,550,TA,TA,Y,0,35,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +1983,120,RL,48,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,8,5,2006,2007,Hip,CompShg,MetalSd,MetalSd,BrkFace,196,Gd,TA,PConc,Gd,TA,No,GLQ,24,Unf,0,1318,1342,GasA,Ex,Y,SBrkr,1342,0,0,1342,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2007,RFn,2,550,TA,TA,Y,0,35,0,0,0,0,NA,NA,NA,0,2,2008,WD,Normal +1984,160,RL,36,2448,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,Twnhs,2Story,7,5,2003,2004,Gable,CompShg,VinylSd,Wd Shng,Stone,106,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,764,764,GasA,Ex,Y,SBrkr,764,862,0,1626,0,0,2,1,2,1,Gd,6,Typ,0,NA,BuiltIn,2003,RFn,2,474,TA,TA,Y,0,27,0,0,0,0,NA,NA,NA,0,10,2008,WD,Normal +1985,120,RL,NA,3940,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,143,Gd,TA,PConc,Gd,TA,Gd,GLQ,1073,Unf,0,342,1415,GasA,Ex,Y,SBrkr,1455,0,0,1455,1,0,2,0,2,1,Gd,6,Typ,1,TA,Attchd,2003,Fin,3,644,TA,TA,Y,156,20,0,0,144,0,NA,NA,NA,0,8,2008,WD,Normal +1986,120,RM,NA,3940,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2004,2004,Hip,CompShg,VinylSd,VinylSd,BrkFace,24,Gd,TA,PConc,Gd,TA,No,GLQ,1087,Unf,0,306,1393,GasA,Ex,Y,SBrkr,1576,0,0,1576,1,0,2,0,2,1,Gd,7,Typ,1,TA,Attchd,2004,RFn,3,668,TA,TA,Y,143,20,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +1987,20,RL,53,3710,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,1Fam,1Story,7,5,2007,2008,Gable,CompShg,WdShing,Wd Shng,BrkFace,20,Gd,TA,PConc,Gd,TA,Gd,Unf,0,Unf,0,1146,1146,GasA,Ex,Y,SBrkr,1246,0,0,1246,0,0,2,0,2,1,Gd,5,Typ,1,Gd,Attchd,2007,Fin,2,428,TA,TA,Y,100,24,0,0,0,0,NA,NA,NA,0,3,2008,New,Partial +1988,60,RL,80,9024,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,789,789,GasA,Ex,Y,SBrkr,813,702,0,1515,0,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2004,Fin,2,393,TA,TA,Y,0,75,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +1989,60,RL,NA,8010,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2002,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,840,840,GasA,Ex,Y,SBrkr,840,880,0,1720,0,0,2,1,3,1,Gd,7,Typ,1,Gd,BuiltIn,2002,Fin,2,400,TA,TA,Y,138,48,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +1990,60,RL,NA,8396,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,196,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,847,847,GasA,Ex,Y,SBrkr,847,1139,0,1986,0,0,2,1,4,1,Gd,9,Typ,1,Gd,BuiltIn,2003,Fin,2,434,TA,TA,Y,120,48,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +1991,120,RL,55,7301,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,7,6,2007,2008,Gable,CompShg,VinylSd,VinylSd,Stone,176,Gd,TA,PConc,Gd,TA,No,GLQ,876,Unf,0,474,1350,GasA,Ex,Y,SBrkr,1358,0,0,1358,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2008,RFn,2,484,TA,TA,Y,192,26,0,0,0,0,NA,NA,NA,0,11,2008,New,Partial +1992,60,RL,71,8220,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2000,2001,Gable,CompShg,VinylSd,VinylSd,BrkFace,647,Gd,TA,PConc,Gd,TA,Av,GLQ,544,Unf,0,438,982,GasA,Ex,Y,SBrkr,1008,884,0,1892,0,0,2,1,3,1,TA,8,Typ,1,TA,Attchd,2000,RFn,2,431,TA,TA,Y,108,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +1993,60,RL,NA,7750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,RRAn,Norm,1Fam,2Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,NA,NA,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,707,707,GasA,Ex,Y,SBrkr,707,707,0,1414,0,0,2,1,3,1,Gd,6,Typ,1,Gd,Attchd,2002,Fin,2,403,TA,TA,Y,100,35,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +1994,60,RL,41,12460,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,Gilbert,RRAn,Norm,1Fam,2Story,7,5,1999,2000,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,870,Unf,0,167,1037,GasA,Ex,Y,SBrkr,1037,1285,0,2322,0,0,2,1,4,1,TA,8,Typ,1,TA,BuiltIn,1999,Fin,2,400,TA,TA,Y,144,44,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +1995,60,RL,77,8390,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,831,831,GasA,Ex,Y,SBrkr,873,778,0,1651,0,0,2,1,3,1,TA,7,Typ,1,TA,BuiltIn,1999,Fin,2,450,TA,TA,Y,0,103,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +1996,75,RL,84,9660,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2.5Unf,8,5,1997,1997,Hip,CompShg,HdBoard,HdBoard,BrkFace,1290,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1173,1173,GasA,Ex,Y,SBrkr,1182,1017,0,2199,0,0,2,1,3,1,Gd,9,Typ,1,TA,Attchd,1997,Fin,2,516,TA,TA,Y,0,131,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal +1997,60,RL,NA,11000,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NoRidge,Norm,Norm,1Fam,2Story,9,5,2000,2000,Hip,CompShg,VinylSd,VinylSd,BrkFace,295,Gd,TA,PConc,Ex,TA,Mn,Unf,0,Unf,0,1519,1519,GasA,Ex,Y,SBrkr,1533,639,0,2172,0,0,2,1,4,1,Ex,8,Typ,1,TA,BuiltIn,2000,RFn,3,687,TA,TA,Y,162,153,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +1998,20,RL,136,11675,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,1Story,8,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,495,Gd,TA,PConc,Gd,TA,Av,GLQ,1660,Unf,0,322,1982,GasA,Ex,Y,SBrkr,2006,0,0,2006,1,0,2,0,2,1,Gd,5,Typ,1,TA,Attchd,1998,Fin,3,938,TA,TA,Y,144,33,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +1999,60,RL,97,10990,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NoRidge,Norm,Norm,1Fam,2Story,7,5,1996,1997,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,No,GLQ,851,Unf,0,213,1064,GasA,Ex,Y,SBrkr,1064,1061,0,2125,1,0,2,1,4,1,Gd,12,Typ,2,TA,Attchd,1996,RFn,2,576,TA,TA,Y,168,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2000,60,RL,NA,11929,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,7,1995,1995,Gable,CompShg,VinylSd,VinylSd,BrkFace,466,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1242,1242,GasA,Ex,Y,SBrkr,1251,1250,0,2501,0,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1995,RFn,3,751,TA,TA,Y,192,87,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2001,60,RL,91,10010,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,7,5,1993,1994,Hip,WdShake,VinylSd,VinylSd,BrkFace,320,Gd,TA,PConc,Gd,TA,Av,BLQ,228,GLQ,852,0,1080,GasA,Ex,Y,SBrkr,1108,1089,0,2197,1,0,2,1,4,1,Gd,9,Typ,1,Gd,Attchd,1993,Fin,3,783,TA,TA,Y,385,99,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2002,20,RL,74,13253,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,RRAn,Norm,1Fam,1Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,128,Gd,TA,PConc,Ex,TA,No,GLQ,1096,Unf,0,482,1578,GasA,Gd,Y,SBrkr,1578,0,0,1578,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2006,Unf,3,642,TA,TA,Y,0,26,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2003,60,RL,73,9801,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,156,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1341,1341,GasA,Ex,Y,SBrkr,1341,520,0,1861,0,0,3,0,3,1,Gd,7,Typ,1,Gd,BuiltIn,2007,RFn,3,851,TA,TA,Y,144,60,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2004,60,RL,80,9428,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2007,2008,Hip,CompShg,VinylSd,VinylSd,Stone,310,Gd,TA,PConc,Gd,TA,Av,GLQ,729,Unf,0,226,955,GasA,Ex,Y,SBrkr,955,919,0,1874,1,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2007,Fin,3,880,TA,TA,Y,168,108,0,0,0,0,NA,NA,NA,0,2,2008,New,Partial +2005,20,RL,87,10037,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Somerst,Feedr,Norm,1Fam,1Story,8,5,2006,2007,Hip,CompShg,VinylSd,VinylSd,NA,NA,Gd,TA,PConc,Ex,TA,No,GLQ,666,Unf,0,794,1460,GasA,Ex,Y,SBrkr,1460,0,0,1460,0,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2006,Fin,2,480,TA,TA,Y,0,20,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal +2006,20,FV,72,8640,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2007,2008,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,24,Unf,0,1339,1363,GasA,Ex,Y,SBrkr,1372,0,0,1372,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2008,RFn,2,588,TA,TA,Y,192,113,0,0,0,0,NA,NA,NA,0,7,2008,New,Partial +2007,20,FV,85,10625,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,BrkFace,292,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1660,1660,GasA,Ex,Y,SBrkr,1660,0,0,1660,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2007,Fin,3,660,TA,TA,Y,133,120,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2008,20,FV,62,7500,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2007,2008,Gable,CompShg,CemntBd,CmentBd,Stone,210,Gd,TA,PConc,Gd,TA,No,GLQ,902,Unf,0,316,1218,GasA,Ex,Y,SBrkr,1218,0,0,1218,1,0,2,0,2,1,Gd,6,Typ,0,NA,Attchd,2008,Fin,2,462,TA,TA,Y,168,168,0,0,0,0,NA,NA,NA,0,4,2008,New,Partial +2009,60,RL,68,10110,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Mn,GLQ,80,ALQ,555,200,835,GasA,Ex,Y,SBrkr,835,861,0,1696,1,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2003,RFn,2,542,TA,TA,Y,143,66,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2010,60,RL,67,12774,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,95,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,835,835,GasA,Ex,Y,SBrkr,835,828,0,1663,0,0,2,1,3,1,Gd,8,Typ,0,NA,Attchd,2003,RFn,2,478,TA,TA,Y,168,68,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2011,20,RL,63,13072,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,RRAe,Norm,1Fam,1Story,6,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,126,TA,TA,PConc,Gd,Gd,No,GLQ,80,Unf,0,1095,1175,GasA,Ex,Y,SBrkr,1175,0,0,1175,1,0,1,0,3,1,Gd,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,90,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2012,20,RL,81,9260,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,1Fam,1Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,1162,1162,GasA,Ex,Y,SBrkr,1162,0,0,1162,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2007,Fin,2,483,TA,TA,Y,0,32,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal +2013,60,RL,65,8453,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,5,1995,1995,Gable,CompShg,VinylSd,VinylSd,BrkFace,38,Gd,TA,PConc,Gd,TA,No,GLQ,362,Unf,0,392,754,GasA,Ex,Y,SBrkr,754,855,0,1609,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,1995,RFn,2,525,TA,TA,Y,0,70,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2014,60,RL,50,8480,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,5,1993,1994,Gable,CompShg,HdBoard,HdBoard,BrkFace,120,Gd,TA,PConc,Gd,TA,No,GLQ,602,Unf,0,284,886,GasA,Ex,Y,SBrkr,886,794,0,1680,0,1,2,1,3,1,Gd,7,Typ,0,NA,Attchd,1993,RFn,2,474,TA,TA,Y,144,96,0,0,0,0,NA,NA,NA,0,10,2008,WD,Normal +2015,60,RL,43,14565,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,1994,1995,Gable,CompShg,VinylSd,VinylSd,BrkFace,145,Gd,TA,PConc,Gd,TA,Av,GLQ,537,Unf,0,295,832,GasA,Ex,Y,SBrkr,832,825,0,1657,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,1994,RFn,2,483,TA,TA,Y,144,74,0,0,0,0,NA,NA,Shed,2000,11,2008,WD,Normal +2016,60,RL,65,8450,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,472,Unf,0,355,827,GasA,Ex,Y,SBrkr,827,850,0,1677,1,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2001,RFn,2,627,TA,TA,Y,0,68,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal +2017,60,RL,75,8285,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,1992,1992,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,397,Unf,0,439,836,GasA,Gd,Y,SBrkr,844,893,0,1737,0,1,2,1,3,1,Gd,7,Typ,0,NA,Attchd,1992,Fin,2,506,TA,TA,Y,192,85,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2018,20,RL,70,9100,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,RRAe,Norm,1Fam,1Story,5,5,1963,1963,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,Gd,No,BLQ,53,ALQ,799,132,984,GasA,TA,Y,SBrkr,984,0,0,984,1,0,1,0,3,1,TA,5,Typ,1,TA,Attchd,1963,RFn,1,384,TA,TA,Y,145,56,0,0,0,0,NA,MnPrv,Shed,400,8,2008,WD,Normal +2019,20,RL,75,8100,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,5,8,1961,2007,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,764,Unf,0,100,864,GasA,Ex,Y,SBrkr,864,0,0,864,1,0,1,0,3,1,Gd,5,Typ,1,TA,Detchd,1962,Unf,1,420,TA,TA,Y,132,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2020,190,RL,65,8450,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,RRAe,Norm,2fmCon,1Story,5,5,1968,1968,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,Fa,Mn,ALQ,890,Unf,0,0,890,GasA,Gd,N,SBrkr,890,0,0,890,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1970,Unf,1,308,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2021,20,RL,60,6360,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1963,1963,Hip,CompShg,Wd Sdng,HdBoard,None,0,TA,TA,CBlock,Gd,Gd,No,ALQ,489,Unf,0,375,864,GasA,TA,Y,SBrkr,864,0,0,864,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1963,Unf,1,276,TA,TA,Y,0,0,0,0,0,0,NA,NA,Shed,650,1,2008,COD,Abnorml +2022,20,RL,95,19508,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Veenker,Norm,Norm,1Fam,1Story,6,5,1974,1974,Gable,CompShg,HdBoard,ImStucc,BrkFace,144,TA,TA,CBlock,TA,TA,Av,ALQ,800,Unf,0,630,1430,GasA,TA,Y,SBrkr,1430,0,0,1430,0,1,2,0,3,1,TA,6,Typ,2,TA,Attchd,1974,Unf,2,484,TA,TA,Y,117,108,165,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2023,50,RL,70,10759,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Feedr,Norm,1Fam,1.5Fin,5,4,1972,1972,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Gd,CBlock,Gd,TA,No,LwQ,190,ALQ,811,0,1001,GasA,TA,Y,SBrkr,1001,640,0,1641,0,0,2,0,4,1,TA,5,Typ,1,Gd,Detchd,1972,Unf,2,490,TA,TA,Y,0,0,92,0,0,0,NA,GdPrv,NA,0,7,2008,WD,Normal +2024,60,RL,NA,9205,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,6,5,1990,1991,Hip,CompShg,HdBoard,HdBoard,BrkFace,304,Gd,TA,PConc,Gd,TA,No,ALQ,704,Unf,0,226,930,GasA,Ex,Y,SBrkr,1364,1319,0,2683,1,0,2,1,4,1,Gd,9,Typ,2,Gd,Attchd,1990,RFn,2,473,TA,TA,Y,237,251,0,0,196,0,NA,NA,NA,0,6,2008,WD,Normal +2025,60,RL,105,11025,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,1.5Fin,9,5,1993,1994,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,568,Gd,TA,PConc,Gd,TA,Gd,BLQ,520,Unf,0,1328,1848,GasA,Ex,Y,SBrkr,1827,959,0,2786,1,0,2,1,4,1,Gd,10,Typ,1,Ex,Attchd,1993,Fin,2,636,TA,TA,Y,294,49,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2026,120,FV,37,3435,Pave,Pave,IR1,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,7,5,2004,2005,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,24,Unf,0,1211,1235,GasA,Ex,Y,SBrkr,1245,0,0,1245,0,0,2,0,1,1,Gd,5,Typ,0,NA,Attchd,2004,RFn,2,495,TA,TA,Y,0,100,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2027,160,FV,30,3180,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,6,5,2005,2005,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,390,Unf,0,210,600,GasA,Ex,Y,SBrkr,600,600,0,1200,1,0,2,1,2,1,Gd,5,Typ,0,NA,Detchd,2005,RFn,2,480,TA,TA,Y,0,166,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2028,160,FV,30,3180,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,689,689,GasA,Ex,Y,SBrkr,703,689,0,1392,0,0,2,0,2,1,Gd,5,Typ,0,NA,Detchd,2007,Unf,2,540,TA,TA,Y,0,102,0,0,0,0,NA,NA,NA,0,3,2008,WD,Abnorml +2029,160,FV,24,2280,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,2Story,6,5,1999,1999,Gable,CompShg,MetalSd,MetalSd,Stone,216,TA,TA,PConc,Gd,TA,No,GLQ,550,Unf,0,194,744,GasA,Gd,Y,SBrkr,757,792,0,1549,1,0,2,1,3,1,TA,6,Typ,0,NA,Detchd,1999,Unf,2,440,TA,TA,Y,0,32,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2030,120,FV,NA,4765,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,9,5,2000,2000,Hip,CompShg,MetalSd,MetalSd,BrkFace,260,Gd,TA,PConc,Gd,TA,Av,GLQ,1027,Unf,0,587,1614,GasA,Ex,Y,SBrkr,1638,0,0,1638,1,0,2,0,2,1,Ex,5,Typ,1,TA,Attchd,2000,Fin,2,495,TA,TA,Y,230,68,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2031,120,FV,NA,4538,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,9,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,BrkFace,179,Gd,TA,PConc,Ex,TA,Av,GLQ,1004,Unf,0,306,1310,GasA,Ex,Y,SBrkr,1310,0,0,1310,1,0,1,1,1,1,Gd,5,Typ,1,TA,Attchd,2001,RFn,2,545,TA,TA,Y,277,45,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2032,120,FV,42,4385,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,9,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,Av,GLQ,964,Unf,0,455,1419,GasA,Ex,Y,SBrkr,1419,0,0,1419,1,0,1,1,2,1,Ex,5,Typ,1,TA,Attchd,2001,Fin,2,588,TA,TA,Y,155,58,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal +2033,120,FV,35,4109,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,9,5,1999,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,260,Gd,TA,PConc,Gd,TA,Av,GLQ,1141,Unf,0,416,1557,GasA,Ex,Y,SBrkr,1557,0,0,1557,1,0,2,0,2,1,Ex,5,Typ,1,TA,Attchd,1999,RFn,2,484,TA,TA,Y,124,113,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2034,160,FV,24,2160,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,SLvl,7,5,1999,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,216,Gd,TA,PConc,Gd,TA,No,GLQ,600,Unf,0,72,672,GasA,Ex,Y,SBrkr,684,720,0,1404,1,0,2,1,3,1,Gd,5,Typ,0,NA,Detchd,1999,Unf,2,462,TA,TA,Y,20,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2035,60,FV,79,10646,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,BrkFace,513,TA,TA,PConc,TA,TA,No,GLQ,681,Unf,0,177,858,GasA,Ex,Y,SBrkr,872,917,0,1789,1,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,2001,Fin,2,546,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2036,160,FV,24,2645,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,2Story,8,5,1999,1999,Gable,CompShg,MetalSd,MetalSd,BrkFace,466,Gd,TA,PConc,Gd,TA,No,GLQ,612,Unf,0,348,960,GasA,Ex,Y,SBrkr,962,624,0,1586,1,0,2,1,3,1,Gd,7,Typ,0,NA,Detchd,1999,Unf,2,480,TA,TA,Y,169,0,0,0,0,0,NA,NA,NA,0,12,2008,WD,Normal +2037,160,FV,24,2645,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,2Story,8,5,1999,2000,Gable,CompShg,MetalSd,MetalSd,BrkFace,456,Gd,TA,PConc,Gd,TA,No,GLQ,813,Unf,0,147,960,GasA,Ex,Y,SBrkr,962,645,0,1607,1,0,2,1,3,1,Gd,7,Typ,0,NA,Detchd,2000,Unf,2,480,TA,TA,Y,169,0,0,0,0,0,NA,NA,NA,0,12,2008,ConLD,Normal +2038,160,FV,36,3951,Pave,Pave,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,10,5,1998,1999,Gable,CompShg,BrkFace,MetalSd,None,0,Ex,TA,PConc,Gd,TA,Mn,BLQ,128,GLQ,842,0,970,GasA,Ex,Y,SBrkr,1469,924,0,2393,1,0,2,1,2,1,Ex,7,Typ,1,TA,Attchd,1998,Fin,2,846,TA,TA,Y,0,90,0,0,94,0,NA,NA,NA,0,2,2008,WD,Normal +2039,120,RL,22,11064,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,Veenker,Norm,Norm,TwnhsE,1Story,8,5,1995,1995,Hip,CompShg,BrkFace,BrkFace,None,0,Gd,TA,PConc,Gd,TA,Gd,LwQ,560,GLQ,670,0,1230,GasA,Ex,Y,SBrkr,1239,0,0,1239,1,0,1,1,1,1,Gd,4,Typ,1,Fa,Attchd,1995,Fin,2,477,TA,TA,Y,172,24,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal +2040,60,RL,NA,24572,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Veenker,Norm,Norm,1Fam,2Story,9,3,1977,1977,Mansard,CompShg,Wd Sdng,Wd Sdng,BrkFace,1050,Gd,Gd,CBlock,Gd,TA,No,GLQ,410,Unf,0,584,994,GasA,TA,Y,SBrkr,1599,1345,0,2944,0,0,2,2,3,1,Gd,9,Typ,1,Gd,Attchd,1977,RFn,3,864,TA,TA,Y,140,70,16,0,0,0,NA,NA,NA,0,6,2008,WD,Family +2041,20,RL,103,16280,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Veenker,Norm,Norm,1Fam,1Story,8,9,1976,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Ex,Ex,CBlock,Gd,NA,Mn,GLQ,1044,Rec,382,0,1426,GasA,Ex,Y,SBrkr,1671,0,0,1671,1,0,3,0,3,1,Ex,6,Typ,1,Gd,Attchd,1976,RFn,2,550,TA,TA,Y,280,90,0,0,0,0,NA,GdWo,NA,0,5,2008,WD,Normal +2042,60,FV,NA,7500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,NA,NA,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,952,952,GasA,Ex,Y,SBrkr,952,860,0,1812,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,2002,RFn,2,469,TA,TA,Y,144,112,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2043,80,RL,NA,11104,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,SLvl,6,6,1969,1969,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,Av,GLQ,828,Unf,0,599,1427,GasA,Gd,Y,SBrkr,1427,0,0,1427,0,1,2,0,4,1,TA,7,Typ,0,NA,Attchd,1969,RFn,2,516,TA,TA,Y,0,0,0,0,216,0,NA,NA,NA,0,5,2008,WD,Normal +2044,20,RL,85,11050,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,5,1968,1968,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Rec,301,Unf,0,1439,1740,GasA,Fa,Y,SBrkr,1740,0,0,1740,0,0,1,1,4,1,TA,8,Typ,1,TA,Attchd,1968,RFn,2,512,TA,TA,Y,25,0,0,0,192,0,NA,GdWo,NA,0,10,2008,WD,Family +2045,20,RL,NA,15387,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NWAmes,Norm,Norm,1Fam,1Story,7,7,1967,1967,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,603,BLQ,294,723,1620,GasA,Ex,Y,SBrkr,1620,0,0,1620,0,0,2,0,4,1,Gd,8,Typ,1,Gd,Attchd,1967,Unf,2,578,TA,TA,Y,0,62,192,0,0,0,NA,NA,Shed,450,8,2008,WD,Normal +2046,90,RL,75,9750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,RRAn,Norm,Duplex,1Story,5,6,1965,1965,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1625,1625,GasA,Ex,Y,SBrkr,1625,0,0,1625,0,0,2,0,4,2,TA,8,Typ,0,NA,Detchd,1965,Unf,2,484,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2008,ConLD,Normal +2047,60,RL,73,8814,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Feedr,Norm,1Fam,2Story,5,6,1968,1968,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,LwQ,732,Unf,0,0,732,GasA,Ex,Y,SBrkr,732,732,0,1464,0,0,1,1,4,1,TA,7,Typ,0,NA,Attchd,1968,Unf,2,470,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2048,20,RL,65,8125,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1965,2005,Hip,CompShg,HdBoard,HdBoard,None,0,Gd,TA,CBlock,TA,TA,No,ALQ,260,Rec,456,196,912,GasA,Ex,Y,SBrkr,925,0,0,925,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1978,Unf,2,576,TA,TA,Y,233,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2049,90,RL,72,11072,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,Duplex,1Story,5,5,1965,1965,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1728,1728,GasA,TA,Y,SBrkr,1728,0,0,1728,0,0,2,0,6,2,TA,10,Typ,0,NA,Detchd,1987,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2008,WD,Normal +2050,60,RL,NA,13355,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,7,6,1971,1971,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,Gd,No,ALQ,583,Unf,0,242,825,GasA,TA,Y,SBrkr,845,825,0,1670,0,0,1,1,4,1,TA,7,Typ,0,NA,Attchd,1971,Fin,2,464,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2051,20,RL,74,7785,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1956,1956,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,1014,0,0,1014,0,0,1,0,2,1,TA,6,Typ,0,NA,Attchd,1956,RFn,1,267,TA,TA,Y,0,0,40,0,200,0,NA,GdWo,NA,0,3,2008,WD,Normal +2052,20,RL,90,9900,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1961,1961,Gable,CompShg,Plywood,Plywood,None,0,TA,Gd,CBlock,TA,TA,No,Unf,0,Unf,0,1114,1114,GasA,TA,Y,SBrkr,1114,0,0,1114,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1961,RFn,2,451,TA,TA,Y,0,0,0,0,164,0,NA,NA,NA,0,5,2008,COD,Abnorml +2053,20,RL,NA,11332,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1960,2000,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,528,Unf,0,590,1118,GasA,Ex,Y,SBrkr,1118,0,0,1118,1,0,1,0,3,1,Gd,6,Typ,0,NA,Attchd,1960,RFn,1,264,TA,TA,Y,290,0,0,0,0,0,NA,MnPrv,NA,0,8,2008,WD,Normal +2054,70,RL,50,4882,Pave,NA,IR1,Bnk,AllPub,Inside,Mod,BrkSide,RRAn,Feedr,1Fam,2Story,4,7,1937,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,No,Rec,120,Unf,0,228,348,GasA,TA,Y,SBrkr,453,453,0,906,0,0,1,0,2,1,TA,5,Typ,0,NA,Basment,1937,Unf,1,231,Fa,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal +2055,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1960,1960,Gable,CompShg,MetalSd,MetalSd,BrkFace,203,Fa,Fa,CBlock,TA,TA,No,Rec,658,Unf,0,638,1296,GasA,TA,Y,SBrkr,1496,0,0,1496,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1960,RFn,2,450,TA,TA,Y,0,22,0,0,0,0,NA,MnPrv,NA,0,2,2008,WD,Normal +2056,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,8,1950,2006,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Gd,CBlock,TA,TA,No,BLQ,32,Rec,308,232,572,GasA,Gd,Y,SBrkr,1337,0,0,1337,1,0,1,0,3,1,Gd,7,Typ,1,Gd,Attchd,1950,RFn,1,264,TA,TA,Y,0,192,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal +2057,20,RL,63,7584,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Artery,Norm,1Fam,1Story,5,5,1953,1953,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,88,TA,TA,CBlock,TA,TA,No,LwQ,531,Unf,0,505,1036,GasA,Ex,Y,SBrkr,1036,0,0,1036,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1953,RFn,1,312,TA,TA,Y,120,24,0,0,0,0,NA,MnPrv,NA,0,6,2008,WD,Normal +2058,60,RL,90,14670,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,2Story,6,7,1966,1999,Gable,CompShg,VinylSd,VinylSd,BrkFace,410,Gd,Gd,CBlock,TA,TA,No,BLQ,575,Unf,0,529,1104,GasA,Ex,Y,SBrkr,1104,884,0,1988,0,0,2,1,4,1,Gd,9,Typ,1,Gd,Attchd,1966,RFn,2,480,TA,TA,Y,0,230,0,0,0,0,NA,MnPrv,NA,0,8,2008,WD,Normal +2059,20,RL,74,8856,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,4,1957,1957,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,143,TA,TA,CBlock,TA,TA,No,ALQ,621,LwQ,52,503,1176,GasA,TA,Y,SBrkr,1176,0,0,1176,1,0,1,0,3,1,TA,6,Typ,2,Gd,Attchd,1957,RFn,1,292,TA,TA,Y,0,88,0,0,95,0,NA,NA,NA,0,5,2008,WD,Normal +2060,20,RL,82,9840,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1959,1998,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,ALQ,1053,Unf,0,195,1248,GasA,TA,Y,SBrkr,1440,0,0,1440,1,0,2,0,2,1,Gd,7,Typ,0,NA,Attchd,1959,RFn,1,480,TA,TA,Y,150,0,0,0,256,0,NA,NA,NA,0,6,2008,WD,Normal +2061,20,RL,90,13200,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Feedr,Norm,1Fam,1Story,6,6,1958,1958,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,187,TA,TA,CBlock,TA,TA,No,LwQ,958,Unf,0,437,1395,GasA,Ex,Y,SBrkr,1570,0,0,1570,1,0,1,0,3,1,TA,5,Typ,1,TA,Attchd,1958,RFn,2,441,TA,TA,Y,490,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2062,20,RL,75,10425,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1956,1958,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,774,Unf,0,330,1104,GasA,Gd,Y,SBrkr,1104,0,0,1104,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1956,RFn,1,384,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2063,20,RL,60,11556,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1952,1952,Gable,CompShg,MetalSd,MetalSd,Stone,52,TA,TA,CBlock,TA,TA,No,Rec,148,Unf,0,572,720,GasA,Ex,Y,FuseA,882,0,0,882,1,0,1,0,2,1,Gd,4,Typ,0,NA,Attchd,1952,Unf,1,240,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,5,2008,WD,Normal +2064,20,RL,102,9373,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1953,1953,Gable,CompShg,MetalSd,MetalSd,BrkFace,84,TA,TA,CBlock,TA,TA,No,Rec,500,LwQ,196,456,1152,GasA,TA,Y,SBrkr,1152,0,0,1152,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1971,Unf,2,636,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2065,20,RL,NA,12774,Pave,NA,Reg,Lvl,AllPub,Inside,Sev,NAmes,Norm,Norm,1Fam,1Story,5,5,1953,1953,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,No,BLQ,624,LwQ,128,232,984,GasW,TA,N,SBrkr,950,0,0,950,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1953,Unf,2,400,TA,TA,Y,0,32,0,0,0,0,NA,GdWo,NA,0,7,2008,WD,Normal +2066,20,RL,95,14250,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1957,1957,Gable,CompShg,Plywood,Plywood,BrkFace,360,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,998,998,GasA,TA,Y,SBrkr,1790,0,0,1790,0,0,2,0,3,1,TA,6,Typ,2,Gd,Attchd,1957,Fin,2,540,TA,TA,Y,0,40,0,0,0,0,NA,NA,Shed,1500,9,2008,WD,Normal +2067,20,RL,71,8838,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,3,1957,1982,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,NA,NA,NA,NA,0,NA,0,0,0,GasA,Gd,Y,SBrkr,1764,0,0,1764,0,0,2,1,4,1,TA,7,Maj2,1,TA,Attchd,1957,Fin,1,301,TA,TA,Y,0,72,0,0,0,0,NA,NA,NA,0,10,2008,WD,Normal +2068,90,RL,76,12436,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,Duplex,1Story,5,5,1957,1957,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1824,1824,GasA,Fa,Y,FuseA,1824,0,0,1824,0,0,2,0,5,2,TA,9,Typ,0,NA,Detchd,1958,Unf,2,484,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,1,2008,WD,Normal +2069,20,RL,60,10122,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,4,6,1948,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,N,SBrkr,869,0,0,869,0,0,1,0,1,1,TA,3,Typ,0,NA,Detchd,1948,Unf,1,390,Fa,TA,N,0,0,66,0,0,0,NA,GdPrv,NA,0,8,2008,WD,Normal +2070,50,RL,45,7506,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,8,1925,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,PConc,TA,TA,No,Unf,0,Unf,0,747,747,GasA,TA,Y,SBrkr,747,412,0,1159,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1932,Unf,1,288,Fa,TA,N,84,0,96,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2071,30,RL,60,5400,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1Story,4,7,1940,2005,Gambrel,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,TA,TA,No,Unf,0,Unf,0,672,672,GasA,Gd,Y,SBrkr,672,0,0,672,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1997,Unf,1,308,TA,TA,N,88,108,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2072,50,RL,60,10836,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,5,1922,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,892,892,GasA,Ex,Y,SBrkr,1254,182,0,1436,0,1,1,0,3,1,TA,7,Typ,1,Gd,Detchd,1968,Unf,4,1488,Fa,TA,N,0,0,100,0,0,0,NA,GdWo,NA,0,6,2008,WD,Normal +2073,20,RL,78,10180,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Feedr,Norm,1Fam,1Story,5,6,1968,1968,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,TA,TA,No,Rec,744,Unf,0,168,912,GasA,TA,Y,SBrkr,1044,0,0,1044,0,1,1,1,3,1,TA,5,Typ,1,Fa,Attchd,1990,Fin,2,372,TA,TA,Y,200,48,0,0,0,0,NA,GdWo,Shed,450,6,2008,WD,Normal +2074,20,RL,76,11355,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,7,7,1958,2001,Gable,Tar&Grv,HdBoard,HdBoard,BrkFace,125,TA,TA,CBlock,TA,TA,No,BLQ,637,Unf,0,675,1312,GasA,Ex,Y,SBrkr,1312,0,0,1312,0,0,1,1,3,1,TA,6,Typ,1,Gd,Attchd,1958,RFn,2,495,TA,TA,Y,0,304,144,0,0,0,NA,MnPrv,Othr,6500,4,2008,WD,Normal +2075,20,RL,NA,12929,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1960,1993,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,276,TA,TA,CBlock,TA,TA,Gd,GLQ,697,Unf,0,384,1081,GasA,TA,Y,SBrkr,1081,0,0,1081,1,0,1,0,3,1,TA,5,Typ,0,NA,CarPort,1960,Unf,1,401,TA,TA,Y,36,82,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2076,20,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1951,1951,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,Fa,TA,No,LwQ,432,Unf,0,444,876,GasA,TA,Y,SBrkr,876,0,0,876,0,0,1,0,2,1,TA,5,Typ,1,TA,Detchd,1972,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,2,2008,WD,Abnorml +2077,20,RL,80,8000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1959,1959,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,BLQ,476,Rec,488,292,1256,GasA,Gd,Y,FuseA,1256,0,0,1256,1,0,1,1,3,1,Gd,6,Typ,0,NA,Attchd,1959,RFn,1,311,TA,TA,Y,0,240,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2078,20,RL,80,8000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1962,1962,Gable,CompShg,BrkFace,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,520,Rec,319,188,1027,GasA,TA,Y,SBrkr,1027,0,0,1027,0,1,1,0,3,1,TA,6,Typ,0,NA,Attchd,1962,Unf,1,299,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2008,WD,Normal +2079,50,RL,60,8064,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Artery,Norm,1Fam,1.5Fin,6,6,1948,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,ALQ,315,Unf,0,453,768,GasA,Ex,Y,SBrkr,819,501,0,1320,0,0,2,0,3,1,TA,5,Typ,0,NA,Detchd,1994,Unf,2,576,TA,TA,Y,108,0,0,0,0,0,NA,GdWo,NA,0,9,2008,WD,Normal +2080,45,RL,64,6390,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Feedr,Norm,1Fam,1.5Unf,6,7,1954,1954,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,936,936,GasA,TA,Y,FuseA,984,0,0,984,1,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1954,Unf,1,280,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,6,2008,WD,Normal +2081,50,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1.5Fin,6,5,1954,1954,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,673,Unf,0,181,854,GasA,Fa,Y,FuseA,854,424,0,1278,0,0,1,0,4,1,TA,6,Typ,0,NA,Attchd,1954,Unf,1,240,TA,TA,Y,0,0,0,0,0,0,NA,MnWw,NA,0,4,2008,WD,Normal +2082,90,RL,113,8513,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Artery,Norm,Duplex,1Story,5,5,1961,1961,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Av,Unf,0,Unf,0,1800,1800,GasA,TA,N,SBrkr,1800,0,0,1800,0,0,2,0,6,2,TA,10,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,0,0,0,0,NA,NA,NA,0,11,2008,WD,Abnorml +2083,50,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1.5Fin,5,6,1955,1967,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,Mn,GLQ,370,Unf,0,398,768,GasA,Gd,Y,SBrkr,1024,564,0,1588,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1955,Unf,2,480,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal +2084,20,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1954,1954,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,825,825,GasA,TA,Y,FuseA,825,0,0,825,0,1,1,0,2,1,TA,4,Typ,0,NA,Attchd,1954,Unf,1,350,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2085,20,RL,69,7590,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,PosN,Norm,1Fam,1Story,5,5,1963,1963,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1117,1117,GasA,Ex,Y,SBrkr,1117,0,0,1117,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1963,Unf,1,264,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2008,COD,Normal +2086,20,RM,56,9836,Pave,Grvl,Reg,Bnk,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1Story,6,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,TA,TA,No,GLQ,96,Unf,0,96,192,GasA,Gd,N,SBrkr,1133,0,0,1133,1,0,1,0,3,1,TA,7,Typ,0,NA,Detchd,2008,Unf,1,308,TA,TA,Y,0,175,0,0,0,0,NA,NA,NA,0,12,2008,WD,Abnorml +2087,50,RM,57,9184,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1.5Fin,5,7,1948,2005,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,780,780,GasA,Ex,Y,SBrkr,948,375,0,1323,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1948,Unf,2,400,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2088,70,RM,80,4800,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,5,5,1910,2003,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,BrkTil,TA,Fa,No,Unf,0,Unf,0,680,680,GasA,Fa,N,SBrkr,680,680,0,1360,0,0,1,0,2,1,TA,6,Typ,0,NA,Attchd,1910,Unf,1,330,Fa,TA,Y,192,50,0,0,0,0,NA,NA,NA,0,1,2008,WD,Normal +2089,30,RM,60,4800,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,4,1940,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,Fa,TA,No,Unf,0,Unf,0,672,672,GasA,TA,Y,SBrkr,672,0,0,672,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1950,Unf,1,256,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,8,2008,WD,Normal +2090,75,RM,60,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2.5Unf,6,7,1915,2005,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,728,728,GasA,Gd,Y,SBrkr,728,728,0,1456,0,0,1,1,4,1,Gd,7,Typ,0,NA,Detchd,1915,Unf,1,308,Fa,Fa,N,0,0,248,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2091,190,RM,63,11426,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,2fmCon,1.5Fin,4,6,1910,1996,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,Stone,TA,TA,No,Unf,0,Unf,0,828,828,GasA,Gd,Y,FuseA,828,658,108,1594,0,0,2,0,3,2,TA,9,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,172,109,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2092,50,RM,63,7628,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,4,6,1940,1985,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,BrkTil,TA,TA,No,Unf,0,Unf,0,801,801,GasA,Gd,Y,FuseA,1095,561,0,1656,0,0,2,0,2,1,TA,8,Mod,0,NA,Detchd,1958,Unf,2,440,TA,TA,Y,187,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2093,50,RM,81,7308,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Artery,Norm,1Fam,1.5Fin,5,5,1920,1950,Gable,CompShg,WdShing,Wd Shng,None,0,Fa,Fa,BrkTil,TA,TA,No,Rec,360,Unf,0,576,936,GasA,Gd,N,FuseA,960,780,0,1740,0,0,1,0,2,1,Ex,6,Typ,1,Gd,Detchd,1920,Unf,1,225,Fa,Fa,N,0,0,236,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2094,30,RM,60,5400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,7,6,1920,2006,Gable,CompShg,Stucco,Stucco,None,0,Gd,TA,CBlock,TA,TA,No,Unf,0,Unf,0,931,931,GasA,TA,Y,SBrkr,1027,0,0,1027,0,1,1,0,2,1,Gd,5,Typ,1,TA,NA,NA,NA,0,0,NA,NA,N,0,28,0,0,0,0,NA,NA,NA,0,2,2008,WD,Normal +2095,190,RM,60,10800,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,2fmCon,1.5Fin,6,6,1940,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,590,Unf,0,294,884,GasA,TA,Y,SBrkr,884,552,0,1436,0,0,2,0,3,2,TA,8,Typ,2,Gd,Detchd,1940,Unf,2,828,TA,TA,Y,0,0,126,0,0,0,NA,NA,NA,0,5,2008,Con,Normal +2096,30,RM,60,6756,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,6,1910,1950,Mansard,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,Gd,No,Unf,0,Unf,0,481,481,GasA,TA,N,FuseA,899,0,0,899,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1930,Unf,1,200,Fa,TA,P,0,0,96,0,0,0,NA,NA,NA,0,9,2008,WD,Normal +2097,50,RM,44,5914,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,9,1890,1996,Gable,CompShg,Wd Sdng,HdBoard,None,0,TA,TA,BrkTil,Fa,TA,No,Unf,0,Unf,0,684,684,GasA,Gd,Y,SBrkr,684,396,0,1080,0,0,1,0,3,1,Gd,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,165,30,0,0,0,NA,NA,NA,0,9,2008,WD,Normal +2098,50,RM,75,9000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,6,1946,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,445,Unf,0,459,904,GasA,Ex,Y,FuseA,904,595,0,1499,0,0,1,0,3,1,TA,5,Typ,1,Po,Detchd,1959,Unf,3,869,TA,Gd,Y,0,20,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2099,20,RM,62,7311,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1Story,2,5,1946,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,BrkTil,TA,TA,No,Unf,0,Unf,0,407,407,GasA,TA,N,FuseA,407,0,0,407,0,0,1,0,1,1,TA,3,Typ,0,NA,Detchd,1949,Unf,1,297,Fa,TA,Y,76,0,120,0,0,0,NA,NA,NA,0,3,2008,WD,Abnorml +2100,20,RM,103,12205,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,3,1,1949,1992,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,Fa,Fa,No,Unf,0,Unf,0,448,448,GasA,Gd,Y,SBrkr,1588,0,0,1588,0,0,2,0,5,1,TA,6,Maj2,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,0,0,0,0,NA,MnPrv,NA,0,12,2008,WD,Abnorml +2101,190,RM,69,9142,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,2fmCon,2Story,5,5,1900,2006,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Fa,BrkTil,Fa,TA,No,Unf,0,Unf,0,797,797,GasA,TA,N,FuseA,830,797,0,1627,0,0,2,0,4,2,TA,10,Typ,0,NA,Detchd,1950,Unf,2,420,Fa,Po,N,192,0,60,0,0,0,NA,NA,NA,0,2,2008,WD,Normal +2102,75,RM,53,5350,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Artery,Norm,1Fam,2Story,7,8,1920,1965,Gable,CompShg,Wd Sdng,Wd Shng,None,0,TA,TA,BrkTil,TA,TA,No,BLQ,116,Unf,0,508,624,GasA,Ex,Y,SBrkr,730,720,0,1450,0,0,1,0,3,1,TA,7,Typ,0,NA,Detchd,1935,Unf,1,288,TA,TA,Y,0,192,0,0,0,0,NA,MnPrv,NA,0,3,2008,WD,Normal +2103,50,RM,69,9143,Pave,Grvl,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,7,1900,2003,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,346,346,GasA,Ex,Y,SBrkr,709,308,0,1017,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1961,Unf,1,308,TA,TA,N,0,0,139,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2104,190,RM,60,9600,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,2fmCon,2Story,5,5,1920,1960,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,BrkTil,TA,TA,No,Rec,234,Unf,0,739,973,GasA,TA,Y,FuseP,1377,973,0,2350,0,0,2,0,4,2,TA,10,Typ,0,NA,2Types,1930,Unf,2,393,TA,TA,Y,0,0,219,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2105,70,RM,60,6000,Pave,Grvl,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,2Story,5,9,1905,2005,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,BrkTil,Fa,TA,No,Unf,0,Unf,0,572,572,GasA,Ex,Y,SBrkr,884,656,0,1540,0,0,1,1,3,1,Gd,7,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,240,77,0,0,0,0,NA,NA,NA,0,2,2008,WD,Normal +2106,70,RM,60,11340,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,2,1,1920,1950,Gable,CompShg,AsbShng,AsbShng,None,0,Fa,Fa,BrkTil,Fa,Fa,No,Unf,0,Unf,0,723,723,GasA,TA,N,SBrkr,723,363,0,1086,0,0,1,0,2,1,TA,5,Maj1,0,NA,Detchd,1920,Unf,2,400,Fa,Po,N,0,24,144,0,0,0,NA,NA,NA,0,11,2008,ConLD,Normal +2107,70,RM,60,10800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,7,7,1890,1999,Gable,CompShg,Wd Sdng,Wd Shng,None,0,TA,TA,BrkTil,TA,TA,Mn,Unf,0,Unf,0,1313,1313,GasW,Gd,Y,SBrkr,1313,1182,0,2495,0,0,2,0,5,1,TA,10,Typ,1,Gd,Detchd,1950,Unf,2,342,TA,Fa,Y,0,299,0,0,0,0,NA,NA,NA,0,12,2008,WD,Normal +2108,20,RM,65,9750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,6,1959,1959,Gable,CompShg,MetalSd,MetalSd,BrkFace,164,TA,TA,CBlock,TA,TA,No,Rec,200,Unf,0,784,984,GasA,Gd,Y,SBrkr,984,0,0,984,1,0,1,0,2,1,Fa,5,Typ,0,NA,Detchd,1959,Unf,1,308,TA,TA,N,0,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2109,20,RM,52,8516,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,4,6,1958,2006,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,869,869,GasA,TA,Y,SBrkr,1093,0,0,1093,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1959,Unf,1,308,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2110,30,RL,55,7111,Pave,NA,IR1,Bnk,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,5,7,1928,1983,Gable,CompShg,WdShing,Wd Shng,None,0,Gd,Gd,BrkTil,TA,TA,No,LwQ,406,BLQ,273,329,1008,GasA,TA,Y,SBrkr,1143,0,0,1143,0,0,1,0,2,1,TA,5,Typ,1,Po,Detchd,1992,Unf,1,288,TA,TA,Y,265,0,0,0,0,0,NA,GdPrv,NA,0,7,2008,WD,Normal +2111,50,RM,NA,7425,Pave,NA,IR1,Bnk,AllPub,Corner,Gtl,BrkSide,RRAn,Artery,1Fam,1.5Fin,7,7,1945,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,Fa,No,Unf,0,Unf,0,672,672,GasA,Gd,Y,SBrkr,1195,473,0,1668,0,0,1,1,3,1,Gd,8,Typ,0,NA,Attchd,1945,Unf,1,252,TA,TA,Y,210,0,0,0,0,0,NA,NA,NA,0,8,2008,WD,Abnorml +2112,50,RL,NA,7010,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,5,1935,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Rec,175,Unf,0,849,1024,GasA,TA,Y,SBrkr,1144,594,0,1738,0,0,2,0,3,1,TA,6,Typ,1,Gd,Detchd,1950,Unf,1,240,TA,TA,P,0,30,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2113,50,RM,50,5000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Feedr,Norm,1Fam,1.5Fin,5,7,1941,2006,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,600,Unf,0,72,672,GasA,Ex,Y,SBrkr,832,378,0,1210,0,0,1,0,3,1,Gd,6,Typ,0,NA,Detchd,1941,Unf,1,240,TA,TA,P,0,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2114,70,RM,59,5870,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,BrkSide,Feedr,Feedr,1Fam,2Story,6,9,1900,2000,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Gd,BrkTil,TA,TA,No,Unf,0,Unf,0,554,554,GasA,Ex,Y,SBrkr,736,554,0,1290,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1926,Unf,1,200,Fa,TA,Y,38,112,0,0,0,0,NA,MnPrv,Shed,400,4,2008,WD,Normal +2115,50,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,7,1940,1989,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,ALQ,521,Unf,0,460,981,GasA,Ex,Y,SBrkr,1014,658,0,1672,0,0,1,1,3,1,Gd,6,Typ,1,Gd,Detchd,1940,Unf,1,240,TA,TA,Y,0,11,0,0,0,0,NA,GdPrv,NA,0,7,2008,WD,Normal +2116,30,RM,50,6000,Pave,NA,Reg,HLS,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,5,7,1924,2003,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Fa,BrkTil,TA,Fa,No,Unf,0,Unf,0,949,949,GasA,Ex,Y,SBrkr,949,0,0,949,0,0,1,0,2,1,TA,5,Typ,1,Fa,Detchd,1924,Unf,2,370,TA,TA,Y,0,0,48,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2117,50,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,7,1937,2000,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,BrkTil,TA,TA,No,Rec,201,LwQ,162,462,825,GasA,Ex,Y,SBrkr,825,672,0,1497,0,0,2,0,3,1,TA,5,Typ,0,NA,Detchd,2004,Unf,1,672,TA,TA,Y,272,0,0,0,0,0,NA,GdPrv,NA,0,5,2008,WD,Normal +2118,50,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,5,1939,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,LwQ,264,Unf,0,475,739,GasA,Ex,Y,SBrkr,874,468,0,1342,0,0,2,0,2,2,TA,7,Typ,1,Gd,Detchd,1939,Unf,1,240,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2119,45,RM,50,5000,Pave,NA,Reg,Bnk,AllPub,Inside,Mod,BrkSide,Norm,Norm,1Fam,1.5Unf,6,7,1926,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,992,992,GasA,Ex,Y,SBrkr,1013,0,0,1013,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1926,Unf,1,160,Fa,TA,Y,0,0,101,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2120,50,RM,60,5520,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,BrkSide,Feedr,Norm,1Fam,1.5Fin,5,7,1920,1997,Gable,CompShg,AsbShng,AsbShng,None,0,TA,Gd,BrkTil,TA,TA,No,ALQ,68,Unf,0,497,565,GasA,TA,Y,SBrkr,565,651,0,1216,1,0,1,0,3,1,TA,6,Typ,1,Gd,BuiltIn,1920,RFn,1,355,Fa,TA,Y,0,0,180,0,0,0,NA,MnPrv,NA,0,4,2008,WD,Normal +2121,20,RM,99,5940,Pave,NA,IR1,Lvl,AllPub,FR3,Gtl,BrkSide,Feedr,Norm,1Fam,1Story,4,7,1946,1950,Gable,CompShg,MetalSd,CBlock,None,0,TA,TA,PConc,NA,NA,NA,NA,NA,NA,NA,NA,NA,GasA,TA,Y,FuseA,896,0,0,896,NA,NA,1,0,2,1,TA,4,Typ,0,NA,Detchd,1946,Unf,1,280,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,4,2008,ConLD,Abnorml +2122,50,RM,52,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,4,7,1929,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,No,BLQ,80,Unf,0,624,704,GasA,Ex,Y,SBrkr,624,512,0,1136,0,1,1,0,2,1,TA,6,Typ,0,NA,Detchd,1990,Unf,1,336,TA,TA,Y,0,365,80,0,0,0,NA,NA,NA,0,8,2008,WD,Normal +2123,30,RM,NA,6120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,5,6,1945,1995,Gable,CompShg,Plywood,Plywood,None,0,TA,Gd,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,Gd,N,SBrkr,808,0,0,808,0,0,1,0,1,1,TA,6,Min2,0,NA,Attchd,1925,Unf,1,164,TA,TA,P,0,48,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2124,50,RM,52,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,7,5,1939,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,Mn,Rec,300,LwQ,240,449,989,GasA,TA,Y,SBrkr,1245,764,0,2009,0,0,2,0,4,1,TA,7,Min2,1,Gd,Detchd,1939,Unf,2,400,TA,TA,Y,0,20,0,0,0,0,NA,MnPrv,NA,0,1,2008,WD,Normal +2125,70,RM,51,6120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,2Story,5,5,1923,1950,Gambrel,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,LwQ,203,Unf,0,897,1100,GasA,TA,Y,SBrkr,1226,676,0,1902,0,0,2,0,4,1,TA,7,Typ,0,NA,Detchd,1960,Unf,2,576,TA,TA,Y,0,139,55,0,0,0,NA,NA,NA,0,10,2008,WD,Normal +2126,50,RL,60,9144,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,4,1915,2004,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,BrkTil,TA,TA,No,Unf,0,Unf,0,810,810,GasA,Ex,Y,SBrkr,1170,546,0,1716,0,0,2,0,4,1,Gd,8,Typ,0,NA,Detchd,1970,Unf,2,672,TA,TA,Y,0,195,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal +2127,60,RM,57,8094,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,2fmCon,2.5Unf,6,8,1910,1983,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,Mn,Rec,196,Unf,0,1046,1242,GasA,Gd,Y,SBrkr,1242,742,0,1984,0,0,2,0,5,1,TA,8,Typ,0,NA,Detchd,NA,NA,1,360,NA,NA,Y,64,0,180,0,0,0,NA,MnPrv,Shed,1000,9,2008,WD,Normal +2128,50,RM,63,4347,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,6,8,1910,1950,Gambrel,CompShg,MetalSd,MetalSd,None,0,Gd,TA,BrkTil,Gd,Gd,No,Unf,0,Unf,0,796,796,GasA,Ex,Y,SBrkr,825,784,0,1609,0,0,1,0,3,1,TA,7,Typ,0,NA,Detchd,1910,Unf,1,228,Fa,Fa,N,0,182,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2129,30,RM,NA,6291,Grvl,NA,IR1,Lvl,AllPub,Inside,Gtl,IDOTRR,RRNe,Norm,1Fam,1Story,6,6,1930,1950,Gable,CompShg,Stucco,Wd Shng,None,0,Gd,Gd,BrkTil,TA,TA,No,Unf,0,Unf,0,768,768,GasA,TA,Y,SBrkr,768,0,0,768,0,0,1,0,1,1,TA,4,Typ,0,NA,Detchd,1930,Unf,2,440,TA,TA,N,0,0,84,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2130,70,RM,60,10266,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,2Story,6,6,1952,1952,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,372,Unf,0,396,768,GasA,TA,Y,FuseA,768,768,0,1536,0,0,1,1,4,1,TA,7,Typ,0,NA,Detchd,1952,Unf,1,308,TA,TA,Y,0,216,80,0,0,0,NA,NA,NA,0,5,2008,COD,Abnorml +2131,50,RM,60,6876,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,6,6,1938,1958,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,1272,1272,GasA,TA,Y,SBrkr,1272,0,697,1969,0,0,2,0,4,1,TA,9,Min1,1,Gd,Detchd,1938,Unf,2,400,TA,TA,Y,0,34,0,0,0,0,NA,NA,NA,0,11,2008,COD,Normal +2132,50,RM,NA,10320,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,5,6,1915,1978,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Fa,BrkTil,TA,Fa,No,Unf,0,Unf,0,880,880,GasA,Gd,Y,SBrkr,880,428,0,1308,0,0,2,0,2,1,TA,6,Typ,0,NA,Detchd,1950,Unf,2,400,Fa,Fa,Y,0,0,117,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2133,30,RM,60,7200,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,6,7,1925,1992,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1040,1040,GasA,Gd,Y,SBrkr,1040,0,0,1040,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1993,Unf,2,320,TA,TA,Y,0,132,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2134,50,RM,62,7006,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,6,6,1925,1950,Gable,CompShg,Stucco,Stucco,None,0,TA,TA,PConc,TA,TA,No,Rec,121,Unf,0,647,768,GasA,TA,Y,SBrkr,788,448,0,1236,1,0,2,0,3,1,TA,6,Typ,1,Gd,Detchd,1985,Unf,1,384,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,8,2008,WD,Family +2135,30,RM,60,10320,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,RRNe,Norm,1Fam,1Story,5,8,1912,1991,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Fa,TA,No,Unf,0,Unf,0,451,451,GasA,TA,Y,SBrkr,759,0,0,759,0,0,1,0,1,1,TA,5,Typ,0,NA,Detchd,1997,Unf,2,576,TA,TA,N,40,0,0,0,0,0,NA,NA,NA,0,8,2008,ConLD,Family +2136,190,RM,60,10320,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,2fmCon,2Story,3,3,1915,1950,Gable,CompShg,AsphShn,AsphShn,None,0,Fa,Fa,PConc,TA,Fa,No,Unf,0,Unf,0,536,536,GasA,Ex,N,FuseF,808,536,0,1344,0,0,2,0,3,2,TA,8,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,42,0,204,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2137,20,RL,82,9488,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,5,6,1947,1993,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1046,1046,GasA,Gd,N,SBrkr,1054,0,0,1054,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1947,Unf,1,240,TA,TA,Y,0,60,122,0,0,0,NA,NA,NA,0,9,2008,WD,Abnorml +2138,85,RL,NA,11235,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Feedr,Norm,1Fam,SFoyer,5,6,1963,1963,Gable,CompShg,HdBoard,Wd Sdng,None,0,TA,TA,CBlock,Gd,TA,Av,ALQ,784,Unf,0,197,981,GasA,TA,Y,SBrkr,1075,0,0,1075,1,0,1,0,3,1,Gd,6,Typ,0,NA,Detchd,1996,Unf,2,440,TA,TA,Y,64,0,0,0,64,0,NA,MnPrv,NA,0,5,2008,WD,Abnorml +2139,80,RL,80,13014,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,SLvl,6,5,1978,1978,Gable,CompShg,HdBoard,Plywood,BrkFace,39,TA,TA,CBlock,TA,TA,Av,ALQ,528,Unf,0,480,1008,GasA,TA,Y,SBrkr,1096,0,0,1096,1,0,1,0,3,1,TA,6,Typ,1,Fa,Attchd,1978,Unf,2,484,TA,TA,Y,168,0,0,0,0,0,NA,NA,NA,0,12,2008,WD,Normal +2140,20,RL,68,10265,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,7,1967,2005,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Fa,CBlock,TA,TA,No,ALQ,758,Unf,0,234,992,GasA,Ex,Y,SBrkr,992,0,0,992,1,0,1,0,3,1,Gd,6,Typ,0,NA,Attchd,1967,RFn,1,294,TA,TA,Y,204,0,0,0,0,0,NA,MnPrv,Shed,600,7,2008,WD,Normal +2141,85,RL,NA,7703,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,Norm,Norm,1Fam,SFoyer,6,8,1978,1978,Gable,CompShg,HdBoard,HdBoard,BrkCmn,40,TA,TA,CBlock,Gd,TA,Gd,ALQ,450,Unf,0,0,450,GasA,Ex,Y,SBrkr,1034,0,0,1034,0,1,1,0,3,1,TA,6,Typ,1,Po,Basment,1978,Fin,2,504,TA,TA,Y,311,0,0,0,0,0,NA,GdWo,NA,0,5,2008,WD,Normal +2142,20,RL,NA,9981,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1967,1967,Gable,CompShg,MetalSd,MetalSd,BrkFace,340,TA,TA,CBlock,TA,TA,Mn,BLQ,221,Unf,0,852,1073,GasA,Gd,Y,SBrkr,1073,0,0,1073,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1967,RFn,1,270,TA,TA,Y,0,90,0,0,0,0,NA,MnPrv,NA,0,3,2008,WD,Normal +2143,85,RL,NA,7400,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,Norm,Norm,1Fam,SFoyer,5,5,1984,1984,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Av,LwQ,104,ALQ,956,0,1060,GasA,TA,Y,SBrkr,1126,0,0,1126,1,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1984,Unf,2,506,TA,TA,Y,178,0,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal +2144,190,RL,60,12900,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Feedr,Norm,2fmCon,1Story,5,4,1920,1950,Gable,CompShg,BrkFace,Stucco,None,0,TA,TA,PConc,TA,Fa,No,BLQ,1300,Unf,0,0,1300,GasA,Fa,Y,SBrkr,1140,0,0,1140,1,0,1,0,3,1,TA,6,Typ,0,NA,CarPort,1920,Unf,2,400,TA,TA,Y,0,0,190,0,0,0,NA,NA,NA,0,1,2008,WD,Alloca +2145,20,RL,94,9239,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,5,8,1963,2003,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,TA,No,GLQ,634,Unf,0,326,960,GasA,Ex,Y,SBrkr,960,0,0,960,1,0,1,0,3,1,Gd,6,Typ,0,NA,Attchd,1963,Fin,1,300,TA,TA,Y,168,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2146,20,RL,88,14175,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,PosA,Norm,1Fam,1Story,6,8,1956,1956,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,Gd,Gd,GLQ,776,Unf,0,212,988,GasA,TA,Y,FuseA,1188,0,0,1188,1,0,1,0,1,1,TA,4,Typ,1,TA,Attchd,1956,Unf,2,621,TA,TA,Y,102,89,231,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2147,190,RL,NA,10532,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,ClearCr,Norm,Norm,1Fam,1Story,5,3,1960,1960,Flat,Tar&Grv,Plywood,Plywood,Stone,275,TA,TA,CBlock,TA,TA,Mn,Rec,988,Unf,0,0,988,GasA,Gd,Y,SBrkr,1721,0,0,1721,1,0,2,0,3,1,TA,7,Mod,2,TA,Basment,1960,Unf,2,626,TA,TA,Y,50,84,0,0,0,0,NA,NA,NA,0,12,2008,WD,Abnorml +2148,50,RL,63,8375,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Norm,Norm,1Fam,1.5Fin,5,7,1941,1973,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,ALQ,336,Unf,0,240,576,GasA,Gd,Y,SBrkr,864,486,0,1350,1,0,1,1,2,1,Gd,6,Min1,0,NA,2Types,1973,Unf,3,627,TA,TA,N,0,0,0,0,0,0,NA,MnPrv,NA,0,6,2008,WD,Normal +2149,80,RL,NA,10200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,SLvl,5,8,1970,1970,Hip,CompShg,HdBoard,HdBoard,None,0,TA,Gd,PConc,Gd,TA,Av,ALQ,704,Unf,0,160,864,GasA,Ex,Y,SBrkr,904,0,0,904,0,0,1,0,3,1,Gd,5,Typ,0,NA,2Types,1979,Unf,3,912,TA,TA,Y,143,0,0,0,0,0,NA,MnPrv,NA,0,6,2008,WD,Normal +2150,20,RL,82,20270,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,ClearCr,Norm,Norm,1Fam,1Story,7,6,1979,1979,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,Gd,GLQ,599,Unf,0,925,1524,GasA,TA,Y,SBrkr,1524,0,0,1524,1,0,2,0,3,1,TA,7,Typ,2,Gd,Attchd,1979,Fin,2,478,TA,TA,Y,140,0,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2151,50,RL,50,5190,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,7,5,1948,1950,Gable,CompShg,BrkFace,Plywood,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,570,570,GasA,TA,Y,SBrkr,617,462,0,1079,0,0,1,0,2,1,TA,5,Typ,1,Gd,Attchd,1948,Unf,1,249,TA,TA,Y,135,0,0,0,0,0,NA,NA,NA,0,1,2008,WD,Normal +2152,30,RL,85,19550,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,7,1940,2007,Flat,Tar&Grv,NA,NA,None,0,TA,TA,PConc,TA,TA,Gd,ALQ,1035,Unf,0,545,1580,GasA,Ex,Y,SBrkr,1518,0,0,1518,1,0,1,0,2,1,Fa,5,Typ,2,Gd,NA,NA,NA,0,0,NA,NA,Y,0,39,0,0,0,0,NA,NA,NA,0,1,2008,WD,Normal +2153,20,RL,68,9571,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,6,1956,1956,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Av,Rec,870,Unf,0,639,1509,GasA,TA,Y,FuseA,1509,0,0,1509,1,0,1,0,3,1,Gd,6,Typ,1,TA,Attchd,1956,Unf,1,322,TA,TA,Y,158,0,0,0,576,0,NA,MnPrv,NA,0,7,2008,WD,Normal +2154,90,RL,50,9350,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,Duplex,SFoyer,5,5,1975,1975,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,Av,GLQ,864,Unf,0,0,864,GasA,Fa,N,SBrkr,864,0,0,864,1,0,1,0,2,1,TA,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2155,60,RL,50,9360,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,2Story,6,8,1962,2001,Gable,CompShg,VinylSd,VinylSd,BrkCmn,216,Gd,TA,CBlock,TA,TA,No,Rec,324,Unf,0,297,621,GasA,TA,Y,SBrkr,621,648,0,1269,0,0,1,1,3,1,TA,7,Typ,0,NA,Detchd,1962,Unf,1,280,TA,TA,Y,0,236,0,0,0,0,NA,GdWo,NA,0,11,2008,WD,Normal +2156,60,RL,NA,9771,Pave,NA,IR3,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,5,1995,2002,Gable,CompShg,HdBoard,HdBoard,BrkFace,190,Gd,TA,PConc,Gd,TA,No,LwQ,779,Unf,0,298,1077,GasA,Ex,Y,SBrkr,1093,1721,0,2814,0,1,2,1,4,1,Gd,9,Typ,1,TA,BuiltIn,1995,Fin,2,614,TA,TA,Y,48,32,0,0,216,0,NA,GdPrv,NA,0,6,2008,WD,Normal +2157,20,RL,80,9938,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,7,5,1994,1994,Gable,CompShg,HdBoard,HdBoard,BrkFace,251,Gd,TA,PConc,Gd,TA,No,GLQ,1271,Unf,0,331,1602,GasA,Ex,Y,SBrkr,1626,0,0,1626,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1994,RFn,2,534,TA,TA,Y,424,40,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2158,60,RL,NA,14171,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,1993,1994,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,355,Unf,0,457,812,GasA,Ex,Y,SBrkr,1101,1099,0,2200,0,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1993,RFn,2,453,TA,TA,Y,168,98,0,0,0,0,NA,NA,NA,0,12,2008,WD,Normal +2159,80,RL,85,10541,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,1Fam,SLvl,7,5,1996,1996,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,672,672,GasA,Ex,Y,SBrkr,1302,735,0,2037,0,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1996,Fin,2,472,TA,TA,Y,100,33,0,0,0,0,NA,NA,NA,0,2,2008,WD,Normal +2160,60,RL,65,10616,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,628,628,GasA,Ex,Y,SBrkr,628,728,0,1356,0,0,2,1,3,1,Gd,6,Typ,1,Gd,BuiltIn,2007,Fin,2,484,TA,TA,Y,100,24,0,0,0,0,NA,NA,NA,0,3,2008,New,Partial +2161,20,RL,65,9345,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,156,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1615,1615,GasA,Ex,Y,SBrkr,1615,0,0,1615,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2007,RFn,3,864,TA,TA,Y,168,30,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2162,20,RL,91,11778,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,9,5,2008,2008,Hip,CompShg,VinylSd,VinylSd,Stone,554,Gd,TA,PConc,Gd,TA,Gd,GLQ,2085,Unf,0,186,2271,GasA,Ex,Y,SBrkr,2276,0,0,2276,1,0,2,0,3,1,Ex,7,Typ,2,Gd,Attchd,2008,RFn,3,1348,Gd,TA,Y,0,0,70,0,255,0,NA,NA,NA,0,6,2008,WD,Abnorml +2163,20,RL,91,11778,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,PosN,Norm,1Fam,1Story,9,5,2008,2008,Hip,CompShg,VinylSd,VinylSd,Stone,402,Ex,TA,PConc,Ex,TA,Av,GLQ,1153,Unf,0,598,1751,GasA,Ex,Y,SBrkr,1766,0,0,1766,1,0,2,1,3,1,Ex,8,Typ,2,Gd,Attchd,2008,Fin,3,874,TA,TA,Y,216,36,0,0,0,0,NA,NA,NA,0,12,2008,New,Partial +2164,80,RL,NA,11454,Pave,NA,IR2,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,1Fam,SLvl,8,5,1995,1995,Gable,CompShg,VinylSd,VinylSd,BrkFace,302,Gd,TA,PConc,Gd,TA,Gd,GLQ,770,Unf,0,631,1401,GasA,Ex,Y,SBrkr,1511,0,0,1511,1,0,2,0,3,1,Gd,6,Typ,1,Fa,Attchd,1995,Fin,3,811,TA,TA,Y,168,42,0,0,0,0,NA,NA,NA,0,2,2008,WD,Normal +2165,20,RL,NA,11500,Pave,NA,IR1,Bnk,AllPub,CulDSac,Gtl,ClearCr,Norm,Norm,1Fam,1Story,6,6,1966,1966,Flat,Tar&Grv,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,Gd,Gd,LwQ,262,ALQ,723,197,1182,GasA,Ex,Y,SBrkr,1643,0,0,1643,1,0,2,0,2,1,TA,6,Typ,1,Gd,Attchd,1966,Unf,2,438,TA,TA,Y,339,0,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal +2166,20,RL,65,9750,Pave,NA,Reg,Low,AllPub,Inside,Mod,CollgCr,Norm,Norm,1Fam,1Story,5,7,1994,1994,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,GLQ,722,Unf,0,268,990,GasA,Ex,Y,SBrkr,990,0,0,990,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1997,Unf,2,528,TA,TA,Y,168,0,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal +2167,20,RL,NA,8696,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,1997,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,150,TA,TA,PConc,Gd,TA,Gd,GLQ,1308,Unf,0,110,1418,GasA,Ex,Y,SBrkr,1418,0,0,1418,1,0,2,0,3,1,Gd,5,Typ,1,TA,Attchd,1997,RFn,2,558,TA,TA,Y,208,110,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2168,60,RL,NA,13142,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,CollgCr,PosN,Norm,1Fam,2Story,6,5,1997,1997,Gable,CompShg,VinylSd,VinylSd,BrkFace,128,TA,TA,PConc,Gd,TA,No,GLQ,688,Unf,0,176,864,GasA,Ex,Y,SBrkr,872,899,0,1771,1,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,1997,RFn,2,600,TA,TA,Y,0,96,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2169,60,RL,68,8998,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,120,Gd,TA,PConc,Gd,TA,Mn,GLQ,527,Unf,0,255,782,GasA,Ex,Y,SBrkr,782,870,0,1652,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2000,RFn,2,532,TA,TA,Y,0,70,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2170,60,RL,75,12192,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2000,2001,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,663,Unf,0,265,928,GasA,Ex,Y,SBrkr,928,895,0,1823,1,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2000,RFn,2,626,TA,TA,Y,192,36,0,0,0,0,NA,NA,Shed,4500,5,2008,WD,Normal +2171,20,RL,NA,12250,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,6,1978,1978,Gable,CompShg,HdBoard,HdBoard,BrkFace,180,TA,TA,CBlock,Gd,TA,Mn,ALQ,781,Unf,0,83,864,GasA,Ex,Y,SBrkr,1174,0,0,1174,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1978,Unf,2,528,TA,TA,Y,211,0,280,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2172,20,RL,NA,9216,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,6,1975,1975,Gable,CompShg,HdBoard,HdBoard,BrkFace,176,TA,TA,CBlock,TA,TA,Av,ALQ,294,Unf,0,782,1076,GasA,TA,Y,SBrkr,1076,0,0,1076,0,0,1,1,3,1,TA,5,Typ,1,Fa,Detchd,1985,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,9,2008,WD,Abnorml +2173,20,RL,40,14330,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,6,1975,2001,Gable,CompShg,Plywood,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,88,ALQ,596,180,864,GasA,TA,Y,SBrkr,1558,0,0,1558,1,0,2,0,2,1,TA,5,Min2,0,NA,Attchd,1975,Fin,2,440,TA,TA,Y,140,0,239,0,227,0,NA,NA,NA,0,8,2008,WD,Normal +2174,60,RL,NA,10400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,BrkFace,227,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1257,1257,GasA,Ex,Y,SBrkr,1290,871,0,2161,0,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,2001,RFn,2,570,TA,TA,Y,0,84,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2175,60,RL,NA,9720,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,2Story,9,5,2001,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,134,Gd,TA,PConc,Gd,TA,Mn,GLQ,1194,Unf,0,163,1357,GasA,Ex,Y,SBrkr,1366,581,0,1947,1,0,2,1,3,1,Gd,7,Typ,1,TA,BuiltIn,2001,Fin,3,725,TA,TA,Y,168,116,0,0,0,0,NA,NA,NA,0,1,2008,WD,Normal +2176,20,RL,NA,14860,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2002,2003,Hip,CompShg,VinylSd,VinylSd,BrkFace,240,Gd,TA,PConc,Ex,TA,Gd,GLQ,1538,Unf,0,240,1778,GasA,Ex,Y,SBrkr,1786,0,0,1786,1,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2002,RFn,3,715,TA,TA,Y,182,35,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2177,60,RL,41,10905,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1129,1129,GasA,Ex,Y,SBrkr,1129,1198,0,2327,0,0,2,1,4,1,Gd,9,Typ,1,Gd,BuiltIn,2003,RFn,2,596,TA,TA,Y,0,57,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal +2178,60,RL,96,11690,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,1999,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,192,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,850,850,GasA,Ex,Y,SBrkr,886,878,0,1764,0,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1999,Unf,2,560,TA,TA,Y,120,29,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2179,120,RM,NA,4426,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,TwnhsE,1Story,6,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,205,Gd,TA,PConc,Gd,TA,Mn,GLQ,662,Unf,0,186,848,GasA,Ex,Y,SBrkr,848,0,0,848,1,0,1,0,1,1,Gd,3,Typ,0,NA,Attchd,2004,RFn,2,420,TA,TA,Y,140,0,0,0,0,0,NA,NA,NA,0,2,2008,WD,Normal +2180,90,RM,83,10126,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,Duplex,SFoyer,6,5,1997,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,PConc,Gd,TA,Gd,GLQ,1593,LwQ,162,83,1838,GasA,Ex,Y,SBrkr,1838,0,0,1838,2,0,2,0,2,2,TA,8,Typ,0,NA,Attchd,1998,Unf,3,721,TA,TA,Y,160,67,0,0,0,0,NA,NA,NA,0,7,2008,WD,Abnorml +2181,20,RL,75,9750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,Stone,50,Gd,TA,PConc,Gd,TA,Mn,GLQ,24,Unf,0,1421,1445,GasA,Ex,Y,SBrkr,1445,0,0,1445,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2004,Unf,2,470,TA,TA,Y,0,35,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2182,20,RL,85,11058,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,6,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,212,Gd,TA,PConc,Gd,TA,No,GLQ,56,Unf,0,1508,1564,GasA,Ex,Y,SBrkr,1564,0,0,1564,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2007,RFn,3,814,TA,TA,Y,0,24,0,0,0,0,NA,NA,NA,0,2,2008,WD,Normal +2183,20,RL,74,9627,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,24,Unf,0,1327,1351,GasA,Ex,Y,SBrkr,1361,0,0,1361,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2007,RFn,2,610,TA,TA,Y,0,50,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2184,20,RL,75,9825,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,5,1966,1966,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Rec,609,Unf,0,483,1092,GasA,TA,Y,SBrkr,1092,0,0,1092,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1966,Unf,1,264,TA,TA,Y,259,0,0,0,161,0,NA,MnPrv,NA,0,4,2008,COD,Abnorml +2185,85,RL,64,12102,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,SFoyer,5,5,1976,1976,Gable,CompShg,HdBoard,Plywood,BrkFace,222,TA,TA,CBlock,Gd,Gd,Gd,ALQ,456,Unf,0,0,456,GasA,Ex,Y,SBrkr,1033,0,0,1033,0,1,1,0,3,1,TA,6,Typ,0,NA,BuiltIn,1976,RFn,2,504,Fa,TA,Y,224,0,0,0,0,0,NA,NA,NA,0,4,2008,WD,Family +2186,20,RL,65,6500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,6,6,1976,1976,Hip,CompShg,HdBoard,Plywood,BrkFace,84,TA,TA,CBlock,TA,NA,No,BLQ,1033,Unf,0,94,1127,GasA,TA,Y,SBrkr,1127,0,0,1127,0,1,1,1,3,1,TA,6,Typ,1,Po,Detchd,1991,Unf,2,480,TA,TA,Y,0,0,138,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2187,80,RL,NA,9638,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Edwards,Norm,Norm,1Fam,SLvl,6,6,1977,1977,Hip,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,Av,ALQ,368,Rec,120,541,1029,GasA,TA,Y,SBrkr,1117,0,0,1117,1,0,1,0,3,1,TA,6,Typ,1,Fa,Attchd,1977,RFn,2,542,TA,TA,Y,292,0,0,0,0,0,NA,NA,NA,0,11,2008,WD,Normal +2188,60,RL,72,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,2Story,6,7,1976,2001,Hip,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,Av,ALQ,288,Unf,0,396,684,GasA,TA,Y,SBrkr,684,714,0,1398,0,0,1,1,3,1,TA,6,Typ,1,TA,Attchd,1976,Fin,2,440,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,2,2008,WD,Normal +2189,20,RL,123,47007,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,7,1959,1996,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,3820,0,0,3820,NA,NA,3,1,5,1,Ex,11,Typ,2,Gd,Attchd,1959,Unf,2,624,TA,TA,Y,0,372,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2190,90,RL,65,6012,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,Duplex,1Story,4,5,1955,1955,Gable,CompShg,AsbShng,Plywood,None,0,TA,Fa,PConc,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,N,SBrkr,1152,0,0,1152,0,0,2,0,2,2,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,AdjLand +2191,90,RL,74,6845,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,Duplex,1Story,4,5,1955,1955,Gable,CompShg,WdShing,Wd Shng,BrkCmn,58,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,N,FuseF,1152,0,0,1152,0,0,2,0,2,2,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2192,190,RL,56,6931,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,2fmCon,1Story,4,5,1955,1955,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Av,ALQ,784,Unf,0,0,784,GasA,TA,N,FuseP,784,0,0,784,1,0,1,0,2,1,TA,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,112,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2193,50,RL,60,12180,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,5,7,1938,2007,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,585,585,GasA,Gd,Y,FuseF,585,468,0,1053,0,0,1,1,2,1,Ex,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,42,0,0,0,0,0,NA,NA,NA,0,1,2008,WD,Family +2194,50,RL,57,8050,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,5,8,1947,1993,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,Gd,Y,SBrkr,929,208,0,1137,0,0,1,1,4,1,TA,8,Min1,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2195,20,RL,68,9520,Pave,NA,Reg,Bnk,AllPub,Inside,Mod,Edwards,Norm,Norm,1Fam,1Story,4,5,1953,1953,Gable,CompShg,MetalSd,MetalSd,Stone,115,TA,TA,CBlock,Gd,TA,No,Rec,767,Unf,0,144,911,GasA,TA,Y,SBrkr,930,0,0,930,0,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1953,RFn,1,286,TA,TA,Y,134,0,0,0,0,0,NA,MnPrv,Gar2,3000,5,2008,WD,Normal +2196,80,RL,62,7692,Pave,NA,Reg,Bnk,AllPub,Inside,Mod,Edwards,Norm,Norm,1Fam,SLvl,4,6,1954,1954,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,Ex,TA,Av,Unf,0,Unf,0,416,416,GasA,Gd,Y,FuseA,1204,0,0,1204,0,0,1,0,3,1,TA,6,Typ,0,NA,Basment,1954,Unf,1,312,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2008,WD,Abnorml +2197,30,RL,67,5142,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,4,7,1923,2008,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,ALQ,224,Unf,0,725,949,GasA,TA,Y,SBrkr,949,343,0,1292,0,0,1,1,3,1,Gd,6,Typ,0,NA,Detchd,1923,Unf,1,205,TA,TA,N,0,0,183,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2198,30,RL,60,7290,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,SWISU,Norm,Norm,1Fam,1Story,7,8,1921,1950,Gable,CompShg,WdShing,Wd Shng,BrkFace,174,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,1228,1228,GasA,Ex,Y,SBrkr,1424,0,0,1424,0,0,2,0,2,1,TA,7,Typ,1,Gd,Attchd,1921,Unf,1,312,TA,TA,Y,0,0,90,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2199,90,RL,64,7804,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,Duplex,2.5Unf,6,7,1930,1950,Gable,CompShg,Stucco,Stucco,None,0,TA,TA,BrkTil,TA,TA,No,ALQ,281,Rec,679,0,960,GasA,Ex,Y,SBrkr,960,960,0,1920,2,0,2,2,4,2,TA,10,Typ,2,Gd,Detchd,1930,Unf,2,480,TA,TA,Y,248,0,121,0,0,0,NA,NA,NA,0,7,2008,WD,Abnorml +2200,70,RL,66,8969,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,6,6,1926,1950,Gambrel,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,BLQ,379,Unf,0,265,644,GasA,Ex,Y,SBrkr,672,644,0,1316,1,0,1,0,2,1,TA,6,Typ,1,Gd,Detchd,2001,Unf,1,369,TA,TA,P,0,0,0,0,192,0,NA,MnPrv,NA,0,7,2008,WD,Normal +2201,50,RL,63,15564,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1.5Fin,6,6,1914,1995,Gable,CompShg,Wd Sdng,Wd Shng,None,0,TA,TA,BrkTil,Gd,TA,No,Unf,0,Unf,0,676,676,GasA,Ex,Y,SBrkr,676,588,0,1264,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1994,Unf,2,400,TA,TA,Y,424,0,0,0,0,0,NA,NA,Shed,400,1,2008,WD,Normal +2202,70,RL,54,7609,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Crawfor,Norm,Norm,1Fam,2Story,8,9,1925,1997,Gable,CompShg,Stucco,Stucco,None,0,Gd,Gd,PConc,Fa,TA,No,ALQ,406,Unf,0,392,798,GasA,Ex,Y,SBrkr,798,714,0,1512,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Detchd,1925,Unf,1,180,TA,TA,P,85,16,41,0,0,0,NA,GdPrv,NA,0,6,2008,WD,Normal +2203,70,RL,NA,9650,Pave,NA,IR1,HLS,AllPub,Corner,Gtl,Crawfor,Norm,Norm,1Fam,2Story,6,3,1923,1950,Hip,CompShg,Wd Sdng,Plywood,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,784,784,GasA,TA,Y,SBrkr,819,784,0,1603,0,0,1,0,4,1,TA,7,Typ,1,Gd,Attchd,1980,Unf,2,599,TA,TA,Y,0,217,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2204,50,RL,NA,11700,Pave,Grvl,IR1,HLS,AllPub,Inside,Mod,Crawfor,Norm,Norm,1Fam,1.5Fin,5,6,1937,1995,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,606,Unf,0,336,942,GasA,Ex,Y,SBrkr,1265,673,0,1938,0,0,2,0,4,1,Gd,7,Min2,1,Gd,Detchd,1937,Unf,1,240,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2205,50,RL,NA,9260,Pave,Grvl,IR1,HLS,AllPub,Inside,Gtl,Crawfor,Feedr,Norm,1Fam,1.5Fin,5,4,1938,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,884,884,GasA,TA,Y,FuseF,932,442,0,1374,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1938,Unf,1,225,TA,TA,Y,64,0,0,0,100,0,NA,NA,NA,0,3,2008,WD,Normal +2206,20,RL,79,7801,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Crawfor,Feedr,Norm,1Fam,1Story,6,5,1951,1951,Hip,CompShg,WdShing,Plywood,BrkFace,88,TA,Fa,PConc,TA,TA,No,Rec,500,Unf,0,591,1091,GasA,Fa,N,FuseA,1091,0,0,1091,0,1,1,0,2,1,TA,5,Typ,1,TA,Attchd,1951,Fin,1,344,TA,TA,Y,66,105,0,0,221,0,NA,MnPrv,NA,0,5,2008,WD,Normal +2207,70,RL,100,9670,Pave,NA,IR1,HLS,AllPub,Inside,Mod,Crawfor,Norm,Norm,1Fam,2Story,8,6,1935,1950,Gable,CompShg,BrkFace,Stucco,Stone,40,TA,TA,PConc,TA,Fa,No,LwQ,210,Unf,0,398,608,GasA,TA,Y,SBrkr,983,890,0,1873,0,0,1,1,4,1,TA,9,Typ,2,Gd,Detchd,1935,Fin,2,786,Fa,TA,Y,0,0,207,0,0,0,NA,NA,NA,0,6,2008,WD,Alloca +2208,50,RL,70,12392,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1.5Fin,7,9,1950,2000,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,Gd,No,GLQ,435,Unf,0,397,832,GasA,Ex,Y,SBrkr,1218,943,0,2161,1,0,2,1,3,1,Gd,8,Typ,2,TA,Attchd,1994,Fin,2,506,TA,TA,Y,0,96,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2209,20,RL,56,26073,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Crawfor,Norm,Norm,1Fam,1Story,5,5,1956,1956,Gable,CompShg,BrkFace,MetalSd,None,0,TA,TA,PConc,TA,TA,No,Rec,1116,Unf,0,782,1898,GasA,Ex,Y,FuseA,1898,0,0,1898,0,0,2,1,3,1,TA,7,Typ,2,TA,Attchd,1956,Unf,2,484,TA,TA,Y,0,51,224,0,0,0,NA,MnPrv,NA,0,4,2008,WD,Normal +2210,160,RM,24,1879,Pave,NA,Reg,Lvl,AllPub,CulDSac,Gtl,Blueste,Norm,Norm,Twnhs,2Story,6,6,1980,1980,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,Gd,TA,No,GLQ,366,Unf,0,150,516,GasA,TA,Y,SBrkr,516,516,0,1032,0,0,1,0,2,1,TA,5,Typ,1,TA,Detchd,1980,Unf,2,462,TA,TA,Y,213,0,0,0,0,0,NA,GdPrv,NA,0,12,2008,WD,Normal +2211,30,RM,50,7000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,6,8,1926,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,BrkTil,TA,TA,No,Rec,299,GLQ,40,555,894,GasA,TA,Y,SBrkr,919,0,0,919,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1926,Unf,1,195,TA,TA,P,0,0,116,0,0,0,NA,MnPrv,NA,0,7,2008,WD,Normal +2212,50,RM,60,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,6,8,1940,2006,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,Fa,TA,No,Unf,0,Unf,0,720,720,GasA,Gd,Y,SBrkr,760,330,0,1090,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1940,Unf,1,240,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2213,50,RM,58,8155,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,5,7,1930,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,780,780,GasA,Gd,Y,FuseA,780,420,0,1200,0,0,1,0,4,1,TA,7,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,96,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2214,80,RM,75,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,SLvl,5,5,1967,1967,Hip,CompShg,HdBoard,Plywood,None,0,Fa,TA,CBlock,Gd,TA,Mn,Rec,257,Unf,0,367,624,GasA,Ex,Y,SBrkr,1092,564,0,1656,0,0,1,1,3,1,TA,7,Mod,1,Po,Attchd,1967,Unf,1,288,TA,TA,Y,0,180,0,0,100,0,NA,MnPrv,NA,0,7,2008,WD,Normal +2215,30,RM,60,7392,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,5,7,1930,1995,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,520,520,GasA,TA,Y,FuseA,912,0,0,912,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1934,RFn,1,360,TA,TA,Y,0,90,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2216,50,RM,75,9000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,5,5,1958,1958,Gable,CompShg,WdShing,Wd Shng,BrkFace,162,TA,TA,CBlock,TA,TA,No,ALQ,330,Unf,0,821,1151,GasA,Gd,Y,FuseA,1151,804,0,1955,0,0,2,0,4,1,TA,7,Typ,0,NA,Attchd,1958,Fin,1,356,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,1,2008,WD,Normal +2217,20,NA,80,14584,Pave,NA,Reg,Low,AllPub,Inside,Mod,IDOTRR,Norm,Norm,1Fam,1Story,1,5,1952,1952,Gable,CompShg,AsbShng,VinylSd,None,0,Fa,Po,Slab,NA,NA,NA,NA,0,NA,0,0,0,Wall,Po,N,FuseA,733,0,0,733,0,0,1,0,2,1,Fa,4,NA,0,NA,Attchd,1952,Unf,2,487,Fa,Po,N,0,0,0,0,0,0,NA,NA,NA,0,2,2008,WD,Abnorml +2218,70,C (all),60,5280,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Feedr,Norm,1Fam,2Story,4,7,1895,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,Stone,NA,Fa,No,Unf,0,Unf,0,173,173,GasA,Ex,N,SBrkr,825,536,0,1361,0,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1895,Unf,1,185,Fa,TA,Y,0,123,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2219,50,C (all),52,5150,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Feedr,Norm,1Fam,1.5Fin,4,7,1910,2000,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,PConc,NA,TA,No,Unf,0,Unf,0,356,356,GasA,TA,N,FuseA,671,378,0,1049,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1910,Unf,1,195,Po,Fa,N,0,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2220,70,C (all),60,9000,Grvl,NA,Reg,Bnk,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,2Story,4,6,1920,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,Stone,Fa,Fa,Mn,Unf,0,Unf,0,592,592,GasA,Ex,Y,SBrkr,432,432,0,864,0,0,1,1,3,1,Fa,5,Min2,0,NA,Detchd,1920,Unf,1,216,Fa,Fa,N,0,30,160,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2221,120,RM,44,3843,Pave,NA,IR1,HLS,AllPub,Inside,Mod,Crawfor,Norm,Norm,TwnhsE,1Story,8,5,2007,2008,Hip,CompShg,CemntBd,CmentBd,Stone,186,Ex,TA,PConc,Ex,TA,Gd,GLQ,1476,Unf,0,120,1596,GasA,Ex,Y,SBrkr,1648,0,0,1648,1,1,2,0,2,1,Ex,5,Typ,1,Gd,Attchd,2007,Fin,2,525,TA,TA,Y,162,53,0,153,0,0,NA,NA,NA,0,8,2008,New,Partial +2222,120,RM,44,3811,Pave,NA,IR1,HLS,AllPub,Inside,Mod,Crawfor,Norm,Norm,TwnhsE,1Story,7,5,2004,2005,Hip,CompShg,CemntBd,CmentBd,Stone,174,Gd,TA,PConc,Ex,TA,Gd,GLQ,1474,Unf,0,120,1594,GasA,Ex,Y,SBrkr,1646,0,0,1646,1,1,2,0,2,1,Ex,5,Typ,1,Gd,Attchd,2004,Fin,2,482,TA,TA,Y,128,53,0,0,155,0,NA,NA,NA,0,7,2008,WD,Normal +2223,20,RL,NA,23730,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,7,5,1996,1997,Gable,CompShg,MetalSd,MetalSd,BrkFace,668,Gd,TA,PConc,Ex,TA,Mn,GLQ,700,Unf,0,1140,1840,GasA,Ex,Y,SBrkr,2032,0,0,2032,1,0,3,0,3,1,Gd,7,Typ,0,NA,Attchd,1996,Fin,3,786,TA,TA,Y,0,46,192,0,0,0,NA,NA,NA,0,9,2008,WD,Normal +2224,60,RL,NA,11050,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,2Story,7,5,1996,1997,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,910,910,GasA,Ex,Y,SBrkr,910,910,0,1820,0,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1996,Unf,3,816,TA,TA,Y,318,32,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal +2225,90,RL,76,10260,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,Duplex,2Story,5,4,1976,1976,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,936,936,0,1872,0,0,2,2,4,2,TA,8,Typ,0,NA,Attchd,1976,Unf,2,484,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2008,WD,Abnorml +2226,20,RL,74,9990,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,4,5,1991,1991,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,No,ALQ,1383,Unf,0,297,1680,GasA,Gd,Y,SBrkr,1689,0,0,1689,1,0,2,0,3,1,TA,6,Typ,1,TA,Attchd,1991,Unf,2,432,TA,TA,Y,428,120,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2227,120,RL,42,4084,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,TwnhsE,1Story,7,6,1986,1986,Gable,CompShg,VinylSd,VinylSd,BrkFace,340,Gd,TA,CBlock,Gd,TA,Av,GLQ,893,Unf,0,384,1277,GasA,Gd,Y,SBrkr,1501,0,0,1501,1,0,2,0,2,1,Gd,6,Typ,1,TA,Attchd,1986,Fin,2,512,TA,TA,Y,240,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2228,20,RL,74,11563,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2006,2007,Hip,CompShg,VinylSd,VinylSd,Stone,258,Gd,TA,PConc,Ex,TA,Gd,GLQ,1036,Unf,0,482,1518,GasA,Ex,Y,SBrkr,1537,0,0,1537,1,0,2,0,3,1,Gd,8,Typ,0,NA,Attchd,2007,Fin,3,788,TA,TA,Y,0,26,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2229,60,RL,107,12852,Pave,NA,IR1,HLS,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,2Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,770,Unf,0,150,920,GasA,Ex,Y,SBrkr,920,860,0,1780,1,0,2,1,3,1,Gd,6,Typ,1,Gd,Attchd,2007,Fin,2,612,TA,TA,Y,0,192,0,0,0,0,NA,NA,NA,0,1,2008,New,Partial +2230,80,RL,73,9802,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,SLvl,5,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,352,352,GasA,Gd,Y,SBrkr,712,730,0,1442,0,0,2,1,3,1,TA,6,Typ,0,NA,BuiltIn,2007,Fin,2,400,TA,TA,Y,100,0,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2231,60,RL,81,12018,Pave,NA,IR1,HLS,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,2Story,7,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,Stone,60,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,796,796,GasA,Ex,Y,SBrkr,796,816,0,1612,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2008,Fin,3,666,TA,TA,Y,0,64,0,0,0,0,NA,NA,NA,0,10,2008,New,Partial +2232,20,RL,75,12890,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,6,5,1989,1989,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,128,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,1495,1495,GasA,Ex,Y,SBrkr,1495,0,0,1495,0,0,2,0,3,1,TA,8,Typ,1,TA,Attchd,1989,Unf,2,438,TA,TA,Y,252,0,192,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2233,20,RL,93,18265,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,1Story,6,5,1986,1986,Gable,CompShg,Plywood,HdBoard,BrkFace,228,Gd,Gd,CBlock,Gd,Gd,Av,GLQ,920,Rec,60,276,1256,GasA,Ex,Y,SBrkr,1256,0,0,1256,0,0,2,0,3,1,Gd,6,Typ,1,Fa,Attchd,1986,Unf,2,578,TA,TA,Y,282,0,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal +2234,20,RL,82,11202,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2003,2003,Hip,CompShg,VinylSd,VinylSd,BrkFace,206,Gd,TA,PConc,Ex,TA,Av,GLQ,1029,Unf,0,403,1432,GasA,Ex,Y,SBrkr,1440,0,0,1440,1,0,2,0,3,1,Gd,7,Typ,1,TA,Attchd,2003,Fin,2,467,TA,TA,Y,185,95,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2235,20,RL,NA,7915,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,6,5,1999,2000,Hip,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,Mn,GLQ,1223,Unf,0,443,1666,GasA,Ex,Y,SBrkr,1675,0,0,1675,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1999,RFn,2,435,TA,TA,Y,165,52,0,0,0,0,NA,NA,NA,0,12,2008,WD,Normal +2236,20,RL,79,11449,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,1011,Unf,0,873,1884,GasA,Ex,Y,SBrkr,1728,0,0,1728,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2007,Fin,2,520,TA,TA,Y,0,276,0,0,0,0,NA,NA,NA,0,1,2008,WD,Normal +2237,20,RL,85,11447,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,674,Gd,TA,PConc,Ex,TA,Av,GLQ,1571,Unf,0,393,1964,GasA,Ex,Y,SBrkr,1964,0,0,1964,1,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2005,Fin,3,892,TA,TA,Y,0,265,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2238,90,RM,97,8940,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Mitchel,Norm,Norm,Duplex,SFoyer,7,5,1997,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,200,TA,Gd,PConc,Gd,Gd,Gd,GLQ,1309,Unf,0,35,1344,GasA,Ex,Y,SBrkr,1344,0,0,1344,2,0,2,0,2,2,TA,8,Typ,0,NA,Attchd,1997,Fin,4,784,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2008,WD,Alloca +2239,20,RL,77,9278,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Mitchel,Feedr,Artery,1Fam,1Story,5,5,2007,2008,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1092,1092,GasA,Ex,Y,SBrkr,1092,0,0,1092,0,0,1,0,2,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,52,0,0,0,0,NA,NA,NA,0,2,2008,WD,Abnorml +2240,120,RM,32,4500,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Mitchel,Norm,Norm,TwnhsE,1Story,6,5,1997,1997,Hip,CompShg,VinylSd,VinylSd,BrkFace,197,TA,TA,PConc,Ex,TA,No,GLQ,864,Unf,0,325,1189,GasA,Ex,Y,SBrkr,1189,0,0,1189,1,0,2,0,2,1,TA,4,Typ,0,NA,Attchd,1997,RFn,2,392,TA,TA,Y,0,122,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2241,85,RL,150,14137,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Mitchel,Norm,Norm,1Fam,SFoyer,4,5,1964,1964,Gable,CompShg,HdBoard,HdBoard,BrkFace,98,TA,TA,CBlock,Gd,TA,Av,ALQ,865,LwQ,247,88,1200,GasA,Gd,Y,SBrkr,1200,0,0,1200,1,0,1,0,3,1,TA,6,Typ,0,NA,2Types,1964,Fin,3,850,TA,TA,Y,0,119,0,0,171,0,NA,NA,NA,0,11,2008,ConLD,Normal +2242,120,RM,NA,4224,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,1Story,5,6,1975,1975,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,PConc,Gd,TA,No,GLQ,769,Unf,0,271,1040,GasA,Gd,Y,SBrkr,1040,0,0,1040,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1975,Unf,2,499,TA,TA,Y,0,100,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2243,160,RM,41,2665,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,2Story,5,7,1976,1976,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,PConc,Gd,TA,No,ALQ,318,Unf,0,232,550,GasA,TA,Y,SBrkr,925,550,0,1475,0,0,2,0,4,1,TA,6,Typ,1,TA,Attchd,1976,Unf,1,336,TA,TA,Y,92,26,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal +2244,180,RM,21,1974,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,SFoyer,4,7,1973,2006,Gable,CompShg,CemntBd,CmentBd,None,0,TA,Gd,CBlock,Gd,TA,Av,GLQ,501,Unf,0,25,526,GasA,Gd,Y,SBrkr,526,462,0,988,1,0,1,0,2,1,TA,5,Typ,0,NA,BuiltIn,1973,RFn,1,297,TA,TA,Y,120,101,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal +2245,180,RM,21,1596,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,SLvl,4,6,1973,1973,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,Gd,TA,Gd,GLQ,437,Unf,0,25,462,GasA,TA,Y,SBrkr,526,462,0,988,1,0,1,0,1,1,TA,4,Typ,1,Po,BuiltIn,1973,RFn,1,297,TA,TA,Y,0,101,0,120,0,0,NA,GdWo,NA,0,7,2008,WD,Normal +2246,20,RL,NA,17979,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,6,1968,1968,Gable,CompShg,Plywood,Plywood,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,785,Unf,0,328,1113,GasA,Ex,Y,SBrkr,1160,0,0,1160,1,0,1,0,3,1,Gd,6,Typ,0,NA,Attchd,1968,Unf,1,257,TA,TA,Y,81,0,0,0,0,0,NA,GdWo,Shed,500,2,2008,WD,Normal +2247,160,RM,21,1477,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,2Story,6,9,1970,2007,Gable,CompShg,CemntBd,CmentBd,None,0,TA,Gd,CBlock,TA,TA,No,GLQ,358,Unf,0,188,546,GasA,Ex,Y,SBrkr,546,546,0,1092,0,0,2,1,3,1,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,187,0,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal +2248,20,RL,59,6490,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,7,1983,1983,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,TA,No,GLQ,534,Unf,0,282,816,GasA,Ex,Y,SBrkr,816,0,0,816,0,1,1,0,2,1,TA,4,Typ,0,NA,Attchd,1983,Unf,1,264,TA,TA,Y,315,0,0,0,0,0,NA,GdWo,NA,0,4,2008,WD,Normal +2249,20,RL,60,6600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,6,1982,2005,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,TA,TA,No,GLQ,638,Unf,0,207,845,GasA,Gd,Y,SBrkr,845,0,0,845,0,0,1,0,3,1,Gd,6,Typ,0,NA,Attchd,1982,Unf,1,264,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal +2250,20,RL,74,12395,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,6,1984,1984,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,647,Unf,0,217,864,GasA,TA,Y,SBrkr,889,0,0,889,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1984,Unf,2,484,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal +2251,70,NA,NA,56600,Pave,NA,IR1,Low,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,2.5Unf,5,1,1900,1950,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,686,686,GasA,Ex,Y,SBrkr,1150,686,0,1836,0,0,2,0,4,1,TA,7,Maj1,0,NA,Detchd,1900,Unf,1,288,TA,Fa,N,0,0,0,0,0,0,NA,NA,NA,0,1,2008,WD,Normal +2252,20,RL,85,10667,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1971,1971,Gable,CompShg,MetalSd,MetalSd,BrkFace,302,TA,TA,CBlock,TA,TA,No,BLQ,838,Unf,0,749,1587,GasA,TA,Y,SBrkr,1587,0,0,1587,0,0,2,0,3,1,TA,7,Typ,1,Gd,Attchd,1971,Unf,2,525,TA,TA,Y,0,44,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2253,80,RL,56,8872,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,6,5,1997,1997,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,384,384,GasA,Gd,Y,SBrkr,754,630,0,1384,0,0,2,1,3,1,TA,7,Typ,1,TA,BuiltIn,1997,Fin,2,390,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2254,80,RL,NA,10147,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,6,5,1994,1994,Gable,CompShg,HdBoard,HdBoard,BrkFace,32,TA,TA,PConc,Gd,TA,No,LwQ,186,Unf,0,206,392,GasA,Gd,Y,SBrkr,924,770,0,1694,0,0,2,1,3,1,TA,7,Typ,1,TA,BuiltIn,1994,Fin,2,398,TA,TA,Y,256,64,0,0,0,0,NA,MnPrv,NA,0,3,2007,WD,Normal +2255,60,RL,NA,8637,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1999,2000,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,ALQ,871,Unf,0,52,923,GasA,Gd,Y,SBrkr,947,767,0,1714,1,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,2000,Fin,2,451,TA,TA,Y,256,48,0,0,0,0,NA,NA,NA,0,4,2007,WD,Abnorml +2256,60,RL,63,7875,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,1996,1996,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,No,Rec,414,Unf,0,277,691,GasA,Gd,Y,SBrkr,691,862,0,1553,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,1996,Fin,2,420,TA,TA,Y,0,44,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2257,60,RL,60,7500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1999,2003,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,938,938,GasA,Ex,Y,SBrkr,957,1342,0,2299,0,0,3,1,5,1,TA,7,Typ,1,TA,Attchd,1999,Fin,2,482,TA,TA,Y,188,30,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2258,20,RL,NA,9556,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,1Story,7,5,1992,1993,Gable,CompShg,HdBoard,HdBoard,BrkFace,52,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1168,1168,GasA,Gd,Y,SBrkr,1187,0,0,1187,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1992,RFn,2,420,TA,TA,Y,0,21,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2259,60,RL,NA,7655,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1993,1994,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,903,903,GasA,Gd,Y,SBrkr,910,732,0,1642,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1993,RFn,2,392,TA,TA,Y,290,84,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2260,20,RL,160,18160,Grvl,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,1Story,6,6,1964,1964,Gable,CompShg,HdBoard,HdBoard,BrkCmn,138,TA,TA,CBlock,TA,TA,Av,BLQ,550,Unf,0,752,1302,GasA,Fa,Y,SBrkr,1128,0,0,1128,1,0,1,0,3,1,TA,6,Typ,1,TA,Attchd,1964,Unf,2,480,TA,TA,P,0,108,246,0,0,0,NA,MnPrv,NA,0,3,2007,WD,Alloca +2261,120,RL,38,4740,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,1988,1988,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,CBlock,Gd,TA,Gd,GLQ,248,Unf,0,918,1166,GasA,Gd,Y,SBrkr,1179,0,0,1179,1,0,2,0,2,1,TA,5,Typ,0,NA,Attchd,1988,RFn,2,480,TA,TA,Y,0,108,0,0,135,0,NA,NA,NA,0,10,2007,WD,Normal +2262,120,RL,35,5118,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,1990,1990,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Gd,TA,Gd,GLQ,926,Unf,0,386,1312,GasA,Gd,Y,SBrkr,1321,0,0,1321,1,0,1,0,1,1,Gd,4,Typ,1,TA,Attchd,1990,RFn,2,484,TA,TA,Y,0,64,140,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2263,60,RL,98,12328,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,StoneBr,Norm,Norm,1Fam,2Story,8,5,2005,2005,Hip,CompShg,VinylSd,VinylSd,Stone,146,Gd,TA,PConc,Ex,TA,Mn,GLQ,986,Unf,0,163,1149,GasA,Ex,Y,SBrkr,1164,1377,0,2541,1,0,3,1,4,1,Ex,10,Typ,1,Gd,BuiltIn,2005,Fin,3,729,TA,TA,Y,120,32,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2264,20,RL,52,51974,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,StoneBr,PosN,Norm,1Fam,1Story,9,5,2006,2007,Hip,CompShg,VinylSd,VinylSd,BrkFace,710,Ex,TA,PConc,Ex,TA,Av,GLQ,1101,Unf,0,1559,2660,GasA,Ex,Y,SBrkr,2338,0,0,2338,1,0,2,1,4,1,Gd,8,Typ,2,Gd,Attchd,2005,Fin,3,1110,Gd,TA,Y,0,135,0,0,322,0,NA,NA,NA,0,6,2007,New,Partial +2265,190,RL,195,41600,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,Gilbert,Norm,Norm,2fmCon,1Story,5,5,1969,1990,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,Gd,ALQ,1047,Unf,0,53,1100,GasW,TA,Y,SBrkr,1424,0,0,1424,1,0,1,1,3,1,TA,7,Mod,0,NA,2Types,1969,Unf,3,828,TA,TA,N,144,0,0,0,0,0,NA,NA,NA,0,11,2007,WD,Normal +2266,120,RL,61,8035,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,9,5,2006,2006,Gable,CompShg,MetalSd,MetalSd,BrkFace,165,Gd,TA,PConc,Ex,TA,Gd,GLQ,797,Unf,0,815,1612,GasA,Ex,Y,SBrkr,1612,0,0,1612,1,0,2,0,2,1,Ex,6,Typ,1,Gd,Attchd,2006,Fin,2,556,TA,TA,Y,0,164,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2267,20,RL,85,14082,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,StoneBr,Norm,Norm,1Fam,1Story,8,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,945,Gd,TA,PConc,Ex,Gd,Gd,GLQ,1558,Unf,0,662,2220,GasA,Ex,Y,SBrkr,2234,0,0,2234,1,0,1,1,1,1,Gd,7,Typ,1,Gd,Attchd,2006,RFn,2,724,TA,TA,Y,390,80,0,0,0,0,NA,NA,NA,0,1,2007,WD,Normal +2268,20,RL,81,13870,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,StoneBr,PosA,PosA,1Fam,1Story,10,5,2006,2007,Hip,CompShg,CemntBd,CmentBd,BrkFace,250,Ex,TA,PConc,Ex,TA,Gd,GLQ,1152,Unf,0,590,1742,GasA,Ex,Y,SBrkr,2042,0,0,2042,1,0,2,0,3,1,Ex,8,Typ,1,Gd,Attchd,2007,Fin,3,724,TA,TA,Y,240,52,0,0,174,0,NA,NA,NA,0,10,2007,New,Partial +2269,20,RL,NA,10960,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,5,1984,1984,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,No,GLQ,256,Unf,0,1028,1284,GasA,TA,Y,SBrkr,1284,0,0,1284,1,0,2,0,3,1,TA,5,Typ,0,NA,Attchd,1984,Unf,2,480,TA,TA,Y,0,0,192,0,0,0,NA,NA,NA,0,4,2007,COD,Abnorml +2270,60,RL,78,12090,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,7,7,1981,2003,Gable,CompShg,MetalSd,MetalSd,BrkFace,306,Gd,TA,CBlock,Gd,TA,No,ALQ,321,Unf,0,404,725,GasA,Ex,Y,SBrkr,725,754,0,1479,0,0,2,1,3,1,Gd,6,Typ,1,TA,Attchd,1981,RFn,2,484,TA,TA,Y,167,72,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2271,20,RL,93,12299,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,7,6,1978,1985,Gable,CompShg,Plywood,Plywood,Stone,67,TA,TA,CBlock,Gd,TA,No,GLQ,1328,Unf,0,201,1529,GasA,TA,Y,SBrkr,1664,0,0,1664,1,0,2,0,3,1,Gd,7,Typ,1,TA,Attchd,1978,Fin,2,663,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,9,2007,WD,Normal +2272,60,RL,61,11339,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,PosA,Norm,1Fam,2Story,7,5,1979,1979,Hip,WdShake,HdBoard,Plywood,BrkFace,549,TA,TA,CBlock,Gd,TA,No,ALQ,758,Unf,0,22,780,GasA,TA,Y,SBrkr,1085,845,0,1930,1,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1979,Fin,2,481,TA,TA,Y,192,72,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2273,20,RL,79,11850,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,6,1984,1984,Gable,CompShg,Plywood,Plywood,BrkFace,98,TA,TA,CBlock,Gd,TA,No,ALQ,781,Unf,0,372,1153,GasA,TA,Y,SBrkr,1177,0,0,1177,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1984,Fin,2,495,TA,TA,Y,204,103,0,0,0,0,NA,MnPrv,NA,0,8,2007,WD,Normal +2274,20,RL,80,10400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,5,1979,1999,Gable,CompShg,MetalSd,MetalSd,BrkFace,253,TA,TA,CBlock,Gd,TA,No,GLQ,903,Unf,0,356,1259,GasA,Ex,Y,SBrkr,1353,0,0,1353,1,0,2,0,2,1,TA,5,Typ,1,TA,Attchd,1979,RFn,2,478,TA,TA,Y,240,141,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2275,20,RL,128,13001,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,PosN,Norm,1Fam,1Story,6,5,1971,1971,Hip,CompShg,HdBoard,HdBoard,BrkFace,176,TA,TA,CBlock,TA,TA,Mn,ALQ,492,BLQ,121,1012,1625,GasA,TA,Y,SBrkr,1220,0,0,1220,0,1,2,0,2,1,TA,6,Typ,1,TA,Attchd,1971,Unf,2,944,TA,TA,Y,0,0,249,0,0,0,NA,NA,NA,0,9,2007,WD,Normal +2276,80,RL,64,8991,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NWAmes,PosN,Norm,1Fam,SLvl,7,6,1976,1976,Gable,CompShg,Plywood,Plywood,Stone,130,TA,TA,CBlock,Gd,TA,Gd,GLQ,624,Rec,604,0,1228,GasA,TA,Y,SBrkr,1324,0,0,1324,0,1,2,0,3,1,Gd,5,Typ,1,Fa,Attchd,1976,Fin,2,585,TA,TA,Y,407,36,0,0,0,0,NA,NA,NA,0,2,2007,WD,Normal +2277,60,RL,80,8000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,PosN,Norm,1Fam,2Story,6,6,1974,1974,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,ALQ,931,LwQ,153,0,1084,GasA,TA,Y,SBrkr,1084,793,0,1877,1,0,2,1,4,1,TA,8,Typ,1,TA,Attchd,1974,Unf,2,488,TA,TA,Y,0,96,0,0,0,0,NA,NA,NA,0,11,2007,WD,Normal +2278,20,RL,63,9457,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1970,1990,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,566,Unf,0,359,925,GasA,TA,Y,SBrkr,1422,0,0,1422,1,0,1,0,3,1,TA,7,Min2,0,NA,Detchd,1988,Unf,2,576,TA,TA,Y,252,0,0,0,0,0,NA,GdWo,NA,0,9,2007,WD,Normal +2279,20,RL,66,7920,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1970,2002,Gable,CompShg,HdBoard,HdBoard,BrkFace,32,TA,TA,CBlock,TA,TA,No,ALQ,81,GLQ,619,214,914,GasA,Ex,Y,SBrkr,914,0,0,914,0,0,1,0,3,1,Ex,5,Typ,0,NA,Attchd,1970,RFn,1,368,TA,Gd,Y,120,0,0,0,0,0,NA,NA,NA,0,10,2007,WD,Normal +2280,20,RL,NA,17199,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,7,1961,1961,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,BrkTil,TA,TA,No,ALQ,314,Unf,0,600,914,GasA,Ex,Y,SBrkr,914,0,0,914,0,0,1,0,2,1,TA,4,Typ,0,NA,Basment,1961,Unf,1,270,Fa,TA,Y,140,0,0,0,0,0,NA,GdWo,NA,0,7,2007,WD,Normal +2281,120,RH,33,4113,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,TwnhsE,1Story,6,5,2001,2001,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,1337,1337,GasA,Ex,Y,SBrkr,1337,0,0,1337,0,0,2,0,2,1,Gd,5,Typ,1,TA,Attchd,2001,Fin,2,511,TA,TA,Y,136,68,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2282,120,RH,26,10943,Pave,NA,IR2,Lvl,AllPub,FR2,Gtl,NAmes,Norm,Norm,TwnhsE,1Story,6,5,1997,1998,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,930,Unf,0,475,1405,GasA,Ex,Y,SBrkr,1337,0,0,1337,1,0,2,0,2,1,Gd,5,Typ,1,TA,Attchd,1997,Fin,2,522,TA,TA,Y,0,68,0,0,0,0,NA,NA,NA,0,10,2007,WD,Normal +2283,160,RM,21,2205,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,6,1973,1973,Gable,CompShg,HdBoard,HdBoard,BrkFace,567,TA,TA,CBlock,TA,TA,No,ALQ,312,Unf,0,213,525,GasA,TA,Y,SBrkr,525,567,0,1092,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1973,Unf,1,264,TA,TA,Y,144,0,0,0,0,0,NA,NA,NA,0,2,2007,WD,Normal +2284,160,RM,21,2058,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,5,1973,1973,Gable,CompShg,HdBoard,HdBoard,BrkFace,265,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,672,672,GasA,Ex,Y,SBrkr,672,546,0,1218,0,0,1,1,4,1,Ex,7,Typ,0,NA,Detchd,1973,Unf,1,264,TA,TA,Y,0,28,0,0,0,0,NA,NA,NA,0,12,2007,WD,Normal +2285,120,RL,24,2304,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NPkVill,Norm,Norm,Twnhs,1Story,7,7,1978,1978,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,Gd,TA,No,GLQ,632,Unf,6,423,1061,GasA,TA,Y,SBrkr,1055,0,0,1055,0,0,2,0,2,1,TA,4,Typ,0,NA,Attchd,1978,Unf,1,319,TA,TA,Y,108,32,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal +2286,20,RL,65,7150,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1966,1966,Hip,CompShg,HdBoard,HdBoard,BrkFace,52,TA,TA,CBlock,TA,TA,No,BLQ,725,Unf,0,263,988,GasA,TA,Y,SBrkr,988,0,0,988,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1974,Unf,1,360,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2007,WD,Normal +2287,20,RL,96,12469,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2006,2007,Hip,CompShg,VinylSd,VinylSd,Stone,378,Ex,TA,PConc,Ex,TA,Gd,GLQ,1151,Unf,0,639,1790,GasA,Ex,Y,SBrkr,1816,0,0,1816,1,0,2,0,3,1,Ex,7,Typ,1,Gd,Attchd,2007,Fin,3,730,TA,TA,Y,186,36,0,0,0,0,NA,NA,NA,0,8,2007,New,Partial +2288,20,RL,91,11825,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2006,2007,Gable,CompShg,CemntBd,CmentBd,Stone,302,Gd,TA,PConc,Ex,TA,Mn,Unf,0,Unf,0,1694,1694,GasA,Ex,Y,SBrkr,1694,0,0,1694,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2006,RFn,3,856,TA,TA,Y,0,112,0,0,0,0,NA,NA,NA,0,6,2007,New,Partial +2289,20,RL,110,14333,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Gd,GLQ,1518,Unf,0,590,2108,GasA,Ex,Y,SBrkr,2122,0,0,2122,1,0,2,1,2,1,Gd,7,Typ,1,Ex,Attchd,2007,Fin,3,938,TA,TA,Y,130,142,0,0,0,0,NA,NA,NA,0,11,2007,New,Partial +2290,60,RL,107,13641,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2007,2007,Hip,CompShg,CemntBd,CmentBd,BrkFace,456,Ex,TA,PConc,Ex,TA,Gd,GLQ,1304,Unf,0,630,1934,GasA,Ex,Y,SBrkr,1943,713,0,2656,1,0,2,1,3,1,Ex,8,Typ,1,Gd,Attchd,2007,RFn,3,1040,TA,TA,Y,268,58,0,0,0,0,NA,NA,NA,0,12,2007,New,Partial +2291,60,RL,110,13440,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2006,2007,Hip,CompShg,VinylSd,VinylSd,BrkFace,190,Gd,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1108,1108,GasA,Ex,Y,SBrkr,1148,1402,0,2550,0,0,2,1,4,1,Ex,11,Typ,1,Gd,BuiltIn,2006,Fin,3,670,TA,TA,Y,120,39,0,0,0,0,NA,NA,NA,0,3,2007,New,Partial +2292,20,RL,105,15431,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,10,5,2005,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,400,Ex,TA,PConc,Ex,TA,Gd,GLQ,1430,Unf,0,564,1994,GasA,Ex,Y,SBrkr,2046,0,0,2046,1,0,2,1,2,1,Ex,7,Typ,2,Gd,Attchd,2005,Fin,3,878,TA,TA,Y,188,65,0,0,175,0,NA,NA,NA,0,8,2007,WD,Normal +2293,20,RL,107,13891,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2007,2007,Hip,CompShg,VinylSd,VinylSd,Stone,456,Ex,TA,PConc,Ex,TA,Gd,GLQ,1812,Unf,0,740,2552,GasA,Ex,Y,SBrkr,2552,0,0,2552,1,0,2,0,3,1,Ex,8,Typ,2,Ex,Attchd,2007,Fin,3,932,TA,TA,Y,130,28,0,0,0,0,NA,NA,NA,0,10,2007,New,Partial +2294,60,RL,118,13654,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2005,2006,Gable,CompShg,MetalSd,MetalSd,BrkFace,365,Gd,TA,PConc,Ex,TA,Gd,Unf,0,Unf,0,1704,1704,GasA,Ex,Y,SBrkr,1722,1036,0,2758,0,0,2,1,4,1,Ex,9,Typ,1,Ex,BuiltIn,2005,Fin,3,814,TA,TA,Y,282,55,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2295,20,RL,59,17169,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,NridgHt,Norm,Norm,1Fam,1Story,10,5,2007,2007,Hip,CompShg,CemntBd,CmentBd,BrkFace,970,Ex,TA,PConc,Ex,TA,Av,GLQ,1684,Unf,0,636,2320,GasA,Ex,Y,SBrkr,2290,0,0,2290,2,0,2,1,2,1,Ex,7,Typ,1,Gd,Attchd,2007,Fin,3,1174,TA,TA,Y,192,30,0,0,0,0,NA,NA,NA,0,8,2007,New,Partial +2296,60,RL,134,16659,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2007,2008,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1582,1582,GasA,Ex,Y,SBrkr,1582,570,0,2152,0,0,2,1,3,1,Gd,7,Typ,1,Gd,Detchd,2007,Unf,2,728,TA,TA,Y,0,368,0,0,0,0,NA,NA,NA,0,6,2007,New,Partial +2297,60,RL,82,9709,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,120,Ex,TA,PConc,Ex,TA,Gd,GLQ,778,Unf,0,140,918,GasA,Ex,Y,SBrkr,958,1142,0,2100,1,0,2,1,3,1,Ex,8,Typ,2,Gd,BuiltIn,2007,Fin,3,786,TA,TA,Y,172,104,0,0,0,0,NA,NA,NA,0,9,2007,New,Partial +2298,20,RL,94,13615,Pave,NA,IR1,HLS,AllPub,Corner,Mod,NridgHt,Norm,Norm,1Fam,1Story,9,5,2006,2006,Hip,CompShg,MetalSd,MetalSd,Stone,510,Ex,TA,PConc,Ex,TA,Gd,Unf,0,Unf,0,1802,1802,GasA,Ex,Y,SBrkr,1802,0,0,1802,0,0,2,1,3,1,Ex,7,Typ,1,Gd,Attchd,2006,Fin,3,843,TA,TA,Y,158,105,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2299,60,RL,99,13069,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,502,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1706,1706,GasA,Ex,Y,SBrkr,1718,1238,0,2956,0,0,2,1,5,1,Ex,11,Typ,1,Ex,BuiltIn,2004,RFn,3,916,TA,TA,Y,194,50,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2300,60,RL,110,14277,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,280,Gd,TA,PConc,Ex,TA,Mn,GLQ,938,Unf,0,379,1317,GasA,Ex,Y,SBrkr,1217,1168,0,2385,1,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2003,Fin,3,818,TA,TA,Y,192,228,0,0,0,0,NA,NA,NA,0,1,2007,WD,Normal +2301,60,RL,NA,12568,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2007,2007,Hip,CompShg,VinylSd,VinylSd,Stone,246,Gd,TA,PConc,Ex,TA,Av,GLQ,669,Unf,0,226,895,GasA,Ex,Y,SBrkr,895,923,0,1818,1,0,2,1,3,1,Ex,8,Typ,1,Gd,Attchd,2007,Fin,3,774,TA,TA,Y,196,104,0,0,0,0,NA,NA,NA,0,8,2007,New,Partial +2302,20,RL,70,9926,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,210,Gd,TA,PConc,Gd,TA,Mn,GLQ,1178,Unf,0,436,1614,GasA,Ex,Y,SBrkr,1614,0,0,1614,1,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2005,RFn,3,878,TA,TA,Y,100,38,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2303,20,RL,71,9254,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,210,Gd,TA,PConc,Gd,TA,No,GLQ,119,Unf,0,1602,1721,GasA,Ex,Y,SBrkr,1721,0,0,1721,1,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2005,RFn,2,554,TA,TA,Y,168,27,0,0,0,0,NA,NA,NA,0,1,2007,WD,Normal +2304,60,RL,92,10732,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1298,1298,GasA,Ex,Y,SBrkr,1298,530,0,1828,0,0,2,1,3,1,Gd,7,Typ,0,NA,BuiltIn,2006,RFn,3,876,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,2,2007,New,Partial +2305,120,RL,34,3901,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,Twnhs,1Story,6,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,Stone,182,Gd,TA,PConc,Gd,TA,Av,ALQ,866,Unf,0,436,1302,GasA,Ex,Y,SBrkr,1302,0,0,1302,1,0,1,1,1,1,Gd,5,Typ,1,Gd,Attchd,2005,RFn,2,631,TA,TA,Y,110,50,0,0,0,0,NA,NA,NA,0,8,2007,New,Partial +2306,120,RL,34,3903,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,Twnhs,1Story,6,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,Stone,182,Gd,TA,PConc,Gd,TA,Av,ALQ,1030,Unf,0,272,1302,GasA,Ex,Y,SBrkr,1302,0,0,1302,1,0,1,1,1,1,Gd,5,Typ,1,Gd,Attchd,2005,RFn,2,631,TA,TA,Y,110,50,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2307,120,RL,41,6289,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,6,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,Stone,256,Gd,TA,PConc,Gd,TA,Av,ALQ,762,Unf,0,600,1362,GasA,Ex,Y,SBrkr,1362,0,0,1362,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2005,RFn,2,460,TA,TA,Y,192,28,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2308,120,RL,34,4590,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,Twnhs,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,Stone,108,Gd,TA,PConc,Gd,Gd,Mn,GLQ,24,Unf,0,1530,1554,GasA,Ex,Y,SBrkr,1554,0,0,1554,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2006,RFn,2,627,TA,TA,Y,156,73,0,0,0,0,NA,NA,NA,0,5,2007,CWD,Normal +2309,120,RL,48,7841,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,9,5,2005,2005,Hip,CompShg,MetalSd,MetalSd,BrkFace,394,Ex,TA,PConc,Ex,TA,No,GLQ,848,Unf,0,729,1577,GasA,Ex,Y,SBrkr,1577,0,0,1577,1,0,2,0,2,1,Ex,6,Typ,1,Gd,Attchd,2005,RFn,2,564,TA,TA,Y,203,39,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2310,120,RL,48,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,8,5,2006,2006,Hip,CompShg,MetalSd,MetalSd,BrkFace,176,Gd,TA,PConc,Gd,TA,No,GLQ,24,Unf,0,1300,1324,GasA,Ex,Y,SBrkr,1324,0,0,1324,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2006,Fin,2,550,TA,TA,Y,0,38,0,0,0,0,NA,NA,NA,0,9,2007,New,Partial +2311,120,RL,48,3242,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,7,5,2003,2003,Gable,CompShg,VinylSd,Wd Shng,Stone,235,Gd,TA,PConc,Gd,TA,No,GLQ,1000,Unf,0,405,1405,GasA,Ex,Y,SBrkr,1405,0,0,1405,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2003,RFn,2,478,TA,TA,Y,136,36,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2312,60,RL,59,15810,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,RRAn,Norm,1Fam,2Story,6,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,NA,NA,Gd,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,768,768,GasA,Ex,Y,SBrkr,768,728,0,1496,0,0,3,0,3,1,Gd,7,Typ,0,NA,Attchd,2007,Unf,2,572,TA,TA,Y,100,0,0,0,0,0,NA,NA,NA,0,5,2007,New,Partial +2313,60,RL,65,10237,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,RRAn,Norm,1Fam,2Story,6,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,768,768,GasA,Ex,Y,SBrkr,768,768,0,1536,0,0,2,1,3,1,Gd,6,Typ,1,Gd,Attchd,2005,Fin,2,400,TA,TA,Y,100,38,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2314,60,RL,58,13204,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,RRAn,Norm,1Fam,2Story,7,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,Stone,44,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,608,608,GasA,Ex,Y,SBrkr,608,850,0,1458,0,0,2,0,3,1,Gd,6,Typ,0,NA,BuiltIn,2007,Fin,2,454,TA,TA,Y,100,33,0,0,0,0,NA,NA,NA,0,5,2007,New,Partial +2315,60,RL,62,8857,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,738,738,GasA,Ex,Y,SBrkr,738,757,0,1495,0,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2006,RFn,2,440,TA,TA,Y,100,30,0,0,0,0,NA,NA,NA,0,3,2007,New,Partial +2316,60,RL,63,9729,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,698,698,GasA,Ex,Y,SBrkr,698,1048,0,1746,1,0,2,1,3,1,Gd,6,Typ,1,Gd,BuiltIn,2007,Unf,3,350,TA,TA,Y,0,34,0,0,0,0,NA,NA,NA,0,6,2007,New,Partial +2317,20,RL,88,12216,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,1Story,6,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Av,GLQ,918,Unf,0,408,1326,GasA,Ex,Y,SBrkr,1326,0,0,1326,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2005,Fin,2,388,TA,TA,Y,120,23,0,0,0,0,NA,NA,Shed,2000,6,2007,WD,Normal +2318,60,RL,72,8229,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,22,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,752,752,GasA,Ex,Y,SBrkr,752,752,0,1504,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2007,Fin,2,440,TA,TA,Y,100,32,0,0,0,0,NA,NA,NA,0,12,2007,New,Partial +2319,60,RL,64,7713,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,16,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,728,728,GasA,Ex,Y,SBrkr,728,728,0,1456,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2007,Fin,2,400,TA,TA,Y,100,24,0,0,0,0,NA,NA,NA,0,7,2007,New,Partial +2320,20,RL,64,7697,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,1Story,7,6,2007,2007,Gable,CompShg,VinylSd,VinylSd,BrkFace,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1246,1246,GasA,Ex,Y,SBrkr,1258,0,0,1258,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2007,RFn,2,462,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2007,New,Partial +2321,120,RL,NA,3621,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,8,5,2003,2003,Hip,CompShg,VinylSd,VinylSd,BrkFace,72,Gd,TA,PConc,Gd,TA,Gd,GLQ,1084,Unf,0,322,1406,GasA,Ex,Y,SBrkr,1589,0,0,1589,1,0,2,0,2,1,Gd,7,Typ,1,TA,Attchd,2003,Fin,3,630,TA,TA,Y,143,20,0,0,0,0,NA,NA,NA,0,11,2007,WD,Normal +2322,20,RL,53,3710,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,1Fam,1Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,BrkFace,16,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1266,1266,GasA,Ex,Y,SBrkr,1266,0,0,1266,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2007,Fin,2,388,TA,TA,Y,100,16,0,0,0,0,NA,NA,NA,0,8,2007,New,Partial +2323,80,RL,65,16219,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,7,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Gd,GLQ,779,Unf,0,56,835,GasA,Ex,Y,SBrkr,1119,0,0,1119,1,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,2004,Fin,2,437,TA,TA,Y,100,24,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal +2324,80,RL,87,11084,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,192,Unf,0,192,384,GasA,Ex,Y,SBrkr,744,630,0,1374,1,0,2,1,3,1,Gd,8,Typ,1,Gd,BuiltIn,2004,Fin,2,400,TA,TA,Y,100,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Family +2325,20,RL,59,10936,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,1Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1510,1510,GasA,Ex,Y,SBrkr,1525,0,0,1525,0,0,2,1,3,1,Gd,6,Typ,1,Gd,Attchd,2006,RFn,2,534,TA,TA,Y,100,18,0,0,0,0,NA,NA,NA,0,4,2007,New,Partial +2326,80,RL,NA,11950,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,NA,NA,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,384,384,GasA,Ex,Y,SBrkr,754,640,0,1394,0,0,2,1,3,1,Gd,7,Typ,1,TA,BuiltIn,2003,Fin,2,400,TA,TA,Y,100,0,0,0,0,0,NA,NA,NA,0,10,2007,WD,Normal +2327,60,RL,63,7875,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,16,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,847,847,GasA,Ex,Y,SBrkr,847,1101,0,1948,0,0,2,1,4,1,Gd,8,Typ,1,Gd,BuiltIn,2003,Fin,2,434,TA,TA,Y,0,48,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2328,60,RL,NA,8740,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,574,Unf,0,280,854,GasA,Ex,Y,SBrkr,864,1131,0,1995,0,0,2,1,4,1,Gd,8,Typ,1,Gd,BuiltIn,2002,Fin,2,435,TA,TA,Y,264,48,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2329,60,RL,58,9487,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,GLQ,520,Unf,0,395,915,GasA,Ex,Y,SBrkr,940,750,0,1690,1,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,2000,RFn,2,442,TA,TA,Y,0,50,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2330,60,RL,59,9649,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1999,2000,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,941,941,GasA,Ex,Y,SBrkr,961,683,0,1644,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1999,RFn,2,460,TA,TA,Y,460,42,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2331,60,RL,100,12191,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1997,1998,Hip,CompShg,VinylSd,VinylSd,BrkFace,515,Gd,TA,PConc,Gd,TA,Av,GLQ,1181,Unf,0,598,1779,GasA,Ex,Y,SBrkr,1779,772,0,2551,1,0,2,1,4,1,Gd,8,Typ,2,TA,Attchd,1998,Fin,3,925,TA,TA,Y,76,61,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2332,60,RL,89,10557,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,9,5,1998,1998,Gable,CompShg,MetalSd,MetalSd,BrkFace,422,Gd,TA,PConc,Ex,TA,Gd,GLQ,672,Unf,0,736,1408,GasA,Ex,Y,SBrkr,1671,1407,0,3078,1,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1998,Fin,3,806,TA,TA,Y,108,87,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2333,60,RL,74,11002,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1998,1999,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,1048,Unf,0,341,1389,GasA,Ex,Y,SBrkr,1411,1171,0,2582,1,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1998,Fin,3,758,TA,TA,Y,286,60,0,0,0,0,NA,NA,NA,0,1,2007,WD,Normal +2334,60,RL,83,10790,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,7,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,275,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1066,1066,GasA,Ex,Y,SBrkr,1108,1277,0,2385,0,0,2,1,4,1,Gd,8,Typ,1,TA,BuiltIn,1998,Fin,3,600,TA,TA,Y,120,38,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2335,60,RL,88,11762,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1992,1993,Gable,CompShg,VinylSd,VinylSd,BrkFace,309,Gd,TA,PConc,Ex,TA,No,GLQ,335,Unf,0,770,1105,GasA,Ex,Y,SBrkr,1105,1097,0,2202,1,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1992,RFn,2,517,TA,TA,Y,0,65,0,0,144,0,NA,NA,NA,0,9,2007,WD,Normal +2336,60,RL,82,9044,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1996,1997,Gable,CompShg,VinylSd,VinylSd,BrkFace,526,Gd,Gd,PConc,Gd,TA,No,GLQ,1225,Unf,0,100,1325,GasA,Ex,Y,SBrkr,1335,1203,0,2538,0,0,2,1,4,1,Gd,8,Typ,1,TA,Attchd,1996,RFn,3,933,TA,TA,Y,198,92,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2337,20,RL,75,9910,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Feedr,Norm,1Fam,1Story,7,6,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1369,1369,GasA,Ex,Y,SBrkr,1369,0,0,1369,0,0,2,0,3,1,Gd,5,Typ,0,NA,Attchd,2007,Unf,2,605,TA,TA,Y,0,203,0,0,0,0,NA,NA,NA,0,9,2007,New,Partial +2338,20,RL,91,11830,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Feedr,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,BrkFace,164,Gd,TA,PConc,Gd,TA,No,GLQ,1220,Unf,0,322,1542,GasA,Ex,Y,SBrkr,1542,0,0,1542,1,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2007,Unf,3,852,TA,TA,Y,168,110,0,0,0,0,NA,NA,NA,0,7,2007,New,Partial +2339,20,RL,76,10612,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,248,Gd,TA,PConc,Gd,TA,Mn,GLQ,28,Unf,0,1496,1524,GasA,Gd,Y,SBrkr,1534,0,0,1534,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2006,Fin,2,484,TA,TA,Y,168,46,0,0,0,0,NA,NA,NA,0,1,2007,WD,Family +2340,20,RL,98,12291,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,10,5,2007,2007,Hip,CompShg,CemntBd,CmentBd,BrkFace,754,Ex,TA,PConc,Ex,TA,Av,GLQ,1572,Unf,0,394,1966,GasA,Ex,Y,SBrkr,1966,0,0,1966,1,0,2,0,1,1,Ex,6,Typ,1,Gd,Attchd,2007,Fin,3,1092,TA,TA,Y,76,52,0,0,0,0,NA,NA,NA,0,10,2007,New,Partial +2341,20,RL,85,9965,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Somerst,Feedr,Norm,1Fam,1Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,NA,NA,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1528,1528,GasA,Ex,Y,SBrkr,1528,0,0,1528,0,0,3,2,3,1,Gd,6,Typ,1,TA,Attchd,2007,Unf,2,480,TA,TA,Y,0,228,0,0,0,0,NA,NA,NA,0,9,2007,New,Partial +2342,20,RL,74,8847,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,148,Gd,TA,PConc,Gd,TA,Av,GLQ,769,Unf,0,769,1538,GasA,Ex,Y,SBrkr,1538,0,0,1538,1,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2005,RFn,2,484,TA,TA,Y,146,40,0,0,0,0,NA,NA,NA,0,12,2007,WD,Normal +2343,20,RL,70,8251,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,143,Gd,TA,PConc,Gd,Gd,Av,GLQ,778,Unf,0,716,1494,GasA,Ex,Y,SBrkr,1506,0,0,1506,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2005,RFn,2,672,TA,TA,Y,192,35,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal +2344,60,RL,70,9605,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,982,982,GasA,Ex,Y,SBrkr,982,995,0,1977,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2006,RFn,3,574,TA,TA,Y,240,53,0,0,0,0,NA,NA,NA,0,7,2007,WD,Family +2345,60,RL,75,8778,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1302,1302,GasA,Ex,Y,SBrkr,1302,528,0,1830,0,0,2,1,3,1,Gd,7,Typ,0,NA,BuiltIn,2006,RFn,3,859,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2346,20,FV,72,8640,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,24,Unf,0,1314,1338,GasA,Ex,Y,SBrkr,1338,0,0,1338,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2007,RFn,2,598,TA,TA,Y,0,141,0,0,0,0,NA,NA,NA,0,11,2007,New,Partial +2347,20,FV,75,9000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1335,1335,GasA,Ex,Y,SBrkr,1335,0,0,1335,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2007,RFn,2,575,TA,TA,Y,0,210,0,0,0,0,NA,NA,NA,0,6,2007,New,Partial +2348,60,FV,72,8640,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,350,Unf,0,546,896,GasA,Ex,Y,SBrkr,896,896,0,1792,0,0,2,1,3,1,Gd,8,Typ,0,NA,Attchd,2007,Fin,2,590,TA,TA,Y,184,96,0,0,0,0,NA,NA,NA,0,11,2007,New,Partial +2349,60,FV,81,10411,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,1Fam,2Story,5,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,CBlock,Gd,TA,NA,Unf,0,Unf,0,725,725,GasA,Ex,Y,SBrkr,725,863,0,1588,0,0,3,0,3,1,Gd,8,Typ,0,NA,Attchd,2007,Unf,2,561,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2007,New,Partial +2350,60,FV,112,12217,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2007,2007,Hip,CompShg,WdShing,Wd Shng,NA,NA,Gd,TA,PConc,Ex,TA,Av,GLQ,745,Unf,0,210,955,GasA,Ex,Y,SBrkr,955,925,0,1880,1,0,2,1,3,1,Ex,8,Typ,1,Gd,Attchd,2007,Fin,3,880,TA,TA,Y,168,127,0,0,0,0,NA,NA,NA,0,12,2007,New,Partial +2351,20,FV,84,10440,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,CemntBd,CmentBd,None,0,Ex,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,1574,1574,GasA,Ex,Y,SBrkr,1584,0,0,1584,0,0,2,0,2,1,Ex,6,Typ,1,Gd,Attchd,2007,Fin,2,594,TA,TA,Y,0,256,0,0,0,0,NA,NA,NA,0,5,2007,New,Partial +2352,20,FV,100,11824,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,298,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1685,1685,GasA,Ex,Y,SBrkr,1685,0,0,1685,0,0,2,0,2,1,Gd,5,Typ,1,Gd,Attchd,2006,Fin,3,658,TA,TA,Y,112,63,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal +2353,60,FV,85,10625,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,6,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,353,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1158,1158,GasA,Ex,Y,SBrkr,1158,1285,0,2443,0,0,2,1,4,1,Gd,9,Min2,1,Gd,BuiltIn,2004,RFn,3,744,TA,TA,Y,193,127,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2354,20,RL,63,7500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,6,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1100,1100,GasA,Ex,Y,SBrkr,1100,0,0,1100,0,0,1,1,3,1,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,136,0,0,0,0,NA,NA,NA,0,6,2007,New,Partial +2355,20,RL,63,7500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,Gd,No,Unf,0,Unf,0,1143,1143,GasA,Ex,Y,SBrkr,1143,0,0,1143,0,0,1,1,3,1,Gd,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,55,0,0,0,0,NA,NA,NA,0,10,2007,WD,Normal +2356,20,RL,60,12450,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,RRAe,Norm,1Fam,1Story,5,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,126,Gd,TA,PConc,Gd,TA,No,GLQ,729,Unf,0,365,1094,GasA,Ex,Y,SBrkr,1094,0,0,1094,1,0,1,0,3,1,Gd,6,Typ,0,NA,Detchd,2004,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2357,20,RL,65,7441,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,170,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1461,1461,GasA,Ex,Y,SBrkr,1486,0,0,1486,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2006,RFn,2,566,TA,TA,Y,0,32,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2358,60,RL,NA,11613,Pave,NA,IR2,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,5,1993,1997,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,ALQ,480,Unf,0,384,864,GasA,Ex,Y,SBrkr,920,900,0,1820,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,1993,RFn,2,492,TA,TA,Y,144,85,0,0,0,0,NA,GdPrv,NA,0,5,2007,WD,Normal +2359,160,RL,50,8012,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,TwnhsE,2Story,6,5,1980,1980,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,630,630,GasA,Ex,Y,SBrkr,630,636,0,1266,0,0,1,1,2,1,TA,5,Typ,2,TA,Attchd,1980,RFn,1,283,TA,TA,Y,340,0,0,0,0,0,NA,MnPrv,NA,0,7,2007,WD,Normal +2360,20,RL,64,6285,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1977,1977,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,No,LwQ,138,Rec,351,405,894,GasA,TA,Y,SBrkr,894,0,0,894,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1979,Unf,1,308,TA,TA,Y,192,0,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2361,20,RL,84,7476,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,7,1968,1968,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Rec,812,Unf,0,228,1040,GasA,TA,Y,SBrkr,1040,0,0,1040,1,0,1,1,3,1,TA,5,Typ,0,NA,Detchd,1991,Fin,2,686,TA,TA,Y,188,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2362,60,RL,NA,19522,Pave,NA,IR1,Bnk,AllPub,Inside,Gtl,Veenker,Norm,Norm,1Fam,2Story,7,5,1990,1990,Gable,CompShg,HdBoard,HdBoard,BrkFace,272,Gd,TA,PConc,Gd,TA,No,GLQ,727,Unf,0,496,1223,GasA,Gd,Y,SBrkr,1271,1232,0,2503,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1990,RFn,2,564,TA,TA,Y,0,99,0,0,182,0,NA,NA,NA,0,2,2007,WD,Normal +2363,20,RL,44,10751,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,RRAe,Norm,1Fam,1Story,5,5,1974,1974,Gable,CompShg,Plywood,Plywood,BrkFace,44,TA,TA,CBlock,Fa,TA,Gd,ALQ,787,Unf,0,250,1037,GasA,TA,Y,SBrkr,1037,0,0,1037,1,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1974,RFn,2,431,TA,TA,Y,136,47,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2364,20,RL,43,12712,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,RRAe,Norm,1Fam,1Story,6,7,1973,2006,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,Gd,TA,Mn,ALQ,968,Unf,0,76,1044,GasA,TA,Y,SBrkr,1055,0,0,1055,1,0,1,0,2,1,Gd,5,Typ,1,TA,Attchd,1973,RFn,2,542,TA,TA,Y,455,0,0,0,0,0,NA,NA,NA,0,1,2007,WD,Abnorml +2365,120,FV,45,4379,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,8,5,2004,2004,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,851,Unf,0,527,1378,GasA,Ex,Y,SBrkr,1378,0,0,1378,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2004,Fin,2,540,TA,TA,Y,160,56,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2366,120,FV,80,3523,Pave,Pave,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,8,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,Stone,30,Gd,TA,PConc,Gd,TA,No,GLQ,60,Unf,0,1081,1141,GasA,Ex,Y,SBrkr,1151,0,0,1151,1,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,2006,Fin,2,484,TA,TA,Y,0,60,0,0,0,0,NA,NA,NA,0,2,2007,New,Partial +2367,120,FV,32,3784,Pave,Pave,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,8,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,Stone,36,Gd,TA,PConc,Gd,TA,No,GLQ,60,Unf,0,1451,1511,GasA,Ex,Y,SBrkr,1565,0,0,1565,1,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,2006,Fin,2,476,TA,TA,Y,0,120,0,0,0,0,NA,NA,NA,0,2,2007,New,Partial +2368,120,FV,40,3606,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,7,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,Gd,No,GLQ,937,Unf,0,415,1352,GasA,Ex,Y,SBrkr,1352,0,0,1352,1,0,2,0,2,1,Gd,5,Typ,1,Gd,Attchd,2006,RFn,2,466,TA,TA,Y,0,241,0,0,0,0,NA,NA,NA,0,8,2007,New,Partial +2369,120,FV,30,5330,Pave,Pave,IR2,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,8,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,NA,NA,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1550,1550,GasA,Ex,Y,SBrkr,1550,0,0,1550,0,0,2,1,2,1,Gd,5,Typ,0,NA,Attchd,2007,Fin,2,528,TA,TA,Y,0,102,0,0,0,0,NA,NA,NA,0,7,2007,New,Partial +2370,160,FV,24,2280,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,2Story,6,5,1999,1999,Gable,CompShg,MetalSd,MetalSd,BrkFace,342,TA,TA,PConc,Gd,TA,No,GLQ,565,Unf,0,179,744,GasA,Gd,Y,SBrkr,757,744,0,1501,1,0,2,1,3,1,TA,6,Typ,1,TA,Detchd,1999,Unf,2,440,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,9,2007,WD,Normal +2371,160,FV,24,2117,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,2Story,6,5,2000,2000,Gable,CompShg,MetalSd,MetalSd,BrkFace,216,Gd,TA,PConc,Gd,TA,No,GLQ,417,Unf,0,339,756,GasA,Ex,Y,SBrkr,769,804,0,1573,0,0,2,1,3,1,Gd,4,Typ,0,NA,Detchd,2000,Unf,2,440,TA,TA,Y,0,32,0,0,0,0,NA,NA,NA,0,9,2007,WD,Normal +2372,20,FV,73,7321,Pave,Pave,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,1999,2000,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1339,1339,GasA,Ex,Y,SBrkr,1358,0,0,1358,0,0,2,0,3,1,Gd,5,Typ,0,NA,Detchd,1999,Unf,2,625,TA,TA,Y,176,174,0,0,0,0,NA,NA,NA,0,12,2007,COD,Normal +2373,60,FV,NA,8010,Pave,Pave,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2003,2004,Hip,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Ex,TA,No,GLQ,964,Unf,0,90,1054,GasA,Ex,Y,SBrkr,1072,976,0,2048,1,0,2,1,3,1,Gd,8,Typ,2,Gd,Detchd,2003,Unf,2,552,TA,TA,Y,0,48,0,0,180,0,NA,NA,NA,0,8,2007,WD,Normal +2374,60,FV,106,8413,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,Gd,PConc,Ex,TA,Mn,GLQ,901,Unf,0,319,1220,GasA,Ex,Y,SBrkr,1220,1142,0,2362,1,0,2,1,3,1,Gd,8,Typ,2,TA,Attchd,1998,RFn,2,1105,Gd,TA,Y,147,0,36,0,144,0,NA,NA,NA,0,6,2007,WD,Normal +2375,120,RL,50,9466,Pave,NA,IR2,Lvl,AllPub,FR2,Gtl,Veenker,Norm,Norm,TwnhsE,1Story,8,5,1994,1995,Gable,CompShg,BrkFace,BrkFace,None,0,Gd,TA,PConc,Gd,TA,Gd,LwQ,457,ALQ,1037,0,1494,GasA,Ex,Y,SBrkr,1494,0,0,1494,1,0,1,1,1,1,Gd,5,Typ,1,Gd,Attchd,1994,Fin,2,478,TA,TA,Y,0,30,0,0,217,0,NA,NA,NA,0,5,2007,WD,Normal +2376,20,RL,80,12000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Veenker,Norm,Norm,1Fam,1Story,7,6,1980,1980,Hip,CompShg,VinylSd,MetalSd,BrkFace,600,Gd,TA,CBlock,Gd,TA,No,GLQ,1732,Unf,0,270,2002,GasA,Ex,Y,SBrkr,2362,0,0,2362,1,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1980,RFn,2,546,Gd,TA,Y,180,16,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2377,20,RL,94,17778,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Veenker,Norm,Norm,1Fam,1Story,8,5,1981,1981,Hip,CompShg,BrkFace,BrkFace,None,0,Gd,TA,CBlock,Gd,TA,Gd,ALQ,1632,Rec,829,0,2461,GasA,Gd,Y,SBrkr,2497,0,0,2497,1,0,2,0,2,1,Gd,7,Typ,2,Gd,Attchd,1981,RFn,2,676,TA,TA,Y,266,0,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2378,20,RL,78,11700,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,RRAn,Norm,1Fam,1Story,6,6,1968,1968,Gable,CompShg,MetalSd,MetalSd,BrkFace,41,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,912,912,GasA,Ex,Y,SBrkr,1152,0,0,1152,1,0,1,1,3,1,TA,7,Typ,0,NA,Attchd,1968,RFn,2,412,TA,TA,Y,0,126,0,0,0,0,NA,NA,NA,0,9,2007,CWD,Normal +2379,60,RL,80,8000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,PosA,Norm,1Fam,2Story,6,6,1970,1970,Gable,CompShg,VinylSd,VinylSd,BrkFace,525,TA,TA,CBlock,TA,TA,No,Rec,915,Unf,0,93,1008,GasA,TA,Y,SBrkr,1403,1008,0,2411,1,0,2,1,4,1,TA,8,Typ,1,Po,Attchd,1970,RFn,2,570,TA,TA,Y,0,192,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2380,85,RL,NA,8723,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,PosN,Norm,1Fam,SFoyer,6,6,1969,1969,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,Av,BLQ,973,Unf,0,0,973,GasA,Ex,Y,SBrkr,1082,0,0,1082,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1969,Unf,2,480,TA,TA,Y,160,0,0,0,0,0,NA,NA,NA,0,1,2007,WD,Normal +2381,20,RL,130,11700,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,5,1968,1968,Gable,CompShg,HdBoard,HdBoard,BrkFace,196,TA,TA,PConc,Gd,TA,No,ALQ,910,Unf,0,385,1295,GasA,Fa,Y,SBrkr,1295,0,0,1295,1,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1968,Fin,2,528,TA,TA,Y,0,194,0,0,200,0,NA,NA,NA,0,4,2007,WD,Normal +2382,20,RL,108,11358,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NWAmes,Norm,Norm,1Fam,1Story,7,7,1972,1987,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,346,Unf,0,778,1124,GasA,TA,Y,SBrkr,1610,0,0,1610,0,0,2,0,3,1,Gd,8,Typ,1,TA,Attchd,1972,RFn,2,515,TA,TA,Y,202,0,0,0,256,0,NA,NA,NA,0,5,2007,WD,Normal +2383,20,RL,80,9547,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,7,6,1993,1993,Gable,CompShg,VinylSd,VinylSd,BrkFace,112,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1594,1594,GasA,Ex,Y,SBrkr,1594,0,0,1594,0,0,2,0,2,1,Gd,6,Typ,1,TA,Attchd,1993,RFn,2,472,TA,TA,Y,190,80,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2384,60,RL,78,10530,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,7,6,1993,1993,Gable,CompShg,MetalSd,MetalSd,BrkFace,194,Gd,TA,PConc,Gd,TA,No,GLQ,819,Unf,0,329,1148,GasA,Ex,Y,SBrkr,1091,984,0,2075,1,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,1993,Unf,2,473,TA,TA,Y,235,86,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2385,20,RL,88,10738,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,7,1966,1966,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,ALQ,792,Unf,0,301,1093,GasA,Gd,Y,SBrkr,1093,0,0,1093,1,0,2,0,3,1,TA,6,Typ,1,Fa,Attchd,1966,RFn,2,484,TA,TA,Y,224,0,0,0,0,0,NA,MnPrv,Shed,400,11,2007,WD,Normal +2386,20,RL,80,10800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,5,1963,1963,Gable,CompShg,HdBoard,HdBoard,BrkFace,203,TA,TA,CBlock,TA,TA,No,BLQ,617,Rec,264,171,1052,GasA,TA,Y,SBrkr,1052,0,0,1052,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1963,Fin,1,311,TA,TA,Y,0,133,0,0,0,0,NA,NA,NA,0,2,2007,COD,Normal +2387,20,RL,70,8050,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1967,1993,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,474,BLQ,38,437,949,GasA,TA,Y,SBrkr,1107,0,0,1107,1,0,1,0,3,1,Gd,5,Typ,0,NA,Attchd,1967,RFn,1,308,TA,TA,Y,88,64,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2388,90,RL,NA,10899,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,Duplex,1Story,4,5,1964,1964,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,N,SBrkr,1224,0,0,1224,0,0,2,0,2,2,TA,8,Typ,0,NA,CarPort,1964,Unf,3,530,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal +2389,20,RL,74,7450,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1956,1956,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,438,LwQ,206,250,894,GasA,Gd,Y,SBrkr,1074,0,0,1074,0,0,1,0,2,1,Gd,6,Min1,1,Gd,Detchd,1966,Unf,2,396,TA,TA,Y,0,72,0,0,0,0,NA,GdWo,NA,0,1,2007,WD,Normal +2390,20,RL,NA,14357,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1961,1961,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,ALQ,311,LwQ,167,386,864,GasA,TA,Y,SBrkr,1187,0,0,1187,1,0,1,0,2,1,TA,6,Typ,1,TA,Attchd,1961,RFn,2,440,TA,TA,Y,128,0,0,0,0,0,NA,NA,NA,0,8,2007,CWD,Normal +2391,20,RL,76,8243,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1961,1961,Gable,CompShg,VinylSd,VinylSd,BrkFace,56,TA,Gd,CBlock,TA,TA,No,ALQ,700,Unf,0,264,964,GasA,Ex,Y,SBrkr,964,0,0,964,0,0,1,0,3,1,TA,5,Typ,1,Fa,Detchd,1985,Fin,2,784,TA,TA,Y,170,0,0,0,0,0,NA,GdPrv,NA,0,2,2007,WD,Normal +2392,20,RL,70,8680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1960,1960,Hip,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,894,894,GasA,TA,Y,SBrkr,894,0,0,894,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1965,Unf,1,312,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,1,2007,WD,Normal +2393,20,RL,80,8800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,7,6,1966,1966,Hip,CompShg,HdBoard,Plywood,BrkFace,202,TA,TA,CBlock,TA,TA,No,BLQ,654,Unf,0,520,1174,GasA,Ex,Y,SBrkr,1200,0,0,1200,0,1,2,0,3,1,TA,6,Typ,1,TA,Attchd,1966,RFn,2,440,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,10,2007,CWD,Normal +2394,80,RL,80,9200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,6,5,1965,1965,Gable,CompShg,HdBoard,HdBoard,BrkFace,98,TA,TA,CBlock,TA,TA,Gd,GLQ,494,Unf,0,548,1042,GasA,TA,Y,SBrkr,1042,0,0,1042,0,0,2,0,3,1,TA,5,Typ,0,NA,Attchd,1965,RFn,2,440,TA,TA,Y,192,0,0,0,0,0,NA,GdPrv,NA,0,5,2007,WD,Normal +2395,60,RL,80,8800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,2Story,6,7,1964,1997,Gable,CompShg,MetalSd,MetalSd,BrkFace,306,TA,Gd,CBlock,TA,TA,No,ALQ,414,Unf,0,431,845,GasA,Ex,Y,SBrkr,845,1309,0,2154,0,0,2,1,5,1,TA,8,Typ,1,Gd,Attchd,1964,RFn,2,539,TA,TA,Y,0,0,0,0,161,0,NA,MnPrv,NA,0,7,2007,WD,Normal +2396,20,RL,NA,11382,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1964,1964,Gable,CompShg,Wd Sdng,Plywood,BrkFace,212,TA,TA,CBlock,TA,TA,No,ALQ,54,Rec,543,533,1130,GasA,TA,Y,SBrkr,1374,0,0,1374,0,1,1,0,3,1,TA,7,Typ,1,TA,Attchd,1964,RFn,1,286,TA,TA,Y,0,28,84,0,0,0,NA,MnPrv,NA,0,8,2007,WD,Normal +2397,20,RL,NA,22002,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,7,1959,1991,Gable,CompShg,MetalSd,MetalSd,BrkFace,136,TA,Gd,CBlock,TA,TA,Mn,ALQ,1386,Unf,0,206,1592,GasA,Gd,Y,SBrkr,1652,0,0,1652,1,0,1,1,3,1,Gd,6,Typ,1,Gd,Attchd,1959,RFn,2,510,TA,TA,Y,0,0,0,0,201,0,NA,NA,NA,0,7,2007,WD,Normal +2398,45,RL,85,12172,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1.5Unf,5,7,1940,1996,Gable,CompShg,Wd Sdng,HdBoard,None,0,TA,TA,PConc,TA,TA,No,LwQ,130,Rec,259,433,822,GasA,TA,Y,SBrkr,908,0,0,908,0,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1975,Unf,2,512,TA,TA,Y,284,24,0,0,192,0,NA,MnPrv,NA,0,10,2007,WD,Normal +2399,20,RL,50,5000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,3,3,1946,1950,Gable,CompShg,WdShing,Wd Shng,None,0,Fa,Fa,CBlock,Fa,Fa,No,LwQ,299,Unf,0,367,666,GasA,Fa,N,SBrkr,666,0,0,666,0,1,1,0,2,1,Gd,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,52,0,0,0,0,NA,MnPrv,NA,0,4,2007,WD,Normal +2400,50,RL,51,3500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Feedr,Norm,1Fam,1.5Fin,3,5,1945,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,LwQ,144,Unf,0,226,370,GasA,TA,N,FuseA,442,228,0,670,1,0,1,0,2,1,Fa,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,21,0,0,0,0,NA,MnPrv,Shed,2000,7,2007,WD,Normal +2401,20,RL,50,5175,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,RRAn,Feedr,1Fam,1Story,5,8,1958,2000,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,150,ALQ,404,254,808,GasA,Ex,Y,SBrkr,808,0,0,808,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1963,Unf,1,308,TA,TA,N,143,0,0,0,0,0,NA,NA,NA,0,7,2007,COD,Normal +2402,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1955,1955,Hip,CompShg,HdBoard,HdBoard,BrkFace,176,TA,Gd,CBlock,TA,TA,No,BLQ,368,Unf,0,710,1078,GasA,Ex,Y,SBrkr,1150,0,0,1150,1,0,1,0,2,1,TA,6,Typ,0,NA,Attchd,1955,Fin,1,288,TA,TA,Y,0,0,0,0,175,0,NA,MnPrv,NA,0,10,2007,WD,Normal +2403,90,RL,63,8668,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,Duplex,1Story,5,5,1968,1968,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1560,1560,GasA,TA,Y,SBrkr,1560,0,0,1560,0,0,2,0,4,2,TA,8,Typ,0,NA,Detchd,1968,Unf,3,792,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2404,85,RL,NA,10050,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SFoyer,5,6,1966,1966,Gable,CompShg,HdBoard,HdBoard,BrkFace,87,TA,TA,CBlock,TA,TA,Av,GLQ,602,Unf,0,191,793,GasA,Ex,Y,SBrkr,1280,0,0,1280,0,1,2,0,3,1,TA,6,Typ,1,TA,Basment,1966,Fin,2,432,TA,TA,Y,140,40,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2405,80,RL,100,9600,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,6,5,1961,1961,Hip,CompShg,WdShing,Wd Shng,BrkFace,291,TA,TA,CBlock,TA,TA,Av,ALQ,600,Unf,0,618,1218,GasA,TA,Y,SBrkr,1254,0,0,1254,1,0,1,0,3,1,TA,6,Typ,1,Gd,Attchd,1961,RFn,2,525,TA,TA,Y,0,0,0,0,168,0,NA,NA,NA,0,5,2007,WD,Normal +2406,20,RL,73,8760,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,7,1957,1999,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,873,Unf,0,63,936,GasA,TA,Y,SBrkr,936,0,0,936,1,0,1,0,2,1,Gd,4,Typ,0,NA,Attchd,1957,RFn,1,315,TA,TA,Y,0,0,0,219,0,0,NA,NA,NA,0,9,2007,WD,Normal +2407,20,RL,65,6860,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1956,1956,Gable,CompShg,Wd Sdng,Wd Sdng,BrkCmn,54,TA,TA,CBlock,TA,TA,No,GLQ,908,Unf,0,100,1008,GasA,Ex,Y,SBrkr,1008,0,0,1008,1,0,1,0,3,1,Fa,6,Typ,0,NA,Detchd,1964,Unf,1,308,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,12,2007,WD,Normal +2408,20,RL,60,8250,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1963,1963,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,288,Unf,0,765,1053,GasA,Gd,Y,SBrkr,1053,0,0,1053,1,0,1,0,3,1,Gd,6,Typ,0,NA,2Types,1994,RFn,2,692,TA,TA,Y,240,0,0,0,109,0,NA,NA,NA,0,7,2007,WD,Normal +2409,20,RL,70,9100,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1960,1960,Hip,CompShg,HdBoard,HdBoard,BrkCmn,69,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1144,1144,GasA,TA,Y,SBrkr,1144,0,0,1144,0,0,1,0,3,1,TA,6,Typ,1,Gd,Attchd,1960,RFn,1,336,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2410,20,RL,80,9736,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Feedr,Norm,1Fam,1Story,6,6,1957,1969,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,289,TA,TA,CBlock,TA,TA,No,BLQ,668,Rec,138,525,1331,GasA,Gd,Y,SBrkr,1721,0,0,1721,0,0,1,0,4,1,TA,8,Typ,3,TA,Attchd,1957,Unf,2,464,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal +2411,20,RL,72,9770,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1957,1957,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,512,Unf,0,410,922,GasA,TA,Y,FuseA,922,0,0,922,1,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1957,Unf,1,308,TA,TA,Y,0,34,0,0,0,0,NA,GdWo,NA,0,4,2007,WD,Normal +2412,20,RL,70,12198,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1955,1975,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,Av,Rec,780,Unf,0,424,1204,GasA,TA,Y,SBrkr,1411,0,0,1411,0,0,1,0,3,1,TA,7,Typ,1,TA,Attchd,1955,RFn,1,310,TA,TA,Y,278,82,0,0,0,0,NA,NA,NA,0,6,2007,COD,Normal +2413,20,RL,75,10050,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1955,1955,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,288,Unf,0,928,1216,GasA,TA,Y,SBrkr,1216,0,0,1216,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1955,RFn,1,336,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2414,20,RL,60,11556,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,9,1953,2006,Gable,CompShg,VinylSd,MetalSd,None,0,TA,Ex,CBlock,TA,TA,No,BLQ,408,Unf,0,456,864,GasA,Gd,Y,SBrkr,1154,0,0,1154,0,0,1,1,3,1,Ex,6,Typ,0,NA,Detchd,1962,Unf,1,336,TA,TA,Y,63,0,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2415,90,RL,70,8078,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,Duplex,1Story,5,5,1958,1958,Hip,CompShg,Wd Sdng,Wd Sdng,Stone,260,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1560,1560,GasA,TA,Y,SBrkr,1560,0,0,1560,0,0,2,0,4,2,TA,8,Typ,0,NA,Detchd,1958,Unf,2,484,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,12,2007,WD,Normal +2416,20,RL,60,10950,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1952,1952,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,ALQ,441,Unf,0,507,948,GasA,TA,Y,SBrkr,948,0,0,948,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1952,Unf,2,410,TA,TA,N,0,48,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal +2417,20,RL,68,7942,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,7,1953,1953,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,85,ALQ,955,0,1040,GasA,TA,Y,FuseF,1040,0,0,1040,0,1,1,0,3,1,TA,6,Typ,0,NA,Attchd,1953,Fin,1,293,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,6,2007,WD,Normal +2418,20,RL,71,8540,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,8,1956,2003,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,TA,No,Rec,114,ALQ,691,120,925,GasA,TA,Y,SBrkr,925,0,0,925,1,0,1,0,3,1,Gd,5,Typ,0,NA,Detchd,1956,Unf,1,252,TA,TA,Y,152,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2419,50,RL,55,7150,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1.5Fin,4,4,1955,1955,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,No,Rec,150,Unf,0,1040,1190,GasA,Gd,Y,SBrkr,1040,500,0,1540,1,0,1,0,4,1,Fa,7,Typ,0,NA,Detchd,2002,Unf,1,352,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2420,20,RL,70,8400,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1955,1955,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,BLQ,793,Unf,0,130,923,GasA,TA,Y,SBrkr,925,0,0,925,1,0,1,0,3,1,TA,5,Typ,2,TA,Attchd,1955,Unf,1,390,TA,TA,Y,81,0,0,0,0,0,NA,GdWo,NA,0,3,2007,WD,Normal +2421,20,RL,75,9532,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,6,1953,1953,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,595,Rec,354,156,1105,GasA,Gd,Y,SBrkr,1647,0,0,1647,1,0,1,0,3,1,TA,6,Min1,1,Fa,Attchd,1953,Fin,1,280,TA,TA,Y,225,0,0,0,0,368,NA,GdPrv,NA,0,2,2007,WD,Normal +2422,20,RL,NA,15783,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1Story,5,5,1952,1952,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,292,Unf,0,632,924,GasA,TA,Y,SBrkr,924,0,0,924,0,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1952,Unf,1,420,TA,TA,Y,0,324,0,0,0,0,NA,MnPrv,Shed,400,6,2007,WD,Normal +2423,50,RL,60,14190,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1.5Fin,4,7,1890,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,Gd,CBlock,Fa,TA,No,Unf,0,Unf,0,925,925,GasA,Gd,Y,SBrkr,1000,544,0,1544,0,0,2,0,3,1,TA,7,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,231,0,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal +2424,50,RL,NA,12099,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1.5Fin,5,6,1953,2004,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,Fa,No,LwQ,198,Unf,0,1018,1216,GasA,Ex,Y,SBrkr,1216,0,512,1728,1,0,1,0,3,1,TA,7,Typ,1,Gd,Attchd,1953,Unf,1,371,TA,TA,Y,200,0,0,0,0,0,NA,GdWo,NA,0,6,2007,WD,Normal +2425,70,RL,113,21281,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,2Story,5,4,1935,2007,Gable,CompShg,Wd Sdng,MetalSd,None,0,TA,TA,BrkTil,TA,Fa,No,Unf,0,Unf,0,666,666,GasA,Gd,Y,SBrkr,1308,1778,0,3086,0,0,3,1,4,1,Gd,9,Min1,0,NA,BuiltIn,2007,Unf,3,1200,TA,TA,Y,0,208,290,0,156,0,NA,NA,NA,0,11,2007,WD,Family +2426,50,RL,60,10284,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,4,7,1925,1993,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,Mn,ALQ,1030,LwQ,66,55,1151,GasA,Ex,Y,SBrkr,845,436,0,1281,1,0,2,0,1,1,TA,6,Mod,0,NA,Detchd,1978,Unf,2,580,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2007,WD,Abnorml +2427,70,RL,60,10800,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,5,9,1895,1999,Gable,CompShg,Wd Sdng,HdBoard,None,0,TA,Gd,CBlock,Gd,TA,Av,Unf,0,Unf,0,736,736,GasA,Ex,Y,SBrkr,751,783,0,1534,0,0,1,1,3,1,Gd,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,112,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2428,80,RL,93,10090,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,7,5,1963,1999,Gable,CompShg,Plywood,Plywood,BrkFace,364,TA,TA,CBlock,TA,TA,Av,Rec,242,ALQ,483,0,725,GasA,TA,Y,SBrkr,1035,616,0,1651,0,1,2,0,4,1,TA,6,Typ,2,TA,BuiltIn,1963,Unf,1,276,TA,TA,Y,460,46,0,0,165,0,NA,MnPrv,NA,0,10,2007,WD,Normal +2429,20,RL,75,8700,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1961,1961,Gable,CompShg,HdBoard,HdBoard,BrkFace,53,TA,TA,CBlock,TA,TA,No,ALQ,192,Unf,0,728,920,GasA,Gd,Y,SBrkr,888,0,0,888,0,1,1,0,3,1,TA,5,Typ,0,NA,Attchd,1961,Unf,1,240,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,2,2007,COD,Abnorml +2430,20,RL,66,8300,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1968,1968,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,86,TA,TA,CBlock,TA,TA,Mn,Rec,952,Unf,0,0,952,GasA,Gd,Y,SBrkr,952,0,0,952,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1968,Unf,1,288,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2431,20,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,3,1950,1950,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,TA,No,LwQ,432,Unf,0,432,864,GasA,Fa,Y,FuseA,1238,0,0,1238,0,0,1,1,3,1,TA,6,Min2,1,TA,Attchd,1950,Unf,1,357,TA,TA,Y,0,171,0,0,0,0,NA,NA,NA,0,11,2007,WD,Normal +2432,20,RL,NA,7500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1959,2003,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,GLQ,574,Unf,0,466,1040,GasA,Ex,Y,SBrkr,1040,0,0,1040,1,0,1,0,3,1,Gd,6,Typ,0,NA,Attchd,1959,RFn,1,286,TA,TA,Y,0,0,0,0,0,0,NA,NA,Shed,0,7,2007,WD,Normal +2433,20,RL,70,7315,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1958,1958,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,Rec,625,Unf,0,545,1170,GasA,TA,Y,SBrkr,1170,0,0,1170,0,1,1,0,3,1,TA,6,Typ,1,TA,Attchd,1958,RFn,1,338,TA,TA,Y,0,0,0,0,225,0,NA,NA,NA,0,3,2007,WD,Normal +2434,20,RL,70,7903,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1960,1960,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,Rec,739,Unf,0,503,1242,GasA,Gd,Y,FuseA,1242,0,0,1242,1,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1960,RFn,1,324,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Family +2435,20,RL,80,8000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1960,1960,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,BLQ,1098,Rec,154,125,1377,GasA,TA,Y,SBrkr,1377,0,0,1377,1,0,1,0,3,1,TA,6,Typ,2,TA,Attchd,1965,Unf,1,351,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,11,2007,WD,Normal +2436,20,RL,70,7000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Feedr,Norm,1Fam,1Story,5,6,1961,1961,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,Gd,Y,SBrkr,925,0,0,925,0,0,1,0,3,1,TA,7,Typ,0,NA,Attchd,1961,Fin,1,300,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2437,20,RL,60,6600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,PosN,Norm,1Fam,1Story,5,5,1962,1962,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,ALQ,110,BLQ,442,312,864,GasA,Gd,Y,SBrkr,864,0,0,864,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1962,Unf,1,294,TA,TA,Y,58,0,0,0,0,0,NA,NA,NA,0,12,2007,WD,Normal +2438,85,RL,66,6760,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SFoyer,5,5,1962,1962,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,Av,ALQ,734,Unf,0,162,896,GasA,TA,Y,SBrkr,936,0,0,936,1,0,1,0,3,1,TA,6,Typ,1,Po,Attchd,1962,RFn,1,288,TA,TA,Y,24,90,160,0,0,0,NA,NA,NA,0,10,2007,WD,Normal +2439,30,RM,60,6978,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1Story,5,7,1926,1980,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,Gd,BrkTil,TA,TA,No,Unf,0,Unf,0,850,850,GasA,TA,Y,SBrkr,960,0,0,960,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1981,RFn,2,576,TA,TA,Y,0,0,116,0,0,0,NA,NA,NA,0,4,2007,WD,Normal +2440,50,RM,50,6000,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,6,6,1927,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Rec,276,Unf,0,569,845,GasA,TA,Y,SBrkr,866,430,0,1296,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1980,Unf,2,576,TA,TA,Y,0,0,175,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2441,30,RM,56,4480,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Artery,Norm,1Fam,1Story,5,5,1922,1950,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,PConc,Fa,Fa,No,LwQ,782,Unf,0,240,1022,GasA,TA,N,FuseF,1022,0,0,1022,1,0,1,0,2,1,Fa,4,Typ,1,Gd,Detchd,1922,Unf,1,184,TA,Fa,N,0,122,20,0,0,0,NA,MnPrv,NA,0,2,2007,WD,Normal +2442,30,RM,56,3153,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,6,1920,1990,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,967,967,GasA,Gd,Y,SBrkr,967,0,0,967,0,0,1,0,2,1,TA,5,Typ,1,Gd,Detchd,1920,Unf,1,180,Fa,TA,N,0,0,26,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2443,30,RM,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,8,1940,1950,Gable,CompShg,VinylSd,VinylSd,Stone,279,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,808,808,GasA,Ex,Y,SBrkr,1072,0,0,1072,0,0,1,0,2,1,TA,5,Typ,2,Gd,Detchd,1940,Unf,2,379,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2444,50,RM,120,9000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,8,1900,2006,Gable,CompShg,Stucco,Stucco,None,0,TA,TA,BrkTil,TA,Fa,No,BLQ,130,Unf,0,550,680,GasA,Ex,Y,SBrkr,680,494,0,1174,0,0,1,0,2,1,Gd,6,Typ,1,Gd,Detchd,2000,Unf,2,576,TA,TA,Y,116,26,40,0,0,0,NA,MnPrv,NA,0,6,2007,WD,Normal +2445,50,RM,50,5925,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,4,6,1900,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,Fa,TA,No,LwQ,122,Rec,448,0,570,GasA,Gd,N,SBrkr,761,380,0,1141,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1930,Unf,1,252,Fa,Fa,Y,0,0,96,0,0,0,NA,NA,NA,0,5,2007,ConLw,Normal +2446,70,RM,57,9639,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,2Story,4,8,1900,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,1075,1075,GasA,Ex,Y,SBrkr,1156,642,0,1798,0,0,2,1,4,1,TA,7,Typ,0,NA,Detchd,1935,Unf,2,342,TA,TA,N,0,0,160,0,0,0,NA,MnPrv,NA,0,5,2007,WD,Normal +2447,70,RM,NA,10337,Pave,Pave,IR1,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,8,9,1910,1999,Hip,CompShg,VinylSd,VinylSd,None,0,Gd,Gd,BrkTil,TA,TA,No,Unf,0,Unf,0,725,725,GasA,Ex,N,SBrkr,909,863,0,1772,0,0,2,1,3,1,Gd,7,Typ,0,NA,Detchd,1992,Unf,2,816,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,5,2007,WD,Normal +2448,70,RM,53,9863,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,6,6,1927,1950,Gambrel,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,LwQ,196,Rec,210,322,728,GasA,TA,Y,SBrkr,914,728,0,1642,0,1,1,1,4,1,TA,9,Typ,1,Gd,Detchd,1927,Unf,1,374,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2007,WD,Abnorml +2449,70,RM,35,4571,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,5,7,1910,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,BLQ,168,Unf,0,448,616,GasA,Ex,Y,SBrkr,616,616,0,1232,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1920,Unf,2,480,Fa,Fa,Y,280,0,143,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2450,50,RM,56,8398,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,6,8,1910,1990,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,Gd,Gd,No,BLQ,259,Unf,0,667,926,GasA,TA,Y,SBrkr,991,659,0,1650,0,0,2,0,3,1,TA,6,Typ,0,NA,Detchd,1979,Unf,2,468,TA,TA,N,128,103,0,0,0,0,NA,NA,NA,0,11,2007,WD,Normal +2451,70,RM,60,3600,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,5,7,1930,2005,Gambrel,CompShg,VinylSd,VinylSd,None,0,TA,Gd,BrkTil,TA,Fa,No,Rec,316,Unf,0,371,687,GasA,Gd,Y,SBrkr,687,671,0,1358,0,0,1,1,3,1,Gd,6,Typ,1,Gd,Detchd,2004,Unf,1,336,TA,TA,Y,0,32,0,0,0,0,NA,MnPrv,NA,0,7,2007,WD,Partial +2452,75,RM,75,13500,Pave,Grvl,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,2.5Unf,7,8,1879,1987,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,PConc,TA,TA,No,Unf,0,Unf,0,819,819,GasA,TA,Y,FuseA,1312,1142,0,2454,0,0,2,0,3,1,TA,8,Typ,1,Gd,Attchd,1950,Unf,2,576,TA,TA,N,0,148,150,0,0,0,NA,MnPrv,NA,0,2,2007,WD,Normal +2453,20,RM,52,8626,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,4,6,1956,1956,Gable,CompShg,MetalSd,MetalSd,None,1,TA,TA,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,Gd,Y,SBrkr,968,0,0,968,0,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1956,Unf,1,331,Fa,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2454,80,RM,76,11800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,SLvl,4,7,1949,2002,Gable,CompShg,Stucco,Wd Sdng,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,Ex,Y,SBrkr,1382,0,0,1382,0,0,2,0,1,1,TA,6,Mod,1,TA,Attchd,1957,RFn,1,384,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2455,40,RL,55,6854,Pave,NA,Reg,Bnk,AllPub,Inside,Mod,BrkSide,Norm,Norm,1Fam,1Story,5,7,1925,1994,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,PConc,TA,TA,No,LwQ,317,Rec,227,212,756,GasA,TA,N,FuseA,916,144,0,1060,1,0,1,0,1,1,TA,6,Mod,1,Gd,Detchd,1969,Unf,1,308,Fa,TA,Y,0,65,0,0,150,0,NA,NA,NA,0,8,2007,WD,Normal +2456,50,RM,55,8674,Pave,NA,Reg,HLS,AllPub,Inside,Gtl,BrkSide,RRNn,Artery,1Fam,1.5Fin,5,6,1950,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,Fa,TA,No,Rec,910,Unf,0,0,910,GasA,TA,Y,SBrkr,910,525,0,1435,1,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1950,Unf,1,308,TA,TA,Y,0,33,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2457,50,RM,50,6125,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,7,1939,1998,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,Rec,306,Unf,0,422,728,GasA,Ex,Y,SBrkr,728,546,0,1274,0,0,2,0,3,1,TA,6,Typ,0,NA,Detchd,1939,Unf,1,224,Fa,TA,Y,0,0,192,0,0,0,NA,NA,NA,0,3,2007,CWD,Normal +2458,70,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,2Story,6,6,1939,1950,Gable,CompShg,MetalSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,Mn,Rec,276,Unf,0,324,600,GasA,Ex,Y,SBrkr,608,624,0,1232,0,0,1,1,3,1,TA,6,Typ,2,TA,Attchd,1939,Unf,1,217,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,2,2007,WD,Normal +2459,45,RM,51,6120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Unf,5,7,1939,1950,Gable,CompShg,AsbShng,AsbShng,None,0,Gd,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,884,884,GasA,Ex,Y,SBrkr,884,0,0,884,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1939,Unf,1,240,TA,TA,Y,0,0,136,0,0,0,NA,MnPrv,NA,0,7,2007,WD,Normal +2460,50,RM,NA,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,5,1938,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,BrkTil,TA,TA,No,LwQ,52,Unf,0,809,861,GasA,Gd,Y,SBrkr,861,548,0,1409,1,0,1,1,3,1,TA,6,Typ,1,Gd,Detchd,1968,Unf,2,528,TA,TA,Y,225,0,84,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2461,50,RM,52,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,8,1939,1952,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,BrkTil,TA,TA,No,Rec,48,Unf,0,624,672,GasA,Ex,Y,SBrkr,899,423,0,1322,1,0,1,0,4,1,TA,7,Typ,0,NA,Detchd,1939,Unf,1,280,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,7,2007,WD,Normal +2462,50,RM,52,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,7,1930,1992,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,966,966,GasA,Ex,Y,SBrkr,1014,412,0,1426,0,0,1,0,3,1,TA,6,Typ,1,Gd,Detchd,1930,Unf,1,230,Fa,TA,Y,174,0,96,0,0,0,NA,GdPrv,NA,0,7,2007,WD,Normal +2463,50,RM,51,6120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,6,1926,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,ALQ,351,Unf,0,405,756,GasA,Gd,Y,FuseA,903,378,0,1281,1,0,1,0,2,1,Gd,6,Typ,0,NA,Detchd,1926,Unf,2,379,TA,TA,Y,25,0,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2464,70,RM,47,7755,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,6,8,1918,1995,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,CBlock,TA,TA,No,Unf,0,Unf,0,1100,1100,GasA,Ex,Y,FuseA,1100,1164,0,2264,0,0,2,1,4,1,TA,8,Typ,0,NA,Detchd,1950,Unf,1,408,TA,TA,Y,0,152,0,0,0,0,NA,MnPrv,NA,0,5,2007,WD,Normal +2465,50,RL,60,8850,Pave,Pave,Reg,Bnk,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,7,1920,1950,Gable,CompShg,Wd Sdng,Wd Shng,None,0,TA,Gd,PConc,TA,TA,No,Unf,0,Unf,0,768,768,GasA,Ex,Y,SBrkr,752,624,0,1376,0,0,1,0,3,1,Gd,7,Typ,0,NA,Detchd,1977,Unf,2,576,TA,TA,P,0,54,144,0,0,0,NA,NA,NA,0,2,2007,WD,Normal +2466,50,RL,60,8550,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,RRAn,Norm,1Fam,1.5Fin,5,5,1926,1950,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Fa,TA,No,Unf,0,Unf,0,750,750,GasA,TA,Y,SBrkr,960,356,0,1316,0,0,1,0,4,1,TA,7,Typ,0,NA,Detchd,1965,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2007,ConLw,Family +2467,70,RM,NA,5700,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,OldTown,Feedr,Norm,1Fam,2Story,7,6,1929,1990,Gable,CompShg,Wd Sdng,Wd Shng,None,0,TA,TA,BrkTil,TA,TA,No,Rec,336,Unf,0,336,672,GasA,Gd,N,FuseA,672,672,0,1344,1,0,1,1,3,1,Gd,6,Typ,1,Gd,Attchd,1979,Unf,2,456,TA,TA,Y,0,0,70,0,0,0,NA,GdPrv,NA,0,9,2007,WD,Normal +2468,45,RM,40,5680,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,4,1901,1950,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,592,592,GasA,TA,N,FuseA,933,240,0,1173,0,0,2,0,3,1,TA,7,Typ,0,NA,Detchd,1920,Unf,1,240,TA,Fa,Y,0,25,77,0,0,0,NA,MnPrv,NA,0,9,2007,WD,AdjLand +2469,50,RM,40,5680,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,3,1901,1950,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,969,969,GasA,TA,N,FuseA,969,245,0,1214,0,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1920,Unf,1,216,TA,TA,N,0,0,77,0,0,0,NA,MnPrv,NA,0,9,2007,WD,AdjLand +2470,80,RM,120,13200,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Norm,Norm,1Fam,SLvl,6,6,1963,1963,Gable,CompShg,HdBoard,HdBoard,BrkFace,234,TA,TA,CBlock,TA,TA,No,BLQ,375,Unf,0,366,741,GasA,Fa,Y,SBrkr,1497,797,0,2294,0,0,3,0,5,1,TA,9,Typ,1,Gd,Attchd,1963,Unf,2,658,TA,TA,Y,0,110,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal +2471,60,RM,60,9780,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,2Story,7,9,1950,2005,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Ex,CBlock,TA,TA,No,LwQ,354,Rec,398,224,976,GasA,Ex,Y,SBrkr,976,976,0,1952,0,0,1,1,4,1,Gd,8,Typ,2,TA,Detchd,1950,Fin,1,299,TA,TA,Y,285,0,0,0,216,0,NA,NA,NA,0,4,2007,WD,Normal +2472,50,RM,60,10320,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,6,5,1915,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,Fa,No,LwQ,375,Unf,0,763,1138,GasA,Gd,Y,SBrkr,1138,1042,0,2180,0,0,1,1,3,1,TA,7,Typ,1,Gd,Detchd,2006,Unf,2,720,TA,TA,N,0,0,170,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2473,190,RM,52,4330,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,2fmCon,1.5Fin,4,6,1958,1958,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,Fa,TA,No,Rec,681,ALQ,127,0,808,GasA,TA,Y,SBrkr,838,477,0,1315,1,0,2,0,3,1,TA,5,Typ,0,NA,Detchd,1958,RFn,2,436,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,2,2007,COD,Abnorml +2474,50,RM,60,10320,Pave,Grvl,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Artery,Norm,1Fam,1.5Fin,4,1,1910,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Fa,Fa,CBlock,TA,Fa,No,Unf,0,Unf,0,771,771,GasA,Fa,Y,SBrkr,866,504,114,1484,0,0,2,0,3,1,TA,6,NA,0,NA,Detchd,1910,Unf,1,264,TA,Fa,N,14,211,0,0,84,0,NA,NA,NA,0,9,2007,COD,Abnorml +2475,70,RL,107,12888,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Sawyer,Feedr,Norm,1Fam,2Story,7,8,1937,1980,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,288,Unf,0,717,1005,GasA,TA,Y,SBrkr,1262,1005,0,2267,1,0,1,1,3,1,TA,7,Typ,2,Gd,Attchd,1937,Fin,2,498,TA,TA,Y,521,0,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal +2476,190,RL,59,4484,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,SWISU,Norm,Norm,2fmCon,1.5Fin,5,6,1942,1979,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,485,Unf,0,187,672,GasA,TA,N,SBrkr,778,504,0,1282,1,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1942,Unf,1,240,TA,TA,Y,0,88,0,0,0,0,NA,MnPrv,NA,0,7,2007,WD,Normal +2477,190,RL,75,11235,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,2fmCon,SFoyer,5,5,1963,1963,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,Av,ALQ,925,Unf,0,0,925,GasA,TA,Y,SBrkr,999,0,0,999,1,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1963,Unf,1,308,TA,TA,Y,40,176,0,0,0,0,NA,MnPrv,NA,0,3,2007,WD,Normal +2478,85,RL,75,11235,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,SFoyer,5,5,1964,1980,Gable,CompShg,HdBoard,HdBoard,BrkFace,30,TA,TA,CBlock,Gd,TA,Av,BLQ,785,Unf,0,635,1420,GasA,Gd,Y,SBrkr,1452,0,0,1452,1,0,1,0,2,1,TA,6,Min2,1,TA,Detchd,1964,Unf,2,572,TA,TA,Y,92,0,88,0,0,0,NA,NA,NA,0,11,2007,WD,Normal +2479,20,RL,62,14299,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,4,3,1964,1964,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Rec,513,LwQ,144,348,1005,GasA,TA,Y,SBrkr,1005,0,0,1005,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1964,Unf,2,440,TA,TA,N,0,0,0,0,0,0,NA,MnPrv,NA,0,7,2007,WD,Normal +2480,80,RL,65,14149,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,SLvl,5,8,1964,2001,Hip,CompShg,HdBoard,HdBoard,BrkFace,50,Gd,Gd,CBlock,TA,TA,Gd,LwQ,68,BLQ,722,190,980,GasA,TA,Y,SBrkr,1020,0,0,1020,0,1,2,0,3,1,TA,5,Typ,1,Po,Detchd,1970,Unf,2,528,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2481,20,RL,NA,11677,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,4,1966,1966,Gable,CompShg,HdBoard,HdBoard,BrkFace,442,TA,TA,CBlock,TA,TA,Av,Rec,249,BLQ,761,30,1040,GasA,TA,Y,SBrkr,1040,0,0,1040,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1966,RFn,1,264,TA,TA,Y,0,90,0,0,0,0,NA,MnPrv,NA,0,2,2007,WD,Normal +2482,190,RL,70,8425,Pave,NA,Reg,Lvl,AllPub,FR3,Gtl,Sawyer,Feedr,Norm,2fmCon,1Story,5,6,1971,1990,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,Av,GLQ,748,Unf,0,20,768,GasA,Gd,Y,SBrkr,868,0,0,868,1,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1989,Unf,2,576,TA,TA,Y,138,0,0,0,0,0,NA,GdPrv,NA,0,5,2007,WD,Normal +2483,20,RL,86,8665,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1968,1968,Gable,CompShg,HdBoard,HdBoard,BrkFace,89,TA,TA,CBlock,TA,TA,Mn,Rec,168,BLQ,288,420,876,GasA,TA,Y,SBrkr,897,0,0,897,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1968,RFn,1,264,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,1,2007,WD,Normal +2484,20,RL,NA,8398,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1967,1967,Gable,CompShg,MetalSd,MetalSd,BrkFace,323,TA,Gd,CBlock,TA,TA,No,LwQ,114,BLQ,529,300,943,GasA,TA,Y,SBrkr,943,0,0,943,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1972,Unf,2,528,TA,TA,Y,132,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2485,20,RL,NA,8169,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,5,7,1966,1966,Gable,CompShg,Plywood,Plywood,None,0,TA,Gd,CBlock,TA,TA,No,Rec,216,ALQ,435,261,912,GasA,Ex,Y,SBrkr,912,0,0,912,1,0,1,0,3,1,Gd,6,Typ,0,NA,Detchd,1966,Unf,1,315,TA,TA,Y,204,0,0,0,0,0,NA,MnPrv,NA,0,7,2007,WD,Normal +2486,20,RL,81,14175,Pave,NA,Reg,Bnk,AllPub,Inside,Mod,Sawyer,PosA,Norm,1Fam,1Story,5,5,1956,1998,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,Rec,386,ALQ,522,332,1240,GasA,Gd,Y,SBrkr,1375,0,0,1375,1,0,1,0,3,1,TA,6,Typ,1,Gd,Attchd,1956,Unf,1,323,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,12,2007,WD,Normal +2487,60,RL,99,16779,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Feedr,Norm,1Fam,2Story,5,4,1920,1996,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,356,TA,Fa,CBlock,Gd,TA,No,BLQ,267,Unf,0,404,671,GasA,Fa,Y,SBrkr,1567,1087,0,2654,0,0,3,0,4,1,TA,11,Mod,1,Gd,Attchd,1946,Unf,2,638,TA,TA,Y,128,570,0,0,0,0,NA,NA,Shed,500,5,2007,WD,Normal +2488,50,RL,70,6960,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1.5Fin,7,8,1940,1998,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,ALQ,258,Unf,0,422,680,GasA,Ex,Y,FuseA,798,504,0,1302,0,0,1,1,2,1,Gd,6,Typ,2,Gd,Attchd,1940,Unf,1,224,TA,TA,Y,0,0,0,0,126,0,NA,MnPrv,NA,0,7,2007,WD,Normal +2489,20,RL,91,11375,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,6,5,1954,1995,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,736,Unf,0,231,967,GasA,TA,Y,SBrkr,1299,0,0,1299,0,0,1,0,3,1,Gd,6,Typ,1,TA,Attchd,1954,Unf,2,494,TA,TA,Y,81,0,280,0,0,0,NA,NA,NA,0,10,2007,WD,Normal +2490,20,RL,85,13770,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,5,6,1958,1998,Gable,CompShg,Plywood,Plywood,BrkFace,340,TA,TA,CBlock,TA,TA,Mn,Rec,190,BLQ,873,95,1158,GasA,TA,Y,SBrkr,1176,0,0,1176,1,0,1,0,3,1,TA,6,Typ,2,Gd,Attchd,1958,Unf,1,303,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2007,NA,Normal +2491,20,RL,NA,9000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,4,7,1945,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Fa,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,N,FuseA,998,0,0,998,0,0,1,0,3,1,TA,5,Min2,0,NA,2Types,1952,Unf,2,460,Fa,TA,Y,0,0,140,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2492,20,RL,NA,11075,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,ClearCr,Norm,Norm,1Fam,1Story,6,5,1984,1984,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,136,TA,TA,PConc,Gd,TA,No,BLQ,299,LwQ,891,0,1190,GasA,Ex,Y,SBrkr,1522,0,0,1522,0,0,2,0,3,1,TA,7,Typ,1,TA,Attchd,1984,Fin,2,552,TA,TA,Y,0,77,0,0,168,0,NA,GdPrv,NA,0,2,2007,WD,Normal +2493,20,RL,NA,17541,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,7,1948,2005,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,CBlock,TA,Gd,Mn,BLQ,300,Unf,0,109,409,GasA,Ex,Y,SBrkr,1325,0,0,1325,0,0,2,0,3,1,Gd,6,Typ,1,TA,Detchd,1996,Unf,2,576,TA,TA,Y,0,42,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2494,20,RL,NA,22692,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,5,1953,1953,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,587,Unf,0,486,1073,GasA,TA,Y,SBrkr,1630,0,0,1630,0,0,2,0,3,1,TA,6,Mod,1,TA,Detchd,1953,Unf,2,649,TA,TA,P,0,64,0,0,0,0,NA,NA,NA,0,3,2007,COD,Normal +2495,20,RL,84,17808,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Feedr,Norm,1Fam,1Story,4,5,1946,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,484,484,GasA,TA,N,SBrkr,1242,0,0,1242,0,0,1,0,2,1,TA,4,Mod,0,NA,Attchd,1946,Unf,1,336,TA,TA,N,0,0,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2496,20,RL,102,12671,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,ClearCr,Norm,Norm,1Fam,1Story,6,7,1954,1994,Hip,CompShg,MetalSd,MetalSd,Stone,300,TA,Gd,CBlock,Gd,Fa,No,LwQ,353,Unf,0,935,1288,GasA,Ex,Y,SBrkr,2422,0,0,2422,0,0,3,0,4,1,Gd,6,Min2,2,Gd,Attchd,1954,Fin,2,527,TA,TA,Y,0,63,0,0,144,0,NA,NA,NA,0,7,2007,WD,Normal +2497,50,RL,70,10512,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,6,6,1954,1954,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,491,Unf,0,497,988,GasA,Ex,Y,SBrkr,988,638,0,1626,0,0,1,1,3,1,Gd,6,Typ,0,NA,Attchd,1954,Unf,1,332,TA,TA,Y,366,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2498,20,RL,60,5400,Pave,NA,Reg,HLS,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1Story,5,5,1958,1958,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,453,Unf,0,411,864,GasA,TA,Y,SBrkr,864,0,0,864,0,1,1,0,3,1,TA,6,Typ,0,NA,Attchd,1958,Unf,1,399,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2499,30,RL,NA,11515,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,5,1958,1994,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,N,SBrkr,943,0,0,943,0,0,1,0,3,1,Gd,5,Min2,0,NA,Detchd,1958,Unf,1,308,TA,TA,N,0,0,60,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2500,120,RL,39,3869,Pave,NA,Reg,Lvl,AllPub,Inside,Mod,Edwards,Norm,Norm,TwnhsE,1Story,5,6,1984,1984,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,149,Gd,Ex,CBlock,TA,TA,No,LwQ,283,GLQ,755,0,1038,GasA,Gd,Y,SBrkr,1038,0,0,1038,0,0,2,0,2,1,TA,5,Typ,0,NA,Attchd,1984,RFn,1,264,TA,TA,Y,0,105,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2501,20,RL,58,9280,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,6,1951,1951,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,Fa,TA,No,ALQ,557,Unf,0,785,1342,GasA,Ex,Y,SBrkr,1342,0,0,1342,1,0,1,0,4,1,TA,7,Typ,0,NA,Detchd,1951,Unf,1,256,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal +2502,50,RL,60,11100,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,5,6,1951,1994,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,Mn,LwQ,1080,Unf,0,0,1080,GasA,TA,N,SBrkr,1080,400,0,1480,1,0,1,0,4,1,TA,7,Typ,1,Gd,Attchd,1951,Unf,1,253,TA,TA,Y,0,0,68,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2503,50,RL,50,7550,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,4,5,1920,1950,Gambrel,CompShg,MetalSd,MetalSd,None,0,Fa,Fa,BrkTil,TA,Fa,No,Unf,0,Unf,0,951,951,GasW,Fa,N,SBrkr,986,376,0,1362,0,0,2,0,4,1,TA,7,Typ,0,NA,Detchd,1920,Unf,1,280,Fa,TA,P,0,0,0,0,0,0,NA,MnPrv,NA,0,3,2007,WD,Normal +2504,50,RL,104,23920,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Feedr,Norm,1Fam,1.5Fin,6,5,1984,1984,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1105,1105,GasA,Ex,Y,SBrkr,1105,717,0,1822,0,0,2,0,4,1,Gd,7,Min2,1,Po,Attchd,1984,Unf,2,515,TA,TA,P,0,195,1012,0,0,444,NA,NA,NA,0,4,2007,WD,Normal +2505,60,RL,75,9317,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,1994,2001,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,Gd,PConc,Gd,Gd,No,GLQ,497,Unf,0,282,779,GasA,Ex,Y,SBrkr,1029,929,0,1958,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1994,RFn,2,499,TA,TA,Y,202,93,0,0,0,0,NA,NA,NA,0,7,2007,CWD,Normal +2506,20,RL,71,9178,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,306,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1643,1643,GasA,Ex,Y,SBrkr,1651,0,0,1651,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2007,Fin,3,870,TA,TA,Y,204,64,0,0,0,0,NA,NA,NA,0,9,2007,New,Partial +2507,20,RL,93,10481,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2006,2007,Hip,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,2140,2140,GasA,Ex,Y,SBrkr,2140,0,0,2140,0,0,2,1,3,1,Gd,8,Typ,0,NA,Attchd,2006,Fin,3,894,TA,TA,Y,136,32,0,0,0,0,NA,NA,NA,0,6,2007,New,Partial +2508,20,RL,66,10235,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,306,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1643,1643,GasA,Ex,Y,SBrkr,1651,0,0,1651,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2007,RFn,3,870,TA,TA,Y,192,64,0,0,0,0,NA,NA,NA,0,9,2007,New,Partial +2509,20,RL,75,11750,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,204,Gd,TA,PConc,Gd,TA,Mn,GLQ,20,Unf,0,1526,1546,GasA,Ex,Y,SBrkr,1546,0,0,1546,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2005,RFn,3,796,TA,TA,Y,144,42,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2510,20,RL,73,8760,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,132,Gd,TA,PConc,Gd,TA,No,GLQ,36,Unf,0,1453,1489,GasA,Ex,Y,SBrkr,1500,0,0,1500,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2005,RFn,2,674,TA,TA,Y,144,38,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2511,20,RL,64,7242,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1270,1270,GasA,Ex,Y,SBrkr,1270,0,0,1270,0,0,2,0,2,1,Gd,6,Typ,0,NA,Attchd,2005,RFn,2,524,TA,TA,Y,0,96,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2512,60,RL,78,9316,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Gd,Unf,0,Unf,0,879,879,GasA,Ex,Y,SBrkr,879,916,0,1795,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2005,RFn,2,578,TA,TA,Y,164,111,0,0,0,0,NA,NA,NA,0,10,2007,WD,Normal +2513,60,RL,NA,8883,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,1988,1988,Gable,CompShg,HdBoard,HdBoard,BrkFace,360,Gd,TA,PConc,Gd,TA,No,GLQ,608,LwQ,321,0,929,GasA,Ex,Y,SBrkr,946,927,0,1873,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1988,RFn,2,619,TA,TA,Y,108,48,0,0,144,0,NA,GdPrv,NA,0,5,2007,WD,Normal +2514,20,RL,155,20064,Pave,NA,IR1,Low,AllPub,Inside,Sev,ClearCr,Norm,Norm,1Fam,1Story,8,6,1976,1976,Shed,WdShngl,Wd Sdng,Wd Sdng,None,0,Gd,TA,CBlock,Gd,Gd,Gd,LwQ,51,GLQ,915,0,966,GasA,Ex,Y,SBrkr,1743,0,0,1743,2,0,0,1,0,1,Gd,5,Typ,2,Fa,Attchd,1976,Fin,2,529,TA,TA,Y,646,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2515,20,RL,NA,14217,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,5,1994,1994,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,ALQ,550,Unf,0,472,1022,GasA,Gd,Y,SBrkr,1022,0,0,1022,0,1,1,0,3,1,TA,6,Typ,0,NA,Detchd,1995,Unf,2,747,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2516,60,RL,57,10021,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,6,6,1997,2006,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,PConc,Gd,TA,No,GLQ,539,Unf,0,96,635,GasA,Ex,Y,SBrkr,646,662,0,1308,1,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,1997,RFn,2,497,TA,TA,Y,142,54,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2517,20,RL,60,8428,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,7,1994,1994,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,PConc,Gd,Gd,No,GLQ,420,Unf,0,570,990,GasA,Ex,Y,SBrkr,990,0,0,990,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1995,Unf,1,384,TA,TA,Y,256,0,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2518,20,RL,70,16561,Pave,NA,IR2,Low,AllPub,Inside,Mod,CollgCr,Norm,Norm,1Fam,1Story,5,5,1996,1996,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,ALQ,549,Unf,0,548,1097,GasA,Ex,Y,SBrkr,1097,0,0,1097,1,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1996,Unf,1,242,TA,TA,Y,306,0,0,0,0,0,NA,GdPrv,NA,0,7,2007,WD,Normal +2519,60,RL,47,10820,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Gd,GLQ,342,Unf,0,646,988,GasA,Ex,Y,SBrkr,988,885,0,1873,0,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1999,RFn,2,597,TA,TA,Y,202,123,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2520,60,RL,43,12352,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,1998,1999,Gable,CompShg,VinylSd,VinylSd,BrkFace,290,Gd,TA,PConc,Gd,TA,No,GLQ,638,Unf,0,215,853,GasA,Ex,Y,SBrkr,853,900,0,1753,1,0,2,1,3,1,TA,7,Typ,1,Fa,Attchd,1998,RFn,2,534,TA,TA,Y,0,74,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2521,60,RL,68,9543,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,845,845,GasA,Ex,Y,SBrkr,845,845,0,1690,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2001,RFn,2,517,TA,TA,Y,0,103,0,0,0,0,NA,NA,NA,0,2,2007,WD,Normal +2522,60,RL,NA,8826,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,144,Gd,TA,PConc,Gd,TA,No,GLQ,841,Unf,0,144,985,GasA,Ex,Y,SBrkr,985,857,0,1842,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,2000,Fin,2,486,TA,TA,Y,193,96,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2523,20,RL,97,11800,Pave,NA,IR1,Bnk,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,5,1974,1974,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,Av,BLQ,663,Unf,0,201,864,GasA,TA,Y,SBrkr,894,0,0,894,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1974,Unf,2,440,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2007,WD,Family +2524,80,RL,59,8660,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,SLvl,5,5,1976,1976,Gable,CompShg,VinylSd,VinylSd,BrkFace,113,TA,Gd,CBlock,Gd,TA,Av,GLQ,502,Unf,0,513,1015,GasA,TA,Y,SBrkr,1025,0,0,1025,0,0,2,0,3,1,TA,6,Typ,1,Fa,Detchd,1979,Unf,2,370,TA,TA,Y,127,0,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2525,80,RL,72,9720,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,SLvl,5,7,1977,1977,Gable,CompShg,Plywood,VinylSd,BrkFace,51,TA,TA,CBlock,TA,NA,Av,ALQ,755,Unf,0,240,995,GasA,TA,Y,SBrkr,1009,0,0,1009,0,0,2,0,3,1,TA,6,Typ,1,Fa,Detchd,1977,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,6,2007,WD,Normal +2526,20,RL,45,8982,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,5,1977,1977,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,Gd,TA,Av,ALQ,539,Unf,0,501,1040,GasA,TA,Y,SBrkr,1040,0,0,1040,0,0,1,1,3,1,TA,5,Typ,0,NA,Detchd,1977,Unf,2,748,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,1,2007,WD,Normal +2527,20,RL,39,16300,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,4,1977,1977,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,Av,Rec,60,BLQ,417,399,876,GasA,TA,Y,SBrkr,907,0,0,907,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1977,RFn,1,308,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,1,2007,WD,Normal +2528,20,RL,75,9675,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,6,1975,1975,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,BLQ,330,Rec,432,102,864,GasA,TA,Y,SBrkr,879,0,0,879,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1975,Unf,2,440,TA,TA,Y,0,80,0,0,0,0,NA,NA,NA,0,9,2007,Con,Normal +2529,20,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,5,1972,2000,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,671,Unf,0,193,864,GasA,Gd,Y,SBrkr,864,0,0,864,1,0,1,0,3,1,Ex,5,Typ,0,NA,Detchd,1977,Fin,2,576,Gd,Ex,Y,155,0,0,0,0,0,NA,NA,NA,0,9,2007,WD,Normal +2530,20,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,4,8,1972,2006,Gable,CompShg,Plywood,Plywood,None,0,TA,Gd,CBlock,TA,TA,No,Rec,385,Unf,0,0,385,GasA,Gd,Y,SBrkr,875,0,0,875,0,0,1,0,3,1,Gd,5,Typ,0,NA,Detchd,1975,Unf,2,728,TA,TA,Y,352,0,0,0,0,0,NA,NA,NA,0,10,2007,WD,Normal +2531,20,RL,NA,11354,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,TA,TA,Gd,GLQ,1412,Unf,0,261,1673,GasA,Ex,Y,SBrkr,1673,0,0,1673,1,0,2,0,3,1,Gd,7,Typ,1,TA,Attchd,2000,RFn,2,583,TA,TA,Y,306,113,0,0,116,0,NA,NA,NA,0,1,2007,WD,Normal +2532,60,RL,70,8749,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,654,Unf,0,325,979,GasA,Ex,Y,SBrkr,992,940,0,1932,1,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2003,RFn,2,610,TA,TA,Y,0,120,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2533,60,RL,65,8158,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,214,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,860,860,GasA,Ex,Y,SBrkr,860,869,0,1729,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2002,Fin,2,542,TA,TA,Y,386,63,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2534,20,RL,73,11927,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,1994,1995,Hip,CompShg,HdBoard,HdBoard,BrkFace,519,Gd,TA,PConc,Gd,TA,Gd,BLQ,408,GLQ,465,683,1556,GasA,Ex,Y,SBrkr,1592,0,0,1592,0,0,2,0,3,1,Gd,7,Typ,1,TA,Attchd,1994,Fin,2,484,TA,TA,Y,120,35,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2535,60,RL,NA,12728,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,BrkFace,256,Gd,TA,PConc,Gd,TA,Mn,GLQ,1198,Unf,0,333,1531,GasA,Ex,Y,SBrkr,1531,908,0,2439,1,0,2,1,4,1,Gd,7,Typ,1,TA,Attchd,2001,Fin,2,560,TA,TA,Y,184,121,0,0,0,0,NA,NA,NA,0,1,2007,WD,Normal +2536,60,RL,NA,15295,Pave,NA,IR3,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,1996,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,254,Gd,TA,PConc,Gd,TA,Mn,GLQ,762,Unf,0,98,860,GasA,Ex,Y,SBrkr,1212,780,0,1992,1,0,2,1,3,1,Gd,7,Min2,2,TA,Attchd,1996,RFn,2,608,TA,TA,Y,225,32,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2537,20,RL,73,17227,Pave,NA,IR2,Lvl,AllPub,CulDSac,Mod,CollgCr,Norm,Norm,1Fam,1Story,8,5,1999,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,158,Gd,TA,PConc,Gd,TA,Gd,GLQ,915,Unf,0,426,1341,GasA,Ex,Y,SBrkr,1341,0,0,1341,1,0,1,1,1,1,Gd,5,Typ,1,TA,Attchd,1999,RFn,2,482,TA,TA,Y,240,84,0,0,0,0,NA,NA,NA,0,1,2007,WD,Normal +2538,60,RL,70,8145,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,738,738,GasA,Ex,Y,SBrkr,738,738,0,1476,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2007,RFn,2,552,TA,TA,Y,0,35,0,0,0,0,NA,NA,NA,0,6,2007,New,Partial +2539,20,RL,65,8769,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,709,Unf,0,460,1169,GasA,Ex,Y,SBrkr,1190,0,0,1190,1,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,2005,RFn,2,578,TA,TA,Y,100,41,0,0,0,0,NA,NA,NA,0,10,2007,WD,Normal +2540,20,RL,64,8334,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,6,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1330,1330,GasA,Ex,Y,SBrkr,1330,0,0,1330,0,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2006,Fin,2,437,TA,TA,Y,0,23,0,0,0,0,NA,NA,NA,0,7,2007,New,Partial +2541,60,RL,64,8333,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,738,738,GasA,Gd,Y,SBrkr,738,753,0,1491,0,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2006,RFn,2,484,TA,TA,Y,100,30,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2542,60,RL,64,9045,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,5,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,768,768,GasA,Ex,Y,SBrkr,768,768,0,1536,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2005,Fin,2,400,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2543,85,RL,75,9825,Pave,NA,Reg,Low,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,SFoyer,5,5,1967,1967,Gable,CompShg,HdBoard,HdBoard,BrkFace,162,TA,TA,CBlock,Gd,TA,Gd,ALQ,936,Unf,0,0,936,GasA,Gd,Y,SBrkr,936,0,0,936,1,0,1,0,2,1,TA,4,Typ,1,Fa,Attchd,1967,Unf,1,384,TA,TA,Y,405,0,0,0,0,0,NA,NA,Shed,450,8,2007,WD,Abnorml +2544,20,RL,67,8308,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,6,1963,1963,Gable,CompShg,VinylSd,VinylSd,Stone,20,TA,Gd,CBlock,TA,TA,No,BLQ,132,LwQ,841,115,1088,GasA,TA,Y,SBrkr,1088,0,0,1088,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,2002,Unf,2,520,TA,TA,P,0,0,0,0,0,0,NA,NA,NA,0,6,2007,COD,Normal +2545,50,RL,74,16287,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,5,6,1925,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,130,BLQ,105,666,901,GasA,TA,Y,SBrkr,901,450,0,1351,1,0,1,0,3,1,TA,7,Typ,1,Gd,Detchd,1975,Unf,2,576,TA,TA,N,0,0,43,0,100,0,NA,NA,NA,0,7,2007,WD,Normal +2546,20,RL,80,8240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,6,6,1960,1960,Hip,CompShg,HdBoard,HdBoard,Stone,198,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1179,1179,GasA,Gd,Y,SBrkr,1179,0,0,1179,0,0,1,0,2,1,TA,5,Min2,0,NA,Attchd,1960,Fin,2,622,TA,TA,P,0,0,0,0,0,0,NA,GdPrv,NA,0,6,2007,WD,Normal +2547,80,RL,65,6285,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,SLvl,6,6,1976,1976,Gable,CompShg,HdBoard,Plywood,None,0,TA,Fa,CBlock,TA,TA,Av,GLQ,504,Unf,0,456,960,GasA,TA,Y,SBrkr,1044,0,0,1044,1,0,1,0,3,1,TA,7,Typ,1,Fa,Detchd,1976,Unf,2,528,TA,Fa,Y,228,0,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal +2548,90,RL,NA,9555,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Edwards,Norm,Norm,Duplex,2Story,5,6,1979,1979,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,1100,1133,0,2233,0,0,2,1,5,2,TA,11,Typ,0,NA,Attchd,1979,Fin,2,579,TA,Gd,Y,0,0,0,0,0,0,NA,NA,NA,0,2,2007,WD,Normal +2549,60,RL,60,7023,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,2Story,5,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,Gd,No,GLQ,611,Unf,0,123,734,GasA,Gd,Y,SBrkr,734,674,0,1408,1,0,2,1,3,1,TA,6,Typ,0,NA,BuiltIn,2005,Fin,2,489,TA,TA,Y,0,85,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2550,20,RL,128,39290,Pave,NA,IR1,Bnk,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,10,5,2008,2009,Hip,CompShg,CemntBd,CmentBd,Stone,1224,Ex,TA,PConc,Ex,TA,Gd,GLQ,4010,Unf,0,1085,5095,GasA,Ex,Y,SBrkr,5095,0,0,5095,1,1,2,1,2,1,Ex,15,Typ,2,Gd,Attchd,2008,Fin,3,1154,TA,TA,Y,546,484,0,0,0,0,NA,NA,NA,17000,10,2007,New,Partial +2551,180,RM,35,3675,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,TwnhsE,SFoyer,6,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,Stone,76,TA,TA,PConc,Gd,TA,Gd,GLQ,467,Unf,0,80,547,GasA,Ex,Y,SBrkr,1072,0,0,1072,1,0,1,0,2,1,Gd,5,Typ,0,NA,Basment,2005,Fin,2,525,TA,TA,Y,0,44,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2552,20,RL,64,6400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,7,1959,2000,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,TA,Av,Rec,77,ALQ,831,52,960,GasA,Ex,Y,SBrkr,960,0,0,960,1,0,1,0,2,1,Fa,4,Typ,0,NA,Detchd,1959,Unf,1,392,TA,TA,Y,144,0,35,0,0,0,NA,NA,NA,0,12,2007,WD,Normal +2553,90,RL,74,6882,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,Duplex,1Story,4,3,1955,1955,Gable,CompShg,AsbShng,Plywood,BrkCmn,128,TA,TA,PConc,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,N,SBrkr,1152,0,0,1152,0,0,2,0,2,2,Fa,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,0,0,0,0,NA,NA,NA,0,9,2007,WD,Normal +2554,90,RL,52,8741,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,Duplex,1Story,5,6,1946,1950,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1195,1195,GasA,TA,N,SBrkr,1195,0,0,1195,0,0,2,0,4,2,TA,8,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,118,0,0,0,0,0,NA,GdWo,NA,0,7,2007,WD,Abnorml +2555,40,RL,62,10042,Pave,NA,Reg,Bnk,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,6,8,1920,1995,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,LwQ,144,ALQ,278,238,660,GasA,TA,Y,SBrkr,740,125,0,865,1,0,1,0,2,1,TA,4,Typ,1,Gd,Detchd,1920,Unf,1,216,TA,TA,Y,0,0,84,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2556,20,RL,60,8172,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,5,1955,1955,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,544,Unf,0,224,768,GasA,TA,Y,SBrkr,768,0,0,768,0,0,1,0,2,1,TA,4,Typ,1,Fa,Detchd,1959,Unf,1,355,TA,TA,Y,0,0,196,0,0,0,NA,MnPrv,NA,0,7,2007,WD,Normal +2557,20,RL,60,8172,Pave,NA,Reg,HLS,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,5,1955,1955,Gable,CompShg,WdShing,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,682,Unf,0,182,864,GasA,TA,Y,SBrkr,864,0,0,864,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1996,Unf,2,528,TA,TA,N,196,0,0,0,0,0,NA,NA,NA,0,10,2007,COD,Family +2558,90,RL,60,10890,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,Duplex,2Story,5,6,1923,1950,Hip,CompShg,Wd Sdng,Plywood,None,0,TA,TA,PConc,TA,TA,Mn,Rec,371,Unf,0,925,1296,Grav,Fa,N,FuseA,1296,1296,0,2592,2,0,2,0,6,2,TA,12,Min2,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,742,240,0,0,0,NA,NA,Shed,1512,1,2007,WD,AdjLand +2559,30,RL,54,7223,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,5,5,1926,1950,Hip,CompShg,Stucco,Plywood,None,0,TA,TA,PConc,TA,TA,Mn,BLQ,319,Unf,0,971,1290,GasA,TA,Y,SBrkr,1422,0,0,1422,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1973,Unf,1,352,TA,TA,Y,0,0,64,0,0,0,NA,MnPrv,NA,0,4,2007,WD,Normal +2560,50,RL,51,6821,Pave,NA,Reg,HLS,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1.5Fin,6,7,1921,2005,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,BLQ,113,Unf,0,538,651,GasA,Gd,Y,SBrkr,759,539,0,1298,0,0,2,0,2,1,TA,8,Typ,1,Gd,Detchd,1994,Unf,1,240,TA,TA,P,216,0,168,0,0,0,NA,NA,NA,0,8,2007,WD,Normal +2561,70,RL,63,4000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,7,8,1930,1995,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Gd,TA,No,GLQ,246,Unf,0,285,531,GasA,TA,Y,SBrkr,567,531,0,1098,1,0,1,0,2,1,TA,5,Typ,1,Gd,Detchd,1930,Unf,1,216,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,6,2007,WD,Normal +2562,70,RL,53,6720,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,6,7,1921,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,585,585,GasA,TA,N,SBrkr,851,585,0,1436,0,0,1,0,3,1,TA,7,Typ,1,Gd,Detchd,1992,Unf,1,228,TA,TA,Y,184,0,0,0,0,0,NA,NA,NA,0,4,2007,CWD,Normal +2563,70,RL,53,7155,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,6,8,1926,1991,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,686,686,GasA,TA,Y,SBrkr,686,775,0,1461,0,0,1,0,3,1,TA,6,Typ,1,Gd,Detchd,1926,Unf,1,225,TA,TA,N,0,0,116,0,0,0,NA,MnPrv,NA,0,7,2007,WD,Normal +2564,70,RL,60,7230,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2.5Unf,7,7,1927,1992,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,851,851,GasA,Gd,Y,SBrkr,867,851,0,1718,0,0,2,1,4,1,Gd,8,Typ,1,TA,Detchd,1927,Unf,2,264,TA,TA,Y,291,0,60,0,153,0,NA,GdPrv,NA,0,10,2007,WD,Normal +2565,20,RL,126,13108,Pave,NA,IR2,HLS,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,5,5,1951,1951,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,Fa,Y,SBrkr,1226,0,0,1226,0,0,1,1,2,1,TA,7,Min1,1,Gd,Attchd,1951,Fin,2,400,TA,TA,Y,174,24,120,0,228,0,NA,NA,NA,0,6,2007,WD,Normal +2566,50,RL,110,7810,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1.5Fin,4,6,1930,2003,Gable,CompShg,AsbShng,CmentBd,None,0,TA,Gd,BrkTil,TA,Gd,No,GLQ,189,Unf,0,741,930,GasA,Ex,Y,SBrkr,1230,525,0,1755,0,0,2,0,4,1,Gd,7,Typ,1,TA,Detchd,1930,Unf,1,231,Fa,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,11,2007,WD,Normal +2567,190,RL,79,6221,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,2fmCon,1.5Fin,5,5,1941,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,Fa,No,LwQ,533,Unf,0,195,728,GasA,Ex,Y,SBrkr,760,595,0,1355,0,0,2,0,3,1,TA,5,Typ,0,NA,Detchd,1966,Unf,2,528,TA,TA,Y,0,0,0,0,144,0,NA,MnPrv,NA,0,10,2007,WD,Normal +2568,20,RL,NA,25485,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Crawfor,Norm,Norm,1Fam,1Story,6,4,1960,1960,Gable,CompShg,Wd Sdng,MetalSd,BrkFace,423,TA,Fa,CBlock,TA,Gd,Mn,LwQ,540,Rec,1020,0,1560,GasA,TA,Y,SBrkr,1560,0,0,1560,0,0,1,1,3,1,TA,6,Typ,3,TA,Attchd,1960,RFn,2,580,TA,TA,Y,0,75,584,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2569,20,RL,NA,21579,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Crawfor,Norm,Norm,1Fam,1Story,6,6,1968,1968,Hip,CompShg,HdBoard,BrkFace,None,0,TA,TA,PConc,Gd,TA,No,BLQ,813,Unf,0,675,1488,GasA,Ex,Y,SBrkr,1488,0,0,1488,0,1,2,0,3,1,TA,7,Typ,2,Gd,Attchd,1968,RFn,2,552,TA,TA,Y,0,0,216,0,0,0,NA,NA,NA,0,9,2007,CWD,Normal +2570,160,RM,24,1782,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blueste,Norm,Norm,Twnhs,2Story,6,6,1980,1980,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,Gd,TA,No,GLQ,330,Unf,0,186,516,GasA,Gd,Y,SBrkr,529,516,0,1045,0,0,1,0,2,1,TA,5,Typ,1,TA,Detchd,1980,Unf,2,462,TA,TA,Y,180,0,0,0,0,0,NA,MnPrv,NA,0,12,2007,WD,Normal +2571,20,RL,NA,17871,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,4,5,1995,1996,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1680,1680,GasA,Gd,Y,SBrkr,1680,0,0,1680,0,0,2,0,4,1,Gd,7,Typ,0,NA,Attchd,1996,Unf,2,628,TA,TA,Y,152,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2572,120,RM,35,3907,Pave,NA,IR1,Bnk,AllPub,Inside,Mod,Blueste,Norm,Norm,TwnhsE,1Story,8,5,1988,1988,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,Gd,GLQ,577,Unf,0,427,1004,GasA,Gd,Y,SBrkr,1020,0,0,1020,1,0,1,0,1,1,TA,4,Typ,0,NA,Attchd,1988,Unf,2,509,TA,TA,Y,135,0,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2573,20,RL,NA,20693,Pave,NA,IR1,Bnk,AllPub,Corner,Gtl,Crawfor,Norm,Norm,1Fam,1Story,7,5,1971,1971,Gable,CompShg,Plywood,Plywood,BrkFace,652,TA,TA,CBlock,Gd,TA,No,Rec,434,Unf,0,1262,1696,GasA,Ex,Y,SBrkr,1696,0,0,1696,0,0,2,0,3,1,TA,7,Typ,2,TA,Attchd,1971,Fin,2,625,TA,TA,Y,0,146,0,0,0,0,NA,GdWo,NA,0,2,2007,WD,Normal +2574,20,RL,70,18044,Pave,NA,IR1,HLS,AllPub,CulDSac,Gtl,Crawfor,Norm,Norm,1Fam,1Story,8,5,1986,1986,Gable,CompShg,WdShing,Plywood,None,0,Gd,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,279,279,GasA,Gd,Y,SBrkr,2726,0,0,2726,0,0,2,1,2,1,Gd,6,Typ,1,Gd,Attchd,1986,Fin,2,691,Gd,Gd,Y,216,64,169,0,0,228,Ex,NA,NA,0,8,2007,WD,Normal +2575,50,RM,50,7000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,6,7,1940,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,ALQ,375,Unf,0,345,720,GasA,Gd,Y,FuseA,720,495,0,1215,0,0,1,0,3,1,Gd,6,Typ,0,NA,Detchd,1965,Fin,2,720,TA,TA,Y,0,0,30,0,0,0,NA,MnPrv,NA,0,5,2007,WD,Normal +2576,50,RM,50,7288,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Artery,Norm,1Fam,1.5Fin,5,7,1925,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,Gd,BrkTil,TA,Po,No,Unf,0,Unf,0,936,936,GasA,Ex,Y,SBrkr,936,665,0,1601,0,0,2,0,3,1,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,0,176,0,0,NA,NA,NA,0,9,2007,WD,Normal +2577,70,RM,50,9060,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,2Story,5,6,1923,1999,Gable,CompShg,Wd Sdng,Plywood,None,0,TA,TA,BrkTil,Gd,TA,No,ALQ,548,Unf,0,311,859,GasA,Ex,Y,SBrkr,942,886,0,1828,0,0,2,0,3,1,Gd,6,Typ,0,NA,Detchd,NA,NA,NA,NA,NA,NA,Y,174,0,212,0,0,0,NA,MnPrv,NA,0,3,2007,WD,Alloca +2578,30,RM,46,3672,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Artery,Norm,1Fam,1Story,5,7,1922,1950,Gable,CompShg,Stucco,Stucco,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,816,816,GasA,Ex,Y,SBrkr,816,0,0,816,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1922,Unf,1,100,Fa,Fa,N,0,0,96,0,0,0,NA,NA,NA,0,9,2007,WD,Normal +2579,50,RM,64,11067,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,2,4,1939,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,NA,NA,NA,NA,0,NA,0,0,0,GasA,Ex,Y,SBrkr,640,0,205,845,0,0,1,0,1,1,TA,4,Maj2,0,NA,Detchd,1950,Unf,1,256,TA,Fa,N,48,0,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2580,190,C (all),75,8250,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Feedr,Norm,2fmCon,2Story,5,6,1895,2006,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,TA,No,Unf,0,Unf,0,957,957,GasA,Fa,N,SBrkr,1034,957,0,1991,0,0,2,0,4,2,TA,9,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,133,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2581,20,C (all),65,6565,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,4,6,1957,1980,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,GLQ,967,Unf,0,106,1073,GasA,Gd,Y,FuseA,1073,0,0,1073,1,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1985,Unf,2,720,TA,TA,Y,0,444,0,0,0,0,NA,NA,NA,0,8,2007,WD,Abnorml +2582,30,C (all),60,6060,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,5,9,1930,2007,Hip,CompShg,MetalSd,MetalSd,None,0,Gd,TA,BrkTil,TA,TA,No,ALQ,737,Unf,0,100,837,GasA,Ex,Y,SBrkr,1001,0,0,1001,0,0,1,0,2,1,Gd,5,Typ,0,NA,Detchd,1930,Unf,1,216,TA,Po,N,154,0,42,86,0,0,NA,NA,NA,0,11,2007,WD,Normal +2583,120,RM,59,5568,Pave,NA,IR1,HLS,AllPub,Inside,Mod,Crawfor,Norm,Norm,TwnhsE,1Story,8,5,2006,2007,Hip,CompShg,CemntBd,CmentBd,Stone,473,Gd,TA,PConc,Gd,TA,Gd,GLQ,1573,Unf,0,0,1573,GasA,Gd,Y,SBrkr,1625,0,0,1625,1,1,2,0,2,1,Gd,5,Typ,1,Gd,Attchd,2006,Fin,2,495,TA,TA,Y,123,0,0,0,153,0,NA,NA,NA,0,10,2007,New,Partial +2584,85,RL,NA,12150,Pave,NA,IR1,Bnk,AllPub,CulDSac,Gtl,Mitchel,Norm,Norm,1Fam,SFoyer,6,6,1979,1979,Gable,CompShg,HdBoard,Wd Shng,None,0,TA,TA,CBlock,Gd,TA,Av,GLQ,1001,Unf,0,0,1001,GasA,TA,Y,SBrkr,1299,0,0,1299,1,0,2,0,2,1,Gd,5,Typ,1,Po,BuiltIn,1979,RFn,2,486,TA,TA,Y,84,0,222,0,0,0,NA,MnPrv,NA,0,1,2007,WD,Normal +2585,20,RL,80,10000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,166,Gd,TA,PConc,Gd,TA,No,GLQ,585,Unf,0,856,1441,GasA,Ex,Y,SBrkr,1392,0,0,1392,0,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2002,Fin,3,650,TA,TA,Y,168,49,0,0,0,0,NA,NA,NA,0,12,2007,WD,Normal +2586,20,RL,44,12864,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Mitchel,Norm,Norm,1Fam,1Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,1392,Unf,0,17,1409,GasA,Ex,Y,SBrkr,1409,0,0,1409,1,0,1,1,1,1,Gd,4,Typ,1,Gd,Attchd,2002,RFn,2,576,TA,TA,Y,0,144,0,0,145,0,NA,NA,NA,0,7,2007,WD,Normal +2587,20,RL,NA,9928,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Mitchel,Norm,Norm,1Fam,1Story,7,5,1991,1992,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,No,GLQ,1239,Unf,0,215,1454,GasA,TA,Y,SBrkr,1478,0,0,1478,1,0,2,0,3,1,TA,6,Typ,1,TA,Attchd,1991,Unf,2,506,TA,TA,Y,114,22,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2588,80,RL,NA,8750,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,SLvl,7,6,1975,1975,Gable,CompShg,Plywood,Plywood,Stone,50,TA,TA,CBlock,TA,TA,Av,Rec,224,GLQ,530,98,852,GasA,TA,Y,SBrkr,918,0,0,918,0,1,1,0,3,0,TA,4,Typ,0,NA,Attchd,1975,Unf,1,360,TA,TA,Y,192,84,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal +2589,85,RL,82,8410,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Mitchel,Norm,Norm,1Fam,SFoyer,6,6,1974,1974,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,Av,ALQ,924,Unf,0,46,970,GasA,TA,Y,SBrkr,1026,0,0,1026,1,0,1,0,2,1,TA,5,Typ,1,Po,Attchd,1974,Unf,2,528,TA,TA,Y,193,0,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal +2590,120,RL,46,4054,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,TwnhsE,1Story,7,6,1987,1987,Gable,CompShg,VinylSd,VinylSd,BrkFace,352,Gd,TA,BrkTil,Gd,TA,Av,GLQ,949,Unf,0,552,1501,GasA,Ex,Y,SBrkr,1501,0,0,1501,1,0,2,0,2,1,Gd,5,Typ,2,TA,Attchd,1987,Fin,2,512,TA,TA,Y,240,0,0,0,0,0,NA,NA,NA,0,10,2007,WD,Normal +2591,20,RL,149,19958,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,6,8,1958,1995,Hip,CompShg,HdBoard,HdBoard,BrkFace,1224,TA,Gd,CBlock,TA,TA,No,Unf,0,Unf,0,585,585,GasA,Gd,Y,SBrkr,2279,0,0,2279,0,0,2,1,4,1,Gd,7,Typ,1,Gd,Attchd,1958,RFn,2,461,TA,TA,Y,274,0,0,0,138,0,NA,GdPrv,NA,0,7,2007,WD,Normal +2592,20,RL,67,8368,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,7,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1689,1689,GasA,Ex,Y,SBrkr,1689,0,0,1689,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2007,Fin,2,433,TA,TA,Y,100,39,0,0,0,0,NA,NA,NA,0,4,2007,New,Partial +2593,20,RL,68,8298,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2006,2007,Hip,CompShg,VinylSd,VinylSd,NA,NA,Gd,TA,PConc,Gd,TA,Av,GLQ,583,Unf,0,963,1546,GasA,Ex,Y,SBrkr,1564,0,0,1564,0,0,2,0,2,1,Ex,6,Typ,1,Gd,Attchd,2207,RFn,2,502,TA,TA,Y,132,0,0,0,0,0,NA,NA,NA,0,9,2007,New,Partial +2594,20,RL,42,10331,Pave,NA,Reg,Lvl,AllPub,CulDSac,Gtl,Timber,Norm,Norm,1Fam,1Story,7,7,1985,1985,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,215,BLQ,80,970,1265,GasA,Gd,Y,SBrkr,1240,0,0,1240,0,1,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1985,Unf,2,528,TA,TA,Y,232,0,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2595,20,RL,NA,6718,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,BrkFace,86,Gd,TA,PConc,Ex,TA,Mn,GLQ,250,Unf,0,1017,1267,GasA,Ex,Y,SBrkr,1312,0,0,1312,0,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,2001,Unf,2,471,TA,TA,Y,256,28,0,0,0,0,NA,NA,NA,0,1,2007,WD,Normal +2596,20,RL,80,11305,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2002,2002,Hip,CompShg,VinylSd,VinylSd,BrkFace,886,Gd,TA,PConc,Gd,TA,Av,GLQ,1329,Unf,0,593,1922,GasA,Ex,Y,SBrkr,1922,0,0,1922,1,0,2,0,2,1,Gd,6,Typ,1,Ex,Attchd,2002,Fin,3,692,TA,TA,Y,201,64,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal +2597,20,RL,NA,7777,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,6,5,1996,1996,Gable,CompShg,VinylSd,VinylSd,BrkFace,203,Gd,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1491,1491,GasA,Ex,Y,SBrkr,1491,0,0,1491,0,0,2,0,3,1,TA,7,Typ,1,TA,Attchd,1996,Fin,2,571,TA,TA,Y,0,35,0,0,0,0,NA,NA,NA,0,11,2007,WD,Normal +2598,60,RL,NA,11800,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,2Story,7,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,94,Gd,TA,PConc,Gd,TA,Gd,GLQ,766,Unf,0,356,1122,GasA,Ex,Y,SBrkr,1146,1340,0,2486,1,0,3,1,5,1,Gd,10,Typ,1,Gd,BuiltIn,2003,Fin,2,452,TA,TA,Y,143,32,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2599,20,RL,85,12633,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Timber,PosA,PosA,1Fam,1Story,10,5,2006,2007,Hip,CompShg,MetalSd,MetalSd,BrkFace,242,Ex,TA,PConc,Ex,TA,Gd,Unf,0,Unf,0,1824,1824,GasA,Ex,Y,SBrkr,1824,0,0,1824,0,0,2,0,3,1,Ex,8,Typ,1,Gd,Attchd,2006,Fin,3,932,TA,TA,Y,160,36,0,0,108,0,NA,NA,NA,0,9,2007,New,Partial +2600,20,RL,200,43500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Artery,Norm,1Fam,1Story,3,5,1953,1953,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,Ex,Y,SBrkr,2034,0,0,2034,0,0,1,0,2,1,TA,9,Min1,0,NA,2Types,1953,RFn,4,1041,TA,TA,N,483,266,0,0,0,561,NA,GdPrv,NA,0,6,2007,WD,Normal +2601,120,RM,62,6710,Pave,NA,IR1,Lvl,AllPub,FR3,Gtl,Mitchel,Norm,Norm,TwnhsE,SFoyer,6,5,1996,1997,Gable,CompShg,VinylSd,VinylSd,BrkFace,134,TA,TA,PConc,Ex,TA,Av,Rec,16,GLQ,904,0,920,GasA,Ex,Y,SBrkr,936,0,0,936,2,0,0,1,0,1,TA,3,Typ,0,NA,Attchd,1996,Fin,2,460,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal +2602,160,RM,21,1504,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,2Story,4,4,1972,1972,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,252,Unf,0,294,546,GasA,TA,Y,SBrkr,546,546,0,1092,0,0,1,1,3,1,TA,5,Typ,0,NA,Attchd,1972,Unf,1,253,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2603,180,RM,NA,1533,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,SLvl,4,5,1970,1970,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,Gd,TA,Av,GLQ,503,Unf,0,27,530,GasA,TA,Y,SBrkr,530,462,0,992,1,0,1,0,2,1,TA,4,Typ,0,NA,BuiltIn,1970,Fin,1,297,TA,TA,Y,112,97,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal +2604,160,RM,21,1495,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,2Story,4,6,1970,1970,Gable,CompShg,CemntBd,CmentBd,BrkFace,189,TA,TA,CBlock,TA,TA,No,ALQ,384,Unf,0,162,546,GasA,Ex,Y,SBrkr,546,546,0,1092,0,0,1,1,3,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,64,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal +2605,160,RM,21,1890,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,2Story,4,3,1976,1976,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,546,546,GasA,Ex,Y,SBrkr,546,546,0,1092,0,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1976,Unf,1,286,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,4,2007,COD,Normal +2606,85,RL,72,9129,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,SFoyer,5,5,1977,1977,Gable,CompShg,Plywood,Plywood,BrkFace,144,TA,TA,PConc,Gd,TA,Av,GLQ,923,Unf,0,0,923,GasA,TA,Y,SBrkr,1008,0,0,1008,1,0,1,0,1,1,Gd,4,Typ,1,Fa,Attchd,1977,Fin,2,678,TA,TA,Y,201,66,0,0,0,0,NA,MnPrv,NA,0,7,2007,WD,Normal +2607,80,RL,NA,15957,Pave,NA,IR1,Low,AllPub,Corner,Mod,Mitchel,Norm,Norm,1Fam,SLvl,6,6,1977,1977,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,PConc,Gd,TA,Gd,GLQ,1148,Unf,0,96,1244,GasA,TA,Y,SBrkr,1356,0,0,1356,2,0,2,0,3,1,TA,6,Typ,1,TA,Attchd,1977,Fin,2,528,TA,TA,Y,1424,0,0,0,0,0,NA,MnPrv,NA,0,9,2007,WD,Normal +2608,20,RL,61,33983,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,6,1977,1994,Gable,CompShg,Plywood,Plywood,None,0,TA,Fa,PConc,TA,TA,Mn,ALQ,1112,Unf,0,48,1160,GasA,TA,Y,SBrkr,1676,0,0,1676,1,0,1,1,3,1,Gd,6,Mod,2,TA,Attchd,1977,RFn,2,672,TA,TA,P,690,90,0,0,0,0,NA,GdPrv,NA,0,5,2007,WD,Normal +2609,60,RL,68,8286,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Mitchel,Norm,Norm,1Fam,2Story,5,7,1977,1977,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,PConc,Gd,TA,No,Rec,531,Unf,0,185,716,GasA,Ex,Y,SBrkr,716,716,0,1432,1,0,1,1,3,1,TA,6,Typ,1,Gd,Attchd,1977,Fin,2,531,TA,TA,Y,0,136,0,0,240,0,NA,GdPrv,NA,0,6,2007,WD,Normal +2610,85,RL,50,6723,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,SFoyer,5,7,1971,1971,Gable,CompShg,Wd Sdng,HdBoard,None,0,TA,TA,CBlock,Gd,TA,Av,GLQ,796,Unf,0,0,796,GasA,TA,Y,SBrkr,796,0,0,796,0,1,1,0,2,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,129,0,0,0,0,0,NA,GdWo,NA,0,9,2007,WD,Normal +2611,20,RL,124,27697,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,4,3,1961,1961,Shed,CompShg,Plywood,Plywood,NA,198,TA,TA,CBlock,TA,TA,No,BLQ,811,Unf,0,585,1396,GasA,TA,N,SBrkr,1608,0,0,1608,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1961,Unf,1,444,TA,Fa,Y,152,38,0,0,0,0,NA,NA,NA,0,11,2007,COD,Abnorml +2612,20,RL,NA,11000,Pave,NA,IR2,Lvl,AllPub,Corner,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,6,1976,2003,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,PConc,Gd,TA,No,LwQ,1090,Unf,0,0,1090,GasA,TA,Y,SBrkr,1178,0,0,1178,1,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1976,Unf,2,502,TA,TA,Y,0,44,0,0,88,0,NA,MnPrv,NA,0,6,2007,WD,Normal +2613,20,RL,65,11625,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,7,1983,1983,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,596,Unf,0,220,816,GasA,TA,Y,SBrkr,816,0,0,816,1,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1983,Fin,1,264,TA,TA,Y,330,0,0,0,0,0,NA,MnPrv,NA,0,5,2007,WD,Normal +2614,20,RL,62,10447,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,6,1984,1984,Gable,CompShg,Plywood,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,ALQ,516,Unf,0,348,864,GasA,TA,Y,SBrkr,887,0,0,887,0,1,1,0,3,1,TA,5,Typ,0,NA,Attchd,1984,RFn,1,288,TA,TA,Y,140,0,0,0,0,0,NA,NA,NA,0,12,2007,WD,Normal +2615,20,RL,NA,11027,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1954,1954,Hip,CompShg,Wd Sdng,Wd Sdng,Stone,28,TA,TA,CBlock,TA,TA,No,BLQ,468,Rec,539,171,1178,GasA,Gd,Y,SBrkr,1293,0,0,1293,1,0,2,0,2,1,TA,5,Typ,0,NA,Attchd,1954,RFn,2,452,TA,TA,Y,280,0,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2616,20,RL,85,10533,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1956,1956,Hip,CompShg,VinylSd,VinylSd,BrkFace,244,TA,Gd,CBlock,TA,TA,No,Rec,773,Unf,0,235,1008,GasA,TA,Y,SBrkr,1024,0,0,1024,1,0,1,0,2,1,Gd,5,Typ,2,TA,Attchd,1956,Unf,1,313,TA,TA,Y,0,0,0,0,280,0,NA,NA,NA,0,8,2006,WD,Normal +2617,20,RL,NA,11765,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1957,1957,Gable,CompShg,Wd Sdng,Wd Sdng,Stone,302,TA,TA,CBlock,TA,TA,Mn,Rec,1127,Unf,0,490,1617,GasA,Fa,Y,SBrkr,1797,0,0,1797,0,0,1,1,3,1,TA,7,Typ,1,TA,Attchd,1957,Unf,3,963,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2618,20,RL,NA,39384,Pave,NA,IR1,Low,AllPub,CulDSac,Sev,NAmes,Norm,Norm,1Fam,1Story,6,6,1957,1957,Gable,CompShg,Wd Sdng,Wd Sdng,Stone,902,TA,TA,CBlock,Gd,TA,Gd,ALQ,1110,Unf,0,595,1705,GasA,Ex,Y,SBrkr,1390,0,0,1390,1,0,1,1,1,1,Ex,4,Min1,2,Gd,Attchd,1957,Unf,2,550,TA,TA,Y,0,189,0,0,0,0,NA,NA,NA,0,10,2006,WD,Abnorml +2619,20,RL,90,11727,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,7,6,1969,1969,Gable,CompShg,HdBoard,HdBoard,BrkFace,434,TA,Gd,CBlock,TA,TA,Mn,Unf,0,Unf,0,1851,1851,GasA,Gd,Y,SBrkr,1851,0,0,1851,0,0,2,0,3,1,TA,8,Typ,1,TA,Attchd,1969,Fin,2,506,TA,TA,Y,0,146,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal +2620,60,RL,60,8238,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1997,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,TA,TA,No,GLQ,700,Unf,0,113,813,GasA,Ex,Y,SBrkr,813,712,0,1525,1,0,2,1,3,1,TA,6,Typ,1,TA,Attchd,1997,Fin,2,400,TA,TA,Y,421,72,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2621,60,RL,NA,13041,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1995,1995,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,781,781,GasA,Gd,Y,SBrkr,781,890,0,1671,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1995,Fin,2,423,TA,TA,Y,0,84,0,0,0,0,NA,NA,NA,0,2,2006,WD,Normal +2622,60,RL,54,9783,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1996,1996,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,821,821,GasA,Gd,Y,SBrkr,821,955,0,1776,0,0,2,1,3,1,TA,7,Typ,1,TA,BuiltIn,1996,Fin,2,443,TA,TA,Y,286,116,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2623,60,RL,50,13128,Pave,NA,IR1,HLS,AllPub,CulDSac,Gtl,Gilbert,Norm,Norm,1Fam,2Story,8,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,216,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1074,1074,GasA,Ex,Y,SBrkr,1074,990,0,2064,0,0,2,1,4,1,Gd,7,Typ,1,Gd,Attchd,2005,Fin,2,527,TA,TA,Y,0,119,0,0,0,0,NA,NA,NA,0,1,2006,WD,Normal +2624,60,RL,42,13751,Pave,NA,IR1,HLS,AllPub,CulDSac,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,248,Gd,TA,PConc,Gd,TA,Av,GLQ,60,Unf,0,1640,1700,GasA,Ex,Y,SBrkr,1700,512,0,2212,1,0,2,1,3,1,Gd,9,Typ,1,Gd,Attchd,2006,Fin,3,773,TA,TA,Y,237,38,0,0,115,0,NA,NA,NA,0,5,2006,New,Partial +2625,160,RL,68,13108,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,StoneBr,Norm,Norm,1Fam,2Story,8,5,1994,1994,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,2062,2062,GasA,Ex,Y,SBrkr,2079,608,0,2687,0,0,2,1,4,1,Gd,9,Typ,0,NA,Attchd,1994,Fin,2,618,TA,TA,Y,168,12,0,0,0,0,NA,NA,NA,0,12,2006,WD,Normal +2626,20,RL,NA,8076,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,1Story,6,6,1993,1994,Gable,CompShg,HdBoard,HdBoard,BrkFace,112,TA,TA,PConc,Gd,TA,No,GLQ,705,Unf,0,455,1160,GasA,Gd,Y,SBrkr,1169,0,0,1169,0,1,2,0,3,1,TA,6,Typ,1,TA,Attchd,1993,Fin,2,402,TA,TA,Y,0,26,0,0,144,0,NA,MnPrv,NA,0,7,2006,WD,Normal +2627,120,RL,30,3701,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,1987,1987,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,1191,1191,GasA,TA,Y,SBrkr,1204,0,0,1204,0,0,2,0,2,1,TA,5,Typ,0,NA,Attchd,1987,RFn,2,461,TA,TA,Y,120,70,0,0,0,0,NA,NA,NA,0,8,2006,WD,Normal +2628,60,RL,59,16023,Pave,NA,IR1,HLS,AllPub,CulDSac,Gtl,StoneBr,Norm,Norm,1Fam,2Story,9,5,2005,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,600,Gd,Ex,PConc,Ex,TA,Gd,GLQ,1218,Unf,0,180,1398,GasA,Ex,Y,SBrkr,1414,1384,0,2798,1,0,3,1,3,1,Ex,11,Typ,1,Gd,BuiltIn,2005,Fin,3,670,TA,TA,Y,182,37,0,0,0,0,NA,NA,NA,0,3,2006,New,Partial +2629,60,RL,60,18062,Pave,NA,IR1,HLS,AllPub,CulDSac,Gtl,StoneBr,Norm,Norm,1Fam,2Story,10,5,2006,2006,Hip,CompShg,CemntBd,CmentBd,BrkFace,662,Ex,TA,PConc,Ex,TA,Gd,Unf,0,Unf,0,1528,1528,GasA,Ex,Y,SBrkr,1528,1862,0,3390,0,0,3,1,5,1,Ex,10,Typ,1,Ex,BuiltIn,2006,Fin,3,758,TA,TA,Y,204,34,0,0,0,0,NA,NA,NA,0,9,2006,New,Partial +2630,60,RL,63,12292,Pave,NA,IR1,HLS,AllPub,CulDSac,Gtl,StoneBr,Norm,Norm,1Fam,2Story,9,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,184,Gd,TA,PConc,Ex,Gd,Gd,GLQ,205,Unf,0,889,1094,GasA,Ex,Y,SBrkr,1102,1371,0,2473,0,0,2,1,4,1,Gd,11,Typ,1,Gd,BuiltIn,2006,Fin,3,675,TA,TA,Y,246,39,0,0,0,0,NA,NA,NA,0,7,2006,New,Partial +2631,60,RL,82,16052,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,StoneBr,Norm,Norm,1Fam,2Story,10,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,Stone,734,Ex,TA,PConc,Ex,TA,No,GLQ,1206,Unf,0,644,1850,GasA,Ex,Y,SBrkr,1850,848,0,2698,1,0,2,1,4,1,Ex,11,Typ,1,Gd,Attchd,2006,RFn,3,736,TA,TA,Y,250,0,0,0,0,0,NA,NA,NA,0,7,2006,New,Partial +2632,60,RL,92,15922,Pave,NA,IR1,HLS,AllPub,Corner,Gtl,StoneBr,Norm,Norm,1Fam,2Story,9,5,2005,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,550,Gd,TA,PConc,Ex,TA,Av,Unf,0,Unf,0,1390,1390,GasA,Ex,Y,SBrkr,1390,1405,0,2795,0,0,3,1,4,1,Ex,10,Typ,1,Gd,BuiltIn,2005,Fin,3,660,TA,TA,Y,272,102,0,0,0,0,NA,NA,NA,0,1,2006,New,Partial +2633,120,RL,60,8147,Pave,NA,Reg,HLS,AllPub,Inside,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,9,5,2005,2005,Hip,CompShg,MetalSd,MetalSd,BrkFace,230,Gd,TA,PConc,Ex,TA,Gd,GLQ,1191,Unf,0,523,1714,GasA,Ex,Y,SBrkr,1714,0,0,1714,1,0,2,0,2,1,Gd,7,Typ,1,Gd,Attchd,2005,Fin,2,517,TA,TA,Y,156,55,0,0,0,0,NA,NA,NA,0,8,2006,WD,Normal +2634,20,RL,90,18261,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,StoneBr,Norm,Norm,1Fam,1Story,9,5,2005,2005,Hip,CompShg,VinylSd,VinylSd,BrkFace,420,Ex,TA,PConc,Ex,TA,Gd,GLQ,1416,Unf,0,494,1910,GasA,Ex,Y,SBrkr,2000,0,0,2000,1,0,2,1,3,1,Ex,8,Typ,2,Gd,Attchd,2005,Unf,3,722,TA,TA,Y,351,102,0,0,123,0,NA,NA,NA,0,9,2006,WD,Normal +2635,85,RL,NA,10464,Pave,NA,IR1,Lvl,AllPub,FR3,Gtl,NWAmes,Norm,Norm,1Fam,SFoyer,6,6,1980,1980,Gable,CompShg,HdBoard,HdBoard,BrkFace,130,TA,TA,CBlock,Gd,TA,Av,GLQ,850,Unf,0,138,988,GasA,TA,Y,SBrkr,1102,0,0,1102,1,0,1,0,2,1,TA,5,Typ,1,TA,Attchd,1980,RFn,2,582,TA,TA,Y,140,22,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2636,60,RL,81,10530,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,PosA,Norm,1Fam,2Story,7,5,1978,1978,Gable,CompShg,Plywood,Plywood,BrkFace,68,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,945,945,GasA,TA,Y,SBrkr,945,912,0,1857,0,0,2,1,4,1,TA,8,Typ,1,TA,Attchd,1978,RFn,2,482,TA,TA,Y,400,105,0,0,0,0,NA,GdPrv,NA,0,7,2006,WD,Normal +2637,85,RL,NA,9927,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,SFoyer,7,5,1976,1976,Gable,CompShg,VinylSd,Wd Shng,Stone,252,Gd,TA,CBlock,Ex,TA,Gd,GLQ,1005,Unf,0,42,1047,GasA,TA,Y,SBrkr,1083,0,0,1083,1,0,1,0,2,1,TA,5,Typ,1,Fa,Attchd,1976,RFn,2,596,TA,TA,Y,444,0,40,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2638,60,FV,75,9512,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,RRAn,Norm,1Fam,2Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,ALQ,788,Unf,0,172,960,GasA,Ex,Y,SBrkr,960,1358,0,2318,1,0,2,1,3,1,Gd,8,Typ,1,Ex,BuiltIn,2005,Fin,2,541,TA,TA,Y,0,246,0,0,0,0,NA,NA,NA,0,6,2006,New,Partial +2639,80,RL,81,10530,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,SLvl,6,6,1975,2000,Gable,CompShg,Plywood,Plywood,BrkFace,248,TA,TA,CBlock,TA,Fa,No,ALQ,548,Unf,0,127,675,GasA,TA,Y,SBrkr,1109,766,0,1875,0,0,3,0,3,1,Gd,8,Typ,1,TA,Attchd,1975,RFn,2,485,TA,TA,Y,48,28,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2640,20,RL,80,10000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,6,1974,1974,Gable,CompShg,HdBoard,Plywood,BrkFace,176,TA,TA,CBlock,TA,TA,No,ALQ,755,Unf,0,348,1103,GasA,TA,Y,SBrkr,1103,0,0,1103,0,0,2,0,3,1,TA,6,Typ,0,NA,Attchd,1974,Unf,2,462,TA,TA,Y,295,84,0,0,0,0,NA,GdWo,NA,0,6,2006,WD,Normal +2641,20,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,4,1971,1971,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Rec,20,LwQ,620,224,864,GasA,TA,Y,SBrkr,874,0,0,874,0,1,1,0,3,1,TA,5,Typ,0,NA,Detchd,1995,Unf,2,576,TA,TA,Y,63,0,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal +2642,120,RH,26,8773,Pave,NA,IR2,Lvl,AllPub,FR2,Gtl,NAmes,Norm,Norm,TwnhsE,1Story,6,5,2002,2002,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,951,Unf,0,536,1487,GasA,Ex,Y,SBrkr,1419,0,0,1419,1,0,2,0,2,1,Gd,4,Typ,0,NA,Attchd,2002,Fin,2,543,TA,TA,Y,196,68,0,0,0,0,NA,NA,NA,0,9,2006,WD,Normal +2643,160,RM,24,2760,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,TwnhsE,2Story,6,5,1973,1973,Gable,CompShg,HdBoard,HdBoard,BrkFace,514,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,525,525,GasA,TA,Y,SBrkr,525,567,0,1092,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1973,Unf,2,440,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,12,2006,WD,Normal +2644,160,RM,24,2160,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,TwnhsE,2Story,5,6,1973,1973,Gable,CompShg,HdBoard,HdBoard,BrkFace,200,TA,TA,CBlock,TA,TA,No,LwQ,402,Unf,0,363,765,GasA,Gd,Y,SBrkr,765,600,0,1365,0,0,1,1,3,1,Gd,7,Min1,1,Fa,Attchd,1973,Unf,2,440,TA,TA,Y,0,36,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2645,160,RM,21,1890,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,7,1972,1972,Gable,CompShg,HdBoard,HdBoard,BrkFace,380,TA,TA,CBlock,TA,TA,No,ALQ,282,Unf,0,212,494,GasA,Ex,Y,SBrkr,494,536,0,1030,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1973,Unf,1,264,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2646,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,5,1972,1972,Gable,CompShg,HdBoard,HdBoard,BrkFace,504,TA,TA,CBlock,TA,TA,No,ALQ,276,Unf,0,207,483,GasA,TA,Y,SBrkr,483,465,0,948,0,0,1,1,2,1,TA,5,Typ,0,NA,Detchd,1972,Unf,1,264,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2647,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,5,1972,1972,Gable,CompShg,HdBoard,HdBoard,BrkFace,504,TA,TA,CBlock,TA,TA,No,BLQ,382,Unf,0,143,525,GasA,Gd,Y,SBrkr,525,567,0,1092,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1972,Unf,1,264,TA,TA,Y,352,0,0,0,0,0,NA,GdPrv,NA,0,10,2006,WD,Normal +2648,120,RL,53,4043,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NPkVill,Norm,Norm,TwnhsE,1Story,6,5,1975,1975,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,727,BLQ,156,186,1069,GasA,Gd,Y,SBrkr,1069,0,0,1069,0,1,2,0,2,1,TA,4,Typ,1,Po,Attchd,1975,RFn,2,440,TA,TA,Y,0,55,0,0,225,0,NA,NA,NA,0,7,2006,WD,Normal +2649,20,RL,65,7514,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1967,1975,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,Mn,ALQ,373,Rec,108,462,943,GasA,TA,Y,SBrkr,1387,0,0,1387,1,0,1,0,3,1,TA,6,Typ,1,TA,Attchd,1974,RFn,1,300,TA,TA,Y,0,0,240,0,0,0,NA,NA,NA,0,9,2006,WD,Normal +2650,120,RL,24,2280,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NPkVill,Norm,Norm,Twnhs,1Story,7,7,1976,1976,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,TA,TA,No,ALQ,120,BLQ,492,443,1055,GasA,TA,Y,SBrkr,1055,0,0,1055,1,0,2,0,2,1,TA,4,Typ,0,NA,Attchd,1976,Unf,1,319,TA,TA,Y,0,29,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal +2651,160,RL,24,2179,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NPkVill,Norm,Norm,Twnhs,2Story,6,5,1976,1976,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,70,Unf,0,785,855,GasA,Gd,Y,SBrkr,855,601,0,1456,0,0,2,1,3,1,TA,6,Typ,1,TA,Attchd,1976,RFn,2,460,TA,TA,Y,0,28,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2652,60,RL,72,16387,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,Stone,215,Gd,TA,PConc,Ex,Gd,No,GLQ,1369,Unf,0,369,1738,GasA,Gd,Y,SBrkr,1738,851,0,2589,1,0,2,1,4,1,Ex,11,Typ,1,Gd,Attchd,2006,RFn,3,831,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2006,New,Partial +2653,20,RL,110,16163,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,232,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1618,1618,GasA,Ex,Y,SBrkr,1618,0,0,1618,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2004,Fin,3,880,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2654,20,RL,108,12228,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,1Story,7,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,Stone,206,Gd,TA,PConc,Ex,Gd,No,Unf,0,Unf,0,1721,1721,GasA,Ex,Y,SBrkr,1740,0,0,1740,0,0,2,0,4,1,Gd,8,Typ,0,NA,Attchd,2006,RFn,3,874,TA,TA,Y,0,43,0,0,0,0,NA,NA,NA,0,9,2006,New,Partial +2655,20,RL,120,14780,Pave,NA,IR1,HLS,AllPub,Corner,Mod,NridgHt,Norm,Norm,1Fam,1Story,9,5,2005,2005,Hip,CompShg,VinylSd,VinylSd,BrkFace,568,Ex,TA,PConc,Ex,TA,Gd,GLQ,1505,Unf,0,363,1868,GasA,Ex,Y,SBrkr,1868,0,0,1868,1,0,2,0,2,1,Ex,7,Typ,1,Gd,Attchd,2005,Fin,3,1085,TA,TA,Y,354,56,0,0,156,0,NA,NA,NA,0,6,2006,WD,Normal +2656,60,RL,120,13975,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2005,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,525,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1090,1090,GasA,Ex,Y,SBrkr,1117,1089,0,2206,0,0,2,1,4,1,Ex,10,Typ,1,Gd,BuiltIn,2005,Fin,3,670,TA,TA,Y,148,95,0,0,0,0,NA,NA,NA,0,8,2006,New,Partial +2657,60,RL,82,9942,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2005,2006,Gable,CompShg,MetalSd,MetalSd,BrkFace,385,Ex,TA,PConc,Ex,Gd,Av,GLQ,1290,Unf,0,316,1606,GasA,Ex,Y,SBrkr,1625,466,0,2091,1,0,2,1,3,1,Ex,8,Typ,1,Gd,Attchd,2005,RFn,2,521,TA,TA,Y,194,84,0,0,0,0,NA,NA,NA,0,5,2006,New,Partial +2658,60,RL,103,12867,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2005,2006,Gable,CompShg,CemntBd,CmentBd,NA,NA,Gd,TA,PConc,Ex,TA,Av,Unf,0,Unf,0,1209,1209,GasA,Ex,Y,SBrkr,1209,1044,0,2253,0,0,2,1,3,1,Ex,8,Typ,1,Gd,Attchd,2005,Fin,2,575,TA,TA,Y,243,142,0,0,0,0,NA,NA,NA,0,7,2006,New,Partial +2659,60,RL,82,10672,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,Gd,Unf,0,Unf,0,1054,1054,GasA,Gd,Y,SBrkr,1054,1335,0,2389,0,0,2,1,4,1,Gd,10,Typ,1,Gd,BuiltIn,2006,Fin,3,672,TA,TA,Y,176,64,0,0,0,0,NA,NA,NA,0,11,2006,New,Partial +2660,60,RL,82,11643,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2005,2006,Hip,CompShg,MetalSd,MetalSd,BrkFace,142,Gd,TA,PConc,Ex,TA,Av,GLQ,880,Unf,0,644,1524,GasA,Ex,Y,SBrkr,1544,814,0,2358,1,0,2,1,4,1,Ex,10,Typ,1,Gd,BuiltIn,2005,Fin,3,784,TA,TA,Y,120,34,0,0,0,0,NA,NA,NA,0,8,2006,New,Partial +2661,20,RL,121,13758,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,430,Ex,TA,PConc,Ex,TA,Gd,GLQ,1232,Unf,0,560,1792,GasA,Ex,Y,SBrkr,1792,0,0,1792,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2005,RFn,3,925,TA,TA,Y,204,49,0,0,0,0,NA,NA,NA,0,3,2006,New,Partial +2662,20,RL,131,14828,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2004,2005,Hip,CompShg,MetalSd,MetalSd,BrkFace,674,Ex,TA,PConc,Ex,TA,Gd,GLQ,1383,Unf,0,397,1780,GasA,Ex,Y,SBrkr,1780,0,0,1780,1,0,2,0,2,1,Ex,7,Typ,1,Gd,Attchd,2004,Fin,3,816,TA,TA,Y,144,68,0,0,0,0,NA,NA,NA,0,8,2006,WD,Normal +2663,60,RL,NA,13215,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,112,Gd,TA,PConc,Gd,TA,No,GLQ,994,Unf,0,426,1420,GasA,Ex,Y,SBrkr,1426,488,0,1914,1,0,2,1,3,1,Gd,9,Typ,1,TA,BuiltIn,2004,RFn,3,746,TA,TA,Y,168,127,0,0,0,0,NA,NA,NA,0,2,2006,WD,Normal +2664,120,RL,48,5911,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,9,5,2005,2005,Hip,CompShg,MetalSd,MetalSd,BrkFace,278,Ex,TA,PConc,Ex,TA,No,GLQ,472,Unf,0,1088,1560,GasA,Ex,Y,SBrkr,1565,0,0,1565,1,0,2,0,2,1,Ex,6,Typ,1,Gd,Attchd,2005,RFn,2,556,TA,TA,Y,196,56,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal +2665,20,RL,61,7740,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,9,5,2006,2006,Hip,CompShg,MetalSd,MetalSd,BrkFace,518,Gd,TA,PConc,Ex,Gd,No,GLQ,1023,Unf,0,663,1686,GasA,Ex,Y,SBrkr,1686,0,0,1686,1,0,2,0,1,1,Ex,6,Typ,1,Gd,Attchd,2006,Fin,3,899,TA,TA,Y,266,100,0,0,0,0,NA,NA,NA,0,6,2006,New,Partial +2666,120,RL,48,6373,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,9,5,2006,2006,Hip,CompShg,MetalSd,MetalSd,BrkFace,572,Ex,TA,PConc,Ex,Gd,No,GLQ,415,Unf,0,1251,1666,GasA,Ex,Y,SBrkr,1666,0,0,1666,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2006,RFn,2,575,TA,TA,Y,228,75,0,0,0,0,NA,NA,NA,0,6,2006,New,Partial +2667,60,RL,65,10237,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,RRAn,Norm,1Fam,2Story,6,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,728,728,GasA,Ex,Y,SBrkr,728,728,0,1456,0,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2005,Fin,2,390,TA,TA,Y,0,24,0,0,0,0,NA,NA,NA,0,2,2006,New,Partial +2668,60,RL,65,10237,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,RRAn,Norm,1Fam,2Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,738,738,GasA,Ex,Y,SBrkr,738,754,0,1492,0,0,2,1,3,1,Gd,8,Typ,0,NA,Attchd,2006,Fin,2,440,TA,TA,Y,0,32,0,0,0,0,NA,NA,NA,0,9,2006,New,Partial +2669,20,RL,102,11660,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,1Story,6,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1326,1326,GasA,Ex,Y,SBrkr,1326,0,0,1326,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2006,Fin,2,427,TA,TA,Y,100,0,0,0,0,0,NA,NA,NA,0,7,2006,New,Partial +2670,60,RL,96,11631,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,8,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,236,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1052,1052,GasA,Ex,Y,SBrkr,1052,1321,0,2373,0,0,2,1,4,1,Gd,9,Typ,1,Gd,BuiltIn,2004,Fin,3,632,TA,TA,Y,120,46,0,0,0,0,NA,NA,NA,0,6,2006,New,Partial +2671,60,RL,75,9073,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,738,738,GasA,Ex,Y,SBrkr,738,754,0,1492,0,0,2,1,3,1,Gd,8,Typ,0,NA,Attchd,2006,Fin,2,440,TA,TA,Y,100,32,0,0,0,0,NA,NA,NA,0,10,2006,New,Partial +2672,120,RL,43,3087,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,14,Gd,TA,PConc,Gd,TA,Av,GLQ,453,Unf,0,767,1220,GasA,Ex,Y,SBrkr,1364,0,0,1364,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2006,Fin,2,437,TA,TA,Y,100,16,0,0,0,0,NA,NA,NA,0,11,2006,New,Partial +2673,120,RL,NA,2938,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,40,Gd,TA,PConc,Gd,TA,Av,GLQ,1038,Unf,0,330,1368,GasA,Ex,Y,SBrkr,1511,0,0,1511,1,0,2,0,2,1,Gd,5,Typ,1,TA,Attchd,2002,Fin,2,398,TA,TA,Y,130,30,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2674,120,RM,NA,3072,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2004,2004,Hip,CompShg,VinylSd,VinylSd,BrkFace,18,Gd,TA,PConc,Gd,TA,No,GLQ,1059,Unf,0,306,1365,GasA,Ex,Y,SBrkr,1548,0,0,1548,1,0,2,0,2,1,Gd,7,Typ,1,TA,Attchd,2004,Fin,2,388,TA,TA,Y,143,20,0,0,0,0,NA,NA,NA,0,9,2006,WD,Normal +2675,120,RL,43,3010,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,14,Gd,TA,PConc,Gd,TA,Gd,GLQ,16,Unf,0,1126,1142,GasA,Ex,Y,SBrkr,1142,0,0,1142,0,0,2,0,2,1,Gd,6,Typ,0,NA,Attchd,2005,Fin,2,440,TA,TA,Y,90,0,0,0,0,0,NA,NA,NA,0,6,2006,New,Partial +2676,60,RL,59,9171,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,848,848,GasA,Ex,Y,SBrkr,848,750,0,1598,0,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2004,Fin,2,433,TA,TA,Y,100,48,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2677,60,RL,NA,8658,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,ALQ,732,Unf,0,250,982,GasA,Ex,Y,SBrkr,1008,881,0,1889,0,0,2,1,3,1,TA,9,Typ,1,TA,Attchd,2000,Fin,2,431,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal +2678,60,RL,NA,12104,Pave,NA,IR1,Lvl,AllPub,FR3,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1035,1035,GasA,Gd,Y,SBrkr,1082,1240,0,2322,0,0,3,1,4,1,Gd,8,Typ,0,NA,Attchd,2006,RFn,3,617,TA,TA,Y,400,45,0,0,0,0,NA,NA,NA,0,8,2006,New,Partial +2679,60,RL,84,9660,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,242,Gd,TA,PConc,Gd,TA,No,GLQ,791,Unf,0,253,1044,GasA,Ex,Y,SBrkr,1079,897,0,1976,1,0,2,1,3,1,Gd,7,Typ,1,Ex,Attchd,1998,Fin,3,885,TA,TA,Y,210,31,0,0,0,0,NA,NA,NA,0,2,2006,WD,Normal +2680,60,RL,83,9545,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,322,Gd,TA,PConc,Gd,TA,Mn,GLQ,505,Unf,0,655,1160,GasA,Ex,Y,SBrkr,1205,1029,0,2234,1,0,2,1,3,1,Gd,7,Typ,1,TA,BuiltIn,2000,RFn,3,768,TA,TA,Y,0,50,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2681,60,RL,NA,9233,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,9,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,877,Gd,TA,PConc,Ex,TA,Av,GLQ,1182,Unf,0,358,1540,GasA,Ex,Y,SBrkr,1540,1315,0,2855,1,0,2,1,4,1,Ex,9,Typ,1,TA,Attchd,2000,RFn,3,774,TA,TA,Y,247,55,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal +2682,60,RL,83,10019,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1995,1995,Hip,CompShg,VinylSd,VinylSd,BrkFace,397,Gd,TA,PConc,Gd,TA,No,ALQ,527,Unf,0,815,1342,GasA,Ex,Y,SBrkr,1358,1368,0,2726,0,0,2,1,4,1,Gd,9,Typ,1,Ex,Attchd,1995,RFn,3,725,TA,TA,Y,307,169,168,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2683,60,RL,114,17242,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,9,5,1993,1994,Hip,CompShg,MetalSd,MetalSd,BrkFace,738,Gd,Gd,PConc,Ex,TA,Gd,Rec,292,GLQ,1393,48,1733,GasA,Ex,Y,SBrkr,1933,1567,0,3500,1,0,3,1,4,1,Ex,11,Typ,1,TA,Attchd,1993,RFn,3,959,TA,TA,Y,870,86,0,0,210,0,NA,NA,NA,0,5,2006,WD,Normal +2684,60,RL,NA,10236,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1994,1995,Gable,CompShg,VinylSd,VinylSd,BrkFace,501,Gd,TA,PConc,Gd,TA,Gd,GLQ,380,BLQ,168,742,1290,GasA,Ex,Y,SBrkr,1305,1189,0,2494,1,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1994,Fin,3,803,TA,TA,Y,200,95,0,0,0,0,NA,GdPrv,NA,0,6,2006,WD,Normal +2685,60,RL,NA,12585,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1993,1993,Gable,CompShg,HdBoard,ImStucc,BrkFace,420,Gd,TA,PConc,Gd,TA,No,LwQ,247,GLQ,1039,0,1286,GasA,Ex,Y,SBrkr,1565,1234,0,2799,1,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1993,Fin,3,704,TA,TA,Y,432,136,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal +2686,60,RL,75,12447,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,RRAn,Norm,1Fam,2Story,8,5,2005,2006,Gable,CompShg,CemntBd,CmentBd,Stone,192,Gd,TA,PConc,Gd,Gd,No,Unf,0,Unf,0,1100,1100,GasA,Ex,Y,SBrkr,1116,848,0,1964,0,0,2,1,3,1,Gd,8,Typ,1,Gd,BuiltIn,2005,Fin,2,760,TA,TA,Y,200,70,0,0,0,0,NA,NA,NA,0,1,2006,New,Partial +2687,20,RL,49,15218,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Somerst,RRAn,Norm,1Fam,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,NA,NA,Gd,TA,PConc,Ex,Gd,No,GLQ,1562,Unf,0,108,1670,GasA,Ex,Y,SBrkr,1670,0,0,1670,1,0,2,1,2,1,Gd,6,Typ,1,Gd,Attchd,2006,RFn,3,928,TA,TA,Y,0,240,200,0,0,0,NA,NA,NA,0,9,2006,New,Partial +2688,20,RL,85,10936,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Somerst,Feedr,Norm,1Fam,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,60,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1504,1504,GasA,Ex,Y,SBrkr,1504,0,0,1504,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2006,Fin,2,510,TA,TA,Y,144,0,0,0,0,0,NA,NA,NA,0,9,2006,New,Partial +2689,20,FV,72,8640,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,24,Unf,0,1254,1278,GasA,Ex,Y,SBrkr,1278,0,0,1278,0,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,2006,RFn,2,584,TA,TA,Y,0,60,0,0,0,0,NA,NA,NA,0,10,2006,New,Partial +2690,60,FV,100,13162,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Somerst,Feedr,Norm,1Fam,2Story,9,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,No,GLQ,1836,Unf,0,200,2036,GasA,Ex,Y,SBrkr,2036,604,0,2640,1,0,3,1,3,1,Ex,11,Typ,1,Gd,Attchd,2006,RFn,3,792,TA,TA,Y,0,265,0,0,0,0,NA,NA,NA,0,11,2006,New,Partial +2691,60,FV,65,8125,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,6,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,858,858,GasA,Ex,Y,SBrkr,858,858,0,1716,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2005,RFn,2,615,TA,TA,Y,0,53,0,0,0,0,NA,NA,NA,0,2,2006,WD,Normal +2692,20,RL,74,7733,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,6,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,TA,TA,Mn,GLQ,24,Unf,0,1118,1142,GasA,Ex,Y,SBrkr,1142,0,0,1142,0,0,1,1,3,1,Gd,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,4,50,0,0,0,0,NA,NA,NA,0,1,2006,WD,Normal +2693,20,RL,91,11024,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,1Fam,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,118,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1400,1400,GasA,Ex,Y,SBrkr,1400,0,0,1400,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2005,RFn,2,612,TA,TA,Y,144,55,0,0,0,0,NA,NA,NA,0,10,2006,New,Partial +2694,20,RL,63,13072,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,RRAe,Norm,1Fam,1Story,6,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1131,1131,GasA,Ex,Y,SBrkr,1131,0,0,1131,0,0,1,1,3,1,Gd,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,39,0,0,0,0,NA,NA,NA,0,3,2006,New,Partial +2695,60,RL,65,7800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,172,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,891,891,GasA,Ex,Y,SBrkr,891,795,0,1686,0,0,2,1,3,1,Gd,8,Typ,0,NA,Attchd,2005,Fin,2,462,TA,TA,Y,144,101,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal +2696,60,RL,74,7632,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,96,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,784,784,GasA,Ex,Y,SBrkr,831,754,0,1585,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2005,RFn,2,449,TA,TA,Y,100,77,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal +2697,60,RL,70,8304,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,5,1997,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,941,941,GasA,Ex,Y,SBrkr,941,896,0,1837,0,0,2,1,3,1,TA,7,Typ,0,NA,Attchd,1997,RFn,2,688,TA,TA,Y,150,165,0,0,0,0,NA,GdPrv,NA,0,7,2006,WD,Normal +2698,60,RL,70,9370,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,5,1992,1993,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,No,ALQ,758,Unf,0,78,836,GasA,Ex,Y,SBrkr,844,887,0,1731,1,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,1992,RFn,2,462,TA,TA,Y,307,85,0,0,224,0,NA,NA,Othr,3000,10,2006,WD,Family +2699,120,RL,50,7175,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,TwnhsE,1Story,6,5,1990,1991,Gable,CompShg,Plywood,Plywood,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,904,Unf,0,494,1398,GasA,Gd,Y,SBrkr,1398,0,0,1398,1,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,1990,RFn,2,542,TA,TA,Y,0,46,0,0,0,0,NA,MnPrv,NA,0,7,2006,WD,Normal +2700,120,RL,50,7175,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,TwnhsE,1Story,6,5,1991,1991,Gable,CompShg,Plywood,Plywood,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,278,Unf,0,939,1217,GasA,Gd,Y,SBrkr,1217,0,0,1217,0,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,1991,RFn,2,484,TA,TA,Y,0,64,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2701,60,RL,NA,9019,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,RRAe,Norm,1Fam,2Story,6,5,1994,1994,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,ALQ,274,Unf,0,362,636,GasA,Ex,Y,SBrkr,636,684,0,1320,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,1994,Fin,2,472,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2702,20,RL,70,9100,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,RRAe,Norm,1Fam,1Story,5,4,1962,1962,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,51,TA,TA,CBlock,TA,TA,No,LwQ,36,Unf,0,952,988,GasA,Ex,Y,SBrkr,988,0,0,988,1,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1977,Unf,2,624,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2703,90,RM,68,8927,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,RRAe,Norm,Duplex,1.5Fin,6,6,1977,1977,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,1286,368,0,1654,0,0,2,0,4,2,TA,10,Typ,0,NA,Attchd,1977,RFn,2,528,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2006,WD,Normal +2704,20,RL,NA,9240,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,6,1962,2002,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,BLQ,612,Unf,0,252,864,GasA,Gd,Y,SBrkr,1211,0,0,1211,0,0,1,0,2,1,TA,6,Min1,1,TA,Detchd,1972,Unf,2,576,TA,TA,Y,161,0,0,0,0,0,NA,MnPrv,NA,0,3,2006,WD,Normal +2705,20,RL,NA,9308,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,RRNe,Norm,1Fam,1Story,5,5,1965,1965,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Rec,554,Unf,0,430,984,GasA,TA,Y,SBrkr,984,0,0,984,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1965,Unf,1,310,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,7,2006,WD,Normal +2706,20,RL,65,8450,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,RRAe,Norm,1Fam,1Story,5,6,1968,1968,Gable,CompShg,Plywood,Plywood,BrkFace,90,TA,TA,CBlock,TA,TA,No,BLQ,162,Rec,270,450,882,GasA,TA,Y,SBrkr,909,0,0,909,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1968,Unf,1,294,TA,TA,Y,0,155,0,0,0,0,NA,MnPrv,NA,0,11,2006,COD,Normal +2707,20,RL,NA,8638,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,RRAe,Norm,1Fam,1Story,5,6,1963,1963,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,TA,TA,No,ALQ,181,Unf,0,744,925,GasA,Gd,Y,SBrkr,925,0,0,925,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1990,Unf,2,484,TA,TA,Y,203,74,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal +2708,20,RL,NA,13052,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,6,1965,1965,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Rec,712,Unf,0,312,1024,GasA,TA,Y,SBrkr,1024,0,0,1024,0,0,1,1,3,1,TA,5,Typ,0,NA,Attchd,1965,Unf,1,308,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,1,2006,WD,Normal +2709,20,RL,NA,8020,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,6,1964,1964,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,ALQ,644,Unf,0,268,912,GasA,TA,N,SBrkr,912,0,0,912,0,0,1,0,3,1,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,4,2006,WD,Normal +2710,20,RL,NA,8789,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,6,1967,1967,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,Mn,Rec,659,Unf,0,253,912,GasA,TA,Y,SBrkr,941,0,0,941,0,0,1,0,3,1,TA,6,Typ,1,Po,Attchd,1967,Unf,1,288,TA,TA,Y,64,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2711,80,RL,100,14330,Pave,NA,IR1,Low,AllPub,Corner,Gtl,Veenker,Norm,Norm,1Fam,SLvl,7,4,1974,1974,Gable,CompShg,WdShing,Wd Sdng,BrkFace,145,Gd,Fa,CBlock,Gd,TA,Gd,ALQ,1023,BLQ,497,228,1748,GasA,Gd,Y,SBrkr,2151,495,0,2646,1,2,2,0,3,1,Gd,9,Mod,4,TA,Attchd,1974,RFn,2,550,TA,TA,Y,641,100,0,0,0,800,Gd,GdPrv,NA,0,1,2006,WD,Normal +2712,60,RL,105,11025,Pave,NA,Reg,HLS,AllPub,Inside,Mod,NoRidge,Norm,Norm,1Fam,2Story,8,5,1992,1993,Gable,CompShg,HdBoard,ImStucc,BrkFace,692,Gd,TA,PConc,Ex,TA,Gd,GLQ,1118,Unf,0,216,1334,GasA,Ex,Y,SBrkr,1520,1306,0,2826,1,0,2,1,3,1,Gd,9,Typ,3,TA,Attchd,1992,RFn,3,888,TA,TA,Y,177,208,186,0,0,0,NA,NA,NA,0,10,2006,WD,Normal +2713,120,FV,34,3628,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,7,5,2004,2004,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1143,1143,GasA,Ex,Y,SBrkr,1143,0,0,1143,0,0,1,1,1,1,Gd,5,Typ,1,Gd,Attchd,2004,RFn,2,588,TA,TA,Y,0,191,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2714,160,FV,24,2544,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,2Story,7,5,2005,2005,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,600,600,GasA,Ex,Y,SBrkr,520,623,80,1223,0,0,2,1,2,1,Gd,4,Typ,0,NA,Detchd,2005,RFn,2,480,TA,TA,Y,0,166,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2715,160,FV,NA,2998,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,6,5,2000,2000,Gable,CompShg,MetalSd,MetalSd,BrkFace,513,Gd,TA,PConc,Gd,TA,No,GLQ,353,Unf,0,403,756,GasA,Ex,Y,SBrkr,768,756,0,1524,0,0,2,1,2,1,Gd,4,Typ,0,NA,Detchd,2000,Unf,2,440,TA,TA,Y,0,32,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2716,160,FV,NA,4447,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,530,530,GasA,Ex,Y,SBrkr,530,550,0,1080,0,0,2,1,2,1,Gd,4,Typ,0,NA,Attchd,2003,RFn,2,496,TA,TA,Y,0,50,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2717,60,FV,114,8314,Pave,Pave,IR1,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,1997,1998,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,569,569,GasA,Ex,Y,SBrkr,854,840,0,1694,0,0,2,1,3,1,Gd,6,Typ,1,TA,BuiltIn,1997,Unf,1,434,TA,TA,Y,0,382,0,0,110,0,NA,GdPrv,NA,0,11,2006,WD,Normal +2718,20,FV,60,7180,Pave,Pave,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2001,2002,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1568,1568,GasA,Ex,Y,SBrkr,1568,0,0,1568,0,0,2,0,3,1,Gd,6,Typ,1,TA,Attchd,2001,RFn,2,564,TA,TA,Y,0,266,0,0,0,0,NA,NA,NA,0,9,2006,WD,Normal +2719,190,RL,79,13110,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NWAmes,RRAn,Feedr,2fmCon,1Story,5,6,1972,1972,Gable,CompShg,Plywood,Plywood,BrkFace,144,TA,TA,CBlock,Gd,TA,No,GLQ,962,Unf,0,191,1153,GasA,Ex,Y,SBrkr,1193,0,0,1193,1,0,2,0,2,1,TA,6,Typ,0,NA,Attchd,1972,Fin,2,501,TA,TA,Y,140,153,0,0,0,0,NA,MnPrv,NA,0,7,2006,WD,Normal +2720,20,RL,78,10140,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,RRAn,Norm,1Fam,1Story,7,6,1967,1967,Hip,CompShg,HdBoard,HdBoard,BrkFace,264,TA,TA,CBlock,TA,TA,No,BLQ,553,LwQ,68,713,1334,GasA,Gd,Y,SBrkr,1334,0,0,1334,1,0,2,0,3,1,TA,7,Typ,0,NA,Attchd,1967,RFn,2,477,TA,TA,Y,0,20,35,0,264,0,NA,NA,NA,0,4,2006,WD,Normal +2721,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Feedr,Norm,1Fam,1Story,5,5,1968,1968,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,758,Unf,0,293,1051,GasA,Gd,Y,SBrkr,1051,0,0,1051,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1968,RFn,2,504,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2722,60,RL,72,8640,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Feedr,Norm,1Fam,2Story,5,5,1968,1968,Gable,CompShg,HdBoard,HdBoard,BrkFace,300,TA,TA,CBlock,Gd,Fa,Mn,ALQ,361,Rec,483,56,900,GasA,Ex,Y,SBrkr,884,886,0,1770,1,0,1,1,4,1,TA,7,Typ,0,NA,Attchd,1968,RFn,2,530,TA,TA,Y,0,60,0,0,270,0,NA,NA,Shed,455,6,2006,WD,Normal +2723,20,RL,78,9360,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Feedr,Norm,1Fam,1Story,6,7,1968,2004,Hip,CompShg,HdBoard,HdBoard,BrkFace,203,TA,TA,CBlock,TA,TA,Av,ALQ,760,Unf,0,216,976,GasA,TA,Y,SBrkr,976,0,0,976,1,0,1,0,2,1,Gd,4,Typ,1,Fa,Attchd,1968,RFn,2,504,TA,TA,Y,94,0,0,0,0,0,NA,NA,NA,0,8,2006,WD,Abnorml +2724,85,RL,70,8400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Feedr,Norm,1Fam,SFoyer,5,6,1968,1968,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,Gd,GLQ,744,Unf,0,89,833,GasA,Gd,Y,SBrkr,898,0,0,898,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1968,RFn,1,326,TA,TA,Y,143,0,0,0,0,0,NA,NA,NA,0,8,2006,WD,Normal +2725,20,RL,NA,9759,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1966,1966,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,BLQ,799,Unf,0,252,1051,GasA,TA,Y,SBrkr,1051,0,0,1051,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1966,RFn,1,264,TA,TA,Y,182,88,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal +2726,80,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,5,7,1967,1967,Gable,CompShg,MetalSd,MetalSd,BrkFace,140,TA,TA,PConc,TA,TA,Av,ALQ,602,Rec,402,137,1141,GasA,Gd,Y,SBrkr,1141,0,0,1141,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1967,Unf,1,568,TA,TA,Y,0,78,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2727,190,RL,80,8800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,RRAn,Norm,2fmCon,1Story,6,7,1965,2000,Hip,CompShg,BrkFace,VinylSd,None,0,TA,Gd,PConc,TA,TA,Mn,ALQ,901,BLQ,252,34,1187,GasA,Ex,Y,SBrkr,1565,0,0,1565,1,0,2,0,3,1,Gd,7,Min1,2,TA,Attchd,1965,RFn,1,299,TA,TA,Y,200,25,211,0,0,0,NA,MnPrv,Shed,460,6,2006,WD,Abnorml +2728,20,RL,NA,10368,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1964,1964,Hip,CompShg,HdBoard,HdBoard,BrkFace,112,TA,TA,CBlock,TA,TA,No,ALQ,260,LwQ,748,0,1008,GasA,Ex,Y,SBrkr,1488,0,0,1488,1,0,1,1,3,1,TA,7,Typ,1,Gd,Attchd,1964,Fin,2,430,TA,TA,Y,154,60,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal +2729,60,RL,85,9350,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,2Story,5,6,1964,1964,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,ALQ,360,Unf,0,360,720,GasA,Gd,Y,SBrkr,720,720,0,1440,0,0,1,1,4,1,TA,7,Typ,1,Po,Attchd,1964,Fin,2,480,TA,TA,Y,0,32,240,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2730,20,RL,80,10800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1960,1960,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,88,TA,TA,CBlock,TA,TA,No,ALQ,632,Unf,0,616,1248,GasA,Ex,Y,SBrkr,1248,0,0,1248,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1960,Unf,1,286,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,5,2006,WD,Normal +2731,30,RL,60,8550,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,8,1934,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,574,Unf,0,242,816,GasA,Ex,Y,SBrkr,816,0,0,816,1,0,1,0,2,1,TA,4,Typ,1,Fa,Attchd,1949,Unf,1,240,TA,TA,Y,228,0,40,0,0,0,NA,MnPrv,NA,0,7,2006,WD,Normal +2732,20,RL,68,9724,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1947,1950,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,938,938,GasA,Ex,Y,SBrkr,1043,0,0,1043,0,0,1,0,2,1,TA,5,Typ,1,Gd,Detchd,1947,Unf,1,273,TA,TA,Y,125,48,0,0,0,0,NA,GdWo,NA,0,5,2006,WD,Normal +2733,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1961,1990,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,TA,Mn,BLQ,915,Unf,0,336,1251,GasA,TA,Y,SBrkr,1433,0,0,1433,1,0,1,0,3,1,TA,7,Min1,1,Gd,Attchd,1961,Unf,2,441,TA,TA,Y,144,0,205,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2734,20,RL,89,10858,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Feedr,Norm,1Fam,1Story,5,6,1952,1952,Gable,CompShg,Wd Sdng,Plywood,Stone,150,TA,Gd,CBlock,TA,TA,Mn,LwQ,40,Unf,0,1404,1444,GasA,Ex,Y,SBrkr,1624,0,0,1624,1,0,1,0,2,1,TA,6,Min1,1,Gd,Attchd,1952,RFn,1,240,TA,TA,Y,0,40,324,0,0,0,NA,MnPrv,NA,0,7,2006,WD,Partial +2735,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1951,1951,Gable,CompShg,HdBoard,HdBoard,Stone,144,TA,TA,CBlock,TA,TA,No,ALQ,996,Unf,0,60,1056,GasA,Ex,Y,FuseA,1216,0,0,1216,1,0,1,0,3,1,TA,7,Typ,0,NA,Attchd,1951,RFn,1,280,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2736,60,RL,79,9462,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,2Story,5,6,1949,1973,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,704,704,GasA,Gd,Y,FuseA,1024,704,0,1728,0,0,1,1,3,1,TA,7,Min1,1,Gd,Attchd,1949,Unf,1,234,TA,TA,Y,245,60,0,0,0,0,NA,MnPrv,NA,0,7,2006,WD,Normal +2737,20,RL,82,9888,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1954,1975,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,BLQ,486,Unf,0,450,936,GasA,TA,Y,FuseA,936,0,0,936,0,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1954,Unf,1,240,TA,TA,Y,0,0,160,0,0,0,NA,MnPrv,NA,0,3,2006,WD,Normal +2738,90,RL,NA,8917,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,Duplex,1Story,5,5,1967,1967,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1584,1584,GasA,TA,Y,SBrkr,1584,0,0,1584,0,0,2,0,4,2,TA,8,Typ,0,NA,Detchd,1967,Unf,2,506,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal +2739,80,RL,NA,12700,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,6,5,1964,1964,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,ALQ,939,Unf,0,307,1246,GasA,TA,Y,SBrkr,1246,0,0,1246,1,0,1,0,3,1,TA,6,Typ,2,Gd,Attchd,1964,RFn,2,441,TA,TA,Y,0,69,0,0,0,0,NA,NA,NA,0,11,2006,WD,Normal +2740,20,RL,109,9723,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,7,1963,1963,Hip,CompShg,MetalSd,MetalSd,BrkFace,332,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1008,1008,GasA,TA,Y,SBrkr,1008,0,0,1008,0,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1963,RFn,2,430,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal +2741,20,RL,70,8400,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Feedr,Norm,1Fam,1Story,5,5,1957,1957,Gable,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,Fa,TA,Mn,BLQ,623,Unf,0,556,1179,GasA,Gd,Y,SBrkr,1364,0,0,1364,0,0,1,1,3,1,TA,6,Typ,1,Gd,Attchd,1957,RFn,1,331,TA,TA,Y,0,60,0,0,0,0,NA,GdPrv,NA,0,3,2006,WD,Normal +2742,20,RL,NA,9610,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Feedr,Norm,1Fam,1Story,6,6,1958,1958,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,632,TA,TA,CBlock,TA,TA,No,Rec,203,Unf,0,918,1121,GasA,Ex,Y,FuseA,1336,0,0,1336,0,0,1,1,3,1,TA,7,Typ,1,TA,Attchd,1958,RFn,2,488,TA,TA,Y,80,0,0,0,0,0,NA,NA,NA,0,12,2006,WD,Normal +2743,80,RL,125,10000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,SLvl,5,6,1956,1956,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,272,TA,TA,CBlock,TA,TA,Av,BLQ,678,Rec,281,99,1058,GasA,Ex,Y,SBrkr,1370,0,0,1370,1,0,1,0,3,1,TA,6,Typ,1,TA,Basment,1956,RFn,1,300,TA,TA,Y,191,0,0,0,120,0,NA,MnPrv,NA,0,2,2006,WD,Normal +2744,20,RL,72,10152,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1956,1994,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Av,BLQ,914,Unf,0,210,1124,GasA,Ex,Y,SBrkr,1124,0,0,1124,1,0,1,0,3,1,TA,6,Typ,1,TA,Attchd,1956,Fin,1,353,TA,TA,Y,0,211,180,0,142,0,NA,NA,NA,0,5,2006,WD,Normal +2745,20,RL,70,8092,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,8,1954,2000,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,176,TA,Gd,CBlock,TA,TA,No,ALQ,824,Unf,0,226,1050,GasA,Ex,Y,SBrkr,1050,0,0,1050,1,0,1,0,3,1,Gd,6,Typ,0,NA,Attchd,1954,RFn,1,286,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Abnorml +2746,20,RL,66,12778,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1952,2003,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,GLQ,658,Unf,0,350,1008,GasA,Ex,Y,FuseA,1008,0,0,1008,1,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1952,RFn,1,280,TA,TA,Y,0,154,0,0,0,0,NA,MnPrv,NA,0,1,2006,WD,Normal +2747,20,RL,75,10170,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1951,1951,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,522,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,216,216,GasA,TA,Y,SBrkr,1575,0,0,1575,0,0,1,1,2,1,Gd,5,Typ,1,Gd,Attchd,1951,Unf,2,400,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2748,80,RL,55,7700,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,5,7,1956,1956,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,Gd,TA,No,BLQ,271,Unf,0,30,301,GasA,Ex,Y,FuseA,1145,0,0,1145,0,0,1,0,3,1,TA,6,Min2,0,NA,Detchd,1993,Unf,2,684,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,9,2006,WD,Normal +2749,20,RL,65,11050,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1956,1956,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,LwQ,488,Unf,0,517,1005,GasA,Ex,Y,SBrkr,1005,0,0,1005,0,0,1,0,2,1,TA,6,Typ,1,TA,Attchd,1956,Unf,1,319,TA,TA,Y,0,0,0,0,288,0,NA,NA,NA,0,7,2006,WD,Normal +2750,20,RL,80,13600,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1955,1955,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Rec,144,BLQ,912,0,1056,GasA,Gd,Y,SBrkr,1056,0,0,1056,1,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1955,Fin,1,300,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,Shed,650,11,2006,WD,Normal +2751,20,RL,85,15428,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1951,1991,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,741,Unf,0,143,884,GasA,Ex,Y,SBrkr,884,0,0,884,1,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1951,Fin,1,270,TA,TA,Y,0,0,0,0,195,0,NA,NA,NA,0,6,2006,WD,Normal +2752,30,RL,118,21299,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,7,5,1941,1963,Hip,WdShake,BrkFace,BrkFace,None,0,Gd,TA,CBlock,TA,TA,No,Unf,0,Unf,0,929,929,GasA,Ex,Y,SBrkr,2039,0,0,2039,1,0,1,1,3,1,TA,7,Min1,3,Gd,2Types,1941,Unf,3,791,TA,TA,Y,0,0,90,0,0,0,NA,NA,NA,0,12,2006,COD,Abnorml +2753,20,RL,70,13300,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1956,2001,Hip,CompShg,Wd Sdng,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,494,Unf,0,521,1015,GasA,Gd,Y,SBrkr,1384,0,0,1384,1,0,1,0,2,1,TA,6,Min1,0,NA,Attchd,2001,Unf,2,896,TA,TA,Y,75,0,0,323,0,0,NA,NA,Shed,400,6,2006,WD,Normal +2754,190,RL,94,22136,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,2fmCon,1.5Fin,5,5,1925,1975,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Fa,CBlock,TA,TA,Mn,GLQ,1018,Unf,0,1153,2171,GasA,TA,Y,SBrkr,1392,1248,0,2640,2,0,2,1,5,1,TA,10,Maj1,1,Gd,Attchd,1977,RFn,3,1008,TA,TA,N,631,48,148,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2755,50,RL,50,7500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1.5Fin,6,6,1947,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,784,784,GasA,Ex,Y,FuseA,900,412,0,1312,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1953,Unf,2,649,TA,TA,Y,0,28,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal +2756,30,RL,60,10410,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,3,8,1930,2001,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,PConc,TA,TA,No,Unf,0,Unf,0,713,713,GasA,Ex,Y,SBrkr,713,0,0,713,0,0,1,0,2,1,Gd,5,Typ,0,NA,Detchd,1936,Unf,1,371,Fa,Fa,N,0,75,161,0,0,0,NA,NA,NA,0,10,2006,WD,Normal +2757,30,RL,60,10914,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Artery,Norm,1Fam,1Story,3,3,1929,1950,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Fa,CBlock,TA,TA,Mn,Unf,0,Unf,0,715,715,GasA,Fa,N,FuseP,715,0,0,715,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1967,Unf,2,660,Fa,TA,N,0,0,75,0,112,0,NA,NA,NA,0,8,2006,WD,Normal +2758,50,RL,60,7008,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,4,8,1900,1998,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,BrkTil,Fa,Fa,No,Unf,0,Unf,0,448,448,GasA,Ex,Y,SBrkr,448,272,0,720,0,0,1,0,1,1,Fa,5,Typ,0,NA,Attchd,1900,Unf,1,280,Fa,TA,Y,0,0,70,0,0,0,NA,NA,NA,0,3,2006,WD,Normal +2759,70,RL,60,7200,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,6,8,1915,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Ex,CBlock,TA,TA,No,Rec,338,Unf,0,325,663,GasA,Ex,Y,SBrkr,774,821,0,1595,0,0,2,0,3,1,TA,7,Typ,1,Gd,Detchd,1974,Unf,2,528,TA,TA,Y,49,0,231,0,0,0,NA,NA,NA,0,4,2006,WD,Normal +2760,50,RL,60,10818,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,4,4,1910,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,BrkTil,Fa,TA,No,Unf,0,Unf,0,1077,1077,GasA,TA,Y,FuseA,981,779,0,1760,0,0,1,1,4,1,TA,7,Typ,1,TA,Detchd,1935,Unf,2,648,Fa,TA,Y,120,0,96,0,0,0,NA,NA,NA,0,2,2006,COD,Abnorml +2761,80,RL,83,10184,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,6,5,1963,1963,Gable,CompShg,HdBoard,HdBoard,BrkFace,379,TA,TA,CBlock,TA,TA,Av,ALQ,580,Unf,0,503,1083,GasA,TA,Y,SBrkr,1146,0,0,1146,0,1,1,0,3,1,TA,6,Typ,1,Gd,Attchd,1963,Unf,1,294,TA,TA,Y,345,75,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2762,20,RL,77,9510,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1962,1985,Gable,CompShg,HdBoard,HdBoard,BrkCmn,161,TA,TA,CBlock,TA,TA,No,ALQ,701,Unf,0,434,1135,GasA,Ex,Y,SBrkr,1207,0,0,1207,0,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1962,RFn,1,264,TA,TA,Y,0,240,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2763,20,RL,80,10800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,PosA,Norm,1Fam,1Story,6,6,1961,1992,Gable,CompShg,HdBoard,HdBoard,BrkFace,104,TA,TA,CBlock,TA,TA,No,Rec,913,Unf,0,400,1313,GasA,TA,Y,SBrkr,1773,0,0,1773,1,0,2,0,3,1,TA,6,Min2,2,TA,Attchd,1961,RFn,2,418,TA,TA,Y,355,98,0,0,144,0,NA,NA,NA,0,8,2006,WD,Normal +2764,20,RL,86,11650,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,PosA,Norm,1Fam,1Story,7,5,1959,1959,Hip,CompShg,Plywood,Plywood,BrkCmn,58,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,Gd,Y,FuseA,1472,0,0,1472,0,0,2,0,2,1,Gd,5,Typ,1,Gd,Attchd,1959,Unf,2,484,TA,TA,Y,0,68,0,0,227,0,NA,NA,NA,0,6,2006,WD,Normal +2765,60,RL,NA,18275,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,2Story,7,8,1962,1998,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,Gd,ALQ,636,Unf,0,802,1438,GasA,TA,Y,SBrkr,1900,548,0,2448,1,0,3,0,3,1,TA,9,Typ,2,Gd,Attchd,1962,RFn,2,441,TA,TA,Y,520,102,0,0,0,0,NA,NA,NA,0,9,2006,WD,Normal +2766,50,RL,60,12144,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1.5Fin,4,6,1950,1950,Gable,CompShg,BrkComm,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,455,Unf,0,455,910,GasA,Gd,Y,SBrkr,910,611,0,1521,0,0,1,1,3,1,Gd,6,Min2,0,NA,Detchd,1950,Unf,1,597,Fa,TA,Y,199,0,168,0,0,0,NA,NA,NA,0,9,2006,WD,Normal +2767,90,RL,60,8544,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,Duplex,1Story,3,4,1950,1950,Gable,CompShg,BrkFace,Stone,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,Wall,Fa,N,FuseF,1040,0,0,1040,0,0,2,0,2,2,TA,6,Typ,0,NA,Detchd,1950,Unf,2,400,TA,Fa,Y,0,0,0,0,0,0,NA,NA,NA,0,12,2006,WD,Normal +2768,90,RL,75,8512,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,Duplex,1Story,5,5,1960,1960,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,Fa,No,Unf,0,Unf,0,1556,1556,GasA,TA,Y,SBrkr,1556,0,0,1556,0,0,2,0,4,2,TA,8,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,9,2006,WD,Normal +2769,20,RL,70,7000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,4,1961,1961,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,GLQ,781,Unf,0,369,1150,GasA,TA,Y,SBrkr,1150,0,0,1150,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1961,RFn,1,288,TA,TA,Y,0,0,0,0,162,0,NA,NA,NA,0,7,2006,WD,Normal +2770,20,RL,74,7400,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Artery,Norm,1Fam,1Story,7,6,1962,1962,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,LwQ,809,Unf,0,236,1045,GasA,Gd,Y,SBrkr,1045,0,0,1045,1,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1962,Unf,2,528,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal +2771,20,RL,70,7000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Artery,Norm,1Fam,1Story,5,6,1962,1962,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,468,Unf,0,396,864,GasA,Gd,Y,SBrkr,864,0,0,864,0,1,1,0,3,1,TA,5,Typ,0,NA,Attchd,1962,Unf,1,336,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,2,2006,WD,Normal +2772,190,RL,70,7000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Artery,Norm,2fmCon,SFoyer,5,5,1962,1962,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,Av,ALQ,953,Unf,0,72,1025,GasA,TA,Y,SBrkr,1025,0,0,1025,1,0,1,0,3,1,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,96,80,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal +2773,70,RM,62,9856,Pave,Grvl,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,2Story,5,8,1900,2005,Hip,CompShg,CemntBd,CmentBd,None,0,Gd,Gd,PConc,Fa,TA,No,Unf,0,Unf,0,716,716,GasA,Ex,Y,FuseA,1007,1007,0,2014,0,0,2,0,5,1,TA,8,Typ,0,NA,Detchd,1900,Unf,2,624,TA,TA,Y,0,72,167,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2774,50,RM,60,9600,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,6,1948,1950,Gable,CompShg,MetalSd,MetalSd,Stone,264,TA,TA,CBlock,TA,TA,No,Rec,276,Unf,0,936,1212,GasA,Gd,Y,FuseA,1226,442,0,1668,1,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1948,Unf,1,240,TA,TA,Y,0,0,140,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2775,50,RM,60,5520,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,4,6,1920,1980,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,Fa,No,LwQ,284,Unf,0,863,1147,GasA,TA,N,SBrkr,1147,510,0,1657,0,0,1,0,4,1,Fa,9,Typ,1,TA,Detchd,1920,Unf,1,162,Fa,Fa,N,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2776,50,RM,60,9600,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,6,8,1900,2004,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Rec,381,Unf,0,399,780,GasA,Ex,Y,SBrkr,940,476,0,1416,0,1,1,0,3,1,Gd,7,Typ,0,NA,Detchd,1956,Unf,2,400,TA,TA,Y,0,24,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2777,70,RM,58,6451,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,7,7,1900,1970,Gable,CompShg,AsbShng,Wd Sdng,None,0,TA,TA,Stone,TA,TA,No,Rec,208,Unf,0,504,712,GasA,Gd,Y,SBrkr,848,580,0,1428,1,0,1,0,4,1,TA,7,Typ,0,NA,Detchd,1985,Fin,2,576,TA,TA,Y,264,0,84,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2778,70,RM,66,3960,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,7,8,1930,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,502,502,GasA,TA,N,SBrkr,502,502,0,1004,0,0,1,0,2,1,Gd,5,Typ,1,Po,Detchd,1930,Unf,1,200,Fa,TA,N,280,0,68,0,0,0,NA,MnPrv,NA,0,7,2006,WD,Normal +2779,190,RM,56,7745,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,2fmCon,1.5Fin,4,6,1900,1950,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,TA,TA,No,Unf,0,Unf,0,938,938,GasA,Gd,N,SBrkr,1084,867,0,1951,0,0,2,0,4,2,Fa,9,Typ,0,NA,Detchd,1993,Unf,2,576,TA,TA,P,0,6,28,0,0,0,NA,NA,NA,0,4,2006,WD,Normal +2780,30,RM,56,7741,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,6,5,1924,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,Fa,No,BLQ,143,Rec,72,817,1032,GasA,Gd,N,FuseA,1032,0,0,1032,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1995,Unf,1,280,TA,TA,Y,0,0,112,0,0,0,NA,MnPrv,NA,0,6,2006,COD,Abnorml +2781,30,RM,50,5633,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,7,1925,1950,Gable,CompShg,MetalSd,Stucco,None,0,TA,TA,BrkTil,TA,Fa,No,Unf,0,Unf,0,844,844,GasA,TA,Y,SBrkr,844,0,0,844,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1925,Unf,1,216,TA,TA,N,50,81,123,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2782,20,RM,60,7200,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,4,5,1950,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,576,576,GasA,Ex,Y,SBrkr,864,0,0,864,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1952,RFn,1,528,TA,TA,Y,0,0,0,0,115,0,NA,NA,NA,0,8,2006,COD,Normal +2783,70,RM,42,7614,Pave,Grvl,Reg,Lvl,AllPub,Inside,Mod,OldTown,Norm,Norm,1Fam,2Story,3,5,1905,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,Fa,Mn,Unf,0,Unf,0,738,738,GasA,Gd,Y,FuseA,714,662,0,1376,0,0,1,0,2,1,TA,7,Typ,0,NA,Detchd,1930,Unf,1,216,TA,TA,N,0,0,104,0,225,0,NA,NA,NA,0,3,2006,WD,Normal +2784,190,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,2fmCon,1Story,5,7,1955,1955,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Av,GLQ,576,Unf,0,384,960,GasA,TA,Y,FuseA,960,0,0,960,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1976,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2785,50,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,7,1924,1950,Gable,CompShg,MetalSd,MetalSd,BrkFace,145,TA,Gd,PConc,TA,TA,No,Unf,0,Unf,0,816,816,GasA,Ex,Y,SBrkr,816,750,0,1566,0,0,1,1,5,1,Gd,7,Typ,0,NA,Detchd,1976,Unf,2,450,TA,TA,Y,24,0,296,0,0,0,NA,MnPrv,NA,0,8,2006,WD,Normal +2786,30,RM,52,7830,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,3,5,1921,1950,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,BrkTil,Fa,TA,No,LwQ,416,Unf,0,76,492,GasA,TA,Y,SBrkr,492,0,0,492,1,0,1,0,1,1,TA,3,Typ,0,NA,Detchd,1921,Unf,1,200,Fa,TA,N,0,0,78,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2787,50,RM,56,9576,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,6,7,1945,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,Fa,TA,No,Rec,310,Unf,0,460,770,GasA,TA,Y,SBrkr,885,297,0,1182,0,0,1,1,3,1,TA,5,Typ,0,NA,Detchd,1945,Unf,1,378,Fa,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,5,2006,WD,Normal +2788,30,RM,48,5747,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,3,4,1920,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,798,798,GasA,Gd,Y,SBrkr,840,0,0,840,0,0,1,0,2,1,Fa,5,Typ,0,NA,Detchd,1938,Unf,1,250,TA,Fa,N,112,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2789,75,RM,70,6300,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,2.5Unf,7,6,1910,2005,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,1226,1226,GasA,Ex,Y,SBrkr,1226,878,0,2104,0,0,2,0,5,1,TA,9,Typ,0,NA,Detchd,1910,Unf,2,432,Fa,TA,P,0,341,88,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2790,90,RM,33,5976,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,Duplex,2Story,5,7,1920,1950,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,624,624,GasA,Gd,N,FuseA,624,624,0,1248,0,0,2,0,2,2,TA,8,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,130,256,0,0,0,NA,NA,NA,0,12,2006,WD,Normal +2791,20,RM,65,9750,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,5,1958,1958,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,960,960,GasA,Ex,Y,SBrkr,960,0,0,960,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,2002,Unf,2,624,TA,TA,Y,0,0,0,0,0,0,NA,NA,Gar2,4500,7,2006,WD,Normal +2792,50,C (all),63,4761,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Unf,3,3,1918,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Fa,Fa,BrkTil,TA,Fa,No,Unf,0,Unf,0,1020,1020,GasA,Fa,N,FuseP,1020,0,0,1020,0,0,1,0,2,1,Fa,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,105,0,0,0,NA,NA,NA,0,10,2006,ConLD,Normal +2793,70,RL,69,11737,Pave,NA,IR1,Bnk,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,2Story,6,7,1924,1996,Gambrel,CompShg,BrkComm,Stucco,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,848,848,GasW,TA,N,SBrkr,1017,810,0,1827,0,0,1,0,2,1,TA,9,Typ,1,Gd,Detchd,1943,Unf,1,240,Fa,TA,Y,27,36,42,0,0,0,NA,GdPrv,NA,0,5,2006,WD,Normal +2794,50,RM,51,6120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,3,5,1930,1950,Gable,CompShg,AsbShng,AsbShng,None,0,Gd,TA,CBlock,TA,TA,No,Rec,347,Unf,0,381,728,GasA,Ex,Y,SBrkr,728,434,0,1162,1,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1930,Unf,1,258,Fa,Po,Y,0,24,0,0,0,0,NA,NA,NA,0,11,2006,ConLI,Abnorml +2795,50,RM,51,6120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,7,1930,1984,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,BrkTil,TA,TA,No,Unf,0,Unf,0,741,741,GasA,Gd,Y,SBrkr,741,583,0,1324,0,0,1,0,3,1,Gd,7,Typ,0,NA,Detchd,1930,Unf,1,180,Fa,TA,Y,0,0,55,0,0,0,NA,NA,NA,0,2,2006,WD,Normal +2796,30,RL,50,11672,Pave,Pave,IR2,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,5,5,1925,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,816,816,GasA,TA,Y,FuseA,816,0,0,816,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1925,Unf,1,210,Fa,Fa,N,168,0,112,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2797,50,RM,90,33120,Pave,NA,IR3,Lvl,AllPub,Inside,Gtl,OldTown,RRAn,Feedr,1Fam,1.5Fin,6,5,1962,1962,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1595,1595,GasA,TA,Y,SBrkr,1611,875,0,2486,0,0,2,0,5,1,TA,8,Typ,1,Gd,Detchd,1962,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal +2798,50,RM,60,10320,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,4,5,1924,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,Fa,No,Unf,0,Unf,0,596,596,GasA,Po,Y,FuseF,834,596,0,1430,0,0,2,0,3,1,Fa,7,Typ,0,NA,Detchd,1924,Unf,2,370,Fa,Fa,Y,218,0,0,0,210,0,NA,NA,NA,0,10,2006,WD,Abnorml +2799,70,RM,60,7518,Pave,NA,Reg,Lvl,AllPub,FR3,Gtl,IDOTRR,Norm,Norm,1Fam,2Story,5,8,1910,2004,Gable,CompShg,AsbShng,Plywood,None,0,Fa,Gd,BrkTil,Fa,Fa,No,Unf,0,Unf,0,396,396,GasA,Gd,Y,SBrkr,665,665,0,1330,0,0,1,0,3,1,TA,7,Typ,0,NA,Detchd,2001,Unf,1,390,TA,TA,N,0,72,45,0,0,0,NA,MnPrv,NA,0,7,2006,WD,Normal +2800,30,RM,50,9000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,5,4,1919,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,610,610,GasA,Ex,N,FuseA,819,0,0,819,0,0,1,0,2,1,Gd,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,0,0,0,0,NA,NA,NA,0,9,2006,WD,Abnorml +2801,30,RM,60,7200,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,6,6,1930,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,BrkTil,TA,TA,No,LwQ,343,Unf,0,641,984,GasA,TA,Y,FuseF,984,0,0,984,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1930,Unf,1,308,TA,TA,N,0,0,164,0,0,0,NA,NA,NA,0,3,2006,ConLI,Family +2802,50,RL,82,12375,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Feedr,Norm,1Fam,1.5Fin,5,5,1951,1951,Gable,CompShg,HdBoard,HdBoard,Stone,41,TA,Fa,CBlock,TA,TA,No,BLQ,329,Unf,0,477,806,GasA,TA,Y,SBrkr,1081,341,0,1422,1,0,1,0,3,1,TA,7,Typ,1,TA,Detchd,1951,Unf,1,288,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,6,2006,WD,Normal +2803,90,RL,120,11136,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Feedr,Feedr,Duplex,1Story,6,5,1964,1964,Gable,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1921,1921,GasA,TA,Y,SBrkr,1921,0,0,1921,0,0,2,0,4,2,TA,8,Typ,0,NA,Detchd,1964,Unf,2,576,TA,TA,Y,0,180,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2804,20,RL,100,21370,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1950,1950,Gable,CompShg,Wd Sdng,MetalSd,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,FuseA,1640,0,0,1640,0,0,1,0,3,1,TA,7,Min1,1,Gd,Attchd,1950,RFn,2,394,TA,TA,Y,0,0,225,0,0,0,NA,NA,Shed,600,6,2006,WD,Normal +2805,30,RL,55,8250,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,7,1935,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,N,SBrkr,1032,0,0,1032,0,0,1,0,2,1,TA,6,Typ,1,TA,Detchd,1939,Unf,1,260,TA,TA,Y,0,0,121,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2806,30,RL,50,5220,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1Story,5,3,1936,1950,Gable,CompShg,Wd Sdng,Wd Shng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,830,830,GasA,Gd,Y,SBrkr,879,0,0,879,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1936,Unf,1,180,TA,TA,P,0,108,0,0,0,0,NA,NA,NA,0,1,2006,WD,Normal +2807,20,RL,50,5500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1Story,7,5,2004,2004,Shed,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,Gd,Mn,GLQ,510,LwQ,373,190,1073,GasA,Ex,Y,SBrkr,1073,0,0,1073,1,0,2,0,2,1,TA,4,Typ,0,NA,Detchd,2004,Unf,1,246,TA,TA,Y,0,120,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2808,20,RL,NA,11327,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,6,1967,1967,Hip,CompShg,HdBoard,HdBoard,BrkFace,305,TA,TA,CBlock,TA,TA,Av,ALQ,779,Unf,0,285,1064,GasA,TA,Y,SBrkr,1064,0,0,1064,0,1,1,0,3,1,TA,6,Typ,1,TA,Attchd,1967,Unf,2,528,TA,TA,Y,314,48,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2809,80,RL,80,10366,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Sawyer,Norm,Norm,1Fam,SLvl,6,7,1964,1964,Gable,CompShg,HdBoard,Plywood,None,0,TA,Gd,CBlock,TA,TA,Av,GLQ,456,Unf,0,456,912,GasA,TA,Y,SBrkr,934,0,0,934,0,1,1,0,2,1,TA,4,Typ,0,NA,Attchd,1964,Unf,1,336,TA,TA,Y,77,0,0,0,0,0,NA,GdPrv,Shed,500,7,2006,WD,Normal +2810,20,RL,75,9000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,6,1966,1966,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,773,Unf,0,286,1059,GasA,Gd,Y,SBrkr,1059,0,0,1059,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1966,Fin,1,286,TA,TA,Y,0,88,0,0,0,0,NA,GdWo,NA,0,6,2006,WD,Abnorml +2811,20,RL,NA,9535,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1967,1967,Gable,CompShg,HdBoard,HdBoard,BrkFace,450,TA,TA,CBlock,TA,TA,No,BLQ,194,LwQ,982,0,1176,GasA,TA,Y,SBrkr,1458,0,0,1458,1,0,1,1,3,1,TA,7,Typ,1,TA,Attchd,1967,Unf,2,512,TA,TA,Y,284,0,0,0,0,0,NA,MnPrv,NA,0,7,2006,WD,Normal +2812,80,RL,NA,7176,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,Norm,Norm,1Fam,SLvl,6,6,1978,1978,Gable,CompShg,HdBoard,HdBoard,BrkFace,200,TA,TA,CBlock,TA,Gd,Gd,GLQ,794,Unf,0,166,960,GasA,Fa,Y,SBrkr,1040,0,0,1040,1,0,1,0,3,1,TA,6,Typ,1,Fa,Detchd,1979,Unf,2,616,TA,TA,Y,131,0,0,0,180,0,NA,GdPrv,NA,0,7,2006,WD,Normal +2813,90,RL,NA,9662,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,Duplex,1Story,5,4,1977,1977,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,1967,1967,GasA,TA,Y,SBrkr,1967,0,0,1967,0,0,2,0,6,2,TA,10,Typ,0,NA,Attchd,1977,Fin,2,580,TA,TA,Y,170,0,0,0,0,0,NA,NA,NA,0,8,2006,WD,Normal +2814,90,RL,75,8235,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,Duplex,1Story,5,4,1977,1977,Gable,CompShg,Plywood,Plywood,BrkFace,99,TA,TA,CBlock,TA,TA,No,Rec,483,Unf,0,1466,1949,GasA,TA,Y,SBrkr,1949,0,0,1949,0,0,2,0,6,2,TA,10,Typ,0,NA,Attchd,1977,RFn,2,586,TA,TA,Y,32,0,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2815,30,RL,NA,17529,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1924,1950,Gable,CompShg,BrkFace,Wd Sdng,Stone,65,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,872,872,GasA,Fa,N,FuseF,872,0,0,872,0,0,1,0,2,1,Fa,5,Mod,1,Gd,Detchd,1924,Unf,1,322,Fa,Fa,N,0,0,116,0,0,0,NA,NA,NA,0,4,2006,WD,Normal +2816,20,RL,NA,20355,Pave,NA,Reg,Low,AllPub,Inside,Mod,ClearCr,Norm,Norm,1Fam,1Story,7,6,1967,1967,Gable,Tar&Grv,Plywood,Plywood,BrkFace,123,TA,TA,CBlock,Gd,TA,Av,Rec,810,ALQ,826,229,1865,GasA,TA,Y,SBrkr,1830,0,0,1830,1,0,1,0,2,1,TA,6,Typ,2,Gd,Attchd,1967,Unf,2,521,TA,TA,Y,0,115,168,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2817,20,RL,87,13050,Pave,NA,Reg,Low,AllPub,Inside,Mod,ClearCr,Norm,Norm,1Fam,1Story,5,6,1963,1963,Flat,Tar&Grv,WdShing,Wd Shng,None,0,TA,TA,CBlock,Gd,TA,Av,Rec,104,ALQ,850,46,1000,GasA,Ex,Y,SBrkr,1000,0,0,1000,1,0,1,0,1,1,TA,4,Typ,2,TA,Attchd,1993,Unf,2,575,TA,TA,Y,238,0,148,0,0,0,NA,NA,NA,0,4,2006,WD,Normal +2818,85,RL,72,10820,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Feedr,Norm,1Fam,SFoyer,5,7,1971,1972,Gable,CompShg,HdBoard,HdBoard,BrkFace,153,TA,TA,PConc,Gd,TA,Av,GLQ,535,Rec,159,88,782,GasA,Ex,Y,SBrkr,810,0,0,810,1,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1973,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,6,2006,WD,Normal +2819,150,RL,NA,1700,Pave,NA,Reg,HLS,AllPub,Inside,Gtl,ClearCr,Norm,Norm,Twnhs,1.5Fin,7,5,1980,1981,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Mn,GLQ,397,Unf,0,33,430,GasA,TA,Y,SBrkr,880,680,140,1700,1,0,2,1,2,1,Gd,7,Typ,0,NA,Basment,1980,Fin,1,450,Gd,TA,Y,188,36,0,0,200,0,NA,NA,NA,0,4,2006,WD,Normal +2820,20,RL,75,9375,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,5,1954,1954,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,Rec,799,Unf,0,168,967,GasA,Ex,Y,SBrkr,1350,0,0,1350,0,0,1,1,3,1,TA,6,Typ,1,Gd,Attchd,1954,RFn,2,504,TA,TA,Y,237,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2821,50,RL,62,6488,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,5,5,1942,1950,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,LwQ,230,Unf,0,569,799,GasA,Ex,N,FuseA,799,351,0,1150,0,0,1,0,3,1,TA,6,Mod,2,TA,BuiltIn,1942,Unf,1,215,TA,TA,Y,264,0,0,0,0,0,NA,NA,NA,0,3,2006,WD,Family +2822,70,RL,114,19950,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,2Story,6,7,1928,1950,Gable,CompShg,WdShing,Plywood,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,672,672,GasA,Ex,Y,SBrkr,1337,672,0,2009,0,0,2,0,4,1,TA,8,Typ,2,Gd,2Types,1928,Unf,3,795,TA,TA,P,0,42,0,0,180,0,NA,NA,NA,0,12,2006,WD,Normal +2823,75,RL,60,19800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,2.5Unf,6,8,1935,1990,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Rec,425,Unf,0,1411,1836,GasA,Gd,Y,SBrkr,1836,1836,0,3672,0,0,3,1,5,1,Gd,7,Typ,2,Gd,Detchd,1993,Unf,2,836,TA,TA,Y,684,80,32,0,0,0,NA,NA,NA,0,12,2006,WD,Normal +2824,80,RL,78,11679,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,SLvl,5,5,1962,1962,Gable,CompShg,Plywood,Plywood,Stone,96,TA,TA,CBlock,TA,TA,Gd,ALQ,612,Rec,1164,0,1776,GasA,Ex,Y,SBrkr,1560,0,0,1560,0,1,2,0,3,1,TA,6,Min2,1,Fa,Attchd,1962,Fin,2,528,TA,TA,Y,453,253,144,0,0,0,NA,MnPrv,NA,0,5,2006,WD,Normal +2825,20,RL,80,12048,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,6,1952,2002,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,232,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,Gd,Y,SBrkr,1488,0,0,1488,0,0,1,0,3,1,TA,7,Typ,1,Ex,Attchd,2002,RFn,2,569,TA,TA,Y,0,189,36,0,348,0,NA,NA,NA,0,4,2006,WD,Normal +2826,20,RL,70,10519,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,8,1955,1999,Hip,CompShg,MetalSd,MetalSd,Stone,164,TA,TA,CBlock,TA,TA,Mn,Unf,0,Unf,0,1057,1057,GasA,Gd,Y,SBrkr,1057,0,0,1057,0,1,1,0,3,1,Gd,6,Typ,0,NA,Attchd,1955,Unf,1,288,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal +2827,50,RL,75,9525,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,6,5,1953,1953,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,LwQ,468,Unf,0,532,1000,GasA,TA,Y,SBrkr,1068,541,0,1609,0,0,1,1,5,1,TA,7,Typ,0,NA,Attchd,1953,Unf,1,305,Fa,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2828,60,RL,88,12128,Pave,NA,IR1,Bnk,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,4,1989,1989,Gable,CompShg,HdBoard,HdBoard,BrkFace,232,Gd,TA,CBlock,Gd,TA,No,ALQ,549,Unf,0,319,868,GasA,Ex,Y,SBrkr,1313,1246,0,2559,0,0,2,1,4,1,Ex,9,Typ,1,TA,Attchd,1989,RFn,2,506,TA,TA,Y,0,245,0,0,168,0,NA,MnPrv,NA,0,11,2006,WD,Abnorml +2829,90,RL,73,9069,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,Duplex,SFoyer,6,8,1993,1993,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,Gd,PConc,Gd,TA,Av,LwQ,261,GLQ,1083,0,1344,GasA,Gd,Y,SBrkr,1440,0,0,1440,2,0,2,0,2,2,Gd,8,Typ,0,NA,Attchd,1993,Unf,4,920,TA,TA,Y,288,0,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal +2830,60,RL,133,11003,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1308,1308,GasA,Ex,Y,SBrkr,1308,568,0,1876,0,0,2,1,3,1,Gd,7,Typ,0,NA,BuiltIn,2005,RFn,3,848,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,7,2006,New,Partial +2831,20,RL,64,7488,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,393,Unf,0,815,1208,GasA,Ex,Y,SBrkr,1208,0,0,1208,0,0,2,0,2,1,Gd,6,Typ,0,NA,Attchd,2005,RFn,2,632,TA,TA,Y,105,58,0,0,0,0,NA,NA,NA,0,2,2006,WD,Abnorml +2832,20,RL,90,13377,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,6,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,1576,Unf,0,260,1836,GasA,Gd,Y,SBrkr,1846,0,0,1846,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2006,RFn,2,495,TA,TA,Y,0,32,0,0,0,0,NA,NA,NA,0,7,2006,New,Partial +2833,20,RL,78,11645,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2005,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,198,Gd,TA,PConc,Ex,TA,Gd,GLQ,1122,Unf,0,448,1570,GasA,Ex,Y,SBrkr,1590,0,0,1590,1,0,2,1,2,1,Ex,6,Typ,0,NA,Attchd,2005,Fin,3,754,TA,TA,Y,176,80,0,0,0,0,NA,NA,NA,0,8,2006,New,Partial +2834,60,RL,91,10984,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Gd,Unf,0,Unf,0,945,945,GasA,Ex,Y,SBrkr,945,864,0,1809,0,0,2,1,3,1,Gd,8,Typ,0,NA,Attchd,2005,RFn,2,638,TA,TA,Y,144,54,0,0,0,0,NA,NA,NA,0,5,2006,New,Partial +2835,20,RL,78,9316,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,140,Gd,TA,PConc,Gd,TA,Gd,GLQ,56,Unf,0,1558,1614,GasA,Ex,Y,SBrkr,1614,0,0,1614,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2005,Fin,2,576,TA,TA,Y,100,45,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal +2836,60,RL,78,9316,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,532,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,784,784,GasA,Ex,Y,SBrkr,784,812,0,1596,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2005,RFn,2,610,TA,TA,Y,144,45,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2837,20,RL,80,12000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,ClearCr,Norm,Norm,1Fam,1Story,6,5,1968,1968,Gable,CompShg,Plywood,Plywood,None,0,TA,Fa,CBlock,Gd,Fa,No,LwQ,853,Unf,0,535,1388,GasA,Gd,Y,SBrkr,1388,0,0,1388,1,0,2,0,3,1,TA,6,Typ,1,Po,Attchd,1968,RFn,2,522,TA,TA,Y,0,58,0,0,0,0,NA,NA,NA,0,7,2006,COD,Abnorml +2838,20,RL,95,13015,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,6,1996,1996,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,PConc,Gd,TA,No,Unf,0,Unf,0,1100,1100,GasA,Ex,Y,SBrkr,1100,0,0,1100,0,0,1,1,3,1,TA,5,Typ,0,NA,Attchd,1996,RFn,2,462,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2839,60,RL,65,12438,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,PosN,Norm,1Fam,2Story,6,5,1995,1995,Gable,CompShg,VinylSd,VinylSd,BrkFace,68,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,781,781,GasA,Ex,Y,SBrkr,795,704,0,1499,0,0,2,1,3,1,Gd,6,Typ,1,TA,Attchd,1995,RFn,2,473,TA,TA,Y,413,91,0,0,0,0,NA,NA,NA,0,8,2006,WD,Normal +2840,20,RL,NA,8685,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Mn,GLQ,846,Unf,0,579,1425,GasA,Ex,Y,SBrkr,1425,0,0,1425,1,0,2,0,3,1,TA,5,Typ,0,NA,Attchd,1998,RFn,2,591,TA,TA,Y,0,130,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2841,60,RL,68,9272,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,500,Unf,0,342,842,GasA,Ex,Y,SBrkr,856,893,0,1749,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,1999,RFn,2,515,TA,TA,Y,140,85,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2842,60,RL,72,13426,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,1999,2000,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Mn,GLQ,894,Unf,0,57,951,GasA,Ex,Y,SBrkr,951,828,0,1779,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1999,Fin,2,586,TA,TA,Y,208,107,0,0,0,0,NA,NA,NA,0,9,2006,WD,Normal +2843,60,RL,50,8340,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,6,6,1977,1977,Gable,CompShg,HdBoard,Plywood,BrkFace,62,TA,TA,CBlock,Gd,TA,Av,GLQ,509,Unf,0,166,675,GasA,TA,Y,SBrkr,686,702,0,1388,0,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1977,Unf,1,317,TA,TA,Y,406,36,0,0,0,0,NA,NA,NA,0,12,2006,WD,Normal +2844,80,RL,42,10385,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,SLvl,6,6,1978,1978,Gable,CompShg,HdBoard,HdBoard,BrkFace,123,TA,TA,CBlock,TA,Gd,Av,ALQ,595,LwQ,400,0,995,GasA,TA,Y,SBrkr,1282,0,0,1282,0,1,2,0,3,1,TA,6,Typ,0,NA,Detchd,1989,Unf,3,672,Fa,TA,Y,386,0,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal +2845,20,RL,60,7200,Pave,NA,Reg,Low,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,8,1972,1972,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,437,Unf,0,427,864,GasA,Ex,Y,SBrkr,864,0,0,864,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1977,Unf,1,297,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,3,2006,WD,Normal +2846,60,RL,NA,9930,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,199,Gd,TA,PConc,Gd,TA,No,GLQ,456,Unf,0,370,826,GasA,Ex,Y,SBrkr,878,884,0,1762,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2002,Fin,2,591,TA,TA,Y,320,54,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2847,60,RL,45,9468,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,2Story,6,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,BrkFace,148,TA,TA,PConc,Gd,TA,Mn,GLQ,639,Unf,0,201,840,GasA,Ex,Y,SBrkr,840,915,0,1755,1,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1999,RFn,2,530,TA,TA,Y,176,73,0,0,0,0,NA,NA,NA,0,8,2006,WD,Normal +2848,20,RL,NA,11088,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2002,2002,Hip,CompShg,Stucco,Stucco,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,872,Unf,0,476,1348,GasA,Ex,Y,SBrkr,1358,0,0,1358,1,0,1,1,1,1,Gd,5,Typ,1,TA,Attchd,2002,Unf,2,418,TA,TA,Y,68,166,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2849,60,RL,70,8726,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,872,872,GasA,Ex,Y,SBrkr,872,1037,0,1909,0,0,2,1,4,1,Gd,8,Typ,0,NA,BuiltIn,2002,RFn,2,529,TA,TA,Y,0,108,0,0,0,0,NA,NA,NA,0,9,2006,WD,Normal +2850,60,RL,67,10566,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,BrkFace,261,Gd,TA,PConc,Gd,TA,Av,GLQ,920,Unf,0,170,1090,GasA,Ex,Y,SBrkr,1090,1124,0,2214,1,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1999,Fin,3,646,TA,TA,Y,197,80,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2851,60,RL,NA,21533,Pave,NA,IR2,Lvl,AllPub,FR2,Gtl,CollgCr,Feedr,Norm,1Fam,2Story,7,5,1996,1997,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1065,1065,GasA,Ex,Y,SBrkr,1065,984,0,2049,0,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1997,Unf,2,467,TA,TA,Y,120,48,0,0,0,0,NA,NA,NA,0,8,2006,WD,Normal +2852,60,RL,90,11250,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,227,TA,TA,PConc,Gd,TA,Mn,ALQ,796,Unf,0,258,1054,GasA,Ex,Y,SBrkr,1070,869,0,1939,0,1,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1998,RFn,3,555,TA,TA,Y,128,84,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2853,60,RL,90,11250,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,1995,1996,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,Gd,PConc,Gd,Gd,Av,GLQ,685,Unf,0,245,930,GasA,Ex,Y,SBrkr,950,1045,0,1995,1,0,2,1,4,1,Gd,8,Typ,1,TA,Attchd,1995,RFn,2,610,TA,TA,Y,275,170,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2854,120,RM,37,4435,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,TwnhsE,1Story,6,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,170,Gd,TA,PConc,Gd,TA,Av,GLQ,717,Unf,0,131,848,GasA,Ex,Y,SBrkr,848,0,0,848,1,0,1,0,1,1,Gd,4,Typ,0,NA,Attchd,2003,Fin,2,420,TA,TA,Y,140,0,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal +2855,20,RL,70,8810,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,1000,Unf,0,390,1390,GasA,Ex,Y,SBrkr,1390,0,0,1390,1,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2003,RFn,2,545,TA,TA,Y,0,68,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal +2856,60,RL,74,8581,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,Gd,Mn,Unf,0,Unf,0,851,851,GasA,Ex,Y,SBrkr,851,886,0,1737,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2006,RFn,2,578,TA,TA,Y,0,105,0,0,0,0,NA,NA,NA,0,8,2006,New,Partial +2857,60,RL,70,8400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,784,784,GasA,Ex,Y,SBrkr,784,827,0,1611,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2005,RFn,2,572,TA,TA,Y,144,36,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal +2858,20,RL,65,8772,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Mn,GLQ,996,Unf,0,340,1336,GasA,Ex,Y,SBrkr,1336,0,0,1336,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2005,Unf,2,502,TA,TA,Y,136,43,0,0,0,0,NA,NA,NA,0,9,2006,New,Partial +2859,70,RL,67,8777,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Edwards,Feedr,Norm,1Fam,2Story,4,6,1910,2000,Gable,CompShg,Plywood,Plywood,None,0,TA,Gd,CBlock,Gd,TA,No,Rec,173,BLQ,337,166,676,GasA,Gd,Y,SBrkr,760,676,0,1436,1,0,2,0,3,1,TA,6,Min1,0,NA,Attchd,1950,Unf,2,528,TA,TA,Y,147,0,0,0,0,0,NA,NA,Shed,420,10,2006,WD,Normal +2860,90,RL,38,7840,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Edwards,Norm,Norm,Duplex,SFoyer,6,5,1975,1975,Flat,Tar&Grv,Plywood,Wd Shng,BrkFace,355,TA,TA,CBlock,Gd,TA,Gd,GLQ,976,Unf,0,0,976,GasA,TA,Y,SBrkr,1012,0,0,1012,0,2,2,0,4,0,TA,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2006,WD,AdjLand +2861,20,RL,73,16133,Pave,NA,Reg,HLS,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,4,1969,1969,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,Gd,TA,Mn,ALQ,847,Unf,0,329,1176,GasA,TA,Y,SBrkr,1176,0,0,1176,1,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1969,Unf,1,360,TA,TA,Y,0,92,0,0,112,0,NA,NA,NA,0,12,2006,WD,Abnorml +2862,60,RL,62,7162,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,2Story,7,5,2003,2004,Hip,CompShg,HdBoard,Stucco,BrkFace,190,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,796,796,GasA,Ex,Y,SBrkr,806,918,0,1724,0,0,2,1,3,1,Gd,8,Typ,1,Gd,BuiltIn,2003,Fin,2,616,TA,TA,Y,168,57,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2863,20,RL,75,8050,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,6,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,NA,NA,TA,TA,PConc,Gd,TA,Av,GLQ,475,ALQ,297,142,914,GasA,Ex,Y,SBrkr,914,0,0,914,1,0,1,0,2,1,Gd,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,32,0,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal +2864,60,RL,90,11060,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,2Story,7,5,2003,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1150,1150,GasA,Ex,Y,SBrkr,1164,1150,0,2314,0,0,2,1,3,1,Gd,9,Typ,1,Ex,BuiltIn,2003,Fin,2,502,TA,TA,Y,0,274,0,0,0,0,NA,NA,NA,0,2,2006,ConLD,Normal +2865,180,RM,35,3675,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,TwnhsE,SFoyer,6,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,82,TA,TA,PConc,Gd,TA,Gd,GLQ,547,Unf,0,0,547,GasA,Gd,Y,SBrkr,1072,0,0,1072,1,0,1,0,2,1,TA,5,Typ,0,NA,Basment,2005,Fin,2,525,TA,TA,Y,0,44,0,0,0,0,NA,NA,NA,0,10,2006,New,Partial +2866,160,RM,24,2522,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,Twnhs,2Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,Stone,50,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,970,970,GasA,Ex,Y,SBrkr,970,739,0,1709,0,0,2,0,3,1,Gd,7,Maj1,0,NA,Detchd,2004,Unf,2,380,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2867,50,RL,56,6956,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,4,7,1948,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,Fa,TA,Mn,Unf,0,Unf,0,624,624,GasA,Ex,Y,SBrkr,624,312,0,936,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1948,Unf,1,265,TA,Po,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal +2868,50,RL,72,7822,Pave,NA,Reg,Bnk,AllPub,Corner,Gtl,Edwards,Artery,Norm,1Fam,1.5Fin,6,3,1915,1950,Gable,CompShg,AsbShng,AsbShng,None,0,TA,Fa,BrkTil,Fa,Fa,No,Unf,0,Unf,0,832,832,GasA,TA,Y,FuseF,846,492,0,1338,0,0,2,0,3,1,TA,7,Typ,0,NA,Detchd,1974,Unf,2,528,TA,TA,N,0,0,208,0,0,0,NA,GdPrv,NA,0,5,2006,WD,AdjLand +2869,50,RL,62,8707,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Edwards,Feedr,Norm,1Fam,1.5Fin,4,5,1924,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,1093,1093,GasA,TA,N,FuseF,1093,576,0,1669,0,0,1,1,4,1,TA,9,Min2,0,NA,Attchd,1924,Unf,1,288,Fa,TA,Y,0,0,56,0,0,0,NA,NA,NA,0,5,2006,WD,AdjLand +2870,20,RL,60,16012,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,4,1954,1968,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,60,TA,TA,CBlock,TA,TA,No,Rec,691,Unf,0,263,954,GasA,Ex,Y,SBrkr,1482,0,0,1482,0,1,2,0,3,1,TA,6,Min1,1,Gd,2Types,1956,Unf,2,609,TA,TA,Y,0,30,0,0,0,0,NA,MnPrv,NA,0,10,2006,WD,Abnorml +2871,50,RL,45,8248,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,4,4,1922,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,864,864,GasA,TA,N,SBrkr,964,0,450,1414,0,0,1,0,3,1,TA,8,Typ,1,Gd,NA,NA,NA,0,0,NA,NA,N,0,0,112,0,0,0,NA,NA,NA,0,9,2006,COD,Abnorml +2872,30,RL,60,8088,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Feedr,Norm,1Fam,1Story,2,3,1922,1955,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,498,498,GasA,TA,N,FuseF,498,0,0,498,0,0,1,0,1,1,TA,3,Typ,0,NA,Detchd,1922,Unf,1,216,Fa,Fa,N,0,0,100,0,0,0,NA,NA,NA,0,2,2006,ConLD,Normal +2873,50,RL,76,11388,Pave,NA,Reg,Low,AllPub,Inside,Mod,Edwards,Norm,Norm,1Fam,1.5Fin,4,7,1910,1993,Gable,CompShg,VinylSd,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,616,616,GasA,TA,N,SBrkr,1055,218,0,1273,0,0,1,0,3,1,Gd,5,Min2,0,NA,Detchd,1910,Unf,1,275,TA,Fa,N,212,0,0,0,0,0,NA,NA,NA,0,9,2006,WD,Normal +2874,50,RL,60,10890,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1.5Fin,5,5,1938,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,Fa,TA,No,LwQ,930,Unf,0,128,1058,GasA,TA,Y,SBrkr,1058,493,0,1551,1,0,2,0,3,1,Fa,6,Typ,0,NA,Detchd,1938,Unf,1,240,Fa,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,7,2006,WD,Normal +2875,190,RH,58,6430,Pave,NA,Reg,Bnk,AllPub,Corner,Gtl,SWISU,Feedr,Norm,2fmCon,1.5Fin,6,6,1945,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Av,BLQ,780,Unf,0,0,780,GasA,TA,N,FuseF,816,524,0,1340,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1945,Unf,1,440,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Abnorml +2876,70,RL,43,7000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Feedr,Norm,1Fam,2Story,7,8,1926,1997,Gable,CompShg,Wd Sdng,Stucco,None,0,TA,TA,BrkTil,TA,TA,No,ALQ,424,Unf,0,200,624,GasA,Ex,Y,SBrkr,743,736,0,1479,1,0,1,0,3,1,Gd,6,Typ,2,Gd,Detchd,1926,Unf,1,312,TA,TA,Y,530,0,56,0,0,0,NA,MnPrv,NA,0,5,2006,WD,Normal +2877,70,RL,69,4899,Pave,NA,Reg,HLS,AllPub,Corner,Gtl,SWISU,Norm,Norm,1Fam,2Story,6,8,1920,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,No,BLQ,305,Unf,0,450,755,GasA,Ex,Y,SBrkr,755,755,0,1510,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1920,Unf,1,216,TA,TA,Y,0,0,164,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2878,70,RL,54,9399,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2.5Unf,7,8,1919,1950,Gable,CompShg,MetalSd,Stucco,None,0,TA,TA,BrkTil,TA,TA,Mn,Unf,0,Unf,0,818,818,GasA,TA,Y,SBrkr,818,818,0,1636,0,0,1,1,4,1,Gd,7,Typ,1,Gd,Detchd,1919,Unf,1,288,Fa,TA,N,0,0,212,0,0,0,NA,NA,NA,0,9,2006,WD,Abnorml +2879,50,RL,84,10164,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1.5Fin,5,5,1939,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,Fa,Av,LwQ,646,Unf,0,346,992,GasA,Fa,Y,SBrkr,992,473,0,1465,0,0,2,0,3,1,TA,6,Typ,2,TA,Detchd,1939,Unf,1,240,TA,TA,Y,0,126,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal +2880,50,RL,51,6191,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,SWISU,Norm,Norm,1Fam,1.5Fin,5,4,1941,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,Fa,Fa,No,LwQ,384,Unf,0,440,824,GasA,TA,N,SBrkr,824,464,0,1288,0,0,1,0,4,1,TA,6,Typ,0,NA,Detchd,1941,Unf,1,240,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2006,WD,Normal +2881,50,RL,66,21780,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,6,5,1920,1950,Gable,CompShg,Wd Sdng,Wd Shng,None,0,TA,TA,PConc,TA,Fa,No,Unf,0,Unf,0,817,817,GasA,Gd,Y,FuseF,940,610,0,1550,0,0,1,1,3,1,TA,7,Min2,1,TA,Detchd,1937,Unf,1,318,TA,TA,P,0,0,429,0,0,0,NA,MnPrv,NA,0,9,2006,WD,Normal +2882,50,RL,80,12400,Pave,NA,Reg,HLS,AllPub,Inside,Mod,Crawfor,Norm,Norm,1Fam,1.5Fin,5,6,1940,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,Gd,TA,Mn,BLQ,602,Unf,0,299,901,GasA,TA,Y,SBrkr,1125,592,0,1717,0,0,1,1,2,1,TA,7,Typ,1,Gd,Attchd,1940,Unf,1,410,TA,TA,Y,0,0,0,0,113,0,NA,NA,NA,0,2,2006,WD,Normal +2883,50,RL,81,8170,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1.5Fin,7,7,1929,1950,Gable,CompShg,Stucco,Wd Sdng,BrkFace,270,Gd,Gd,BrkTil,TA,TA,No,ALQ,526,Unf,0,496,1022,GasA,Ex,Y,FuseA,1122,549,0,1671,0,0,2,0,4,1,TA,7,Typ,1,Gd,Detchd,1963,Unf,2,451,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,2,2006,WD,Normal +2884,70,RL,70,12320,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,7,7,1932,1990,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,637,637,GasA,Ex,Y,SBrkr,959,650,0,1609,0,0,1,1,3,1,Gd,8,Typ,2,Gd,2Types,1963,Unf,3,579,TA,TA,Y,0,0,0,0,104,0,NA,GdWo,NA,0,5,2006,WD,Normal +2885,70,RL,70,14210,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,6,7,1930,1959,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,697,697,GasA,Ex,Y,SBrkr,1104,697,0,1801,0,0,1,1,3,1,TA,8,Typ,1,Gd,Attchd,1930,Unf,2,365,Fa,TA,Y,0,90,0,0,0,0,NA,MnPrv,NA,0,11,2006,WD,Normal +2886,60,RL,78,15600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,5,7,1950,1963,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,405,TA,Gd,CBlock,Gd,TA,No,GLQ,760,Unf,0,408,1168,GasA,Gd,Y,SBrkr,1278,1037,0,2315,1,0,2,0,4,1,TA,9,Typ,3,Gd,Attchd,1950,Fin,1,342,TA,TA,Y,0,0,0,0,192,0,NA,NA,NA,0,7,2006,WD,Normal +2887,30,RM,50,7288,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Artery,Norm,1Fam,1Story,5,6,1942,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,Mn,Rec,305,Unf,0,671,976,GasA,TA,N,SBrkr,976,0,0,976,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1942,Unf,1,215,TA,TA,N,160,0,0,0,0,0,NA,NA,NA,0,8,2006,WD,AdjLand +2888,50,RM,50,7000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,6,7,1926,1950,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,No,ALQ,374,Unf,0,487,861,GasA,Ex,Y,SBrkr,861,424,0,1285,0,1,1,0,3,1,TA,6,Typ,0,NA,Detchd,1950,Fin,2,506,TA,TA,Y,96,0,132,0,0,0,NA,MnPrv,NA,0,5,2006,WD,Normal +2889,30,RM,61,8534,Pave,NA,Reg,Low,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,4,4,1925,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Fa,TA,No,Unf,0,Unf,0,432,432,GasA,TA,N,FuseA,672,0,0,672,0,0,1,0,2,1,TA,4,Min1,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,112,0,0,0,NA,GdWo,NA,0,6,2006,WD,Normal +2890,30,RM,50,7030,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,4,6,1925,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,641,641,GasA,Gd,Y,SBrkr,641,0,0,641,0,0,1,0,2,1,Fa,4,Typ,0,NA,Detchd,1925,Unf,1,272,TA,TA,N,184,0,70,0,0,0,NA,MnPrv,NA,0,3,2006,WD,Normal +2891,50,RM,75,9060,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,6,5,1957,1957,Gable,CompShg,MetalSd,MetalSd,BrkFace,327,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,967,967,GasA,Gd,Y,SBrkr,967,671,0,1638,0,0,2,0,4,1,Gd,6,Typ,0,NA,Detchd,1957,Unf,1,384,TA,TA,Y,0,21,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal +2892,30,C (all),69,12366,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Feedr,Norm,1Fam,1Story,3,5,1945,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,N,SBrkr,729,0,0,729,0,0,1,0,2,1,TA,5,Mod,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,23,0,0,0,NA,NA,NA,0,10,2006,WD,Abnorml +2893,190,C (all),50,9000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,2fmCon,1.5Fin,5,6,1951,1951,Gable,CompShg,WdShing,Wd Shng,None,0,Fa,Fa,CBlock,TA,TA,Mn,Unf,0,Unf,0,660,660,GasA,TA,N,SBrkr,1060,336,0,1396,0,0,2,0,4,2,TA,8,Min2,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2006,WD,Abnorml +2894,50,C (all),60,8520,Grvl,NA,Reg,Bnk,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,3,5,1916,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,Fa,Fa,No,Unf,0,Unf,0,216,216,GasA,Fa,N,SBrkr,576,360,0,936,0,0,1,0,2,1,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal +2895,120,RM,41,5748,Pave,NA,IR1,HLS,AllPub,Inside,Mod,Crawfor,Norm,Norm,TwnhsE,1Story,8,5,2005,2006,Hip,CompShg,CemntBd,CmentBd,Stone,473,Gd,TA,PConc,Ex,TA,Gd,GLQ,1573,Unf,0,0,1573,GasA,Ex,Y,SBrkr,1778,0,0,1778,2,0,2,0,2,1,Ex,5,Typ,1,Gd,Attchd,2005,Fin,2,495,TA,TA,Y,123,53,0,0,153,0,NA,NA,NA,0,2,2006,New,Partial +2896,120,RM,44,3842,Pave,NA,IR1,HLS,AllPub,Inside,Mod,Crawfor,Norm,Norm,TwnhsE,1Story,8,5,2004,2005,Hip,CompShg,CemntBd,CmentBd,Stone,186,Gd,TA,PConc,Ex,TA,Gd,GLQ,1564,Unf,0,30,1594,GasA,Ex,Y,SBrkr,1646,0,0,1646,1,1,2,0,2,1,Gd,5,Typ,1,Gd,Attchd,2004,Fin,2,525,TA,TA,Y,128,53,0,0,155,0,NA,NA,NA,0,12,2006,WD,Normal +2897,20,RL,69,23580,Pave,NA,IR1,Lvl,AllPub,Inside,Mod,Mitchel,Norm,Norm,1Fam,1Story,6,6,1979,1979,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,Gd,GLQ,776,Unf,0,849,1625,GasA,TA,Y,SBrkr,1625,0,0,1625,0,1,2,0,3,1,Fa,6,Typ,1,TA,Attchd,1979,Fin,2,576,TA,TA,Y,136,28,0,0,0,0,NA,NA,NA,0,9,2006,WD,Normal +2898,90,RL,65,8385,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,Duplex,1Story,6,5,1978,1978,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,Mn,Unf,0,Unf,0,1664,1664,GasA,TA,Y,SBrkr,1664,0,0,1664,0,0,2,0,4,2,TA,10,Typ,0,NA,2Types,1978,Unf,2,616,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal +2899,20,RL,70,9116,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Mitchel,Norm,Norm,1Fam,1Story,8,5,2001,2001,Hip,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1491,1491,GasA,Ex,Y,SBrkr,1491,0,0,1491,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2001,RFn,2,490,TA,TA,Y,120,100,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2900,80,RL,140,11080,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Mitchel,Norm,Norm,1Fam,SLvl,6,6,1975,1975,Gable,CompShg,Plywood,Plywood,BrkFace,257,TA,TA,CBlock,TA,TA,Av,GLQ,576,Unf,0,552,1128,GasA,TA,Y,SBrkr,1210,0,0,1210,1,0,2,0,3,1,TA,6,Typ,0,NA,Attchd,1975,Unf,2,528,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2901,20,RL,NA,50102,Pave,NA,IR1,Low,AllPub,Inside,Mod,Timber,Norm,Norm,1Fam,1Story,6,5,1958,1958,Gable,Tar&Grv,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,Gd,BLQ,909,Unf,0,723,1632,GasA,TA,Y,SBrkr,1650,0,0,1650,1,0,1,0,2,1,TA,6,Typ,2,Gd,Attchd,1958,Unf,2,518,TA,TA,Y,0,0,0,0,138,0,NA,NA,NA,0,3,2006,WD,Alloca +2902,20,RL,NA,8098,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,6,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,Wood,Gd,TA,Av,GLQ,1136,BLQ,116,129,1381,GasA,Ex,Y,SBrkr,1403,0,0,1403,1,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,2000,Unf,2,470,TA,TA,Y,0,173,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal +2903,20,RL,95,13618,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,Stone,198,Gd,TA,PConc,Ex,Gd,Av,GLQ,1350,Unf,0,378,1728,GasA,Ex,Y,SBrkr,1960,0,0,1960,1,0,2,0,3,1,Gd,8,Typ,2,Gd,Attchd,2005,Fin,3,714,TA,TA,Y,172,38,0,0,0,0,NA,NA,NA,0,11,2006,New,Partial +2904,20,RL,88,11577,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,9,5,2005,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,382,Ex,TA,PConc,Gd,TA,Gd,GLQ,1455,Unf,0,383,1838,GasA,Ex,Y,SBrkr,1838,0,0,1838,1,0,2,0,3,1,Ex,9,Typ,1,Gd,Attchd,2005,Fin,3,682,TA,TA,Y,161,225,0,0,0,0,NA,NA,NA,0,9,2006,New,Partial +2905,20,NA,125,31250,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Artery,Norm,1Fam,1Story,1,3,1951,1951,Gable,CompShg,CBlock,VinylSd,None,0,TA,Fa,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,FuseA,1600,0,0,1600,0,0,1,1,3,1,TA,6,Mod,0,NA,Attchd,1951,Unf,1,270,Fa,TA,N,0,0,135,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2906,90,RM,78,7020,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,Duplex,SFoyer,7,5,1997,1997,Gable,CompShg,MetalSd,MetalSd,BrkFace,200,TA,Gd,PConc,Gd,TA,Gd,GLQ,1243,Unf,0,45,1288,GasA,Gd,Y,SBrkr,1368,0,0,1368,2,0,2,0,2,2,TA,8,Typ,0,NA,Attchd,1997,Fin,4,784,TA,TA,Y,0,48,0,0,0,0,NA,NA,NA,0,11,2006,WD,Normal +2907,160,RM,41,2665,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,2Story,5,6,1977,1977,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,264,264,GasA,TA,Y,SBrkr,616,688,0,1304,0,0,1,1,3,1,TA,5,Typ,1,TA,BuiltIn,1977,RFn,1,336,TA,TA,Y,141,0,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2908,20,RL,58,10172,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,7,1968,2003,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,441,Unf,0,423,864,GasA,Ex,Y,SBrkr,874,0,0,874,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1968,RFn,1,288,TA,TA,Y,0,120,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal +2909,90,RL,NA,11836,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Mitchel,Norm,Norm,Duplex,1Story,5,5,1970,1970,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,BLQ,149,Unf,0,1503,1652,GasA,TA,Y,SBrkr,1652,0,0,1652,0,0,2,0,4,2,TA,8,Typ,0,NA,2Types,1970,Unf,3,928,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal +2910,180,RM,21,1470,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,SFoyer,4,6,1970,1970,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,Gd,TA,Av,GLQ,522,Unf,0,108,630,GasA,TA,Y,SBrkr,630,0,0,630,1,0,1,0,1,1,TA,3,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal +2911,160,RM,21,1484,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,2Story,4,4,1972,1972,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,TA,TA,No,Rec,252,Unf,0,294,546,GasA,TA,Y,SBrkr,546,546,0,1092,0,0,1,1,3,1,TA,5,Typ,0,NA,Attchd,1972,Unf,1,253,TA,Fa,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2912,20,RL,80,13384,Pave,NA,Reg,Lvl,AllPub,Inside,Mod,Mitchel,Norm,Norm,1Fam,1Story,5,5,1969,1979,Gable,CompShg,Plywood,Plywood,BrkFace,194,TA,TA,PConc,TA,TA,Av,Rec,119,BLQ,344,641,1104,GasA,Fa,Y,SBrkr,1360,0,0,1360,1,0,1,0,3,1,TA,8,Typ,1,TA,Attchd,1969,RFn,1,336,TA,TA,Y,160,0,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal +2913,160,RM,21,1533,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,2Story,4,5,1970,1970,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,TA,TA,No,Rec,408,Unf,0,138,546,GasA,TA,Y,SBrkr,546,546,0,1092,0,0,1,1,3,1,TA,5,Typ,0,NA,CarPort,1970,Unf,1,286,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,12,2006,WD,Abnorml +2914,160,RM,21,1526,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,2Story,4,5,1970,1970,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,546,546,GasA,TA,Y,SBrkr,546,546,0,1092,0,0,1,1,3,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,34,0,0,0,0,NA,GdPrv,NA,0,6,2006,WD,Normal +2915,160,RM,21,1936,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,2Story,4,7,1970,1970,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,546,546,GasA,Gd,Y,SBrkr,546,546,0,1092,0,0,1,1,3,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal +2916,160,RM,21,1894,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,2Story,4,5,1970,1970,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,TA,TA,No,Rec,252,Unf,0,294,546,GasA,TA,Y,SBrkr,546,546,0,1092,0,0,1,1,3,1,TA,6,Typ,0,NA,CarPort,1970,Unf,1,286,TA,TA,Y,0,24,0,0,0,0,NA,NA,NA,0,4,2006,WD,Abnorml +2917,20,RL,160,20000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,7,1960,1996,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,1224,Unf,0,0,1224,GasA,Ex,Y,SBrkr,1224,0,0,1224,1,0,1,0,4,1,TA,7,Typ,1,TA,Detchd,1960,Unf,2,576,TA,TA,Y,474,0,0,0,0,0,NA,NA,NA,0,9,2006,WD,Abnorml +2918,85,RL,62,10441,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,SFoyer,5,5,1992,1992,Gable,CompShg,HdBoard,Wd Shng,None,0,TA,TA,PConc,Gd,TA,Av,GLQ,337,Unf,0,575,912,GasA,TA,Y,SBrkr,970,0,0,970,0,1,1,0,3,1,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,80,32,0,0,0,0,NA,MnPrv,Shed,700,7,2006,WD,Normal +2919,60,RL,74,9627,Pave,NA,Reg,Lvl,AllPub,Inside,Mod,Mitchel,Norm,Norm,1Fam,2Story,7,5,1993,1994,Gable,CompShg,HdBoard,HdBoard,BrkFace,94,TA,TA,PConc,Gd,TA,Av,LwQ,758,Unf,0,238,996,GasA,Ex,Y,SBrkr,996,1004,0,2000,0,0,2,1,3,1,TA,9,Typ,1,TA,Attchd,1993,Fin,3,650,TA,TA,Y,190,48,0,0,0,0,NA,NA,NA,0,11,2006,WD,Normal diff --git a/20 ML Algorithms For House Prices Prediction/train.csv b/20 ML Algorithms For House Prices Prediction/train.csv new file mode 100644 index 0000000..d68e0d7 --- /dev/null +++ b/20 ML Algorithms For House Prices Prediction/train.csv @@ -0,0 +1,1461 @@ +Id,MSSubClass,MSZoning,LotFrontage,LotArea,Street,Alley,LotShape,LandContour,Utilities,LotConfig,LandSlope,Neighborhood,Condition1,Condition2,BldgType,HouseStyle,OverallQual,OverallCond,YearBuilt,YearRemodAdd,RoofStyle,RoofMatl,Exterior1st,Exterior2nd,MasVnrType,MasVnrArea,ExterQual,ExterCond,Foundation,BsmtQual,BsmtCond,BsmtExposure,BsmtFinType1,BsmtFinSF1,BsmtFinType2,BsmtFinSF2,BsmtUnfSF,TotalBsmtSF,Heating,HeatingQC,CentralAir,Electrical,1stFlrSF,2ndFlrSF,LowQualFinSF,GrLivArea,BsmtFullBath,BsmtHalfBath,FullBath,HalfBath,BedroomAbvGr,KitchenAbvGr,KitchenQual,TotRmsAbvGrd,Functional,Fireplaces,FireplaceQu,GarageType,GarageYrBlt,GarageFinish,GarageCars,GarageArea,GarageQual,GarageCond,PavedDrive,WoodDeckSF,OpenPorchSF,EnclosedPorch,3SsnPorch,ScreenPorch,PoolArea,PoolQC,Fence,MiscFeature,MiscVal,MoSold,YrSold,SaleType,SaleCondition,SalePrice +1,60,RL,65,8450,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,196,Gd,TA,PConc,Gd,TA,No,GLQ,706,Unf,0,150,856,GasA,Ex,Y,SBrkr,856,854,0,1710,1,0,2,1,3,1,Gd,8,Typ,0,NA,Attchd,2003,RFn,2,548,TA,TA,Y,0,61,0,0,0,0,NA,NA,NA,0,2,2008,WD,Normal,208500 +2,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Veenker,Feedr,Norm,1Fam,1Story,6,8,1976,1976,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,Gd,TA,Gd,ALQ,978,Unf,0,284,1262,GasA,Ex,Y,SBrkr,1262,0,0,1262,0,1,2,0,3,1,TA,6,Typ,1,TA,Attchd,1976,RFn,2,460,TA,TA,Y,298,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,181500 +3,60,RL,68,11250,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2001,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,162,Gd,TA,PConc,Gd,TA,Mn,GLQ,486,Unf,0,434,920,GasA,Ex,Y,SBrkr,920,866,0,1786,1,0,2,1,3,1,Gd,6,Typ,1,TA,Attchd,2001,RFn,2,608,TA,TA,Y,0,42,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal,223500 +4,70,RL,60,9550,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Crawfor,Norm,Norm,1Fam,2Story,7,5,1915,1970,Gable,CompShg,Wd Sdng,Wd Shng,None,0,TA,TA,BrkTil,TA,Gd,No,ALQ,216,Unf,0,540,756,GasA,Gd,Y,SBrkr,961,756,0,1717,1,0,1,0,3,1,Gd,7,Typ,1,Gd,Detchd,1998,Unf,3,642,TA,TA,Y,0,35,272,0,0,0,NA,NA,NA,0,2,2006,WD,Abnorml,140000 +5,60,RL,84,14260,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,350,Gd,TA,PConc,Gd,TA,Av,GLQ,655,Unf,0,490,1145,GasA,Ex,Y,SBrkr,1145,1053,0,2198,1,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,2000,RFn,3,836,TA,TA,Y,192,84,0,0,0,0,NA,NA,NA,0,12,2008,WD,Normal,250000 +6,50,RL,85,14115,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1.5Fin,5,5,1993,1995,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,Wood,Gd,TA,No,GLQ,732,Unf,0,64,796,GasA,Ex,Y,SBrkr,796,566,0,1362,1,0,1,1,1,1,TA,5,Typ,0,NA,Attchd,1993,Unf,2,480,TA,TA,Y,40,30,0,320,0,0,NA,MnPrv,Shed,700,10,2009,WD,Normal,143000 +7,20,RL,75,10084,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,Stone,186,Gd,TA,PConc,Ex,TA,Av,GLQ,1369,Unf,0,317,1686,GasA,Ex,Y,SBrkr,1694,0,0,1694,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2004,RFn,2,636,TA,TA,Y,255,57,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,307000 +8,60,RL,NA,10382,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NWAmes,PosN,Norm,1Fam,2Story,7,6,1973,1973,Gable,CompShg,HdBoard,HdBoard,Stone,240,TA,TA,CBlock,Gd,TA,Mn,ALQ,859,BLQ,32,216,1107,GasA,Ex,Y,SBrkr,1107,983,0,2090,1,0,2,1,3,1,TA,7,Typ,2,TA,Attchd,1973,RFn,2,484,TA,TA,Y,235,204,228,0,0,0,NA,NA,Shed,350,11,2009,WD,Normal,200000 +9,50,RM,51,6120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1.5Fin,7,5,1931,1950,Gable,CompShg,BrkFace,Wd Shng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,952,952,GasA,Gd,Y,FuseF,1022,752,0,1774,0,0,2,0,2,2,TA,8,Min1,2,TA,Detchd,1931,Unf,2,468,Fa,TA,Y,90,0,205,0,0,0,NA,NA,NA,0,4,2008,WD,Abnorml,129900 +10,190,RL,50,7420,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,BrkSide,Artery,Artery,2fmCon,1.5Unf,5,6,1939,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,GLQ,851,Unf,0,140,991,GasA,Ex,Y,SBrkr,1077,0,0,1077,1,0,1,0,2,2,TA,5,Typ,2,TA,Attchd,1939,RFn,1,205,Gd,TA,Y,0,4,0,0,0,0,NA,NA,NA,0,1,2008,WD,Normal,118000 +11,20,RL,70,11200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1965,1965,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Rec,906,Unf,0,134,1040,GasA,Ex,Y,SBrkr,1040,0,0,1040,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1965,Unf,1,384,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,2,2008,WD,Normal,129500 +12,60,RL,85,11924,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2005,2006,Hip,CompShg,WdShing,Wd Shng,Stone,286,Ex,TA,PConc,Ex,TA,No,GLQ,998,Unf,0,177,1175,GasA,Ex,Y,SBrkr,1182,1142,0,2324,1,0,3,0,4,1,Ex,11,Typ,2,Gd,BuiltIn,2005,Fin,3,736,TA,TA,Y,147,21,0,0,0,0,NA,NA,NA,0,7,2006,New,Partial,345000 +13,20,RL,NA,12968,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,6,1962,1962,Hip,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,737,Unf,0,175,912,GasA,TA,Y,SBrkr,912,0,0,912,1,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1962,Unf,1,352,TA,TA,Y,140,0,0,0,176,0,NA,NA,NA,0,9,2008,WD,Normal,144000 +14,20,RL,91,10652,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,Stone,306,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1494,1494,GasA,Ex,Y,SBrkr,1494,0,0,1494,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2006,RFn,3,840,TA,TA,Y,160,33,0,0,0,0,NA,NA,NA,0,8,2007,New,Partial,279500 +15,20,RL,NA,10920,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1960,1960,Hip,CompShg,MetalSd,MetalSd,BrkFace,212,TA,TA,CBlock,TA,TA,No,BLQ,733,Unf,0,520,1253,GasA,TA,Y,SBrkr,1253,0,0,1253,1,0,1,1,2,1,TA,5,Typ,1,Fa,Attchd,1960,RFn,1,352,TA,TA,Y,0,213,176,0,0,0,NA,GdWo,NA,0,5,2008,WD,Normal,157000 +16,45,RM,51,6120,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,BrkSide,Norm,Norm,1Fam,1.5Unf,7,8,1929,2001,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,832,832,GasA,Ex,Y,FuseA,854,0,0,854,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1991,Unf,2,576,TA,TA,Y,48,112,0,0,0,0,NA,GdPrv,NA,0,7,2007,WD,Normal,132000 +17,20,RL,NA,11241,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,7,1970,1970,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,180,TA,TA,CBlock,TA,TA,No,ALQ,578,Unf,0,426,1004,GasA,Ex,Y,SBrkr,1004,0,0,1004,1,0,1,0,2,1,TA,5,Typ,1,TA,Attchd,1970,Fin,2,480,TA,TA,Y,0,0,0,0,0,0,NA,NA,Shed,700,3,2010,WD,Normal,149000 +18,90,RL,72,10791,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,Duplex,1Story,4,5,1967,1967,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,1296,0,0,1296,0,0,2,0,2,2,TA,6,Typ,0,NA,CarPort,1967,Unf,2,516,TA,TA,Y,0,0,0,0,0,0,NA,NA,Shed,500,10,2006,WD,Normal,90000 +19,20,RL,66,13695,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,RRAe,Norm,1Fam,1Story,5,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,TA,TA,No,GLQ,646,Unf,0,468,1114,GasA,Ex,Y,SBrkr,1114,0,0,1114,1,0,1,1,3,1,Gd,6,Typ,0,NA,Detchd,2004,Unf,2,576,TA,TA,Y,0,102,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,159000 +20,20,RL,70,7560,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1958,1965,Hip,CompShg,BrkFace,Plywood,None,0,TA,TA,CBlock,TA,TA,No,LwQ,504,Unf,0,525,1029,GasA,TA,Y,SBrkr,1339,0,0,1339,0,0,1,0,3,1,TA,6,Min1,0,NA,Attchd,1958,Unf,1,294,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,5,2009,COD,Abnorml,139000 +21,60,RL,101,14215,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,380,Gd,TA,PConc,Ex,TA,Av,Unf,0,Unf,0,1158,1158,GasA,Ex,Y,SBrkr,1158,1218,0,2376,0,0,3,1,4,1,Gd,9,Typ,1,Gd,BuiltIn,2005,RFn,3,853,TA,TA,Y,240,154,0,0,0,0,NA,NA,NA,0,11,2006,New,Partial,325300 +22,45,RM,57,7449,Pave,Grvl,Reg,Bnk,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Unf,7,7,1930,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,637,637,GasA,Ex,Y,FuseF,1108,0,0,1108,0,0,1,0,3,1,Gd,6,Typ,1,Gd,Attchd,1930,Unf,1,280,TA,TA,N,0,0,205,0,0,0,NA,GdPrv,NA,0,6,2007,WD,Normal,139400 +23,20,RL,75,9742,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2002,2002,Hip,CompShg,VinylSd,VinylSd,BrkFace,281,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1777,1777,GasA,Ex,Y,SBrkr,1795,0,0,1795,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2002,RFn,2,534,TA,TA,Y,171,159,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal,230000 +24,120,RM,44,4224,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,1Story,5,7,1976,1976,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,PConc,Gd,TA,No,GLQ,840,Unf,0,200,1040,GasA,TA,Y,SBrkr,1060,0,0,1060,1,0,1,0,3,1,TA,6,Typ,1,TA,Attchd,1976,Unf,2,572,TA,TA,Y,100,110,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,129900 +25,20,RL,NA,8246,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,8,1968,2001,Gable,CompShg,Plywood,Plywood,None,0,TA,Gd,CBlock,TA,TA,Mn,Rec,188,ALQ,668,204,1060,GasA,Ex,Y,SBrkr,1060,0,0,1060,1,0,1,0,3,1,Gd,6,Typ,1,TA,Attchd,1968,Unf,1,270,TA,TA,Y,406,90,0,0,0,0,NA,MnPrv,NA,0,5,2010,WD,Normal,154000 +26,20,RL,110,14230,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,640,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1566,1566,GasA,Ex,Y,SBrkr,1600,0,0,1600,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2007,RFn,3,890,TA,TA,Y,0,56,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,256300 +27,20,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1951,2000,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Mn,BLQ,234,Rec,486,180,900,GasA,TA,Y,SBrkr,900,0,0,900,0,1,1,0,3,1,Gd,5,Typ,0,NA,Detchd,2005,Unf,2,576,TA,TA,Y,222,32,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,134800 +28,20,RL,98,11478,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2007,2008,Gable,CompShg,VinylSd,VinylSd,Stone,200,Gd,TA,PConc,Ex,TA,No,GLQ,1218,Unf,0,486,1704,GasA,Ex,Y,SBrkr,1704,0,0,1704,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2008,RFn,3,772,TA,TA,Y,0,50,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,306000 +29,20,RL,47,16321,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1957,1997,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,Gd,BLQ,1277,Unf,0,207,1484,GasA,TA,Y,SBrkr,1600,0,0,1600,1,0,1,0,2,1,TA,6,Typ,2,Gd,Attchd,1957,RFn,1,319,TA,TA,Y,288,258,0,0,0,0,NA,NA,NA,0,12,2006,WD,Normal,207500 +30,30,RM,60,6324,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,BrkSide,Feedr,RRNn,1Fam,1Story,4,6,1927,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,520,520,GasA,Fa,N,SBrkr,520,0,0,520,0,0,1,0,1,1,Fa,4,Typ,0,NA,Detchd,1920,Unf,1,240,Fa,TA,Y,49,0,87,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,68500 +31,70,C (all),50,8500,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Feedr,Norm,1Fam,2Story,4,4,1920,1950,Gambrel,CompShg,BrkFace,BrkFace,None,0,TA,Fa,BrkTil,TA,TA,No,Unf,0,Unf,0,649,649,GasA,TA,N,SBrkr,649,668,0,1317,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1920,Unf,1,250,TA,Fa,N,0,54,172,0,0,0,NA,MnPrv,NA,0,7,2008,WD,Normal,40000 +32,20,RL,NA,8544,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,6,1966,2006,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1228,1228,GasA,Gd,Y,SBrkr,1228,0,0,1228,0,0,1,1,3,1,Gd,6,Typ,0,NA,Attchd,1966,Unf,1,271,TA,TA,Y,0,65,0,0,0,0,NA,MnPrv,NA,0,6,2008,WD,Normal,149350 +33,20,RL,85,11049,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,Av,Unf,0,Unf,0,1234,1234,GasA,Ex,Y,SBrkr,1234,0,0,1234,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2007,RFn,2,484,TA,TA,Y,0,30,0,0,0,0,NA,NA,NA,0,1,2008,WD,Normal,179900 +34,20,RL,70,10552,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1959,1959,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,Rec,1018,Unf,0,380,1398,GasA,Gd,Y,SBrkr,1700,0,0,1700,0,1,1,1,4,1,Gd,6,Typ,1,Gd,Attchd,1959,RFn,2,447,TA,TA,Y,0,38,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,165500 +35,120,RL,60,7313,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,9,5,2005,2005,Hip,CompShg,MetalSd,MetalSd,BrkFace,246,Ex,TA,PConc,Ex,TA,No,GLQ,1153,Unf,0,408,1561,GasA,Ex,Y,SBrkr,1561,0,0,1561,1,0,2,0,2,1,Ex,6,Typ,1,Gd,Attchd,2005,Fin,2,556,TA,TA,Y,203,47,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,277500 +36,60,RL,108,13418,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,Stone,132,Gd,TA,PConc,Ex,TA,Av,Unf,0,Unf,0,1117,1117,GasA,Ex,Y,SBrkr,1132,1320,0,2452,0,0,3,1,4,1,Gd,9,Typ,1,Gd,BuiltIn,2004,Fin,3,691,TA,TA,Y,113,32,0,0,0,0,NA,NA,NA,0,9,2006,WD,Normal,309000 +37,20,RL,112,10859,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,5,1994,1995,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1097,1097,GasA,Ex,Y,SBrkr,1097,0,0,1097,0,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1995,Unf,2,672,TA,TA,Y,392,64,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,145000 +38,20,RL,74,8532,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1954,1990,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,650,TA,TA,CBlock,TA,TA,No,Rec,1213,Unf,0,84,1297,GasA,Gd,Y,SBrkr,1297,0,0,1297,0,1,1,0,3,1,TA,5,Typ,1,TA,Attchd,1954,Fin,2,498,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal,153000 +39,20,RL,68,7922,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1953,2007,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,TA,No,GLQ,731,Unf,0,326,1057,GasA,TA,Y,SBrkr,1057,0,0,1057,1,0,1,0,3,1,Gd,5,Typ,0,NA,Detchd,1953,Unf,1,246,TA,TA,Y,0,52,0,0,0,0,NA,NA,NA,0,1,2010,WD,Abnorml,109000 +40,90,RL,65,6040,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,Duplex,1Story,4,5,1955,1955,Gable,CompShg,AsbShng,Plywood,None,0,TA,TA,PConc,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,N,FuseP,1152,0,0,1152,0,0,2,0,2,2,Fa,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,AdjLand,82000 +41,20,RL,84,8658,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1965,1965,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,101,TA,TA,CBlock,TA,TA,No,Rec,643,Unf,0,445,1088,GasA,Ex,Y,SBrkr,1324,0,0,1324,0,0,2,0,3,1,TA,6,Typ,1,TA,Attchd,1965,RFn,2,440,TA,TA,Y,0,138,0,0,0,0,NA,GdWo,NA,0,12,2006,WD,Abnorml,160000 +42,20,RL,115,16905,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,5,6,1959,1959,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,TA,Gd,BLQ,967,Unf,0,383,1350,GasA,Gd,Y,SBrkr,1328,0,0,1328,0,1,1,1,2,1,TA,5,Typ,2,Gd,Attchd,1959,RFn,1,308,TA,TA,P,0,104,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,170000 +43,85,RL,NA,9180,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,SawyerW,Norm,Norm,1Fam,SFoyer,5,7,1983,1983,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,Av,ALQ,747,LwQ,93,0,840,GasA,Gd,Y,SBrkr,884,0,0,884,1,0,1,0,2,1,Gd,5,Typ,0,NA,Attchd,1983,RFn,2,504,TA,Gd,Y,240,0,0,0,0,0,NA,MnPrv,NA,0,12,2007,WD,Normal,144000 +44,20,RL,NA,9200,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,6,1975,1980,Hip,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,Gd,TA,Av,LwQ,280,BLQ,491,167,938,GasA,TA,Y,SBrkr,938,0,0,938,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1977,Unf,1,308,TA,TA,Y,145,0,0,0,0,0,NA,MnPrv,NA,0,7,2008,WD,Normal,130250 +45,20,RL,70,7945,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1959,1959,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,ALQ,179,BLQ,506,465,1150,GasA,Ex,Y,FuseA,1150,0,0,1150,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1959,RFn,1,300,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,141000 +46,120,RL,61,7658,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,9,5,2005,2005,Hip,CompShg,MetalSd,MetalSd,BrkFace,412,Ex,TA,PConc,Ex,TA,No,GLQ,456,Unf,0,1296,1752,GasA,Ex,Y,SBrkr,1752,0,0,1752,1,0,2,0,2,1,Ex,6,Typ,1,Gd,Attchd,2005,RFn,2,576,TA,TA,Y,196,82,0,0,0,0,NA,NA,NA,0,2,2010,WD,Normal,319900 +47,50,RL,48,12822,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Mitchel,Norm,Norm,1Fam,1.5Fin,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,No,GLQ,1351,Unf,0,83,1434,GasA,Ex,Y,SBrkr,1518,631,0,2149,1,0,1,1,1,1,Gd,6,Typ,1,Ex,Attchd,2003,RFn,2,670,TA,TA,Y,168,43,0,0,198,0,NA,NA,NA,0,8,2009,WD,Abnorml,239686 +48,20,FV,84,11096,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,24,Unf,0,1632,1656,GasA,Ex,Y,SBrkr,1656,0,0,1656,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2006,RFn,3,826,TA,TA,Y,0,146,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,249700 +49,190,RM,33,4456,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,2fmCon,2Story,4,5,1920,2008,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,736,736,GasA,Gd,Y,SBrkr,736,716,0,1452,0,0,2,0,2,3,TA,8,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,102,0,0,0,NA,NA,NA,0,6,2009,New,Partial,113000 +50,20,RL,66,7742,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,7,1966,1966,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,BLQ,763,Unf,0,192,955,GasA,Ex,Y,SBrkr,955,0,0,955,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1966,Unf,1,386,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,1,2007,WD,Normal,127000 +51,60,RL,NA,13869,Pave,NA,IR2,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,6,1997,1997,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Av,GLQ,182,Unf,0,612,794,GasA,Gd,Y,SBrkr,794,676,0,1470,0,1,2,0,3,1,TA,6,Typ,0,NA,Attchd,1997,Fin,2,388,TA,TA,Y,0,75,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,177000 +52,50,RM,52,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,6,1934,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,816,816,GasA,TA,Y,SBrkr,816,0,360,1176,0,0,1,0,3,1,TA,6,Typ,1,Gd,Detchd,1985,Unf,2,528,TA,TA,Y,112,0,0,0,0,0,NA,MnPrv,Shed,400,9,2006,WD,Normal,114500 +53,90,RM,110,8472,Grvl,NA,IR2,Bnk,AllPub,Corner,Mod,IDOTRR,RRNn,Norm,Duplex,1Story,5,5,1963,1963,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Fa,TA,CBlock,Gd,TA,Gd,LwQ,104,GLQ,712,0,816,GasA,TA,N,SBrkr,816,0,0,816,1,0,1,0,2,1,TA,5,Typ,0,NA,CarPort,1963,Unf,2,516,TA,TA,Y,106,0,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,110000 +54,20,RL,68,50271,Pave,NA,IR1,Low,AllPub,Inside,Gtl,Veenker,Norm,Norm,1Fam,1Story,9,5,1981,1987,Gable,WdShngl,WdShing,Wd Shng,None,0,Gd,TA,CBlock,Ex,TA,Gd,GLQ,1810,Unf,0,32,1842,GasA,Gd,Y,SBrkr,1842,0,0,1842,2,0,0,1,0,1,Gd,5,Typ,1,Gd,Attchd,1981,Fin,3,894,TA,TA,Y,857,72,0,0,0,0,NA,NA,NA,0,11,2006,WD,Normal,385000 +55,80,RL,60,7134,Pave,NA,Reg,Bnk,AllPub,Inside,Mod,NAmes,Norm,Norm,1Fam,SLvl,5,5,1955,1955,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,384,Unf,0,0,384,GasA,TA,Y,SBrkr,1360,0,0,1360,0,0,1,0,3,1,TA,6,Min1,1,TA,Detchd,1962,Unf,2,572,TA,TA,Y,0,50,0,0,0,0,NA,MnPrv,NA,0,2,2007,WD,Normal,130000 +56,20,RL,100,10175,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1964,1964,Gable,CompShg,HdBoard,Plywood,BrkFace,272,TA,TA,CBlock,TA,TA,No,BLQ,490,Unf,0,935,1425,GasA,Gd,Y,SBrkr,1425,0,0,1425,0,0,2,0,3,1,TA,7,Typ,1,Gd,Attchd,1964,RFn,2,576,TA,TA,Y,0,0,0,407,0,0,NA,NA,NA,0,7,2008,WD,Normal,180500 +57,160,FV,24,2645,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,2Story,8,5,1999,2000,Gable,CompShg,MetalSd,MetalSd,BrkFace,456,Gd,TA,PConc,Gd,TA,No,GLQ,649,Unf,0,321,970,GasA,Ex,Y,SBrkr,983,756,0,1739,1,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,1999,Fin,2,480,TA,TA,Y,115,0,0,0,0,0,NA,NA,NA,0,8,2009,WD,Abnorml,172500 +58,60,RL,89,11645,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,860,860,GasA,Ex,Y,SBrkr,860,860,0,1720,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2004,RFn,2,565,TA,TA,Y,0,70,0,0,0,0,NA,NA,NA,0,8,2006,WD,Normal,196500 +59,60,RL,66,13682,Pave,NA,IR2,HLS,AllPub,CulDSac,Gtl,StoneBr,Norm,Norm,1Fam,2Story,10,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,1031,Ex,TA,PConc,Ex,TA,Gd,Unf,0,Unf,0,1410,1410,GasA,Ex,Y,SBrkr,1426,1519,0,2945,0,0,3,1,3,1,Gd,10,Typ,1,Gd,BuiltIn,2006,Fin,3,641,TA,TA,Y,192,0,37,0,0,0,NA,NA,NA,0,10,2006,New,Partial,438780 +60,20,RL,60,7200,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,7,1972,1972,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,Av,ALQ,632,Unf,0,148,780,GasA,Ex,Y,SBrkr,780,0,0,780,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1973,Unf,1,352,TA,TA,Y,196,0,0,0,0,0,NA,MnPrv,NA,0,1,2008,WD,Normal,124900 +61,20,RL,63,13072,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,RRAe,Norm,1Fam,1Story,6,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,ALQ,941,Unf,0,217,1158,GasA,Ex,Y,SBrkr,1158,0,0,1158,1,0,1,1,3,1,Gd,5,Typ,0,NA,Detchd,2006,Unf,2,576,TA,TA,Y,0,50,0,0,0,0,NA,NA,NA,0,5,2006,New,Partial,158000 +62,75,RM,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,2.5Unf,5,7,1920,1996,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,Fa,No,Unf,0,Unf,0,530,530,GasA,TA,N,SBrkr,581,530,0,1111,0,0,1,0,3,1,Fa,6,Typ,0,NA,Detchd,1935,Unf,1,288,TA,TA,N,0,0,144,0,0,0,NA,NA,NA,0,3,2007,WD,Normal,101000 +63,120,RL,44,6442,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,Stone,178,Gd,TA,PConc,Gd,Gd,Mn,GLQ,24,Unf,0,1346,1370,GasA,Ex,Y,SBrkr,1370,0,0,1370,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2006,RFn,2,484,TA,TA,Y,120,49,0,0,0,0,NA,NA,NA,0,10,2007,WD,Normal,202500 +64,70,RM,50,10300,Pave,NA,IR1,Bnk,AllPub,Inside,Gtl,OldTown,RRAn,Feedr,1Fam,2Story,7,6,1921,1950,Gable,CompShg,Stucco,Stucco,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,576,576,GasA,Gd,Y,SBrkr,902,808,0,1710,0,0,2,0,3,1,TA,9,Typ,0,NA,Detchd,1990,Unf,2,480,TA,TA,Y,12,11,64,0,0,0,NA,GdPrv,NA,0,4,2010,WD,Normal,140000 +65,60,RL,NA,9375,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,1997,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,573,TA,TA,PConc,Gd,TA,No,GLQ,739,Unf,0,318,1057,GasA,Ex,Y,SBrkr,1057,977,0,2034,1,0,2,1,3,1,Gd,8,Typ,0,NA,Attchd,1998,RFn,2,645,TA,TA,Y,576,36,0,0,0,0,NA,GdPrv,NA,0,2,2009,WD,Normal,219500 +66,60,RL,76,9591,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,344,Gd,TA,PConc,Ex,TA,Av,Unf,0,Unf,0,1143,1143,GasA,Ex,Y,SBrkr,1143,1330,0,2473,0,0,2,1,4,1,Gd,9,Typ,1,Gd,BuiltIn,2004,RFn,3,852,TA,TA,Y,192,151,0,0,0,0,NA,NA,NA,0,10,2007,WD,Normal,317000 +67,20,RL,NA,19900,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,PosA,Norm,1Fam,1Story,7,5,1970,1989,Gable,CompShg,Plywood,Plywood,BrkFace,287,TA,TA,CBlock,Gd,TA,Gd,GLQ,912,Unf,0,1035,1947,GasA,TA,Y,SBrkr,2207,0,0,2207,1,0,2,0,3,1,TA,7,Min1,1,Gd,Attchd,1970,RFn,2,576,TA,TA,Y,301,0,0,0,0,0,NA,NA,NA,0,7,2010,WD,Normal,180000 +68,20,RL,72,10665,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,167,Gd,TA,PConc,Gd,TA,Av,GLQ,1013,Unf,0,440,1453,GasA,Ex,Y,SBrkr,1479,0,0,1479,1,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2003,RFn,2,558,TA,TA,Y,144,29,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,226000 +69,30,RM,47,4608,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Artery,Norm,1Fam,1Story,4,6,1945,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,Unf,0,Unf,0,747,747,GasA,TA,Y,SBrkr,747,0,0,747,0,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1945,Unf,1,220,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,80000 +70,50,RL,81,15593,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,ClearCr,Norm,Norm,1Fam,1.5Fin,7,4,1953,1953,Gable,CompShg,BrkFace,AsbShng,None,0,Gd,TA,CBlock,TA,TA,No,BLQ,603,Unf,0,701,1304,GasW,TA,Y,SBrkr,1304,983,0,2287,0,0,2,0,3,1,TA,7,Typ,1,TA,Attchd,1953,Fin,2,667,TA,TA,Y,0,21,114,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,225000 +71,20,RL,95,13651,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,7,6,1973,1973,Gable,CompShg,Plywood,Plywood,BrkFace,1115,TA,Gd,CBlock,Gd,TA,Gd,ALQ,1880,Unf,0,343,2223,GasA,Ex,Y,SBrkr,2223,0,0,2223,1,0,2,0,3,1,TA,8,Typ,2,Gd,Attchd,1973,Fin,2,516,TA,TA,Y,300,0,0,0,0,0,NA,NA,NA,0,2,2007,WD,Normal,244000 +72,20,RL,69,7599,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Mitchel,Norm,Norm,1Fam,1Story,4,6,1982,2006,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,565,Unf,0,280,845,GasA,TA,Y,SBrkr,845,0,0,845,1,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1987,Unf,2,360,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,129500 +73,60,RL,74,10141,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,40,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,832,832,GasA,Gd,Y,SBrkr,885,833,0,1718,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1998,Fin,2,427,TA,TA,Y,0,94,0,0,291,0,NA,NA,NA,0,12,2009,WD,Normal,185000 +74,20,RL,85,10200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1954,2003,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,104,TA,TA,CBlock,TA,TA,No,ALQ,320,BLQ,362,404,1086,GasA,Gd,Y,SBrkr,1086,0,0,1086,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1989,Unf,2,490,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,5,2010,WD,Normal,144900 +75,50,RM,60,5790,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,2Story,3,6,1915,1950,Gambrel,CompShg,VinylSd,VinylSd,None,0,Gd,Gd,CBlock,Fa,TA,No,Unf,0,Unf,0,840,840,GasA,Gd,N,SBrkr,840,765,0,1605,0,0,2,0,3,2,TA,8,Typ,0,NA,Detchd,1915,Unf,1,379,TA,TA,Y,0,0,202,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,107400 +76,180,RM,21,1596,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,SLvl,4,5,1973,1973,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,Gd,TA,Gd,GLQ,462,Unf,0,0,462,GasA,TA,Y,SBrkr,526,462,0,988,1,0,1,0,2,1,TA,5,Typ,0,NA,BuiltIn,1973,Unf,1,297,TA,TA,Y,120,101,0,0,0,0,NA,GdWo,NA,0,11,2009,WD,Normal,91000 +77,20,RL,NA,8475,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,7,1956,1956,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,228,Unf,0,724,952,GasA,Ex,Y,FuseA,952,0,0,952,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1956,Unf,1,283,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal,135750 +78,50,RM,50,8635,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,5,1948,2001,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,336,GLQ,41,295,672,GasA,TA,Y,SBrkr,1072,213,0,1285,1,0,1,0,2,1,TA,6,Min1,0,NA,Detchd,1948,Unf,1,240,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,1,2008,WD,Normal,127000 +79,90,RL,72,10778,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,Duplex,1Story,4,5,1968,1968,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1768,1768,GasA,TA,N,SBrkr,1768,0,0,1768,0,0,2,0,4,2,TA,8,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,136500 +80,50,RM,60,10440,Pave,Grvl,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,2Story,5,6,1910,1981,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,440,440,GasA,Gd,Y,SBrkr,682,548,0,1230,0,0,1,1,2,1,TA,5,Typ,0,NA,Detchd,1966,Unf,2,440,TA,TA,Y,74,0,128,0,0,0,NA,MnPrv,NA,0,5,2009,WD,Normal,110000 +81,60,RL,100,13000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,2Story,6,6,1968,1968,Gable,CompShg,VinylSd,VinylSd,BrkFace,576,TA,Gd,CBlock,Gd,TA,No,Rec,448,Unf,0,448,896,GasA,TA,Y,SBrkr,1182,960,0,2142,0,0,2,1,4,1,Gd,8,Typ,1,Gd,Attchd,1968,Fin,1,509,TA,TA,Y,0,72,0,0,252,0,NA,NA,NA,0,6,2009,WD,Normal,193500 +82,120,RM,32,4500,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Mitchel,Norm,Norm,TwnhsE,1Story,6,5,1998,1998,Hip,CompShg,VinylSd,VinylSd,BrkFace,443,TA,Gd,PConc,Ex,Gd,No,GLQ,1201,Unf,0,36,1237,GasA,Ex,Y,SBrkr,1337,0,0,1337,1,0,2,0,2,1,TA,5,Typ,0,NA,Attchd,1998,Fin,2,405,TA,TA,Y,0,199,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal,153500 +83,20,RL,78,10206,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,468,TA,TA,PConc,Gd,TA,No,GLQ,33,Unf,0,1530,1563,GasA,Ex,Y,SBrkr,1563,0,0,1563,0,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2007,RFn,3,758,TA,TA,Y,144,99,0,0,0,0,NA,NA,NA,0,10,2008,WD,Normal,245000 +84,20,RL,80,8892,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1960,1960,Gable,CompShg,MetalSd,MetalSd,BrkCmn,66,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1065,1065,GasA,Gd,Y,SBrkr,1065,0,0,1065,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1974,Unf,2,461,TA,TA,Y,74,0,0,0,0,0,NA,NA,NA,0,7,2007,COD,Normal,126500 +85,80,RL,NA,8530,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,7,5,1995,1996,Gable,CompShg,HdBoard,HdBoard,BrkFace,22,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,384,384,GasA,Gd,Y,SBrkr,804,670,0,1474,0,0,2,1,3,1,TA,7,Typ,1,TA,BuiltIn,1995,Fin,2,400,TA,TA,Y,120,72,0,0,0,0,NA,NA,Shed,700,5,2009,WD,Normal,168500 +86,60,RL,121,16059,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1991,1992,Hip,CompShg,HdBoard,HdBoard,BrkFace,284,Gd,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,1288,1288,GasA,Ex,Y,SBrkr,1301,1116,0,2417,0,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1991,Unf,2,462,TA,TA,Y,127,82,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,260000 +87,60,RL,122,11911,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,684,684,GasA,Ex,Y,SBrkr,684,876,0,1560,0,0,2,1,3,1,Gd,6,Typ,1,Gd,BuiltIn,2005,Fin,2,400,TA,TA,Y,100,38,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal,174000 +88,160,FV,40,3951,Pave,Pave,Reg,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,6,5,2009,2009,Gable,CompShg,VinylSd,VinylSd,Stone,76,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,612,612,GasA,Ex,Y,SBrkr,612,612,0,1224,0,0,2,1,2,1,Gd,4,Typ,0,NA,Detchd,2009,RFn,2,528,TA,TA,Y,0,234,0,0,0,0,NA,NA,NA,0,6,2009,New,Partial,164500 +89,50,C (all),105,8470,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,IDOTRR,Feedr,Feedr,1Fam,1.5Fin,3,2,1915,1982,Hip,CompShg,Plywood,Plywood,None,0,Fa,Fa,CBlock,TA,Fa,No,Unf,0,Unf,0,1013,1013,GasA,TA,N,SBrkr,1013,0,513,1526,0,0,1,0,2,1,Fa,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,156,0,0,0,NA,MnPrv,NA,0,10,2009,ConLD,Abnorml,85000 +90,20,RL,60,8070,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,4,5,1994,1995,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,GLQ,588,Unf,0,402,990,GasA,Ex,Y,SBrkr,990,0,0,990,1,0,1,0,3,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,123600 +91,20,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,5,1950,1950,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,FuseA,1040,0,0,1040,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1950,Unf,2,420,TA,TA,Y,0,29,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,109900 +92,20,RL,85,8500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,3,1961,1961,Hip,CompShg,HdBoard,HdBoard,BrkCmn,203,TA,TA,CBlock,TA,TA,No,Rec,600,Unf,0,635,1235,GasA,TA,Y,SBrkr,1235,0,0,1235,0,0,1,0,2,1,TA,6,Typ,0,NA,Attchd,1961,Unf,2,480,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,12,2006,WD,Abnorml,98600 +93,30,RL,80,13360,Pave,Grvl,IR1,HLS,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,5,7,1921,2006,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,BrkTil,Gd,TA,No,ALQ,713,Unf,0,163,876,GasA,Ex,Y,SBrkr,964,0,0,964,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1921,Unf,2,432,TA,TA,Y,0,0,44,0,0,0,NA,NA,NA,0,8,2009,WD,Normal,163500 +94,190,C (all),60,7200,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,2fmCon,2.5Unf,6,6,1910,1998,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,Fa,Mn,Rec,1046,Unf,0,168,1214,GasW,Ex,N,SBrkr,1260,1031,0,2291,0,1,2,0,4,2,TA,9,Typ,1,Gd,Detchd,1900,Unf,2,506,TA,TA,Y,0,0,0,0,99,0,NA,NA,NA,0,11,2007,WD,Normal,133900 +95,60,RL,69,9337,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,6,5,1997,1997,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,PConc,Gd,TA,No,GLQ,648,Unf,0,176,824,GasA,Ex,Y,SBrkr,905,881,0,1786,1,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,1997,RFn,2,684,TA,TA,Y,0,162,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,204750 +96,60,RL,NA,9765,Pave,NA,IR2,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,8,1993,1993,Gable,CompShg,VinylSd,VinylSd,BrkFace,68,Ex,Gd,PConc,Gd,Gd,No,ALQ,310,Unf,0,370,680,GasA,Gd,Y,SBrkr,680,790,0,1470,0,0,2,1,3,1,TA,6,Typ,1,TA,BuiltIn,1993,Fin,2,420,TA,TA,Y,232,63,0,0,0,0,NA,NA,Shed,480,4,2009,WD,Normal,185000 +97,20,RL,78,10264,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,BrkFace,183,Gd,TA,PConc,Gd,TA,Av,ALQ,1162,Unf,0,426,1588,GasA,Ex,Y,SBrkr,1588,0,0,1588,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1999,RFn,2,472,TA,TA,Y,158,29,0,0,0,0,NA,NA,NA,0,8,2006,WD,Normal,214000 +98,20,RL,73,10921,Pave,NA,Reg,HLS,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,5,1965,1965,Hip,CompShg,HdBoard,HdBoard,BrkFace,48,TA,TA,CBlock,TA,TA,No,Rec,520,Unf,0,440,960,GasA,TA,Y,FuseF,960,0,0,960,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1965,Fin,1,432,TA,TA,P,120,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,94750 +99,30,RL,85,10625,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,5,1920,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,ALQ,108,Unf,0,350,458,GasA,Fa,N,SBrkr,835,0,0,835,0,0,1,0,2,1,TA,5,Typ,0,NA,Basment,1920,Unf,1,366,Fa,TA,Y,0,0,77,0,0,0,NA,NA,Shed,400,5,2010,COD,Abnorml,83000 +100,20,RL,77,9320,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,5,1959,1959,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,569,Unf,0,381,950,GasA,Fa,Y,SBrkr,1225,0,0,1225,1,0,1,1,3,1,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,352,0,0,0,0,0,NA,NA,Shed,400,1,2010,WD,Normal,128950 +101,20,RL,NA,10603,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,7,1977,2001,Gable,CompShg,Plywood,Plywood,BrkFace,28,TA,TA,PConc,TA,TA,Mn,ALQ,1200,Unf,0,410,1610,GasA,Gd,Y,SBrkr,1610,0,0,1610,1,0,2,0,3,1,Gd,6,Typ,2,TA,Attchd,1977,RFn,2,480,TA,TA,Y,168,68,0,0,0,0,NA,NA,NA,0,2,2010,WD,Normal,205000 +102,60,RL,77,9206,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,5,1985,1985,Gable,CompShg,HdBoard,HdBoard,BrkFace,336,Gd,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,741,741,GasA,TA,Y,SBrkr,977,755,0,1732,0,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1985,Fin,2,476,TA,TA,Y,192,46,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,178000 +103,90,RL,64,7018,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,SawyerW,Norm,Norm,Duplex,1Story,5,5,1979,1979,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Fa,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,1535,0,0,1535,0,0,2,0,4,2,TA,8,Typ,0,NA,Attchd,1979,Unf,2,410,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Alloca,118964 +104,20,RL,94,10402,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2009,2009,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1226,1226,GasA,Ex,Y,SBrkr,1226,0,0,1226,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2009,RFn,3,740,TA,TA,Y,0,36,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,198900 +105,50,RM,NA,7758,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,7,4,1931,1950,Gable,CompShg,Stucco,Stucco,BrkFace,600,TA,Fa,PConc,TA,TA,No,LwQ,224,Unf,0,816,1040,GasA,Ex,Y,FuseF,1226,592,0,1818,0,0,1,1,4,1,TA,7,Typ,2,TA,Detchd,1951,Unf,1,240,TA,TA,Y,0,0,0,0,184,0,NA,NA,NA,0,6,2007,WD,Normal,169500 +106,60,FV,75,9375,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2003,2004,Hip,CompShg,VinylSd,VinylSd,BrkFace,768,Gd,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1053,1053,GasA,Ex,Y,SBrkr,1053,939,0,1992,0,0,2,1,3,1,Gd,9,Typ,1,Gd,Attchd,2003,RFn,2,648,TA,TA,Y,140,45,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal,250000 +107,30,RM,60,10800,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,4,7,1885,1995,Mansard,CompShg,VinylSd,VinylSd,None,0,TA,TA,BrkTil,Fa,TA,No,Unf,0,Unf,0,641,641,GasA,Gd,Y,SBrkr,1047,0,0,1047,0,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1954,Unf,1,273,Fa,Fa,N,0,0,0,0,0,0,NA,NA,Shed,450,8,2007,WD,Normal,100000 +108,20,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,5,1948,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,104,BLQ,169,516,789,GasA,Ex,Y,SBrkr,789,0,0,789,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1948,Unf,1,250,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2008,WD,Partial,115000 +109,50,RM,85,8500,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Artery,Norm,1Fam,1.5Fin,5,7,1919,2005,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,793,793,GasW,TA,N,FuseF,997,520,0,1517,0,0,2,0,3,1,Fa,7,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,144,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,115000 +110,20,RL,105,11751,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,6,1977,1977,Hip,CompShg,Plywood,Plywood,BrkFace,480,TA,TA,CBlock,Gd,TA,No,BLQ,705,Unf,0,1139,1844,GasA,Ex,Y,SBrkr,1844,0,0,1844,0,0,2,0,3,1,TA,7,Typ,1,TA,Attchd,1977,RFn,2,546,TA,TA,Y,0,122,0,0,0,0,NA,MnPrv,NA,0,1,2010,COD,Normal,190000 +111,50,RL,75,9525,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,6,4,1954,1972,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,Fa,No,Rec,444,Unf,0,550,994,GasA,Gd,Y,SBrkr,1216,639,0,1855,0,0,2,0,4,1,TA,7,Typ,0,NA,Attchd,1954,Unf,1,325,TA,TA,Y,182,0,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal,136900 +112,80,RL,NA,7750,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,7,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,GLQ,250,Unf,0,134,384,GasA,Ex,Y,SBrkr,774,656,0,1430,0,0,2,1,3,1,TA,7,Typ,1,TA,BuiltIn,2000,Fin,2,400,TA,TA,Y,180,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,180000 +113,60,RL,77,9965,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,220,Gd,TA,PConc,Ex,TA,Av,GLQ,984,Unf,0,280,1264,GasA,Ex,Y,SBrkr,1282,1414,0,2696,1,0,2,1,4,1,Ex,10,Typ,1,Gd,BuiltIn,2007,Fin,3,792,TA,TA,Y,120,184,0,0,168,0,NA,NA,NA,0,10,2007,New,Partial,383970 +114,20,RL,NA,21000,Pave,NA,Reg,Bnk,AllPub,Corner,Gtl,Crawfor,Norm,Norm,1Fam,1Story,6,5,1953,1953,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,184,TA,Gd,CBlock,Gd,TA,Mn,ALQ,35,Rec,869,905,1809,GasA,TA,Y,SBrkr,2259,0,0,2259,1,0,2,0,3,1,Gd,7,Typ,2,Gd,Basment,1953,Unf,2,450,TA,TA,Y,166,120,192,0,0,0,NA,MnPrv,NA,0,10,2007,COD,Abnorml,217000 +115,70,RL,61,7259,Pave,NA,IR1,Lvl,AllPub,Inside,Mod,Crawfor,Norm,Norm,1Fam,2Story,6,8,1945,2002,Gambrel,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,ALQ,774,LwQ,150,104,1028,GasA,Ex,Y,SBrkr,1436,884,0,2320,1,0,2,1,3,1,Gd,9,Typ,1,TA,Detchd,1945,Unf,1,180,TA,TA,Y,224,0,0,0,0,0,NA,MnPrv,NA,0,7,2007,WD,Normal,259500 +116,160,FV,34,3230,Pave,Pave,Reg,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,6,5,1999,1999,Gable,CompShg,MetalSd,MetalSd,BrkFace,1129,TA,TA,PConc,Gd,TA,No,GLQ,419,Unf,0,310,729,GasA,Gd,Y,SBrkr,729,729,0,1458,0,0,2,1,2,1,TA,5,Typ,1,Fa,Detchd,1999,Unf,2,440,TA,TA,Y,0,32,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,176000 +117,20,RL,NA,11616,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1962,1962,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,116,TA,TA,CBlock,TA,TA,No,LwQ,170,BLQ,670,252,1092,GasA,TA,Y,SBrkr,1092,0,0,1092,0,1,1,0,3,1,TA,6,Typ,1,Po,Attchd,1962,Unf,1,288,TA,TA,Y,0,20,144,0,0,0,NA,NA,NA,0,9,2009,WD,Normal,139000 +118,20,RL,74,8536,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1125,1125,GasA,Gd,Y,SBrkr,1125,0,0,1125,0,0,1,1,2,1,TA,5,Typ,0,NA,Attchd,2007,Unf,2,430,TA,TA,Y,80,64,0,0,0,0,NA,NA,NA,0,4,2007,New,Partial,155000 +119,60,RL,90,12376,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,1990,1990,Hip,CompShg,Plywood,Plywood,None,0,TA,TA,PConc,Gd,TA,Mn,GLQ,1470,Unf,0,203,1673,GasA,Gd,Y,SBrkr,1699,1523,0,3222,1,0,3,0,5,1,Gd,11,Typ,2,TA,Attchd,1990,Unf,3,594,TA,TA,Y,367,0,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,320000 +120,60,RL,65,8461,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,6,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,728,728,GasA,Ex,Y,SBrkr,728,728,0,1456,0,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2005,Fin,2,390,TA,TA,Y,0,24,0,0,0,0,NA,NA,NA,0,7,2006,New,Partial,163990 +121,80,RL,NA,21453,Pave,NA,IR1,Low,AllPub,CulDSac,Sev,ClearCr,Norm,Norm,1Fam,SLvl,6,5,1969,1969,Flat,Metal,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,Gd,ALQ,938,Unf,0,0,938,GasA,Ex,Y,SBrkr,988,0,0,988,1,0,1,0,1,1,TA,4,Typ,2,TA,Attchd,1969,Unf,2,540,TA,TA,Y,0,130,0,130,0,0,NA,NA,NA,0,10,2006,WD,Normal,180000 +122,50,RM,50,6060,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,4,5,1939,1950,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,732,732,GasA,Gd,Y,SBrkr,772,351,0,1123,0,0,1,0,3,1,TA,4,Typ,0,NA,Detchd,1979,Unf,1,264,TA,TA,P,0,0,140,0,0,0,NA,MnPrv,NA,0,6,2007,WD,Normal,100000 +123,20,RL,75,9464,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,7,1958,1958,Hip,CompShg,MetalSd,MetalSd,BrkFace,135,TA,Gd,CBlock,TA,TA,No,BLQ,570,Unf,0,510,1080,GasA,Gd,Y,SBrkr,1080,0,0,1080,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1958,Unf,1,288,TA,TA,Y,0,0,0,0,130,0,NA,NA,NA,0,6,2008,WD,Normal,136000 +124,120,RL,55,7892,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,TwnhsE,1Story,6,5,1993,1993,Gable,CompShg,Plywood,Plywood,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,300,Unf,0,899,1199,GasA,Ex,Y,SBrkr,1199,0,0,1199,0,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,1993,RFn,2,530,TA,TA,Y,0,63,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal,153900 +125,20,RL,48,17043,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,5,1979,1998,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Gd,CBlock,Gd,Fa,No,Unf,0,Unf,0,1362,1362,GasA,TA,Y,SBrkr,1586,0,0,1586,0,0,2,0,3,1,TA,7,Typ,1,TA,Attchd,1979,Unf,2,435,TA,TA,Y,192,0,0,0,0,0,NA,NA,NA,0,1,2009,WD,Normal,181000 +126,190,RM,60,6780,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,2fmCon,1.5Fin,6,8,1935,1982,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Fa,CBlock,TA,TA,Av,GLQ,490,Unf,0,30,520,GasA,Gd,N,SBrkr,520,0,234,754,1,0,1,0,2,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,53,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,84500 +127,120,RL,NA,4928,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NPkVill,Norm,Norm,TwnhsE,1Story,6,5,1976,1976,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,120,Unf,0,958,1078,GasA,TA,Y,SBrkr,958,0,0,958,0,0,2,0,2,1,TA,5,Typ,1,TA,Attchd,1977,RFn,2,440,TA,TA,Y,0,205,0,0,0,0,NA,NA,NA,0,2,2007,WD,Normal,128000 +128,45,RM,55,4388,Pave,NA,IR1,Bnk,AllPub,Inside,Gtl,OldTown,Feedr,Norm,1Fam,1.5Unf,5,7,1930,1950,Gable,CompShg,WdShing,Wd Sdng,None,0,TA,Gd,BrkTil,TA,TA,No,LwQ,116,Unf,0,556,672,GasA,Ex,Y,SBrkr,840,0,0,840,0,0,1,0,3,1,TA,5,Typ,1,TA,NA,NA,NA,0,0,NA,NA,N,0,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,87000 +129,60,RL,69,7590,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,PosN,Norm,1Fam,2Story,6,5,1966,1966,Gable,CompShg,VinylSd,VinylSd,BrkFace,266,TA,TA,CBlock,TA,TA,No,BLQ,512,Unf,0,148,660,GasA,TA,Y,SBrkr,660,688,0,1348,0,0,1,1,3,1,TA,6,Typ,1,Fa,Attchd,1966,RFn,2,453,TA,TA,Y,188,108,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,155000 +130,20,RL,69,8973,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1958,1991,Gable,CompShg,Plywood,Plywood,BrkFace,85,TA,TA,CBlock,TA,TA,No,Rec,567,BLQ,28,413,1008,GasA,TA,Y,FuseA,1053,0,0,1053,0,1,1,1,3,1,Ex,6,Typ,0,NA,2Types,1998,RFn,2,750,TA,TA,Y,0,80,0,180,0,0,NA,MnWw,NA,0,7,2006,WD,Abnorml,150000 +131,60,RL,88,14200,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,2Story,7,6,1966,1966,Gable,CompShg,MetalSd,MetalSd,BrkFace,309,TA,TA,CBlock,TA,TA,No,Rec,445,Unf,0,479,924,GasA,Ex,Y,SBrkr,1216,941,0,2157,0,0,2,1,4,1,Gd,8,Typ,2,Gd,Attchd,1966,Fin,2,487,TA,TA,Y,105,66,0,0,0,0,NA,GdPrv,NA,0,5,2006,WD,Normal,226000 +132,60,RL,NA,12224,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,40,Gd,TA,PConc,Gd,TA,No,GLQ,695,Unf,0,297,992,GasA,Ex,Y,SBrkr,1022,1032,0,2054,1,0,2,1,3,1,Gd,7,Typ,1,TA,BuiltIn,2000,RFn,2,390,TA,TA,Y,24,48,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,244000 +133,20,RL,75,7388,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1959,2002,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,405,Unf,0,658,1063,GasA,Gd,Y,SBrkr,1327,0,0,1327,1,0,1,0,3,1,Gd,7,Typ,0,NA,Detchd,1974,Unf,2,624,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,150750 +134,20,RL,NA,6853,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2001,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,136,Gd,TA,PConc,Ex,TA,No,GLQ,1005,Unf,0,262,1267,GasA,Ex,Y,SBrkr,1296,0,0,1296,1,0,2,0,2,1,Gd,6,Typ,0,NA,Attchd,2001,Fin,2,471,TA,TA,Y,192,25,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,220000 +135,20,RL,78,10335,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,6,1968,1993,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,Rec,570,Unf,0,891,1461,GasA,Gd,Y,SBrkr,1721,0,0,1721,0,0,2,1,3,1,TA,7,Min1,1,TA,Attchd,1968,RFn,2,440,TA,TA,Y,0,96,180,0,0,0,NA,MnPrv,NA,0,7,2006,WD,Normal,180000 +136,20,RL,80,10400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,7,6,1970,1970,Hip,CompShg,Plywood,Plywood,BrkFace,288,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,1304,1304,GasA,Gd,Y,SBrkr,1682,0,0,1682,0,0,2,0,3,1,TA,7,Typ,1,Gd,Attchd,1970,Unf,2,530,TA,TA,Y,98,0,0,0,0,0,NA,MnPrv,NA,0,5,2008,WD,Normal,174000 +137,20,RL,NA,10355,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1967,1967,Gable,CompShg,MetalSd,MetalSd,BrkFace,196,TA,TA,CBlock,TA,TA,No,BLQ,695,Unf,0,519,1214,GasA,TA,Y,SBrkr,1214,0,0,1214,0,0,2,0,3,1,TA,5,Typ,1,Fa,Attchd,1967,RFn,1,318,TA,TA,Y,0,111,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,143000 +138,90,RL,82,11070,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,Duplex,1Story,7,5,1988,1989,Gable,CompShg,VinylSd,VinylSd,BrkFace,70,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1907,1907,GasA,Gd,Y,SBrkr,1959,0,0,1959,0,0,3,0,5,2,TA,9,Typ,0,NA,2Types,1989,Unf,3,766,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Family,171000 +139,60,RL,73,9066,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,1999,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,320,Gd,TA,PConc,Gd,TA,Mn,GLQ,668,Unf,0,336,1004,GasA,Ex,Y,SBrkr,1004,848,0,1852,0,0,2,1,3,1,Gd,7,Typ,2,TA,Attchd,1999,Fin,3,660,TA,TA,Y,224,106,0,0,0,0,NA,GdPrv,NA,0,12,2008,WD,Normal,230000 +140,60,RL,65,15426,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,6,5,1997,1997,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,GLQ,821,Unf,0,107,928,GasA,Ex,Y,SBrkr,928,836,0,1764,1,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,1997,RFn,2,470,TA,TA,Y,276,99,0,0,0,0,NA,MnPrv,NA,0,8,2009,WD,Normal,231500 +141,20,RL,70,10500,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,5,1971,1971,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,ALQ,432,Unf,0,432,864,GasA,TA,Y,SBrkr,864,0,0,864,0,0,1,0,3,1,TA,5,Typ,1,Po,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2010,ConLI,Normal,115000 +142,20,RL,78,11645,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,1300,Unf,0,434,1734,GasA,Ex,Y,SBrkr,1734,0,0,1734,1,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2005,Fin,2,660,TA,TA,Y,160,24,0,0,0,0,NA,NA,NA,0,1,2006,WD,Normal,260000 +143,50,RL,71,8520,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Artery,Norm,1Fam,1.5Fin,5,4,1952,1952,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,Fa,CBlock,TA,TA,No,Rec,507,Unf,0,403,910,GasA,Fa,Y,SBrkr,910,475,0,1385,0,0,2,0,4,1,TA,6,Typ,0,NA,Detchd,2000,Unf,2,720,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,6,2010,WD,Normal,166000 +144,20,RL,78,10335,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,BrkFace,183,Gd,TA,PConc,Gd,TA,Gd,GLQ,679,Unf,0,811,1490,GasA,Ex,Y,SBrkr,1501,0,0,1501,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1999,RFn,2,577,TA,TA,Y,144,29,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,204000 +145,90,RM,70,9100,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,RRAe,Norm,Duplex,1Story,5,5,1963,1963,Gable,CompShg,HdBoard,HdBoard,BrkFace,336,TA,TA,CBlock,TA,TA,No,Rec,1332,Unf,0,396,1728,GasA,TA,Y,SBrkr,1728,0,0,1728,1,0,2,0,6,2,TA,10,Typ,0,NA,Detchd,1963,Unf,2,504,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2006,ConLI,Abnorml,125000 +146,160,RM,24,2522,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,Twnhs,2Story,6,5,2004,2006,Gable,CompShg,VinylSd,VinylSd,Stone,50,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,970,970,GasA,Ex,Y,SBrkr,970,739,0,1709,0,0,2,0,3,1,Gd,7,Maj1,0,NA,Detchd,2004,Unf,2,380,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,130000 +147,30,RM,51,6120,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,BrkSide,Norm,Norm,1Fam,1Story,5,7,1931,1993,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,BLQ,209,Unf,0,506,715,GasA,TA,Y,FuseA,875,0,0,875,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1931,Unf,1,180,Fa,TA,Y,48,0,0,0,0,0,NA,NA,NA,0,11,2009,WD,Normal,105000 +148,60,RL,NA,9505,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,BrkFace,180,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,884,884,GasA,Ex,Y,SBrkr,884,1151,0,2035,0,0,2,1,3,1,Gd,8,Typ,1,Gd,BuiltIn,2001,Fin,2,434,TA,TA,Y,144,48,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,222500 +149,20,RL,63,7500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,7,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,120,TA,TA,PConc,Gd,TA,No,GLQ,680,Unf,0,400,1080,GasA,Ex,Y,SBrkr,1080,0,0,1080,1,0,1,0,3,1,Gd,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal,141000 +150,50,RM,NA,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,4,1936,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,Gd,TA,No,Unf,0,Unf,0,896,896,GasA,Gd,Y,FuseA,896,448,0,1344,0,0,1,0,3,1,TA,7,Typ,0,NA,Detchd,1936,Unf,1,240,Fa,TA,Y,200,114,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,115000 +151,20,RL,120,10356,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,6,1975,1975,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,Av,BLQ,716,Unf,0,253,969,GasA,TA,Y,SBrkr,969,0,0,969,0,0,1,1,3,1,TA,5,Typ,0,NA,Attchd,1975,Unf,2,440,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,1,2007,WD,Normal,122000 +152,20,RL,107,13891,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2007,2008,Hip,CompShg,VinylSd,VinylSd,Stone,436,Gd,TA,PConc,Ex,TA,Gd,GLQ,1400,Unf,0,310,1710,GasA,Ex,Y,SBrkr,1710,0,0,1710,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2007,RFn,3,866,TA,TA,Y,0,102,0,0,0,0,NA,NA,NA,0,1,2008,New,Partial,372402 +153,60,RL,NA,14803,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NWAmes,Norm,Norm,1Fam,2Story,6,5,1971,1971,Gable,CompShg,HdBoard,HdBoard,BrkFace,252,TA,TA,CBlock,TA,TA,No,Rec,416,Unf,0,409,825,GasA,Gd,Y,SBrkr,1097,896,0,1993,0,0,2,1,4,1,TA,8,Typ,1,Gd,Attchd,1971,RFn,2,495,TA,TA,Y,0,66,0,0,0,0,NA,GdWo,NA,0,6,2006,WD,Normal,190000 +154,20,RL,NA,13500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,ClearCr,Norm,Norm,1Fam,1Story,6,7,1960,1975,Flat,CompShg,BrkFace,Plywood,None,0,TA,TA,CBlock,Gd,TA,Gd,BLQ,429,ALQ,1080,93,1602,GasA,Gd,Y,SBrkr,1252,0,0,1252,1,0,1,0,1,1,TA,4,Typ,1,Gd,Attchd,1960,RFn,2,564,TA,TA,Y,409,0,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal,235000 +155,30,RM,84,11340,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1Story,6,5,1923,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,1200,1200,GasA,TA,Y,FuseA,1200,0,0,1200,0,0,1,0,4,1,TA,7,Typ,0,NA,Detchd,1923,Unf,1,312,Fa,Fa,Y,0,0,228,0,0,0,NA,NA,NA,0,3,2006,WD,Family,125000 +156,50,RL,60,9600,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Artery,Norm,1Fam,1.5Fin,6,5,1924,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,572,572,Grav,Fa,N,FuseF,572,524,0,1096,0,0,1,0,2,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,8,128,0,0,0,NA,NA,NA,0,4,2008,WD,Normal,79000 +157,20,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1950,1950,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,FuseF,1040,0,0,1040,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1950,Unf,2,625,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,109500 +158,60,RL,92,12003,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,2Story,8,5,2009,2010,Gable,CompShg,VinylSd,VinylSd,BrkFace,84,Gd,TA,PConc,Ex,TA,No,Unf,0,Unf,0,774,774,GasA,Ex,Y,SBrkr,774,1194,0,1968,0,0,2,1,4,1,Ex,8,Typ,1,Gd,BuiltIn,2009,Fin,3,680,TA,TA,Y,0,75,0,0,0,0,NA,NA,NA,0,5,2010,New,Partial,269500 +159,60,FV,100,12552,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,222,Unf,0,769,991,GasA,Ex,Y,SBrkr,991,956,0,1947,0,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2004,RFn,2,678,TA,TA,Y,0,136,0,0,0,0,NA,GdWo,NA,0,5,2010,WD,Normal,254900 +160,60,RL,134,19378,Pave,NA,IR1,HLS,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,456,Gd,TA,PConc,Gd,TA,Mn,GLQ,57,Unf,0,1335,1392,GasA,Ex,Y,SBrkr,1392,1070,0,2462,1,0,2,1,4,1,Gd,9,Typ,1,Gd,Attchd,2006,RFn,2,576,TA,TA,Y,239,132,0,168,0,0,NA,NA,NA,0,3,2006,New,Partial,320000 +161,20,RL,NA,11120,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Veenker,Norm,Norm,1Fam,1Story,6,6,1984,1984,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,PConc,Gd,TA,No,BLQ,660,Unf,0,572,1232,GasA,TA,Y,SBrkr,1232,0,0,1232,0,0,2,0,3,1,TA,6,Typ,0,NA,Attchd,1984,Unf,2,516,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,162500 +162,60,RL,110,13688,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,664,Gd,TA,PConc,Ex,TA,Av,GLQ,1016,Unf,0,556,1572,GasA,Ex,Y,SBrkr,1572,1096,0,2668,1,0,2,1,3,1,Ex,10,Typ,2,Gd,BuiltIn,2003,Fin,3,726,TA,TA,Y,400,0,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal,412500 +163,20,RL,95,12182,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,1Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,226,Gd,TA,PConc,Gd,TA,Mn,BLQ,1201,Unf,0,340,1541,GasA,Ex,Y,SBrkr,1541,0,0,1541,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2005,RFn,2,532,TA,TA,Y,0,70,0,0,0,0,NA,NA,NA,0,5,2010,New,Partial,220000 +164,45,RL,55,5500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Unf,4,6,1956,1956,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,882,882,GasA,Ex,Y,SBrkr,882,0,0,882,0,0,1,0,1,1,TA,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,4,2007,WD,Normal,103200 +165,40,RM,40,5400,Pave,Pave,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1Story,6,7,1926,2004,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,BrkTil,TA,TA,Mn,LwQ,370,Unf,0,779,1149,GasA,Gd,Y,FuseA,1149,467,0,1616,0,0,2,0,3,1,Gd,5,Typ,0,NA,Detchd,1926,Unf,1,216,TA,TA,Y,0,0,183,0,0,0,NA,NA,NA,0,10,2007,WD,Normal,152000 +166,190,RL,62,10106,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,2fmCon,1.5Fin,5,7,1940,1999,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,BrkTil,TA,TA,No,ALQ,351,Rec,181,112,644,GasA,Gd,Y,SBrkr,808,547,0,1355,1,0,2,0,4,2,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,140,0,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal,127500 +167,20,RL,NA,10708,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,ClearCr,Norm,Norm,1Fam,1Story,5,5,1955,1993,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,TA,CBlock,TA,TA,No,LwQ,379,BLQ,768,470,1617,GasA,Ex,Y,FuseA,1867,0,0,1867,1,0,1,0,2,1,TA,7,Typ,3,Gd,Attchd,1955,Fin,1,303,TA,TA,Y,476,0,0,0,142,0,NA,GdWo,NA,0,11,2009,COD,Normal,190000 +168,60,RL,86,10562,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,300,Gd,TA,PConc,Ex,TA,No,GLQ,1288,Unf,0,294,1582,GasA,Ex,Y,SBrkr,1610,551,0,2161,1,0,1,1,3,1,Ex,8,Typ,1,Gd,Attchd,2007,Fin,3,789,TA,TA,Y,178,120,0,0,0,0,NA,NA,NA,0,11,2007,New,Partial,325624 +169,60,RL,62,8244,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,840,840,GasA,Ex,Y,SBrkr,840,880,0,1720,0,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2004,Fin,2,440,TA,TA,Y,100,48,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,183500 +170,20,RL,NA,16669,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,1Story,8,6,1981,1981,Hip,WdShake,Plywood,Plywood,BrkFace,653,Gd,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,1686,1686,GasA,TA,Y,SBrkr,1707,0,0,1707,0,0,2,1,2,1,TA,6,Typ,1,TA,Attchd,1981,RFn,2,511,TA,TA,Y,574,64,0,0,0,0,NA,NA,NA,0,1,2006,WD,Normal,228000 +171,50,RM,NA,12358,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,OldTown,Feedr,Norm,1Fam,1.5Fin,5,6,1941,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,360,Unf,0,360,720,GasA,TA,Y,SBrkr,854,0,528,1382,0,0,1,1,2,1,TA,7,Typ,0,NA,Detchd,1991,Unf,2,660,TA,TA,Y,237,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,128500 +172,20,RL,141,31770,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1960,1960,Hip,CompShg,BrkFace,Plywood,Stone,112,TA,TA,CBlock,TA,Gd,Gd,BLQ,639,Unf,0,441,1080,GasA,Fa,Y,SBrkr,1656,0,0,1656,1,0,1,0,3,1,TA,7,Typ,2,Gd,Attchd,1960,Fin,2,528,TA,TA,P,210,62,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,215000 +173,160,RL,44,5306,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,StoneBr,Norm,Norm,TwnhsE,2Story,7,7,1987,1987,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,Gd,PConc,Gd,Gd,No,GLQ,495,Rec,215,354,1064,GasA,Gd,Y,SBrkr,1064,703,0,1767,1,0,2,0,2,1,Gd,5,Typ,1,TA,Attchd,1987,RFn,2,504,Gd,TA,Y,441,35,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,239000 +174,20,RL,80,10197,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1961,1961,Gable,CompShg,WdShing,Wd Shng,BrkCmn,491,TA,TA,CBlock,TA,TA,No,ALQ,288,Rec,374,700,1362,GasA,TA,Y,SBrkr,1362,0,0,1362,1,0,1,1,3,1,TA,6,Typ,1,TA,Attchd,1961,Unf,2,504,TA,TA,Y,0,20,0,0,0,0,NA,NA,NA,0,6,2008,COD,Normal,163000 +175,20,RL,47,12416,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,6,5,1986,1986,Gable,CompShg,VinylSd,Plywood,Stone,132,TA,TA,CBlock,Gd,Fa,No,ALQ,1398,LwQ,208,0,1606,GasA,TA,Y,SBrkr,1651,0,0,1651,1,0,2,0,3,1,TA,7,Min2,1,TA,Attchd,1986,Fin,2,616,TA,TA,Y,192,0,0,0,0,0,NA,NA,NA,0,11,2008,WD,Normal,184000 +176,20,RL,84,12615,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,1Story,6,7,1950,2001,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,Gd,Av,ALQ,477,Unf,0,725,1202,GasA,TA,Y,SBrkr,2158,0,0,2158,1,0,2,0,4,1,Gd,7,Typ,1,Gd,Attchd,1950,Unf,2,576,TA,TA,Y,0,29,39,0,0,0,NA,MnPrv,NA,0,6,2007,WD,Normal,243000 +177,60,RL,97,10029,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,ClearCr,Norm,Norm,1Fam,2Story,6,5,1988,1989,Gable,CompShg,Plywood,Plywood,BrkFace,268,Gd,TA,PConc,Gd,TA,No,GLQ,831,Unf,0,320,1151,GasA,TA,Y,SBrkr,1164,896,0,2060,0,1,2,1,4,1,TA,8,Typ,1,TA,Attchd,1988,Unf,2,521,TA,TA,Y,0,228,0,0,192,0,NA,NA,NA,0,9,2007,WD,Normal,211000 +178,50,RL,NA,13650,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1.5Fin,5,5,1958,1958,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,Gd,CBlock,TA,TA,No,ALQ,57,BLQ,441,554,1052,GasA,Ex,Y,SBrkr,1252,668,0,1920,1,0,2,0,4,1,Gd,8,Typ,1,Gd,Attchd,1958,Unf,2,451,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,172500 +179,20,RL,63,17423,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,StoneBr,Norm,Norm,1Fam,1Story,9,5,2008,2009,Hip,CompShg,VinylSd,VinylSd,Stone,748,Ex,TA,PConc,Ex,TA,No,GLQ,1904,Unf,0,312,2216,GasA,Ex,Y,SBrkr,2234,0,0,2234,1,0,2,0,1,1,Ex,9,Typ,1,Gd,Attchd,2009,Fin,3,1166,TA,TA,Y,0,60,0,0,0,0,NA,NA,NA,0,7,2009,New,Partial,501837 +180,30,RM,60,8520,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,6,1923,2006,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,TA,CBlock,TA,TA,No,Unf,0,Unf,0,968,968,GasA,TA,Y,SBrkr,968,0,0,968,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1935,Unf,2,480,Fa,TA,N,0,0,184,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,100000 +181,160,FV,NA,2117,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,2Story,6,5,2000,2000,Gable,CompShg,MetalSd,MetalSd,BrkFace,456,Gd,TA,PConc,Gd,TA,No,GLQ,436,Unf,0,320,756,GasA,Ex,Y,SBrkr,769,756,0,1525,0,0,2,1,3,1,Gd,5,Typ,1,TA,Detchd,2000,Unf,2,440,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,177000 +182,70,RL,54,7588,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,7,6,1920,1950,Gable,CompShg,Stucco,Stucco,None,0,TA,TA,BrkTil,Fa,TA,No,LwQ,352,Unf,0,441,793,GasA,Gd,Y,SBrkr,901,901,0,1802,0,0,1,1,4,1,TA,9,Typ,1,Gd,Detchd,1920,Unf,1,216,Fa,TA,Y,0,0,40,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,200100 +183,20,RL,60,9060,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Artery,Norm,1Fam,1Story,5,6,1957,2006,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,98,TA,TA,PConc,NA,NA,NA,NA,0,NA,0,0,0,GasA,Ex,Y,SBrkr,1340,0,0,1340,0,0,1,0,3,1,TA,7,Typ,1,Gd,Attchd,1957,RFn,1,252,TA,TA,Y,116,0,0,180,0,0,NA,MnPrv,NA,0,6,2007,WD,Normal,120000 +184,50,RM,63,11426,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1362,1362,GasA,Ex,Y,SBrkr,1362,720,0,2082,0,0,2,1,3,1,Gd,6,Mod,0,NA,Detchd,2003,Unf,2,484,TA,TA,N,280,238,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,200000 +185,50,RL,92,7438,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,BrkSide,RRAn,Feedr,1Fam,1.5Fin,5,8,1908,1991,Gable,CompShg,AsbShng,Plywood,None,0,TA,TA,PConc,Fa,TA,No,Unf,0,Unf,0,504,504,GasA,Gd,Y,SBrkr,936,316,0,1252,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1986,Unf,2,576,TA,TA,Y,104,0,0,0,0,0,NA,MnPrv,NA,0,6,2006,WD,Normal,127000 +186,75,RM,90,22950,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,2.5Fin,10,9,1892,1993,Gable,WdShngl,Wd Sdng,Wd Sdng,None,0,Gd,Gd,BrkTil,TA,TA,Mn,Unf,0,Unf,0,1107,1107,GasA,Ex,Y,SBrkr,1518,1518,572,3608,0,0,2,1,4,1,Ex,12,Typ,2,TA,Detchd,1993,Unf,3,840,Ex,TA,Y,0,260,0,0,410,0,NA,GdPrv,NA,0,6,2006,WD,Normal,475000 +187,80,RL,NA,9947,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Mitchel,Norm,Norm,1Fam,SLvl,7,5,1990,1991,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,Av,GLQ,611,Unf,0,577,1188,GasA,Ex,Y,SBrkr,1217,0,0,1217,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1990,Unf,2,497,TA,TA,Y,168,27,0,0,0,0,NA,GdPrv,NA,0,6,2009,WD,Normal,173000 +188,50,RL,60,10410,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,7,1916,1987,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Fa,TA,No,Unf,0,Unf,0,660,660,GasA,Ex,Y,SBrkr,808,704,144,1656,0,0,2,1,3,1,TA,8,Min2,0,NA,Detchd,1916,Unf,1,180,Fa,Fa,N,0,0,0,140,0,0,NA,MnPrv,NA,0,8,2009,WD,Normal,135000 +189,90,RL,64,7018,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,SawyerW,Feedr,Norm,Duplex,SFoyer,5,5,1979,1979,Gable,CompShg,Plywood,Plywood,Stone,275,TA,TA,CBlock,Gd,TA,Av,GLQ,1086,Unf,0,0,1086,GasA,TA,Y,SBrkr,1224,0,0,1224,2,0,0,2,2,2,TA,6,Typ,2,TA,Detchd,1979,Unf,2,528,TA,TA,Y,120,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Alloca,153337 +190,120,RL,41,4923,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,2001,2002,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Ex,TA,Av,GLQ,1153,Unf,0,440,1593,GasA,Ex,Y,SBrkr,1593,0,0,1593,1,0,1,1,0,1,Ex,5,Typ,1,Gd,Attchd,2001,Fin,2,682,TA,TA,Y,0,120,0,0,224,0,NA,NA,NA,0,8,2008,WD,Normal,286000 +191,70,RL,70,10570,Pave,NA,Reg,Bnk,AllPub,Inside,Mod,Crawfor,Norm,Norm,1Fam,2Story,8,8,1932,1994,Hip,CompShg,BrkFace,BrkFace,None,0,Gd,TA,CBlock,Gd,Gd,No,Rec,297,Unf,0,556,853,GasA,TA,Y,SBrkr,1549,1178,0,2727,0,0,2,1,3,1,Gd,10,Maj1,2,TA,Detchd,1932,Unf,2,440,TA,TA,Y,0,74,0,0,0,0,NA,NA,NA,0,12,2007,WD,Normal,315000 +192,60,RL,NA,7472,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NAmes,Norm,Norm,1Fam,2Story,7,9,1972,2004,Gable,CompShg,HdBoard,HdBoard,BrkFace,138,TA,TA,CBlock,TA,TA,No,ALQ,626,Unf,0,99,725,GasA,Gd,Y,SBrkr,725,754,0,1479,1,0,1,1,4,1,Gd,7,Typ,0,NA,Attchd,1972,Fin,2,484,TA,TA,Y,0,32,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,184000 +193,20,RL,68,9017,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,560,Unf,0,871,1431,GasA,Ex,Y,SBrkr,1431,0,0,1431,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1999,Fin,2,666,TA,TA,Y,0,35,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal,192000 +194,160,RM,24,2522,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,Twnhs,2Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,Stone,50,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,970,970,GasA,Ex,Y,SBrkr,970,739,0,1709,0,0,2,0,3,1,Gd,7,Maj1,0,NA,Detchd,2004,Unf,2,380,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,130000 +195,20,RL,60,7180,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,7,1972,1972,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,Av,ALQ,390,Unf,0,474,864,GasA,TA,Y,SBrkr,864,0,0,864,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1989,Unf,1,352,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,127000 +196,160,RL,24,2280,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NPkVill,Norm,Norm,Twnhs,2Story,6,6,1976,1976,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,566,Unf,0,289,855,GasA,TA,Y,SBrkr,855,601,0,1456,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1976,Unf,2,440,TA,TA,Y,87,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,148500 +197,20,RL,79,9416,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2007,2007,Hip,CompShg,CemntBd,CmentBd,Stone,205,Ex,TA,PConc,Ex,TA,No,GLQ,1126,Unf,0,600,1726,GasA,Ex,Y,SBrkr,1726,0,0,1726,1,0,2,0,3,1,Ex,8,Typ,1,Gd,Attchd,2007,Fin,3,786,TA,TA,Y,171,138,0,0,266,0,NA,NA,NA,0,9,2007,New,Partial,311872 +198,75,RL,174,25419,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Artery,Norm,1Fam,2Story,8,4,1918,1990,Gable,CompShg,Stucco,Stucco,None,0,Gd,Gd,PConc,TA,TA,No,GLQ,1036,LwQ,184,140,1360,GasA,Gd,Y,SBrkr,1360,1360,392,3112,1,1,2,0,4,1,Gd,8,Typ,1,Ex,Detchd,1918,Unf,2,795,TA,TA,Y,0,16,552,0,0,512,Ex,GdPrv,NA,0,3,2006,WD,Abnorml,235000 +199,75,RM,92,5520,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,2.5Fin,6,6,1912,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,755,755,GasA,Ex,Y,SBrkr,929,929,371,2229,0,0,1,0,5,1,TA,8,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,198,30,0,0,0,NA,MnPrv,NA,0,7,2009,WD,Abnorml,104000 +200,20,RL,76,9591,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2004,2005,Hip,CompShg,VinylSd,VinylSd,BrkFace,262,Gd,TA,PConc,Ex,TA,Av,GLQ,1088,Unf,0,625,1713,GasA,Ex,Y,SBrkr,1713,0,0,1713,1,0,2,0,3,1,Ex,7,Typ,1,Gd,Attchd,2004,Fin,3,856,TA,TA,Y,0,26,0,0,170,0,NA,NA,NA,0,1,2009,WD,Normal,274900 +201,20,RM,80,8546,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1121,1121,GasA,Ex,Y,SBrkr,1121,0,0,1121,0,0,2,0,2,1,TA,5,Typ,0,NA,Attchd,2003,RFn,2,440,TA,TA,Y,132,64,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal,140000 +202,20,RL,75,10125,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,6,6,1977,1977,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,641,LwQ,279,276,1196,GasA,TA,Y,SBrkr,1279,0,0,1279,0,1,2,0,3,1,TA,6,Typ,2,Fa,Detchd,1980,Unf,2,473,TA,TA,Y,238,83,0,0,0,0,NA,MnPrv,NA,0,2,2008,WD,Normal,171500 +203,50,RL,50,7000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Artery,Norm,1Fam,1.5Fin,6,6,1924,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,BrkTil,Fa,TA,No,LwQ,617,Unf,0,0,617,GasA,Gd,Y,SBrkr,865,445,0,1310,0,0,2,0,2,1,TA,6,Min1,0,NA,Attchd,1924,Unf,1,398,TA,TA,Y,0,0,126,0,0,0,NA,NA,NA,0,5,2006,COD,Normal,112000 +204,120,RM,NA,4438,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,TwnhsE,1Story,6,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,205,Gd,TA,PConc,Gd,TA,Av,GLQ,662,Unf,0,186,848,GasA,Ex,Y,SBrkr,848,0,0,848,1,0,1,0,1,1,Gd,3,Typ,1,Gd,Attchd,2004,RFn,2,420,TA,TA,Y,149,0,0,0,0,0,NA,NA,NA,0,1,2008,WD,Normal,149000 +205,50,RM,50,3500,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,7,1947,1950,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,CBlock,TA,TA,No,LwQ,312,Unf,0,408,720,GasA,TA,Y,SBrkr,720,564,0,1284,0,0,1,1,2,1,TA,5,Typ,0,NA,Detchd,1948,Unf,1,240,TA,TA,Y,0,35,0,0,0,0,NA,MnWw,NA,0,4,2009,WD,Normal,110000 +206,20,RL,99,11851,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,1Story,7,5,1990,1990,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1424,1424,GasA,Ex,Y,SBrkr,1442,0,0,1442,0,0,2,0,3,1,TA,5,Typ,0,NA,Attchd,1990,RFn,2,500,TA,TA,Y,0,34,0,508,0,0,NA,NA,NA,0,5,2009,WD,Normal,180500 +207,20,RL,40,13673,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,RRAe,Norm,1Fam,1Story,5,5,1962,1962,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Gd,CBlock,TA,TA,No,Unf,0,Unf,0,1140,1140,GasA,TA,Y,SBrkr,1696,0,0,1696,0,0,1,1,3,1,TA,8,Min2,1,TA,Attchd,1962,RFn,1,349,TA,TA,Y,0,30,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal,143900 +208,20,RL,NA,12493,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,5,1960,1960,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,ALQ,419,Rec,306,375,1100,GasA,TA,Y,SBrkr,1100,0,0,1100,1,0,1,0,3,1,TA,6,Typ,1,Po,Attchd,1960,RFn,1,312,TA,TA,Y,355,0,0,0,0,0,NA,GdWo,NA,0,4,2008,WD,Normal,141000 +209,60,RL,NA,14364,Pave,NA,IR1,Low,AllPub,Inside,Mod,SawyerW,Norm,Norm,1Fam,2Story,7,5,1988,1989,Gable,CompShg,Plywood,Plywood,BrkFace,128,Gd,TA,CBlock,Gd,TA,Gd,GLQ,1065,Unf,0,92,1157,GasA,Ex,Y,SBrkr,1180,882,0,2062,1,0,2,1,3,1,TA,7,Typ,1,Gd,Attchd,1988,Fin,2,454,TA,TA,Y,60,55,0,0,154,0,NA,NA,NA,0,4,2007,WD,Normal,277000 +210,20,RL,75,8250,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,7,1964,1964,Hip,CompShg,HdBoard,HdBoard,Stone,260,TA,TA,CBlock,Gd,TA,No,Rec,787,Unf,0,305,1092,GasA,Ex,Y,SBrkr,1092,0,0,1092,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1964,RFn,2,504,TA,Gd,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,7,2008,WD,Normal,145000 +211,30,RL,67,5604,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,6,1925,1950,Gable,CompShg,Stucco,Stucco,None,0,TA,TA,CBlock,TA,TA,No,Rec,468,Unf,0,396,864,GasA,TA,N,FuseA,864,0,0,864,1,0,1,0,2,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,96,0,0,0,NA,NA,NA,0,4,2008,WD,Normal,98000 +212,20,RL,83,10420,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,1Story,6,5,2009,2009,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Mn,GLQ,36,Unf,0,1176,1212,GasA,Ex,Y,SBrkr,1212,0,0,1212,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2009,RFn,2,460,TA,TA,Y,100,22,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal,186000 +213,60,FV,72,8640,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2009,2009,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,GLQ,822,Unf,0,78,900,GasA,Ex,Y,SBrkr,932,920,0,1852,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,2009,RFn,2,644,TA,TA,Y,168,108,0,0,0,0,NA,NA,NA,0,7,2009,New,Partial,252678 +214,20,RL,43,13568,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,5,1995,1995,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,ALQ,716,Unf,0,274,990,GasA,Ex,Y,SBrkr,990,0,0,990,0,1,1,0,3,1,TA,5,Typ,0,NA,Attchd,1996,Unf,2,576,TA,TA,Y,224,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,156000 +215,60,RL,NA,10900,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,CollgCr,Norm,Norm,1Fam,2Story,6,7,1977,1977,Gable,CompShg,HdBoard,HdBoard,BrkFace,153,TA,TA,CBlock,Gd,TA,No,GLQ,378,Unf,0,311,689,GasA,Ex,Y,SBrkr,689,703,0,1392,0,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1977,Fin,1,299,TA,TA,Y,0,36,0,0,0,0,NA,MnPrv,Shed,450,3,2010,WD,Normal,161750 +216,20,RL,72,10011,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1957,1996,Gable,CompShg,HdBoard,HdBoard,BrkFace,64,TA,TA,CBlock,TA,TA,No,BLQ,360,Unf,0,710,1070,GasA,TA,Y,SBrkr,1236,0,0,1236,0,1,1,0,2,1,Gd,6,Min1,1,Fa,Attchd,1957,Unf,1,447,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,5,2006,WD,Normal,134450 +217,20,RL,65,8450,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,266,Gd,TA,PConc,Gd,TA,Mn,GLQ,946,Unf,0,490,1436,GasA,Ex,Y,SBrkr,1436,0,0,1436,1,0,2,0,3,1,Gd,8,Typ,0,NA,Attchd,2004,Unf,2,484,TA,TA,Y,139,98,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal,210000 +218,70,RM,57,9906,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,4,4,1925,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,686,686,GasA,Fa,N,SBrkr,810,518,0,1328,0,0,1,0,3,1,TA,8,Typ,0,NA,Detchd,1940,Unf,1,210,TA,TA,Y,0,172,60,0,0,0,NA,NA,NA,0,9,2006,WD,Family,107000 +219,50,RL,NA,15660,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Crawfor,Norm,Norm,1Fam,1.5Fin,7,9,1939,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,312,Gd,Gd,CBlock,TA,TA,No,BLQ,341,Unf,0,457,798,GasA,Ex,Y,SBrkr,1137,817,0,1954,0,1,1,1,3,1,Gd,8,Typ,2,TA,Attchd,1939,Unf,2,431,TA,TA,Y,0,119,150,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,311500 +220,120,RL,43,3010,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,16,Gd,TA,PConc,Gd,TA,Av,GLQ,16,Unf,0,1232,1248,GasA,Ex,Y,SBrkr,1248,0,0,1248,0,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,2005,Fin,2,438,TA,TA,Y,108,0,0,0,0,0,NA,NA,NA,0,3,2006,New,Partial,167240 +221,20,RL,73,8990,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,1498,1498,GasA,Ex,Y,SBrkr,1498,0,0,1498,0,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,2006,RFn,2,675,TA,TA,Y,351,33,0,0,0,0,NA,NA,NA,0,4,2006,New,Partial,204900 +222,60,RL,NA,8068,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1010,1010,GasA,Ex,Y,SBrkr,1010,1257,0,2267,0,0,2,1,4,1,Gd,8,Typ,1,TA,BuiltIn,2002,RFn,2,390,TA,TA,Y,120,46,0,0,0,0,NA,NA,NA,0,12,2009,ConLI,Normal,200000 +223,60,RL,85,11475,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,RRAn,Norm,1Fam,2Story,6,6,1975,1975,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,550,Unf,0,163,713,GasA,TA,Y,SBrkr,811,741,0,1552,1,0,2,1,3,1,TA,6,Typ,1,TA,Attchd,1975,RFn,2,434,TA,TA,Y,209,208,0,0,0,0,NA,MnPrv,NA,0,2,2006,WD,Normal,179900 +224,20,RL,70,10500,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,6,1971,1971,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,ALQ,524,LwQ,180,160,864,GasA,Gd,Y,SBrkr,864,0,0,864,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1989,Unf,2,576,TA,TA,Y,216,0,0,0,0,0,NA,NA,NA,0,3,2009,WD,Abnorml,97000 +225,20,RL,103,13472,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,10,5,2003,2003,Hip,CompShg,VinylSd,VinylSd,BrkFace,922,Ex,TA,PConc,Ex,TA,Gd,GLQ,56,Unf,0,2336,2392,GasA,Ex,Y,SBrkr,2392,0,0,2392,0,0,2,0,3,1,Ex,8,Typ,1,Ex,Attchd,2003,Fin,3,968,TA,TA,Y,248,105,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,386250 +226,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,5,5,1971,1971,Gable,CompShg,HdBoard,HdBoard,BrkFace,142,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,630,630,GasA,TA,Y,SBrkr,630,672,0,1302,0,0,2,1,3,1,TA,6,Typ,0,NA,Detchd,1991,Unf,1,280,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2009,COD,Abnorml,112000 +227,60,RL,82,9950,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,7,5,1995,1995,Gable,CompShg,VinylSd,VinylSd,BrkFace,290,Gd,TA,PConc,Gd,TA,No,GLQ,565,Unf,0,638,1203,GasA,Ex,Y,SBrkr,1214,1306,0,2520,0,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1995,RFn,3,721,TA,TA,Y,224,114,0,0,0,0,NA,NA,NA,0,6,2007,WD,Abnorml,290000 +228,160,RM,21,1869,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,6,1970,1970,Gable,CompShg,HdBoard,HdBoard,BrkFace,127,TA,TA,CBlock,TA,TA,No,Rec,321,Unf,0,162,483,GasA,TA,Y,SBrkr,483,504,0,987,0,0,1,1,2,1,TA,5,Typ,0,NA,Detchd,1987,Unf,1,280,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal,106000 +229,20,RL,70,8521,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,5,5,1967,1967,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,ALQ,842,Unf,0,70,912,GasA,TA,Y,SBrkr,912,0,0,912,0,0,1,0,3,1,TA,5,Typ,1,Fa,Detchd,1974,Unf,1,336,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,5,2010,WD,Normal,125000 +230,120,RL,43,3182,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,16,Gd,TA,PConc,Gd,TA,Av,GLQ,16,Unf,0,1357,1373,GasA,Ex,Y,SBrkr,1555,0,0,1555,0,0,2,0,2,1,Gd,7,Typ,1,TA,Attchd,2005,Fin,2,430,TA,TA,Y,143,20,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,192500 +231,20,RL,73,8760,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1959,1959,Hip,CompShg,MetalSd,MetalSd,BrkFace,220,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1194,1194,GasA,TA,Y,SBrkr,1194,0,0,1194,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1959,RFn,1,312,TA,TA,Y,0,0,120,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,148000 +232,60,RL,174,15138,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1995,1996,Gable,CompShg,VinylSd,VinylSd,BrkFace,506,Gd,TA,PConc,Gd,TA,No,GLQ,689,Unf,0,773,1462,GasA,Ex,Y,SBrkr,1490,1304,0,2794,1,0,2,1,4,1,Ex,9,Typ,1,TA,Attchd,1995,Fin,3,810,TA,TA,Y,0,146,202,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,403000 +233,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,5,1972,1972,Gable,CompShg,HdBoard,HdBoard,BrkFace,297,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,483,483,GasA,TA,Y,SBrkr,483,504,0,987,0,0,1,1,2,1,TA,5,Typ,1,Po,Attchd,1972,Unf,1,288,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,94500 +234,20,RL,75,10650,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,6,1976,1976,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,Gd,Av,LwQ,182,ALQ,712,0,894,GasA,TA,Y,SBrkr,894,0,0,894,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1976,Unf,1,308,TA,TA,Y,365,0,0,0,0,0,NA,MnPrv,NA,0,2,2010,WD,Normal,128200 +235,60,RL,NA,7851,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,NA,NA,Gd,TA,PConc,Gd,TA,No,GLQ,625,Unf,0,235,860,GasA,Ex,Y,SBrkr,860,1100,0,1960,1,0,2,1,4,1,Gd,8,Typ,2,TA,BuiltIn,2002,Fin,2,440,TA,TA,Y,288,48,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,216500 +236,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,TwnhsE,2Story,6,3,1971,1971,Gable,CompShg,HdBoard,HdBoard,BrkFace,604,TA,TA,CBlock,TA,TA,No,ALQ,358,Unf,0,125,483,GasA,TA,Y,SBrkr,483,504,0,987,0,0,1,1,2,1,TA,5,Typ,0,NA,Detchd,1971,Unf,1,264,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal,89500 +237,20,RL,65,8773,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,98,Gd,TA,PConc,Gd,TA,Av,GLQ,24,Unf,0,1390,1414,GasA,Ex,Y,SBrkr,1414,0,0,1414,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2004,RFn,2,494,TA,TA,Y,132,105,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,185500 +238,60,RL,NA,9453,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,SawyerW,RRNe,Norm,1Fam,2Story,7,7,1993,2003,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,No,BLQ,402,Unf,0,594,996,GasA,Ex,Y,SBrkr,1014,730,0,1744,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,1993,RFn,2,457,TA,TA,Y,370,70,0,238,0,0,NA,NA,NA,0,2,2010,WD,Normal,194500 +239,20,RL,93,12030,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2007,2007,Hip,CompShg,VinylSd,VinylSd,BrkFace,254,Ex,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1694,1694,GasA,Ex,Y,SBrkr,1694,0,0,1694,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2007,Fin,3,818,TA,TA,Y,168,228,0,0,0,0,NA,NA,NA,0,12,2007,New,Partial,318000 +240,50,RL,52,8741,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,6,4,1945,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,Fa,No,LwQ,94,Unf,0,641,735,GasA,TA,Y,FuseA,798,689,0,1487,0,0,1,1,3,1,TA,7,Typ,1,Gd,Detchd,1949,Unf,1,220,TA,TA,Y,0,140,0,0,0,0,NA,MnPrv,NA,0,4,2010,WD,Normal,113000 +241,20,FV,75,9000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,Stone,36,Gd,TA,PConc,Gd,TA,Av,GLQ,1078,Unf,0,488,1566,GasA,Ex,Y,SBrkr,1566,0,0,1566,1,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2008,RFn,2,750,TA,TA,Y,144,168,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,262500 +242,30,RM,40,3880,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,9,1945,1997,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,329,Unf,0,357,686,GasA,Gd,Y,SBrkr,866,0,0,866,0,0,1,0,2,1,Gd,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,58,42,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,110500 +243,50,RM,63,5000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,4,1900,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,540,540,GasA,Gd,N,FuseA,889,551,0,1440,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1940,Unf,1,352,Fa,TA,Y,0,0,77,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,79000 +244,160,RL,75,10762,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,TwnhsE,2Story,6,6,1980,1980,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,626,626,GasA,TA,Y,SBrkr,626,591,0,1217,0,0,1,1,3,1,TA,6,Typ,1,TA,Attchd,1980,RFn,1,288,TA,TA,Y,0,28,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal,120000 +245,60,RL,NA,8880,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,1994,2002,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,695,Unf,0,253,948,GasA,Ex,Y,SBrkr,1222,888,0,2110,1,0,2,1,3,1,Gd,8,Typ,2,Fa,Attchd,1994,RFn,2,463,TA,TA,Y,0,130,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,205000 +246,20,RL,80,10400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,7,5,1988,1988,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,102,TA,TA,CBlock,Gd,TA,Av,GLQ,929,Unf,0,916,1845,GasA,Gd,Y,SBrkr,1872,0,0,1872,0,1,2,0,3,1,TA,6,Typ,1,TA,Attchd,1988,Fin,2,604,TA,TA,Y,197,39,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,241500 +247,190,RM,69,9142,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,2fmCon,2Story,6,8,1910,1950,Gable,CompShg,AsbShng,AsbShng,None,0,TA,Fa,Stone,Fa,TA,No,Unf,0,Unf,0,1020,1020,GasA,Gd,N,FuseP,908,1020,0,1928,0,0,2,0,4,2,Fa,9,Typ,0,NA,Detchd,1910,Unf,1,440,Po,Po,Y,0,60,112,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,137000 +248,20,RL,75,11310,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1954,1954,Hip,CompShg,Wd Sdng,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1367,1367,GasA,Ex,Y,SBrkr,1375,0,0,1375,0,0,1,0,2,1,TA,5,Typ,1,TA,Attchd,1954,Unf,2,451,TA,TA,Y,0,30,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,140000 +249,60,RL,72,11317,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,101,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,840,840,GasA,Ex,Y,SBrkr,840,828,0,1668,0,0,2,1,3,1,Gd,8,Typ,0,NA,Attchd,2003,RFn,2,500,TA,TA,Y,144,68,0,0,0,0,NA,NA,NA,0,9,2007,WD,Normal,180000 +250,50,RL,NA,159000,Pave,NA,IR2,Low,AllPub,CulDSac,Sev,ClearCr,Norm,Norm,1Fam,1.5Fin,6,7,1958,2006,Gable,CompShg,Wd Sdng,HdBoard,BrkCmn,472,Gd,TA,CBlock,Gd,TA,Gd,Rec,697,Unf,0,747,1444,GasA,Gd,Y,SBrkr,1444,700,0,2144,0,1,2,0,4,1,Gd,7,Typ,2,TA,Attchd,1958,Fin,2,389,TA,TA,Y,0,98,0,0,0,0,NA,NA,Shed,500,6,2007,WD,Normal,277000 +251,30,RL,55,5350,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,3,2,1940,1966,Gable,CompShg,Wd Sdng,Plywood,None,0,TA,Po,CBlock,TA,TA,No,Unf,0,Unf,0,728,728,GasA,Ex,Y,SBrkr,1306,0,0,1306,0,0,1,0,3,1,Fa,6,Mod,0,NA,NA,NA,NA,0,0,NA,NA,Y,263,0,0,0,0,0,NA,GdWo,Shed,450,5,2010,WD,Normal,76500 +252,120,RM,44,4750,Pave,NA,IR1,HLS,AllPub,Inside,Mod,Crawfor,Norm,Norm,TwnhsE,1Story,8,5,2006,2007,Hip,CompShg,VinylSd,VinylSd,Stone,481,Gd,TA,PConc,Gd,TA,Gd,GLQ,1573,Unf,0,0,1573,GasA,Ex,Y,SBrkr,1625,0,0,1625,1,1,2,0,2,1,Gd,5,Typ,1,Gd,Attchd,2006,Fin,2,538,TA,TA,Y,123,0,0,0,153,0,NA,NA,NA,0,12,2007,WD,Family,235000 +253,60,RL,65,8366,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,798,798,GasA,Ex,Y,SBrkr,798,842,0,1640,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2004,RFn,2,520,TA,TA,Y,138,45,0,0,0,0,NA,NA,NA,0,12,2008,WD,Normal,173000 +254,80,RL,85,9350,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,6,7,1964,1991,Hip,CompShg,HdBoard,HdBoard,BrkFace,108,TA,TA,CBlock,Gd,TA,Gd,LwQ,270,ALQ,580,452,1302,GasA,Ex,Y,SBrkr,1302,0,0,1302,0,1,2,0,3,1,Gd,7,Min1,0,NA,Attchd,1964,RFn,1,309,TA,TA,Y,333,0,0,0,0,0,NA,MnPrv,NA,0,10,2007,CWD,Normal,158000 +255,20,RL,70,8400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1957,1957,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,Rec,922,Unf,0,392,1314,GasA,TA,Y,SBrkr,1314,0,0,1314,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1957,RFn,1,294,TA,TA,Y,250,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,145000 +256,60,RL,66,8738,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,BrkFace,302,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,975,975,GasA,Ex,Y,SBrkr,1005,1286,0,2291,0,0,2,1,4,1,Gd,8,Typ,1,TA,BuiltIn,1999,Fin,2,429,TA,TA,Y,192,0,0,0,0,0,NA,NA,NA,0,2,2006,WD,Normal,230000 +257,60,FV,64,8791,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,6,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Rec,503,Unf,0,361,864,GasA,Ex,Y,SBrkr,864,864,0,1728,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2003,RFn,2,673,TA,TA,Y,216,56,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,207500 +258,20,RL,68,8814,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,Stone,180,Gd,TA,PConc,Gd,TA,No,GLQ,1334,Unf,0,270,1604,GasA,Ex,Y,SBrkr,1604,0,0,1604,1,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2006,RFn,2,660,TA,TA,Y,123,110,0,0,0,0,NA,NA,NA,0,3,2009,WD,Abnorml,220000 +259,60,RL,80,12435,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,BrkFace,172,Gd,TA,PConc,Gd,TA,No,GLQ,361,Unf,0,602,963,GasA,Ex,Y,SBrkr,963,829,0,1792,0,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,2001,RFn,2,564,TA,TA,Y,0,96,0,245,0,0,NA,NA,NA,0,5,2008,WD,Normal,231500 +260,20,RM,70,12702,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,5,1956,1956,Gable,CompShg,BrkFace,BrkFace,None,0,TA,TA,PConc,NA,NA,NA,NA,0,NA,0,0,0,GasA,Gd,Y,FuseA,882,0,0,882,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1956,Unf,1,308,TA,TA,Y,0,45,0,0,0,0,NA,NA,NA,0,12,2008,WD,Normal,97000 +261,80,RL,120,19296,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Artery,Norm,1Fam,SLvl,6,5,1962,1962,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,399,TA,TA,CBlock,TA,TA,Gd,Rec,672,ALQ,690,0,1362,GasA,TA,Y,SBrkr,1382,0,0,1382,1,0,1,0,3,1,TA,6,Typ,1,TA,Attchd,1991,Unf,2,884,TA,TA,Y,0,0,252,0,0,0,NA,GdWo,NA,0,5,2009,WD,Normal,176000 +262,60,RL,69,9588,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,2007,2007,Gable,CompShg,CemntBd,CmentBd,Stone,270,Gd,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1482,1482,GasA,Ex,Y,SBrkr,1482,1092,0,2574,0,0,2,1,3,1,Ex,10,Typ,1,Gd,BuiltIn,2007,Fin,3,868,TA,TA,Y,0,148,0,0,0,0,NA,NA,NA,0,11,2007,New,Partial,276000 +263,80,RL,88,8471,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Sawyer,Norm,Norm,1Fam,SLvl,6,7,1977,1995,Gable,CompShg,HdBoard,Plywood,BrkFace,46,TA,TA,CBlock,Gd,Gd,Av,ALQ,506,Unf,0,0,506,GasA,TA,Y,SBrkr,1212,0,0,1212,1,0,1,0,3,1,TA,6,Typ,1,TA,Attchd,1978,Unf,2,492,TA,TA,Y,292,12,0,0,0,0,NA,GdWo,NA,0,7,2006,WD,Normal,151000 +264,50,RM,50,5500,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,7,1929,2001,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,LwQ,234,ALQ,692,0,926,GasA,TA,Y,SBrkr,926,0,390,1316,1,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1974,Unf,2,484,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,130000 +265,30,RM,30,5232,Pave,Grvl,IR3,Bnk,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1Story,5,5,1925,2004,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Fa,TA,No,Unf,0,Unf,0,680,680,GasA,Gd,N,FuseP,764,0,0,764,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1965,Unf,2,504,TA,TA,N,0,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,73000 +266,20,RL,78,12090,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,6,1981,1981,Gable,CompShg,MetalSd,MetalSd,BrkFace,210,TA,Gd,CBlock,Gd,TA,No,GLQ,588,LwQ,228,606,1422,GasA,TA,Y,SBrkr,1422,0,0,1422,0,0,2,0,3,1,Gd,7,Typ,1,TA,Attchd,1981,Fin,2,576,TA,TA,Y,276,0,0,0,0,0,NA,GdPrv,NA,0,6,2008,WD,Normal,175500 +267,60,RL,70,11207,Pave,NA,IR1,HLS,AllPub,FR2,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1997,1997,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Av,GLQ,714,Unf,0,88,802,GasA,Gd,Y,SBrkr,802,709,0,1511,1,0,2,1,3,1,TA,8,Typ,1,TA,Attchd,1997,Fin,2,413,TA,TA,Y,95,75,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,185000 +268,75,RL,60,8400,Pave,NA,Reg,Bnk,AllPub,Inside,Mod,SWISU,Norm,Norm,1Fam,2.5Fin,5,8,1939,1997,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,LwQ,378,Unf,0,342,720,GasA,Ex,Y,SBrkr,1052,720,420,2192,0,0,2,1,4,1,Gd,8,Typ,1,Gd,Detchd,1939,Unf,1,240,TA,TA,Y,262,24,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,179500 +269,30,RM,71,6900,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,5,6,1940,1955,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,403,Rec,125,212,740,GasA,Ex,Y,SBrkr,778,0,0,778,0,0,1,0,2,1,TA,4,Typ,1,Gd,Detchd,1966,Fin,1,924,Ex,Ex,Y,0,25,0,0,0,0,NA,NA,NA,0,2,2008,WD,Normal,120500 +270,20,RL,NA,7917,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,1Story,6,7,1976,1976,Hip,CompShg,HdBoard,HdBoard,BrkFace,174,TA,Gd,CBlock,TA,Gd,No,BLQ,751,Unf,0,392,1143,GasA,TA,Y,SBrkr,1113,0,0,1113,1,0,1,1,3,1,TA,6,Typ,1,Fa,Attchd,1987,RFn,1,504,TA,Gd,Y,370,30,0,0,0,0,NA,GdPrv,NA,0,5,2007,WD,Normal,148000 +271,60,FV,84,10728,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,1095,1095,GasA,Gd,Y,SBrkr,1095,844,0,1939,0,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2006,RFn,3,1053,TA,TA,Y,192,51,0,0,0,0,NA,NA,NA,0,8,2006,New,Partial,266000 +272,20,RL,73,39104,Pave,NA,IR1,Low,AllPub,CulDSac,Sev,ClearCr,Norm,Norm,1Fam,1Story,7,7,1954,2005,Flat,Membran,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,Gd,LwQ,226,GLQ,1063,96,1385,GasA,Ex,Y,SBrkr,1363,0,0,1363,1,0,1,0,2,1,TA,5,Mod,2,TA,Attchd,1954,Unf,2,439,TA,TA,Y,81,0,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal,241500 +273,60,RL,92,11764,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,7,1999,2007,Gable,CompShg,VinylSd,VinylSd,BrkFace,348,Gd,TA,PConc,Gd,TA,No,GLQ,524,Unf,0,628,1152,GasA,Ex,Y,SBrkr,1164,1106,0,2270,0,0,2,1,4,1,Gd,9,Typ,1,Gd,Attchd,1999,Fin,3,671,TA,TA,Y,132,57,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,290000 +274,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Feedr,Norm,1Fam,1Story,6,6,1958,1988,Hip,CompShg,Wd Sdng,Wd Sdng,BrkCmn,183,TA,TA,CBlock,TA,TA,No,Rec,620,LwQ,620,0,1240,GasA,Gd,Y,SBrkr,1632,0,0,1632,1,0,2,0,3,1,TA,6,Min1,1,Gd,Attchd,1958,RFn,1,338,TA,TA,Y,289,0,0,0,0,0,NA,MnPrv,NA,0,4,2009,WD,Normal,139000 +275,20,RL,76,8314,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,7,1982,1982,Gable,CompShg,HdBoard,ImStucc,None,0,TA,TA,CBlock,TA,TA,Gd,ALQ,546,Unf,0,270,816,GasA,TA,Y,SBrkr,816,0,0,816,0,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1982,Unf,1,264,TA,TA,Y,168,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,124500 +276,50,RL,55,7264,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,7,7,1925,2007,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,Gd,BrkTil,TA,TA,No,Unf,0,Unf,0,952,952,GasW,Gd,N,SBrkr,952,596,0,1548,0,0,2,1,3,1,Ex,5,Typ,0,NA,Detchd,1978,Unf,2,672,TA,TA,Y,74,0,0,0,144,0,NA,NA,NA,0,10,2009,WD,Normal,205000 +277,20,RL,129,9196,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1560,1560,GasA,Ex,Y,SBrkr,1560,0,0,1560,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2003,Fin,2,573,TA,TA,Y,100,150,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,201000 +278,20,RL,140,19138,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,1Story,4,5,1951,1951,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,LwQ,120,Unf,0,744,864,GasA,Ex,Y,SBrkr,864,0,0,864,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1951,Unf,2,400,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,141000 +279,20,RL,107,14450,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2006,2007,Gable,CompShg,CemntBd,CmentBd,BrkFace,315,Ex,TA,PConc,Ex,TA,Gd,Unf,0,Unf,0,2121,2121,GasA,Ex,Y,SBrkr,2121,0,0,2121,0,0,2,1,3,1,Ex,8,Typ,1,Ex,Attchd,2007,Fin,3,732,TA,TA,Y,124,98,0,0,142,0,NA,NA,NA,0,5,2007,New,Partial,415298 +280,60,RL,83,10005,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,ClearCr,Norm,Norm,1Fam,2Story,7,5,1977,1977,Hip,CompShg,Plywood,Plywood,BrkFace,299,TA,TA,CBlock,Gd,TA,No,BLQ,392,Unf,0,768,1160,GasA,Ex,Y,SBrkr,1156,866,0,2022,0,0,2,1,4,1,TA,8,Typ,1,TA,Attchd,1977,Fin,2,505,TA,TA,Y,288,117,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal,192000 +281,60,RL,82,11287,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,6,1989,1989,Gable,CompShg,Plywood,Plywood,BrkFace,340,Gd,TA,CBlock,Gd,TA,Av,GLQ,421,Unf,0,386,807,GasA,Gd,Y,SBrkr,1175,807,0,1982,0,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1989,Fin,2,575,TA,TA,Y,0,84,0,196,0,0,NA,NA,NA,0,1,2007,WD,Normal,228500 +282,20,FV,60,7200,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,6,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,Stone,68,Gd,TA,PConc,Gd,TA,No,GLQ,905,Unf,0,357,1262,GasA,Gd,Y,SBrkr,1262,0,0,1262,0,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,2006,Fin,2,572,TA,TA,Y,0,120,0,0,0,0,NA,NA,NA,0,5,2006,New,Partial,185000 +283,120,RL,34,5063,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,Twnhs,1Story,7,5,2007,2008,Gable,CompShg,VinylSd,VinylSd,Stone,166,Gd,TA,PConc,Gd,TA,No,GLQ,904,Unf,0,410,1314,GasA,Ex,Y,SBrkr,1314,0,0,1314,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2008,RFn,2,626,TA,TA,Y,172,62,0,0,0,0,NA,NA,NA,0,4,2009,ConLw,Normal,207500 +284,20,RL,74,9612,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Feedr,Norm,1Fam,1Story,8,5,2008,2009,Gable,CompShg,VinylSd,VinylSd,Stone,72,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1468,1468,GasA,Ex,Y,SBrkr,1468,0,0,1468,0,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2008,Fin,3,898,TA,TA,Y,210,150,0,0,0,0,NA,NA,NA,0,12,2009,New,Partial,244600 +285,120,RL,50,8012,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,TwnhsE,1Story,6,5,1992,1992,Gable,CompShg,Plywood,ImStucc,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,430,Unf,0,1145,1575,GasA,Gd,Y,SBrkr,1575,0,0,1575,1,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,1992,RFn,2,529,TA,TA,Y,0,0,52,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,179200 +286,160,FV,35,4251,Pave,Pave,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,7,5,2006,2007,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,625,625,GasA,Ex,Y,SBrkr,625,625,0,1250,0,0,2,1,2,1,Gd,5,Typ,0,NA,Detchd,2006,RFn,2,528,TA,TA,Y,0,54,0,0,0,0,NA,NA,NA,0,6,2007,New,Partial,164700 +287,50,RL,77,9786,Pave,NA,IR1,Bnk,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1.5Fin,6,7,1962,1981,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,600,Unf,0,312,912,GasA,TA,Y,SBrkr,1085,649,0,1734,0,0,1,1,3,1,Gd,7,Typ,1,Gd,Attchd,1962,RFn,2,440,TA,TA,Y,0,0,0,0,128,0,NA,GdPrv,NA,0,6,2006,WD,Normal,159000 +288,20,RL,NA,8125,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,4,1971,1971,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,BLQ,614,Unf,0,244,858,GasA,TA,Y,SBrkr,858,0,0,858,0,0,1,0,3,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,88000 +289,20,RL,NA,9819,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1967,1967,Gable,CompShg,MetalSd,MetalSd,BrkFace,31,TA,Gd,CBlock,TA,TA,No,BLQ,450,Unf,0,432,882,GasA,TA,Y,SBrkr,900,0,0,900,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1970,Unf,1,280,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,2,2010,WD,Normal,122000 +290,70,RL,60,8730,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,RRAn,Norm,1Fam,2Story,6,7,1915,2003,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,698,698,GasA,Ex,Y,FuseA,698,698,0,1396,0,0,1,0,3,1,TA,7,Typ,0,NA,Detchd,2003,Unf,1,384,TA,TA,Y,0,0,0,0,259,0,NA,NA,NA,0,7,2007,WD,Normal,153575 +291,60,RL,120,15611,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1079,1079,GasA,Ex,Y,SBrkr,1079,840,0,1919,0,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2006,RFn,2,685,Gd,TA,Y,0,51,0,0,0,0,NA,NA,NA,0,7,2006,New,Partial,233230 +292,190,RL,55,5687,Pave,Grvl,Reg,Bnk,AllPub,Inside,Gtl,SWISU,Norm,Norm,2fmCon,2Story,5,6,1912,2000,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Fa,PConc,TA,Fa,No,Rec,210,Unf,0,570,780,GasA,Ex,N,SBrkr,936,780,0,1716,1,0,2,0,6,1,Fa,9,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,184,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal,135900 +293,50,RL,60,11409,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,5,4,1949,2008,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,LwQ,292,Unf,0,476,768,GasA,Gd,Y,SBrkr,1148,568,0,1716,0,0,1,1,3,1,TA,8,Min2,1,Gd,Attchd,1949,Unf,1,281,TA,TA,Y,0,0,0,0,160,0,NA,NA,NA,0,1,2009,WD,Normal,131000 +294,60,RL,NA,16659,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NWAmes,PosA,Norm,1Fam,2Story,7,7,1977,1994,Gable,CompShg,Plywood,Plywood,BrkFace,34,TA,TA,CBlock,TA,TA,No,ALQ,795,Unf,0,0,795,GasA,Fa,Y,SBrkr,1468,795,0,2263,1,0,2,1,3,1,Gd,9,Typ,1,TA,Attchd,1977,Fin,2,539,TA,TA,Y,0,250,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal,235000 +295,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1953,1953,Hip,CompShg,HdBoard,HdBoard,Stone,238,TA,TA,CBlock,TA,TA,No,GLQ,1285,Unf,0,131,1416,GasA,TA,Y,SBrkr,1644,0,0,1644,1,0,1,0,3,1,TA,7,Typ,2,Gd,Attchd,1953,Fin,2,418,TA,TA,Y,110,0,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal,167000 +296,80,RL,37,7937,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Mitchel,Norm,Norm,1Fam,SLvl,6,6,1984,1984,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,Av,GLQ,819,Unf,0,184,1003,GasA,TA,Y,SBrkr,1003,0,0,1003,1,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1984,Unf,2,588,TA,TA,Y,120,0,0,0,0,0,NA,GdPrv,NA,0,3,2006,WD,Normal,142500 +297,50,RM,75,13710,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,5,5,1950,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,420,Unf,0,490,910,GasA,TA,Y,FuseA,910,648,0,1558,0,0,1,1,4,1,TA,6,Typ,0,NA,Attchd,1950,Unf,1,282,TA,TA,Y,289,0,0,0,0,0,NA,MnPrv,NA,0,6,2007,WD,Normal,152000 +298,60,FV,66,7399,Pave,Pave,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,1997,1998,Hip,CompShg,VinylSd,VinylSd,BrkFace,1600,Gd,TA,PConc,Gd,TA,No,BLQ,649,Unf,0,326,975,GasA,Ex,Y,SBrkr,975,975,0,1950,0,0,2,1,3,1,Gd,7,Typ,1,TA,Detchd,1997,RFn,2,576,TA,TA,Y,0,10,0,0,198,0,NA,NA,NA,0,6,2007,WD,Normal,239000 +299,60,RL,90,11700,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,6,6,1968,1968,Mansard,CompShg,HdBoard,AsphShn,BrkFace,365,Gd,TA,CBlock,TA,TA,No,ALQ,384,Rec,175,143,702,GasA,Gd,Y,SBrkr,1041,702,0,1743,0,1,1,2,3,1,TA,7,Typ,1,Gd,Attchd,1968,Unf,2,539,TA,TA,Y,224,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,175000 +300,20,RL,80,14000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,6,8,1950,2004,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Gd,CBlock,TA,TA,No,Unf,0,Unf,0,1092,1092,GasA,Ex,Y,SBrkr,1152,0,0,1152,0,1,1,0,3,1,Gd,6,Typ,1,Gd,Attchd,1950,Unf,1,300,TA,TA,Y,0,36,0,0,0,0,NA,GdPrv,NA,0,8,2009,WD,Family,158500 +301,190,RL,90,15750,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Crawfor,Norm,Norm,2fmCon,1Story,5,5,1953,1953,Hip,CompShg,MetalSd,MetalSd,BrkFace,56,TA,TA,CBlock,TA,TA,Mn,BLQ,841,Unf,0,324,1165,GasA,TA,Y,SBrkr,1336,0,0,1336,1,0,1,0,2,1,TA,5,Typ,2,Gd,Attchd,1953,Unf,1,375,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,157000 +302,60,RL,66,16226,Pave,NA,IR3,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,1998,1999,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,281,Unf,0,747,1028,GasA,Ex,Y,SBrkr,1210,1242,0,2452,0,0,2,1,4,1,Gd,9,Typ,1,TA,BuiltIn,1998,Fin,2,683,TA,TA,Y,208,50,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,267000 +303,20,RL,118,13704,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2001,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,150,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1541,1541,GasA,Ex,Y,SBrkr,1541,0,0,1541,0,0,2,0,3,1,Gd,6,Typ,1,TA,Attchd,2001,RFn,3,843,TA,TA,Y,468,81,0,0,0,0,NA,NA,NA,0,1,2006,WD,Normal,205000 +304,20,RL,70,9800,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,7,1972,1972,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,TA,TA,No,ALQ,894,Unf,0,0,894,GasA,TA,Y,SBrkr,894,0,0,894,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1975,Unf,2,552,TA,TA,Y,256,0,0,0,0,0,NA,GdWo,NA,0,7,2006,WD,Abnorml,149900 +305,75,RM,87,18386,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2.5Fin,7,9,1880,2002,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,1470,1470,GasA,Ex,Y,SBrkr,1675,1818,0,3493,0,0,3,0,3,1,Gd,10,Typ,1,Ex,Attchd,2003,Unf,3,870,TA,TA,Y,302,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,295000 +306,20,RL,80,10386,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2004,2005,Gable,CompShg,CemntBd,CmentBd,Stone,246,Gd,TA,PConc,Gd,TA,No,GLQ,1464,Unf,0,536,2000,GasA,Ex,Y,SBrkr,2000,0,0,2000,1,0,2,0,3,1,Gd,8,Typ,0,NA,Attchd,2004,Fin,3,888,TA,TA,Y,168,0,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,305900 +307,60,RL,116,13474,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Feedr,Norm,1Fam,2Story,7,5,1990,1991,Gable,CompShg,HdBoard,Plywood,BrkFace,246,Gd,TA,CBlock,Gd,TA,No,ALQ,700,Unf,0,0,700,GasA,Gd,Y,SBrkr,1122,1121,0,2243,1,0,2,1,4,1,Gd,8,Typ,1,TA,Attchd,1990,RFn,3,746,TA,TA,Y,127,44,224,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,225000 +308,50,RM,NA,7920,Pave,Grvl,IR1,Lvl,AllPub,Inside,Gtl,IDOTRR,Artery,Norm,1Fam,1.5Fin,6,7,1920,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Fa,CBlock,TA,TA,No,Unf,0,Unf,0,319,319,GasA,TA,Y,FuseA,1035,371,0,1406,0,0,1,0,3,1,Fa,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,144,0,0,0,0,NA,MnPrv,NA,0,3,2008,WD,Normal,89500 +309,30,RL,NA,12342,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,5,1940,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,262,Unf,0,599,861,GasA,Ex,Y,SBrkr,861,0,0,861,0,0,1,0,1,1,TA,4,Typ,0,NA,Detchd,1961,Unf,2,539,TA,TA,Y,158,0,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal,82500 +310,20,RL,90,12378,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,Gd,GLQ,1274,Unf,0,622,1896,GasA,Ex,Y,SBrkr,1944,0,0,1944,1,0,2,0,3,1,Ex,8,Typ,3,Ex,Attchd,2003,Fin,3,708,TA,TA,Y,208,175,0,0,0,0,NA,NA,NA,0,11,2006,WD,Normal,360000 +311,60,RL,NA,7685,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1993,1994,Gable,CompShg,HdBoard,HdBoard,BrkFace,112,TA,TA,PConc,Gd,TA,No,ALQ,518,Unf,0,179,697,GasA,Gd,Y,SBrkr,697,804,0,1501,0,0,2,1,3,1,Gd,6,Typ,1,TA,Attchd,1993,Fin,2,420,TA,TA,Y,190,63,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,165600 +312,20,RL,50,8000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1948,2002,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,680,Unf,0,292,972,GasA,Ex,Y,SBrkr,972,0,0,972,1,0,1,0,2,1,TA,5,Typ,1,Gd,Detchd,1948,Unf,1,240,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,132000 +313,190,RM,65,7800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,2fmCon,1.5Fin,5,7,1939,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,Gd,TA,Mn,Rec,507,Unf,0,286,793,GasA,TA,Y,SBrkr,793,325,0,1118,1,0,1,0,3,1,TA,5,Typ,1,Gd,Detchd,1939,Unf,2,410,TA,TA,Y,0,0,0,0,271,0,NA,MnPrv,NA,0,5,2006,WD,Normal,119900 +314,20,RL,150,215245,Pave,NA,IR3,Low,AllPub,Inside,Sev,Timber,Norm,Norm,1Fam,1Story,7,5,1965,1965,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,Gd,TA,Gd,ALQ,1236,Rec,820,80,2136,GasW,TA,Y,SBrkr,2036,0,0,2036,2,0,2,0,3,1,TA,8,Typ,2,Gd,Attchd,1965,RFn,2,513,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,375000 +315,70,RM,60,9600,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,7,7,1925,1990,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,Gd,No,LwQ,16,Unf,0,712,728,GasA,Ex,Y,SBrkr,832,809,0,1641,0,1,1,1,3,1,Ex,6,Typ,1,Gd,Detchd,1925,Unf,2,546,Fa,TA,Y,0,0,234,0,0,0,NA,NA,NA,0,8,2006,WD,Normal,178000 +316,60,RL,71,7795,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,425,Unf,0,291,716,GasA,Ex,Y,SBrkr,716,716,0,1432,1,0,2,1,3,1,Gd,6,Typ,1,Gd,Attchd,2004,Fin,2,432,TA,TA,Y,100,51,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,188500 +317,60,RL,94,13005,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NWAmes,Norm,Norm,1Fam,2Story,7,7,1980,1980,Gable,CompShg,CemntBd,CmentBd,BrkFace,278,Gd,TA,CBlock,Gd,TA,No,GLQ,692,Unf,0,153,845,GasA,TA,Y,SBrkr,1153,1200,0,2353,1,0,2,1,4,1,Ex,10,Typ,1,TA,Attchd,1983,RFn,2,484,TA,TA,Y,288,195,0,0,0,0,NA,GdPrv,NA,0,8,2009,WD,Normal,260000 +318,60,FV,75,9000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1088,1088,GasA,Ex,Y,SBrkr,1088,871,0,1959,0,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2006,RFn,3,1025,TA,TA,Y,208,46,0,0,0,0,NA,NA,NA,0,12,2007,WD,Normal,270000 +319,60,RL,90,9900,Pave,NA,Reg,Low,AllPub,Inside,Mod,NoRidge,Norm,Norm,1Fam,2Story,7,5,1993,1993,Gable,CompShg,HdBoard,HdBoard,BrkFace,256,Gd,TA,PConc,Gd,TA,Gd,GLQ,987,Unf,0,360,1347,GasA,Ex,Y,SBrkr,1372,1274,0,2646,1,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1993,RFn,3,656,TA,TA,Y,340,60,144,0,0,0,NA,NA,NA,0,4,2009,WD,Normal,260000 +320,80,RL,NA,14115,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,SLvl,7,5,1980,1980,Gable,CompShg,Plywood,Plywood,BrkFace,225,TA,TA,CBlock,Gd,TA,Av,GLQ,1036,Unf,0,336,1372,GasA,TA,Y,SBrkr,1472,0,0,1472,1,0,2,0,3,1,TA,6,Typ,2,TA,Attchd,1980,Unf,2,588,TA,TA,Y,233,48,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,187500 +321,60,RL,111,16259,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,Stone,370,TA,TA,PConc,Ex,Gd,Av,Unf,0,Unf,0,1249,1249,GasA,Ex,Y,SBrkr,1249,1347,0,2596,0,0,3,1,4,1,Gd,9,Typ,0,NA,Attchd,2006,RFn,3,840,TA,TA,Y,240,154,0,0,0,0,NA,NA,NA,0,9,2006,New,Partial,342643 +322,60,RL,99,12099,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,388,Gd,TA,PConc,Ex,TA,Av,GLQ,970,Unf,0,166,1136,GasA,Ex,Y,SBrkr,1136,1332,0,2468,1,0,2,1,4,1,Gd,10,Typ,1,Gd,BuiltIn,2004,Fin,3,872,TA,TA,Y,184,154,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,354000 +323,60,RL,86,10380,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,1986,1987,Gable,CompShg,Plywood,Plywood,BrkFace,172,Gd,TA,CBlock,TA,TA,Gd,LwQ,28,ALQ,1474,0,1502,GasA,Ex,Y,SBrkr,1553,1177,0,2730,1,0,2,1,4,1,Gd,8,Typ,1,TA,Attchd,1987,Fin,2,576,TA,TA,Y,201,96,0,0,0,0,NA,MnPrv,NA,0,8,2007,WD,Normal,301000 +324,20,RM,49,5820,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,3,8,1955,2005,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,256,Unf,0,906,1162,GasA,Ex,Y,SBrkr,1163,0,0,1163,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1955,Unf,1,220,Fa,TA,Y,142,98,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,126175 +325,80,RL,96,11275,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,PosN,Norm,1Fam,SLvl,7,7,1967,2007,Mansard,WdShake,Wd Sdng,Wd Sdng,BrkFace,300,Gd,Gd,CBlock,Gd,TA,No,Unf,0,Unf,0,710,710,GasA,Ex,Y,SBrkr,1898,1080,0,2978,0,0,2,1,5,1,Gd,11,Typ,1,Gd,BuiltIn,1961,Fin,2,564,TA,TA,Y,240,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,242000 +326,45,RM,50,5000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,RRAe,Norm,1Fam,1.5Unf,5,6,1941,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,Av,BLQ,116,Unf,0,604,720,GasA,Po,N,FuseF,803,0,0,803,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1941,Unf,2,360,TA,TA,Y,0,0,244,0,0,0,NA,NA,NA,0,12,2007,WD,Normal,87000 +327,120,RL,32,10846,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Veenker,Norm,Norm,TwnhsE,1Story,8,5,1993,1993,Gable,CompShg,BrkFace,BrkFace,None,0,Gd,TA,PConc,Gd,TA,Gd,GLQ,1619,Unf,0,100,1719,GasA,Ex,Y,SBrkr,1719,0,0,1719,2,0,1,1,1,1,Gd,6,Typ,2,Gd,Attchd,1993,Fin,2,473,TA,TA,Y,122,30,0,0,0,0,NA,NA,NA,0,5,2008,Con,Normal,324000 +328,20,RL,80,11600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1960,1960,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,175,TA,TA,CBlock,TA,TA,No,Rec,565,Unf,0,818,1383,GasA,TA,Y,SBrkr,1383,0,0,1383,0,0,1,1,3,1,TA,7,Typ,0,NA,Attchd,1960,RFn,1,292,TA,TA,Y,0,45,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,145250 +329,75,RL,NA,11888,Pave,Pave,IR1,Bnk,AllPub,Inside,Gtl,BrkSide,PosN,Norm,1Fam,2.5Unf,6,6,1916,1994,Gable,CompShg,Wd Sdng,Wd Shng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,844,844,GasA,Gd,N,FuseA,1445,689,0,2134,0,0,2,0,5,1,Gd,10,Typ,0,NA,Detchd,1930,Unf,2,441,TA,TA,Y,0,60,268,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,214500 +330,70,RM,60,6402,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Norm,Norm,1Fam,2Story,5,5,1920,1950,Gable,CompShg,Wd Sdng,Wd Shng,None,0,TA,TA,PConc,TA,TA,Mn,Unf,0,Unf,0,596,596,GasA,TA,N,SBrkr,596,596,0,1192,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1920,Unf,1,189,Fa,Fa,N,0,0,137,0,0,0,NA,GdWo,NA,0,7,2009,WD,Normal,78000 +331,90,RL,NA,10624,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,Duplex,1Story,5,4,1964,1964,Gable,CompShg,HdBoard,HdBoard,BrkFace,84,TA,TA,CBlock,TA,TA,No,GLQ,40,Rec,264,1424,1728,GasA,TA,Y,SBrkr,1728,0,0,1728,0,1,2,0,6,2,TA,10,Typ,0,NA,Detchd,2002,Unf,1,352,TA,TA,Y,155,0,0,0,0,0,NA,NA,NA,0,11,2007,WD,Normal,119000 +332,20,RL,70,8176,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1958,1992,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,846,Unf,0,210,1056,GasA,Fa,Y,SBrkr,1056,0,0,1056,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1958,RFn,1,308,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,139000 +333,20,RL,85,10655,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,296,Gd,TA,PConc,Gd,TA,No,GLQ,1124,NA,479,1603,3206,GasA,Ex,Y,SBrkr,1629,0,0,1629,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2003,RFn,3,880,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal,284000 +334,120,RM,59,8198,Pave,NA,Reg,Lvl,AllPub,FR3,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,Stone,146,Gd,TA,PConc,Gd,TA,Av,GLQ,720,Unf,0,638,1358,GasA,Ex,Y,SBrkr,1358,0,0,1358,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2004,RFn,2,484,TA,TA,Y,192,30,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,207000 +335,60,RL,59,9042,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Gd,GLQ,828,Unf,0,115,943,GasA,Gd,Y,SBrkr,943,695,0,1638,1,0,2,1,3,1,TA,7,Typ,2,TA,Attchd,1998,Fin,2,472,TA,TA,Y,100,38,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,192000 +336,190,RL,NA,164660,Grvl,NA,IR1,HLS,AllPub,Corner,Sev,Timber,Norm,Norm,2fmCon,1.5Fin,5,6,1965,1965,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,Gd,ALQ,1249,BLQ,147,103,1499,GasA,Ex,Y,SBrkr,1619,167,0,1786,2,0,2,0,3,1,TA,7,Typ,2,Gd,Attchd,1965,Fin,2,529,TA,TA,Y,670,0,0,0,0,0,NA,NA,Shed,700,8,2008,WD,Normal,228950 +337,20,RL,86,14157,Pave,NA,IR1,HLS,AllPub,Corner,Gtl,StoneBr,Norm,Norm,1Fam,1Story,9,5,2005,2006,Hip,CompShg,VinylSd,VinylSd,Stone,200,Gd,TA,PConc,Ex,TA,Gd,GLQ,1249,Unf,0,673,1922,GasA,Ex,Y,SBrkr,1922,0,0,1922,1,0,2,0,3,1,Gd,8,Typ,1,Gd,Attchd,2005,Fin,3,676,TA,TA,Y,178,51,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,377426 +338,20,RL,70,9135,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2002,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,113,Gd,TA,PConc,Gd,TA,Av,GLQ,810,Unf,0,726,1536,GasA,Ex,Y,SBrkr,1536,0,0,1536,1,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2002,RFn,2,532,TA,TA,Y,192,74,0,0,0,0,NA,NA,NA,0,12,2008,WD,Normal,214000 +339,20,RL,91,14145,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NWAmes,Norm,Norm,1Fam,1Story,7,7,1984,1998,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,TA,CBlock,Gd,TA,Mn,ALQ,213,Unf,0,995,1208,GasA,Ex,Y,SBrkr,1621,0,0,1621,1,0,2,0,3,1,Gd,8,Typ,0,NA,Attchd,1984,RFn,2,440,TA,TA,Y,108,45,0,0,0,0,NA,NA,Shed,400,5,2006,WD,Normal,202500 +340,20,RL,66,12400,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Feedr,Norm,1Fam,1Story,6,7,1958,1998,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,176,TA,TA,CBlock,TA,Fa,No,Rec,585,Unf,0,630,1215,GasA,TA,Y,FuseA,1215,0,0,1215,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1958,Unf,1,297,TA,TA,Y,0,0,0,0,234,0,NA,NA,NA,0,6,2009,WD,Normal,155000 +341,60,RL,85,14191,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,2Story,8,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,967,967,GasA,Ex,Y,SBrkr,993,915,0,1908,0,0,2,1,4,1,Gd,9,Typ,0,NA,Attchd,2002,Fin,2,431,TA,TA,Y,135,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,202900 +342,20,RH,60,8400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Feedr,Norm,1Fam,1Story,4,4,1950,1950,Gable,CompShg,Wd Sdng,AsbShng,None,0,Fa,Fa,CBlock,TA,Fa,No,Unf,0,Unf,0,721,721,GasA,Gd,Y,SBrkr,841,0,0,841,0,0,1,0,2,1,TA,4,Typ,0,NA,CarPort,1950,Unf,1,294,TA,TA,N,250,0,24,0,0,0,NA,NA,NA,0,9,2009,WD,Normal,82000 +343,90,RL,NA,8544,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,Duplex,1Story,3,4,1949,1950,Gable,CompShg,Stucco,Stucco,BrkFace,340,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,Wall,Fa,N,FuseA,1040,0,0,1040,0,0,2,0,2,2,TA,6,Typ,0,NA,Detchd,1949,Unf,2,400,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,87500 +344,120,RL,63,8849,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,9,5,2005,2005,Hip,CompShg,MetalSd,MetalSd,BrkFace,616,Ex,TA,PConc,Ex,TA,No,GLQ,28,Unf,0,1656,1684,GasA,Ex,Y,SBrkr,1684,0,0,1684,0,0,2,0,2,1,Ex,6,Typ,1,Ex,Attchd,2005,RFn,2,564,TA,TA,Y,495,72,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,266000 +345,160,RM,36,2592,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,2Story,5,3,1976,1976,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,Gd,TA,No,Rec,129,BLQ,232,175,536,GasA,TA,Y,SBrkr,536,576,0,1112,0,0,1,1,3,1,TA,4,Typ,0,NA,Attchd,1976,Unf,1,336,TA,TA,Y,182,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,85000 +346,50,RL,65,6435,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,RRAn,Norm,1Fam,1.5Fin,6,5,1939,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,972,972,GasA,Gd,Y,SBrkr,972,605,0,1577,0,0,1,0,3,1,Fa,6,Typ,1,Gd,Detchd,1939,Unf,1,312,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal,140200 +347,20,RL,NA,12772,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,8,1960,1998,Hip,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,Mn,BLQ,498,Unf,0,460,958,GasA,TA,Y,SBrkr,958,0,0,958,0,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1960,RFn,1,301,TA,TA,Y,0,0,0,0,0,0,NA,NA,Gar2,15500,4,2007,WD,Normal,151500 +348,20,RL,NA,17600,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1960,1960,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,30,TA,TA,CBlock,TA,TA,No,BLQ,1270,Unf,0,208,1478,GasA,Ex,Y,FuseA,1478,0,0,1478,1,0,2,0,3,1,TA,6,Typ,2,Gd,Attchd,1960,Unf,2,498,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,12,2009,WD,Normal,157500 +349,160,RL,36,2448,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,Twnhs,2Story,7,5,2003,2004,Gable,CompShg,VinylSd,Wd Shng,Stone,106,Gd,TA,PConc,Gd,TA,No,GLQ,573,Unf,0,191,764,GasA,Ex,Y,SBrkr,764,862,0,1626,1,0,2,1,2,1,Gd,6,Typ,0,NA,BuiltIn,2003,RFn,2,474,TA,TA,Y,0,27,0,0,0,0,NA,NA,NA,0,10,2008,WD,Normal,154000 +350,60,RL,56,20431,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2005,2006,Hip,CompShg,CemntBd,CmentBd,BrkFace,870,Ex,TA,PConc,Ex,TA,No,GLQ,1410,Unf,0,438,1848,GasA,Ex,Y,SBrkr,1848,880,0,2728,1,0,2,1,4,1,Ex,10,Typ,2,Ex,Attchd,2006,Fin,3,706,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2006,New,Partial,437154 +351,120,RL,68,7820,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,9,5,2007,2007,Hip,CompShg,MetalSd,MetalSd,BrkFace,362,Ex,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1869,1869,GasA,Ex,Y,SBrkr,1869,0,0,1869,0,0,2,0,2,1,Ex,6,Typ,1,Gd,Attchd,2007,RFn,2,617,TA,TA,Y,210,54,0,0,0,0,NA,NA,NA,0,12,2007,New,Partial,318061 +352,120,RL,NA,5271,Pave,NA,IR1,Low,AllPub,Inside,Mod,ClearCr,Norm,Norm,1Fam,1Story,7,5,1986,1986,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,Gd,TA,Gd,GLQ,1082,Unf,0,371,1453,GasA,Gd,Y,SBrkr,1453,0,0,1453,1,0,1,1,2,1,Gd,6,Typ,1,TA,Attchd,1986,RFn,2,445,TA,TA,Y,0,80,0,0,184,0,NA,NA,NA,0,12,2006,WD,Abnorml,190000 +353,50,RL,60,9084,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Artery,Norm,1Fam,1.5Fin,5,6,1941,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,Fa,Mn,LwQ,236,Rec,380,0,616,GasA,TA,N,SBrkr,616,495,0,1111,0,1,1,0,3,1,TA,5,Typ,0,NA,Detchd,1941,Unf,1,200,TA,Fa,Y,48,0,0,0,0,0,NA,NA,NA,0,3,2008,ConLw,Normal,95000 +354,30,RM,60,8520,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,6,8,1928,2003,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,BrkTil,TA,TA,No,Unf,0,Unf,0,624,624,GasA,Gd,Y,SBrkr,720,0,0,720,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,2005,Unf,2,484,TA,TA,Y,106,0,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,105900 +355,50,RL,60,8400,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1.5Fin,6,5,1940,2000,Gable,CompShg,Wd Sdng,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,LwQ,388,Unf,0,552,940,GasA,Ex,Y,SBrkr,1192,403,0,1595,0,0,1,0,2,1,TA,6,Typ,2,Gd,Attchd,1940,Unf,1,240,TA,TA,Y,0,0,108,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,140000 +356,20,RL,105,11249,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,6,5,1995,1995,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,Gd,PConc,Gd,Gd,No,ALQ,334,BLQ,544,322,1200,GasA,Ex,Y,SBrkr,1200,0,0,1200,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1995,RFn,2,521,TA,TA,Y,0,26,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,177500 +357,20,RL,NA,9248,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,1Story,6,6,1992,1992,Gable,CompShg,HdBoard,HdBoard,BrkFace,106,TA,TA,PConc,Gd,TA,No,GLQ,560,Unf,0,598,1158,GasA,Gd,Y,SBrkr,1167,0,0,1167,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1992,RFn,2,400,TA,TA,Y,120,26,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,173000 +358,120,RM,44,4224,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,1Story,5,5,1976,1976,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,PConc,Gd,TA,No,ALQ,874,Unf,0,268,1142,GasA,TA,Y,SBrkr,1142,0,0,1142,1,0,1,1,3,1,TA,6,Typ,1,Po,Attchd,1976,Fin,2,528,TA,TA,Y,536,90,0,0,0,0,NA,MnPrv,NA,0,8,2007,WD,Normal,134000 +359,80,RL,92,6930,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,ClearCr,Norm,Norm,1Fam,SLvl,5,4,1958,1958,Hip,CompShg,Wd Sdng,ImStucc,BrkFace,120,TA,TA,CBlock,TA,TA,Av,BLQ,300,Rec,294,468,1062,GasA,Ex,Y,FuseF,1352,0,0,1352,0,1,1,0,3,1,Gd,6,Min2,0,NA,BuiltIn,1958,Unf,1,288,TA,TA,Y,168,0,294,0,0,0,NA,NA,NA,0,7,2006,WD,Abnorml,130000 +360,60,RL,78,12011,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,530,Gd,TA,PConc,Gd,TA,Av,GLQ,956,Unf,0,130,1086,GasA,Ex,Y,SBrkr,1086,838,0,1924,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1998,RFn,2,592,TA,TA,Y,208,75,0,0,374,0,NA,NA,NA,0,6,2006,WD,Normal,280000 +361,85,RL,NA,7540,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Mitchel,Norm,Norm,1Fam,SFoyer,6,6,1978,1978,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,Gd,TA,Av,GLQ,773,Unf,0,115,888,GasA,Ex,Y,SBrkr,912,0,0,912,1,0,1,0,2,1,TA,5,Typ,1,TA,Attchd,1978,RFn,2,470,TA,TA,Y,0,0,0,0,192,0,NA,MnPrv,NA,0,6,2007,WD,Normal,156000 +362,50,RL,NA,9144,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,5,1940,1982,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,399,Unf,0,484,883,GasA,Gd,Y,SBrkr,988,517,0,1505,1,0,1,0,3,1,TA,8,Typ,0,NA,Detchd,1940,Unf,1,240,TA,TA,N,0,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,145000 +363,85,RL,64,7301,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,SFoyer,7,5,2003,2003,Gable,CompShg,HdBoard,HdBoard,BrkFace,500,Gd,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,Ex,Y,SBrkr,495,1427,0,1922,0,0,3,0,4,1,Gd,7,Typ,1,Ex,BuiltIn,2003,RFn,2,672,TA,TA,Y,0,0,177,0,0,0,NA,NA,NA,0,7,2009,ConLD,Normal,198500 +364,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,8,1972,2007,Gable,CompShg,HdBoard,HdBoard,BrkFace,510,TA,TA,CBlock,TA,TA,No,ALQ,162,Unf,0,321,483,GasA,Gd,Y,SBrkr,483,504,0,987,0,0,1,1,2,1,Gd,5,Typ,0,NA,Detchd,1972,Unf,1,264,TA,TA,Y,250,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,118000 +365,60,RL,NA,18800,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,NWAmes,Norm,Norm,1Fam,2Story,6,5,1976,1976,Gable,CompShg,HdBoard,HdBoard,BrkFace,120,TA,TA,PConc,Gd,TA,Mn,GLQ,712,Unf,0,84,796,GasA,TA,Y,SBrkr,790,784,0,1574,1,0,2,1,3,1,TA,6,Typ,1,TA,Attchd,1976,Fin,2,566,TA,TA,Y,306,111,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,190000 +366,70,RM,59,10690,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,2Story,5,7,1920,1997,Hip,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,Fa,No,Rec,456,Unf,0,216,672,GasA,Gd,Y,FuseA,672,672,0,1344,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1964,Unf,1,468,TA,Fa,Y,0,128,218,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,147000 +367,20,RL,NA,9500,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1963,1963,Gable,CompShg,Plywood,Plywood,BrkFace,247,TA,TA,CBlock,Gd,TA,No,BLQ,609,Unf,0,785,1394,GasA,Gd,Y,SBrkr,1394,0,0,1394,1,0,1,1,3,1,TA,6,Typ,2,Gd,Attchd,1963,RFn,2,514,TA,TA,Y,0,76,0,0,185,0,NA,NA,NA,0,7,2009,WD,Normal,159000 +368,80,RL,101,9150,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,SLvl,6,5,1962,1962,Gable,Tar&Grv,Plywood,Plywood,BrkFace,305,TA,TA,CBlock,Gd,TA,Gd,GLQ,371,Unf,0,728,1099,GasA,Gd,Y,SBrkr,1431,0,0,1431,0,1,1,0,3,1,TA,6,Typ,1,Gd,Basment,1962,RFn,1,296,TA,TA,Y,64,110,0,0,0,0,NA,NA,NA,0,12,2008,WD,Normal,165000 +369,20,RL,78,7800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1954,1954,Gable,CompShg,HdBoard,HdBoard,BrkFace,200,TA,TA,PConc,TA,TA,No,LwQ,540,Unf,0,728,1268,GasA,Gd,Y,SBrkr,1268,0,0,1268,0,0,1,0,2,1,TA,7,Typ,1,Gd,Attchd,1954,Fin,1,244,TA,TA,Y,0,98,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal,132000 +370,20,RL,NA,9830,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1959,2006,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,72,Rec,258,733,1063,GasA,Ex,Y,SBrkr,1287,0,0,1287,1,0,1,0,3,1,Gd,7,Typ,1,Gd,Detchd,1997,Fin,2,576,TA,TA,Y,364,17,0,0,182,0,NA,NA,NA,0,3,2010,WD,Normal,162000 +371,60,RL,NA,8121,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,953,953,GasA,Ex,Y,SBrkr,953,711,0,1664,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,2000,RFn,2,460,TA,TA,Y,100,40,0,0,0,0,NA,NA,NA,0,1,2006,WD,Normal,172400 +372,50,RL,80,17120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,ClearCr,Feedr,Norm,1Fam,1.5Fin,4,4,1959,1959,Gable,CompShg,WdShing,Plywood,None,0,TA,TA,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,1120,468,0,1588,0,0,2,0,4,1,TA,7,Min2,1,Gd,Detchd,1991,Fin,2,680,TA,TA,N,0,59,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,134432 +373,120,RL,50,7175,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,TwnhsE,1Story,6,5,1984,1984,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,623,LwQ,121,0,744,GasA,TA,Y,SBrkr,752,0,0,752,1,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1984,Unf,1,264,TA,TA,Y,353,0,0,0,90,0,NA,MnPrv,NA,0,2,2010,WD,Normal,125000 +374,20,RL,79,10634,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1953,1953,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,No,BLQ,428,LwQ,180,0,608,GasA,TA,Y,SBrkr,1319,0,0,1319,1,0,1,0,3,1,TA,5,Min2,0,NA,Attchd,1953,Unf,1,270,TA,TA,Y,66,0,0,0,0,0,NA,GdWo,NA,0,11,2009,WD,Normal,123000 +375,60,RL,65,8200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,847,847,GasA,Ex,Y,SBrkr,847,1081,0,1928,0,0,2,1,4,1,Gd,8,Typ,1,Gd,BuiltIn,2003,Fin,2,434,TA,TA,Y,100,48,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,219500 +376,30,RL,NA,10020,Pave,NA,IR1,Low,AllPub,Inside,Sev,Edwards,Norm,Norm,1Fam,1Story,1,1,1922,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Fa,Fa,BrkTil,Fa,Po,Gd,BLQ,350,Unf,0,333,683,GasA,Gd,N,FuseA,904,0,0,904,1,0,0,1,1,1,Fa,4,Maj1,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal,61000 +377,85,RL,57,8846,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,SFoyer,5,5,1996,1996,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,298,Unf,0,572,870,GasA,Ex,Y,SBrkr,914,0,0,914,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1998,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,148000 +378,60,FV,102,11143,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2004,2005,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1580,1580,GasA,Ex,Y,SBrkr,1580,886,0,2466,0,0,3,0,4,1,Gd,8,Typ,1,Gd,Attchd,2004,RFn,2,610,TA,TA,Y,159,214,0,0,0,0,NA,NA,NA,0,12,2007,WD,Normal,340000 +379,20,RL,88,11394,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,StoneBr,Norm,Norm,1Fam,1Story,9,2,2010,2010,Hip,CompShg,VinylSd,VinylSd,Stone,350,Gd,TA,PConc,Ex,TA,Av,GLQ,1445,Unf,0,411,1856,GasA,Ex,Y,SBrkr,1856,0,0,1856,1,0,1,1,1,1,Ex,8,Typ,1,Ex,Attchd,2010,Fin,3,834,TA,TA,Y,113,0,0,0,0,0,NA,NA,NA,0,6,2010,New,Partial,394432 +380,60,RL,60,8123,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,RRAn,Norm,1Fam,2Story,6,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,16,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,982,982,GasA,Ex,Y,SBrkr,1007,793,0,1800,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,2000,Fin,2,463,TA,TA,Y,100,63,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,179000 +381,50,RL,50,5000,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1.5Fin,5,6,1924,1950,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,LwQ,218,Unf,0,808,1026,GasA,TA,Y,SBrkr,1026,665,0,1691,0,0,2,0,3,1,Gd,6,Typ,1,Gd,Detchd,1924,Unf,1,308,TA,TA,Y,0,0,242,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,127000 +382,20,FV,60,7200,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,Gd,No,Unf,0,Unf,0,1293,1293,GasA,Ex,Y,SBrkr,1301,0,0,1301,1,0,2,0,2,1,Gd,5,Typ,1,Gd,Attchd,2006,RFn,2,572,TA,TA,Y,216,121,0,0,0,0,NA,NA,NA,0,8,2006,New,Partial,187750 +383,60,RL,79,9245,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,939,939,GasA,Ex,Y,SBrkr,939,858,0,1797,0,0,2,1,3,1,Gd,8,Typ,0,NA,Attchd,2006,RFn,2,639,TA,TA,Y,144,53,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal,213500 +384,45,RH,60,9000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,1Fam,1.5Unf,6,3,1928,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Fa,Fa,No,Unf,0,Unf,0,784,784,GasA,TA,N,FuseA,784,0,0,784,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1950,Unf,2,360,Fa,Fa,N,0,0,91,0,0,0,NA,NA,NA,0,10,2009,WD,Normal,76000 +385,60,RL,NA,53107,Pave,NA,IR2,Low,AllPub,Corner,Mod,ClearCr,Feedr,Norm,1Fam,2Story,6,5,1992,1992,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,985,Unf,0,595,1580,GasA,Ex,Y,SBrkr,1079,874,0,1953,1,0,2,1,3,1,Gd,9,Typ,2,Fa,Attchd,1992,Fin,2,501,TA,TA,Y,216,231,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,240000 +386,120,RL,43,3182,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,8,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,16,Gd,TA,PConc,Gd,TA,No,GLQ,24,Unf,0,1232,1256,GasA,Ex,Y,SBrkr,1269,0,0,1269,0,0,2,0,2,1,Gd,6,Typ,1,TA,Attchd,2004,Fin,2,430,TA,TA,Y,146,20,0,0,144,0,NA,NA,NA,0,4,2010,WD,Normal,192000 +387,50,RL,58,8410,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Edwards,Feedr,Norm,1Fam,1.5Fin,5,3,1910,1996,Gambrel,CompShg,Wd Sdng,VinylSd,None,0,TA,Fa,PConc,TA,TA,No,Unf,0,Unf,0,658,658,GasA,TA,Y,SBrkr,658,526,0,1184,0,0,1,0,5,1,TA,8,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,151,0,0,0,0,NA,NA,NA,0,5,2006,WD,AdjLand,81000 +388,80,RL,72,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,SLvl,6,6,1976,1976,Hip,CompShg,MetalSd,MetalSd,BrkFace,255,TA,TA,CBlock,TA,TA,Av,ALQ,631,Unf,0,410,1041,GasA,Ex,Y,SBrkr,1125,0,0,1125,1,0,1,0,3,1,TA,6,Typ,1,Fa,Detchd,1977,Unf,1,352,TA,TA,Y,296,0,0,0,0,0,NA,GdWo,NA,0,10,2009,WD,Abnorml,125000 +389,20,RL,93,9382,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,1999,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,125,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1468,1468,GasA,Ex,Y,SBrkr,1479,0,0,1479,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1999,RFn,2,577,TA,TA,Y,120,25,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,191000 +390,60,RL,96,12474,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,10,5,2007,2008,Gable,CompShg,VinylSd,VinylSd,Stone,272,Ex,TA,PConc,Ex,TA,Av,GLQ,1280,Unf,0,402,1682,GasA,Ex,Y,SBrkr,1742,590,0,2332,1,0,2,1,3,1,Ex,9,Typ,1,Ex,BuiltIn,2008,Fin,3,846,TA,TA,Y,196,134,0,0,0,0,NA,NA,NA,0,8,2008,New,Partial,426000 +391,50,RL,50,8405,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,5,8,1900,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,Gd,No,Rec,241,BLQ,391,229,861,GasA,Ex,Y,SBrkr,961,406,0,1367,1,0,1,0,4,1,TA,7,Typ,0,NA,Detchd,1978,Unf,1,384,TA,TA,Y,0,130,112,0,0,0,NA,MnPrv,NA,0,4,2008,WD,Normal,119000 +392,60,RL,71,12209,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Mitchel,Norm,Norm,1Fam,2Story,6,5,2001,2002,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Ex,TA,No,ALQ,690,Unf,0,114,804,GasA,Ex,Y,SBrkr,804,1157,0,1961,1,0,2,1,3,1,Gd,7,Typ,1,TA,BuiltIn,2001,Fin,2,560,TA,TA,Y,125,192,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,215000 +393,20,RL,NA,8339,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1959,1959,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,882,0,0,882,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1959,RFn,1,294,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,Shed,1200,7,2007,WD,Normal,106500 +394,30,RL,NA,7446,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,BrkSide,Feedr,Norm,1Fam,1Story,4,5,1941,1950,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,TA,No,Rec,266,Unf,0,522,788,GasA,TA,Y,FuseA,788,0,0,788,0,0,1,0,2,1,TA,4,Typ,2,TA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,4,2006,WD,Abnorml,100000 +395,50,RL,60,10134,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,6,1940,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,735,735,GasA,Gd,Y,FuseA,735,299,0,1034,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1940,Unf,1,240,TA,TA,Y,0,39,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,109000 +396,20,RL,68,9571,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,6,1956,1956,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Av,BLQ,739,Unf,0,405,1144,GasA,TA,Y,SBrkr,1144,0,0,1144,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1956,Unf,1,596,TA,TA,Y,44,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,129000 +397,20,RL,60,7200,Pave,NA,Reg,Low,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,5,1972,1972,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,Av,Rec,777,Unf,0,117,894,GasA,TA,Y,SBrkr,894,0,0,894,0,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1985,RFn,2,600,TA,TA,Y,215,0,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal,123000 +398,60,RL,69,7590,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,PosN,Norm,1Fam,2Story,5,5,1962,1962,Gable,CompShg,VinylSd,VinylSd,BrkFace,288,TA,TA,CBlock,TA,TA,No,ALQ,540,Unf,0,324,864,GasA,TA,Y,SBrkr,876,936,0,1812,0,0,2,0,4,1,TA,8,Typ,1,TA,Attchd,1962,RFn,1,264,TA,TA,Y,0,168,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,169500 +399,30,RM,60,8967,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,5,2,1920,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Fa,BrkTil,Fa,Po,No,Unf,0,Unf,0,961,961,GasA,Gd,Y,Mix,1077,0,0,1077,0,0,1,0,2,1,TA,6,Maj2,0,NA,Detchd,1920,Unf,1,338,Po,Po,N,0,0,0,0,0,0,NA,NA,NA,0,11,2007,WD,Abnorml,67000 +400,60,FV,65,8125,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2006,2007,Gable,CompShg,CemntBd,CmentBd,Stone,100,Gd,TA,PConc,Gd,TA,No,GLQ,812,Unf,0,280,1092,GasA,Ex,Y,SBrkr,1112,438,0,1550,1,0,2,0,2,1,Gd,7,Typ,0,NA,Attchd,2007,Fin,2,438,TA,TA,Y,0,168,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal,241000 +401,120,RL,38,14963,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,Veenker,Norm,Norm,TwnhsE,1Story,8,5,1996,1996,Gable,CompShg,BrkFace,BrkFace,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,786,Unf,0,474,1260,GasA,Ex,Y,SBrkr,1288,0,0,1288,1,0,1,1,1,1,Ex,4,Typ,2,Gd,Attchd,1996,Fin,2,500,TA,TA,Y,120,30,0,0,224,0,NA,NA,NA,0,12,2008,WD,Normal,245500 +402,20,RL,65,8767,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,24,Unf,0,1286,1310,GasA,Ex,Y,SBrkr,1310,0,0,1310,0,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2005,Fin,2,400,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,New,Partial,164990 +403,30,RL,60,10200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,8,1940,1997,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,672,672,GasA,Ex,Y,SBrkr,672,0,0,672,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1940,Unf,1,240,TA,TA,N,168,0,0,0,0,0,NA,GdPrv,NA,0,8,2008,WD,Normal,108000 +404,60,RL,93,12090,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1998,1998,Hip,CompShg,VinylSd,VinylSd,BrkFace,650,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1141,1141,GasA,Gd,Y,SBrkr,1165,1098,0,2263,0,0,2,1,4,1,Gd,10,Typ,1,TA,BuiltIn,1998,Fin,2,420,TA,TA,Y,144,123,0,0,0,0,NA,NA,NA,0,7,2006,WD,Abnorml,258000 +405,60,RL,NA,10364,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1995,1996,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,806,806,GasA,Gd,Y,SBrkr,806,766,0,1572,0,0,2,1,3,1,TA,7,Typ,1,TA,BuiltIn,1995,Fin,2,373,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,168000 +406,20,RL,NA,9991,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,4,4,1976,1993,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,BLQ,1116,Unf,0,165,1281,GasA,Ex,Y,SBrkr,1620,0,0,1620,1,0,2,0,3,1,TA,8,Min1,1,TA,Attchd,1993,Unf,2,490,TA,TA,Y,120,78,0,0,0,0,NA,GdWo,NA,0,6,2009,WD,Normal,150000 +407,50,RL,51,10480,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1.5Fin,6,5,1936,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,1064,1064,GasA,Ex,Y,FuseA,1166,0,473,1639,0,0,1,0,3,1,TA,6,Maj2,0,NA,Detchd,1936,Unf,1,240,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal,115000 +408,70,RL,63,15576,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,6,7,1915,1976,Gable,CompShg,Wd Sdng,Plywood,None,0,TA,TA,BrkTil,Gd,TA,No,Unf,0,Unf,0,840,840,GasA,Ex,Y,SBrkr,840,840,0,1680,0,0,2,0,4,1,TA,8,Typ,0,NA,Attchd,1960,Unf,1,308,TA,TA,Y,0,0,160,0,0,0,NA,NA,NA,0,3,2008,WD,Normal,177000 +409,60,RL,109,14154,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,2Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,350,Gd,TA,PConc,Ex,Gd,No,Unf,0,Unf,0,1063,1063,GasA,Ex,Y,SBrkr,1071,1101,0,2172,0,0,2,1,3,1,Gd,9,Typ,1,Gd,Attchd,2006,RFn,3,947,TA,TA,Y,192,62,0,0,0,0,NA,NA,NA,0,8,2007,New,Partial,280000 +410,60,FV,85,10800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2007,2008,Gable,CompShg,VinylSd,VinylSd,Stone,100,Gd,TA,PConc,Ex,TA,No,GLQ,789,Unf,0,245,1034,GasA,Ex,Y,SBrkr,1050,1028,0,2078,1,0,2,1,3,1,Ex,8,Typ,1,Gd,Attchd,2008,Fin,3,836,TA,TA,Y,0,102,0,0,0,0,NA,NA,NA,0,4,2008,New,Partial,339750 +411,20,RL,68,9571,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,3,1958,1958,Gable,CompShg,BrkComm,Brk Cmn,None,0,TA,Fa,CBlock,TA,Fa,No,Unf,0,Unf,0,1276,1276,GasA,TA,Y,FuseA,1276,0,0,1276,0,0,1,0,3,1,TA,5,Mod,0,NA,Attchd,1958,Unf,1,350,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2009,COD,Abnorml,60000 +412,190,RL,100,34650,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Gilbert,Norm,Norm,2fmCon,1Story,5,5,1955,1955,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Mn,Rec,1056,Unf,0,0,1056,GasA,TA,N,SBrkr,1056,0,0,1056,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1955,Fin,2,572,TA,TA,Y,264,0,0,0,0,0,NA,NA,NA,0,1,2006,WD,Normal,145000 +413,20,FV,NA,4403,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2009,2009,Gable,CompShg,MetalSd,MetalSd,Stone,432,Ex,TA,PConc,Ex,TA,Av,GLQ,578,Unf,0,892,1470,GasA,Ex,Y,SBrkr,1478,0,0,1478,1,0,2,1,2,1,Gd,7,Typ,1,Gd,Attchd,2009,Fin,2,484,TA,TA,Y,0,144,0,0,0,0,NA,NA,NA,0,6,2010,New,Partial,222000 +414,30,RM,56,8960,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1Story,5,6,1927,1950,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1008,1008,GasA,Gd,Y,FuseA,1028,0,0,1028,0,0,1,0,2,1,TA,5,Typ,1,Gd,Detchd,1927,Unf,2,360,TA,TA,Y,0,0,130,0,0,0,NA,NA,NA,0,3,2010,WD,Normal,115000 +415,60,RL,59,11228,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,1993,1993,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,BLQ,50,GLQ,531,499,1080,GasA,Ex,Y,SBrkr,1080,1017,0,2097,0,1,2,1,3,1,Gd,9,Typ,1,TA,Attchd,1993,Unf,3,678,TA,TA,Y,196,187,0,0,0,0,NA,NA,NA,0,12,2008,WD,Normal,228000 +416,20,RL,73,8899,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,1Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,24,Unf,0,1316,1340,GasA,Ex,Y,SBrkr,1340,0,0,1340,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2007,Fin,2,396,TA,TA,Y,100,30,0,0,0,0,NA,NA,NA,0,8,2007,New,Partial,181134 +417,60,RL,74,7844,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,2Story,6,7,1978,1978,Hip,CompShg,HdBoard,HdBoard,BrkFace,203,TA,TA,CBlock,TA,TA,No,ALQ,209,Unf,0,463,672,GasA,TA,Y,SBrkr,672,728,0,1400,0,0,1,1,3,1,TA,6,Typ,1,TA,Attchd,1978,Fin,2,440,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal,149500 +418,70,RL,86,22420,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Crawfor,Feedr,Norm,1Fam,2Story,6,6,1918,1950,Hip,CompShg,Wd Sdng,Stucco,None,0,TA,TA,BrkTil,Gd,TA,No,BLQ,1128,Unf,0,242,1370,GasW,TA,N,FuseA,1370,1254,0,2624,1,0,2,1,4,1,TA,10,Typ,1,Gd,Detchd,1918,Unf,3,864,TA,TA,N,0,0,0,0,0,0,NA,NA,NA,0,11,2007,WD,Normal,239000 +419,50,RL,60,8160,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,5,6,1940,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,ALQ,312,Unf,0,444,756,GasA,Fa,N,FuseF,756,378,0,1134,1,0,1,1,3,1,TA,7,Typ,0,NA,Detchd,1940,Unf,1,240,TA,TA,P,0,0,0,0,0,0,NA,NA,NA,0,4,2007,WD,AdjLand,126000 +420,20,RL,65,8450,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1968,1968,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,775,Unf,0,281,1056,GasA,Ex,Y,SBrkr,1056,0,0,1056,1,0,1,0,3,1,TA,6,Typ,1,Fa,Attchd,1968,Unf,1,304,TA,TA,Y,0,85,184,0,0,0,NA,NA,NA,0,7,2010,WD,Normal,142000 +421,90,RM,78,7060,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,Duplex,SFoyer,7,5,1997,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,200,TA,Gd,PConc,Gd,Gd,Gd,GLQ,1309,Unf,0,35,1344,GasA,Ex,Y,SBrkr,1344,0,0,1344,2,0,2,0,2,2,TA,8,Typ,0,NA,Attchd,1997,Fin,4,784,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2008,WD,Alloca,206300 +422,20,RL,NA,16635,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,7,1977,2000,Gable,CompShg,CemntBd,CmentBd,Stone,126,Gd,TA,CBlock,Gd,TA,No,ALQ,1246,Unf,0,356,1602,GasA,Gd,Y,SBrkr,1602,0,0,1602,0,1,2,0,3,1,Gd,8,Typ,1,TA,Attchd,1977,Fin,2,529,TA,TA,Y,240,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,215000 +423,20,RL,100,21750,Pave,NA,Reg,HLS,AllPub,Inside,Mod,Mitchel,Artery,Norm,1Fam,1Story,5,5,1954,1954,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,988,988,GasA,Ex,Y,FuseA,988,0,0,988,0,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1954,RFn,2,520,TA,TA,N,0,0,0,0,0,0,NA,NA,NA,0,2,2008,WD,Normal,113000 +424,60,RL,80,9200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,473,Gd,TA,PConc,Gd,TA,No,GLQ,986,Unf,0,484,1470,GasA,Gd,Y,SBrkr,1470,1160,0,2630,1,0,2,1,4,1,Gd,8,Typ,1,TA,Attchd,1998,Fin,3,696,TA,TA,Y,0,66,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,315000 +425,20,RL,72,9000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1956,1956,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,74,TA,TA,CBlock,Gd,TA,No,LwQ,616,Unf,0,580,1196,GasA,Gd,Y,FuseA,1196,0,0,1196,1,0,1,0,2,1,TA,6,Typ,1,Gd,Attchd,1956,RFn,1,297,TA,TA,Y,0,44,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,139000 +426,60,RM,60,3378,Pave,Grvl,Reg,HLS,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,7,8,1946,1992,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Gd,CBlock,TA,TA,No,Unf,0,Unf,0,651,651,GasA,Gd,Y,SBrkr,707,682,0,1389,0,0,1,1,3,1,TA,6,Typ,2,Gd,Detchd,1947,Unf,1,240,TA,TA,P,0,0,126,0,0,0,NA,NA,NA,0,9,2009,WD,Normal,135000 +427,80,RL,NA,12800,Pave,NA,Reg,Low,AllPub,Inside,Mod,SawyerW,Norm,Norm,1Fam,SLvl,7,5,1989,1989,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,145,Gd,TA,PConc,Gd,TA,Gd,GLQ,1518,Unf,0,0,1518,GasA,Gd,Y,SBrkr,1644,0,0,1644,1,1,2,0,2,1,Gd,5,Typ,1,TA,Attchd,1989,Fin,2,569,TA,TA,Y,80,0,0,0,396,0,NA,NA,NA,0,8,2009,WD,Normal,275000 +428,20,RL,77,8593,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,6,1957,1957,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,288,Unf,0,619,907,GasA,Ex,Y,SBrkr,907,0,0,907,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1964,Unf,1,352,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,109008 +429,20,RL,64,6762,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,BrkFace,108,Gd,TA,PConc,Gd,TA,No,GLQ,664,Unf,0,544,1208,GasA,Ex,Y,SBrkr,1208,0,0,1208,1,0,2,0,2,1,Gd,6,Typ,0,NA,Attchd,2007,RFn,2,628,TA,TA,Y,105,54,0,0,0,0,NA,NA,NA,0,9,2007,New,Partial,195400 +430,20,RL,130,11457,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,1Story,6,5,1988,1988,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,Mn,GLQ,1005,Unf,0,387,1392,GasA,TA,Y,SBrkr,1412,0,0,1412,1,0,2,0,3,1,Gd,6,Typ,1,TA,Attchd,1988,Unf,2,576,TA,TA,Y,0,0,169,0,0,0,NA,NA,NA,0,3,2009,WD,Normal,175000 +431,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,5,1971,1971,Gable,CompShg,HdBoard,HdBoard,BrkFace,232,TA,TA,CBlock,TA,TA,No,ALQ,387,Unf,0,96,483,GasA,TA,Y,SBrkr,483,504,0,987,0,0,1,1,2,1,TA,4,Typ,0,NA,Detchd,1971,Unf,1,264,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2008,COD,Abnorml,85400 +432,50,RM,60,5586,Pave,NA,IR1,Bnk,AllPub,Inside,Gtl,OldTown,Feedr,Norm,1Fam,1.5Fin,6,7,1920,1998,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,901,901,GasA,Gd,Y,SBrkr,1088,110,0,1198,0,0,1,0,4,1,TA,7,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,98,0,0,0,0,NA,MnPrv,NA,0,9,2008,ConLD,Abnorml,79900 +433,160,RM,24,1920,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,TwnhsE,2Story,5,5,1971,1971,Gable,CompShg,HdBoard,HdBoard,BrkFace,376,TA,TA,CBlock,TA,TA,No,ALQ,471,Unf,0,294,765,GasA,Ex,Y,SBrkr,765,600,0,1365,1,0,1,1,2,1,TA,6,Min1,0,NA,Detchd,1971,Unf,2,440,TA,TA,Y,240,36,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,122500 +434,60,RL,100,10839,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1997,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,926,926,GasA,Ex,Y,SBrkr,926,678,0,1604,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1997,Fin,2,470,TA,TA,Y,0,36,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,181000 +435,180,RM,21,1890,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,SFoyer,4,7,1972,1972,Gable,CompShg,CemntBd,CmentBd,None,0,TA,Gd,CBlock,Gd,TA,Av,ALQ,495,Unf,0,135,630,GasA,Gd,Y,SBrkr,630,0,0,630,1,0,1,0,1,1,TA,3,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,88,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,81000 +436,60,RL,43,10667,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,CollgCr,PosN,Norm,1Fam,2Story,7,6,1996,1996,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,385,ALQ,344,70,799,GasA,Ex,Y,SBrkr,827,834,0,1661,1,0,2,1,3,1,Gd,6,Typ,1,TA,Attchd,1996,RFn,2,550,TA,TA,Y,158,61,0,0,0,0,NA,NA,NA,0,4,2009,ConLw,Normal,212000 +437,50,RM,40,4400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,6,8,1920,1950,Gable,CompShg,Stucco,Stucco,None,0,TA,TA,BrkTil,Fa,TA,No,Unf,0,Unf,0,648,648,GasA,TA,Y,FuseA,734,384,0,1118,0,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1990,Unf,2,440,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal,116000 +438,45,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Unf,6,7,1926,2004,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,TA,PConc,TA,TA,No,Unf,0,Unf,0,884,884,GasA,Gd,Y,SBrkr,904,0,0,904,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1926,Unf,1,180,TA,TA,Y,0,0,105,0,0,0,NA,NA,NA,0,1,2009,WD,Normal,119000 +439,30,RL,40,4280,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,5,6,1913,2002,Gable,CompShg,WdShing,Stucco,None,0,TA,TA,PConc,TA,TA,No,LwQ,365,Unf,0,75,440,GasA,TA,N,SBrkr,694,0,0,694,0,0,1,0,2,1,Gd,4,Typ,1,Gd,Detchd,1990,Unf,1,352,Gd,TA,P,0,0,34,0,0,0,NA,MnPrv,NA,0,3,2007,WD,Normal,90350 +440,50,RL,67,12354,Pave,Grvl,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,6,8,1920,2000,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,Fa,Mn,Unf,0,Unf,0,684,684,GasA,Gd,Y,SBrkr,684,512,0,1196,0,0,1,0,3,1,Gd,7,Typ,0,NA,Detchd,2005,Unf,2,528,TA,TA,Y,0,46,0,0,0,0,NA,GdPrv,Shed,800,8,2009,ConLI,Normal,110000 +441,20,RL,105,15431,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,10,5,2008,2008,Hip,CompShg,VinylSd,VinylSd,Stone,200,Ex,TA,PConc,Ex,TA,Gd,GLQ,1767,ALQ,539,788,3094,GasA,Ex,Y,SBrkr,2402,0,0,2402,1,0,2,0,2,1,Ex,10,Typ,2,Gd,Attchd,2008,Fin,3,672,TA,TA,Y,0,72,0,0,170,0,NA,NA,NA,0,4,2009,WD,Normal,555000 +442,90,RL,92,12108,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,Duplex,1Story,4,4,1955,1955,Gable,CompShg,VinylSd,VinylSd,BrkFace,270,TA,TA,CBlock,TA,TA,No,ALQ,133,Unf,0,1307,1440,GasA,TA,N,FuseF,1440,0,0,1440,0,0,2,0,4,2,Fa,8,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal,118000 +443,50,RM,52,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,7,1930,1992,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,1078,1078,GasA,TA,Y,SBrkr,1128,445,0,1573,0,0,2,0,3,1,TA,8,Typ,1,Gd,Detchd,1930,Unf,2,360,TA,TA,P,0,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,162900 +444,120,RL,53,3922,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2006,2007,Gable,CompShg,WdShing,Wd Shng,BrkFace,72,Gd,TA,PConc,Ex,TA,Av,Unf,0,Unf,0,1258,1258,GasA,Ex,Y,SBrkr,1258,0,0,1258,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2007,Fin,3,648,TA,TA,Y,144,16,0,0,0,0,NA,NA,NA,0,6,2007,New,Partial,172500 +445,60,RL,70,8750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,1994,1995,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,Gd,PConc,Gd,TA,No,GLQ,642,Unf,0,273,915,GasA,Ex,Y,SBrkr,933,975,0,1908,1,0,2,1,4,1,Gd,8,Typ,1,TA,Attchd,1994,Unf,2,493,TA,TA,Y,144,133,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,210000 +446,20,RL,73,9855,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,1Story,6,5,1956,1956,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1436,1436,GasA,Fa,Y,SBrkr,1689,0,0,1689,0,0,1,0,3,1,TA,7,Typ,1,Gd,Attchd,1956,Unf,2,480,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,11,2009,COD,Normal,127500 +447,20,RL,137,16492,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,PosA,Norm,1Fam,1Story,6,6,1966,2002,Gable,CompShg,BrkFace,Plywood,None,0,Gd,TA,CBlock,TA,TA,No,ALQ,247,Rec,713,557,1517,GasA,Ex,Y,SBrkr,1888,0,0,1888,0,0,2,1,2,1,Gd,6,Mod,1,Gd,Attchd,1966,Fin,2,578,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,190000 +448,60,RL,NA,11214,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,1998,1999,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,930,930,GasA,Gd,Y,SBrkr,956,930,0,1886,0,0,2,1,4,1,Gd,10,Typ,1,TA,Attchd,1998,Fin,2,431,TA,TA,Y,89,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,199900 +449,50,RM,50,8600,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,6,6,1937,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,780,780,GasA,TA,Y,SBrkr,780,596,0,1376,0,0,2,0,3,1,TA,7,Typ,1,Gd,Detchd,1937,Unf,1,198,TA,TA,N,0,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,119500 +450,50,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,3,7,1948,2002,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,331,Unf,0,318,649,GasA,Ex,Y,SBrkr,679,504,0,1183,0,0,1,1,2,1,TA,6,Typ,0,NA,Detchd,1981,Unf,1,308,TA,TA,Y,0,176,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,120000 +451,30,RM,70,5684,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,6,8,1930,2005,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,813,813,GasA,Ex,Y,FuseA,813,0,0,813,0,0,1,0,2,1,Gd,5,Typ,0,NA,Detchd,1932,Unf,1,270,Fa,Fa,N,0,113,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,110000 +452,20,RL,62,70761,Pave,NA,IR1,Low,AllPub,Inside,Mod,ClearCr,Norm,Norm,1Fam,1Story,7,5,1975,1975,Gable,WdShngl,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,Gd,ALQ,655,Unf,0,878,1533,GasA,TA,Y,SBrkr,1533,0,0,1533,1,0,2,0,2,1,Gd,5,Typ,2,TA,Attchd,1975,Unf,2,576,TA,TA,Y,200,54,0,0,0,0,NA,NA,NA,0,12,2006,WD,Normal,280000 +453,60,RL,NA,9303,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,2Story,6,5,1996,1997,Hip,CompShg,VinylSd,VinylSd,BrkFace,42,Gd,TA,PConc,Ex,TA,No,ALQ,742,Unf,0,130,872,GasA,Ex,Y,SBrkr,888,868,0,1756,1,0,2,1,3,1,TA,7,Typ,0,NA,Attchd,1996,Fin,2,422,TA,TA,Y,144,122,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,204000 +454,60,FV,75,9000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,768,768,GasA,Ex,Y,SBrkr,786,804,0,1590,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2008,RFn,2,676,TA,TA,Y,0,30,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,210000 +455,90,RL,63,9297,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,Duplex,1Story,5,5,1976,1976,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,1606,Unf,0,122,1728,GasA,TA,Y,SBrkr,1728,0,0,1728,2,0,2,0,4,2,TA,8,Typ,0,NA,Detchd,1976,Unf,2,560,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Family,188000 +456,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,7,6,1973,1973,Hip,CompShg,HdBoard,HdBoard,BrkFace,320,TA,TA,CBlock,TA,TA,No,ALQ,916,Unf,0,326,1242,GasA,Fa,Y,SBrkr,1242,0,0,1242,0,0,1,1,3,1,TA,6,Typ,1,TA,Attchd,1973,Unf,2,528,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,9,2007,WD,Normal,175500 +457,70,RM,34,4571,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,5,5,1916,1950,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,624,624,GasA,Fa,N,SBrkr,624,720,0,1344,0,0,1,0,4,1,TA,7,Typ,0,NA,Detchd,1916,Unf,3,513,Fa,Fa,Y,0,0,96,0,0,0,NA,NA,NA,0,5,2008,COD,Abnorml,98000 +458,20,RL,NA,53227,Pave,NA,IR1,Low,AllPub,CulDSac,Mod,ClearCr,Norm,Norm,1Fam,1Story,4,6,1954,1994,Flat,Tar&Grv,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,Gd,BLQ,1116,Unf,0,248,1364,GasA,Ex,Y,SBrkr,1663,0,0,1663,1,0,1,0,2,1,Gd,6,Min1,2,Gd,Attchd,1954,Fin,2,529,TA,TA,Y,224,137,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal,256000 +459,70,RM,NA,5100,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,8,7,1925,1996,Hip,CompShg,Stucco,Wd Shng,None,0,TA,Gd,PConc,TA,TA,No,Unf,0,Unf,0,588,588,GasA,Fa,Y,SBrkr,833,833,0,1666,0,0,1,0,3,1,Gd,7,Typ,1,Gd,Detchd,1925,Unf,1,228,TA,TA,Y,192,63,0,0,0,0,NA,MnPrv,NA,0,6,2008,WD,Normal,161000 +460,50,RL,NA,7015,Pave,NA,IR1,Bnk,AllPub,Corner,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,4,1950,1950,Gable,CompShg,MetalSd,MetalSd,BrkCmn,161,TA,TA,CBlock,TA,TA,No,LwQ,185,Unf,0,524,709,GasA,TA,Y,SBrkr,979,224,0,1203,1,0,1,0,3,1,Gd,5,Typ,1,TA,Detchd,1950,Unf,1,352,TA,TA,Y,0,0,248,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,110000 +461,60,FV,75,8004,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,RRAn,Norm,1Fam,2Story,8,5,2009,2009,Gable,CompShg,VinylSd,VinylSd,Stone,110,Gd,TA,PConc,Gd,TA,No,GLQ,544,Unf,0,288,832,GasA,Ex,Y,SBrkr,832,1103,0,1935,1,0,2,1,3,1,TA,8,Typ,0,NA,BuiltIn,2009,Fin,2,552,TA,TA,Y,0,150,0,0,0,0,NA,NA,NA,0,12,2009,New,Partial,263435 +462,70,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Feedr,Norm,1Fam,2Story,7,9,1936,2007,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,Gd,PConc,Gd,Gd,No,ALQ,350,BLQ,210,0,560,GasA,Ex,Y,SBrkr,575,560,0,1135,1,0,1,0,3,1,Gd,6,Typ,0,NA,Detchd,1971,RFn,2,576,TA,TA,Y,256,0,0,0,0,0,NA,MnPrv,NA,0,4,2009,WD,Normal,155000 +463,20,RL,60,8281,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1965,1965,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,553,BLQ,311,0,864,GasA,Gd,Y,SBrkr,864,0,0,864,0,0,1,0,3,1,TA,5,Typ,1,Po,Detchd,1965,Unf,1,360,TA,TA,Y,0,0,236,0,0,0,NA,GdWo,NA,0,12,2009,WD,Normal,62383 +464,70,RL,74,11988,Pave,NA,IR1,HLS,AllPub,Inside,Mod,Crawfor,Norm,Norm,1Fam,2Story,6,7,1934,1995,Hip,CompShg,Stucco,Stucco,None,0,TA,TA,CBlock,TA,TA,No,LwQ,326,Unf,0,389,715,GasA,Fa,Y,FuseA,849,811,0,1660,0,0,1,1,3,1,TA,6,Typ,1,Gd,Detchd,1939,Unf,1,240,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal,188700 +465,20,RL,60,8430,Pave,NA,Reg,HLS,AllPub,Inside,Mod,CollgCr,Norm,Norm,1Fam,1Story,5,5,1978,1978,Gable,CompShg,HdBoard,HdBoard,BrkFace,136,TA,TA,CBlock,Gd,TA,No,Rec,616,Unf,0,424,1040,GasA,TA,Y,SBrkr,1040,0,0,1040,0,0,2,0,3,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal,124000 +466,120,RM,NA,3072,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2004,2004,Hip,CompShg,VinylSd,VinylSd,BrkFace,18,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1375,1375,GasA,Ex,Y,SBrkr,1414,0,0,1414,0,0,2,0,2,1,Gd,6,Typ,1,TA,Attchd,2004,Fin,2,398,TA,TA,Y,144,20,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,178740 +467,20,RL,85,10628,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,7,5,1970,1970,Flat,Tar&Grv,Plywood,Plywood,None,0,TA,Gd,CBlock,TA,Gd,Gd,GLQ,778,Unf,0,499,1277,GasA,TA,Y,SBrkr,1277,0,0,1277,1,0,1,0,2,1,TA,5,Typ,1,Po,Attchd,1970,Unf,2,526,TA,TA,Y,0,0,0,0,176,0,NA,GdWo,NA,0,4,2007,WD,Normal,167000 +468,70,RL,79,9480,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Artery,Norm,1Fam,2Story,5,7,1942,1995,Gable,CompShg,MetalSd,MetalSd,Stone,224,TA,TA,CBlock,TA,TA,No,LwQ,386,Unf,0,342,728,GasA,Ex,Y,SBrkr,888,756,0,1644,0,0,1,1,3,1,Gd,7,Typ,2,Gd,Attchd,1942,Unf,1,312,TA,TA,Y,168,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,146500 +469,20,RL,98,11428,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,Stone,248,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1626,1626,GasA,Ex,Y,SBrkr,1634,0,0,1634,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2006,RFn,3,866,TA,TA,Y,0,44,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,250000 +470,60,RL,76,9291,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,SawyerW,RRNe,Norm,1Fam,2Story,6,5,1993,1993,Gable,CompShg,HdBoard,HdBoard,BrkFace,120,Gd,TA,PConc,Gd,TA,No,GLQ,426,Unf,0,406,832,GasA,Ex,Y,SBrkr,832,878,0,1710,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,1993,RFn,2,506,TA,TA,Y,144,70,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,187000 +471,120,RL,NA,6820,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,1985,1985,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,368,BLQ,1120,0,1488,GasA,TA,Y,SBrkr,1502,0,0,1502,1,0,1,1,1,1,Gd,4,Typ,0,NA,Attchd,1985,RFn,2,528,TA,TA,Y,0,54,0,0,140,0,NA,NA,NA,0,6,2010,WD,Normal,212000 +472,60,RL,92,11952,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,PosA,Norm,1Fam,2Story,7,6,1977,1977,Mansard,WdShake,WdShing,Plywood,None,0,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,808,808,GasA,TA,Y,SBrkr,1161,808,0,1969,0,0,2,1,3,1,TA,8,Typ,1,Gd,Attchd,1977,RFn,2,534,TA,TA,Y,0,0,0,0,276,0,NA,NA,NA,0,11,2007,WD,Normal,190000 +473,180,RM,35,3675,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,TwnhsE,SLvl,6,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,80,TA,TA,PConc,Gd,TA,Gd,GLQ,459,Unf,0,88,547,GasA,Ex,Y,SBrkr,1072,0,0,1072,1,0,1,0,2,1,TA,5,Typ,0,NA,Basment,2005,RFn,2,525,TA,TA,Y,0,28,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,148000 +474,20,RL,110,14977,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,BrkFace,304,Gd,TA,PConc,Ex,TA,Gd,GLQ,1350,Unf,0,626,1976,GasA,Ex,Y,SBrkr,1976,0,0,1976,1,0,2,0,2,1,Gd,7,Typ,1,Ex,Attchd,2006,RFn,3,908,TA,TA,Y,250,63,0,0,0,0,NA,NA,NA,0,7,2007,New,Partial,440000 +475,120,RL,41,5330,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,2000,2000,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,1196,Unf,0,298,1494,GasA,Ex,Y,SBrkr,1652,0,0,1652,1,0,2,0,2,1,Ex,6,Typ,0,NA,Attchd,2000,RFn,2,499,TA,TA,Y,96,48,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,251000 +476,20,RL,80,8480,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,6,1963,1963,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,GLQ,630,Unf,0,340,970,GasA,TA,Y,SBrkr,970,0,0,970,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1996,Unf,2,624,TA,TA,Y,0,24,0,0,192,0,NA,NA,NA,0,7,2007,WD,Normal,132500 +477,20,RL,75,13125,Pave,NA,Reg,Lvl,AllPub,Inside,Mod,CollgCr,Norm,Norm,1Fam,1Story,6,5,1997,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,215,TA,TA,PConc,Gd,TA,Gd,GLQ,994,Unf,0,484,1478,GasA,Ex,Y,SBrkr,1493,0,0,1493,1,0,2,0,3,1,Gd,7,Typ,1,TA,Attchd,1997,Fin,2,508,TA,TA,Y,140,39,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal,208900 +478,60,RL,105,13693,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,772,Ex,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,2153,2153,GasA,Ex,Y,SBrkr,2069,574,0,2643,0,0,2,1,3,1,Ex,9,Typ,1,Gd,BuiltIn,2006,Fin,3,694,TA,TA,Y,414,84,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal,380000 +479,20,RL,79,10637,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2007,2008,Hip,CompShg,VinylSd,VinylSd,Stone,336,Gd,TA,PConc,Ex,TA,Gd,GLQ,1288,Unf,0,417,1705,GasA,Ex,Y,SBrkr,1718,0,0,1718,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2007,RFn,3,826,TA,TA,Y,208,44,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal,297000 +480,30,RM,50,5925,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,4,7,1937,2000,Hip,CompShg,Stucco,Stucco,BrkCmn,435,TA,TA,BrkTil,Fa,TA,No,Rec,168,Unf,0,739,907,GasA,TA,Y,SBrkr,1131,0,0,1131,0,0,1,0,2,1,TA,7,Typ,0,NA,Detchd,1995,Unf,2,672,TA,TA,Y,0,72,0,0,0,0,NA,MnPrv,NA,0,3,2007,WD,Alloca,89471 +481,20,RL,98,16033,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2004,2005,Hip,CompShg,VinylSd,VinylSd,BrkFace,378,Gd,TA,PConc,Ex,TA,Gd,GLQ,1261,Unf,0,572,1833,GasA,Ex,Y,SBrkr,1850,0,0,1850,1,0,2,0,3,1,Gd,8,Typ,1,Gd,Attchd,2004,Fin,3,772,TA,TA,Y,519,112,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal,326000 +482,20,RL,72,11846,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2003,2004,Hip,CompShg,VinylSd,VinylSd,BrkFace,562,Gd,TA,PConc,Ex,TA,Gd,GLQ,1567,Unf,0,225,1792,GasA,Ex,Y,SBrkr,1792,0,0,1792,1,0,2,0,2,1,Ex,6,Typ,1,Gd,Attchd,2003,Fin,3,874,TA,TA,Y,206,49,0,0,0,0,NA,NA,NA,0,8,2006,WD,Normal,374000 +483,70,RM,50,2500,Pave,Pave,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,2Story,7,8,1915,2005,Gable,CompShg,Stucco,Stucco,None,0,Gd,TA,PConc,TA,TA,No,ALQ,299,Unf,0,611,910,GasA,Ex,Y,SBrkr,916,910,0,1826,1,0,1,1,4,1,Ex,7,Min2,1,Gd,Attchd,1915,Unf,1,164,Fa,Fa,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,155000 +484,120,RM,32,4500,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Mitchel,Norm,Norm,Twnhs,1Story,6,5,1998,1998,Hip,CompShg,VinylSd,VinylSd,BrkFace,116,TA,TA,PConc,Ex,TA,No,GLQ,897,Unf,0,319,1216,GasA,Ex,Y,SBrkr,1216,0,0,1216,1,0,2,0,2,1,TA,5,Typ,0,NA,Attchd,1998,Unf,2,402,TA,TA,Y,0,125,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,164000 +485,20,RL,NA,7758,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,7,1962,2001,Gable,CompShg,HdBoard,Plywood,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,588,Unf,0,411,999,GasA,Gd,Y,SBrkr,999,0,0,999,1,0,1,0,3,1,Gd,6,Typ,0,NA,Detchd,1963,Unf,1,264,TA,TA,Y,0,132,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal,132500 +486,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1950,2007,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,CBlock,TA,TA,No,ALQ,607,Unf,0,506,1113,GasA,Gd,Y,SBrkr,1113,0,0,1113,0,0,1,0,3,1,Gd,5,Typ,1,Gd,Attchd,1950,Unf,1,264,TA,TA,Y,0,80,120,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,147000 +487,20,RL,79,10289,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1965,1965,Hip,CompShg,MetalSd,MetalSd,BrkFace,168,TA,TA,CBlock,TA,TA,No,ALQ,836,Unf,0,237,1073,GasA,TA,Y,SBrkr,1073,0,0,1073,1,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1965,RFn,2,515,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,156000 +488,20,RL,70,12243,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,5,6,1971,1971,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,Av,ALQ,998,Unf,0,486,1484,GasA,Gd,Y,SBrkr,1484,0,0,1484,0,0,2,0,3,1,TA,7,Typ,1,TA,Attchd,1971,Unf,2,487,TA,TA,Y,224,0,0,0,180,0,NA,NA,NA,0,2,2007,WD,Normal,175000 +489,190,RL,60,10800,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,2fmCon,1.5Fin,5,4,1900,1970,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Fa,CBlock,TA,Fa,No,BLQ,664,Unf,0,290,954,GasA,TA,N,FuseA,1766,648,0,2414,0,0,2,0,3,2,TA,10,Mod,1,Gd,Attchd,1970,Unf,2,520,TA,Fa,N,142,0,0,0,0,0,NA,NA,NA,0,5,2006,ConLD,Normal,160000 +490,180,RM,21,1526,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,SFoyer,4,8,1970,2002,Gable,CompShg,CemntBd,CmentBd,None,0,TA,Gd,CBlock,Gd,TA,Av,GLQ,515,Unf,0,115,630,GasA,TA,Y,SBrkr,630,0,0,630,1,0,1,0,1,1,Gd,3,Typ,0,NA,Attchd,1970,Unf,1,286,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,86000 +491,160,RM,NA,2665,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,2Story,5,6,1976,1976,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,264,264,GasA,TA,Y,SBrkr,616,688,0,1304,0,0,1,1,3,1,TA,4,Typ,1,Gd,BuiltIn,1976,Fin,1,336,TA,TA,Y,141,24,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,115000 +492,50,RL,79,9490,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Artery,Norm,1Fam,1.5Fin,6,7,1941,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,403,Rec,165,238,806,GasA,TA,Y,FuseA,958,620,0,1578,1,0,1,0,3,1,Fa,5,Typ,2,TA,Attchd,1941,Unf,1,240,TA,TA,Y,0,0,32,0,0,0,NA,MnPrv,NA,0,8,2006,WD,Normal,133000 +493,60,RL,105,15578,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,728,728,GasA,Gd,Y,SBrkr,728,728,0,1456,0,0,2,1,3,1,TA,8,Typ,0,NA,Attchd,2006,RFn,2,429,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2006,New,Partial,172785 +494,20,RL,70,7931,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1960,1960,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,374,LwQ,532,363,1269,GasA,TA,Y,FuseA,1269,0,0,1269,0,0,1,1,3,1,TA,6,Typ,1,Fa,Detchd,1964,Unf,1,308,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,155000 +495,30,RM,50,5784,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1Story,5,8,1938,1996,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,Fa,TA,No,Unf,0,Unf,0,190,190,GasA,Gd,Y,FuseA,886,0,0,886,0,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1938,Unf,1,273,TA,TA,Y,144,20,80,0,0,0,NA,NA,NA,0,12,2009,WD,Normal,91300 +496,30,C (all),60,7879,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,4,5,1920,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,495,Unf,0,225,720,GasA,TA,N,FuseA,720,0,0,720,0,0,1,0,2,1,TA,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,523,115,0,0,0,NA,GdWo,NA,0,11,2009,WD,Abnorml,34900 +497,20,RL,NA,12692,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,1Story,8,5,1992,1993,Hip,CompShg,BrkFace,BrkFace,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,1231,Unf,0,1969,3200,GasA,Ex,Y,SBrkr,3228,0,0,3228,1,0,3,0,4,1,Gd,10,Typ,1,Gd,Attchd,1992,RFn,2,546,TA,TA,Y,264,75,291,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,430000 +498,50,RL,60,9120,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,7,6,1925,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,PConc,TA,TA,No,Rec,329,Unf,0,697,1026,GasA,Ex,Y,SBrkr,1133,687,0,1820,1,0,2,0,4,1,TA,8,Typ,0,NA,Detchd,1925,Unf,1,240,TA,TA,N,0,100,0,0,0,0,NA,GdPrv,NA,0,6,2008,WD,Normal,184000 +499,20,RL,65,7800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,7,1967,2004,Hip,CompShg,HdBoard,HdBoard,BrkFace,89,TA,TA,PConc,TA,TA,No,ALQ,450,Unf,0,414,864,GasA,Ex,Y,SBrkr,899,0,0,899,0,0,1,0,3,1,Gd,5,Typ,0,NA,Attchd,1967,Fin,1,288,TA,TA,Y,64,0,0,0,0,0,NA,MnPrv,NA,0,6,2009,WD,Normal,130000 +500,20,RL,70,7535,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1958,1985,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,111,LwQ,279,522,912,GasA,Fa,Y,SBrkr,912,0,0,912,0,1,1,0,2,1,TA,5,Typ,0,NA,Attchd,1958,Fin,1,297,TA,TA,Y,12,285,0,0,0,0,NA,MnWw,Shed,480,6,2007,WD,Normal,120000 +501,160,RM,21,1890,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,5,1973,1973,Gable,CompShg,HdBoard,HdBoard,BrkFace,285,TA,TA,CBlock,TA,TA,No,BLQ,356,Unf,0,316,672,GasA,TA,Y,SBrkr,672,546,0,1218,0,0,1,1,3,1,TA,7,Typ,0,NA,Detchd,1973,Unf,1,264,TA,TA,Y,144,28,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,113000 +502,60,FV,75,9803,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,400,Unf,0,466,866,GasA,Gd,Y,SBrkr,866,902,0,1768,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2005,RFn,2,603,TA,TA,Y,0,108,0,0,0,0,NA,NA,NA,0,2,2008,WD,Normal,226700 +503,20,RL,70,9170,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Feedr,Norm,1Fam,1Story,5,7,1965,1965,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,698,GLQ,96,420,1214,GasA,Ex,Y,SBrkr,1214,0,0,1214,1,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1965,Unf,2,461,Fa,Fa,Y,0,0,184,0,0,0,NA,GdPrv,Shed,400,4,2007,WD,Normal,140000 +504,20,RL,100,15602,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,7,8,1959,1997,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,ALQ,1247,Unf,0,254,1501,GasA,TA,Y,SBrkr,1801,0,0,1801,1,0,2,0,1,1,TA,6,Typ,2,TA,Attchd,1959,Fin,2,484,TA,TA,Y,0,54,0,0,161,0,NA,GdWo,NA,0,3,2010,WD,Normal,289000 +505,160,RL,24,2308,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NPkVill,Norm,Norm,TwnhsE,2Story,6,5,1974,1974,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,TA,TA,No,ALQ,257,Rec,495,103,855,GasA,TA,Y,SBrkr,855,467,0,1322,0,1,2,1,3,1,TA,6,Typ,1,Fa,Attchd,1974,Unf,2,440,TA,TA,Y,260,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,147000 +506,90,RM,60,7596,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,Duplex,2Story,5,5,1952,1952,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,360,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,960,960,GasA,Gd,Y,SBrkr,960,1000,0,1960,0,0,2,0,4,2,TA,10,Typ,0,NA,Detchd,1952,Unf,2,400,TA,TA,N,0,0,0,0,0,0,NA,NA,NA,0,7,2009,COD,Normal,124500 +507,60,RL,80,9554,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,8,5,1993,1994,Gable,CompShg,VinylSd,VinylSd,BrkFace,125,Gd,TA,PConc,Gd,TA,No,GLQ,380,Unf,0,397,777,GasA,Ex,Y,SBrkr,1065,846,0,1911,0,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1993,RFn,2,471,TA,TA,Y,182,81,0,0,0,0,NA,NA,NA,0,9,2006,WD,Normal,215000 +508,20,FV,75,7862,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,6,5,2009,2009,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,27,Unf,0,1191,1218,GasA,Ex,Y,SBrkr,1218,0,0,1218,0,0,2,0,2,1,Gd,4,Typ,0,NA,Attchd,2009,Fin,2,676,TA,TA,Y,0,102,0,0,0,0,NA,NA,NA,0,9,2009,New,Partial,208300 +509,70,RM,60,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,7,9,1928,2005,Gambrel,CompShg,MetalSd,MetalSd,None,0,TA,Ex,BrkTil,TA,TA,No,Rec,141,Unf,0,548,689,GasA,Ex,Y,SBrkr,689,689,0,1378,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Detchd,1928,Unf,2,360,TA,TA,N,0,0,116,0,0,0,NA,NA,NA,0,10,2008,WD,Normal,161000 +510,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1959,1959,Gable,CompShg,MetalSd,MetalSd,BrkFace,132,TA,TA,CBlock,TA,TA,No,ALQ,991,Unf,0,50,1041,GasA,Ex,Y,SBrkr,1041,0,0,1041,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1959,RFn,1,270,TA,TA,Y,224,88,0,0,0,0,NA,MnPrv,NA,0,7,2009,WD,Normal,124500 +511,20,RL,75,14559,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1951,2000,Hip,CompShg,Wd Sdng,Wd Sdng,BrkCmn,70,Gd,TA,CBlock,TA,TA,No,BLQ,650,Rec,180,178,1008,GasA,Ex,Y,SBrkr,1363,0,0,1363,1,0,1,0,2,1,TA,6,Min1,2,TA,CarPort,1951,Unf,1,288,TA,TA,Y,324,42,0,0,168,0,NA,NA,Shed,2000,6,2009,WD,Normal,164900 +512,120,RL,40,6792,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,Stone,94,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1368,1368,GasA,Ex,Y,SBrkr,1368,0,0,1368,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2005,RFn,2,474,TA,TA,Y,132,35,0,0,0,0,NA,NA,NA,0,3,2006,New,Partial,202665 +513,20,RL,70,9100,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Feedr,Norm,1Fam,1Story,5,5,1958,1958,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,521,LwQ,174,169,864,GasA,TA,Y,SBrkr,864,0,0,864,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1964,Unf,2,624,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,129900 +514,20,RL,71,9187,Pave,NA,Reg,Bnk,AllPub,Corner,Gtl,Mitchel,Norm,Norm,1Fam,1Story,6,5,1983,1983,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,PConc,TA,TA,No,ALQ,336,Unf,0,748,1084,GasA,TA,Y,SBrkr,1080,0,0,1080,0,0,1,1,3,1,TA,5,Typ,0,NA,Attchd,1983,Unf,2,484,TA,TA,Y,120,0,158,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,134000 +515,45,RL,55,10594,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1.5Unf,5,5,1926,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,768,768,Grav,Fa,N,SBrkr,789,0,0,789,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1926,Unf,1,200,Po,Po,Y,0,0,112,0,0,0,NA,MnPrv,NA,0,6,2007,WD,Normal,96500 +516,20,RL,94,12220,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,10,5,2009,2009,Hip,CompShg,CemntBd,CmentBd,BrkFace,305,Ex,TA,CBlock,Ex,TA,No,GLQ,1436,Unf,0,570,2006,GasA,Ex,Y,SBrkr,2020,0,0,2020,1,0,2,1,3,1,Ex,9,Typ,1,Gd,Attchd,2009,Fin,3,900,TA,TA,Y,156,54,0,0,0,0,NA,NA,NA,0,9,2009,New,Partial,402861 +517,80,RL,NA,10448,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NWAmes,Norm,Norm,1Fam,SLvl,6,6,1972,1972,Gable,CompShg,HdBoard,HdBoard,BrkFace,333,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,689,689,GasA,TA,Y,SBrkr,1378,741,0,2119,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1972,RFn,2,583,TA,TA,Y,0,104,0,0,0,0,NA,GdPrv,NA,0,8,2009,COD,Abnorml,158000 +518,60,RL,79,10208,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,7,5,1996,1997,Gable,CompShg,VinylSd,VinylSd,BrkFace,921,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1264,1264,GasA,Ex,Y,SBrkr,1277,1067,0,2344,0,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1996,RFn,3,889,TA,TA,Y,220,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,265000 +519,60,RL,NA,9531,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,2Story,6,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Mn,GLQ,706,Unf,0,88,794,GasA,Ex,Y,SBrkr,882,914,0,1796,1,0,2,1,3,1,TA,7,Typ,0,NA,Attchd,1998,RFn,2,546,TA,TA,Y,0,36,0,0,0,0,NA,MnPrv,NA,0,5,2007,WD,Normal,211000 +520,70,RL,53,10918,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,7,9,1926,2004,Gambrel,CompShg,MetalSd,MetalSd,None,0,Gd,TA,BrkTil,Gd,TA,No,Unf,0,Unf,0,1276,1276,GasA,Ex,Y,SBrkr,1276,804,0,2080,0,0,1,1,3,1,Gd,9,Typ,2,Gd,Detchd,1926,Unf,1,282,TA,TA,Y,0,0,0,0,145,0,NA,MnPrv,NA,0,6,2009,WD,Normal,234000 +521,190,RL,60,10800,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,2fmCon,2Story,4,7,1900,2000,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,N,FuseA,694,600,0,1294,0,0,2,0,3,2,TA,7,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,220,114,210,0,0,0,NA,NA,NA,0,8,2008,WD,Normal,106250 +522,20,RL,90,11988,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Feedr,Norm,1Fam,1Story,6,6,1957,1957,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,777,Unf,0,467,1244,GasA,Ex,Y,FuseA,1244,0,0,1244,0,0,1,1,3,1,TA,6,Typ,2,Gd,Attchd,1957,Unf,1,336,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,150000 +523,50,RM,50,5000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,BrkSide,Feedr,Norm,1Fam,1.5Fin,6,7,1947,1950,Gable,CompShg,CemntBd,CmentBd,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,399,Unf,0,605,1004,GasA,Ex,Y,SBrkr,1004,660,0,1664,0,0,2,0,3,1,TA,7,Typ,2,Gd,Detchd,1950,Unf,2,420,TA,TA,Y,0,24,36,0,0,0,NA,NA,NA,0,10,2006,WD,Normal,159000 +524,60,RL,130,40094,Pave,NA,IR1,Bnk,AllPub,Inside,Gtl,Edwards,PosN,PosN,1Fam,2Story,10,5,2007,2008,Hip,CompShg,CemntBd,CmentBd,Stone,762,Ex,TA,PConc,Ex,TA,Gd,GLQ,2260,Unf,0,878,3138,GasA,Ex,Y,SBrkr,3138,1538,0,4676,1,0,3,1,3,1,Ex,11,Typ,1,Gd,BuiltIn,2007,Fin,3,884,TA,TA,Y,208,406,0,0,0,0,NA,NA,NA,0,10,2007,New,Partial,184750 +525,60,RL,95,11787,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,7,5,1996,1997,Gable,CompShg,VinylSd,VinylSd,BrkFace,594,Gd,TA,PConc,Gd,TA,No,GLQ,719,Unf,0,660,1379,GasA,Ex,Y,SBrkr,1383,1015,0,2398,1,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1996,Fin,3,834,TA,TA,Y,239,60,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,315750 +526,20,FV,62,7500,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1257,1257,GasA,Ex,Y,SBrkr,1266,0,0,1266,0,0,2,0,3,1,Gd,6,Typ,1,TA,Attchd,2005,Unf,2,453,TA,TA,Y,38,144,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,176000 +527,20,RL,70,13300,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1956,2000,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,Gd,TA,No,Rec,377,Unf,0,551,928,GasA,TA,Y,SBrkr,928,0,0,928,0,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1956,Unf,1,252,TA,TA,Y,261,0,156,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,132000 +528,60,RL,67,14948,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2008,2008,Hip,CompShg,VinylSd,VinylSd,Stone,268,Ex,TA,PConc,Ex,TA,Av,GLQ,1330,Unf,0,122,1452,GasA,Ex,Y,SBrkr,1476,1237,0,2713,1,0,2,1,3,1,Ex,11,Typ,1,Gd,Attchd,2008,Fin,3,858,TA,TA,Y,126,66,0,0,0,0,NA,NA,NA,0,11,2008,New,Partial,446261 +529,30,RL,58,9098,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,7,1920,2002,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,Mn,ALQ,348,Unf,0,180,528,GasA,Ex,Y,SBrkr,605,0,0,605,1,0,1,0,2,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,144,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,86000 +530,20,RL,NA,32668,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Crawfor,Norm,Norm,1Fam,1Story,6,3,1957,1975,Hip,CompShg,Wd Sdng,Stone,NA,NA,Gd,TA,PConc,TA,TA,No,Rec,1219,Unf,0,816,2035,GasA,TA,Y,SBrkr,2515,0,0,2515,1,0,3,0,4,2,TA,9,Maj1,2,TA,Attchd,1975,RFn,2,484,TA,TA,Y,0,0,200,0,0,0,NA,NA,NA,0,3,2007,WD,Alloca,200624 +531,80,RL,85,10200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,SLvl,6,5,1988,1989,Gable,CompShg,HdBoard,HdBoard,BrkFace,219,Gd,TA,CBlock,Gd,TA,Av,GLQ,783,Unf,0,678,1461,GasA,Ex,Y,SBrkr,1509,0,0,1509,1,0,2,0,3,1,Gd,5,Typ,1,Fa,Attchd,1988,RFn,2,600,TA,TA,Y,224,0,0,0,0,0,NA,NA,NA,0,8,2008,WD,Abnorml,175000 +532,70,RM,60,6155,Pave,NA,IR1,Lvl,AllPub,FR3,Gtl,BrkSide,RRNn,Feedr,1Fam,2Story,6,8,1920,1999,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Fa,Fa,Mn,Unf,0,Unf,0,611,611,GasA,Ex,Y,SBrkr,751,611,0,1362,0,0,2,0,3,1,TA,6,Typ,0,NA,Detchd,1920,Fin,2,502,TA,Fa,Y,0,0,84,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,128000 +533,20,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1955,2007,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,Ex,Y,SBrkr,827,0,0,827,0,0,1,0,2,1,TA,5,Mod,1,Po,Detchd,1967,Unf,1,392,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,107500 +534,20,RL,50,5000,Pave,NA,Reg,Low,AllPub,Inside,Mod,BrkSide,Norm,Norm,1Fam,1Story,1,3,1946,1950,Gable,CompShg,VinylSd,VinylSd,None,0,Fa,Fa,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,Fa,N,FuseF,334,0,0,334,0,0,1,0,1,1,Fa,2,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,0,0,0,0,NA,NA,NA,0,1,2007,WD,Normal,39300 +535,60,RL,74,9056,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,8,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,Gd,Av,Unf,0,Unf,0,707,707,GasA,Ex,Y,SBrkr,707,707,0,1414,0,0,2,1,3,1,Gd,6,Typ,1,Gd,Attchd,2004,Fin,2,403,TA,TA,Y,100,35,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal,178000 +536,190,RL,70,7000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,2fmCon,2Story,5,7,1910,1991,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,Gd,TA,Gd,GLQ,969,Unf,0,148,1117,GasA,TA,Y,SBrkr,820,527,0,1347,1,0,1,0,3,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,85,0,148,0,0,0,NA,NA,NA,0,1,2008,WD,Normal,107500 +537,60,RL,57,8924,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,1998,1999,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,880,880,GasA,Ex,Y,SBrkr,880,844,0,1724,0,0,2,1,3,1,Gd,8,Typ,0,NA,Attchd,1998,Fin,2,527,TA,TA,Y,120,155,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,188000 +538,20,RL,NA,12735,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,5,1972,1972,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,600,Unf,0,264,864,GasA,TA,Y,SBrkr,864,0,0,864,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1980,Unf,2,576,TA,TA,Y,216,0,0,0,0,0,NA,MnWw,NA,0,4,2008,COD,Normal,111250 +539,20,RL,NA,11553,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1968,1968,Hip,CompShg,Plywood,Plywood,BrkFace,188,TA,TA,CBlock,TA,TA,No,BLQ,673,Unf,0,378,1051,GasA,TA,Y,SBrkr,1159,0,0,1159,0,0,1,1,3,1,TA,7,Typ,1,Fa,Attchd,1968,Unf,1,336,TA,TA,Y,466,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,158000 +540,20,RL,NA,11423,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2001,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,479,Gd,TA,PConc,Gd,TA,Av,GLQ,1358,Unf,0,223,1581,GasA,Ex,Y,SBrkr,1601,0,0,1601,1,0,2,0,3,1,Gd,6,Typ,1,TA,Attchd,2001,RFn,2,670,TA,TA,Y,180,0,0,0,0,0,NA,MnPrv,Shed,2000,5,2010,WD,Normal,272000 +541,20,RL,85,14601,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,9,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,584,Ex,TA,PConc,Ex,TA,Av,GLQ,1260,Unf,0,578,1838,GasA,Ex,Y,SBrkr,1838,0,0,1838,1,0,2,0,2,1,Ex,8,Typ,1,Gd,Attchd,2006,Fin,3,765,TA,TA,Y,270,68,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal,315000 +542,60,RL,NA,11000,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,72,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,969,969,GasA,Ex,Y,SBrkr,997,1288,0,2285,0,0,2,1,4,1,Gd,8,Typ,1,TA,BuiltIn,2000,Fin,3,648,TA,TA,Y,0,56,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,248000 +543,20,RL,78,10140,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,RRAn,Norm,1Fam,1Story,7,5,1998,1999,Hip,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,No,LwQ,144,GLQ,1127,379,1650,GasA,Ex,Y,SBrkr,1680,0,0,1680,1,0,2,0,3,1,Gd,7,Maj1,1,TA,Attchd,1998,Fin,2,583,TA,TA,Y,78,73,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,213250 +544,120,RH,34,4058,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,TwnhsE,SFoyer,7,5,1998,1998,Gable,CompShg,MetalSd,MetalSd,BrkFace,182,TA,TA,PConc,Gd,TA,Av,GLQ,584,LwQ,139,0,723,GasA,Ex,Y,SBrkr,767,0,0,767,1,0,1,0,1,1,TA,4,Typ,0,NA,Attchd,1998,Fin,1,367,TA,TA,Y,120,40,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,133000 +545,60,RL,58,17104,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,Gd,Av,GLQ,554,Unf,0,100,654,GasA,Ex,Y,SBrkr,664,832,0,1496,1,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2006,RFn,2,426,TA,TA,Y,100,24,0,0,0,0,NA,NA,NA,0,9,2006,New,Partial,179665 +546,50,RL,NA,13837,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NWAmes,Norm,Norm,1Fam,1.5Fin,7,5,1988,1988,Gable,CompShg,HdBoard,HdBoard,BrkFace,178,Gd,Gd,PConc,Gd,Gd,No,GLQ,1002,LwQ,202,0,1204,GasA,Gd,Y,SBrkr,1377,806,0,2183,0,0,2,1,4,1,Gd,9,Typ,0,NA,Attchd,1988,Unf,3,786,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,2,2006,WD,Normal,229000 +547,50,RL,70,8737,Pave,NA,IR1,Bnk,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,7,1923,1950,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,BrkTil,Gd,TA,No,Rec,300,Unf,0,765,1065,GasA,Ex,Y,FuseA,915,720,0,1635,0,0,1,1,3,1,TA,6,Typ,1,Gd,Detchd,1950,Unf,2,440,TA,TA,Y,0,38,0,144,0,0,NA,NA,NA,0,5,2007,WD,Normal,210000 +548,85,RL,54,7244,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,SFoyer,5,7,1970,1970,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,Gd,TA,Av,ALQ,619,Unf,0,149,768,GasA,Ex,Y,SBrkr,768,0,0,768,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1987,Unf,2,624,TA,TA,Y,104,0,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal,129500 +549,20,RM,49,8235,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,OldTown,Feedr,RRNn,1Fam,1Story,5,7,1955,1995,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,LwQ,180,Rec,645,0,825,GasA,TA,Y,SBrkr,825,0,0,825,1,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1963,RFn,2,720,TA,TA,Y,140,50,0,0,0,0,NA,MnPrv,NA,0,6,2008,WD,Normal,125000 +550,60,FV,75,9375,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,912,912,GasA,Ex,Y,SBrkr,912,1182,0,2094,0,0,2,1,4,1,Gd,8,Typ,1,Gd,BuiltIn,2003,Fin,2,615,TA,TA,Y,182,182,0,0,0,0,NA,NA,NA,0,11,2009,WD,Normal,263000 +551,120,RL,53,4043,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NPkVill,Norm,Norm,TwnhsE,1Story,6,6,1977,1977,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,559,Unf,0,510,1069,GasA,TA,Y,SBrkr,1069,0,0,1069,0,0,2,0,2,1,TA,4,Typ,0,NA,Attchd,1977,RFn,2,440,TA,TA,Y,0,55,0,0,200,0,NA,NA,NA,0,10,2008,COD,Abnorml,140000 +552,20,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,6,1957,1957,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,Rec,308,Unf,0,620,928,GasA,Gd,Y,FuseA,928,0,0,928,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1957,Fin,1,288,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,112500 +553,20,RL,87,11146,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,Stone,250,Gd,TA,PConc,Ex,TA,Av,Unf,0,Unf,0,1709,1709,GasA,Ex,Y,SBrkr,1717,0,0,1717,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2006,RFn,3,908,TA,TA,Y,169,39,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,255500 +554,20,RL,67,8777,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Feedr,Norm,1Fam,1Story,4,5,1949,2003,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,Ex,Y,SBrkr,1126,0,0,1126,0,0,2,0,2,1,Gd,5,Typ,0,NA,Detchd,2002,Fin,2,520,TA,TA,N,0,96,0,0,0,0,NA,MnPrv,NA,0,5,2009,WD,Normal,108000 +555,60,RL,85,10625,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,7,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,292,Gd,TA,PConc,Gd,TA,No,GLQ,866,Unf,0,132,998,GasA,Ex,Y,SBrkr,1006,1040,0,2046,1,0,2,1,3,1,Gd,8,Typ,1,Gd,BuiltIn,2003,RFn,3,871,TA,TA,Y,320,62,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal,284000 +556,45,RM,58,6380,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Unf,5,6,1922,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,Fa,No,Unf,0,Unf,0,993,993,GasA,TA,Y,FuseA,1048,0,0,1048,0,0,1,0,2,1,TA,5,Typ,1,Gd,Detchd,1922,Unf,1,280,TA,TA,Y,0,0,116,0,0,0,NA,NA,NA,0,8,2006,WD,Normal,113000 +557,20,RL,69,14850,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1957,1957,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,895,Unf,0,197,1092,GasA,TA,Y,FuseA,1092,0,0,1092,1,0,1,0,2,1,TA,6,Typ,1,TA,Attchd,1957,Fin,1,299,TA,TA,Y,268,0,0,0,122,0,NA,MnWw,NA,0,5,2006,WD,Normal,141000 +558,50,C (all),60,11040,Pave,NA,Reg,Low,AllPub,Inside,Mod,IDOTRR,Norm,Norm,1Fam,1.5Fin,4,6,1920,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,637,Unf,0,0,637,GasA,Gd,Y,SBrkr,897,439,0,1336,0,0,1,1,3,1,TA,7,Typ,0,NA,CarPort,1994,Unf,1,570,TA,TA,Y,0,47,120,0,0,0,NA,NA,NA,0,9,2006,COD,Normal,108000 +559,60,RL,57,21872,Pave,NA,IR2,HLS,AllPub,FR2,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,1996,1997,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,Gd,GLQ,604,Unf,0,125,729,GasA,Ex,Y,SBrkr,729,717,0,1446,0,1,2,1,3,1,TA,6,Typ,1,TA,Attchd,1996,Unf,2,406,TA,TA,Y,264,22,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal,175000 +560,120,RL,NA,3196,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,18,Gd,TA,PConc,Gd,TA,Gd,Unf,0,Unf,0,1374,1374,GasA,Ex,Y,SBrkr,1557,0,0,1557,0,0,2,0,2,1,Gd,7,Typ,1,TA,Attchd,2003,Fin,2,420,TA,TA,Y,143,20,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal,234000 +561,20,RL,NA,11341,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,6,1957,1996,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,180,TA,TA,CBlock,Gd,TA,No,ALQ,1302,Unf,0,90,1392,GasA,TA,Y,SBrkr,1392,0,0,1392,1,0,1,1,3,1,TA,5,Mod,1,Gd,Detchd,1957,Unf,2,528,TA,TA,Y,0,0,0,0,95,0,NA,NA,NA,0,5,2010,WD,Normal,121500 +562,20,RL,77,10010,Pave,NA,Reg,Lvl,AllPub,Inside,Mod,Mitchel,Norm,Norm,1Fam,1Story,5,5,1974,1975,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,Av,ALQ,1071,LwQ,123,195,1389,GasA,Gd,Y,SBrkr,1389,0,0,1389,1,0,1,0,2,1,TA,6,Typ,1,TA,Attchd,1975,RFn,2,418,TA,TA,Y,240,38,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,170000 +563,30,RL,63,13907,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,6,1940,1969,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,290,Unf,0,706,996,GasA,Ex,Y,SBrkr,996,0,0,996,1,0,1,0,3,1,TA,6,Typ,1,Gd,NA,NA,NA,0,0,NA,NA,Y,144,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,108000 +564,50,RL,66,21780,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,6,7,1918,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Gd,TA,Mn,Unf,0,Unf,0,1163,1163,GasA,Ex,Y,SBrkr,1163,511,0,1674,0,0,2,0,4,1,TA,8,Typ,1,Gd,Detchd,1955,Fin,2,396,TA,TA,N,72,36,0,0,144,0,NA,NA,NA,0,7,2008,WD,Normal,185000 +565,60,RL,NA,13346,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NoRidge,Norm,Norm,1Fam,2Story,7,5,1992,2000,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,728,Unf,0,367,1095,GasA,Ex,Y,SBrkr,1166,1129,0,2295,1,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1992,RFn,2,590,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,268000 +566,70,RL,66,6858,Pave,NA,Reg,Bnk,AllPub,Corner,Gtl,SWISU,Norm,Norm,1Fam,2Story,6,4,1915,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,806,806,GasA,TA,N,FuseF,841,806,0,1647,1,0,1,1,4,1,Fa,6,Typ,0,NA,Detchd,1920,Unf,1,216,TA,TA,Y,0,66,136,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,128000 +567,60,RL,77,11198,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,StoneBr,Norm,Norm,1Fam,2Story,9,5,2005,2007,Hip,CompShg,VinylSd,VinylSd,BrkFace,245,Gd,TA,PConc,Gd,Gd,No,Unf,0,Unf,0,1122,1122,GasA,Ex,Y,SBrkr,1134,1370,0,2504,0,0,2,1,4,1,Ex,11,Typ,1,Gd,BuiltIn,2005,Fin,3,656,TA,TA,Y,144,39,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,325000 +568,20,RL,70,10171,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,168,Gd,TA,PConc,Gd,TA,No,GLQ,2,Unf,0,1515,1517,GasA,Ex,Y,SBrkr,1535,0,0,1535,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2004,RFn,2,532,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal,214000 +569,50,RL,79,12327,Pave,NA,IR1,Low,AllPub,Inside,Mod,SawyerW,Norm,Norm,1Fam,1.5Fin,8,8,1983,2009,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,TA,CBlock,Gd,TA,Gd,GLQ,1441,Unf,0,55,1496,GasA,Ex,Y,SBrkr,1496,636,0,2132,1,0,1,1,1,1,Gd,5,Min2,1,Gd,BuiltIn,1983,Fin,2,612,Gd,TA,Y,349,40,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal,316600 +570,90,RL,NA,7032,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,Duplex,SFoyer,5,5,1979,1979,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,Gd,TA,Gd,GLQ,943,Unf,0,0,943,GasA,TA,Y,SBrkr,943,0,0,943,1,0,1,0,2,1,TA,4,Typ,2,TA,Detchd,1979,Unf,2,600,TA,TA,Y,42,0,0,0,0,0,NA,NA,NA,0,12,2006,WD,Normal,135960 +571,90,RL,74,13101,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,Duplex,1Story,5,5,1965,1965,Gable,CompShg,HdBoard,HdBoard,BrkFace,108,TA,TA,CBlock,TA,TA,No,LwQ,231,Unf,0,1497,1728,GasA,TA,Y,SBrkr,1728,0,0,1728,0,0,2,0,6,2,TA,10,Typ,0,NA,Detchd,1987,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2008,WD,Normal,142600 +572,20,RL,60,7332,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1959,1959,Gable,CompShg,WdShing,Wd Shng,BrkFace,207,TA,TA,CBlock,TA,TA,No,BLQ,414,Unf,0,450,864,GasA,Ex,Y,SBrkr,864,0,0,864,1,0,1,0,2,1,Gd,4,Typ,0,NA,Attchd,1959,Unf,1,288,TA,TA,Y,168,0,0,0,0,0,NA,NA,NA,0,10,2006,WD,Abnorml,120000 +573,60,RL,83,13159,Pave,NA,IR1,HLS,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,2Story,7,5,2009,2009,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Ex,TA,Av,Unf,0,Unf,0,846,846,GasA,Gd,Y,SBrkr,846,846,0,1692,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2009,RFn,2,650,TA,TA,Y,208,114,0,0,0,0,NA,NA,NA,0,7,2009,New,Partial,224500 +574,80,RL,76,9967,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,7,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,384,384,GasA,Ex,Y,SBrkr,774,656,0,1430,0,0,2,1,3,1,TA,8,Typ,1,TA,BuiltIn,2000,RFn,2,400,TA,TA,Y,100,0,0,0,0,0,NA,NA,NA,0,12,2007,WD,Normal,170000 +575,80,RL,70,10500,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NAmes,Norm,Norm,1Fam,SLvl,5,7,1971,2005,Gambrel,CompShg,MetalSd,AsphShn,BrkFace,82,TA,TA,CBlock,TA,TA,Av,ALQ,349,Unf,0,23,372,GasA,TA,Y,SBrkr,576,533,0,1109,0,1,1,0,3,1,TA,5,Typ,0,NA,BuiltIn,1971,Unf,1,288,TA,TA,Y,35,0,0,0,0,0,NA,GdWo,NA,0,12,2007,WD,Normal,139000 +576,50,RL,80,8480,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1.5Fin,5,5,1947,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,442,Unf,0,390,832,GasA,TA,Y,SBrkr,832,384,0,1216,0,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1947,Unf,1,336,TA,TA,Y,158,0,102,0,0,0,NA,NA,NA,0,10,2008,COD,Abnorml,118500 +577,50,RL,52,6292,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1.5Fin,7,7,1928,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,861,861,GasA,Gd,Y,SBrkr,877,600,0,1477,0,1,2,0,3,1,TA,6,Typ,1,Gd,Detchd,1928,Unf,1,216,TA,TA,Y,0,50,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal,145000 +578,80,RL,96,11777,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,SLvl,5,6,1966,1966,Gable,CompShg,VinylSd,VinylSd,BrkFace,97,TA,TA,CBlock,TA,TA,Av,LwQ,328,ALQ,551,285,1164,GasA,Ex,Y,SBrkr,1320,0,0,1320,1,0,1,0,3,1,TA,6,Typ,2,Fa,Attchd,1966,RFn,2,564,TA,TA,Y,160,68,240,0,0,0,NA,NA,NA,0,5,2006,WD,Abnorml,164500 +579,160,FV,34,3604,Pave,Pave,Reg,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,689,689,GasA,Ex,Y,SBrkr,703,689,0,1392,0,0,2,0,2,1,Gd,5,Typ,0,NA,Detchd,2007,Unf,2,540,TA,TA,Y,0,102,0,0,0,0,NA,NA,NA,0,2,2008,WD,Abnorml,146000 +580,50,RM,81,12150,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,5,1954,1954,Gable,CompShg,MetalSd,MetalSd,BrkFace,335,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,1050,1050,GasA,Ex,N,FuseF,1050,745,0,1795,0,0,2,0,4,1,TA,7,Typ,0,NA,Attchd,1954,Unf,1,352,Fa,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2008,WD,Normal,131500 +581,20,RL,NA,14585,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1960,1987,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,85,TA,TA,CBlock,TA,TA,No,BLQ,594,Rec,219,331,1144,GasA,Ex,Y,SBrkr,1429,0,0,1429,0,1,1,0,3,1,Gd,7,Typ,2,Gd,Attchd,1960,Unf,2,572,TA,TA,Y,216,110,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,181900 +582,20,RL,98,12704,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2008,2009,Hip,CompShg,VinylSd,VinylSd,BrkFace,306,Ex,TA,PConc,Ex,TA,No,Unf,0,Unf,0,2042,2042,GasA,Ex,Y,SBrkr,2042,0,0,2042,0,0,2,1,3,1,Ex,8,Typ,1,Gd,Attchd,2009,RFn,3,1390,TA,TA,Y,0,90,0,0,0,0,NA,NA,NA,0,8,2009,New,Partial,253293 +583,90,RL,81,11841,Grvl,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,Duplex,SFoyer,6,5,1990,1990,Gable,CompShg,HdBoard,HdBoard,BrkFace,104,TA,Gd,CBlock,Gd,TA,Av,GLQ,816,Unf,0,0,816,GasA,TA,Y,SBrkr,816,0,0,816,1,0,1,0,3,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,32,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,118500 +584,75,RM,75,13500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,PosA,1Fam,2.5Unf,10,9,1893,2000,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Ex,Ex,BrkTil,TA,TA,No,Unf,0,Unf,0,1237,1237,GasA,Gd,Y,SBrkr,1521,1254,0,2775,0,0,3,1,3,1,Gd,9,Typ,1,Gd,Detchd,1988,Unf,2,880,Gd,TA,Y,105,502,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,325000 +585,50,RM,51,6120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,4,7,1935,1995,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,884,884,GasA,Ex,Y,SBrkr,989,584,0,1573,0,0,1,0,3,1,Gd,6,Typ,0,NA,Detchd,1935,Unf,1,240,TA,TA,Y,0,0,54,0,120,0,NA,NA,NA,0,7,2009,WD,Normal,133000 +586,20,RL,88,11443,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2005,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,208,Gd,TA,PConc,Ex,TA,Gd,GLQ,1460,Unf,0,408,1868,GasA,Ex,Y,SBrkr,2028,0,0,2028,1,0,2,0,2,1,Gd,7,Typ,2,Gd,Attchd,2005,RFn,3,880,TA,TA,Y,326,66,0,0,0,0,NA,NA,NA,0,3,2006,New,Partial,369900 +587,30,RL,55,10267,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,RRAn,Norm,1Fam,1Story,6,7,1918,2000,Gable,CompShg,Stucco,Wd Shng,None,0,TA,Gd,BrkTil,TA,Gd,Mn,Rec,210,ALQ,606,0,816,GasA,Ex,Y,SBrkr,838,0,0,838,1,0,1,0,2,1,Fa,5,Typ,0,NA,Detchd,1961,Fin,1,275,TA,TA,N,0,0,112,0,0,0,NA,MnWw,NA,0,5,2008,WD,Normal,130000 +588,85,RL,74,8740,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,SFoyer,5,6,1982,1982,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,Av,ALQ,672,Unf,0,168,840,GasA,TA,Y,SBrkr,860,0,0,860,1,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1996,Unf,2,528,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,137000 +589,20,RL,65,25095,Pave,NA,IR1,Low,AllPub,Inside,Sev,ClearCr,Norm,Norm,1Fam,1Story,5,8,1968,2003,Flat,Tar&Grv,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Gd,GLQ,1324,Unf,0,113,1437,GasA,Ex,Y,SBrkr,1473,0,0,1473,2,0,1,0,1,1,Ex,5,Typ,2,Gd,Attchd,1968,Unf,1,452,TA,TA,Y,0,48,0,0,60,0,NA,NA,NA,0,6,2009,WD,Partial,143000 +590,40,RM,50,9100,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,RRAn,Feedr,1Fam,1Story,5,6,1930,1960,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,742,742,GasA,TA,Y,FuseA,779,0,156,935,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1988,Unf,1,308,TA,TA,P,0,0,0,0,0,0,NA,NA,Shed,600,8,2008,WD,Normal,79500 +591,60,RL,64,8320,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,490,Unf,0,280,770,GasA,Ex,Y,SBrkr,770,812,0,1582,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2004,RFn,2,520,TA,TA,Y,0,45,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal,185900 +592,60,RL,97,13478,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,2Story,10,5,2008,2008,Gable,CompShg,CemntBd,CmentBd,Stone,420,Ex,TA,PConc,Ex,TA,Gd,GLQ,1338,Unf,0,384,1722,GasA,Ex,Y,SBrkr,1728,568,0,2296,1,0,2,1,3,1,Ex,10,Typ,1,Gd,BuiltIn,2008,RFn,3,842,TA,TA,Y,382,274,0,0,0,0,NA,NA,NA,0,6,2009,ConLI,Normal,451950 +593,20,RL,60,6600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,8,1982,2003,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Gd,PConc,TA,Gd,No,GLQ,816,Unf,0,0,816,GasA,Ex,Y,SBrkr,816,0,0,816,1,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1985,Fin,2,816,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,138000 +594,120,RM,NA,4435,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,TwnhsE,1Story,6,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,170,Gd,TA,PConc,Gd,TA,Av,GLQ,685,Unf,0,163,848,GasA,Ex,Y,SBrkr,848,0,0,848,1,0,1,0,1,1,Gd,4,Typ,0,NA,Attchd,2003,Fin,2,420,TA,TA,Y,140,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,140000 +595,20,RL,88,7990,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,6,1975,1975,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,924,924,GasA,TA,Y,SBrkr,924,0,0,924,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1981,Unf,1,280,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,4,2008,WD,Normal,110000 +596,20,RL,69,11302,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,StoneBr,Norm,Norm,1Fam,1Story,8,5,2005,2006,Gable,CompShg,VinylSd,Other,BrkFace,238,Gd,TA,PConc,Gd,TA,Gd,GLQ,1422,Unf,0,392,1814,GasA,Ex,Y,SBrkr,1826,0,0,1826,1,0,2,0,3,1,Gd,7,Typ,1,TA,Attchd,2005,Fin,3,758,TA,TA,Y,180,75,0,0,120,0,NA,NA,NA,0,8,2006,New,Partial,319000 +597,70,RM,60,3600,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,6,7,1910,1993,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,684,684,GasA,Ex,N,FuseA,684,684,0,1368,0,0,1,0,3,1,TA,7,Typ,0,NA,Detchd,1930,Unf,1,216,TA,Fa,N,0,158,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal,114504 +598,120,RL,53,3922,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,BrkFace,72,Gd,TA,PConc,Ex,TA,Av,Unf,0,Unf,0,1258,1258,GasA,Ex,Y,SBrkr,1402,0,0,1402,0,2,0,2,2,1,Gd,7,Typ,1,Gd,Attchd,2006,Fin,3,648,TA,TA,Y,120,16,0,0,0,0,NA,NA,NA,0,2,2007,New,Partial,194201 +599,20,RL,80,12984,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,5,6,1977,1977,Gable,CompShg,Plywood,Plywood,BrkFace,459,TA,TA,CBlock,Gd,TA,Mn,ALQ,1283,LwQ,147,0,1430,GasA,Ex,Y,SBrkr,1647,0,0,1647,1,0,2,0,3,1,Gd,7,Typ,1,TA,Attchd,1977,Fin,2,621,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal,217500 +600,160,RM,24,1950,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blueste,Norm,Norm,Twnhs,2Story,6,6,1980,1980,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,Gd,TA,No,LwQ,81,GLQ,612,23,716,GasA,TA,Y,SBrkr,716,840,0,1556,1,0,2,1,3,1,TA,6,Typ,1,TA,Attchd,1980,Fin,2,452,TA,TA,Y,161,0,0,0,0,0,NA,GdPrv,NA,0,7,2008,COD,Normal,151000 +601,60,RL,74,10927,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,280,Gd,TA,PConc,Gd,TA,Av,GLQ,546,Unf,0,512,1058,GasA,Ex,Y,SBrkr,1058,846,0,1904,1,0,2,1,3,1,Ex,8,Typ,1,Gd,BuiltIn,2003,Fin,2,736,TA,TA,Y,179,60,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,275000 +602,50,RM,50,9000,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,6,6,1937,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,PConc,TA,TA,No,Unf,0,Unf,0,780,780,GasA,TA,Y,SBrkr,780,595,0,1375,0,0,1,1,3,1,Gd,6,Typ,1,Gd,Detchd,1979,Unf,1,544,TA,TA,P,0,162,0,0,126,0,NA,NA,NA,0,12,2007,WD,Normal,141000 +603,60,RL,80,10041,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,8,5,1992,1992,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,Mn,GLQ,789,Unf,0,119,908,GasA,Ex,Y,SBrkr,927,988,0,1915,1,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1992,Fin,2,506,TA,TA,Y,120,150,0,0,0,0,NA,NA,NA,0,2,2006,WD,Abnorml,220000 +604,160,FV,30,3182,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,7,5,2004,2005,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,600,600,GasA,Ex,Y,SBrkr,600,600,0,1200,0,0,2,1,2,1,Gd,4,Typ,0,NA,Detchd,2004,RFn,2,480,TA,TA,Y,0,172,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,151000 +605,20,RL,88,12803,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,99,Gd,TA,PConc,Gd,TA,Mn,GLQ,922,Unf,0,572,1494,GasA,Ex,Y,SBrkr,1494,0,0,1494,1,0,2,0,3,1,Gd,6,Typ,1,TA,Attchd,2002,RFn,2,530,TA,TA,Y,192,36,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal,221000 +606,60,RL,85,13600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,2Story,7,6,1965,1990,Gable,CompShg,HdBoard,HdBoard,BrkFace,176,TA,TA,CBlock,TA,TA,No,BLQ,454,Unf,0,314,768,GasA,TA,Y,SBrkr,1186,800,0,1986,0,0,2,1,3,1,TA,7,Typ,3,Fa,Attchd,1965,Unf,2,486,TA,TA,Y,0,42,0,0,189,0,NA,NA,NA,0,10,2009,WD,Normal,205000 +607,20,RL,82,12464,Pave,NA,IR2,Low,AllPub,Corner,Mod,CollgCr,Norm,Norm,1Fam,1Story,5,5,1996,1996,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,PConc,Gd,TA,No,GLQ,732,Unf,0,308,1040,GasA,Gd,Y,SBrkr,1040,0,0,1040,1,0,1,0,3,1,Gd,6,Typ,0,NA,Detchd,2000,Unf,2,576,TA,TA,Y,168,0,0,0,0,0,NA,GdPrv,NA,0,11,2009,WD,Normal,152000 +608,20,RL,78,7800,Pave,NA,Reg,Bnk,AllPub,Inside,Mod,Edwards,Norm,Norm,1Fam,2Story,5,8,1948,2002,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,Gd,No,GLQ,603,Unf,0,293,896,GasA,Ex,Y,SBrkr,1112,896,0,2008,1,0,3,0,3,1,Ex,8,Typ,0,NA,Attchd,1948,Unf,1,230,TA,TA,Y,103,0,0,0,0,0,NA,NA,NA,0,8,2006,WD,Normal,225000 +609,70,RL,78,12168,Pave,NA,Reg,HLS,AllPub,Inside,Mod,Crawfor,Norm,Norm,1Fam,2Story,8,6,1934,1998,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,PConc,Gd,TA,Mn,BLQ,428,Unf,0,537,965,GasA,TA,Y,SBrkr,1940,1254,0,3194,0,0,2,1,4,1,TA,10,Typ,2,Gd,Basment,1934,Unf,2,380,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,9,2007,WD,Alloca,359100 +610,20,RL,61,7943,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,4,5,1961,1961,Gable,CompShg,VinylSd,VinylSd,BrkCmn,192,TA,Fa,CBlock,TA,TA,Mn,Rec,903,Unf,0,126,1029,GasA,Gd,Y,SBrkr,1029,0,0,1029,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1961,Unf,1,261,TA,TA,Y,64,0,39,0,0,0,NA,NA,NA,0,4,2007,WD,Normal,118500 +611,60,RL,NA,11050,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,PosN,Norm,1Fam,2Story,9,5,2000,2000,Hip,CompShg,VinylSd,VinylSd,BrkFace,204,Gd,TA,PConc,Ex,TA,Mn,GLQ,904,Unf,0,536,1440,GasA,Ex,Y,SBrkr,1476,677,0,2153,1,0,2,1,3,1,Ex,8,Typ,2,Ex,Attchd,2000,Fin,3,736,TA,TA,Y,253,142,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,313000 +612,80,RL,NA,10395,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,NWAmes,Norm,Norm,1Fam,SLvl,6,6,1978,1978,Gable,CompShg,HdBoard,HdBoard,BrkFace,233,TA,TA,CBlock,Gd,TA,Av,ALQ,605,Unf,0,427,1032,GasA,TA,Y,SBrkr,1032,0,0,1032,0,1,2,0,3,1,TA,6,Typ,1,TA,Attchd,1978,Unf,2,564,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,Shed,500,7,2007,WD,Normal,148000 +613,60,RL,NA,11885,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,BrkFace,108,Gd,TA,PConc,Gd,TA,Av,GLQ,990,Unf,0,309,1299,GasA,Ex,Y,SBrkr,1299,573,0,1872,1,0,2,1,3,1,Ex,7,Typ,1,TA,BuiltIn,2001,RFn,2,531,TA,TA,Y,160,122,0,0,0,0,NA,NA,NA,0,11,2009,WD,Normal,261500 +614,20,RL,70,8402,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Feedr,Norm,1Fam,1Story,5,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,ALQ,206,Unf,0,914,1120,GasA,Ex,Y,SBrkr,1120,0,0,1120,0,0,1,0,3,1,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,30,0,0,0,0,NA,NA,NA,0,12,2007,New,Partial,147000 +615,180,RM,21,1491,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,SFoyer,4,6,1972,1972,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,Gd,TA,Av,LwQ,150,GLQ,480,0,630,GasA,Ex,Y,SBrkr,630,0,0,630,1,0,1,0,1,1,TA,3,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,96,24,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,75500 +616,85,RL,80,8800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Feedr,Norm,1Fam,SFoyer,6,7,1963,1963,Gable,CompShg,MetalSd,MetalSd,BrkFace,156,TA,Gd,PConc,TA,TA,Gd,GLQ,763,Unf,0,173,936,GasA,Ex,Y,SBrkr,1054,0,0,1054,1,0,1,0,3,1,Gd,6,Typ,0,NA,Attchd,1963,RFn,2,480,TA,TA,Y,120,0,0,0,0,0,NA,MnPrv,NA,0,5,2010,WD,Abnorml,137500 +617,60,RL,NA,7861,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2002,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,457,Unf,0,326,783,GasA,Ex,Y,SBrkr,807,702,0,1509,1,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2002,Fin,2,393,TA,TA,Y,100,75,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,183200 +618,45,RL,59,7227,Pave,NA,Reg,HLS,AllPub,Corner,Mod,NAmes,Artery,Norm,1Fam,1.5Unf,6,6,1954,1954,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,832,832,GasA,Gd,Y,SBrkr,832,0,0,832,0,0,1,0,2,1,Gd,4,Typ,0,NA,Detchd,1962,Unf,2,528,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,105500 +619,20,RL,90,11694,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2007,2007,Hip,CompShg,CemntBd,CmentBd,BrkFace,452,Ex,TA,PConc,Ex,TA,Av,GLQ,48,Unf,0,1774,1822,GasA,Ex,Y,SBrkr,1828,0,0,1828,0,0,2,0,3,1,Gd,9,Typ,1,Gd,Attchd,2007,Unf,3,774,TA,TA,Y,0,108,0,0,260,0,NA,NA,NA,0,7,2007,New,Partial,314813 +620,60,RL,85,12244,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,2Story,8,5,2003,2003,Hip,CompShg,VinylSd,VinylSd,Stone,226,Gd,TA,PConc,Gd,TA,Gd,GLQ,871,Unf,0,611,1482,GasA,Ex,Y,SBrkr,1482,780,0,2262,1,0,2,1,4,1,Gd,10,Typ,2,Gd,Attchd,2003,Fin,3,749,TA,TA,Y,168,0,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal,305000 +621,30,RL,45,8248,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,3,3,1914,1950,Gable,CompShg,Stucco,Stucco,None,0,TA,TA,BrkTil,TA,TA,No,BLQ,41,Unf,0,823,864,GasA,TA,N,FuseF,864,0,0,864,1,0,1,0,2,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,100,0,0,0,NA,NA,NA,0,9,2008,WD,Normal,67000 +622,60,RL,90,10800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,6,7,1974,1997,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,ALQ,956,Rec,182,384,1522,GasA,TA,Y,SBrkr,1548,1066,0,2614,0,0,2,1,4,1,TA,9,Typ,1,TA,Attchd,1974,RFn,2,624,TA,TA,Y,38,243,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,240000 +623,20,RL,71,7064,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,6,1977,1977,Gable,CompShg,Plywood,Plywood,BrkFace,153,TA,TA,CBlock,TA,TA,No,BLQ,560,Unf,0,420,980,GasA,TA,Y,SBrkr,980,0,0,980,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1986,Unf,2,484,TA,TA,Y,192,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,135000 +624,160,FV,NA,2117,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,6,5,2000,2000,Gable,CompShg,MetalSd,MetalSd,BrkFace,513,Gd,TA,PConc,Gd,TA,No,GLQ,420,Unf,0,336,756,GasA,Ex,Y,SBrkr,756,756,0,1512,0,0,2,1,2,1,Gd,4,Typ,1,TA,Detchd,2000,Unf,2,440,TA,TA,Y,0,32,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,168500 +625,60,RL,80,10400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,6,5,1972,1972,Gable,CompShg,VinylSd,VinylSd,None,288,TA,TA,CBlock,TA,TA,No,Rec,247,Unf,0,485,732,GasA,Gd,Y,SBrkr,1012,778,0,1790,1,0,1,2,4,1,TA,8,Min2,1,TA,Attchd,1972,RFn,2,484,TA,TA,Y,148,0,0,0,147,0,NA,NA,NA,0,11,2006,WD,Normal,165150 +626,20,RL,87,10000,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1962,1962,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,261,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1116,1116,GasA,TA,Y,SBrkr,1116,0,0,1116,0,0,1,1,3,1,TA,5,Typ,0,NA,Attchd,1962,Unf,2,440,TA,TA,Y,0,0,0,0,385,0,NA,NA,NA,0,2,2010,WD,Normal,160000 +627,20,RL,NA,12342,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1960,1978,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,978,978,GasA,TA,Y,SBrkr,1422,0,0,1422,0,0,1,0,3,1,TA,6,Min1,1,TA,Attchd,1960,RFn,1,286,TA,TA,Y,0,0,36,0,0,0,NA,GdWo,Shed,600,8,2007,WD,Normal,139900 +628,80,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,6,6,1955,1972,Gable,CompShg,AsbShng,AsbShng,BrkFace,164,TA,TA,CBlock,TA,TA,Av,BLQ,674,LwQ,132,350,1156,GasA,Ex,Y,SBrkr,1520,0,0,1520,1,0,1,0,3,1,TA,7,Typ,2,Gd,Basment,1955,RFn,1,364,TA,TA,Y,0,0,189,0,0,0,NA,NA,NA,0,3,2010,WD,Normal,153000 +629,60,RL,70,11606,Pave,NA,IR1,HLS,AllPub,Inside,Sev,NAmes,Norm,Norm,1Fam,2Story,5,5,1969,1969,Gable,CompShg,Plywood,Plywood,BrkFace,192,TA,TA,PConc,Gd,TA,Av,Rec,650,Unf,0,390,1040,GasA,TA,Y,SBrkr,1040,1040,0,2080,0,1,1,2,5,1,Fa,9,Typ,2,TA,Attchd,1969,Unf,2,504,TA,TA,Y,335,0,0,0,0,0,NA,NA,NA,0,9,2007,WD,Family,135000 +630,80,RL,82,9020,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Feedr,Norm,1Fam,SLvl,6,5,1964,1964,Gable,WdShngl,Plywood,Wd Sdng,BrkFace,259,TA,TA,CBlock,TA,TA,Gd,GLQ,624,Rec,336,288,1248,GasA,TA,Y,SBrkr,1350,0,0,1350,1,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1964,RFn,2,520,TA,TA,Y,176,0,0,0,0,0,NA,GdPrv,NA,0,6,2008,WD,Normal,168500 +631,70,RM,50,9000,Pave,Grvl,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Artery,Norm,1Fam,2Story,5,6,1880,1991,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,BrkTil,Fa,Fa,No,Unf,0,Unf,0,636,636,GasA,TA,Y,FuseA,1089,661,0,1750,0,0,1,0,3,1,Ex,8,Typ,0,NA,Detchd,1937,Unf,1,240,Fa,Po,N,0,0,293,0,0,0,NA,MnPrv,NA,0,6,2006,WD,Abnorml,124000 +632,120,RL,34,4590,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,Twnhs,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,Stone,108,Gd,TA,PConc,Gd,Gd,Mn,GLQ,24,Unf,0,1530,1554,GasA,Ex,Y,SBrkr,1554,0,0,1554,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2006,RFn,2,627,TA,TA,Y,156,73,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,209500 +633,20,RL,85,11900,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,7,5,1977,1977,Hip,CompShg,Plywood,Plywood,BrkFace,209,TA,Gd,CBlock,TA,TA,No,ALQ,822,Unf,0,564,1386,GasA,TA,Y,SBrkr,1411,0,0,1411,0,0,2,0,3,1,TA,6,Typ,1,TA,Attchd,1977,Fin,2,544,TA,TA,Y,192,0,0,0,0,0,NA,NA,NA,0,4,2009,WD,Family,82500 +634,20,RL,80,9250,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1954,2005,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,480,LwQ,468,108,1056,GasA,TA,Y,SBrkr,1056,0,0,1056,0,1,1,0,3,1,TA,6,Typ,0,NA,Attchd,1954,Unf,1,260,TA,TA,Y,390,0,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,139400 +635,90,RL,64,6979,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,Duplex,SFoyer,6,5,1980,1980,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,GLQ,1056,Unf,0,0,1056,GasA,Gd,Y,SBrkr,1056,0,0,1056,2,0,0,0,0,2,TA,4,Typ,0,NA,Detchd,1980,Unf,2,576,TA,TA,Y,264,56,0,0,0,0,NA,GdPrv,Shed,600,6,2010,WD,Normal,144000 +636,190,RH,60,10896,Pave,Pave,Reg,Bnk,AllPub,Inside,Gtl,SWISU,Feedr,Norm,2fmCon,2.5Fin,6,7,1914,1995,Hip,CompShg,VinylSd,VinylSd,None,0,Fa,TA,CBlock,TA,Fa,No,LwQ,256,Unf,0,1184,1440,GasA,Ex,Y,FuseA,1440,1440,515,3395,0,0,2,0,8,2,Fa,14,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,110,0,0,0,0,NA,NA,NA,0,3,2007,WD,Abnorml,200000 +637,30,RM,51,6120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,2,3,1936,1950,Gable,CompShg,AsbShng,AsbShng,None,0,Fa,Fa,BrkTil,TA,Fa,No,Unf,0,Unf,0,264,264,Grav,Fa,N,FuseA,800,0,0,800,0,0,1,0,1,1,Fa,4,Maj1,1,Po,NA,NA,NA,0,0,NA,NA,N,0,0,0,0,0,0,NA,NA,NA,0,1,2009,ConLw,Normal,60000 +638,190,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,2fmCon,1.5Fin,5,4,1954,1954,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,811,811,GasA,TA,Y,FuseA,811,576,0,1387,0,0,2,0,3,2,Gd,7,Typ,0,NA,BuiltIn,1954,Unf,1,256,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2009,WD,Normal,93000 +639,30,RL,67,8777,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Feedr,Norm,1Fam,1Story,5,7,1910,1950,Gable,CompShg,MetalSd,Wd Sdng,None,0,TA,TA,CBlock,Fa,TA,No,Unf,0,Unf,0,796,796,GasA,Gd,Y,FuseA,796,0,0,796,0,0,1,0,2,1,TA,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,P,328,0,164,0,0,0,NA,MnPrv,NA,0,5,2008,WD,Normal,85000 +640,120,RL,53,3982,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,8,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,Gd,Av,GLQ,1154,Unf,0,366,1520,GasA,Ex,Y,SBrkr,1567,0,0,1567,1,0,2,0,1,1,Ex,7,Typ,1,Gd,Attchd,2006,Fin,3,648,TA,TA,Y,312,0,0,0,0,0,NA,NA,NA,0,10,2006,New,Partial,264561 +641,120,RL,62,12677,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,8,5,2003,2004,Hip,CompShg,MetalSd,MetalSd,BrkFace,472,Ex,TA,PConc,Ex,TA,Gd,GLQ,1218,Unf,0,300,1518,GasA,Ex,Y,SBrkr,1518,0,0,1518,0,0,1,1,1,1,Ex,6,Typ,1,Gd,Attchd,2003,RFn,2,588,TA,TA,Y,185,140,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal,274000 +642,60,FV,NA,7050,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,738,Unf,0,319,1057,GasA,Ex,Y,SBrkr,1057,872,0,1929,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,2001,Fin,2,650,TA,TA,Y,0,235,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,226000 +643,80,RL,75,13860,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,8,7,1972,1995,Gable,CompShg,Plywood,Wd Sdng,None,0,Gd,TA,CBlock,Gd,TA,Gd,GLQ,1410,Unf,0,542,1952,GasA,Gd,Y,SBrkr,2000,704,0,2704,1,0,2,1,4,1,Ex,9,Typ,3,TA,Attchd,1972,Fin,2,538,TA,TA,Y,269,111,0,0,0,0,NA,MnPrv,NA,0,7,2009,WD,Normal,345000 +644,60,RL,80,10793,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,RRAn,Norm,1Fam,2Story,5,5,1969,1969,Mansard,CompShg,WdShing,HdBoard,BrkFace,263,TA,TA,CBlock,TA,TA,No,Rec,493,BLQ,287,0,780,GasA,Ex,Y,SBrkr,780,840,0,1620,0,0,2,1,4,1,TA,7,Min1,0,NA,Attchd,1969,Fin,2,462,TA,TA,Y,208,0,0,0,0,0,NA,GdWo,NA,0,4,2007,WD,Normal,152000 +645,20,FV,85,9187,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,9,5,2009,2009,Gable,CompShg,CemntBd,CmentBd,Stone,162,Ex,TA,PConc,Ex,TA,Mn,GLQ,1121,Unf,0,645,1766,GasA,Ex,Y,SBrkr,1766,0,0,1766,1,0,2,1,2,1,Ex,7,Typ,1,Gd,Attchd,2009,Fin,3,478,TA,TA,Y,195,130,0,0,0,0,NA,NA,NA,0,10,2009,New,Partial,370878 +646,20,RL,NA,10530,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1971,1971,Hip,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,282,LwQ,35,664,981,GasA,TA,Y,SBrkr,981,0,0,981,1,0,1,1,3,1,TA,5,Typ,0,NA,Detchd,1979,Unf,2,576,TA,TA,Y,0,312,40,0,0,0,NA,NA,NA,0,3,2007,WD,Normal,143250 +647,20,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1950,1950,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,Gd,Y,SBrkr,1048,0,0,1048,0,0,1,0,3,1,TA,7,Min1,0,NA,Detchd,1950,Unf,2,420,TA,TA,Y,0,27,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,98300 +648,20,RL,85,10452,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,6,5,1953,1953,Hip,CompShg,Wd Sdng,Wd Sdng,Stone,216,TA,TA,CBlock,TA,TA,Mn,Rec,500,Unf,0,594,1094,GasA,Ex,Y,SBrkr,1094,0,0,1094,0,0,1,0,3,1,TA,5,Typ,2,Gd,Attchd,1953,RFn,2,495,TA,TA,Y,0,0,0,0,287,0,NA,NA,NA,0,6,2008,WD,Normal,155000 +649,60,RL,70,7700,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,PosN,Norm,1Fam,2Story,6,5,1966,1966,Gable,CompShg,MetalSd,MetalSd,BrkFace,351,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,756,756,GasA,TA,Y,SBrkr,1051,788,0,1839,0,0,1,1,4,1,TA,7,Typ,1,TA,Attchd,1966,Unf,2,442,TA,TA,Y,0,124,216,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,155000 +650,180,RM,21,1936,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,SFoyer,4,6,1970,1970,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,Gd,TA,Av,BLQ,131,GLQ,499,0,630,GasA,Gd,Y,SBrkr,630,0,0,630,1,0,1,0,1,1,TA,3,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,12,2007,WD,Normal,84500 +651,60,FV,65,8125,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,6,2007,2007,Gable,CompShg,CemntBd,CmentBd,NA,NA,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,813,813,GasA,Ex,Y,SBrkr,822,843,0,1665,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2007,RFn,2,562,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,205950 +652,70,RL,60,9084,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Artery,Norm,1Fam,2Story,4,5,1940,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,Mn,Unf,0,Unf,0,755,755,GasA,TA,Y,SBrkr,755,755,0,1510,1,0,1,0,4,1,TA,7,Typ,1,Gd,Detchd,1940,Unf,1,296,Fa,Po,P,120,0,0,0,0,0,NA,MnPrv,NA,0,10,2009,WD,Normal,108000 +653,60,RL,70,8750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,1996,1996,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,880,880,GasA,Ex,Y,SBrkr,909,807,0,1716,0,0,2,1,2,1,Gd,7,Typ,1,TA,Attchd,1996,RFn,2,512,TA,TA,Y,0,120,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,191000 +654,50,RM,60,10320,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,6,7,1906,1995,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,756,756,GasA,Ex,Y,SBrkr,756,713,0,1469,0,0,1,0,3,1,TA,7,Typ,0,NA,Detchd,1906,Unf,1,216,TA,TA,Y,57,0,239,0,0,0,NA,MnPrv,NA,0,6,2008,WD,Normal,135000 +655,20,RL,91,10437,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,1Story,8,6,1995,1995,Hip,CompShg,MetalSd,MetalSd,BrkFace,660,Gd,Gd,PConc,Gd,TA,Gd,GLQ,1696,Unf,0,413,2109,GasA,Ex,Y,SBrkr,2113,0,0,2113,1,0,2,1,2,1,Gd,7,Typ,1,TA,Attchd,1995,Fin,3,839,TA,TA,Y,236,46,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal,350000 +656,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,5,1971,1971,Gable,CompShg,HdBoard,ImStucc,BrkFace,381,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,525,525,GasA,TA,Y,SBrkr,525,567,0,1092,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1971,Unf,1,264,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2010,WD,Family,88000 +657,20,RL,72,10007,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1959,2006,Gable,CompShg,HdBoard,HdBoard,BrkFace,54,Gd,TA,CBlock,TA,TA,No,ALQ,806,Unf,0,247,1053,GasA,Ex,Y,SBrkr,1053,0,0,1053,1,0,1,1,3,1,Gd,5,Typ,0,NA,Attchd,1959,RFn,1,312,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,8,2008,WD,Normal,145500 +658,70,RL,60,7200,Pave,NA,Reg,HLS,AllPub,Inside,Mod,Crawfor,Norm,Norm,1Fam,2Story,7,6,1931,2000,Gable,CompShg,Stucco,Wd Shng,None,0,TA,Fa,BrkTil,Gd,TA,No,Unf,0,Unf,0,776,776,GasA,TA,Y,SBrkr,851,651,0,1502,0,0,1,1,3,1,TA,6,Typ,1,Gd,Attchd,1931,RFn,1,270,TA,TA,P,0,0,112,0,0,0,NA,MnPrv,NA,0,2,2008,WD,Normal,149000 +659,50,RL,78,17503,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Artery,Norm,1Fam,1.5Fin,6,5,1948,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,912,912,GasA,TA,Y,SBrkr,912,546,0,1458,0,1,1,0,3,1,TA,6,Typ,1,Gd,Attchd,1948,Unf,1,330,TA,TA,Y,192,0,0,0,0,0,NA,NA,NA,0,1,2010,WD,Abnorml,97500 +660,20,RL,75,9937,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,7,1964,1999,Hip,CompShg,MetalSd,MetalSd,None,0,TA,Gd,PConc,TA,TA,No,BLQ,637,Unf,0,849,1486,GasA,Ex,Y,SBrkr,1486,0,0,1486,1,0,1,0,3,1,TA,7,Typ,0,NA,Detchd,1968,Fin,2,480,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,3,2009,WD,Normal,167000 +661,60,RL,NA,12384,Pave,NA,Reg,Lvl,AllPub,CulDSac,Gtl,NWAmes,Norm,Norm,1Fam,2Story,7,7,1976,1976,Gable,CompShg,Plywood,Plywood,BrkFace,233,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,793,793,GasA,TA,Y,SBrkr,1142,793,0,1935,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1976,RFn,2,550,TA,TA,Y,0,113,252,0,0,0,NA,NA,NA,0,11,2007,WD,Normal,197900 +662,60,RL,52,46589,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,7,1994,2005,Hip,CompShg,VinylSd,VinylSd,BrkFace,528,Gd,TA,PConc,Gd,Gd,No,GLQ,1361,Rec,180,88,1629,GasA,Ex,Y,SBrkr,1686,762,0,2448,1,0,2,1,4,1,Gd,8,Typ,1,TA,Attchd,1994,RFn,3,711,TA,TA,Y,517,76,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,402000 +663,20,RL,120,13560,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,3,1968,1968,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,216,TA,TA,CBlock,Fa,Fa,No,Unf,0,Unf,0,1392,1392,GasA,Gd,Y,SBrkr,1392,0,0,1392,1,0,1,0,2,1,TA,5,Maj2,2,TA,Attchd,1968,RFn,2,576,TA,TA,Y,0,0,240,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,110000 +664,85,RL,90,10012,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,SFoyer,4,5,1972,1972,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,Av,BLQ,920,Rec,180,38,1138,GasA,TA,Y,SBrkr,1181,0,0,1181,1,0,2,0,3,1,TA,6,Typ,0,NA,Detchd,1974,RFn,2,588,TA,TA,Y,0,0,180,0,0,0,NA,MnPrv,NA,0,4,2008,WD,Normal,137500 +665,20,RL,49,20896,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,Somerst,RRAn,Norm,1Fam,1Story,8,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,Mn,GLQ,1721,Unf,0,356,2077,GasA,Ex,Y,SBrkr,2097,0,0,2097,1,0,1,1,1,1,Ex,8,Typ,1,Ex,Attchd,2005,Fin,3,1134,TA,TA,Y,192,267,0,0,0,0,NA,NA,NA,0,1,2006,New,Partial,423000 +666,60,RL,106,11194,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,8,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,40,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1406,1406,GasA,Ex,Y,SBrkr,1454,482,0,1936,0,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,2000,RFn,2,504,TA,TA,Y,188,124,0,0,0,0,NA,NA,NA,0,11,2006,WD,Normal,230500 +667,60,RL,NA,18450,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,2Story,6,5,1965,1979,Flat,Tar&Grv,Plywood,Plywood,BrkCmn,113,TA,Gd,CBlock,Gd,TA,No,LwQ,187,Rec,723,111,1021,GasA,TA,Y,SBrkr,1465,915,0,2380,0,0,2,1,3,1,TA,7,Sev,1,Po,CarPort,1965,Unf,2,596,TA,TA,Y,0,265,0,0,0,0,NA,NA,NA,0,8,2007,WD,Abnorml,129000 +668,20,RL,65,8125,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,6,5,1994,1998,Gable,CompShg,HdBoard,HdBoard,BrkFace,258,TA,TA,PConc,Gd,TA,No,GLQ,1138,Unf,0,270,1408,GasA,Ex,Y,SBrkr,1679,0,0,1679,1,0,2,0,3,1,Gd,7,Typ,1,Fa,Attchd,1994,RFn,2,575,TA,TA,Y,224,42,0,0,0,0,NA,NA,NA,0,10,2008,WD,Normal,193500 +669,20,RL,NA,14175,Pave,NA,Reg,Bnk,AllPub,Corner,Mod,Sawyer,Norm,Norm,1Fam,1Story,5,6,1956,1987,Gable,CompShg,CemntBd,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,988,Unf,0,200,1188,GasA,Gd,Y,SBrkr,1437,0,0,1437,1,0,1,1,3,1,TA,6,Min2,1,TA,Detchd,1999,Unf,2,576,TA,TA,Y,304,0,0,0,0,0,NA,NA,NA,0,11,2006,WD,Normal,168000 +670,30,RL,80,11600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,4,5,1922,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,Fa,TA,No,Unf,0,Unf,0,700,700,GasA,Ex,Y,SBrkr,1180,0,0,1180,0,0,1,0,2,1,Fa,5,Typ,1,Gd,Detchd,1922,Unf,1,252,TA,Fa,Y,0,0,67,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,137500 +671,60,RL,64,8633,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,CollgCr,Norm,Norm,1Fam,2Story,6,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,193,Unf,0,545,738,GasA,Ex,Y,SBrkr,738,738,0,1476,1,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2005,Fin,2,540,TA,TA,Y,100,35,0,0,0,0,NA,NA,NA,0,2,2009,WD,Normal,173500 +672,70,RH,54,6629,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Artery,Norm,1Fam,2Story,6,6,1925,1950,Gambrel,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,BrkTil,TA,TA,No,BLQ,551,Unf,0,121,672,GasA,TA,N,SBrkr,697,672,0,1369,1,0,2,0,3,1,TA,6,Typ,0,NA,Detchd,1930,Unf,1,300,TA,TA,Y,147,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,103600 +673,20,RL,NA,11250,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Veenker,Norm,Norm,1Fam,1Story,6,6,1977,1977,Gable,CompShg,Plywood,Plywood,None,0,Gd,TA,CBlock,Gd,TA,No,ALQ,767,Unf,0,441,1208,GasA,TA,Y,SBrkr,1208,0,0,1208,1,0,1,1,3,1,TA,6,Typ,1,TA,Attchd,1977,RFn,2,546,TA,TA,Y,198,42,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,165000 +674,20,RL,110,14442,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,6,7,1957,2004,Hip,CompShg,CemntBd,CmentBd,BrkFace,106,TA,TA,PConc,TA,TA,No,GLQ,1186,Unf,0,291,1477,GasA,Ex,Y,SBrkr,1839,0,0,1839,1,0,2,0,3,1,Gd,7,Typ,2,TA,Attchd,1957,Fin,2,416,TA,TA,Y,0,87,0,0,200,0,NA,NA,NA,0,6,2007,WD,Normal,257500 +675,20,RL,80,9200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1965,1965,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Rec,892,Unf,0,244,1136,GasA,TA,Y,SBrkr,1136,0,0,1136,1,0,1,0,3,1,TA,5,Typ,1,Gd,Attchd,1965,RFn,1,384,TA,TA,Y,426,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,140000 +676,160,RL,24,2289,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NPkVill,Norm,Norm,Twnhs,2Story,6,6,1978,1978,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,TA,TA,No,ALQ,311,Unf,0,544,855,GasA,TA,Y,SBrkr,855,586,0,1441,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1978,Unf,2,440,TA,TA,Y,28,0,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal,148500 +677,70,RM,60,9600,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,4,2,1900,1950,Gable,CompShg,AsbShng,Stucco,None,0,TA,TA,BrkTil,TA,Fa,No,Unf,0,Unf,0,1095,1095,GasW,Fa,N,SBrkr,1095,679,0,1774,1,0,2,0,4,2,TA,8,Min2,0,NA,2Types,1920,Unf,3,779,Fa,Fa,N,0,0,90,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,87000 +678,30,RL,52,9022,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,8,1924,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,768,768,GasA,Ex,Y,SBrkr,792,0,0,792,0,0,1,0,2,1,Gd,5,Typ,0,NA,Detchd,1924,Unf,1,240,Fa,Fa,N,316,0,120,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,109500 +679,20,RL,80,11844,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,StoneBr,Norm,Norm,1Fam,1Story,8,5,2008,2008,Hip,CompShg,VinylSd,VinylSd,Stone,464,Gd,TA,PConc,Ex,TA,Mn,Unf,0,Unf,0,2046,2046,GasA,Ex,Y,SBrkr,2046,0,0,2046,0,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2008,Fin,3,834,TA,TA,Y,322,82,0,0,0,0,NA,NA,NA,0,7,2009,New,Partial,372500 +680,20,RL,NA,9945,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1961,1961,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,57,TA,TA,CBlock,TA,TA,No,Rec,827,Unf,0,161,988,GasA,TA,Y,SBrkr,988,0,0,988,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1963,Unf,2,572,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2007,WD,Normal,128500 +681,120,RL,50,8012,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,TwnhsE,1Story,6,5,1980,1980,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,No,BLQ,543,BLQ,119,261,923,GasA,TA,Y,SBrkr,923,0,0,923,0,0,2,0,2,1,TA,5,Typ,1,TA,Attchd,1980,RFn,1,264,TA,TA,Y,80,0,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,143000 +682,50,RH,55,4500,Pave,Pave,IR2,Bnk,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1.5Fin,5,5,1932,2000,Gable,CompShg,VinylSd,Stucco,None,0,TA,TA,BrkTil,TA,TA,No,Rec,182,Unf,0,611,793,GasA,Ex,Y,SBrkr,848,672,0,1520,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1968,Unf,1,281,TA,TA,Y,0,0,56,0,0,0,NA,NA,NA,0,7,2009,WD,Abnorml,159434 +683,120,RL,NA,2887,Pave,NA,Reg,HLS,AllPub,Inside,Gtl,ClearCr,Norm,Norm,1Fam,1Story,6,5,1996,1997,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,Gd,TA,Mn,GLQ,1003,Unf,0,288,1291,GasA,Ex,Y,SBrkr,1291,0,0,1291,1,0,1,0,2,1,Gd,6,Typ,1,Gd,Attchd,1996,Unf,2,431,TA,TA,Y,307,0,0,0,0,0,NA,NA,NA,0,11,2008,WD,Normal,173000 +684,20,RL,90,11248,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,9,5,2002,2002,Hip,CompShg,VinylSd,VinylSd,Stone,215,Gd,TA,PConc,Gd,TA,Av,GLQ,1059,Unf,0,567,1626,GasA,Ex,Y,SBrkr,1668,0,0,1668,1,0,2,0,3,1,Gd,7,Typ,1,TA,Attchd,2002,Fin,3,702,TA,TA,Y,257,45,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,285000 +685,60,RL,58,16770,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,NoRidge,Norm,Norm,1Fam,2Story,7,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,30,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1195,1195,GasA,Gd,Y,SBrkr,1195,644,0,1839,0,0,2,1,4,1,TA,7,Typ,0,NA,Attchd,1998,Fin,2,486,TA,TA,Y,0,81,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,221000 +686,160,RL,NA,5062,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,StoneBr,Norm,Norm,TwnhsE,2Story,7,5,1984,1984,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,CBlock,Gd,TA,Mn,GLQ,828,LwQ,182,180,1190,GasA,Gd,Y,SBrkr,1190,900,0,2090,1,0,2,0,3,1,Gd,6,Min1,1,TA,Attchd,1984,Fin,2,577,TA,TA,Y,219,0,0,0,0,0,NA,NA,NA,0,9,2007,WD,Normal,207500 +687,60,FV,84,10207,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,6,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,874,874,GasA,Ex,Y,SBrkr,874,887,0,1761,0,0,3,0,3,1,Gd,7,Typ,0,NA,Attchd,2007,Fin,2,578,TA,TA,Y,144,105,0,0,0,0,NA,NA,NA,0,8,2007,New,Partial,227875 +688,160,FV,NA,5105,Pave,NA,IR2,Lvl,AllPub,FR2,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,7,5,2004,2004,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,239,Unf,0,312,551,GasA,Ex,Y,SBrkr,551,551,0,1102,0,0,2,1,2,1,Gd,4,Typ,0,NA,Detchd,2004,Unf,2,480,TA,TA,Y,0,60,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal,148800 +689,20,RL,60,8089,Pave,NA,Reg,HLS,AllPub,Inside,Gtl,StoneBr,Norm,Norm,1Fam,1Story,8,6,2007,2007,Gable,CompShg,MetalSd,MetalSd,BrkFace,0,Gd,TA,PConc,Gd,TA,Av,GLQ,945,Unf,0,474,1419,GasA,Ex,Y,SBrkr,1419,0,0,1419,1,0,2,0,2,1,Gd,7,Typ,1,Gd,Attchd,2007,RFn,2,567,TA,TA,Y,140,0,0,0,0,0,NA,NA,NA,0,10,2007,New,Partial,392000 +690,120,RL,61,7577,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,6,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,Stone,256,Gd,TA,PConc,Gd,TA,Av,ALQ,20,Unf,0,1342,1362,GasA,Ex,Y,SBrkr,1362,0,0,1362,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2005,RFn,2,460,TA,TA,Y,192,28,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,194700 +691,120,RM,NA,4426,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,TwnhsE,1Story,6,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,147,Gd,TA,PConc,Gd,TA,Gd,GLQ,697,Unf,0,151,848,GasA,Ex,Y,SBrkr,848,0,0,848,1,0,1,0,1,1,Gd,3,Typ,1,TA,Attchd,2004,RFn,2,420,TA,TA,Y,149,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,141000 +692,60,RL,104,21535,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NoRidge,Norm,Norm,1Fam,2Story,10,6,1994,1995,Gable,WdShngl,HdBoard,HdBoard,BrkFace,1170,Ex,TA,PConc,Ex,TA,Gd,GLQ,1455,Unf,0,989,2444,GasA,Ex,Y,SBrkr,2444,1872,0,4316,0,1,3,1,4,1,Ex,10,Typ,2,Ex,Attchd,1994,Fin,3,832,TA,TA,Y,382,50,0,0,0,0,NA,NA,NA,0,1,2007,WD,Normal,755000 +693,60,RL,42,26178,Pave,NA,IR1,Lvl,AllPub,Inside,Mod,Timber,Norm,Norm,1Fam,2Story,7,5,1989,1990,Hip,CompShg,MetalSd,MetalSd,BrkFace,293,Gd,TA,PConc,Gd,TA,Gd,GLQ,965,Unf,0,245,1210,GasA,Ex,Y,SBrkr,1238,1281,0,2519,1,0,2,1,4,1,Gd,9,Typ,2,Gd,Attchd,1989,RFn,2,628,TA,TA,Y,320,27,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,335000 +694,30,RL,60,5400,Pave,NA,Reg,Lvl,AllPub,Corner,Sev,OldTown,Norm,Norm,1Fam,1Story,5,6,1921,1968,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,1073,1073,GasA,Ex,Y,SBrkr,1073,0,0,1073,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1968,Unf,1,326,TA,TA,Y,0,0,112,0,0,0,NA,NA,NA,0,12,2006,WD,Abnorml,108480 +695,50,RM,51,6120,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,6,1936,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Fa,BrkTil,TA,TA,No,Unf,0,Unf,0,927,927,GasA,TA,Y,SBrkr,1067,472,0,1539,0,0,1,1,3,1,TA,5,Typ,0,NA,Detchd,1995,Unf,2,576,TA,TA,Y,112,0,0,0,0,0,NA,MnPrv,NA,0,4,2009,WD,Normal,141500 +696,20,RL,54,13811,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,6,6,1987,1987,Gable,CompShg,HdBoard,HdBoard,BrkFace,72,TA,TA,CBlock,Gd,Gd,No,GLQ,980,LwQ,40,92,1112,GasA,Gd,Y,SBrkr,1137,0,0,1137,1,0,2,0,2,1,Gd,5,Typ,1,TA,Attchd,1987,Unf,2,551,TA,TA,Y,125,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,176000 +697,30,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,5,7,1921,1950,Gable,CompShg,Wd Sdng,Wd Shng,None,0,TA,TA,CBlock,TA,TA,No,LwQ,616,Unf,0,0,616,GasA,Gd,Y,SBrkr,616,0,0,616,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1921,Unf,1,205,TA,TA,Y,0,0,129,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,89000 +698,20,RL,57,6420,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,7,1952,1952,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,Ex,Gd,Mn,LwQ,210,ALQ,551,219,980,GasA,Fa,Y,FuseA,1148,0,0,1148,0,1,1,0,2,1,TA,6,Typ,0,NA,Detchd,1952,Unf,1,308,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,9,2006,WD,Normal,123500 +699,20,RL,65,8450,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,RRAe,Norm,1Fam,1Story,5,8,1965,2009,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,GLQ,553,BLQ,117,224,894,GasA,Ex,Y,SBrkr,894,0,0,894,1,0,1,0,3,1,TA,5,Typ,1,Gd,Detchd,1973,Unf,1,336,TA,TA,Y,416,144,0,0,0,0,NA,MnPrv,NA,0,4,2010,WD,Normal,138500 +700,120,FV,59,4282,Pave,Pave,IR2,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,7,5,2004,2004,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,Mn,GLQ,16,Unf,0,1375,1391,GasA,Ex,Y,SBrkr,1391,0,0,1391,0,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,2004,RFn,2,530,TA,TA,Y,156,158,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,196000 +701,20,RL,85,14331,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2002,2002,Hip,CompShg,VinylSd,VinylSd,BrkFace,630,Gd,TA,PConc,Ex,TA,Gd,GLQ,1274,Unf,0,526,1800,GasA,Ex,Y,SBrkr,1800,0,0,1800,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2002,Fin,3,765,TA,TA,Y,270,78,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,312500 +702,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,7,5,1969,1969,Hip,CompShg,HdBoard,HdBoard,BrkFace,168,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1164,1164,GasA,TA,Y,SBrkr,1164,0,0,1164,0,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1969,Unf,2,528,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,COD,Normal,140000 +703,60,RL,82,12438,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,StoneBr,Norm,Norm,1Fam,2Story,8,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,466,Ex,TA,PConc,Ex,Gd,No,Unf,0,Unf,0,1234,1234,GasA,Ex,Y,SBrkr,1264,1312,0,2576,0,0,2,1,4,1,Ex,10,Typ,1,Gd,BuiltIn,2006,Fin,3,666,TA,TA,Y,324,100,0,0,0,0,NA,NA,NA,0,7,2006,New,Partial,361919 +704,190,RM,76,7630,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Feedr,Norm,2fmCon,2Story,5,9,1900,1996,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,BrkTil,Gd,TA,No,Unf,0,Unf,0,360,360,GasA,Gd,Y,SBrkr,1032,780,0,1812,0,0,2,0,4,2,Gd,8,Typ,1,Po,Detchd,1999,Unf,2,672,TA,TA,N,344,0,40,0,0,0,NA,MnPrv,NA,0,5,2010,WD,Normal,140000 +705,20,RL,70,8400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,109,Gd,TA,PConc,Gd,TA,Av,GLQ,712,Unf,0,761,1473,GasA,Ex,Y,SBrkr,1484,0,0,1484,1,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2004,RFn,2,606,TA,TA,Y,0,35,0,144,0,0,NA,NA,NA,0,5,2010,WD,Normal,213000 +706,190,RM,70,5600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,2fmCon,2Story,4,5,1930,1950,Hip,CompShg,VinylSd,Wd Shng,None,0,Fa,Fa,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,Fa,N,SBrkr,372,720,0,1092,0,0,2,0,3,2,Fa,7,Mod,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,0,0,0,0,NA,NA,Othr,3500,7,2010,WD,Normal,55000 +707,20,RL,NA,115149,Pave,NA,IR2,Low,AllPub,CulDSac,Sev,ClearCr,Norm,Norm,1Fam,1Story,7,5,1971,2002,Gable,CompShg,Plywood,Plywood,Stone,351,TA,TA,CBlock,Gd,TA,Gd,GLQ,1219,Unf,0,424,1643,GasA,TA,Y,SBrkr,1824,0,0,1824,1,0,2,0,2,1,Gd,5,Typ,2,TA,Attchd,1971,Unf,2,739,TA,TA,Y,380,48,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,302000 +708,120,RL,48,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,8,5,2006,2006,Hip,CompShg,MetalSd,MetalSd,BrkFace,176,Gd,TA,PConc,Gd,TA,No,GLQ,863,Unf,0,461,1324,GasA,Ex,Y,SBrkr,1324,0,0,1324,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2006,Fin,2,550,TA,TA,Y,192,38,0,0,0,0,NA,NA,NA,0,12,2009,WD,Normal,254000 +709,60,RL,65,9018,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2007,2007,Hip,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,728,728,GasA,Ex,Y,SBrkr,728,728,0,1456,0,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2007,Fin,2,400,TA,TA,Y,100,24,0,0,0,0,NA,NA,NA,0,7,2007,New,Partial,179540 +710,20,RL,NA,7162,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,7,1966,1966,Gable,CompShg,HdBoard,HdBoard,BrkCmn,41,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,876,876,GasA,TA,Y,SBrkr,904,0,0,904,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1966,Unf,1,408,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,12,2008,WD,Abnorml,109900 +711,30,RL,56,4130,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,3,6,1935,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,CBlock,TA,TA,No,Unf,0,Unf,0,270,270,GasA,Gd,Y,SBrkr,729,0,0,729,0,0,1,0,2,1,TA,5,Maj2,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,52000 +712,50,C (all),66,8712,Pave,Pave,Reg,HLS,AllPub,Inside,Mod,IDOTRR,Norm,Norm,1Fam,1.5Fin,4,7,1900,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,Stone,TA,TA,Mn,Unf,0,Unf,0,859,859,GasA,Gd,Y,SBrkr,859,319,0,1178,0,0,1,0,2,1,TA,7,Typ,0,NA,Detchd,1964,RFn,1,384,TA,TA,N,68,0,98,0,0,0,NA,NA,NA,0,1,2010,WD,Abnorml,102776 +713,120,RL,40,4671,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,1988,1989,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,Mn,GLQ,767,Unf,0,461,1228,GasA,Gd,Y,SBrkr,1228,0,0,1228,1,0,2,0,2,1,Gd,5,Typ,1,Gd,Attchd,1988,Fin,2,472,TA,TA,Y,168,120,0,0,0,0,NA,NA,NA,0,10,2008,WD,Normal,189000 +714,190,RL,60,9873,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,RRAn,Norm,2fmCon,1Story,4,5,1970,1970,Gable,CompShg,HdBoard,HdBoard,BrkFace,160,TA,TA,CBlock,TA,TA,Av,ALQ,789,Unf,0,171,960,GasW,TA,N,SBrkr,960,0,0,960,1,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1970,Unf,2,576,TA,TA,Y,0,288,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,129000 +715,60,RL,NA,13517,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,RRAe,Norm,1Fam,2Story,6,8,1976,2005,Gable,CompShg,HdBoard,Plywood,BrkFace,289,Gd,TA,CBlock,TA,TA,No,GLQ,533,Unf,0,192,725,GasA,Ex,Y,SBrkr,725,754,0,1479,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,1976,RFn,2,475,TA,TA,Y,0,44,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal,130500 +716,20,RL,78,10140,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,5,1974,1974,Hip,CompShg,HdBoard,HdBoard,BrkFace,174,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,1064,1064,GasA,TA,Y,SBrkr,1350,0,0,1350,0,0,2,0,3,1,TA,7,Typ,1,TA,Attchd,1974,RFn,2,478,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,8,2009,WD,Normal,165000 +717,70,RM,60,10800,Pave,Grvl,Reg,Bnk,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,7,8,1890,1998,Gable,CompShg,Wd Sdng,VinylSd,None,0,TA,Gd,BrkTil,TA,TA,No,Unf,0,Unf,0,718,718,GasA,Ex,Y,SBrkr,1576,978,0,2554,0,0,1,1,3,1,TA,8,Typ,0,NA,Detchd,1996,Unf,2,704,TA,TA,P,0,48,143,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,159500 +718,20,RL,80,10000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,5,6,1973,2000,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,No,BLQ,1084,Unf,0,92,1176,GasA,Gd,Y,SBrkr,1178,0,0,1178,0,1,1,1,3,1,Gd,5,Typ,1,Fa,Attchd,1973,Unf,2,439,TA,TA,Y,224,0,0,0,0,0,NA,MnPrv,NA,0,11,2008,WD,Normal,157000 +719,60,RL,96,10542,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,7,5,1993,1994,Hip,CompShg,Wd Sdng,ImStucc,BrkFace,651,Gd,TA,PConc,Gd,TA,Gd,GLQ,1173,Unf,0,138,1311,GasA,Ex,Y,SBrkr,1325,1093,0,2418,1,0,2,1,3,1,Gd,9,Typ,1,TA,Attchd,1993,RFn,3,983,TA,TA,Y,250,154,216,0,0,0,NA,NA,NA,0,8,2008,WD,Normal,341000 +720,20,RL,69,9920,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,6,1969,1969,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,Gd,TA,Gd,ALQ,523,Unf,0,448,971,GasA,TA,Y,SBrkr,971,0,0,971,0,0,1,1,3,1,TA,5,Typ,1,Po,Attchd,1969,Unf,1,300,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,128500 +721,120,RL,NA,6563,Pave,NA,IR1,Low,AllPub,CulDSac,Mod,StoneBr,Norm,Norm,1Fam,1Story,8,5,1985,1985,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,Gd,GLQ,1148,Unf,0,594,1742,GasA,TA,Y,SBrkr,1742,0,0,1742,1,0,2,0,2,1,Gd,5,Typ,1,TA,Attchd,1985,RFn,2,564,TA,TA,Y,114,28,234,0,0,0,NA,NA,NA,0,12,2006,WD,Normal,275000 +722,120,RM,NA,4426,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,TwnhsE,1Story,6,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,169,Gd,TA,PConc,Gd,TA,Av,GLQ,662,Unf,0,186,848,GasA,Ex,Y,SBrkr,848,0,0,848,1,0,1,0,1,1,Gd,3,Typ,0,NA,Attchd,2004,RFn,2,420,TA,TA,Y,160,0,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,143000 +723,20,RL,70,8120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,7,1970,1970,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,191,Unf,0,673,864,GasA,Ex,Y,SBrkr,864,0,0,864,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1994,Unf,2,463,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,124500 +724,50,RL,60,8172,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,4,6,1954,1972,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,941,941,GasA,Ex,Y,SBrkr,997,473,0,1470,0,0,2,0,4,1,TA,7,Typ,0,NA,Detchd,1958,Unf,1,548,TA,TA,Y,0,0,0,0,156,0,NA,NA,NA,0,5,2008,WD,Normal,135000 +725,20,RL,86,13286,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,9,5,2007,2008,Hip,CompShg,CemntBd,CmentBd,Stone,340,Ex,TA,PConc,Ex,TA,No,GLQ,1234,Unf,0,464,1698,GasA,Ex,Y,SBrkr,1698,0,0,1698,1,0,2,0,3,1,Ex,8,Typ,1,Gd,Attchd,2007,Fin,3,768,TA,TA,Y,327,64,0,0,0,0,NA,NA,NA,0,2,2009,WD,Normal,320000 +726,20,RL,60,6960,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,6,1970,1970,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,375,BLQ,239,250,864,GasA,TA,Y,SBrkr,864,0,0,864,0,0,1,0,3,1,Gd,5,Typ,0,NA,Detchd,1989,Unf,2,660,TA,TA,Y,96,0,0,0,0,0,NA,NA,Shed,500,11,2009,WD,Normal,120500 +727,20,RL,NA,21695,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Crawfor,Norm,Norm,1Fam,1Story,6,9,1988,2007,Hip,CompShg,Wd Sdng,Plywood,BrkFace,260,Gd,Gd,CBlock,Gd,TA,No,GLQ,808,Unf,0,72,880,GasA,Ex,Y,SBrkr,1680,0,0,1680,1,0,2,0,3,1,Gd,5,Typ,1,Gd,Attchd,1988,Fin,2,540,TA,TA,Y,292,44,0,182,0,0,NA,NA,NA,0,12,2009,WD,Normal,222000 +728,20,RL,64,7314,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,82,Gd,TA,PConc,Gd,TA,Av,GLQ,724,Unf,0,508,1232,GasA,Ex,Y,SBrkr,1232,0,0,1232,1,0,2,0,2,1,Gd,6,Typ,0,NA,Attchd,2007,RFn,2,632,TA,TA,Y,132,0,0,0,0,0,NA,NA,NA,0,2,2009,WD,Normal,194500 +729,90,RL,85,11475,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,Duplex,1Story,5,5,1958,1958,Gable,CompShg,VinylSd,VinylSd,BrkFace,95,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1584,1584,GasA,TA,Y,SBrkr,1776,0,0,1776,1,0,2,0,4,2,TA,9,Typ,0,NA,Detchd,1968,Unf,3,888,TA,TA,Y,0,25,0,0,0,0,NA,NA,NA,0,7,2009,COD,Abnorml,110000 +730,30,RM,52,6240,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,4,5,1925,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,152,Unf,0,628,780,GasA,TA,Y,FuseA,848,0,360,1208,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1962,Unf,2,539,TA,TA,Y,0,23,112,0,0,0,NA,NA,NA,0,1,2009,WD,Normal,103000 +731,120,RL,39,5389,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,1995,1996,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,1180,Unf,0,415,1595,GasA,Ex,Y,SBrkr,1616,0,0,1616,1,0,2,0,2,1,Gd,5,Typ,1,TA,Attchd,1995,RFn,2,608,TA,TA,Y,237,152,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal,236500 +732,80,RL,73,9590,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,SLvl,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,442,Gd,TA,PConc,Ex,TA,Av,GLQ,786,Unf,0,82,868,GasA,Ex,Y,SBrkr,1146,0,0,1146,1,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2003,Fin,2,438,TA,TA,Y,160,22,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,187500 +733,60,RL,75,11404,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,1998,1999,Gable,CompShg,VinylSd,VinylSd,BrkFace,202,Gd,TA,PConc,Gd,TA,Av,ALQ,252,Unf,0,901,1153,GasA,Ex,Y,SBrkr,1153,878,0,2031,0,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1998,Fin,2,541,TA,TA,Y,192,84,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,222500 +734,20,RL,80,10000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,5,6,1961,1983,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,BLQ,594,Unf,0,270,864,GasA,Ex,Y,SBrkr,1144,0,0,1144,1,0,1,0,3,1,TA,6,Typ,1,TA,Attchd,1961,RFn,1,264,TA,TA,Y,165,0,0,0,0,0,NA,GdWo,Shed,400,3,2009,WD,Normal,131400 +735,20,RL,NA,8978,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1968,1968,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,948,948,GasA,TA,Y,SBrkr,948,0,0,948,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1968,Unf,1,300,TA,TA,Y,147,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Family,108000 +736,75,RM,60,10800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2.5Unf,7,7,1914,1970,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Gd,TA,Mn,Rec,390,Unf,0,490,880,GasW,Fa,N,SBrkr,880,888,0,1768,0,0,1,1,2,1,TA,6,Typ,2,TA,Detchd,1914,Unf,2,320,TA,TA,N,0,341,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal,163000 +737,90,RL,60,8544,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,Duplex,1Story,3,4,1950,1950,Gable,CompShg,Stucco,Stone,None,0,TA,TA,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,Gd,N,FuseF,1040,0,0,1040,0,0,2,0,2,2,TA,6,Typ,0,NA,Detchd,1949,Unf,2,400,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,93500 +738,60,RL,72,10463,Pave,NA,IR1,HLS,AllPub,CulDSac,Gtl,Gilbert,Norm,Norm,1Fam,2Story,8,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,893,893,GasA,Ex,Y,SBrkr,901,900,0,1801,0,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2005,Fin,3,800,TA,TA,Y,0,116,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,239900 +739,90,RL,60,10800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,Duplex,1Story,5,5,1987,1988,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,Gd,Gd,GLQ,1200,Unf,0,0,1200,GasA,TA,Y,SBrkr,1200,0,0,1200,3,0,3,0,3,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,120,0,0,0,0,0,NA,NA,NA,0,3,2009,WD,Alloca,179000 +740,60,RL,65,9313,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,864,864,GasA,Ex,Y,SBrkr,864,864,0,1728,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2004,RFn,2,572,TA,TA,Y,187,56,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal,190000 +741,70,RM,60,9600,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,5,7,1910,2002,Gable,CompShg,Wd Sdng,Wd Shng,None,0,TA,Gd,BrkTil,Fa,Fa,No,Unf,0,Unf,0,264,264,GasA,Ex,Y,SBrkr,768,664,0,1432,0,0,2,0,2,1,TA,7,Typ,0,NA,Detchd,1910,Unf,2,360,TA,Gd,Y,270,0,112,0,0,0,NA,GdPrv,NA,0,5,2007,WD,Abnorml,132000 +742,20,RL,65,6768,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,6,8,1961,1996,Hip,CompShg,HdBoard,HdBoard,None,0,TA,Gd,CBlock,TA,TA,Mn,GLQ,832,Unf,0,80,912,GasA,Gd,Y,SBrkr,912,0,0,912,1,1,1,0,3,1,Gd,5,Typ,0,NA,Detchd,1962,Unf,1,288,TA,TA,Y,168,0,0,0,0,0,NA,GdPrv,NA,0,5,2008,WD,Normal,142000 +743,20,RL,65,8450,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,7,5,2000,2001,Gable,CompShg,VinylSd,VinylSd,BrkFace,108,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1349,1349,GasA,Ex,Y,SBrkr,1349,0,0,1349,0,0,2,0,3,1,TA,6,Typ,0,NA,Attchd,2000,Unf,2,539,TA,TA,Y,120,55,0,0,0,0,NA,GdPrv,NA,0,12,2007,WD,Normal,179000 +744,80,RL,70,12886,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,SLvl,5,6,1963,1999,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,Av,ALQ,444,Unf,0,76,520,GasA,Ex,Y,SBrkr,1464,0,0,1464,0,1,2,0,3,1,TA,6,Min2,1,TA,Attchd,1997,RFn,2,480,TA,TA,Y,302,0,0,0,100,0,NA,NA,NA,0,10,2009,WD,Normal,175000 +745,120,RL,41,5395,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,1993,1993,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,733,Unf,0,604,1337,GasA,Gd,Y,SBrkr,1337,0,0,1337,1,0,2,0,2,1,Gd,5,Typ,1,TA,Attchd,1993,RFn,2,462,TA,TA,Y,96,0,70,168,0,0,NA,NA,NA,0,10,2008,WD,Normal,180000 +746,60,RL,NA,8963,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,8,9,1976,1996,Hip,CompShg,VinylSd,VinylSd,BrkFace,289,Ex,Gd,CBlock,TA,Gd,No,GLQ,575,ALQ,80,487,1142,GasA,Ex,Y,SBrkr,1175,1540,0,2715,0,1,3,1,4,1,Gd,11,Typ,2,TA,BuiltIn,1994,Fin,2,831,TA,TA,Y,0,204,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,299800 +747,60,RL,NA,8795,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,300,Unf,0,652,952,GasA,Ex,Y,SBrkr,980,1276,0,2256,0,0,2,1,4,1,Gd,8,Typ,1,TA,BuiltIn,2000,Fin,2,554,TA,TA,Y,224,54,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal,236000 +748,70,RM,65,11700,Pave,Pave,IR1,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,2Story,7,7,1880,2003,Mansard,CompShg,Stucco,Stucco,None,0,Gd,TA,Stone,TA,Fa,No,Unf,0,Unf,0,1240,1240,GasW,TA,N,SBrkr,1320,1320,0,2640,0,0,1,1,4,1,Gd,8,Typ,1,Gd,Detchd,1950,Unf,4,864,TA,TA,N,181,0,386,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,265979 +749,20,RL,59,10593,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,1Story,7,5,1996,1996,Hip,CompShg,VinylSd,VinylSd,BrkFace,338,Gd,TA,PConc,Gd,TA,No,GLQ,919,Unf,0,801,1720,GasA,Ex,Y,SBrkr,1720,0,0,1720,1,0,2,0,3,1,Gd,7,Typ,1,TA,Attchd,1996,Fin,2,527,TA,TA,Y,240,56,154,0,0,0,NA,NA,NA,0,3,2010,WD,Normal,260400 +750,50,RL,50,8405,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,4,3,1945,1950,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,Wall,TA,N,FuseF,1088,441,0,1529,0,0,2,0,4,1,TA,9,Mod,0,NA,Detchd,1945,Unf,1,240,TA,TA,N,92,0,185,0,0,0,NA,NA,NA,0,4,2009,WD,Normal,98000 +751,50,RM,55,8800,Pave,Grvl,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,4,7,1910,2004,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,Fa,No,Unf,0,Unf,0,576,576,GasA,Gd,Y,SBrkr,792,348,0,1140,0,0,1,0,3,1,TA,7,Min2,0,NA,NA,NA,NA,0,0,NA,NA,N,0,160,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,96500 +752,60,RL,NA,7750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,RRAn,Norm,1Fam,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,660,660,GasA,Ex,Y,SBrkr,660,660,0,1320,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2003,Fin,2,400,TA,TA,Y,0,48,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,162000 +753,20,RL,79,9236,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,6,5,1997,1997,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,PConc,Gd,TA,Gd,GLQ,1200,Unf,0,279,1479,GasA,Ex,Y,SBrkr,1494,0,0,1494,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1997,RFn,2,576,TA,TA,Y,168,27,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,217000 +754,60,RL,80,10240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,178,Gd,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,1030,1030,GasA,Gd,Y,SBrkr,1038,1060,0,2098,0,0,2,1,3,1,Ex,8,Typ,1,Gd,Attchd,2005,RFn,3,878,TA,TA,Y,192,52,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal,275500 +755,20,RL,61,7930,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,8,1969,2005,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,GLQ,439,LwQ,472,115,1026,GasA,Gd,Y,SBrkr,1026,0,0,1026,1,0,1,0,3,1,Gd,5,Typ,0,NA,Detchd,1969,RFn,2,440,TA,TA,Y,171,48,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,156000 +756,160,FV,34,3230,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,6,5,1999,1999,Gable,CompShg,MetalSd,MetalSd,BrkFace,894,TA,TA,PConc,Gd,TA,No,GLQ,381,Unf,0,348,729,GasA,Gd,Y,SBrkr,742,729,0,1471,0,0,2,1,3,1,TA,6,Typ,0,NA,Detchd,1999,Unf,2,440,TA,TA,Y,0,24,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal,172500 +757,60,RL,68,10769,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,20,Unf,0,846,866,GasA,Ex,Y,SBrkr,866,902,0,1768,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2007,RFn,2,578,TA,TA,Y,144,105,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal,212000 +758,60,RL,NA,11616,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,Norm,Norm,1Fam,2Story,6,5,1978,1978,Hip,CompShg,HdBoard,HdBoard,BrkCmn,328,TA,TA,CBlock,TA,TA,Mn,Rec,438,Unf,0,234,672,GasA,TA,Y,SBrkr,672,714,0,1386,0,0,2,1,3,1,TA,6,Typ,1,TA,Attchd,1978,Fin,2,440,TA,TA,Y,335,0,0,0,0,0,NA,GdPrv,NA,0,4,2010,WD,Abnorml,158900 +759,160,FV,24,2280,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,2Story,7,5,1999,1999,Gable,CompShg,MetalSd,MetalSd,BrkFace,360,TA,TA,PConc,Gd,TA,No,ALQ,549,Unf,0,195,744,GasA,Gd,Y,SBrkr,757,744,0,1501,0,0,2,1,3,1,TA,6,Typ,0,NA,Detchd,1999,Unf,2,440,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal,179400 +760,60,RL,65,12257,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1995,1995,Gable,CompShg,VinylSd,VinylSd,BrkFace,513,Gd,TA,PConc,Gd,TA,Av,LwQ,56,ALQ,64,1198,1318,GasA,Ex,Y,SBrkr,1328,1203,0,2531,0,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1995,RFn,3,752,TA,TA,Y,222,98,0,0,0,0,NA,NA,NA,0,11,2007,WD,Normal,290000 +761,20,RL,70,9100,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1959,1959,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,612,Unf,0,252,864,GasA,Ex,Y,SBrkr,864,0,0,864,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,2008,Unf,1,300,Ex,Ex,Y,0,0,0,0,0,0,NA,NA,Shed,450,10,2009,WD,Normal,127500 +762,30,RM,60,6911,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,BrkSide,Feedr,Norm,1Fam,1Story,5,5,1924,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,Mn,LwQ,405,Unf,0,740,1145,GasA,TA,Y,SBrkr,1301,0,0,1301,0,0,1,0,2,1,Fa,5,Min1,0,NA,Detchd,1965,Unf,2,440,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal,100000 +763,60,FV,72,8640,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2009,2009,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Mn,GLQ,24,Unf,0,732,756,GasA,Ex,Y,SBrkr,764,783,0,1547,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2009,Unf,2,614,TA,TA,Y,169,45,0,0,0,0,NA,NA,NA,0,6,2010,Con,Normal,215200 +764,60,RL,82,9430,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,BrkFace,673,Gd,TA,PConc,Gd,TA,Mn,GLQ,1163,Unf,0,89,1252,GasA,Ex,Y,SBrkr,1268,1097,0,2365,1,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,1999,RFn,3,856,TA,TA,Y,0,128,0,0,180,0,NA,NA,NA,0,7,2009,WD,Normal,337000 +765,120,RL,30,9549,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Veenker,Norm,Norm,TwnhsE,1Story,8,5,1995,1996,Hip,CompShg,BrkFace,BrkFace,None,0,Gd,Gd,PConc,Gd,Gd,Av,LwQ,437,GLQ,1057,0,1494,GasA,Ex,Y,SBrkr,1494,0,0,1494,1,0,1,1,2,1,Ex,6,Typ,1,Gd,Attchd,1995,Fin,2,481,TA,TA,Y,0,30,0,0,216,0,NA,NA,NA,0,4,2006,WD,Normal,270000 +766,20,RL,75,14587,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,9,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,Stone,284,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1498,1498,GasA,Ex,Y,SBrkr,1506,0,0,1506,0,0,2,0,2,1,Ex,6,Typ,1,Gd,Attchd,2008,Fin,2,592,TA,TA,Y,0,174,0,0,0,0,NA,NA,NA,0,8,2008,New,Partial,264132 +767,60,RL,80,10421,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,7,5,1988,1988,Gable,CompShg,HdBoard,HdBoard,BrkFace,42,TA,TA,CBlock,Gd,TA,No,GLQ,394,Unf,0,586,980,GasA,TA,Y,SBrkr,980,734,0,1714,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1988,Unf,2,496,TA,TA,Y,228,66,156,0,0,0,NA,MnPrv,Shed,500,3,2010,WD,Normal,196500 +768,50,RL,75,12508,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1.5Fin,6,7,1940,1985,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,Gd,TA,Mn,ALQ,660,Unf,0,323,983,GasA,Ex,Y,SBrkr,983,767,0,1750,1,0,2,0,4,1,TA,7,Mod,0,NA,Attchd,1989,Unf,1,423,TA,TA,Y,245,0,156,0,0,0,NA,NA,Shed,1300,7,2008,WD,Normal,160000 +769,20,RL,70,9100,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2004,2005,Hip,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,24,Unf,0,1836,1860,GasA,Ex,Y,SBrkr,1836,0,0,1836,0,0,2,0,3,1,Gd,8,Typ,1,Gd,Attchd,2004,Fin,2,484,TA,TA,Y,120,33,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal,216837 +770,60,RL,47,53504,Pave,NA,IR2,HLS,AllPub,CulDSac,Mod,StoneBr,Norm,Norm,1Fam,2Story,8,5,2003,2003,Hip,CompShg,CemntBd,Wd Shng,BrkFace,603,Ex,TA,PConc,Gd,TA,Gd,ALQ,1416,Unf,0,234,1650,GasA,Ex,Y,SBrkr,1690,1589,0,3279,1,0,3,1,4,1,Ex,12,Mod,1,Gd,BuiltIn,2003,Fin,3,841,TA,TA,Y,503,36,0,0,210,0,NA,NA,NA,0,6,2010,WD,Normal,538000 +771,85,RL,NA,7252,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,Norm,Norm,1Fam,SFoyer,5,5,1982,1982,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,Gd,TA,Av,GLQ,685,Unf,0,173,858,GasA,TA,Y,SBrkr,858,0,0,858,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1983,Unf,2,576,TA,TA,Y,120,0,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal,134900 +772,20,RL,67,8877,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,5,1951,1951,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,Fa,Fa,No,LwQ,836,Unf,0,0,836,GasA,TA,Y,FuseF,1220,0,0,1220,0,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1951,Unf,2,396,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2006,COD,Normal,102000 +773,80,RL,94,7819,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,SLvl,6,5,1976,1976,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,Av,ALQ,422,BLQ,127,480,1029,GasA,TA,Y,SBrkr,1117,0,0,1117,1,0,1,0,3,1,TA,6,Typ,1,TA,Detchd,1976,Unf,2,672,TA,TA,Y,144,0,0,0,0,0,NA,MnPrv,NA,0,3,2010,WD,Abnorml,107000 +774,20,RL,70,10150,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Feedr,Norm,1Fam,1Story,5,5,1958,1958,Gable,CompShg,Wd Sdng,Wd Sdng,None,1,TA,TA,CBlock,TA,TA,No,Rec,456,Unf,0,456,912,GasA,Ex,Y,FuseA,912,0,0,912,0,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1958,RFn,1,275,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2007,COD,Normal,114500 +775,20,RL,110,14226,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,375,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1935,1935,GasA,Gd,Y,SBrkr,1973,0,0,1973,0,0,2,0,3,1,Gd,9,Typ,1,Gd,Attchd,2006,Fin,3,895,TA,TA,Y,315,45,0,0,0,0,NA,NA,NA,0,7,2007,New,Partial,395000 +776,120,RM,32,4500,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Mitchel,Norm,Norm,TwnhsE,1Story,6,5,1998,1998,Hip,CompShg,VinylSd,VinylSd,BrkFace,320,TA,TA,PConc,Ex,TA,No,GLQ,866,Unf,0,338,1204,GasA,Ex,Y,SBrkr,1204,0,0,1204,1,0,2,0,2,1,TA,5,Typ,0,NA,Attchd,1998,Fin,2,412,TA,TA,Y,0,247,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,162000 +777,20,RL,86,11210,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,240,Gd,TA,PConc,Gd,TA,Av,GLQ,20,Unf,0,1594,1614,GasA,Ex,Y,SBrkr,1614,0,0,1614,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2005,RFn,3,865,TA,TA,Y,144,59,0,0,0,0,NA,NA,NA,0,7,2006,New,Partial,221500 +778,20,RL,100,13350,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1974,1974,Hip,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,762,Unf,0,102,864,GasA,TA,Y,SBrkr,894,0,0,894,1,0,1,0,3,1,TA,5,Typ,1,Fa,Attchd,1974,Unf,2,440,TA,TA,Y,241,0,0,0,0,0,NA,MnPrv,NA,0,6,2006,WD,Normal,142500 +779,90,RH,60,8400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Feedr,Norm,Duplex,1Story,5,5,1977,1977,Gable,CompShg,Plywood,Plywood,BrkFace,320,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,2020,0,0,2020,0,0,2,0,4,2,TA,10,Typ,2,TA,Detchd,1977,Unf,2,630,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2007,WD,Normal,144000 +780,90,RL,78,10530,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,Duplex,SFoyer,6,5,1977,1977,Gable,CompShg,Plywood,ImStucc,BrkFace,90,TA,TA,CBlock,Gd,TA,Gd,GLQ,975,Unf,0,0,975,GasA,TA,Y,SBrkr,1004,0,0,1004,1,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1977,Unf,2,504,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,135000 +781,20,RL,63,7875,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,1Story,7,5,1995,1996,Gable,CompShg,HdBoard,HdBoard,BrkFace,38,TA,TA,PConc,Gd,Gd,No,Unf,0,Unf,0,1237,1237,GasA,Gd,Y,SBrkr,1253,0,0,1253,0,0,2,0,3,1,TA,6,Typ,1,TA,Attchd,1995,Fin,2,402,TA,TA,Y,220,21,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,176000 +782,60,RL,65,7153,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,5,1992,1992,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,Gd,PConc,Gd,TA,No,ALQ,387,Unf,0,374,761,GasA,Ex,Y,SBrkr,810,793,0,1603,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,1992,RFn,2,484,TA,TA,Y,0,124,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,175900 +783,20,RL,67,16285,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2001,2002,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1413,1413,GasA,Ex,Y,SBrkr,1430,0,0,1430,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2001,RFn,2,605,TA,TA,Y,0,33,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,187100 +784,85,RL,NA,9101,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Mitchel,Norm,Norm,1Fam,SFoyer,5,6,1978,1978,Gable,CompShg,Plywood,Plywood,BrkFace,104,TA,Gd,PConc,Gd,TA,Av,GLQ,1097,Unf,0,0,1097,GasA,Ex,Y,SBrkr,1110,0,0,1110,1,0,1,0,1,1,Gd,4,Typ,1,TA,Attchd,1978,Fin,2,602,TA,TA,Y,303,30,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,165500 +785,75,RM,35,6300,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2.5Unf,6,6,1914,2001,Gable,CompShg,Wd Sdng,Wd Shng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,742,742,GasA,Ex,Y,SBrkr,742,742,0,1484,0,0,2,0,3,1,TA,9,Typ,1,Gd,NA,NA,NA,0,0,NA,NA,Y,0,291,134,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,128000 +786,20,RL,NA,9790,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Feedr,Norm,1Fam,1Story,6,5,1967,1967,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,251,LwQ,630,491,1372,GasA,TA,Y,SBrkr,1342,0,0,1342,0,0,2,0,3,1,TA,7,Typ,1,Gd,Attchd,1967,Unf,2,457,TA,TA,Y,0,0,0,0,197,0,NA,NA,NA,0,9,2009,WD,Normal,161500 +787,50,RM,60,10800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1.5Fin,5,6,1915,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,PConc,Fa,TA,No,LwQ,686,Unf,0,0,686,GasA,TA,Y,SBrkr,966,686,0,1652,1,0,2,0,4,1,TA,7,Typ,0,NA,Detchd,1961,Unf,1,416,TA,TA,Y,0,0,196,0,0,0,NA,NA,Shed,1200,6,2010,WD,Normal,139000 +788,60,RL,76,10142,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,656,Unf,0,300,956,GasA,Ex,Y,SBrkr,956,1128,0,2084,1,0,2,1,4,1,Gd,8,Typ,0,NA,BuiltIn,2004,RFn,2,618,TA,TA,Y,0,45,0,0,0,0,NA,NA,NA,0,1,2010,WD,Normal,233000 +789,20,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1Story,4,7,1954,2000,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,901,901,GasA,Ex,Y,SBrkr,901,0,0,901,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1954,Unf,1,281,Fa,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal,107900 +790,60,RL,NA,12205,Pave,NA,IR1,Low,AllPub,Inside,Gtl,ClearCr,Norm,Norm,1Fam,2Story,6,8,1966,2007,Gable,CompShg,HdBoard,HdBoard,BrkFace,157,TA,TA,CBlock,TA,Fa,Gd,LwQ,568,Unf,0,264,832,GasA,Gd,Y,SBrkr,976,1111,0,2087,0,0,2,1,5,1,Gd,9,Typ,0,NA,Attchd,1966,Fin,2,444,TA,TA,Y,133,168,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,187500 +791,120,RL,43,3182,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,11,Gd,TA,PConc,Gd,TA,No,GLQ,16,Unf,0,1129,1145,GasA,Ex,Y,SBrkr,1145,0,0,1145,0,0,2,0,2,1,Gd,5,Typ,1,Gd,Attchd,2005,Fin,2,397,TA,TA,Y,100,16,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal,160200 +792,80,RL,NA,11333,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Mitchel,Norm,Norm,1Fam,SLvl,6,5,1976,1976,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,Av,ALQ,539,Unf,0,490,1029,GasA,TA,Y,SBrkr,1062,0,0,1062,1,0,1,0,3,1,TA,5,Typ,2,TA,Attchd,1976,RFn,2,539,TA,TA,Y,120,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,146800 +793,60,RL,92,9920,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NoRidge,Norm,Norm,1Fam,2Story,7,5,1996,1997,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,862,Unf,0,255,1117,GasA,Ex,Y,SBrkr,1127,886,0,2013,1,0,2,1,3,1,TA,8,Typ,1,TA,Attchd,1997,Unf,2,455,TA,TA,Y,180,130,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,269790 +794,20,RL,76,9158,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,CemntBd,CmentBd,Stone,140,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1496,1496,GasA,Ex,Y,SBrkr,1496,0,0,1496,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2007,Fin,2,474,TA,TA,Y,168,130,0,0,0,0,NA,NA,NA,0,6,2007,New,Partial,225000 +795,60,RL,NA,10832,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,1994,1996,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,712,712,GasA,Ex,Y,SBrkr,1086,809,0,1895,0,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1994,Fin,2,409,TA,TA,Y,143,46,0,0,0,0,NA,NA,Shed,500,10,2008,WD,Normal,194500 +796,60,RL,70,8400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,6,1980,1981,Gable,CompShg,HdBoard,HdBoard,BrkFace,130,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,650,650,GasA,TA,Y,SBrkr,888,676,0,1564,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1980,Unf,2,476,TA,TA,Y,0,50,0,0,204,0,NA,MnPrv,NA,0,4,2010,WD,Normal,171000 +797,20,RL,71,8197,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,6,5,1977,1977,Gable,CompShg,Plywood,Plywood,BrkFace,148,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,660,660,GasA,Ex,Y,SBrkr,1285,0,0,1285,0,0,1,1,3,1,TA,7,Typ,1,TA,Attchd,1977,RFn,2,528,TA,TA,Y,138,0,0,0,0,0,NA,MnPrv,NA,0,4,2007,WD,Normal,143500 +798,20,RL,57,7677,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1953,1953,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,570,Unf,0,203,773,GasA,Gd,Y,SBrkr,773,0,0,773,0,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1953,Unf,1,240,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2008,WD,Abnorml,110000 +799,60,RL,104,13518,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2008,2009,Hip,CompShg,VinylSd,VinylSd,Stone,860,Ex,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1926,1926,GasA,Ex,Y,SBrkr,1966,1174,0,3140,0,0,3,1,4,1,Ex,11,Typ,2,Gd,BuiltIn,2009,Fin,3,820,TA,TA,Y,144,78,0,0,0,0,NA,NA,NA,0,7,2009,New,Partial,485000 +800,50,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,SWISU,Feedr,Norm,1Fam,1.5Fin,5,7,1937,1950,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,252,TA,TA,BrkTil,Gd,TA,No,ALQ,569,Unf,0,162,731,GasA,Ex,Y,SBrkr,981,787,0,1768,1,0,1,1,3,1,Gd,7,Typ,2,TA,Detchd,1939,Unf,1,240,TA,TA,Y,0,0,264,0,0,0,NA,MnPrv,NA,0,6,2007,WD,Normal,175000 +801,60,RL,79,12798,Pave,NA,IR1,HLS,AllPub,Inside,Mod,ClearCr,Feedr,Norm,1Fam,2Story,6,5,1997,1997,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Gd,GLQ,462,Unf,0,154,616,GasA,Gd,Y,SBrkr,616,1072,0,1688,1,0,2,1,4,1,Gd,8,Typ,0,NA,Attchd,1997,RFn,2,603,TA,TA,Y,403,114,185,0,0,0,NA,NA,Shed,400,5,2008,WD,Normal,200000 +802,30,RM,40,4800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,4,7,1916,1990,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,LwQ,197,Unf,0,999,1196,GasA,Ex,Y,FuseA,1196,0,0,1196,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1957,Unf,2,440,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,109900 +803,60,RL,63,8199,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2005,2005,Gable,CompShg,WdShing,Wd Shng,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,648,Unf,0,80,728,GasA,Ex,Y,SBrkr,728,728,0,1456,1,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2005,Fin,2,410,TA,TA,Y,36,18,0,0,0,0,NA,NA,NA,0,10,2008,WD,Normal,189000 +804,60,RL,107,13891,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2008,2009,Hip,CompShg,VinylSd,VinylSd,Stone,424,Ex,TA,PConc,Ex,TA,Gd,Unf,0,Unf,0,1734,1734,GasA,Ex,Y,SBrkr,1734,1088,0,2822,0,0,3,1,4,1,Ex,12,Typ,1,Gd,BuiltIn,2009,RFn,3,1020,TA,TA,Y,52,170,0,0,192,0,NA,NA,NA,0,1,2009,New,Partial,582933 +805,20,RL,75,9000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1954,1954,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,LwQ,812,Unf,0,124,936,GasA,TA,Y,SBrkr,1128,0,0,1128,0,0,1,0,2,1,TA,5,Min1,0,NA,Attchd,1954,Unf,1,286,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,6,2006,WD,Family,118000 +806,20,RL,91,12274,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,Stone,256,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1417,1417,GasA,Ex,Y,SBrkr,1428,0,0,1428,0,0,2,0,3,1,Ex,6,Typ,0,NA,Attchd,2008,RFn,2,554,TA,TA,Y,0,60,0,0,0,0,NA,NA,NA,0,7,2008,New,Partial,227680 +807,80,RL,75,9750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,5,5,1967,1967,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,TA,TA,Av,ALQ,400,Rec,480,100,980,GasA,Gd,Y,SBrkr,980,0,0,980,0,0,2,0,3,1,TA,6,Typ,0,NA,Attchd,1967,Fin,1,384,TA,TA,Y,68,0,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal,135500 +808,70,RL,144,21384,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,2Story,5,6,1923,2004,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Gd,GLQ,1309,Unf,0,15,1324,GasA,Ex,Y,SBrkr,1072,504,0,1576,2,0,1,1,3,1,Gd,6,Typ,1,TA,Attchd,1923,RFn,2,528,TA,TA,Y,0,312,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,223500 +809,80,RL,85,13400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,5,5,1966,1966,Gable,CompShg,VinylSd,VinylSd,BrkFace,1047,TA,TA,CBlock,TA,TA,Av,ALQ,516,BLQ,128,380,1024,GasA,TA,Y,SBrkr,1086,0,0,1086,1,0,1,0,3,1,TA,6,Typ,1,Gd,Attchd,1966,RFn,2,484,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,6,2006,WD,Normal,159950 +810,75,RM,90,8100,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,2.5Unf,5,5,1898,1965,Hip,CompShg,AsbShng,AsbShng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,849,849,GasA,TA,N,FuseA,1075,1063,0,2138,0,0,2,0,2,3,TA,11,Typ,0,NA,Detchd,1910,Unf,2,360,Fa,Po,N,40,156,0,0,0,0,NA,MnPrv,NA,0,11,2009,WD,Normal,106000 +811,20,RL,78,10140,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,6,1974,1999,Hip,CompShg,HdBoard,HdBoard,BrkFace,99,TA,TA,CBlock,TA,TA,No,ALQ,663,LwQ,377,0,1040,GasA,Fa,Y,SBrkr,1309,0,0,1309,1,0,1,1,3,1,Gd,5,Typ,1,Fa,Attchd,1974,RFn,2,484,TA,TA,Y,265,0,0,0,0,648,Fa,GdPrv,NA,0,1,2006,WD,Normal,181000 +812,120,RM,NA,4438,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,TwnhsE,1Story,6,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,169,Gd,TA,PConc,Gd,TA,Gd,GLQ,662,Unf,0,186,848,GasA,Ex,Y,SBrkr,848,0,0,848,1,0,1,0,1,1,Gd,4,Typ,1,Gd,Attchd,2004,Fin,2,420,TA,TA,Y,140,0,0,0,0,0,NA,NA,NA,0,6,2008,ConLD,Normal,144500 +813,20,C (all),66,8712,Grvl,NA,Reg,Bnk,AllPub,Inside,Mod,IDOTRR,Norm,Norm,1Fam,1Story,5,5,1952,1952,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,Fa,TA,CBlock,TA,TA,Av,Unf,0,Unf,0,540,540,GasA,TA,N,FuseA,1044,0,0,1044,0,0,1,0,2,1,Fa,4,Typ,0,NA,Basment,1952,Unf,2,504,TA,TA,N,0,0,0,0,0,0,NA,NA,Shed,54,6,2010,WD,Alloca,55993 +814,20,RL,75,9750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1958,1958,Gable,CompShg,MetalSd,MetalSd,BrkFace,243,TA,TA,CBlock,TA,TA,No,Rec,608,Unf,0,834,1442,GasA,Gd,Y,SBrkr,1442,0,0,1442,0,0,1,1,4,1,TA,7,Typ,0,NA,Attchd,1958,RFn,1,301,TA,TA,Y,0,0,275,0,0,0,NA,NA,Shed,500,4,2007,COD,Normal,157900 +815,50,RL,45,8248,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,5,7,1918,1950,Gable,CompShg,Stucco,Stucco,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,686,686,GasW,Gd,Y,SBrkr,686,564,0,1250,0,1,1,1,3,1,Fa,7,Typ,0,NA,Detchd,1955,Unf,1,280,TA,TA,P,207,0,96,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,116000 +816,20,RL,48,12137,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,442,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1649,1649,GasA,Ex,Y,SBrkr,1661,0,0,1661,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1998,RFn,2,598,TA,TA,Y,0,34,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,224900 +817,20,RL,NA,11425,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1954,1954,Gable,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,BLQ,486,Unf,0,522,1008,GasA,Gd,Y,SBrkr,1008,0,0,1008,0,0,1,0,2,1,TA,4,Typ,1,Gd,Attchd,1954,RFn,1,275,TA,TA,Y,0,0,120,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,137000 +818,20,RL,NA,13265,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Mitchel,Norm,Norm,1Fam,1Story,8,5,2002,2002,Hip,CompShg,CemntBd,CmentBd,BrkFace,148,Gd,TA,PConc,Gd,TA,No,GLQ,1218,Unf,0,350,1568,GasA,Ex,Y,SBrkr,1689,0,0,1689,1,0,2,0,3,1,Gd,7,Typ,2,Gd,Attchd,2002,RFn,3,857,TA,TA,Y,150,59,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,271000 +819,80,RL,80,8816,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,ClearCr,Norm,Norm,1Fam,SLvl,6,7,1971,1971,Gable,CompShg,HdBoard,HdBoard,BrkFace,80,TA,TA,CBlock,TA,TA,Av,GLQ,504,Unf,0,506,1010,GasA,Gd,Y,SBrkr,1052,0,0,1052,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1971,Unf,2,440,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,6,2010,WD,Normal,155000 +820,120,RL,44,6371,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,7,5,2009,2010,Gable,CompShg,VinylSd,VinylSd,Stone,128,Gd,TA,PConc,Gd,TA,Mn,GLQ,733,Unf,0,625,1358,GasA,Ex,Y,SBrkr,1358,0,0,1358,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2010,RFn,2,484,TA,TA,Y,192,35,0,0,0,0,NA,NA,NA,0,6,2010,New,Partial,224000 +821,60,RL,72,7226,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,798,798,GasA,Ex,Y,SBrkr,798,842,0,1640,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2003,RFn,2,595,TA,TA,Y,0,45,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,183000 +822,20,RM,60,6000,Pave,Pave,Reg,Bnk,AllPub,Inside,Mod,OldTown,Norm,Norm,2fmCon,1Story,4,4,1953,1953,Gable,CompShg,MetalSd,MetalSd,None,0,Fa,TA,CBlock,Fa,TA,No,Unf,0,Unf,0,936,936,GasA,TA,N,SBrkr,936,0,0,936,0,0,1,0,2,1,TA,4,Min2,0,NA,Detchd,1974,Unf,2,576,TA,TA,Y,0,32,112,0,0,0,NA,NA,NA,0,2,2009,WD,Normal,93000 +823,60,RL,NA,12394,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Gd,Unf,0,Unf,0,847,847,GasA,Ex,Y,SBrkr,847,886,0,1733,0,0,2,1,3,1,Gd,7,Typ,1,Gd,BuiltIn,2003,Fin,2,433,TA,TA,Y,100,48,0,0,0,0,NA,NA,NA,0,10,2007,WD,Family,225000 +824,50,RL,60,9900,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1.5Fin,6,7,1940,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,778,778,GasA,TA,Y,SBrkr,944,545,0,1489,0,0,2,0,3,1,TA,7,Typ,1,Gd,Detchd,1940,Unf,1,240,TA,TA,Y,335,0,0,0,0,0,NA,GdWo,NA,0,7,2009,WD,Normal,139500 +825,20,FV,81,11216,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,Gd,No,Unf,0,Unf,0,1489,1489,GasA,Ex,Y,SBrkr,1489,0,0,1489,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2006,RFn,2,776,TA,TA,Y,0,140,0,0,0,0,NA,NA,NA,0,6,2006,New,Partial,232600 +826,20,RL,114,14803,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,PosN,PosN,1Fam,1Story,10,5,2007,2008,Hip,CompShg,CemntBd,CmentBd,BrkFace,816,Ex,TA,PConc,Ex,TA,Av,GLQ,1636,Unf,0,442,2078,GasA,Ex,Y,SBrkr,2084,0,0,2084,1,0,2,0,2,1,Ex,7,Typ,1,Gd,Attchd,2007,Fin,3,1220,TA,TA,Y,188,45,0,0,0,0,NA,NA,NA,0,6,2008,New,Partial,385000 +827,45,RM,50,6130,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Unf,5,6,1924,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,ALQ,784,Unf,0,0,784,GasA,Gd,Y,SBrkr,784,0,0,784,1,0,1,0,2,1,Gd,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,116,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,109500 +828,20,RL,65,8529,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,7,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,20,Unf,0,1434,1454,GasA,Ex,Y,SBrkr,1434,0,0,1434,0,0,2,0,3,1,Gd,6,Typ,1,TA,Attchd,2001,RFn,2,527,TA,TA,Y,290,39,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal,189000 +829,60,RL,NA,28698,Pave,NA,IR2,Low,AllPub,CulDSac,Sev,ClearCr,Norm,Norm,1Fam,2Story,5,5,1967,1967,Flat,Tar&Grv,Plywood,Plywood,None,0,TA,TA,PConc,TA,Gd,Gd,LwQ,249,ALQ,764,0,1013,GasA,TA,Y,SBrkr,1160,966,0,2126,0,1,2,1,3,1,TA,7,Min2,0,NA,Attchd,1967,Fin,2,538,TA,TA,Y,486,0,0,0,225,0,NA,NA,NA,0,6,2009,WD,Abnorml,185000 +830,160,FV,24,2544,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,2Story,7,5,2005,2005,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,600,600,GasA,Ex,Y,SBrkr,520,623,80,1223,0,0,2,1,2,1,Gd,4,Typ,0,NA,Detchd,2005,RFn,2,480,TA,TA,Y,0,166,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,147400 +831,20,RL,80,11900,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1957,1957,Gable,CompShg,HdBoard,HdBoard,BrkFace,387,TA,TA,CBlock,TA,TA,No,Rec,1040,Unf,0,352,1392,GasA,TA,Y,FuseA,1392,0,0,1392,1,0,1,1,3,1,TA,6,Typ,2,Gd,Attchd,1957,RFn,2,458,TA,TA,Y,0,0,0,0,192,0,NA,NA,NA,0,6,2008,WD,Normal,166000 +832,160,FV,30,3180,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,7,5,2005,2005,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,600,600,GasA,Ex,Y,SBrkr,520,600,80,1200,0,0,2,1,2,1,Gd,4,Typ,0,NA,Detchd,2005,RFn,2,480,TA,TA,Y,0,166,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,151000 +833,60,RL,44,9548,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,6,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,223,Gd,TA,PConc,Gd,TA,No,GLQ,483,Unf,0,458,941,GasA,Ex,Y,SBrkr,941,888,0,1829,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,2003,RFn,2,613,TA,TA,Y,192,39,0,0,0,0,NA,NA,NA,0,1,2010,WD,Normal,237000 +834,20,RL,100,10004,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1964,1964,Gable,CompShg,HdBoard,Plywood,BrkFace,180,TA,TA,CBlock,TA,TA,No,Rec,196,BLQ,345,975,1516,GasA,TA,Y,SBrkr,1516,0,0,1516,0,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1964,RFn,2,472,TA,TA,Y,0,0,0,0,152,0,NA,NA,NA,0,2,2009,WD,Normal,167000 +835,20,RL,75,7875,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1961,1961,Gable,CompShg,VinylSd,VinylSd,BrkFace,136,TA,TA,CBlock,TA,TA,No,Rec,572,Unf,0,572,1144,GasA,Gd,Y,SBrkr,1144,0,0,1144,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1961,Unf,2,456,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,9,2008,WD,Normal,139950 +836,20,RL,60,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,4,7,1950,1995,Gable,CompShg,VinylSd,HdBoard,None,0,TA,TA,CBlock,Gd,TA,No,BLQ,442,Unf,0,625,1067,GasA,TA,Y,SBrkr,1067,0,0,1067,0,0,2,0,2,1,Gd,4,Min2,0,NA,Attchd,1996,Unf,2,436,TA,TA,Y,290,0,0,0,0,0,NA,NA,NA,0,2,2010,WD,Normal,128000 +837,30,RM,90,8100,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,6,1948,1973,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,BrkTil,TA,TA,No,Rec,338,Unf,0,1221,1559,GasA,Gd,Y,SBrkr,1559,0,0,1559,1,0,1,0,2,1,TA,5,Min2,0,NA,Detchd,1948,Unf,2,812,TA,TA,Y,0,116,230,0,0,0,NA,GdWo,NA,0,6,2007,COD,Normal,153500 +838,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,5,1973,1973,Gable,CompShg,HdBoard,HdBoard,BrkFace,158,TA,TA,CBlock,TA,TA,No,BLQ,330,Unf,0,153,483,GasA,TA,Y,SBrkr,483,504,0,987,1,0,1,1,2,1,TA,5,Typ,0,NA,Detchd,1973,Unf,1,264,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2008,WD,Normal,100000 +839,20,RL,75,9525,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,6,1995,2006,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1099,1099,GasA,Ex,Y,SBrkr,1099,0,0,1099,0,0,1,1,3,1,Gd,6,Typ,0,NA,Attchd,1999,Unf,1,352,TA,TA,Y,278,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,144000 +840,50,RL,70,11767,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,5,6,1946,1995,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,352,Unf,0,416,768,GasA,Ex,Y,SBrkr,768,432,0,1200,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1946,Unf,1,240,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,130500 +841,70,RH,NA,12155,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,2Story,6,8,1925,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,BLQ,156,Unf,0,516,672,GasA,TA,N,SBrkr,810,672,0,1482,0,0,2,0,4,1,Fa,7,Typ,0,NA,Detchd,1934,Unf,1,400,TA,TA,P,0,0,254,0,0,0,NA,NA,NA,0,3,2008,WD,Normal,140000 +842,70,RM,60,10440,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,5,8,1904,2002,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,650,650,GasA,Gd,Y,SBrkr,958,581,0,1539,0,0,2,0,3,1,Gd,8,Typ,1,Po,Detchd,1983,Unf,2,686,Gd,TA,P,70,78,68,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,157500 +843,80,RL,82,9020,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,6,7,1966,1966,Gable,CompShg,HdBoard,HdBoard,BrkFace,183,TA,TA,CBlock,TA,TA,Gd,Rec,312,ALQ,539,276,1127,GasA,TA,Y,SBrkr,1165,0,0,1165,1,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1966,RFn,2,490,Gd,Gd,Y,0,129,0,0,0,0,NA,GdPrv,NA,0,5,2008,WD,Normal,174900 +844,90,RL,80,8000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Artery,Norm,Duplex,1Story,5,4,1961,1961,Gable,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1800,1800,GasA,Ex,N,SBrkr,1800,0,0,1800,0,0,2,0,6,2,TA,10,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,141000 +845,50,RM,100,12665,Pave,Grvl,IR1,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1.5Fin,5,8,1915,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,Mn,Unf,0,Unf,0,876,876,GasA,Gd,Y,SBrkr,876,540,0,1416,0,0,1,1,4,1,TA,7,Typ,1,Gd,Detchd,1949,Unf,3,720,TA,TA,Y,418,0,194,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,153900 +846,85,RL,NA,16647,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,RRAe,Norm,1Fam,SFoyer,5,5,1975,1981,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,Gd,ALQ,1390,Unf,0,0,1390,GasA,TA,Y,SBrkr,1701,0,0,1701,1,0,2,0,3,1,TA,6,Min2,2,TA,Basment,1975,Fin,2,611,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,1,2007,WD,Normal,171000 +847,60,RL,75,9317,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,1993,1993,Gable,CompShg,HdBoard,HdBoard,BrkFace,137,Gd,TA,PConc,Gd,TA,No,ALQ,513,Unf,0,227,740,GasA,Ex,Y,SBrkr,1006,769,0,1775,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1993,Unf,2,425,TA,TA,Y,234,72,192,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,213000 +848,20,RL,36,15523,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,6,1972,1972,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,TA,TA,Av,BLQ,460,Unf,0,404,864,GasA,Ex,Y,SBrkr,864,0,0,864,1,0,1,0,3,1,TA,5,Typ,1,Fa,Attchd,1972,Unf,1,338,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal,133500 +849,50,RL,75,45600,Pave,NA,IR2,Bnk,AllPub,Inside,Gtl,ClearCr,Norm,Norm,1Fam,1.5Fin,6,8,1908,1997,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,907,907,GasA,TA,Y,SBrkr,1307,1051,0,2358,0,0,3,0,5,1,TA,10,Typ,1,Gd,Detchd,1908,Unf,2,360,Fa,TA,Y,486,40,0,0,175,0,NA,NA,NA,0,9,2008,WD,Normal,240000 +850,80,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Veenker,Feedr,Norm,1Fam,SLvl,6,7,1976,1994,Hip,CompShg,Plywood,Plywood,BrkFace,360,Gd,Gd,CBlock,TA,TA,No,Unf,0,Unf,0,528,528,GasA,Ex,Y,SBrkr,1094,761,0,1855,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1976,RFn,2,512,TA,TA,Y,113,100,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,187000 +851,120,RM,36,4435,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,TwnhsE,1Story,6,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,170,Gd,TA,PConc,Gd,TA,Av,GLQ,659,Unf,0,189,848,GasA,Ex,Y,SBrkr,848,0,0,848,1,0,1,0,1,1,Gd,3,Typ,0,NA,Attchd,2003,Fin,2,420,TA,TA,Y,140,0,0,0,0,0,NA,NA,NA,0,11,2007,WD,Normal,131500 +852,120,RL,NA,3196,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,8,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,40,Gd,TA,PConc,Gd,TA,Gd,Unf,0,Unf,0,1273,1273,GasA,Ex,Y,SBrkr,1456,0,0,1456,0,0,2,0,2,1,Gd,7,Typ,1,TA,Attchd,2003,Fin,2,400,TA,TA,Y,143,20,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,215000 +853,75,RL,53,7128,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2.5Unf,7,5,1941,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,Rec,364,Unf,0,554,918,GasA,Gd,Y,SBrkr,918,728,0,1646,0,0,2,0,4,1,TA,7,Typ,2,Gd,Detchd,1941,Unf,1,240,TA,TA,Y,0,0,0,0,126,0,NA,MnPrv,NA,0,8,2007,WD,Normal,164000 +854,80,RL,NA,12095,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,SLvl,6,6,1964,1964,Gable,CompShg,MetalSd,HdBoard,BrkFace,115,TA,Gd,CBlock,TA,TA,Gd,Rec,564,Unf,0,563,1127,GasA,TA,Y,SBrkr,1445,0,0,1445,0,0,1,1,3,1,TA,7,Typ,1,Fa,Attchd,1964,RFn,2,645,TA,TA,Y,180,0,0,0,0,0,NA,MnPrv,NA,0,8,2009,WD,Normal,158000 +855,20,RL,102,17920,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,4,1955,1974,Hip,CompShg,Wd Sdng,Plywood,None,0,TA,TA,CBlock,TA,TA,Mn,ALQ,306,Rec,1085,372,1763,GasA,TA,Y,SBrkr,1779,0,0,1779,1,0,1,1,3,1,TA,6,Typ,1,Gd,Attchd,1955,Unf,2,454,TA,TA,Y,0,418,0,0,312,0,NA,NA,NA,0,7,2006,WD,Abnorml,170000 +856,20,RL,NA,6897,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,8,1962,2010,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Gd,CBlock,TA,TA,No,ALQ,659,Unf,0,381,1040,GasA,Ex,Y,SBrkr,1040,0,0,1040,1,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1962,Unf,1,260,TA,TA,Y,0,104,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,127000 +857,80,RL,NA,10970,Pave,NA,IR1,Low,AllPub,Inside,Mod,CollgCr,Norm,Norm,1Fam,SLvl,6,6,1978,1978,Gable,CompShg,Plywood,HdBoard,None,0,TA,TA,CBlock,Gd,Gd,Gd,GLQ,505,LwQ,435,0,940,GasA,TA,Y,SBrkr,1026,0,0,1026,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1981,Unf,2,576,TA,Fa,Y,0,0,34,0,0,0,NA,MnPrv,NA,0,10,2008,WD,Normal,147000 +858,60,RL,65,8125,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1994,1995,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,702,702,GasA,Gd,Y,SBrkr,702,779,0,1481,0,0,2,1,3,1,TA,6,Typ,1,TA,Attchd,1994,Fin,2,343,TA,TA,Y,0,36,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal,174000 +859,20,RL,80,10400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,7,5,1976,1976,Gable,CompShg,HdBoard,HdBoard,BrkFace,189,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,1090,1090,GasA,TA,Y,SBrkr,1370,0,0,1370,0,0,2,0,3,1,TA,6,Typ,1,TA,Attchd,1976,RFn,2,479,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,6,2009,WD,Family,152000 +860,60,RL,NA,11029,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NWAmes,PosA,Norm,1Fam,2Story,6,7,1968,1984,Gable,CompShg,HdBoard,HdBoard,BrkFace,220,TA,TA,CBlock,TA,TA,Mn,BLQ,619,Unf,0,435,1054,GasA,TA,Y,SBrkr,1512,1142,0,2654,1,0,2,1,4,1,Gd,9,Typ,1,Gd,Attchd,1968,Unf,2,619,TA,TA,Y,0,65,0,0,222,0,NA,NA,NA,0,8,2006,WD,Normal,250000 +861,50,RL,55,7642,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Crawfor,Norm,Norm,1Fam,1.5Fin,7,8,1918,1998,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,912,912,GasA,Gd,Y,SBrkr,912,514,0,1426,0,0,1,1,3,1,Gd,7,Typ,1,Gd,Detchd,1925,Unf,1,216,TA,TA,Y,0,240,0,0,0,0,NA,GdPrv,NA,0,6,2007,WD,Normal,189950 +862,190,RL,75,11625,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,2fmCon,1Story,5,4,1965,1965,Hip,CompShg,Plywood,HdBoard,None,0,TA,TA,PConc,TA,TA,Mn,BLQ,841,Unf,0,198,1039,GasA,Ex,Y,SBrkr,1039,0,0,1039,1,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1965,Unf,2,504,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,131500 +863,20,RL,81,9672,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,1Fam,1Story,6,5,1984,1985,Hip,CompShg,HdBoard,Plywood,None,0,TA,TA,PConc,Gd,TA,No,GLQ,338,Unf,0,702,1040,GasA,TA,Y,SBrkr,1097,0,0,1097,0,0,2,0,3,1,TA,6,Typ,0,NA,Attchd,1986,Unf,2,480,TA,TA,Y,0,0,0,0,0,0,NA,GdPrv,NA,0,5,2010,WD,Normal,152000 +864,20,RL,70,7931,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1959,1959,Hip,CompShg,BrkFace,Plywood,None,0,TA,TA,CBlock,TA,TA,No,BLQ,1148,Unf,0,0,1148,GasA,TA,Y,SBrkr,1148,0,0,1148,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1959,Unf,1,672,TA,TA,Y,0,0,0,0,0,0,NA,GdPrv,NA,0,7,2009,WD,Normal,132500 +865,20,FV,72,8640,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2007,2008,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1372,1372,GasA,Ex,Y,SBrkr,1372,0,0,1372,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2008,Fin,2,529,TA,TA,Y,0,140,0,0,0,0,NA,NA,NA,0,5,2008,New,Partial,250580 +866,20,RL,NA,8750,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1970,1970,Gable,CompShg,MetalSd,MetalSd,BrkFace,76,TA,TA,CBlock,TA,TA,No,BLQ,828,Unf,0,174,1002,GasA,TA,Y,SBrkr,1002,0,0,1002,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1973,Unf,2,902,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,8,2009,WD,Normal,148500 +867,20,RL,67,10656,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,Stone,274,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1638,1638,GasA,Ex,Y,SBrkr,1646,0,0,1646,0,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2007,RFn,3,870,TA,TA,Y,192,80,0,0,0,0,NA,NA,NA,0,11,2007,New,Partial,248900 +868,20,RL,85,6970,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,4,5,1961,1961,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,932,Unf,0,108,1040,GasA,TA,Y,SBrkr,1120,0,0,1120,1,0,1,1,3,1,Fa,5,Typ,0,NA,Attchd,1961,RFn,2,544,TA,TA,Y,168,0,0,0,0,0,NA,NA,Shed,400,5,2007,WD,Normal,129000 +869,60,RL,NA,14762,Pave,NA,IR2,Lvl,AllPub,Corner,Gtl,Gilbert,Feedr,Norm,1Fam,2Story,5,6,1948,1950,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,Gd,Y,SBrkr,1547,720,53,2320,0,0,2,0,2,1,TA,7,Typ,1,TA,Attchd,1979,Unf,2,672,TA,TA,P,120,144,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,169000 +870,60,RL,80,9938,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,1993,1994,Gable,CompShg,MetalSd,MetalSd,BrkFace,246,Gd,TA,PConc,Gd,TA,No,GLQ,750,Unf,0,300,1050,GasA,Ex,Y,SBrkr,1062,887,0,1949,1,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1993,Fin,2,574,TA,TA,Y,156,90,0,0,0,0,NA,GdPrv,NA,0,6,2010,WD,Normal,236000 +871,20,RL,60,6600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,PosN,Norm,1Fam,1Story,5,5,1962,1962,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,894,894,GasA,Gd,N,SBrkr,894,0,0,894,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1962,Unf,1,308,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal,109500 +872,60,RL,70,8750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,6,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,116,TA,TA,PConc,Gd,TA,No,GLQ,505,Unf,0,299,804,GasA,Ex,Y,SBrkr,804,878,0,1682,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,1998,RFn,2,523,TA,TA,Y,0,77,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,200500 +873,20,RL,74,8892,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1953,1996,Gable,CompShg,WdShing,Wd Shng,None,0,Gd,TA,Stone,TA,TA,Av,Unf,0,Unf,0,105,105,GasA,Gd,Y,SBrkr,910,0,0,910,0,0,1,0,3,1,Gd,5,Typ,0,NA,Attchd,1953,Unf,2,414,TA,TA,Y,196,0,150,0,0,0,NA,GdWo,NA,0,10,2008,WD,Normal,116000 +874,40,RL,60,12144,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1949,1950,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,CBlock,TA,TA,No,Rec,375,Unf,0,457,832,GasA,Gd,Y,SBrkr,1036,0,232,1268,0,0,1,0,3,1,TA,6,Typ,1,Gd,Attchd,1949,Unf,1,288,TA,TA,Y,0,28,0,0,0,0,NA,NA,Othr,0,9,2009,WD,Normal,133000 +875,50,RM,52,5720,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1.5Fin,5,6,1941,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,676,676,GasA,Ex,Y,SBrkr,676,455,0,1131,0,0,1,1,3,1,TA,5,Typ,0,NA,Detchd,1941,Unf,1,200,TA,TA,Y,26,0,0,0,0,0,NA,NA,NA,0,8,2009,WD,Abnorml,66500 +876,60,FV,75,9000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2007,2007,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,64,Unf,0,1120,1184,GasA,Ex,Y,SBrkr,1184,1426,0,2610,0,0,2,1,4,1,Ex,11,Typ,1,Gd,BuiltIn,2007,Fin,2,550,TA,TA,Y,208,364,0,0,0,0,NA,NA,NA,0,8,2007,New,Partial,303477 +877,20,RL,94,25286,Pave,NA,Reg,HLS,AllPub,Inside,Mod,Mitchel,Norm,Norm,1Fam,1Story,4,5,1963,1963,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,PConc,TA,TA,Gd,ALQ,633,Unf,0,431,1064,GasA,Gd,Y,SBrkr,1040,0,0,1040,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1963,Unf,2,648,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,1,2007,WD,Normal,132250 +878,60,RL,74,8834,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2004,2005,Hip,CompShg,VinylSd,VinylSd,Stone,216,Gd,TA,PConc,Ex,TA,No,GLQ,1170,Unf,0,292,1462,GasA,Ex,Y,SBrkr,1462,762,0,2224,1,0,2,1,4,1,Ex,10,Typ,1,Gd,Attchd,2004,Fin,3,738,TA,TA,Y,184,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,350000 +879,85,RL,88,11782,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,SFoyer,5,7,1961,1995,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,Av,ALQ,899,Unf,0,210,1109,GasA,TA,Y,SBrkr,1155,0,0,1155,1,0,1,0,3,1,Gd,6,Min2,0,NA,Detchd,1987,Unf,2,576,TA,TA,Y,192,0,0,0,0,0,NA,MnPrv,Shed,400,6,2010,WD,Normal,148000 +880,20,RL,NA,7000,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,8,1978,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,90,Gd,Gd,CBlock,TA,TA,No,ALQ,646,Unf,0,218,864,GasA,Ex,Y,SBrkr,864,0,0,864,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1978,Unf,1,336,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,7,2009,WD,Normal,136500 +881,20,RL,60,7024,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Ex,Gd,No,ALQ,980,Unf,0,110,1090,GasA,Gd,Y,SBrkr,1090,0,0,1090,1,0,1,1,2,1,TA,5,Typ,0,NA,Attchd,2005,Fin,2,450,TA,TA,Y,0,49,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,157000 +882,50,RL,44,13758,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Timber,Norm,Norm,1Fam,1.5Fin,7,5,1990,1991,Gable,CompShg,HdBoard,HdBoard,BrkFace,117,Gd,Gd,CBlock,Gd,TA,Mn,LwQ,902,Unf,0,254,1156,GasA,Ex,Y,SBrkr,1187,530,0,1717,0,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1990,RFn,2,400,TA,TA,Y,168,36,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal,187500 +883,60,RL,NA,9636,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1992,1993,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,808,808,GasA,Gd,Y,SBrkr,808,785,0,1593,0,0,2,1,3,1,TA,7,Typ,1,TA,BuiltIn,1993,RFn,2,389,TA,TA,Y,342,40,0,0,0,0,NA,MnPrv,NA,0,12,2009,WD,Normal,178000 +884,75,RL,60,6204,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,2.5Fin,4,5,1912,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,TA,PConc,TA,Fa,No,Unf,0,Unf,0,795,795,GasA,TA,N,SBrkr,954,795,481,2230,1,0,1,0,5,1,TA,10,Typ,0,NA,Detchd,1997,Unf,1,440,TA,Gd,Y,0,188,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal,118500 +885,20,RL,65,7150,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1967,1967,Gable,CompShg,HdBoard,HdBoard,BrkFace,60,TA,TA,CBlock,TA,TA,No,BLQ,432,Unf,0,460,892,GasA,TA,Y,SBrkr,892,0,0,892,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1967,RFn,1,288,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,7,2009,WD,Normal,100000 +886,120,FV,50,5119,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,9,5,1999,2000,Gable,CompShg,MetalSd,MetalSd,BrkFace,60,Gd,TA,PConc,Ex,TA,Av,GLQ,1238,Unf,0,460,1698,GasA,Ex,Y,SBrkr,1709,0,0,1709,1,0,2,0,2,1,Gd,5,Typ,1,TA,Attchd,1999,Fin,2,506,TA,TA,Y,97,65,0,0,0,0,NA,NA,NA,0,1,2008,CWD,Abnorml,328900 +887,90,RL,70,8393,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,Duplex,1Story,5,5,1959,2005,Gable,CompShg,MetalSd,MetalSd,BrkFace,122,TA,TA,CBlock,TA,TA,No,LwQ,528,Unf,0,1098,1626,GasA,Ex,Y,SBrkr,1712,0,0,1712,0,0,2,0,4,2,TA,8,Typ,0,NA,Attchd,2005,Fin,2,588,TA,TA,Y,272,54,0,0,0,0,NA,NA,NA,0,6,2006,WD,Family,145000 +888,50,RL,59,16466,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,5,7,1955,1955,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,PConc,TA,TA,No,Unf,0,Unf,0,816,816,GasA,TA,Y,SBrkr,872,521,0,1393,0,0,1,1,3,1,TA,8,Typ,0,NA,Attchd,1955,Unf,1,300,TA,TA,Y,121,0,0,0,265,0,NA,NA,NA,0,4,2008,WD,Normal,135500 +889,20,RL,95,15865,Pave,NA,IR1,Lvl,AllPub,Inside,Mod,NAmes,Norm,Norm,1Fam,1Story,8,6,1970,1970,Flat,Tar&Grv,Wd Sdng,Wd Sdng,None,0,Gd,Gd,PConc,TA,Gd,Gd,ALQ,351,Rec,823,1043,2217,GasA,Ex,Y,SBrkr,2217,0,0,2217,1,0,2,0,4,1,Gd,8,Typ,1,TA,Attchd,1970,Unf,2,621,TA,TA,Y,81,207,0,0,224,0,NA,NA,NA,0,10,2007,WD,Normal,268000 +890,20,RL,128,12160,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Feedr,Norm,1Fam,1Story,6,4,1953,1953,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,90,TA,TA,CBlock,TA,TA,No,BLQ,1024,Unf,0,481,1505,GasA,Ex,Y,SBrkr,1505,0,0,1505,1,0,1,0,2,1,TA,6,Typ,1,TA,Attchd,1953,RFn,2,505,TA,TA,Y,0,0,0,162,0,0,NA,NA,NA,0,2,2009,WD,Normal,149500 +891,50,RL,60,8064,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Artery,Norm,1Fam,1.5Fin,5,7,1949,2006,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,Mn,Unf,0,Unf,0,672,672,GasA,Ex,Y,SBrkr,672,252,0,924,0,0,1,0,3,1,TA,6,Typ,1,Po,Detchd,2003,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,Shed,2000,7,2007,WD,Normal,122900 +892,60,RL,70,11184,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,2Story,6,5,1978,1978,Hip,CompShg,HdBoard,HdBoard,BrkFace,92,TA,TA,CBlock,TA,TA,No,LwQ,226,Rec,500,192,918,GasA,Gd,Y,SBrkr,918,765,0,1683,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1978,RFn,2,440,TA,TA,Y,243,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,172500 +893,20,RL,70,8414,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,6,8,1963,2003,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,GLQ,663,Unf,0,396,1059,GasA,TA,Y,SBrkr,1068,0,0,1068,0,1,1,0,3,1,TA,6,Typ,0,NA,Attchd,1963,RFn,1,264,TA,TA,Y,192,0,0,0,0,0,NA,MnPrv,NA,0,2,2006,WD,Normal,154500 +894,20,RL,NA,13284,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,PosN,Norm,1Fam,1Story,5,5,1954,1954,Gable,CompShg,Wd Sdng,Plywood,None,0,TA,TA,PConc,Gd,TA,Mn,BLQ,1064,Unf,0,319,1383,GasA,TA,Y,SBrkr,1383,0,0,1383,1,0,1,0,3,1,TA,6,Typ,1,Gd,Attchd,1954,Unf,1,354,TA,TA,Y,511,116,0,0,0,0,NA,GdPrv,NA,0,6,2008,WD,Normal,165000 +895,90,RL,64,7018,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,SawyerW,Norm,Norm,Duplex,1Story,5,5,1979,1979,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,1535,0,0,1535,0,0,2,0,4,2,TA,8,Typ,0,NA,Attchd,1979,Unf,2,400,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Alloca,118858 +896,60,RL,71,7056,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,2Story,6,5,1963,1963,Hip,CompShg,HdBoard,HdBoard,BrkFace,415,TA,TA,CBlock,TA,TA,No,BLQ,400,Unf,0,380,780,GasA,TA,Y,SBrkr,983,813,0,1796,1,0,1,1,4,1,TA,8,Typ,1,TA,Attchd,1963,RFn,2,483,TA,TA,Y,0,50,0,0,0,0,NA,NA,NA,0,10,2008,WD,Normal,140000 +897,30,RM,50,8765,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,4,6,1936,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,ALQ,285,Unf,0,666,951,GasA,Ex,N,SBrkr,951,0,0,951,0,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1936,Unf,1,327,TA,TA,Y,0,28,0,0,0,0,NA,NA,NA,0,4,2006,WD,Abnorml,106500 +898,90,RL,64,7018,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Feedr,Norm,Duplex,2Story,5,5,1979,1979,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,1120,1120,0,2240,0,0,2,0,6,2,TA,12,Typ,0,NA,Detchd,1979,Unf,2,528,TA,TA,Y,154,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Alloca,142953 +899,20,RL,100,12919,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2009,2010,Hip,CompShg,VinylSd,VinylSd,Stone,760,Ex,TA,PConc,Ex,TA,Gd,GLQ,2188,Unf,0,142,2330,GasA,Ex,Y,SBrkr,2364,0,0,2364,1,0,2,1,2,1,Ex,11,Typ,2,Gd,Attchd,2009,Fin,3,820,TA,TA,Y,0,67,0,0,0,0,NA,NA,NA,0,3,2010,New,Partial,611657 +900,20,RL,65,6993,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,5,7,1961,1994,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,TA,TA,No,BLQ,465,Unf,0,447,912,GasA,TA,Y,SBrkr,1236,0,0,1236,0,0,1,0,3,1,TA,6,Typ,1,TA,Attchd,1961,Unf,1,288,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,135000 +901,20,RL,NA,7340,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,6,1971,1971,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,ALQ,322,Unf,0,536,858,GasA,TA,Y,SBrkr,858,0,0,858,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1979,Unf,1,684,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,110000 +902,20,RL,64,8712,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1957,2000,Hip,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,Mn,BLQ,860,Unf,0,132,992,GasA,TA,Y,SBrkr,1306,0,0,1306,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1968,Unf,1,756,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,153000 +903,60,RL,63,7875,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,783,783,GasA,Ex,Y,SBrkr,807,702,0,1509,0,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2003,Fin,2,393,TA,TA,Y,0,75,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,180000 +904,20,RL,50,14859,Pave,NA,IR1,HLS,AllPub,CulDSac,Gtl,Gilbert,Norm,Norm,1Fam,1Story,7,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,27,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1670,1670,GasA,Ex,Y,SBrkr,1670,0,0,1670,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2006,RFn,3,690,TA,TA,Y,144,60,0,0,0,0,NA,NA,NA,0,8,2006,New,Partial,240000 +905,20,RL,NA,6173,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,6,1967,1967,Gable,CompShg,HdBoard,Wd Sdng,BrkFace,75,TA,TA,CBlock,TA,TA,No,GLQ,599,Unf,0,277,876,GasA,TA,Y,SBrkr,902,0,0,902,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1967,Unf,1,288,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,8,2007,WD,Normal,125500 +906,20,RL,80,9920,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1954,1954,Gable,CompShg,HdBoard,HdBoard,Stone,110,TA,TA,CBlock,TA,TA,No,Rec,354,LwQ,290,412,1056,GasA,TA,Y,SBrkr,1063,0,0,1063,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1954,RFn,1,280,TA,TA,Y,0,0,164,0,0,0,NA,MnPrv,NA,0,2,2010,WD,Normal,128000 +907,20,RL,116,13501,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,Stone,208,Gd,TA,PConc,Gd,TA,No,GLQ,63,Unf,0,1560,1623,GasA,Ex,Y,SBrkr,1636,0,0,1636,1,0,2,0,3,1,Gd,8,Typ,1,Gd,Attchd,2006,RFn,3,865,TA,TA,Y,0,60,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,255000 +908,50,RL,86,11500,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1.5Fin,7,7,1936,1987,Gable,CompShg,BrkFace,BrkFace,None,0,Gd,TA,CBlock,Gd,TA,No,Rec,223,Unf,0,794,1017,GasA,Gd,Y,SBrkr,1020,1037,0,2057,0,0,1,1,3,1,Gd,6,Typ,1,Gd,Attchd,1936,Fin,1,180,Fa,TA,Y,0,0,0,0,322,0,NA,NA,NA,0,6,2006,WD,Normal,250000 +909,20,RL,NA,8885,Pave,NA,IR1,Low,AllPub,Inside,Mod,Mitchel,Norm,Norm,1Fam,1Story,5,5,1983,1983,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,Av,BLQ,301,ALQ,324,239,864,GasA,TA,Y,SBrkr,902,0,0,902,1,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1983,Unf,2,484,TA,TA,Y,164,0,0,0,0,0,NA,MnPrv,NA,0,6,2006,WD,Normal,131000 +910,60,RL,149,12589,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,742,742,GasA,Ex,Y,SBrkr,742,742,0,1484,0,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2005,Fin,2,390,TA,TA,Y,36,24,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,174000 +911,90,RL,80,11600,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Feedr,Norm,Duplex,2Story,5,5,1960,1960,Gable,CompShg,MetalSd,MetalSd,BrkFace,361,TA,TA,CBlock,TA,TA,No,Rec,443,Unf,0,662,1105,GasA,TA,Y,FuseA,1105,1169,0,2274,0,0,2,0,5,2,TA,12,Typ,0,NA,Detchd,1960,Unf,2,480,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,1,2010,WD,Normal,154300 +912,20,RL,NA,9286,Pave,NA,IR1,Lvl,AllPub,CulDSac,Mod,CollgCr,Norm,Norm,1Fam,1Story,5,7,1977,1989,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,Gd,Gd,Av,ALQ,196,Unf,0,1072,1268,GasA,TA,Y,SBrkr,1268,0,0,1268,0,0,1,1,3,1,Gd,5,Typ,0,NA,Detchd,1978,Unf,1,252,TA,TA,Y,173,0,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal,143500 +913,30,RM,51,6120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,5,7,1925,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Rec,489,Unf,0,279,768,GasA,TA,N,SBrkr,1015,0,0,1015,0,0,1,0,3,1,TA,6,Min1,0,NA,Detchd,1925,Unf,1,450,TA,TA,Y,0,0,112,0,120,0,NA,MnPrv,Shed,620,7,2006,WD,Abnorml,88000 +914,90,RH,82,6270,Pave,NA,Reg,HLS,AllPub,Inside,Gtl,Crawfor,Norm,Norm,Duplex,2Story,5,6,1949,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,284,Unf,0,717,1001,GasA,TA,N,FuseA,1001,1001,0,2002,0,0,2,0,4,2,TA,8,Typ,0,NA,2Types,1949,Unf,3,871,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,145000 +915,160,FV,30,3000,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,6,5,2009,2009,Gable,CompShg,VinylSd,VinylSd,Stone,76,Gd,TA,PConc,Gd,TA,Av,GLQ,294,Unf,0,318,612,GasA,Ex,Y,SBrkr,612,612,0,1224,0,0,2,1,2,1,Gd,4,Typ,0,NA,Detchd,2009,RFn,2,528,TA,TA,Y,0,234,0,0,0,0,NA,NA,NA,0,6,2009,New,Partial,173733 +916,160,RM,21,2001,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,2Story,4,5,1970,1970,Gable,CompShg,CemntBd,CmentBd,BrkFace,80,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,546,546,GasA,Fa,Y,SBrkr,546,546,0,1092,0,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1970,Unf,1,286,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,1,2007,WD,Normal,75000 +917,20,C (all),50,9000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,2,3,1949,1950,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,CBlock,TA,TA,Av,BLQ,50,Unf,0,430,480,GasA,TA,N,FuseA,480,0,0,480,1,0,0,0,1,1,TA,4,Typ,0,NA,Detchd,1958,Unf,1,308,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2006,WD,Abnorml,35311 +918,20,RL,NA,17140,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,6,1956,1956,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,1059,Unf,0,75,1134,GasA,Ex,Y,FuseA,1229,0,0,1229,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1956,RFn,1,284,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal,135000 +919,60,RL,103,13125,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,1991,1991,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Ex,TA,Mn,BLQ,48,GLQ,634,422,1104,GasA,Ex,Y,SBrkr,912,1215,0,2127,1,0,2,1,4,1,Gd,8,Typ,1,TA,Attchd,1991,RFn,3,833,TA,TA,Y,72,192,224,0,0,0,NA,GdPrv,NA,0,11,2007,WD,Normal,238000 +920,20,RL,87,11029,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,8,1958,2002,Hip,CompShg,MetalSd,MetalSd,None,0,Ex,TA,CBlock,Gd,TA,No,ALQ,528,BLQ,411,245,1184,GasA,Ex,Y,SBrkr,1414,0,0,1414,1,0,1,0,3,1,TA,6,Min1,1,TA,Attchd,1990,Unf,2,601,TA,TA,Y,0,51,0,0,190,0,NA,NA,NA,0,5,2008,WD,Normal,176500 +921,60,RL,70,8462,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,5,1994,1994,Gable,CompShg,HdBoard,HdBoard,BrkFace,105,Gd,Gd,PConc,Gd,Gd,No,GLQ,814,Unf,0,114,928,GasA,Ex,Y,SBrkr,936,785,0,1721,0,1,2,1,3,1,Gd,7,Typ,0,NA,Attchd,1994,RFn,2,471,TA,TA,Y,300,87,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,201000 +922,90,RL,67,8777,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Feedr,Norm,Duplex,1.5Fin,5,7,1900,2003,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,1084,Unf,0,188,1272,GasA,Gd,Y,SBrkr,1272,928,0,2200,2,0,2,2,4,2,TA,9,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,70,0,0,0,0,NA,GdPrv,NA,0,9,2008,WD,Normal,145900 +923,20,RL,65,10237,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,RRAn,Norm,1Fam,1Story,6,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,28,Unf,0,1288,1316,GasA,Ex,Y,SBrkr,1316,0,0,1316,0,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2005,Fin,2,397,TA,TA,Y,100,0,0,23,0,0,NA,NA,NA,0,10,2006,New,Partial,169990 +924,120,RL,50,8012,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,TwnhsE,1Story,6,5,1993,1994,Gable,CompShg,Plywood,Plywood,None,0,Gd,TA,PConc,Gd,TA,No,LwQ,165,GLQ,841,598,1604,GasA,Ex,Y,SBrkr,1617,0,0,1617,1,0,2,0,2,1,Gd,5,Typ,1,Fa,Attchd,1993,RFn,2,533,TA,TA,Y,0,69,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,193000 +925,20,RL,79,10240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,6,1980,1980,Gable,CompShg,Plywood,Plywood,BrkFace,157,TA,Gd,CBlock,Gd,TA,No,BLQ,625,LwQ,1061,0,1686,GasA,TA,Y,SBrkr,1686,0,0,1686,1,0,2,0,3,1,TA,7,Typ,1,TA,Attchd,1980,Unf,2,612,TA,TA,Y,384,131,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,207500 +926,20,RL,NA,15611,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NWAmes,Norm,Norm,1Fam,1Story,5,6,1977,1977,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Av,ALQ,767,LwQ,93,266,1126,GasA,TA,Y,SBrkr,1126,0,0,1126,0,1,2,0,3,1,Ex,6,Typ,0,NA,Attchd,1977,RFn,2,540,TA,TA,Y,180,0,0,0,0,0,NA,NA,NA,0,3,2008,WD,Abnorml,175000 +927,60,RL,93,11999,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2003,2004,Hip,CompShg,VinylSd,VinylSd,BrkFace,340,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1181,1181,GasA,Ex,Y,SBrkr,1234,1140,0,2374,0,0,2,1,4,1,Ex,10,Typ,1,Gd,BuiltIn,2003,Fin,3,656,TA,TA,Y,104,100,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,285000 +928,60,RL,NA,9900,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Feedr,Norm,1Fam,2Story,7,5,1968,1968,Gable,CompShg,MetalSd,MetalSd,BrkFace,342,TA,TA,CBlock,TA,TA,No,BLQ,552,Unf,0,280,832,GasA,Gd,Y,SBrkr,1098,880,0,1978,0,0,2,1,4,1,TA,9,Typ,1,Gd,Attchd,1968,RFn,2,486,TA,TA,Y,0,43,0,0,0,0,NA,GdPrv,NA,0,4,2008,WD,Normal,176000 +929,20,RL,NA,11838,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2001,2001,Hip,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1753,1753,GasA,Ex,Y,SBrkr,1788,0,0,1788,0,0,2,0,3,1,Ex,7,Typ,1,TA,Attchd,2001,RFn,2,522,TA,TA,Y,202,151,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,236500 +930,60,RL,NA,13006,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,1997,1997,Gable,CompShg,HdBoard,HdBoard,BrkFace,285,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,964,964,GasA,Gd,Y,SBrkr,993,1243,0,2236,0,0,2,1,4,1,Gd,8,Typ,1,TA,BuiltIn,1997,Fin,2,642,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2006,WD,Normal,222000 +931,20,RL,73,8925,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,16,Unf,0,1450,1466,GasA,Ex,Y,SBrkr,1466,0,0,1466,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2007,Fin,3,610,TA,TA,Y,100,18,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,201000 +932,20,RL,70,9100,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1965,1965,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,338,Rec,466,121,925,GasA,Ex,Y,SBrkr,925,0,0,925,0,1,1,0,2,1,TA,5,Typ,0,NA,Detchd,1965,Unf,1,429,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,7,2009,WD,Normal,117500 +933,20,RL,84,11670,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Somerst,RRNn,Norm,1Fam,1Story,9,5,2006,2006,Hip,CompShg,VinylSd,ImStucc,Stone,302,Ex,TA,PConc,Ex,Gd,No,Unf,0,Unf,0,1905,1905,GasA,Ex,Y,SBrkr,1905,0,0,1905,0,0,2,0,3,1,Ex,8,Typ,1,Gd,Attchd,2006,Fin,3,788,TA,TA,Y,0,191,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal,320000 +934,20,RL,63,8487,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,210,Gd,TA,PConc,Gd,TA,Av,GLQ,20,Unf,0,1480,1500,GasA,Ex,Y,SBrkr,1500,0,0,1500,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2004,RFn,2,570,TA,TA,Y,192,36,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal,190000 +935,20,RL,313,27650,Pave,NA,IR2,HLS,AllPub,Inside,Mod,NAmes,PosA,Norm,1Fam,1Story,7,7,1960,2007,Flat,Tar&Grv,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,Gd,TA,Gd,GLQ,425,Unf,0,160,585,GasA,Ex,Y,SBrkr,2069,0,0,2069,1,0,2,0,4,1,Gd,9,Typ,1,Gd,Attchd,1960,RFn,2,505,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2008,WD,Normal,242000 +936,30,RL,52,5825,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,4,5,1926,1953,Gable,CompShg,MetalSd,MetalSd,BrkFace,108,TA,Gd,PConc,Fa,TA,Mn,Unf,0,Unf,0,600,600,GasA,Gd,Y,SBrkr,747,0,0,747,0,0,1,0,1,1,TA,5,Typ,0,NA,Detchd,1953,Unf,2,528,TA,TA,Y,0,0,32,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,79900 +937,20,RL,67,10083,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,NA,NA,Gd,TA,PConc,Gd,TA,No,GLQ,833,Unf,0,343,1176,GasA,Ex,Y,SBrkr,1200,0,0,1200,1,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,2003,RFn,2,555,TA,TA,Y,0,41,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal,184900 +938,60,RL,75,9675,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Mn,GLQ,341,Unf,0,772,1113,GasA,Ex,Y,SBrkr,1113,858,0,1971,0,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2005,RFn,2,689,TA,TA,Y,0,48,0,0,0,0,NA,NA,NA,0,2,2009,WD,Normal,253000 +939,60,RL,73,8760,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,Gd,Mn,GLQ,464,Unf,0,927,1391,GasA,Ex,Y,SBrkr,1391,571,0,1962,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2006,RFn,3,868,TA,TA,Y,0,90,0,0,0,0,NA,NA,NA,0,8,2006,New,Partial,239799 +940,70,RL,NA,24090,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,ClearCr,Norm,Norm,1Fam,2Story,7,7,1940,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,Mn,Unf,0,Unf,0,1032,1032,GasA,Ex,Y,SBrkr,1207,1196,0,2403,0,0,2,0,4,1,TA,10,Typ,2,TA,Attchd,1940,Unf,1,349,TA,TA,Y,56,0,318,0,0,0,NA,NA,NA,0,6,2010,COD,Normal,244400 +941,90,RL,55,12640,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,Duplex,1Story,6,5,1976,1976,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,Gd,Rec,936,LwQ,396,396,1728,GasA,TA,Y,SBrkr,1728,0,0,1728,0,0,2,0,4,2,TA,8,Typ,0,NA,Attchd,1976,Unf,2,574,TA,TA,Y,40,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,150900 +942,60,RL,NA,8755,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,Gilbert,RRNn,Norm,1Fam,2Story,7,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,BrkFace,298,Gd,TA,PConc,Gd,TA,No,ALQ,772,Unf,0,220,992,GasA,Ex,Y,SBrkr,1022,1038,0,2060,1,0,2,1,3,1,Gd,8,Typ,1,TA,BuiltIn,1999,RFn,2,390,TA,TA,Y,0,0,0,168,0,0,NA,GdPrv,NA,0,6,2009,WD,Normal,214000 +943,90,RL,42,7711,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,Duplex,1Story,4,3,1977,1977,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,Gd,TA,Gd,GLQ,1440,Unf,0,0,1440,GasA,TA,Y,SBrkr,1440,0,0,1440,2,0,2,0,4,2,TA,8,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,321,0,0,0,0,0,NA,NA,NA,0,8,2007,Oth,Abnorml,150000 +944,90,RL,100,25000,Pave,NA,Reg,Low,AllPub,Inside,Gtl,Mitchel,Norm,Norm,Duplex,1Story,5,4,1967,1967,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,TA,TA,Av,Unf,0,Unf,0,1632,1632,GasA,TA,Y,SBrkr,1632,0,0,1632,0,0,2,0,4,2,TA,8,Typ,0,NA,Attchd,1967,Unf,2,576,TA,TA,P,0,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,143000 +945,20,RL,NA,14375,Pave,NA,IR1,Lvl,NoSeWa,CulDSac,Gtl,Timber,Norm,Norm,1Fam,SLvl,6,6,1958,1958,Gable,CompShg,HdBoard,HdBoard,BrkFace,541,TA,TA,CBlock,TA,TA,No,GLQ,111,Rec,354,354,819,GasA,Gd,Y,FuseA,1344,0,0,1344,0,1,1,0,3,1,Gd,7,Typ,1,Gd,Basment,1958,RFn,2,525,TA,TA,Y,0,118,0,0,233,0,NA,NA,NA,0,1,2009,COD,Abnorml,137500 +946,50,RM,98,8820,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,6,1890,1996,Hip,CompShg,VinylSd,VinylSd,None,0,TA,TA,BrkTil,TA,TA,No,LwQ,1088,Unf,0,0,1088,GasA,TA,Y,SBrkr,1188,561,120,1869,0,0,1,0,2,1,TA,7,Typ,0,NA,Detchd,1963,Unf,2,456,TA,TA,Y,48,0,244,0,0,0,NA,MnWw,NA,0,9,2009,WD,Normal,124900 +947,80,RL,70,8163,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,5,6,1959,1959,Gable,CompShg,HdBoard,HdBoard,BrkFace,128,TA,Gd,CBlock,TA,TA,Av,ALQ,748,BLQ,294,102,1144,GasA,TA,Y,SBrkr,1144,0,0,1144,1,0,1,0,3,1,TA,6,Typ,1,TA,Attchd,1959,RFn,1,796,TA,TA,Y,86,0,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal,143000 +948,20,RL,85,14536,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2002,2003,Hip,CompShg,VinylSd,VinylSd,BrkFace,236,Gd,TA,PConc,Gd,TA,Av,GLQ,1300,Unf,0,316,1616,GasA,Ex,Y,SBrkr,1629,0,0,1629,1,0,2,0,3,1,Gd,9,Typ,1,Gd,Attchd,2002,Fin,3,808,TA,TA,Y,0,252,0,0,0,0,NA,NA,NA,0,11,2007,WD,Normal,270000 +949,60,RL,65,14006,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,144,Gd,TA,PConc,Gd,TA,NA,Unf,0,Unf,0,936,936,GasA,Ex,Y,SBrkr,936,840,0,1776,0,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,2002,RFn,2,474,TA,TA,Y,144,96,0,0,0,0,NA,NA,NA,0,2,2006,WD,Normal,192500 +950,20,RL,78,9360,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,7,1972,2006,Hip,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,982,Unf,0,179,1161,GasA,TA,Y,SBrkr,1381,0,0,1381,1,0,1,1,3,1,Gd,5,Typ,1,TA,Attchd,1972,RFn,2,676,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal,197500 +951,20,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,8,1950,2002,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,398,BLQ,149,317,864,GasA,Gd,Y,SBrkr,864,0,0,864,1,0,1,0,3,1,Gd,5,Typ,0,NA,Detchd,1980,RFn,2,720,TA,TA,Y,194,0,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,129000 +952,20,RH,60,7800,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,1Fam,1Story,5,5,1965,1965,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,641,Unf,0,187,828,GasA,Gd,Y,SBrkr,965,0,0,965,1,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1979,Unf,1,300,TA,TA,Y,421,0,0,0,0,0,NA,MnPrv,NA,0,7,2006,WD,Abnorml,119900 +953,85,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,SFoyer,5,8,1972,2003,Gable,CompShg,WdShing,HdBoard,None,0,TA,Gd,CBlock,Gd,TA,Av,GLQ,660,Unf,0,108,768,GasA,Gd,Y,SBrkr,768,0,0,768,0,1,1,0,2,1,TA,5,Typ,0,NA,Detchd,1974,Fin,1,396,TA,TA,Y,192,0,0,0,0,0,NA,MnPrv,NA,0,4,2009,WD,Normal,133900 +954,60,RL,NA,11075,Pave,NA,IR1,Lvl,AllPub,Inside,Mod,Mitchel,Norm,Norm,1Fam,2Story,5,4,1969,1969,Gable,CompShg,HdBoard,HdBoard,BrkFace,232,TA,TA,CBlock,TA,TA,Av,ALQ,562,LwQ,193,29,784,GasA,Ex,Y,SBrkr,1168,800,0,1968,0,1,2,1,4,1,TA,7,Min2,1,Po,Attchd,1969,RFn,2,530,TA,TA,Y,305,189,0,0,0,0,NA,MnPrv,Shed,400,9,2008,WD,Normal,172000 +955,90,RL,35,9400,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Edwards,Norm,Norm,Duplex,SFoyer,6,5,1975,1975,Flat,Tar&Grv,WdShing,Plywood,BrkFace,250,TA,TA,CBlock,Gd,Gd,Gd,GLQ,945,Unf,0,0,945,GasA,TA,Y,SBrkr,980,0,0,980,0,2,2,0,4,0,TA,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2006,WD,AdjLand,127500 +956,90,RH,82,7136,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Crawfor,Norm,Norm,Duplex,2Story,6,6,1946,1950,Gable,CompShg,MetalSd,MetalSd,BrkFace,423,TA,TA,CBlock,Gd,TA,No,Rec,484,Unf,0,495,979,GasA,TA,N,FuseF,979,979,0,1958,0,0,2,0,4,2,TA,8,Typ,0,NA,Attchd,1946,Unf,2,492,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,145000 +957,160,RM,24,1300,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blueste,Norm,Norm,TwnhsE,2Story,6,6,1980,1980,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,285,Unf,0,276,561,GasA,TA,Y,SBrkr,561,668,0,1229,0,0,1,1,2,1,TA,5,Typ,1,TA,Attchd,1980,Fin,2,462,TA,TA,Y,150,0,0,0,0,0,NA,GdPrv,NA,0,5,2009,WD,Normal,124000 +958,20,RL,70,7420,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1962,1962,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,417,Unf,0,640,1057,GasA,TA,Y,SBrkr,1057,0,0,1057,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1977,Fin,2,576,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal,132000 +959,20,RL,65,8450,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Mn,GLQ,699,Unf,0,638,1337,GasA,Ex,Y,SBrkr,1337,0,0,1337,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2003,RFn,2,531,TA,TA,Y,0,39,0,0,0,0,NA,NA,NA,0,10,2007,WD,Normal,185000 +960,160,FV,24,2572,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Somerst,Norm,Norm,Twnhs,2Story,7,5,1999,1999,Hip,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,ALQ,604,Unf,0,92,696,GasA,Ex,Y,SBrkr,696,720,0,1416,1,0,2,1,3,1,Gd,6,Typ,0,NA,Detchd,1999,Unf,2,484,TA,TA,Y,0,44,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,155000 +961,20,RL,50,7207,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,5,7,1958,2008,Gable,CompShg,Wd Sdng,Plywood,None,0,TA,Gd,CBlock,TA,TA,Gd,BLQ,696,Unf,0,162,858,GasA,Gd,Y,SBrkr,858,0,0,858,1,0,1,0,2,1,TA,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,117,0,0,0,0,0,NA,NA,NA,0,2,2010,WD,Normal,116500 +962,60,RL,NA,12227,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NWAmes,PosN,Norm,1Fam,2Story,6,7,1977,1995,Gable,CompShg,HdBoard,HdBoard,BrkFace,424,TA,Gd,CBlock,Gd,Gd,No,ALQ,896,Unf,0,434,1330,GasA,TA,Y,SBrkr,1542,1330,0,2872,1,0,2,1,4,1,TA,11,Typ,1,TA,Attchd,1977,Fin,2,619,TA,TA,Y,550,282,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,272000 +963,160,RL,24,2308,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NPkVill,Norm,Norm,TwnhsE,2Story,6,6,1976,1976,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,556,Unf,0,248,804,GasA,TA,Y,SBrkr,804,744,0,1548,1,0,2,1,3,1,Gd,7,Typ,1,TA,Detchd,1976,Unf,2,440,TA,TA,Y,48,0,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,155000 +964,20,RL,122,11923,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,9,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,TA,No,Unf,0,Unf,0,1800,1800,GasA,Ex,Y,SBrkr,1800,0,0,1800,0,0,2,0,2,1,Ex,7,Typ,0,NA,Attchd,2007,Fin,2,702,TA,TA,Y,288,136,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,239000 +965,60,RL,80,11316,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,2Story,7,5,2002,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,44,Gd,TA,PConc,Gd,TA,No,GLQ,624,Unf,0,193,817,GasA,Ex,Y,SBrkr,824,1070,0,1894,1,0,2,1,4,1,Gd,8,Typ,1,Gd,BuiltIn,2002,Fin,2,510,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,2,2010,WD,Normal,214900 +966,60,RL,65,10237,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,RRAn,Norm,1Fam,2Story,6,5,2005,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,783,783,GasA,Ex,Y,SBrkr,783,701,0,1484,0,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2005,Fin,2,393,TA,TA,Y,0,72,0,0,0,0,NA,NA,NA,0,7,2007,New,Partial,178900 +967,50,RL,130,9600,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1.5Fin,5,7,1940,1950,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,Gd,BrkTil,TA,Fa,No,Rec,428,Unf,0,300,728,GasA,Ex,Y,SBrkr,976,332,0,1308,1,0,1,1,2,1,TA,7,Min2,2,TA,Detchd,1940,Unf,1,256,TA,TA,Y,0,70,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,160000 +968,20,RL,NA,7390,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1955,1955,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,151,TA,TA,CBlock,TA,TA,No,ALQ,902,Unf,0,196,1098,GasA,TA,Y,SBrkr,1098,0,0,1098,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1955,Unf,1,260,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,135000 +969,50,RM,50,5925,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,3,6,1910,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,600,600,Grav,Fa,N,SBrkr,600,368,0,968,0,0,1,0,2,1,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,5,2009,WD,Abnorml,37900 +970,190,RL,75,10382,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,2fmCon,SLvl,6,5,1958,1958,Hip,CompShg,HdBoard,HdBoard,BrkFace,105,TA,Fa,CBlock,TA,TA,Gd,ALQ,513,Unf,0,75,588,GasA,TA,Y,SBrkr,1095,0,0,1095,1,0,1,0,2,1,TA,6,Typ,0,NA,Attchd,1958,RFn,1,264,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2006,ConLD,Normal,140000 +971,50,RL,60,10800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1.5Fin,4,4,1949,1950,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,720,720,GasA,TA,N,FuseA,720,472,0,1192,0,0,1,1,4,1,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,12,2006,WD,Abnorml,135000 +972,160,RL,36,2268,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,Twnhs,2Story,7,5,2003,2004,Gable,CompShg,VinylSd,Wd Shng,Stone,106,Gd,TA,PConc,Gd,TA,No,GLQ,567,Unf,0,197,764,GasA,Ex,Y,SBrkr,764,862,0,1626,0,0,2,0,2,1,Gd,6,Typ,0,NA,BuiltIn,2003,RFn,2,474,TA,TA,Y,0,27,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,173000 +973,120,RL,55,7892,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,TwnhsE,1Story,6,5,1979,1979,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,918,918,GasA,TA,Y,SBrkr,918,0,0,918,0,0,2,0,2,1,TA,5,Typ,1,TA,Attchd,1979,Unf,1,264,TA,TA,Y,28,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,99500 +974,20,FV,95,11639,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2007,2008,Gable,CompShg,CemntBd,CmentBd,NA,NA,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1428,1428,GasA,Ex,Y,SBrkr,1428,0,0,1428,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2007,Fin,2,480,TA,TA,Y,0,120,0,0,0,0,NA,NA,NA,0,12,2008,New,Partial,182000 +975,70,RL,60,11414,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,BrkSide,RRAn,Feedr,1Fam,2Story,7,8,1910,1993,Gable,CompShg,HdBoard,HdBoard,None,0,TA,Gd,BrkTil,Gd,TA,No,Unf,0,Unf,0,728,728,GasA,TA,N,SBrkr,1136,883,0,2019,0,0,1,0,3,1,Gd,8,Typ,0,NA,Detchd,1997,Unf,2,532,TA,TA,Y,509,135,0,0,0,0,NA,GdPrv,NA,0,10,2009,WD,Normal,167500 +976,160,FV,NA,2651,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Somerst,Norm,Norm,Twnhs,2Story,7,5,2000,2000,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,641,Unf,0,32,673,GasA,Ex,Y,SBrkr,673,709,0,1382,1,0,2,1,3,1,Gd,6,Typ,0,NA,Detchd,2000,Unf,2,490,TA,TA,Y,153,50,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,165000 +977,30,RL,51,5900,Pave,NA,IR1,Bnk,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,4,7,1923,1958,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,440,440,GasA,TA,Y,FuseA,869,0,0,869,0,0,1,0,2,1,Fa,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2006,WD,Normal,85500 +978,120,FV,35,4274,Pave,Pave,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,7,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,NA,NA,Gd,TA,PConc,Gd,TA,No,GLQ,1106,Unf,0,135,1241,GasA,Ex,Y,SBrkr,1241,0,0,1241,1,0,1,1,1,1,Gd,4,Typ,0,NA,Attchd,2007,Fin,2,569,TA,TA,Y,0,116,0,0,0,0,NA,NA,NA,0,11,2007,New,Partial,199900 +979,20,RL,68,9450,Pave,NA,Reg,Bnk,AllPub,Inside,Mod,Edwards,Norm,Norm,1Fam,1Story,4,5,1954,1954,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,LwQ,552,Unf,0,342,894,GasA,Ex,Y,SBrkr,894,0,0,894,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1999,Unf,2,400,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Abnorml,110000 +980,20,RL,80,8816,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,5,6,1963,1963,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,TA,TA,No,Rec,651,Unf,0,470,1121,GasA,TA,Y,SBrkr,1121,0,0,1121,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1963,Unf,2,480,TA,TA,Y,0,80,0,0,0,0,NA,MnPrv,NA,0,6,2009,WD,Normal,139000 +981,85,RL,NA,12122,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,SFoyer,7,9,1961,2007,Gable,CompShg,CemntBd,CmentBd,Stone,210,Ex,TA,CBlock,TA,TA,Av,ALQ,867,Unf,0,77,944,GasA,Gd,Y,SBrkr,999,0,0,999,1,0,1,0,3,1,Ex,6,Typ,0,NA,Attchd,1961,RFn,2,588,TA,TA,Y,144,76,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,178400 +982,60,RL,98,12203,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1998,1999,Hip,CompShg,VinylSd,VinylSd,BrkFace,975,Gd,TA,PConc,Gd,TA,No,GLQ,854,Unf,0,371,1225,GasA,Ex,Y,SBrkr,1276,1336,0,2612,1,0,2,1,4,1,Gd,8,Typ,1,TA,Attchd,1998,Fin,3,676,TA,TA,Y,250,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,336000 +983,20,RL,43,3182,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,1Fam,1Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,BrkFace,16,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1266,1266,GasA,Ex,Y,SBrkr,1266,0,0,1266,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2007,Fin,2,388,TA,TA,Y,100,16,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal,159895 +984,60,RL,NA,11250,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,2002,2002,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,1128,1128,GasA,Ex,Y,SBrkr,1149,1141,0,2290,0,0,2,1,4,1,Gd,9,Typ,1,Gd,Attchd,2002,Unf,2,779,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,255900 +985,90,RL,75,10125,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,Duplex,1.5Fin,5,5,1977,1977,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,1302,432,0,1734,0,0,2,0,4,2,Gd,8,Typ,0,NA,Attchd,1977,Unf,2,539,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2009,COD,Normal,126000 +986,190,RL,68,10880,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,2fmCon,1Story,5,5,1950,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,1040,Unf,0,124,1164,GasW,TA,N,SBrkr,1164,0,0,1164,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1950,Unf,1,240,TA,TA,Y,0,48,0,0,0,0,NA,NA,NA,0,8,2008,ConLD,Normal,125000 +987,50,RM,59,5310,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Feedr,Norm,1Fam,1.5Fin,6,8,1910,2003,Hip,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,Fa,No,Unf,0,Unf,0,485,485,GasA,Gd,Y,SBrkr,1001,634,0,1635,0,0,1,0,2,1,Gd,5,Typ,0,NA,Attchd,1950,Unf,1,255,Fa,TA,Y,394,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,117000 +988,20,RL,83,10159,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2009,2010,Hip,CompShg,VinylSd,VinylSd,Stone,450,Ex,TA,PConc,Ex,TA,Av,GLQ,1646,Unf,0,284,1930,GasA,Ex,Y,SBrkr,1940,0,0,1940,1,0,2,1,3,1,Ex,8,Typ,1,Gd,Attchd,2010,Fin,3,606,TA,TA,Y,168,95,0,0,0,0,NA,NA,NA,0,4,2010,New,Partial,395192 +989,60,RL,NA,12046,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,6,6,1976,1976,Gable,CompShg,Plywood,Plywood,BrkFace,298,TA,TA,CBlock,TA,TA,No,LwQ,156,Unf,0,692,848,GasA,TA,Y,SBrkr,1118,912,0,2030,0,0,2,1,4,1,Gd,8,Typ,1,TA,Attchd,1976,Fin,2,551,TA,TA,Y,0,224,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,195000 +990,60,FV,65,8125,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,Gd,No,Unf,0,Unf,0,770,770,GasA,Ex,Y,SBrkr,778,798,0,1576,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2006,RFn,2,614,TA,TA,Y,0,50,0,0,0,0,NA,NA,NA,0,8,2006,New,Partial,197000 +991,60,RL,82,9452,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1997,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,423,Gd,TA,PConc,Gd,TA,No,GLQ,1074,Unf,0,322,1396,GasA,Ex,Y,SBrkr,1407,985,0,2392,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1997,Fin,3,870,TA,TA,Y,0,70,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,348000 +992,70,RM,121,17671,Pave,Grvl,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Artery,Norm,1Fam,2Story,8,9,1882,1986,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,Gd,BrkTil,TA,TA,No,BLQ,216,Unf,0,700,916,GasA,Gd,Y,SBrkr,916,826,0,1742,0,0,1,1,4,1,Gd,8,Typ,1,Gd,Attchd,1925,Unf,2,424,TA,TA,P,0,169,0,0,0,0,NA,NA,NA,0,11,2009,WD,Normal,168000 +993,60,RL,80,9760,Pave,NA,Reg,Lvl,AllPub,Inside,Mod,NAmes,Norm,Norm,1Fam,2Story,6,8,1964,1993,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,340,TA,TA,CBlock,TA,TA,Gd,BLQ,536,Rec,117,169,822,GasA,Gd,Y,SBrkr,1020,831,0,1851,0,0,2,1,3,1,Gd,7,Typ,1,Fa,Attchd,1964,RFn,2,440,TA,TA,Y,239,42,0,0,0,0,NA,MnWw,NA,0,7,2007,WD,Normal,187000 +994,60,RL,68,8846,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,6,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,750,750,GasA,Ex,Y,SBrkr,750,750,0,1500,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2005,RFn,2,564,TA,TA,Y,0,35,0,0,0,0,NA,NA,NA,0,8,2006,New,Partial,173900 +995,20,RL,96,12456,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NridgHt,Norm,Norm,1Fam,1Story,10,5,2006,2007,Hip,CompShg,CemntBd,CmentBd,Stone,230,Ex,TA,PConc,Ex,TA,Gd,GLQ,1172,Unf,0,528,1700,GasA,Ex,Y,SBrkr,1718,0,0,1718,1,0,2,0,3,1,Ex,7,Typ,1,Gd,Attchd,2008,Fin,3,786,TA,TA,Y,216,48,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,337500 +996,50,RL,51,4712,Pave,NA,IR1,Lvl,AllPub,Inside,Mod,BrkSide,Feedr,Norm,1Fam,1.5Fin,4,7,1946,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,384,Unf,0,363,747,GasA,TA,Y,SBrkr,774,456,0,1230,1,0,1,1,3,1,TA,5,Typ,0,NA,Detchd,1946,Unf,1,305,TA,TA,Y,0,57,0,0,63,0,NA,MnPrv,NA,0,8,2006,WD,Abnorml,121600 +997,20,RL,NA,10659,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1961,1961,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,915,Unf,0,135,1050,GasA,TA,Y,SBrkr,1050,0,0,1050,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1961,Unf,1,368,TA,TA,Y,0,319,0,0,0,0,NA,NA,NA,0,1,2006,COD,Normal,136500 +998,20,RL,NA,11717,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,PosA,Norm,1Fam,1Story,6,6,1970,1970,Hip,CompShg,HdBoard,HdBoard,BrkFace,571,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1442,1442,GasA,TA,Y,SBrkr,1442,0,0,1442,0,0,2,0,2,1,TA,6,Typ,1,TA,Attchd,1970,RFn,2,615,TA,TA,Y,371,0,0,0,0,0,NA,NA,NA,0,2,2009,WD,Normal,185000 +999,30,RM,60,9786,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,3,4,1922,1950,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,Fa,No,Unf,0,Unf,0,1007,1007,GasA,Fa,N,SBrkr,1077,0,0,1077,0,0,1,0,3,1,TA,6,Typ,1,Gd,Detchd,1922,Unf,1,210,TA,Fa,P,0,100,48,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,91000 +1000,20,RL,64,6762,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,Stone,24,Gd,TA,PConc,Gd,TA,Av,GLQ,686,Unf,0,501,1187,GasA,Ex,Y,SBrkr,1208,0,0,1208,1,0,2,0,2,1,Gd,6,Typ,0,NA,Attchd,2006,RFn,2,632,TA,TA,Y,105,61,0,0,0,0,NA,NA,NA,0,2,2010,WD,Normal,206000 +1001,20,RL,74,10206,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,1Story,3,3,1952,1952,Flat,Tar&Grv,BrkComm,Brk Cmn,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasW,Fa,N,FuseF,944,0,0,944,0,0,1,0,2,1,Fa,4,Min1,0,NA,Detchd,1956,Unf,2,528,TA,Fa,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,82000 +1002,30,RL,60,5400,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,6,1920,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Fa,TA,No,Unf,0,Unf,0,691,691,GasA,Ex,Y,FuseA,691,0,0,691,0,0,1,0,2,1,Ex,4,Typ,0,NA,Detchd,1920,Unf,1,216,Fa,TA,N,0,20,94,0,0,0,NA,NA,NA,0,1,2007,WD,Abnorml,86000 +1003,20,RL,75,11957,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Somerst,RRAn,Norm,1Fam,1Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,53,Gd,TA,PConc,Gd,TA,No,GLQ,24,Unf,0,1550,1574,GasA,Ex,Y,SBrkr,1574,0,0,1574,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2006,RFn,3,824,TA,TA,Y,144,104,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,232000 +1004,90,RL,NA,11500,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NWAmes,Feedr,RRAn,Duplex,1Story,5,6,1976,1976,Gable,CompShg,VinylSd,VinylSd,BrkFace,164,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1680,1680,GasA,Fa,Y,SBrkr,1680,0,0,1680,0,0,2,0,4,2,TA,8,Typ,0,NA,Detchd,1976,Unf,2,528,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,136905 +1005,120,RL,43,3182,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,16,Gd,TA,PConc,Gd,TA,No,GLQ,16,Unf,0,1330,1346,GasA,Ex,Y,SBrkr,1504,0,0,1504,0,0,2,0,1,1,Gd,7,Typ,1,Gd,Attchd,2005,Fin,2,457,TA,TA,Y,156,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,181000 +1006,80,RL,65,8385,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,SLvl,5,8,1977,1977,Gable,CompShg,HdBoard,HdBoard,BrkFace,220,Gd,TA,CBlock,Gd,Gd,Av,GLQ,595,Unf,0,390,985,GasA,TA,Y,SBrkr,985,0,0,985,0,0,2,0,3,1,TA,6,Typ,0,NA,Attchd,1977,Unf,1,328,TA,TA,Y,210,0,0,0,0,0,NA,NA,NA,0,11,2008,WD,Normal,149900 +1007,20,RL,NA,12155,Pave,NA,IR3,Lvl,AllPub,Inside,Gtl,NAmes,PosN,Norm,1Fam,1Story,6,3,1970,1970,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,No,LwQ,1237,Unf,0,420,1657,GasA,Gd,Y,SBrkr,1657,0,0,1657,0,1,2,0,3,1,TA,7,Typ,1,TA,Attchd,1970,Unf,2,484,TA,TA,Y,0,0,0,0,147,0,NA,NA,NA,0,3,2007,WD,Normal,163500 +1008,160,RM,21,2217,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,2Story,4,4,1970,1970,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,273,LwQ,273,0,546,GasA,TA,Y,SBrkr,546,546,0,1092,0,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1970,RFn,1,286,TA,TA,Y,238,0,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal,88000 +1009,20,RL,43,12118,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Mitchel,Norm,Norm,1Fam,1Story,7,5,2004,2005,Hip,CompShg,VinylSd,VinylSd,Stone,108,Gd,TA,PConc,Ex,TA,Mn,Unf,0,Unf,0,1710,1710,GasA,Ex,Y,SBrkr,1710,0,0,1710,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2004,Fin,2,550,TA,TA,Y,100,48,0,0,180,0,NA,NA,NA,0,4,2009,WD,Normal,240000 +1010,50,RL,60,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1.5Fin,5,5,1926,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Fa,BrkTil,TA,TA,No,Unf,0,Unf,0,1008,1008,GasA,Ex,Y,SBrkr,1008,0,514,1522,0,0,2,0,4,1,TA,7,Typ,0,NA,NA,NA,NA,0,0,NA,NA,P,0,0,138,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,102000 +1011,50,RL,115,21286,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1.5Fin,5,5,1948,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,720,720,GasA,TA,Y,SBrkr,720,551,0,1271,0,0,2,0,4,1,TA,7,Typ,1,Gd,Attchd,1948,Unf,1,312,TA,TA,Y,0,0,108,0,0,0,NA,NA,NA,0,8,2008,WD,Normal,135000 +1012,90,RL,75,9825,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,Duplex,1Story,5,5,1965,1965,Hip,CompShg,AsphShn,AsphShn,None,0,TA,TA,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,N,SBrkr,1664,0,0,1664,0,0,2,0,4,2,TA,8,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,100000 +1013,70,RL,55,10592,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,6,7,1923,1996,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,PConc,TA,Fa,No,Unf,0,Unf,0,602,602,GasA,TA,Y,SBrkr,900,602,0,1502,0,0,1,1,3,1,Gd,7,Typ,2,TA,Detchd,1923,Unf,1,180,TA,TA,Y,96,0,112,0,53,0,NA,NA,NA,0,8,2007,WD,Normal,165000 +1014,30,RM,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,4,1910,2006,Hip,CompShg,MetalSd,Stucco,None,0,TA,TA,BrkTil,TA,TA,No,ALQ,247,Rec,465,310,1022,GasW,TA,N,SBrkr,1022,0,0,1022,1,0,1,0,2,1,TA,4,Maj2,0,NA,Detchd,1956,Unf,1,280,TA,TA,Y,0,30,226,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,85000 +1015,20,RL,60,11664,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Artery,Norm,1Fam,1Story,6,5,1948,1950,Gable,CompShg,MetalSd,MetalSd,BrkFace,206,TA,TA,CBlock,TA,Fa,No,BLQ,336,Unf,0,746,1082,GasA,TA,Y,SBrkr,1082,0,0,1082,0,0,1,0,2,1,TA,5,Typ,1,Gd,Detchd,1948,Unf,1,240,TA,TA,Y,0,130,0,0,0,0,NA,NA,NA,0,11,2007,WD,Normal,119200 +1016,60,RL,70,8400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,8,6,2001,2001,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,643,Unf,0,167,810,GasA,Ex,Y,SBrkr,810,855,0,1665,1,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2001,Fin,2,528,TA,TA,Y,0,45,0,0,0,0,NA,NA,NA,0,11,2009,WD,Normal,227000 +1017,20,RL,73,11883,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,1996,1996,Hip,CompShg,VinylSd,VinylSd,BrkFace,196,Gd,TA,PConc,Gd,TA,Gd,GLQ,690,Unf,0,814,1504,GasA,Ex,Y,SBrkr,1504,0,0,1504,1,0,2,0,3,1,Gd,6,Typ,1,TA,Attchd,1996,Fin,2,478,TA,TA,Y,115,66,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,203000 +1018,120,RL,NA,5814,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,1984,1984,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,CBlock,Gd,TA,Av,GLQ,1036,Unf,0,184,1220,GasA,Gd,Y,SBrkr,1360,0,0,1360,1,0,1,0,1,1,Gd,4,Typ,1,Ex,Attchd,1984,RFn,2,565,TA,TA,Y,63,0,0,0,0,0,NA,NA,NA,0,8,2009,COD,Abnorml,187500 +1019,80,RL,NA,10784,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,7,5,1991,1992,Gable,CompShg,HdBoard,HdBoard,BrkFace,76,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,384,384,GasA,Gd,Y,SBrkr,802,670,0,1472,0,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1991,RFn,2,402,TA,TA,Y,164,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,160000 +1020,120,RL,43,3013,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,145,Gd,TA,PConc,Gd,TA,Gd,GLQ,16,Unf,0,1346,1362,GasA,Ex,Y,SBrkr,1506,0,0,1506,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2005,Fin,2,440,TA,TA,Y,142,20,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,213490 +1021,20,RL,60,7024,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,GLQ,1024,Unf,0,108,1132,GasA,Ex,Y,SBrkr,1132,0,0,1132,1,0,1,1,2,1,Gd,5,Typ,0,NA,Attchd,2005,Fin,2,451,TA,TA,Y,252,64,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,176000 +1022,20,RL,64,7406,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,Stone,84,Gd,TA,PConc,Gd,TA,Av,GLQ,684,Unf,0,515,1199,GasA,Ex,Y,SBrkr,1220,0,0,1220,1,0,2,0,2,1,Gd,6,Typ,0,NA,Attchd,2006,RFn,2,632,TA,TA,Y,105,54,0,0,0,0,NA,NA,NA,0,7,2006,New,Partial,194000 +1023,50,RM,52,9439,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,5,1930,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,LwQ,324,Unf,0,588,912,GasA,Gd,Y,FuseA,912,336,0,1248,0,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1957,Unf,1,160,Fa,Fa,Y,0,0,192,0,0,0,NA,NA,NA,0,3,2007,WD,Normal,87000 +1024,120,RL,43,3182,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,14,Gd,TA,PConc,Gd,Gd,No,GLQ,16,Unf,0,1330,1346,GasA,Ex,Y,SBrkr,1504,0,0,1504,0,0,2,0,2,1,Gd,7,Typ,1,Gd,Attchd,2005,Fin,2,437,TA,TA,Y,156,20,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,191000 +1025,20,RL,NA,15498,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,1Story,8,6,1976,1976,Hip,WdShake,Stone,HdBoard,None,0,Gd,TA,CBlock,Gd,TA,Av,ALQ,1165,LwQ,400,0,1565,GasA,TA,Y,SBrkr,2898,0,0,2898,1,0,2,0,2,1,Gd,10,Typ,1,Gd,Attchd,1976,Fin,2,665,TA,TA,Y,0,72,174,0,0,0,NA,NA,NA,0,5,2008,COD,Abnorml,287000 +1026,20,RL,70,7700,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,5,1972,1972,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,LwQ,138,Rec,468,276,882,GasA,TA,Y,SBrkr,882,0,0,882,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1980,Unf,2,461,TA,TA,Y,96,0,0,0,0,0,NA,MnPrv,NA,0,3,2007,WD,Normal,112500 +1027,20,RL,73,9300,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Feedr,Norm,1Fam,1Story,5,5,1960,1960,Gable,CompShg,MetalSd,HdBoard,BrkFace,324,TA,TA,CBlock,TA,TA,No,Rec,697,Unf,0,571,1268,GasA,TA,Y,SBrkr,1264,0,0,1264,1,0,1,0,3,1,TA,6,Typ,2,Gd,Attchd,1960,Unf,2,461,TA,TA,Y,0,0,0,0,143,0,NA,NA,NA,0,4,2010,WD,Normal,167500 +1028,20,RL,71,9520,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2007,2008,Gable,CompShg,VinylSd,VinylSd,Stone,338,Gd,TA,PConc,Gd,TA,Gd,GLQ,1513,Unf,0,125,1638,GasA,Ex,Y,SBrkr,1646,0,0,1646,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2008,RFn,3,800,TA,TA,Y,192,44,0,0,0,0,NA,NA,NA,0,4,2008,New,Partial,293077 +1029,50,RL,79,9492,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Artery,Norm,1Fam,1.5Fin,5,5,1941,1950,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,TA,No,Rec,368,BLQ,41,359,768,GasA,TA,Y,SBrkr,968,408,0,1376,1,0,1,0,3,1,TA,6,Typ,1,Gd,Attchd,1941,Unf,1,240,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal,105000 +1030,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,7,1972,1972,Gable,CompShg,HdBoard,HdBoard,BrkFace,281,TA,TA,CBlock,TA,TA,No,BLQ,317,Unf,0,355,672,GasA,Gd,Y,SBrkr,672,546,0,1218,0,1,1,1,3,1,TA,7,Typ,0,NA,Detchd,1972,Unf,1,264,TA,TA,Y,0,28,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,118000 +1031,190,RH,NA,7082,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,2fmCon,2Story,5,8,1916,1995,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,TA,TA,Mn,Unf,0,Unf,0,686,686,GasA,Gd,Y,SBrkr,948,980,0,1928,0,0,2,0,5,2,TA,10,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,228,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,160000 +1032,75,RL,102,15863,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,SWISU,Norm,Norm,1Fam,2.5Fin,7,3,1920,1970,Gable,CompShg,Wd Sdng,Plywood,None,0,TA,TA,BrkTil,TA,TA,No,GLQ,523,Unf,0,301,824,GasA,Ex,Y,SBrkr,1687,998,397,3082,1,0,2,1,5,1,TA,12,Typ,2,TA,Basment,1970,Fin,2,672,TA,TA,Y,136,63,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal,197000 +1033,60,RL,NA,14541,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,7,1993,1993,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,Gd,PConc,Gd,Gd,No,GLQ,1012,Unf,0,326,1338,GasA,Ex,Y,SBrkr,1352,1168,0,2520,1,0,2,1,5,1,Gd,10,Typ,1,TA,Attchd,1993,RFn,3,796,TA,TA,Y,209,55,0,0,0,0,NA,NA,NA,0,11,2006,WD,Abnorml,310000 +1034,20,RL,NA,8125,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,Stone,295,Gd,TA,PConc,Gd,TA,No,GLQ,986,Unf,0,668,1654,GasA,Ex,Y,SBrkr,1654,0,0,1654,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2002,Unf,3,900,TA,TA,Y,0,136,0,0,0,0,NA,NA,NA,0,2,2006,WD,Normal,230000 +1035,30,RL,50,6305,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,5,7,1938,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,PConc,Fa,Fa,No,Unf,0,Unf,0,920,920,GasA,Ex,Y,SBrkr,954,0,0,954,0,0,1,0,2,1,Fa,5,Typ,1,Gd,Basment,1938,Unf,1,240,Fa,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,6,2007,WD,Normal,119750 +1036,20,RL,NA,11500,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,3,1957,1957,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,Ex,N,SBrkr,845,0,0,845,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1957,Unf,1,290,TA,TA,N,186,0,0,0,0,0,NA,NA,NA,0,1,2009,WD,Normal,84000 +1037,20,RL,89,12898,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,9,5,2007,2008,Hip,CompShg,VinylSd,VinylSd,Stone,70,Gd,TA,PConc,Ex,TA,Gd,GLQ,1022,Unf,0,598,1620,GasA,Ex,Y,SBrkr,1620,0,0,1620,1,0,2,0,2,1,Ex,6,Typ,1,Ex,Attchd,2008,Fin,3,912,TA,TA,Y,228,0,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal,315500 +1038,60,RL,NA,9240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,2001,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,396,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1055,1055,GasA,Ex,Y,SBrkr,1055,1208,0,2263,0,0,2,1,3,1,Gd,7,Typ,1,TA,BuiltIn,2001,Fin,2,905,TA,TA,Y,0,45,0,0,189,0,NA,NA,NA,0,9,2008,WD,Normal,287000 +1039,160,RM,21,1533,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,2Story,4,6,1970,2008,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,546,546,GasA,TA,Y,SBrkr,798,546,0,1344,0,0,1,1,3,1,TA,6,Typ,1,TA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,97000 +1040,180,RM,21,1477,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,SFoyer,4,4,1970,1970,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,Gd,TA,Av,GLQ,509,Unf,0,121,630,GasA,TA,Y,SBrkr,630,0,0,630,1,0,1,0,1,1,TA,3,Typ,0,NA,Attchd,1970,Unf,1,286,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal,80000 +1041,20,RL,88,13125,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,4,1957,2000,Gable,CompShg,Wd Sdng,Wd Sdng,BrkCmn,67,TA,TA,CBlock,TA,TA,No,Rec,168,BLQ,682,284,1134,GasA,Ex,Y,SBrkr,1803,0,0,1803,1,0,2,0,3,1,TA,8,Maj1,1,TA,Attchd,1957,RFn,2,484,TA,TA,Y,0,0,0,0,0,0,NA,GdPrv,NA,0,1,2006,WD,Normal,155000 +1042,60,RL,NA,9130,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Feedr,Norm,1Fam,2Story,6,8,1966,2000,Hip,CompShg,HdBoard,HdBoard,BrkFace,252,TA,TA,CBlock,TA,TA,No,GLQ,400,Rec,64,336,800,GasA,Gd,Y,SBrkr,800,832,0,1632,0,1,1,1,4,1,Gd,7,Typ,0,NA,Attchd,1966,Unf,2,484,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,173000 +1043,120,RL,34,5381,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,Twnhs,1Story,6,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,Stone,135,Gd,TA,PConc,Gd,TA,Av,ALQ,900,Unf,0,406,1306,GasA,Ex,Y,SBrkr,1306,0,0,1306,1,0,2,0,1,1,Gd,5,Typ,1,Gd,Attchd,2005,RFn,2,624,TA,TA,Y,170,63,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal,196000 +1044,60,RL,86,11839,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,7,5,1990,1990,Hip,CompShg,HdBoard,HdBoard,BrkFace,99,TA,TA,PConc,Gd,TA,No,GLQ,1085,Unf,0,390,1475,GasA,Ex,Y,SBrkr,1532,797,0,2329,1,0,2,1,4,1,Gd,10,Typ,1,Ex,Attchd,1990,Unf,2,514,TA,TA,Y,192,121,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,262280 +1045,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,PosN,Norm,1Fam,1Story,8,5,1981,1981,Hip,WdShngl,BrkFace,BrkFace,None,0,Gd,TA,PConc,Gd,TA,No,ALQ,1104,Unf,0,1420,2524,GasA,TA,Y,SBrkr,2524,0,0,2524,1,0,2,1,4,1,Gd,9,Typ,1,Gd,Attchd,1981,Fin,2,542,TA,TA,Y,474,120,0,0,0,0,NA,MnPrv,NA,0,7,2009,WD,Normal,278000 +1046,20,RL,NA,13680,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Edwards,Norm,Norm,1Fam,1Story,3,5,1955,1955,Hip,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,Ex,Y,FuseA,1733,0,0,1733,0,0,2,0,4,1,TA,8,Min2,1,Gd,Attchd,1955,Unf,2,452,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,139600 +1047,60,RL,85,16056,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,StoneBr,Norm,Norm,1Fam,2Story,9,5,2005,2006,Hip,CompShg,CemntBd,CmentBd,Stone,208,Gd,TA,PConc,Ex,TA,Av,GLQ,240,Unf,0,1752,1992,GasA,Ex,Y,SBrkr,1992,876,0,2868,0,0,3,1,4,1,Ex,11,Typ,1,Gd,BuiltIn,2005,Fin,3,716,TA,TA,Y,214,108,0,0,0,0,NA,NA,NA,0,7,2006,New,Partial,556581 +1048,20,RL,57,9245,Pave,NA,IR2,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,5,1994,1995,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,GLQ,686,Unf,0,304,990,GasA,Ex,Y,SBrkr,990,0,0,990,0,1,1,0,3,1,TA,5,Typ,0,NA,Detchd,1996,Unf,2,672,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,2,2008,WD,Normal,145000 +1049,20,RL,100,21750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,4,1960,2006,Hip,CompShg,HdBoard,HdBoard,BrkFace,75,TA,Fa,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,1771,0,0,1771,0,0,1,0,3,1,TA,9,Min1,1,TA,Attchd,1960,Unf,2,336,TA,TA,Y,0,0,0,0,0,0,NA,GdPrv,NA,0,11,2009,WD,Normal,115000 +1050,20,RL,60,11100,Pave,NA,Reg,Low,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,7,1946,2006,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,NA,NA,NA,NA,0,NA,0,0,0,GasA,Ex,Y,SBrkr,930,0,0,930,0,0,1,0,2,1,Gd,6,Typ,0,NA,Detchd,1946,Unf,1,308,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Abnorml,84900 +1051,20,RL,73,8993,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,1Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1302,1302,GasA,Ex,Y,SBrkr,1302,0,0,1302,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2007,Fin,2,436,TA,TA,Y,0,22,0,0,0,0,NA,NA,NA,0,8,2007,New,Partial,176485 +1052,20,RL,103,11175,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1316,1316,GasA,Ex,Y,SBrkr,1316,0,0,1316,0,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2007,Fin,2,440,TA,TA,Y,0,20,0,0,0,0,NA,NA,NA,0,10,2007,New,Partial,200141 +1053,60,RL,100,9500,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Artery,Norm,1Fam,2Story,6,6,1964,1978,Gable,CompShg,VinylSd,VinylSd,BrkCmn,272,TA,TA,CBlock,TA,TA,No,Rec,442,Unf,0,374,816,GasA,TA,Y,SBrkr,1127,850,0,1977,0,1,1,1,4,1,TA,9,Typ,1,TA,Attchd,1964,RFn,2,540,TA,TA,Y,0,52,0,0,0,0,NA,GdPrv,NA,0,6,2007,WD,Normal,165000 +1054,20,RL,68,8562,Pave,NA,Reg,Lvl,AllPub,Inside,Mod,Edwards,Norm,Norm,1Fam,1Story,5,6,1957,2002,Hip,CompShg,HdBoard,HdBoard,Stone,145,TA,TA,CBlock,TA,TA,Av,Rec,383,Unf,0,833,1216,GasA,Ex,Y,FuseA,1526,0,0,1526,0,0,1,0,4,1,TA,7,Min2,1,Gd,Basment,1957,Unf,1,364,TA,TA,Y,116,78,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,144500 +1055,60,RL,90,11367,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,210,Gd,TA,PConc,Gd,TA,Mn,GLQ,932,Unf,0,133,1065,GasA,Ex,Y,SBrkr,1091,898,0,1989,1,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2002,Fin,2,586,TA,TA,Y,199,60,0,0,0,0,NA,NA,NA,0,11,2006,WD,Normal,255000 +1056,20,RL,104,11361,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,5,1976,1976,Gable,CompShg,Plywood,Plywood,BrkFace,160,TA,TA,CBlock,Gd,TA,No,ALQ,644,Unf,0,549,1193,GasA,TA,Y,SBrkr,1523,0,0,1523,0,1,2,0,3,1,TA,7,Typ,1,TA,Attchd,1976,Fin,2,478,TA,TA,Y,0,0,0,0,189,0,NA,MnPrv,NA,0,5,2008,COD,Abnorml,180000 +1057,120,RL,43,7052,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,Stone,240,Gd,TA,PConc,Gd,TA,Av,GLQ,659,Unf,0,705,1364,GasA,Ex,Y,SBrkr,1364,0,0,1364,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2005,RFn,2,484,TA,TA,Y,192,36,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,185850 +1058,60,RL,NA,29959,Pave,NA,IR2,Lvl,AllPub,FR2,Gtl,NoRidge,Norm,Norm,1Fam,2Story,7,6,1994,1994,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,595,Unf,0,378,973,GasA,Ex,Y,SBrkr,979,871,0,1850,0,0,2,1,3,1,Gd,7,Typ,1,Gd,BuiltIn,1994,Fin,2,467,TA,TA,Y,168,98,0,0,0,0,NA,NA,NA,0,1,2009,WD,Normal,248000 +1059,60,RL,96,11308,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,9,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,Stone,154,Ex,TA,PConc,Ex,TA,Av,GLQ,936,Unf,0,168,1104,GasA,Ex,Y,SBrkr,1130,1054,0,2184,1,0,2,1,3,1,Ex,10,Typ,1,Gd,Attchd,2008,Fin,3,836,TA,TA,Y,0,102,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,335000 +1060,50,RL,NA,11275,Pave,NA,IR1,HLS,AllPub,Corner,Mod,Crawfor,Norm,Norm,1Fam,1.5Fin,6,7,1932,1950,Gable,CompShg,MetalSd,MetalSd,BrkFace,480,TA,TA,CBlock,TA,TA,Mn,Rec,297,LwQ,557,0,854,GasA,TA,Y,SBrkr,1096,895,0,1991,0,0,1,1,3,1,TA,7,Typ,1,Gd,Detchd,1977,Unf,2,432,TA,Fa,Y,0,0,19,0,0,0,NA,NA,NA,0,3,2007,WD,Normal,220000 +1061,120,RL,41,4920,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,2001,2001,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Gd,TA,Mn,GLQ,616,Unf,0,722,1338,GasA,Ex,Y,SBrkr,1338,0,0,1338,1,0,2,0,2,1,Gd,6,Typ,0,NA,Attchd,2001,Fin,2,582,TA,TA,Y,0,0,170,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,213500 +1062,30,C (all),120,18000,Grvl,NA,Reg,Low,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,3,4,1935,1950,Gable,CompShg,MetalSd,MetalSd,None,0,Fa,TA,CBlock,TA,TA,No,Unf,0,Unf,0,894,894,GasA,TA,Y,SBrkr,894,0,0,894,0,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1994,RFn,3,1248,TA,TA,Y,0,20,0,0,0,0,NA,NA,Shed,560,8,2008,ConLD,Normal,81000 +1063,190,RM,85,13600,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,2fmCon,2Story,5,5,1900,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,662,662,GasA,TA,N,SBrkr,1422,915,0,2337,0,0,2,0,5,2,TA,10,Min2,0,NA,Detchd,1945,Unf,2,560,TA,TA,Y,0,57,0,0,0,0,NA,NA,NA,0,9,2007,WD,Normal,90000 +1064,30,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1Story,6,6,1925,1980,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,BrkTil,TA,TA,No,BLQ,397,Unf,0,706,1103,GasA,Gd,Y,SBrkr,1103,0,0,1103,0,0,1,0,2,1,Gd,5,Typ,1,Gd,Detchd,1976,Unf,2,440,TA,TA,Y,166,120,0,0,0,0,NA,MnPrv,NA,0,7,2006,WD,Normal,110500 +1065,20,RL,NA,11000,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1966,1966,Gable,CompShg,Plywood,Plywood,BrkFace,200,TA,TA,CBlock,TA,TA,Mn,BLQ,740,Rec,230,184,1154,GasA,Ex,Y,SBrkr,1154,0,0,1154,0,0,1,1,3,1,TA,6,Typ,1,Po,Attchd,1966,RFn,2,480,TA,TA,Y,0,58,0,0,0,0,NA,MnPrv,NA,0,11,2009,WD,Normal,154000 +1066,60,RL,80,14000,Pave,NA,Reg,Lvl,AllPub,Inside,Mod,ClearCr,Norm,Norm,1Fam,2Story,7,5,1996,1997,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,TA,PConc,Ex,TA,Gd,GLQ,1201,Unf,0,105,1306,GasA,Ex,Y,SBrkr,1306,954,0,2260,1,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,1996,RFn,2,533,TA,TA,Y,296,44,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,328000 +1067,60,RL,59,7837,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,7,1993,1994,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,799,799,GasA,Gd,Y,SBrkr,799,772,0,1571,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1993,RFn,2,380,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,178000 +1068,60,RL,80,9760,Pave,NA,Reg,Lvl,AllPub,Inside,Mod,NAmes,Norm,Norm,1Fam,2Story,6,6,1964,1964,Gable,CompShg,HdBoard,HdBoard,BrkFace,360,TA,TA,CBlock,TA,TA,Gd,GLQ,674,LwQ,106,0,780,GasA,TA,Y,SBrkr,798,813,0,1611,1,0,1,1,4,1,TA,7,Typ,0,NA,Attchd,1964,RFn,2,442,TA,TA,Y,328,128,0,0,189,0,NA,NA,NA,0,6,2008,WD,Normal,167900 +1069,160,RM,42,3964,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,2Story,6,4,1973,1973,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,837,Unf,0,105,942,GasA,Gd,Y,SBrkr,1291,1230,0,2521,1,0,2,1,5,1,TA,10,Maj1,1,Gd,Attchd,1973,Fin,2,576,TA,TA,Y,728,20,0,0,0,0,NA,GdPrv,NA,0,6,2006,WD,Normal,151400 +1070,45,RL,60,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1.5Unf,5,7,1949,2003,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,220,Unf,0,625,845,GasA,TA,Y,SBrkr,893,0,0,893,0,1,1,0,2,1,Gd,4,Typ,0,NA,Detchd,1985,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,135000 +1071,20,RL,72,10152,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1956,1956,Hip,CompShg,MetalSd,MetalSd,BrkFace,120,TA,TA,CBlock,TA,TA,No,BLQ,586,Unf,0,462,1048,GasA,TA,Y,SBrkr,1048,0,0,1048,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1956,Unf,1,286,TA,TA,Y,0,20,0,0,192,0,NA,NA,NA,0,6,2007,WD,Normal,135000 +1072,60,RL,78,11700,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,RRAn,Norm,1Fam,2Story,6,6,1968,1968,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,298,Unf,0,429,727,GasA,Ex,Y,SBrkr,829,727,0,1556,0,0,1,1,4,1,TA,8,Typ,0,NA,Attchd,1968,Unf,2,441,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,154000 +1073,50,RL,50,7585,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Artery,Norm,1Fam,1.5Fin,5,3,1948,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,Fa,Fa,Mn,Unf,0,Unf,0,810,810,GasA,Fa,Y,FuseA,1002,454,0,1456,1,1,1,0,4,1,TA,7,Typ,1,TA,Detchd,1954,Unf,1,280,TA,TA,P,0,0,0,0,0,0,NA,NA,NA,0,8,2006,WD,Normal,91500 +1074,60,RL,75,7950,Pave,NA,IR1,Bnk,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,2Story,6,6,1977,1977,Hip,CompShg,HdBoard,Plywood,BrkFace,140,TA,TA,CBlock,TA,TA,No,BLQ,535,Unf,0,155,690,GasA,TA,Y,SBrkr,698,728,0,1426,0,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1977,Fin,2,440,TA,TA,Y,252,0,0,0,0,0,NA,MnPrv,NA,0,7,2009,WD,Normal,159500 +1075,20,RL,74,8556,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1240,1240,GasA,Ex,Y,SBrkr,1240,0,0,1240,0,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,2006,RFn,3,826,TA,TA,Y,140,93,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,194000 +1076,70,RL,75,13125,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,7,6,1940,1984,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,410,Unf,0,390,800,GasA,TA,Y,SBrkr,960,780,0,1740,0,0,1,1,3,1,TA,6,Typ,2,Gd,Attchd,1940,Unf,1,240,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2007,CWD,Normal,219500 +1077,50,RL,60,10800,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,8,1936,1989,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,Fa,TA,No,ALQ,626,Unf,0,170,796,GasA,Gd,Y,SBrkr,1096,370,0,1466,0,1,2,0,3,1,Gd,7,Min1,1,TA,Attchd,1950,Unf,2,566,TA,TA,Y,436,21,0,0,0,0,NA,NA,Shed,500,4,2006,WD,Normal,170000 +1078,20,RL,NA,15870,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1969,1969,Gable,CompShg,VinylSd,Plywood,None,0,TA,TA,CBlock,TA,TA,Mn,BLQ,75,Rec,791,230,1096,GasA,Ex,Y,SBrkr,1096,0,0,1096,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1969,Fin,1,299,TA,TA,Y,240,32,0,0,0,0,NA,NA,NA,0,3,2006,WD,Abnorml,138800 +1079,120,RM,37,4435,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,TwnhsE,1Story,6,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,169,Gd,TA,PConc,Gd,TA,Mn,GLQ,662,Unf,0,186,848,GasA,Ex,Y,SBrkr,848,0,0,848,1,0,1,0,1,1,Gd,3,Typ,1,Gd,Attchd,2004,RFn,2,420,TA,TA,Y,140,0,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,155900 +1080,20,RL,65,8775,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,5,1994,1994,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,GLQ,495,Unf,0,495,990,GasA,Gd,Y,SBrkr,990,0,0,990,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1996,Unf,1,299,TA,TA,Y,0,64,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal,126000 +1081,20,RL,80,11040,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,7,1971,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,144,Gd,Gd,CBlock,TA,TA,No,ALQ,656,Unf,0,602,1258,GasA,Ex,Y,SBrkr,1258,0,0,1258,0,1,2,0,3,1,Gd,5,Typ,0,NA,Attchd,1971,RFn,2,528,TA,TA,Y,55,0,0,216,0,0,NA,NA,NA,0,10,2008,COD,Abnorml,145000 +1082,20,RL,75,7500,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,5,5,1963,1963,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,ALQ,824,Unf,0,216,1040,GasA,Fa,Y,SBrkr,1040,0,0,1040,1,0,1,1,3,1,TA,5,Typ,0,NA,Attchd,1963,Fin,1,308,TA,TA,Y,0,0,220,0,0,0,NA,MnPrv,NA,0,6,2010,WD,Normal,133000 +1083,20,RL,70,8749,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,100,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1459,1459,GasA,Ex,Y,SBrkr,1459,0,0,1459,0,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2002,RFn,2,527,TA,TA,Y,192,39,0,0,0,0,NA,NA,NA,0,9,2007,WD,Normal,192000 +1084,20,RL,80,8800,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1964,1964,Hip,CompShg,HdBoard,HdBoard,BrkFace,425,TA,TA,CBlock,TA,TA,No,BLQ,553,Unf,0,698,1251,GasA,TA,Y,SBrkr,1251,0,0,1251,1,0,1,0,3,1,TA,6,Typ,2,Gd,Attchd,1964,RFn,1,461,TA,TA,Y,0,116,0,0,0,0,NA,MnPrv,Shed,700,3,2006,WD,Normal,160000 +1085,60,RL,NA,13031,Pave,NA,IR2,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1995,1996,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,No,ALQ,592,Unf,0,99,691,GasA,Gd,Y,SBrkr,691,807,0,1498,0,0,2,1,3,1,TA,6,Typ,1,TA,Attchd,1995,Fin,2,409,TA,TA,Y,315,44,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,187500 +1086,85,RL,73,9069,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,SFoyer,6,6,1992,1992,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,Av,GLQ,747,Unf,0,189,936,GasA,Ex,Y,SBrkr,996,0,0,996,1,0,1,0,2,1,Gd,5,Typ,0,NA,Attchd,1992,Unf,2,564,TA,TA,Y,120,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,147000 +1087,160,RM,NA,1974,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,2Story,4,5,1973,1973,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,334,Unf,0,212,546,GasA,TA,Y,SBrkr,546,546,0,1092,0,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1973,RFn,1,286,TA,TA,Y,120,96,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,83500 +1088,60,FV,85,10574,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,8,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,1082,1082,GasA,Ex,Y,SBrkr,1082,871,0,1953,0,0,2,1,3,1,Gd,9,Typ,1,Gd,Attchd,2005,RFn,3,1043,TA,TA,Y,160,50,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,252000 +1089,160,RM,24,2522,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,Twnhs,2Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,Stone,50,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,970,970,GasA,Ex,Y,SBrkr,970,739,0,1709,0,0,2,0,3,1,Gd,7,Maj1,0,NA,Detchd,2004,Unf,2,380,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,137500 +1090,120,FV,37,3316,Pave,Pave,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,8,5,2005,2005,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,1039,Unf,0,208,1247,GasA,Ex,Y,SBrkr,1247,0,0,1247,1,0,1,1,1,1,Gd,4,Typ,1,Gd,Attchd,2005,Fin,2,550,TA,TA,Y,0,84,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,197000 +1091,90,RL,60,8544,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,Duplex,1Story,3,4,1950,1950,Gable,CompShg,BrkFace,BrkFace,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,Wall,Fa,N,FuseA,1040,0,0,1040,0,0,2,0,2,2,TA,6,Typ,0,NA,Detchd,1987,Unf,2,400,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,92900 +1092,160,FV,24,2160,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,2Story,7,5,1999,2000,Gable,CompShg,MetalSd,MetalSd,BrkFace,212,Gd,TA,PConc,Gd,TA,No,BLQ,510,Unf,0,90,600,GasA,Ex,Y,SBrkr,624,628,0,1252,1,0,2,1,2,1,Gd,4,Typ,0,NA,Detchd,1999,Unf,2,462,TA,TA,Y,0,48,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal,160000 +1093,50,RL,60,8400,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1.5Fin,6,5,1925,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,No,Rec,423,Unf,0,758,1181,GasA,Fa,Y,SBrkr,1390,304,0,1694,0,0,2,0,4,1,TA,7,Typ,1,Gd,Detchd,1925,Unf,2,576,TA,TA,Y,342,0,128,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,136500 +1094,20,RL,71,9230,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Feedr,Norm,1Fam,1Story,5,8,1965,1998,Hip,CompShg,MetalSd,MetalSd,BrkFace,166,TA,TA,CBlock,TA,TA,Mn,GLQ,661,Unf,0,203,864,GasA,Gd,Y,SBrkr,1200,0,0,1200,1,0,1,1,1,1,Gd,6,Typ,0,NA,Detchd,1977,Unf,2,884,TA,TA,Y,0,64,0,0,0,0,NA,MnPrv,NA,0,10,2006,WD,Normal,146000 +1095,20,RL,74,5868,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1956,2000,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,248,Rec,240,448,936,GasA,Ex,Y,SBrkr,936,0,0,936,1,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1956,Fin,1,308,TA,TA,Y,0,0,80,0,160,0,NA,NA,NA,0,5,2010,WD,Normal,129000 +1096,20,RL,78,9317,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,6,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,24,Unf,0,1290,1314,GasA,Gd,Y,SBrkr,1314,0,0,1314,0,0,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,2006,RFn,2,440,TA,TA,Y,0,22,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal,176432 +1097,70,RM,60,6882,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,2Story,6,7,1914,2006,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,684,684,GasA,TA,Y,SBrkr,773,582,0,1355,0,0,1,1,3,1,Gd,7,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,136,0,115,0,0,0,NA,NA,NA,0,3,2007,WD,Normal,127000 +1098,120,RL,NA,3696,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,1986,1986,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,1074,1074,GasA,Ex,Y,SBrkr,1088,0,0,1088,0,0,1,1,2,1,Gd,5,Typ,0,NA,Attchd,1987,RFn,2,461,TA,TA,Y,0,74,137,0,0,0,NA,NA,NA,0,10,2007,WD,Normal,170000 +1099,50,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,4,6,1936,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,BLQ,672,Unf,0,0,672,GasA,TA,Y,SBrkr,757,567,0,1324,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1936,Unf,1,240,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,128000 +1100,20,RL,82,11880,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,RRAn,Norm,1Fam,1Story,7,5,1978,1978,Gable,CompShg,Plywood,Plywood,BrkFace,206,TA,TA,CBlock,Gd,TA,No,ALQ,704,Unf,0,567,1271,GasA,TA,Y,SBrkr,1601,0,0,1601,0,0,2,0,3,1,TA,7,Typ,1,TA,Attchd,1978,RFn,2,478,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2009,COD,Abnorml,157000 +1101,30,RL,60,8400,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1Story,2,5,1920,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,Fa,No,Rec,290,Unf,0,0,290,GasA,TA,N,FuseF,438,0,0,438,0,0,1,0,1,1,Fa,3,Typ,0,NA,Detchd,1930,Unf,1,246,TA,TA,N,0,0,0,0,0,0,NA,NA,NA,0,1,2009,WD,Normal,60000 +1102,20,RL,61,9758,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1971,1971,Gable,CompShg,HdBoard,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,412,LwQ,287,251,950,GasA,TA,Y,SBrkr,950,0,0,950,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1981,Unf,1,280,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,119500 +1103,20,RL,70,7000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1960,2002,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,45,TA,TA,CBlock,TA,TA,No,Rec,588,Unf,0,422,1010,GasA,Ex,Y,SBrkr,1134,0,0,1134,0,0,1,0,2,1,TA,6,Typ,0,NA,Attchd,1960,RFn,1,254,TA,TA,Y,0,16,0,0,0,0,NA,MnWw,NA,0,4,2007,WD,Family,135000 +1104,20,RL,79,8910,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1959,1959,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,Mn,ALQ,655,Unf,0,0,655,GasA,Ex,Y,SBrkr,1194,0,0,1194,0,1,1,0,3,1,TA,6,Typ,1,Fa,BuiltIn,1954,Fin,2,539,TA,TA,Y,0,0,192,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,159500 +1105,160,RM,24,2016,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,TwnhsE,2Story,5,5,1970,1970,Gable,CompShg,HdBoard,HdBoard,BrkFace,304,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,630,630,GasA,TA,Y,SBrkr,630,672,0,1302,0,0,2,1,3,1,TA,6,Typ,0,NA,Detchd,1970,Unf,2,440,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal,106000 +1106,60,RL,98,12256,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1994,1995,Gable,CompShg,HdBoard,HdBoard,BrkFace,362,Gd,TA,PConc,Ex,TA,Av,GLQ,1032,Unf,0,431,1463,GasA,Ex,Y,SBrkr,1500,1122,0,2622,1,0,2,1,3,1,Gd,9,Typ,2,TA,Attchd,1994,RFn,2,712,TA,TA,Y,186,32,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,325000 +1107,20,RL,114,10357,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,SawyerW,Feedr,Norm,1Fam,1Story,7,5,1990,1991,Hip,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,Mn,GLQ,738,Unf,0,172,910,GasA,Gd,Y,SBrkr,1442,0,0,1442,1,0,2,0,3,1,Gd,6,Typ,1,TA,Attchd,1990,Fin,2,719,TA,TA,Y,0,244,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,179900 +1108,60,RL,168,23257,Pave,NA,IR3,HLS,AllPub,CulDSac,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,Gd,No,Unf,0,Unf,0,868,868,GasA,Ex,Y,SBrkr,887,1134,0,2021,0,0,2,1,3,1,Gd,9,Typ,1,Gd,BuiltIn,2006,RFn,2,422,TA,TA,Y,0,100,0,0,0,0,NA,NA,NA,0,9,2006,New,Partial,274725 +1109,60,RL,NA,8063,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,924,924,GasA,Ex,Y,SBrkr,948,742,0,1690,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,2000,RFn,2,463,TA,TA,Y,100,48,0,0,0,0,NA,NA,NA,0,11,2007,WD,Abnorml,181000 +1110,20,RL,107,11362,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2004,2005,Gable,CompShg,MetalSd,MetalSd,Stone,42,Gd,TA,PConc,Ex,TA,Mn,GLQ,1039,Unf,0,797,1836,GasA,Ex,Y,SBrkr,1836,0,0,1836,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2004,Fin,3,862,TA,TA,Y,125,185,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal,280000 +1111,60,RL,NA,8000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1995,1996,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,No,GLQ,219,Unf,0,554,773,GasA,Gd,Y,SBrkr,773,885,0,1658,1,0,2,1,3,1,TA,8,Typ,1,TA,Attchd,1995,Fin,2,431,TA,TA,Y,224,84,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,188000 +1112,60,RL,80,10480,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,7,6,1976,1976,Hip,CompShg,Plywood,Plywood,BrkFace,660,TA,TA,CBlock,TA,TA,No,ALQ,403,Unf,0,400,803,GasA,TA,Y,SBrkr,1098,866,0,1964,0,0,2,1,4,1,TA,8,Typ,1,Gd,Attchd,1976,RFn,2,483,TA,TA,Y,0,69,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal,205000 +1113,20,RL,73,7100,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1957,1957,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,CBlock,TA,TA,No,GLQ,708,Unf,0,108,816,GasA,TA,Y,FuseA,816,0,0,816,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1957,Unf,1,308,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,129900 +1114,20,RL,66,8923,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1953,2006,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,643,Unf,0,365,1008,GasA,Gd,Y,SBrkr,1008,0,0,1008,1,0,1,0,2,1,Gd,6,Typ,0,NA,Attchd,1953,Unf,1,240,TA,TA,Y,0,18,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,134500 +1115,20,RL,90,5400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,7,1954,2000,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,Rec,415,Unf,0,418,833,GasA,Ex,Y,SBrkr,833,0,0,833,0,0,1,0,2,1,Gd,4,Typ,0,NA,Detchd,1955,Unf,1,326,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,8,2006,WD,Normal,117000 +1116,20,RL,93,12085,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2007,2007,Hip,CompShg,VinylSd,VinylSd,Stone,328,Gd,TA,PConc,Ex,TA,No,GLQ,1004,Unf,0,730,1734,GasA,Ex,Y,SBrkr,1734,0,0,1734,1,0,2,0,3,1,Ex,7,Typ,1,Gd,Attchd,2007,RFn,3,928,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2007,New,Partial,318000 +1117,80,RL,NA,7750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,8,5,2002,2002,Hip,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,353,Unf,0,55,408,GasA,Ex,Y,SBrkr,779,640,0,1419,1,0,2,1,3,1,Gd,7,Typ,1,TA,BuiltIn,2002,Fin,2,527,TA,TA,Y,120,0,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal,184100 +1118,20,RL,57,9764,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,5,7,1967,2003,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,702,Unf,0,192,894,GasA,Ex,Y,SBrkr,894,0,0,894,1,0,1,0,3,1,Gd,5,Typ,0,NA,Attchd,1967,RFn,2,450,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,130000 +1119,80,RL,85,13825,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,SLvl,5,6,1958,1987,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,Unf,0,Unf,0,533,533,GasA,TA,Y,SBrkr,1021,580,0,1601,0,1,1,0,3,1,TA,6,Min2,0,NA,BuiltIn,1958,RFn,1,300,TA,TA,Y,280,34,0,0,0,0,NA,NA,NA,0,12,2008,WD,Normal,140000 +1120,20,RL,70,7560,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1959,1959,Gable,CompShg,BrkFace,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,LwQ,369,Unf,0,671,1040,GasA,TA,Y,FuseA,1040,0,0,1040,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1959,RFn,1,286,TA,TA,Y,140,0,252,0,0,0,NA,GdWo,NA,0,7,2006,WD,Normal,133700 +1121,30,RM,59,8263,Pave,NA,Reg,Bnk,AllPub,Inside,Mod,IDOTRR,Norm,Norm,1Fam,1Story,6,5,1920,1950,Gable,CompShg,BrkFace,BrkFace,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,1012,1012,GasA,TA,Y,FuseA,1012,0,0,1012,0,0,1,0,2,1,TA,6,Typ,1,Gd,Detchd,1920,Unf,1,308,TA,TA,Y,0,22,112,0,0,0,NA,MnPrv,NA,0,5,2007,WD,Normal,118400 +1122,20,RL,84,10084,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,196,Gd,TA,PConc,Gd,TA,Av,GLQ,24,Unf,0,1528,1552,GasA,Ex,Y,SBrkr,1552,0,0,1552,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2005,RFn,3,782,TA,TA,Y,144,20,0,0,0,0,NA,NA,NA,0,7,2006,New,Partial,212900 +1123,20,RL,NA,8926,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,3,1956,1956,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,672,672,GasA,Ex,Y,FuseA,960,0,0,960,0,0,1,0,3,1,TA,5,Typ,0,NA,Basment,1956,Unf,1,288,TA,TA,Y,64,0,0,0,160,0,NA,MnPrv,NA,0,10,2009,COD,Abnorml,112000 +1124,20,RL,50,9405,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,9,1947,2008,Hip,CompShg,VinylSd,VinylSd,None,0,TA,Ex,CBlock,TA,TA,No,Unf,0,Unf,0,698,698,GasA,Ex,Y,SBrkr,698,0,0,698,0,1,1,0,2,1,TA,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,200,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,118000 +1125,80,RL,NA,9125,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,7,5,1992,1992,Gable,CompShg,HdBoard,HdBoard,BrkFace,170,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,384,384,GasA,Gd,Y,SBrkr,812,670,0,1482,0,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1992,Fin,2,392,TA,TA,Y,100,25,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,163900 +1126,20,RL,60,10434,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,5,1955,1955,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1005,1005,GasA,TA,Y,SBrkr,1005,0,0,1005,0,0,1,0,2,1,Fa,5,Typ,1,TA,Detchd,1977,Unf,2,672,Fa,Fa,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2009,WD,Normal,115000 +1127,120,RL,53,3684,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2007,2007,Hip,CompShg,VinylSd,VinylSd,BrkFace,130,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1373,1373,GasA,Ex,Y,SBrkr,1555,0,0,1555,0,0,2,0,2,1,Gd,7,Typ,1,TA,Attchd,2007,Fin,3,660,TA,TA,Y,143,20,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,174000 +1128,20,RL,182,14572,Pave,NA,IR3,Lvl,AllPub,Corner,Gtl,Gilbert,Norm,Norm,1Fam,1Story,7,5,2004,2004,Hip,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,1300,Unf,0,230,1530,GasA,Ex,Y,SBrkr,1530,0,0,1530,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2004,Fin,3,630,TA,TA,Y,144,36,0,0,0,0,NA,NA,NA,0,11,2007,WD,Family,259000 +1129,60,RL,59,11796,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,847,847,GasA,Ex,Y,SBrkr,847,1112,0,1959,0,0,2,1,4,1,Gd,8,Typ,1,Gd,BuiltIn,2004,Fin,2,434,TA,TA,Y,100,48,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,215000 +1130,90,RM,60,7200,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,Duplex,SFoyer,5,5,1980,1980,Gable,CompShg,MetalSd,MetalSd,BrkFace,180,TA,TA,CBlock,Gd,TA,Gd,GLQ,936,Unf,0,0,936,GasA,TA,Y,SBrkr,936,0,0,936,1,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1980,Unf,2,672,TA,TA,Y,49,0,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,140000 +1131,50,RL,65,7804,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1.5Fin,4,3,1928,1950,Gable,CompShg,WdShing,Plywood,None,0,TA,TA,BrkTil,TA,TA,No,BLQ,622,Unf,0,500,1122,GasA,TA,Y,SBrkr,1328,653,0,1981,1,0,2,0,4,1,Gd,7,Min2,2,TA,Detchd,1981,Unf,2,576,TA,TA,Y,431,44,0,0,0,0,NA,MnPrv,NA,0,12,2009,WD,Normal,135000 +1132,20,RL,63,10712,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,5,1991,1992,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,Mn,BLQ,212,Unf,0,762,974,GasA,TA,Y,SBrkr,974,0,0,974,0,0,1,0,3,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,28,0,0,0,0,NA,MnPrv,NA,0,9,2007,Oth,Abnorml,93500 +1133,70,RM,90,9900,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,6,4,1880,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,Mn,Unf,0,Unf,0,1008,1008,GasW,TA,Y,SBrkr,1178,1032,0,2210,0,0,2,0,5,1,Fa,8,Typ,0,NA,Detchd,1930,Unf,1,205,Fa,TA,N,0,48,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,117500 +1134,60,RL,80,9828,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,8,5,1995,1995,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,584,Unf,0,544,1128,GasA,Ex,Y,SBrkr,1142,878,0,2020,0,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1995,RFn,2,466,TA,TA,Y,0,155,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,239500 +1135,60,RL,57,8773,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1997,1997,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,916,916,GasA,Gd,Y,SBrkr,916,684,0,1600,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1997,Fin,2,460,TA,TA,Y,100,38,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,169000 +1136,30,RM,60,6180,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,BrkSide,Norm,Norm,1Fam,1Story,6,5,1926,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,960,960,GasA,TA,N,SBrkr,986,0,0,986,0,0,1,0,2,1,TA,5,Typ,1,Gd,Detchd,1926,Unf,1,180,TA,TA,Y,0,128,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,102000 +1137,50,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1.5Fin,6,5,1950,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,280,Unf,0,752,1032,GasA,TA,Y,FuseA,1032,220,0,1252,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1950,Unf,1,288,TA,TA,Y,0,0,96,0,0,0,NA,NA,NA,0,4,2008,WD,Abnorml,119000 +1138,50,RL,54,6342,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Feedr,Norm,1Fam,1.5Fin,5,8,1875,1996,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,TA,No,Unf,0,Unf,0,780,780,GasA,Gd,N,SBrkr,780,240,0,1020,0,0,1,0,2,1,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,176,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,94000 +1139,20,RL,NA,9819,Pave,NA,IR1,Lvl,AllPub,Inside,Mod,Mitchel,Norm,Norm,1Fam,1Story,6,5,1977,1977,Gable,CompShg,Plywood,ImStucc,None,0,TA,TA,PConc,TA,TA,Gd,ALQ,1567,Unf,0,0,1567,GasA,TA,Y,SBrkr,1567,0,0,1567,1,0,2,0,2,1,Gd,5,Typ,2,TA,Attchd,1977,RFn,2,714,TA,TA,Y,264,32,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,196000 +1140,30,RL,98,8731,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,5,5,1920,1950,Gable,CompShg,Stucco,Stucco,None,0,TA,Fa,BrkTil,TA,TA,No,BLQ,645,Unf,0,270,915,GasA,TA,Y,SBrkr,1167,0,0,1167,0,0,1,0,3,1,TA,6,Maj1,1,Gd,Detchd,1972,Unf,2,495,TA,TA,Y,0,0,216,0,126,0,NA,NA,NA,0,5,2007,WD,Normal,144000 +1141,20,RL,60,7350,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1951,1951,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,Mn,ALQ,852,Unf,0,100,952,GasA,TA,Y,SBrkr,952,0,0,952,1,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1988,Unf,2,840,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2008,COD,Abnorml,139000 +1142,60,RL,NA,10304,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NWAmes,PosN,Norm,1Fam,2Story,5,7,1976,1976,Gable,CompShg,Plywood,Plywood,BrkFace,44,TA,Gd,CBlock,TA,TA,No,ALQ,381,Unf,0,399,780,GasA,Ex,Y,SBrkr,1088,780,0,1868,1,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1976,Unf,2,484,TA,TA,Y,448,96,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal,197500 +1143,60,RL,77,9965,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,2006,2007,Hip,CompShg,VinylSd,VinylSd,Stone,340,Gd,TA,PConc,Ex,TA,Gd,GLQ,1150,Unf,0,316,1466,GasA,Ex,Y,SBrkr,1466,1362,0,2828,1,0,3,0,4,1,Gd,11,Typ,1,TA,BuiltIn,2006,RFn,3,1052,TA,TA,Y,125,144,0,0,0,0,NA,NA,NA,0,4,2007,New,Partial,424870 +1144,20,RL,NA,9000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,3,1959,1959,Gable,CompShg,Wd Sdng,Plywood,None,0,TA,TA,CBlock,TA,TA,No,GLQ,288,Unf,0,718,1006,GasA,TA,Y,SBrkr,1006,0,0,1006,0,0,1,0,3,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,24,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,80000 +1145,190,RL,60,12180,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,2fmCon,1.5Fin,4,4,1941,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Fa,BrkTil,Gd,TA,No,BLQ,348,Unf,0,324,672,Grav,Fa,N,FuseA,672,252,0,924,1,0,1,0,2,1,Fa,5,Typ,0,NA,Detchd,1941,Unf,1,280,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,7,2010,WD,Normal,80000 +1146,50,RM,52,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,6,1928,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,1042,1042,GasA,Ex,Y,SBrkr,1042,534,0,1576,0,0,1,0,3,1,TA,8,Typ,1,Gd,Detchd,1928,Unf,1,225,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2006,WD,Family,149000 +1147,20,RL,NA,11200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,6,5,1985,1985,Gable,CompShg,Wd Sdng,Wd Shng,BrkFace,85,Gd,TA,CBlock,Gd,TA,No,GLQ,1258,Unf,0,40,1298,GasA,TA,Y,SBrkr,1298,0,0,1298,1,0,2,0,3,1,Gd,5,Typ,1,TA,Attchd,1985,Unf,2,403,TA,TA,Y,165,26,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,180000 +1148,70,RL,75,12000,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,7,7,1941,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,275,Unf,0,429,704,GasA,Ex,Y,SBrkr,860,704,0,1564,0,0,1,1,3,1,Fa,7,Typ,1,Gd,Attchd,1941,Unf,1,234,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,174500 +1149,50,RM,NA,5700,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,7,7,1926,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,572,572,GasA,TA,Y,SBrkr,572,539,0,1111,0,0,1,0,2,1,TA,5,Typ,1,Gd,Detchd,1982,Unf,1,288,TA,TA,Y,0,0,176,0,0,0,NA,NA,NA,0,8,2008,WD,Normal,116900 +1150,70,RM,50,9000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,2Story,7,9,1920,1988,Hip,CompShg,VinylSd,VinylSd,None,0,TA,Gd,PConc,TA,TA,No,ALQ,624,Unf,0,26,650,GasA,Ex,Y,SBrkr,832,650,0,1482,0,1,1,0,3,1,TA,7,Typ,0,NA,Detchd,1930,Unf,2,324,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,143000 +1151,20,RL,57,8280,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,5,1950,1950,Gable,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,932,932,GasA,Ex,Y,FuseA,932,0,0,932,0,0,1,0,2,1,Gd,4,Typ,1,Gd,Attchd,1950,Unf,1,306,TA,TA,Y,0,0,214,0,0,0,NA,GdPrv,NA,0,11,2007,WD,Normal,124000 +1152,20,RL,134,17755,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,4,1959,1959,Gable,CompShg,HdBoard,Plywood,BrkFace,132,TA,TA,CBlock,TA,TA,No,BLQ,176,Unf,0,1290,1466,GasA,TA,Y,SBrkr,1466,0,0,1466,0,0,1,1,3,1,Fa,6,Typ,2,Gd,Attchd,1959,Fin,2,528,TA,TA,Y,0,140,0,0,100,0,NA,NA,NA,0,11,2006,WD,Normal,149900 +1153,20,RL,90,14115,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,6,7,1956,2004,Gable,CompShg,Stone,Stone,None,0,TA,TA,PConc,TA,TA,No,ALQ,296,GLQ,547,230,1073,GasA,Ex,Y,SBrkr,1811,0,0,1811,0,0,1,0,2,1,Ex,6,Typ,1,Gd,Attchd,1956,Fin,2,470,TA,TA,Y,0,0,280,0,0,0,NA,NA,NA,0,7,2006,WD,Abnorml,230000 +1154,30,RM,NA,5890,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,6,8,1930,2007,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,Gd,BrkTil,TA,TA,Av,ALQ,538,Unf,0,278,816,GasA,Ex,Y,SBrkr,816,0,0,816,0,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,2002,Unf,1,432,TA,TA,Y,0,0,96,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,120500 +1155,60,RL,NA,13700,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,2Story,7,6,1965,1988,Gable,CompShg,VinylSd,VinylSd,Stone,288,TA,TA,CBlock,TA,TA,Gd,ALQ,454,Unf,0,410,864,GasA,TA,Y,SBrkr,902,918,0,1820,0,0,1,2,4,1,Gd,8,Typ,2,Gd,Attchd,1965,Unf,2,492,TA,TA,Y,60,84,0,0,273,0,NA,GdPrv,NA,0,5,2008,WD,Normal,201800 +1156,20,RL,90,10768,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Veenker,Norm,Norm,1Fam,1Story,5,8,1976,2004,Gable,CompShg,Plywood,Plywood,None,0,Gd,Gd,CBlock,Gd,TA,Gd,ALQ,1157,Unf,0,280,1437,GasA,TA,Y,SBrkr,1437,0,0,1437,1,0,2,0,3,1,Gd,6,Typ,1,Fa,Attchd,1976,RFn,2,528,TA,TA,Y,0,21,0,0,180,0,NA,NA,NA,0,7,2007,WD,Normal,218000 +1157,80,RL,85,9350,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,5,8,1965,1999,Gable,CompShg,BrkFace,BrkFace,None,0,TA,Gd,PConc,TA,TA,Gd,ALQ,633,Unf,0,586,1219,GasA,Gd,Y,SBrkr,1265,0,0,1265,0,1,2,0,3,1,Gd,6,Typ,1,Gd,Attchd,1965,RFn,2,502,TA,TA,Y,0,92,0,96,0,0,NA,MnPrv,NA,0,10,2008,WD,Normal,179900 +1158,120,RL,34,5001,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,Twnhs,1Story,7,5,2007,2008,Gable,CompShg,VinylSd,VinylSd,Stone,166,Gd,TA,PConc,Gd,TA,No,GLQ,904,Unf,0,410,1314,GasA,Ex,Y,SBrkr,1314,0,0,1314,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2008,RFn,2,626,TA,TA,Y,172,62,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,230000 +1159,20,RL,92,11932,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Somerst,Feedr,Norm,1Fam,1Story,8,5,2007,2008,Gable,CompShg,VinylSd,VinylSd,Stone,186,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1580,1580,GasA,Ex,Y,SBrkr,1580,0,0,1580,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2008,RFn,3,830,TA,TA,Y,0,24,0,0,0,0,NA,NA,NA,0,6,2008,ConLD,Partial,235128 +1160,60,RL,76,9120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,6,6,1974,1974,Hip,CompShg,HdBoard,HdBoard,BrkFace,270,Gd,TA,CBlock,TA,TA,No,ALQ,442,Unf,0,459,901,GasA,TA,Y,SBrkr,943,933,0,1876,0,0,2,1,4,1,Gd,8,Typ,1,TA,Attchd,1974,RFn,2,540,Gd,TA,Y,0,69,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,185000 +1161,160,RL,24,2280,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NPkVill,Norm,Norm,Twnhs,2Story,6,5,1978,1978,Gable,CompShg,Plywood,Brk Cmn,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,311,Unf,0,544,855,GasA,Fa,Y,SBrkr,855,601,0,1456,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1978,Unf,2,440,TA,TA,Y,26,0,0,0,0,0,NA,NA,NA,0,7,2010,WD,Normal,146000 +1162,20,RL,NA,14778,Pave,NA,IR1,Low,AllPub,CulDSac,Gtl,Crawfor,PosN,Norm,1Fam,1Story,6,7,1954,2006,Hip,CompShg,HdBoard,HdBoard,BrkFace,72,Gd,TA,CBlock,TA,TA,No,BLQ,728,Unf,0,568,1296,GasA,Ex,Y,SBrkr,1640,0,0,1640,1,0,1,0,3,1,Gd,7,Typ,1,Gd,Detchd,1993,Unf,2,924,TA,TA,Y,108,0,0,216,0,0,NA,NA,NA,0,11,2008,WD,Normal,224000 +1163,20,RL,109,8724,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1968,1968,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,Gd,TA,No,BLQ,492,Unf,0,402,894,GasA,Gd,Y,SBrkr,894,0,0,894,0,0,1,0,3,1,TA,5,Typ,1,Po,Attchd,1968,Fin,2,450,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,129000 +1164,90,RL,60,12900,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Feedr,Norm,Duplex,SFoyer,4,4,1969,1969,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,Av,GLQ,1198,Unf,0,0,1198,GasA,TA,Y,SBrkr,1258,0,0,1258,2,0,0,2,0,2,TA,6,Typ,0,NA,CarPort,1969,Unf,2,400,Fa,TA,Y,120,0,0,0,0,0,NA,NA,NA,0,1,2008,WD,Alloca,108959 +1165,80,RL,NA,16157,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,Veenker,Feedr,Norm,1Fam,SLvl,5,7,1978,1978,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,PConc,Gd,TA,Gd,ALQ,680,Rec,391,289,1360,GasA,Ex,Y,SBrkr,1432,0,0,1432,1,0,1,1,2,1,Gd,5,Typ,1,TA,Attchd,1978,Unf,2,588,TA,TA,Y,168,180,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,194000 +1166,20,RL,79,9541,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,7,5,2009,2009,Gable,CompShg,VinylSd,VinylSd,Stone,268,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1502,1502,GasA,Ex,Y,SBrkr,1502,0,0,1502,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2009,RFn,2,644,TA,TA,Y,0,114,0,0,0,0,NA,NA,NA,0,9,2009,New,Partial,233170 +1167,20,RL,64,10475,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,Stone,72,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1694,1694,GasA,Ex,Y,SBrkr,1694,0,0,1694,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2008,RFn,3,776,TA,TA,Y,160,33,0,0,0,0,NA,NA,NA,0,2,2010,WD,Normal,245350 +1168,60,RL,58,10852,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,RRAn,Norm,1Fam,2Story,6,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,GLQ,786,Unf,0,173,959,GasA,Ex,Y,SBrkr,959,712,0,1671,1,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,2000,Fin,2,472,TA,TA,Y,0,38,0,0,0,0,NA,NA,NA,0,2,2006,WD,Normal,173000 +1169,70,RL,120,13728,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,2Story,6,7,1935,1986,Hip,CompShg,Stucco,Stucco,None,0,TA,TA,CBlock,TA,TA,No,Rec,626,Unf,0,501,1127,GasA,Ex,Y,SBrkr,1236,872,0,2108,0,0,2,0,4,1,Gd,7,Typ,2,TA,Basment,1935,Unf,2,540,TA,TA,Y,0,0,0,0,90,0,NA,NA,NA,0,7,2008,WD,Normal,235000 +1170,60,RL,118,35760,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NoRidge,Norm,Norm,1Fam,2Story,10,5,1995,1996,Hip,CompShg,HdBoard,HdBoard,BrkFace,1378,Gd,Gd,PConc,Ex,TA,Gd,GLQ,1387,Unf,0,543,1930,GasA,Ex,Y,SBrkr,1831,1796,0,3627,1,0,3,1,4,1,Gd,10,Typ,1,TA,Attchd,1995,Fin,3,807,TA,TA,Y,361,76,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,625000 +1171,80,RL,76,9880,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,SLvl,6,6,1977,1977,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,Av,ALQ,522,Unf,0,574,1096,GasA,TA,Y,SBrkr,1118,0,0,1118,1,0,1,0,3,1,TA,6,Typ,1,Po,Attchd,1977,Fin,1,358,TA,TA,Y,203,0,0,0,0,576,Gd,GdPrv,NA,0,7,2008,WD,Normal,171000 +1172,20,RL,76,9120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1958,1958,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,ALQ,662,Unf,0,599,1261,GasA,Ex,Y,SBrkr,1261,0,0,1261,1,0,1,0,3,1,TA,6,Typ,1,TA,Attchd,1958,RFn,2,433,TA,TA,Y,0,0,0,0,288,0,NA,NA,Shed,1400,11,2008,WD,Normal,163000 +1173,160,FV,35,4017,Pave,Pave,IR1,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,7,5,2006,2007,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,625,625,GasA,Ex,Y,SBrkr,625,625,0,1250,0,0,2,1,2,1,Gd,5,Typ,0,NA,Detchd,2006,Fin,2,625,TA,TA,Y,0,54,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal,171900 +1174,50,RL,138,18030,Pave,NA,IR1,Bnk,AllPub,Inside,Gtl,ClearCr,Norm,Norm,1Fam,1.5Fin,5,6,1946,1994,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,152,BLQ,469,977,1598,GasA,TA,Y,SBrkr,1636,971,479,3086,0,0,3,0,3,1,Ex,12,Maj1,1,Gd,NA,NA,NA,0,0,NA,NA,Y,122,0,0,0,0,0,NA,MnPrv,NA,0,3,2007,WD,Normal,200500 +1175,70,RL,80,16560,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,6,8,1932,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Gd,TA,No,Rec,503,Unf,0,449,952,GasA,TA,Y,SBrkr,1170,1175,0,2345,0,0,2,1,4,1,TA,9,Typ,1,Gd,Detchd,1932,Unf,2,360,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,239000 +1176,50,RL,85,10678,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,1.5Fin,8,5,1992,2000,Hip,CompShg,HdBoard,HdBoard,BrkFace,337,Gd,TA,PConc,Gd,TA,No,GLQ,700,Unf,0,983,1683,GasA,Ex,Y,SBrkr,2129,743,0,2872,0,0,2,1,4,1,Gd,9,Typ,1,TA,Attchd,1992,Fin,2,541,TA,TA,Y,0,33,0,0,0,0,NA,NA,NA,0,4,2007,WD,Normal,285000 +1177,20,RL,37,6951,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,5,1984,1985,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,658,Unf,0,218,876,GasA,TA,Y,SBrkr,923,0,0,923,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1984,Unf,1,264,TA,TA,Y,362,0,0,0,0,0,NA,MnPrv,NA,0,10,2008,WD,Normal,119500 +1178,50,RM,NA,3950,Pave,Grvl,Reg,Bnk,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1.5Fin,6,8,1926,2004,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,468,Unf,0,350,818,GasA,TA,Y,SBrkr,818,406,0,1224,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1926,Unf,1,210,TA,TA,N,0,0,116,0,0,0,NA,NA,NA,0,12,2009,WD,Normal,115000 +1179,50,RL,54,7681,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,Crawfor,Norm,Norm,1Fam,1.5Fin,5,6,1921,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,731,731,GasA,Ex,Y,SBrkr,820,523,0,1343,0,0,1,1,3,1,TA,7,Typ,1,Gd,Detchd,1921,Unf,1,186,Fa,TA,Y,192,0,102,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,154900 +1180,20,RL,77,8335,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,5,1954,1954,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,Gd,Y,SBrkr,1124,0,0,1124,0,0,1,0,3,1,TA,5,Min2,1,Gd,NA,NA,NA,0,0,NA,NA,N,0,36,190,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,93000 +1181,60,RL,NA,11170,Pave,NA,IR2,Lvl,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,2Story,7,5,1990,1991,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,Wood,Gd,TA,No,LwQ,1216,Unf,0,0,1216,GasA,Ex,Y,SBrkr,1298,1216,0,2514,0,0,2,1,4,1,TA,8,Typ,0,NA,Attchd,1990,Fin,2,693,TA,TA,Y,0,0,0,0,0,0,NA,GdPrv,NA,0,4,2006,WD,Normal,250000 +1182,120,RM,64,5587,Pave,NA,IR1,HLS,AllPub,Inside,Mod,Crawfor,Norm,Norm,TwnhsE,1Story,8,5,2008,2008,Hip,CompShg,CemntBd,CmentBd,Stone,186,Ex,TA,PConc,Ex,TA,Gd,GLQ,1480,Unf,0,120,1600,GasA,Ex,Y,SBrkr,1652,0,0,1652,1,1,2,0,2,1,Gd,5,Typ,1,Gd,Attchd,2008,Fin,2,482,TA,TA,Y,162,53,0,153,0,0,NA,NA,NA,0,11,2008,New,Partial,392500 +1183,60,RL,160,15623,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NoRidge,Norm,Norm,1Fam,2Story,10,5,1996,1996,Hip,CompShg,Wd Sdng,ImStucc,None,0,Gd,TA,PConc,Ex,TA,Av,GLQ,2096,Unf,0,300,2396,GasA,Ex,Y,SBrkr,2411,2065,0,4476,1,0,3,1,4,1,Ex,10,Typ,2,TA,Attchd,1996,Fin,3,813,TA,TA,Y,171,78,0,0,0,555,Ex,MnPrv,NA,0,7,2007,WD,Abnorml,745000 +1184,30,RL,60,10800,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,6,1920,1950,Hip,CompShg,Stucco,Stucco,None,0,TA,TA,BrkTil,TA,TA,No,Rec,821,Unf,0,299,1120,GasA,Ex,Y,SBrkr,1130,0,0,1130,1,0,1,0,2,1,TA,5,Typ,1,Gd,Detchd,1970,Unf,2,720,TA,TA,Y,229,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,120000 +1185,20,RL,50,35133,Grvl,NA,Reg,Lvl,AllPub,Inside,Mod,Timber,Norm,Norm,1Fam,1Story,5,4,1963,1963,Hip,CompShg,MetalSd,MetalSd,BrkFace,226,TA,TA,CBlock,TA,TA,Gd,Rec,1159,Unf,0,413,1572,GasA,Gd,Y,SBrkr,1572,0,0,1572,1,0,1,1,3,1,TA,5,Typ,2,TA,2Types,1963,RFn,3,995,TA,TA,Y,0,263,0,0,263,0,NA,NA,NA,0,5,2007,WD,Normal,186700 +1186,50,RL,60,9738,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,5,7,1924,1950,Gable,CompShg,AsbShng,AsbShng,None,0,TA,Gd,BrkTil,TA,TA,No,BLQ,392,Unf,0,392,784,GasA,Gd,Y,SBrkr,949,272,0,1221,1,0,1,0,4,1,TA,7,Typ,0,NA,Attchd,1965,Unf,1,392,TA,TA,Y,0,0,236,0,0,0,NA,NA,NA,0,3,2006,WD,Normal,104900 +1187,190,RL,107,10615,Pave,NA,IR1,Bnk,AllPub,Corner,Mod,OldTown,Artery,Artery,2fmCon,2Story,3,5,1900,1970,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Fa,TA,Mn,BLQ,440,Unf,0,538,978,GasA,TA,Y,SBrkr,1014,685,0,1699,1,0,2,0,3,2,TA,7,Typ,0,NA,CarPort,1920,Unf,2,420,Fa,Fa,Y,0,74,0,0,0,0,NA,NA,NA,0,8,2009,WD,Abnorml,95000 +1188,20,RL,89,12461,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NoRidge,Norm,Norm,1Fam,1Story,8,5,1994,1995,Gable,CompShg,ImStucc,ImStucc,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,1456,Unf,0,168,1624,GasA,Ex,Y,SBrkr,1624,0,0,1624,1,0,2,0,2,1,Gd,5,Typ,1,Fa,Attchd,1994,RFn,3,757,TA,TA,Y,0,114,192,0,0,0,NA,GdPrv,NA,0,7,2006,WD,Normal,262000 +1189,60,RL,68,8935,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,95,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,831,831,GasA,Ex,Y,SBrkr,831,829,0,1660,0,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2002,RFn,2,493,TA,TA,Y,144,68,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,195000 +1190,60,RL,60,7500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,994,994,GasA,Gd,Y,SBrkr,1028,776,0,1804,0,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1999,Fin,2,442,TA,TA,Y,140,60,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,189000 +1191,190,RL,NA,32463,Pave,NA,Reg,Low,AllPub,Inside,Mod,Mitchel,Norm,Norm,2fmCon,1Story,4,4,1961,1975,Gable,CompShg,MetalSd,MetalSd,Stone,149,TA,Gd,CBlock,TA,TA,Av,BLQ,1159,Unf,0,90,1249,GasA,Ex,Y,SBrkr,1622,0,0,1622,1,0,1,0,3,1,TA,7,Typ,1,TA,2Types,1975,Fin,4,1356,TA,TA,Y,439,0,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal,168000 +1192,160,FV,24,2645,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,2Story,8,5,1999,2000,Gable,CompShg,MetalSd,MetalSd,BrkFace,456,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,776,776,GasA,Ex,Y,SBrkr,764,677,0,1441,0,0,2,1,2,1,Gd,5,Typ,0,NA,Detchd,1999,Unf,2,492,TA,TA,Y,206,0,0,0,0,0,NA,NA,NA,0,11,2007,WD,Normal,174000 +1193,50,RM,60,9600,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,5,8,1925,1994,Gambrel,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,TA,TA,Mn,Unf,0,Unf,0,702,702,GasA,Gd,Y,SBrkr,842,630,0,1472,0,0,1,0,3,1,Gd,6,Typ,0,NA,Detchd,1925,Unf,1,250,TA,Fa,P,0,0,84,0,0,0,NA,GdWo,NA,0,7,2007,WD,Normal,125000 +1194,120,RM,NA,4500,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,Mitchel,Norm,Norm,TwnhsE,1Story,6,5,1999,1999,Hip,CompShg,VinylSd,VinylSd,BrkFace,425,TA,TA,PConc,Ex,TA,No,GLQ,883,Unf,0,341,1224,GasA,Ex,Y,SBrkr,1224,0,0,1224,1,0,2,0,2,1,TA,5,Typ,0,NA,Attchd,1999,Fin,2,402,TA,TA,Y,0,304,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,165000 +1195,60,RL,80,9364,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Sawyer,Norm,Norm,1Fam,2Story,6,7,1969,1969,Gable,CompShg,HdBoard,HdBoard,Stone,143,TA,TA,CBlock,TA,TA,No,ALQ,371,Unf,0,292,663,GasA,TA,Y,SBrkr,663,689,0,1352,0,0,1,1,4,1,TA,7,Typ,0,NA,Attchd,1969,Fin,1,299,TA,TA,Y,379,36,0,0,0,0,NA,MnPrv,NA,0,3,2010,WD,Normal,158000 +1196,60,RL,51,8029,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,728,728,GasA,Ex,Y,SBrkr,728,728,0,1456,0,0,2,1,3,1,Gd,8,Typ,0,NA,Attchd,2005,Fin,2,400,TA,TA,Y,100,24,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,176000 +1197,60,RL,58,14054,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,879,879,GasA,Ex,Y,SBrkr,879,984,0,1863,0,0,2,1,4,1,Gd,9,Typ,1,Gd,BuiltIn,2006,Fin,3,660,TA,TA,Y,100,17,0,0,0,0,NA,NA,NA,0,11,2006,New,Partial,219210 +1198,75,RM,65,8850,Pave,NA,IR1,Bnk,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,2.5Unf,7,6,1916,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,815,815,GasA,Ex,Y,SBrkr,815,875,0,1690,0,0,1,0,3,1,TA,7,Typ,1,Gd,Detchd,1916,Unf,1,225,TA,TA,Y,0,0,330,0,0,0,NA,NA,NA,0,7,2006,ConLw,Normal,144000 +1199,20,RL,70,9100,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1212,1212,GasA,Ex,Y,SBrkr,1212,0,0,1212,0,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2001,RFn,2,573,TA,TA,Y,356,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,178000 +1200,20,RL,75,11235,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,4,5,1963,1979,Gable,CompShg,HdBoard,HdBoard,BrkFace,51,TA,TA,CBlock,TA,TA,No,Rec,547,Unf,0,504,1051,GasA,Gd,Y,SBrkr,1382,0,0,1382,0,0,1,1,3,1,TA,6,Typ,1,Po,Attchd,1974,Unf,2,459,TA,TA,Y,0,82,0,0,0,0,NA,NA,NA,0,10,2006,WD,Normal,148000 +1201,20,RL,71,9353,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,5,1970,1970,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,864,864,GasA,Gd,Y,SBrkr,864,0,0,864,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1972,Unf,1,280,TA,TA,Y,0,0,0,0,0,0,NA,NA,Shed,0,7,2006,Oth,Abnorml,116050 +1202,60,RL,80,10400,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,866,866,GasA,Ex,Y,SBrkr,866,913,0,1779,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,1998,RFn,2,546,TA,TA,Y,198,36,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal,197900 +1203,50,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,5,8,1925,1997,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,884,884,GasA,Ex,Y,SBrkr,884,464,0,1348,1,0,1,0,3,1,TA,5,Typ,1,Fa,Detchd,1960,Unf,1,216,TA,TA,N,0,0,208,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,117000 +1204,20,RL,75,9750,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2000,2001,Gable,CompShg,VinylSd,VinylSd,BrkFace,171,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1630,1630,GasA,Ex,Y,SBrkr,1630,0,0,1630,0,0,2,0,3,1,Gd,6,Typ,1,TA,Attchd,2000,Unf,2,451,TA,TA,Y,74,234,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal,213000 +1205,20,RL,78,10140,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,5,6,1975,1975,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,788,Unf,0,268,1056,GasA,Ex,Y,SBrkr,1074,0,0,1074,1,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1975,RFn,2,495,TA,TA,Y,0,88,0,0,0,0,NA,MnPrv,NA,0,7,2006,WD,Normal,153500 +1206,20,RL,90,14684,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,SawyerW,Norm,Norm,1Fam,1Story,7,7,1990,1991,Hip,CompShg,HdBoard,HdBoard,BrkFace,234,Gd,TA,CBlock,Gd,TA,Mn,ALQ,485,BLQ,177,1496,2158,GasA,Gd,Y,SBrkr,2196,0,0,2196,0,0,2,0,3,1,Gd,7,Typ,1,TA,Attchd,1990,RFn,3,701,TA,TA,Y,84,70,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,271900 +1207,20,RH,NA,8900,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,4,4,1966,1966,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,Rec,1056,Unf,0,0,1056,GasA,TA,Y,SBrkr,1056,0,0,1056,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1966,Unf,1,384,TA,TA,Y,0,42,0,0,0,0,NA,MnPrv,NA,0,11,2006,WD,Normal,107000 +1208,20,RL,70,9135,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,6,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,120,Gd,TA,PConc,Gd,TA,Av,GLQ,340,Unf,0,1342,1682,GasA,Ex,Y,SBrkr,1700,0,0,1700,1,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2003,RFn,2,544,TA,TA,Y,192,23,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,200000 +1209,20,RL,70,7763,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1962,1980,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,Rec,504,BLQ,108,319,931,GasA,TA,Y,SBrkr,1283,0,0,1283,1,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1980,Unf,2,506,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,10,2008,WD,Normal,140000 +1210,20,RL,85,10182,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Somerst,RRNn,Norm,1Fam,1Story,8,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,Stone,420,Gd,TA,PConc,Ex,TA,Mn,GLQ,1220,Unf,0,440,1660,GasA,Ex,Y,SBrkr,1660,0,0,1660,1,0,2,0,3,1,Gd,8,Typ,1,Gd,Attchd,2006,RFn,2,500,TA,TA,Y,322,50,0,0,0,0,NA,NA,NA,0,5,2006,New,Partial,290000 +1211,60,RL,70,11218,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,2Story,6,5,1992,1992,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1055,1055,GasA,Ex,Y,SBrkr,1055,790,0,1845,0,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1992,RFn,2,462,TA,TA,Y,635,104,0,0,0,0,NA,GdPrv,Shed,400,5,2010,WD,Normal,189000 +1212,50,RL,152,12134,Pave,NA,IR1,Bnk,AllPub,Inside,Mod,Gilbert,Norm,Norm,1Fam,1.5Fin,8,7,1988,2005,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,TA,Wood,Gd,TA,Av,GLQ,427,Unf,0,132,559,GasA,Gd,Y,SBrkr,1080,672,0,1752,0,0,2,0,4,1,TA,8,Typ,0,NA,Basment,1988,RFn,2,492,TA,TA,Y,325,12,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,164000 +1213,30,RL,50,9340,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,6,1941,1950,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,344,Unf,0,328,672,GasA,TA,Y,SBrkr,672,0,0,672,1,0,1,0,2,1,TA,4,Typ,0,NA,Attchd,1941,Unf,1,234,TA,TA,N,0,113,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal,113000 +1214,80,RL,NA,10246,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,Norm,Norm,1Fam,SLvl,4,9,1965,2001,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,Gd,Av,GLQ,648,Unf,0,0,648,GasA,Ex,Y,SBrkr,960,0,0,960,1,1,0,0,0,1,TA,3,Typ,0,NA,Attchd,1965,Unf,1,364,TA,TA,Y,88,0,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,145000 +1215,85,RL,69,10205,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SFoyer,5,5,1962,1962,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,Av,BLQ,784,Unf,0,141,925,GasA,TA,Y,SBrkr,999,0,0,999,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1962,Unf,1,300,TA,TA,Y,150,72,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,134500 +1216,20,RL,99,7094,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,5,1966,1966,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,180,LwQ,374,340,894,GasA,TA,Y,SBrkr,894,0,0,894,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1966,RFn,1,384,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,5,2007,WD,Normal,125000 +1217,90,RM,68,8930,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,RRAe,Norm,Duplex,1.5Fin,6,5,1978,1978,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,1318,584,0,1902,0,0,2,0,4,2,TA,8,Typ,0,NA,Attchd,1978,Unf,2,539,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,112000 +1218,20,FV,72,8640,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2009,2009,Gable,CompShg,CemntBd,CmentBd,Stone,72,Gd,TA,PConc,Gd,TA,Mn,GLQ,936,Unf,0,364,1300,GasA,Ex,Y,SBrkr,1314,0,0,1314,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2009,RFn,2,552,TA,TA,Y,135,112,0,0,0,0,NA,NA,NA,0,9,2009,New,Partial,229456 +1219,50,RM,52,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,4,5,1947,1950,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,Gd,N,SBrkr,672,240,0,912,0,0,1,0,2,1,TA,3,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,80500 +1220,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,5,1971,1971,Gable,CompShg,CemntBd,CmentBd,BrkFace,236,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,672,672,GasA,TA,Y,SBrkr,672,546,0,1218,0,0,1,1,3,1,TA,7,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,201,0,0,0,0,0,NA,NA,NA,0,4,2006,WD,Abnorml,91500 +1221,20,RL,66,7800,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1964,1964,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,312,LwQ,600,0,912,GasA,TA,Y,SBrkr,912,0,0,912,0,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1964,Unf,1,288,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,11,2006,WD,Abnorml,115000 +1222,20,RL,55,8250,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Feedr,Norm,1Fam,1Story,5,5,1968,1968,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,BLQ,250,LwQ,492,210,952,GasA,Ex,Y,SBrkr,1211,0,0,1211,0,0,1,0,3,1,TA,5,Typ,1,TA,Attchd,1968,Unf,1,322,TA,TA,Y,0,63,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal,134000 +1223,50,RL,78,10496,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Artery,Norm,1Fam,1.5Fin,6,6,1949,1950,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,320,TA,TA,CBlock,TA,TA,Mn,Rec,196,Unf,0,844,1040,GasA,Ex,Y,SBrkr,1168,678,0,1846,0,0,2,0,3,1,TA,7,Typ,1,Gd,Attchd,1949,Unf,1,315,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,1,2007,WD,Normal,143000 +1224,20,RL,89,10680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,3,1951,1951,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,44,TA,TA,CBlock,TA,Fa,No,LwQ,756,Unf,0,1380,2136,GasA,TA,N,FuseA,2136,0,0,2136,0,0,2,0,4,1,TA,7,Mod,0,NA,Detchd,1951,Unf,2,528,TA,TA,Y,0,30,0,0,0,0,NA,MnPrv,NA,0,10,2006,WD,Normal,137900 +1225,60,RL,60,15384,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,RRAn,Norm,1Fam,2Story,7,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Av,GLQ,724,Unf,0,64,788,GasA,Ex,Y,SBrkr,788,702,0,1490,1,0,2,1,3,1,Gd,8,Typ,1,Gd,Attchd,2004,Fin,2,388,TA,TA,Y,100,75,0,0,0,0,NA,NA,NA,0,2,2008,WD,Normal,184000 +1226,80,RL,65,10482,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,6,8,1958,1958,Hip,CompShg,VinylSd,VinylSd,BrkFace,63,TA,Gd,CBlock,TA,TA,Av,GLQ,507,Unf,0,81,588,GasA,Ex,Y,SBrkr,1138,0,0,1138,0,1,1,0,3,1,TA,6,Typ,0,NA,Attchd,1958,RFn,1,264,TA,TA,Y,224,0,0,0,0,0,NA,MnWw,NA,0,6,2007,WD,Normal,145000 +1227,60,RL,86,14598,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Somerst,Feedr,Norm,1Fam,2Story,6,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,74,Gd,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,894,894,GasA,Ex,Y,SBrkr,894,1039,0,1933,0,0,2,1,4,1,Gd,9,Typ,1,Gd,BuiltIn,2007,Fin,3,668,TA,TA,Y,100,18,0,0,0,0,NA,NA,NA,0,1,2008,WD,Normal,214000 +1228,20,RL,72,8872,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,8,1965,2008,Gable,CompShg,VinylSd,VinylSd,BrkFace,300,TA,TA,CBlock,TA,TA,No,ALQ,595,Unf,0,317,912,GasA,Ex,Y,SBrkr,912,0,0,912,1,0,1,0,2,1,Gd,5,Typ,0,NA,Detchd,1992,Unf,2,576,TA,TA,Y,0,240,0,0,0,0,NA,NA,NA,0,12,2008,WD,Normal,147000 +1229,120,RL,65,8769,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,9,5,2008,2008,Hip,CompShg,MetalSd,MetalSd,BrkFace,766,Ex,TA,PConc,Ex,TA,No,GLQ,1540,Unf,0,162,1702,GasA,Ex,Y,SBrkr,1702,0,0,1702,1,0,1,1,1,1,Ex,7,Typ,1,Gd,Attchd,2008,Fin,3,1052,TA,TA,Y,0,72,0,0,224,0,NA,NA,NA,0,10,2008,New,Partial,367294 +1230,80,RL,70,7910,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,5,5,1960,1960,Hip,CompShg,BrkFace,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,ALQ,666,Unf,0,409,1075,GasA,Gd,Y,SBrkr,1507,0,0,1507,0,0,2,0,4,1,TA,7,Maj1,0,NA,Basment,1960,Unf,1,404,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,8,2008,WD,Normal,127000 +1231,90,RL,NA,18890,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Sawyer,Feedr,RRAe,Duplex,1.5Fin,5,5,1977,1977,Shed,CompShg,Plywood,Plywood,None,1,TA,TA,CBlock,Gd,TA,No,GLQ,498,Rec,211,652,1361,GasA,Ex,Y,SBrkr,1361,1259,0,2620,0,0,2,2,4,2,TA,12,Typ,1,TA,BuiltIn,1977,RFn,2,600,TA,TA,N,155,24,145,0,0,0,NA,NA,Gar2,8300,8,2007,WD,Normal,190000 +1232,90,RL,70,7728,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,Duplex,SLvl,5,6,1962,1962,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,120,TA,TA,CBlock,TA,TA,Av,ALQ,803,Unf,0,303,1106,GasA,TA,Y,SBrkr,1190,0,0,1190,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1962,Unf,2,540,TA,TA,Y,0,18,0,0,0,0,NA,GdWo,NA,0,5,2006,WD,Normal,132500 +1233,90,RL,70,9842,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NAmes,Norm,Norm,Duplex,1Story,4,5,1962,1962,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,GasA,TA,Y,SBrkr,1224,0,0,1224,0,0,2,0,2,2,TA,6,Typ,0,NA,CarPort,1962,Unf,2,462,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal,101800 +1234,20,RL,NA,12160,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1959,1959,Hip,CompShg,Plywood,Plywood,BrkFace,180,TA,TA,CBlock,TA,TA,No,Rec,1000,Unf,0,188,1188,GasA,Fa,Y,SBrkr,1188,0,0,1188,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1959,RFn,2,531,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,5,2010,COD,Abnorml,142000 +1235,70,RH,55,8525,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,2Story,5,6,1911,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,Av,Unf,0,Unf,0,940,940,GasA,TA,N,FuseA,1024,940,0,1964,0,0,1,1,4,1,TA,7,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,192,0,0,0,0,NA,NA,NA,0,11,2008,WD,Abnorml,130000 +1236,70,RL,96,13132,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,5,5,1914,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Gd,TA,Mn,Unf,0,Unf,0,747,747,GasA,Gd,Y,FuseF,892,892,0,1784,0,0,1,1,4,1,TA,9,Typ,0,NA,Detchd,1914,Unf,1,180,Fa,Fa,N,203,40,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,138887 +1237,160,RL,36,2628,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,Twnhs,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,Wd Shng,Stone,106,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,764,764,GasA,Ex,Y,SBrkr,764,862,0,1626,0,0,2,1,2,1,Gd,6,Typ,0,NA,BuiltIn,2003,RFn,2,474,TA,TA,Y,0,27,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,175500 +1238,60,RL,41,12393,Pave,NA,IR2,Lvl,AllPub,FR2,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,847,847,GasA,Ex,Y,SBrkr,847,1101,0,1948,0,0,2,1,4,1,Gd,8,Typ,1,Gd,BuiltIn,2004,Fin,2,434,TA,TA,Y,100,48,0,0,0,0,NA,NA,NA,0,9,2006,WD,Normal,195000 +1239,20,RL,63,13072,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,RRAe,Norm,1Fam,1Story,6,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1141,1141,GasA,Ex,Y,SBrkr,1141,0,0,1141,0,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,2005,Unf,2,484,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2006,WD,Abnorml,142500 +1240,20,RL,64,9037,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,32,Gd,TA,PConc,Gd,TA,Av,GLQ,428,Unf,0,1048,1476,GasA,Ex,Y,SBrkr,1484,0,0,1484,0,0,2,0,2,1,Ex,6,Typ,1,Gd,Attchd,2006,RFn,2,472,TA,TA,Y,120,33,0,0,0,0,NA,NA,NA,0,12,2007,WD,Normal,265900 +1241,60,RL,65,8158,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,252,Gd,TA,PConc,Gd,TA,No,GLQ,550,Unf,0,334,884,GasA,Ex,Y,SBrkr,884,884,0,1768,1,0,2,1,3,1,Gd,8,Typ,0,NA,Attchd,2003,RFn,2,543,TA,TA,Y,0,63,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,224900 +1242,20,RL,83,9849,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,6,2007,2007,Hip,CompShg,VinylSd,VinylSd,Stone,0,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1689,1689,GasA,Ex,Y,SBrkr,1689,0,0,1689,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2007,RFn,3,954,TA,TA,Y,0,56,0,0,0,0,NA,NA,NA,0,6,2007,New,Partial,248328 +1243,85,RL,85,10625,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,SFoyer,7,6,1974,1974,Gable,CompShg,Plywood,Plywood,BrkFace,81,TA,TA,CBlock,Gd,TA,Gd,GLQ,885,LwQ,168,0,1053,GasA,TA,Y,SBrkr,1173,0,0,1173,1,0,2,0,3,1,Gd,6,Typ,2,TA,Attchd,1974,RFn,2,528,TA,TA,Y,0,120,0,0,0,0,NA,MnPrv,NA,0,1,2010,WD,Family,170000 +1244,20,RL,107,13891,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,1Story,10,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,NA,NA,Ex,TA,PConc,Ex,Gd,Gd,GLQ,1386,Unf,0,690,2076,GasA,Ex,Y,SBrkr,2076,0,0,2076,1,0,2,1,2,1,Ex,7,Typ,1,Gd,Attchd,2006,Fin,3,850,TA,TA,Y,216,229,0,0,0,0,NA,NA,NA,0,9,2006,New,Partial,465000 +1245,70,RL,NA,11435,Pave,NA,IR1,HLS,AllPub,Corner,Mod,Crawfor,Norm,Norm,1Fam,2Story,8,7,1929,1950,Gable,CompShg,BrkFace,Stucco,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,792,792,GasA,Fa,Y,SBrkr,792,725,0,1517,0,0,1,0,3,1,Gd,7,Typ,2,Gd,Detchd,1931,Unf,2,400,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,230000 +1246,80,RL,78,12090,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,SLvl,6,7,1984,2003,Hip,CompShg,VinylSd,VinylSd,BrkFace,74,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,585,585,GasA,Ex,Y,SBrkr,1140,728,0,1868,0,0,3,1,3,1,TA,7,Typ,1,TA,BuiltIn,1984,Fin,2,477,TA,TA,Y,268,112,0,0,147,0,NA,NA,NA,0,1,2007,WD,Abnorml,178000 +1247,60,FV,65,8125,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,756,756,GasA,Ex,Y,SBrkr,756,797,0,1553,0,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2005,RFn,2,615,TA,TA,Y,0,45,0,0,0,0,NA,NA,NA,0,3,2006,New,Partial,186500 +1248,80,RL,NA,12328,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,SLvl,6,5,1976,1976,Gable,CompShg,HdBoard,HdBoard,BrkFace,335,TA,TA,CBlock,TA,TA,Av,GLQ,539,Unf,0,473,1012,GasA,TA,Y,SBrkr,1034,0,0,1034,1,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1976,Unf,3,888,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,169900 +1249,75,RM,60,9600,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2.5Unf,6,5,1917,1950,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,BrkTil,Gd,TA,No,Rec,319,Unf,0,416,735,OthW,Fa,N,SBrkr,1134,924,0,2058,0,0,1,1,3,1,TA,8,Typ,1,Gd,Detchd,1950,Unf,2,396,Fa,Fa,P,0,0,259,0,0,0,NA,NA,NA,0,4,2008,WD,Normal,129500 +1250,20,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1950,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,534,Rec,96,246,876,GasA,TA,Y,SBrkr,988,0,0,988,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1950,Unf,1,276,TA,TA,Y,0,80,0,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,119000 +1251,20,RL,93,11160,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,7,5,1968,1968,Hip,CompShg,BrkFace,BrkFace,None,0,Gd,TA,CBlock,TA,TA,No,ALQ,1065,Unf,0,1045,2110,GasA,Ex,Y,SBrkr,2110,0,0,2110,1,0,2,1,3,1,Ex,8,Typ,2,TA,Attchd,1968,Fin,2,522,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,244000 +1252,120,RL,NA,3136,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,7,5,2003,2003,Gable,CompShg,VinylSd,Wd Shng,Stone,163,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1405,1405,GasA,Ex,Y,SBrkr,1405,0,0,1405,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2003,RFn,2,478,TA,TA,Y,148,36,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal,171750 +1253,20,RL,62,9858,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,6,1968,1968,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,BLQ,510,Unf,0,354,864,GasA,TA,Y,SBrkr,874,0,0,874,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1968,RFn,1,288,TA,TA,Y,33,0,0,0,0,0,NA,GdWo,Shed,600,11,2009,WD,Normal,130000 +1254,60,RL,NA,17542,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Veenker,Norm,Norm,1Fam,2Story,7,7,1974,2003,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,Gd,TA,CBlock,TA,TA,Gd,LwQ,125,ALQ,1031,36,1192,GasA,TA,Y,SBrkr,1516,651,0,2167,1,0,2,1,3,1,Gd,9,Typ,2,Gd,Attchd,1974,RFn,2,518,TA,TA,Y,220,47,0,0,0,0,NA,MnPrv,NA,0,7,2007,WD,Normal,294000 +1255,60,RL,60,6931,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,2Story,7,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,Stone,92,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,746,746,GasA,Ex,Y,SBrkr,760,896,0,1656,0,0,2,1,3,1,Gd,7,Typ,1,Gd,BuiltIn,2003,Fin,2,397,TA,TA,Y,178,128,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,165400 +1256,50,RM,52,6240,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,6,1931,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,Fa,No,LwQ,425,Unf,0,459,884,GasA,TA,Y,FuseA,959,408,0,1367,0,0,1,0,3,1,TA,6,Typ,1,Gd,Detchd,1978,Unf,1,560,TA,TA,Y,0,0,0,0,120,0,NA,NA,NA,0,11,2007,WD,Normal,127500 +1257,20,RL,91,14303,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NoRidge,Norm,Norm,1Fam,1Story,8,5,1994,1994,Hip,CompShg,HdBoard,HdBoard,BrkFace,554,Gd,TA,PConc,Gd,TA,Gd,GLQ,1314,Unf,0,672,1986,GasA,Ex,Y,SBrkr,1987,0,0,1987,1,0,2,0,2,1,Gd,7,Typ,1,TA,Attchd,1994,Fin,2,691,TA,TA,Y,262,36,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal,301500 +1258,30,RL,56,4060,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Edwards,Feedr,Norm,1Fam,1Story,5,8,1922,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,Fa,TA,No,Unf,0,Unf,0,864,864,GasA,Ex,Y,SBrkr,864,0,0,864,0,0,1,0,2,1,TA,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,96,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,99900 +1259,80,RL,59,9587,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,SLvl,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,Stone,182,Gd,TA,PConc,Gd,TA,Gd,GLQ,655,Unf,0,201,856,GasA,Ex,Y,SBrkr,1166,0,0,1166,1,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,2005,Fin,2,400,TA,TA,Y,212,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,190000 +1260,20,RL,65,9750,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,8,1969,1969,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,602,LwQ,438,14,1054,GasA,Gd,Y,SBrkr,1054,0,0,1054,1,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1969,Unf,2,460,TA,TA,Y,180,0,0,0,80,0,NA,NA,NA,0,7,2008,WD,Normal,151000 +1261,60,RL,NA,24682,Pave,NA,IR3,Lvl,AllPub,CulDSac,Gtl,Gilbert,RRAn,Norm,1Fam,2Story,6,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,841,841,GasA,Ex,Y,SBrkr,892,783,0,1675,0,0,2,1,3,1,TA,7,Typ,1,TA,BuiltIn,1999,Fin,2,502,TA,TA,Y,0,103,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,181000 +1262,20,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1956,1956,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Rec,504,Unf,0,546,1050,GasA,Gd,Y,SBrkr,1050,0,0,1050,0,0,1,0,2,1,TA,5,Typ,0,NA,Attchd,1956,Unf,1,338,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,128900 +1263,50,RL,NA,11250,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,ClearCr,Norm,Norm,1Fam,1.5Fin,4,5,1957,1989,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Av,Unf,0,Unf,0,1104,1104,GasA,Ex,Y,FuseA,1104,684,0,1788,1,0,1,0,5,1,TA,8,Min2,2,TA,Attchd,1957,Unf,1,304,TA,TA,Y,120,0,0,0,0,0,NA,NA,NA,0,11,2009,WD,Normal,161500 +1264,70,RL,60,13515,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,2Story,6,6,1919,1950,Gambrel,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,764,764,GasA,Ex,Y,FuseA,1060,764,0,1824,0,0,1,0,3,1,TA,8,Typ,1,Gd,Detchd,1940,Unf,2,520,TA,TA,N,0,0,126,0,0,0,NA,GdPrv,NA,0,7,2007,WD,Normal,180500 +1265,120,RH,34,4060,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,TwnhsE,1Story,6,5,1998,1999,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,266,Unf,0,1139,1405,GasA,Ex,Y,SBrkr,1337,0,0,1337,1,0,2,0,2,1,Gd,5,Typ,0,NA,Attchd,1998,Fin,2,511,TA,TA,Y,144,68,0,0,0,0,NA,NA,NA,0,8,2008,COD,Abnorml,181000 +1266,160,FV,35,3735,Pave,NA,Reg,Lvl,AllPub,FR3,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,7,5,1999,1999,Hip,CompShg,MetalSd,MetalSd,BrkFace,218,Gd,TA,PConc,Gd,TA,No,GLQ,450,Unf,0,241,691,GasA,Ex,Y,SBrkr,713,739,0,1452,1,0,2,1,3,1,Gd,6,Typ,0,NA,Detchd,1999,Unf,2,506,TA,TA,Y,0,34,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal,183900 +1267,190,RM,60,10120,Pave,NA,IR1,Bnk,AllPub,Inside,Gtl,OldTown,Feedr,Norm,2fmCon,2.5Unf,7,4,1910,1950,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,Fa,TA,CBlock,TA,TA,No,Unf,0,Unf,0,925,925,GasA,TA,N,FuseF,964,925,0,1889,0,0,1,1,4,2,TA,9,Typ,1,Gd,Detchd,1960,Unf,1,308,TA,TA,N,0,0,264,0,0,0,NA,MnPrv,NA,0,1,2007,WD,Normal,122000 +1268,20,RL,89,13214,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,9,5,2008,2009,Hip,CompShg,Stucco,CmentBd,None,0,Ex,TA,PConc,Ex,TA,Gd,Unf,0,Unf,0,2002,2002,GasA,Ex,Y,SBrkr,2018,0,0,2018,0,0,2,0,3,1,Ex,10,Typ,1,Gd,Attchd,2009,Fin,3,746,TA,TA,Y,144,76,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,378500 +1269,50,RL,NA,14100,Pave,NA,IR1,Lvl,AllPub,Inside,Mod,Crawfor,Norm,Norm,1Fam,1.5Fin,8,9,1935,1997,Gable,CompShg,Stucco,Stucco,BrkFace,632,TA,Gd,CBlock,TA,TA,Mn,Rec,192,Unf,0,536,728,GasA,Ex,Y,SBrkr,1968,1479,0,3447,0,0,3,1,4,1,Gd,11,Typ,2,Gd,BuiltIn,1982,Unf,3,1014,TA,TA,Y,314,12,0,0,0,0,NA,GdWo,NA,0,5,2008,WD,Normal,381000 +1270,50,RL,78,11344,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Feedr,Norm,1Fam,1.5Fin,5,5,1958,1958,Gable,CompShg,MetalSd,MetalSd,BrkFace,180,TA,TA,CBlock,TA,TA,No,BLQ,460,Unf,0,414,874,GasW,TA,Y,FuseA,874,650,0,1524,0,0,1,1,3,1,TA,7,Typ,0,NA,Attchd,1958,Unf,1,315,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,7,2007,WD,Normal,144000 +1271,40,RL,NA,23595,Pave,NA,Reg,Low,AllPub,Inside,Sev,ClearCr,Norm,Norm,1Fam,1Story,7,6,1979,1979,Shed,WdShake,Plywood,Plywood,None,0,Gd,TA,PConc,Gd,TA,Gd,GLQ,1258,Unf,0,74,1332,GasA,TA,Y,SBrkr,1332,192,0,1524,2,0,0,1,0,1,Gd,4,Typ,1,TA,Attchd,1979,Fin,2,586,TA,TA,Y,268,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,260000 +1272,20,RL,NA,9156,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,PosN,Norm,1Fam,1Story,6,7,1968,1968,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1489,1489,GasA,Gd,Y,SBrkr,1489,0,0,1489,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,1968,RFn,2,462,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal,185750 +1273,20,RL,NA,13526,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,6,1965,1965,Hip,CompShg,HdBoard,Plywood,BrkFace,114,TA,TA,CBlock,TA,TA,No,BLQ,560,LwQ,375,0,935,GasA,TA,Y,SBrkr,935,0,0,935,1,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1965,Unf,1,288,TA,TA,Y,180,0,0,0,0,0,NA,MnPrv,NA,0,11,2006,WD,Normal,137000 +1274,80,RL,124,11512,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Edwards,Norm,Norm,1Fam,SLvl,6,7,1959,2006,Gable,CompShg,Plywood,Plywood,BrkFace,84,TA,TA,CBlock,TA,TA,Av,ALQ,719,Unf,0,300,1019,GasA,Gd,Y,SBrkr,1357,0,0,1357,1,0,1,0,2,1,Ex,5,Typ,1,Gd,Basment,1959,RFn,1,312,TA,TA,Y,0,0,0,0,163,0,NA,GdPrv,NA,0,5,2008,WD,Normal,177000 +1275,50,RL,53,5362,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,Crawfor,Norm,Norm,1Fam,1.5Fin,5,6,1910,2003,Gable,CompShg,Wd Sdng,Wd Shng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,661,661,GasA,Ex,Y,SBrkr,661,589,0,1250,0,0,2,0,3,1,TA,8,Typ,1,Gd,Detchd,1985,Unf,2,552,TA,TA,Y,242,0,81,0,0,0,NA,NA,NA,0,11,2007,WD,Normal,139000 +1276,90,RL,95,11345,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Feedr,Norm,Duplex,2Story,5,5,1948,1950,Gable,Roll,AsbShng,AsbShng,Stone,567,TA,TA,CBlock,TA,TA,No,Rec,220,Unf,0,708,928,GasA,Gd,Y,FuseA,928,992,0,1920,0,0,2,0,4,2,TA,10,Typ,0,NA,Detchd,1948,Unf,2,400,TA,Fa,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,137000 +1277,60,RL,NA,12936,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NWAmes,Norm,Norm,1Fam,2Story,6,6,1972,1972,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,TA,Gd,No,BLQ,593,Unf,0,130,723,GasA,TA,Y,SBrkr,735,660,0,1395,0,1,1,1,3,1,TA,6,Typ,1,TA,Attchd,1972,Unf,2,497,TA,TA,Y,294,116,0,0,0,0,NA,NA,NA,0,12,2009,WD,Normal,162000 +1278,80,RL,NA,17871,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NWAmes,Norm,Norm,1Fam,SLvl,6,5,1967,1976,Gable,CompShg,HdBoard,HdBoard,BrkFace,359,TA,TA,CBlock,Gd,TA,Av,ALQ,528,Unf,0,1152,1680,GasA,Fa,Y,SBrkr,1724,0,0,1724,1,0,1,1,3,1,TA,7,Typ,1,Gd,Attchd,1967,RFn,2,480,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,197900 +1279,60,RL,75,9473,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,NA,NA,Gd,TA,PConc,Gd,TA,No,GLQ,804,Unf,0,324,1128,GasA,Ex,Y,SBrkr,1128,903,0,2031,1,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2002,RFn,2,577,TA,TA,Y,0,211,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal,237000 +1280,50,C (all),60,7500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,4,4,1920,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,No,Unf,0,Unf,0,698,698,GasA,TA,Y,FuseA,698,430,0,1128,0,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1980,RFn,2,528,TA,TA,Y,30,0,164,0,0,0,NA,NA,NA,0,4,2010,COD,Abnorml,68400 +1281,20,RL,67,9808,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,110,Gd,TA,PConc,Gd,TA,No,GLQ,788,Unf,0,785,1573,GasA,Ex,Y,SBrkr,1573,0,0,1573,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2002,RFn,2,544,TA,TA,Y,0,72,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal,227000 +1282,20,RL,50,8049,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Timber,Norm,Norm,1Fam,1Story,7,5,1990,1990,Hip,CompShg,HdBoard,HdBoard,BrkFace,54,TA,TA,CBlock,Gd,TA,No,ALQ,1053,Unf,0,256,1309,GasA,TA,Y,SBrkr,1339,0,0,1339,1,0,2,0,2,1,TA,6,Typ,1,TA,Attchd,1990,Fin,2,484,Gd,Gd,Y,0,58,0,0,90,0,NA,NA,NA,0,7,2006,WD,Normal,180000 +1283,20,RL,61,8800,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,7,1977,2008,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Gd,TA,Mn,LwQ,532,Rec,144,364,1040,GasA,TA,Y,SBrkr,1040,0,0,1040,0,0,2,0,3,1,Gd,5,Typ,0,NA,Detchd,1977,Unf,2,484,TA,TA,Y,0,0,0,0,288,0,NA,NA,NA,0,9,2009,WD,Normal,150500 +1284,90,RL,94,9400,Pave,NA,Reg,Low,AllPub,Corner,Gtl,Mitchel,Norm,Norm,Duplex,2Story,6,5,1971,1971,Mansard,CompShg,MetalSd,Wd Shng,None,0,TA,TA,CBlock,TA,TA,Av,Unf,0,Unf,0,912,912,GasA,TA,Y,SBrkr,912,912,0,1824,0,0,2,2,4,2,TA,8,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,128,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,139000 +1285,50,RL,50,9638,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Feedr,Norm,1Fam,1.5Fin,6,7,1919,1990,Gable,CompShg,Wd Sdng,Wd Shng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,804,804,GasA,Ex,Y,SBrkr,1699,748,0,2447,0,0,2,0,4,1,Gd,10,Min2,1,Gd,Detchd,1969,Unf,1,336,TA,TA,Y,272,0,42,0,116,0,NA,NA,NA,0,3,2010,WD,Normal,169000 +1286,50,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,6,1939,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Fa,CBlock,TA,TA,No,Unf,0,Unf,0,780,780,GasA,Ex,Y,FuseF,825,587,0,1412,0,0,1,0,4,1,TA,6,Typ,1,Gd,Detchd,1939,Unf,1,280,TA,TA,Y,45,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,132500 +1287,20,RL,NA,9790,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Feedr,Norm,1Fam,1Story,6,5,1963,1963,Hip,CompShg,HdBoard,HdBoard,BrkFace,451,TA,TA,CBlock,TA,TA,No,ALQ,569,Rec,81,678,1328,GasA,TA,Y,SBrkr,1328,0,0,1328,1,0,1,1,3,1,TA,6,Typ,2,Gd,Attchd,1963,Unf,2,528,TA,TA,Y,0,26,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,143000 +1288,20,RL,NA,36500,Pave,NA,IR1,Low,AllPub,Inside,Mod,ClearCr,Norm,Norm,1Fam,1Story,5,5,1964,1964,Gable,CompShg,Wd Sdng,Wd Sdng,BrkCmn,621,TA,Gd,CBlock,TA,TA,Av,Rec,812,Unf,0,812,1624,GasA,Fa,Y,SBrkr,1582,0,0,1582,0,1,2,0,4,1,TA,7,Typ,0,NA,Attchd,1964,Unf,2,390,TA,TA,N,168,198,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,190000 +1289,120,RL,40,5664,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,StoneBr,Norm,Norm,TwnhsE,1Story,8,5,2000,2000,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,1158,Unf,0,343,1501,GasA,Ex,Y,SBrkr,1659,0,0,1659,1,0,2,0,2,1,Ex,5,Typ,1,Ex,Attchd,2000,Fin,2,499,TA,TA,Y,212,59,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal,278000 +1290,60,RL,86,11065,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,1Fam,2Story,8,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,Stone,788,Gd,TA,PConc,Gd,TA,Mn,Unf,0,Unf,0,1085,1085,GasA,Ex,Y,SBrkr,1120,850,0,1970,0,0,2,1,3,1,Ex,8,Typ,1,Gd,BuiltIn,2006,Fin,3,753,TA,TA,Y,177,74,0,0,0,0,NA,NA,NA,0,10,2006,New,Partial,281000 +1291,80,RL,NA,14112,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,SLvl,5,7,1964,1964,Hip,CompShg,Wd Sdng,HdBoard,BrkFace,86,TA,TA,PConc,TA,TA,Av,GLQ,1014,Unf,0,138,1152,GasA,TA,Y,SBrkr,1152,0,0,1152,1,0,1,0,3,1,TA,6,Typ,1,Gd,Attchd,1964,RFn,2,484,TA,TA,Y,227,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,180500 +1292,160,RM,21,1680,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,5,7,1972,1972,Gable,CompShg,CemntBd,CmentBd,BrkFace,268,TA,TA,CBlock,TA,TA,No,ALQ,231,Unf,0,399,630,GasA,TA,Y,SBrkr,630,672,0,1302,0,0,2,1,3,1,TA,6,Typ,0,NA,Detchd,1972,Unf,1,264,TA,TA,Y,185,0,0,0,0,0,NA,NA,NA,0,2,2009,WD,Normal,119500 +1293,70,RM,60,6600,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,2Story,5,4,1892,1965,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,Stone,TA,TA,No,Unf,0,Unf,0,994,994,GasA,TA,N,SBrkr,1378,994,0,2372,0,0,2,0,4,2,TA,11,Min2,0,NA,Attchd,1985,RFn,1,432,TA,TA,Y,0,287,0,0,0,0,NA,NA,NA,0,12,2009,WD,Normal,107500 +1294,60,RL,78,10140,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,2Story,7,5,1976,1976,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,Gd,TA,No,GLQ,194,Unf,0,638,832,GasA,TA,Y,SBrkr,832,832,0,1664,0,0,2,1,4,1,TA,8,Typ,1,TA,Attchd,1976,RFn,2,528,TA,TA,Y,0,28,0,0,259,0,NA,GdWo,NA,0,3,2006,WD,Normal,162900 +1295,20,RL,60,8172,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,7,1955,1990,Hip,CompShg,WdShing,Plywood,None,0,TA,TA,CBlock,TA,TA,No,Rec,167,Unf,0,697,864,GasA,TA,Y,SBrkr,864,0,0,864,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1957,Unf,2,572,TA,TA,N,0,0,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,115000 +1296,20,RL,70,8400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Feedr,Norm,1Fam,1Story,5,5,1968,1968,Hip,CompShg,HdBoard,HdBoard,BrkFace,168,TA,TA,CBlock,TA,TA,Av,BLQ,1016,Unf,0,36,1052,GasA,Gd,Y,SBrkr,1052,0,0,1052,1,0,1,1,3,1,TA,5,Typ,0,NA,Attchd,1968,RFn,1,288,TA,TA,Y,356,0,0,0,0,0,NA,GdWo,NA,0,11,2006,WD,Normal,138500 +1297,20,RL,80,8700,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1963,1963,Hip,CompShg,MetalSd,MetalSd,BrkFace,148,TA,Gd,CBlock,TA,TA,Mn,ALQ,776,Unf,0,344,1120,GasA,Gd,Y,SBrkr,1128,0,0,1128,1,0,2,0,3,1,TA,6,Typ,0,NA,Attchd,1963,RFn,2,525,TA,TA,Y,192,20,123,0,0,0,NA,MnPrv,NA,0,12,2008,WD,Normal,155000 +1298,180,RM,35,3675,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,TwnhsE,SFoyer,6,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,BrkFace,82,TA,TA,PConc,Gd,TA,Gd,GLQ,547,Unf,0,0,547,GasA,Gd,Y,SBrkr,1072,0,0,1072,1,0,2,0,2,1,TA,5,Typ,0,NA,Basment,2005,Fin,2,525,TA,TA,Y,0,44,0,0,0,0,NA,NA,NA,0,6,2006,New,Partial,140000 +1299,60,RL,313,63887,Pave,NA,IR3,Bnk,AllPub,Corner,Gtl,Edwards,Feedr,Norm,1Fam,2Story,10,5,2008,2008,Hip,ClyTile,Stucco,Stucco,Stone,796,Ex,TA,PConc,Ex,TA,Gd,GLQ,5644,Unf,0,466,6110,GasA,Ex,Y,SBrkr,4692,950,0,5642,2,0,2,1,3,1,Ex,12,Typ,3,Gd,Attchd,2008,Fin,2,1418,TA,TA,Y,214,292,0,0,0,480,Gd,NA,NA,0,1,2008,New,Partial,160000 +1300,20,RL,75,7500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,7,1959,1994,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,LwQ,340,Rec,906,0,1246,GasA,Ex,Y,SBrkr,1246,0,0,1246,1,0,1,1,3,1,Gd,6,Typ,0,NA,Attchd,1959,RFn,1,305,TA,TA,Y,218,0,0,0,0,0,NA,GdPrv,NA,0,5,2010,WD,Normal,154000 +1301,60,RL,NA,10762,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,None,344,Gd,TA,PConc,Gd,TA,No,GLQ,694,Unf,0,284,978,GasA,Ex,Y,SBrkr,1005,978,0,1983,0,0,2,1,3,1,Gd,9,Typ,1,TA,Attchd,1999,Fin,2,490,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,225000 +1302,70,RL,NA,7500,Pave,NA,IR1,Bnk,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,6,7,1942,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,BLQ,547,Unf,0,224,771,GasA,Fa,Y,SBrkr,753,741,0,1494,0,0,1,0,3,1,Gd,7,Typ,2,Gd,Attchd,1942,Unf,1,213,TA,TA,P,0,0,0,0,224,0,NA,NA,NA,0,11,2009,WD,Normal,177500 +1303,60,RL,92,10120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1994,1994,Hip,CompShg,VinylSd,VinylSd,BrkFace,391,Gd,TA,PConc,Gd,TA,No,GLQ,740,Unf,0,425,1165,GasA,Ex,Y,SBrkr,1203,1323,0,2526,1,0,2,1,4,1,Gd,8,Typ,1,TA,Attchd,1994,RFn,3,844,TA,TA,Y,309,78,0,0,0,0,NA,NA,NA,0,12,2006,WD,Normal,290000 +1304,20,RL,73,8688,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,228,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1616,1616,GasA,Ex,Y,SBrkr,1616,0,0,1616,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2005,RFn,3,834,TA,TA,Y,208,59,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,232000 +1305,160,RM,32,3363,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,TwnhsE,2Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,Stone,117,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,976,976,GasA,Ex,Y,SBrkr,976,732,0,1708,0,0,2,0,3,1,Gd,7,Maj1,0,NA,Detchd,2004,Unf,2,380,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,4,2006,WD,Normal,130000 +1306,20,RL,108,13173,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2006,2007,Hip,CompShg,VinylSd,VinylSd,Stone,300,Gd,TA,PConc,Ex,TA,No,GLQ,1572,Unf,0,80,1652,GasA,Ex,Y,SBrkr,1652,0,0,1652,1,0,2,0,2,1,Ex,6,Typ,2,Ex,Attchd,2006,Fin,2,840,TA,TA,Y,404,102,0,0,0,0,NA,NA,NA,0,11,2009,WD,Normal,325000 +1307,120,RL,48,6955,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NridgHt,Norm,Norm,TwnhsE,1Story,7,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,Stone,94,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1368,1368,GasA,Ex,Y,SBrkr,1368,0,0,1368,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2005,RFn,2,474,TA,TA,Y,132,35,0,0,0,0,NA,NA,NA,0,9,2006,New,Partial,202500 +1308,20,RL,60,8072,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,5,1994,1995,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,PConc,Gd,Gd,No,ALQ,746,Unf,0,244,990,GasA,Ex,Y,SBrkr,990,0,0,990,1,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,2000,Unf,2,480,TA,TA,Y,0,64,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,138000 +1309,20,RM,100,12000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,7,1948,2005,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,GLQ,144,ALQ,608,172,924,GasA,Ex,Y,SBrkr,1122,0,0,1122,1,0,1,0,2,1,Gd,6,Typ,0,NA,Attchd,1948,Unf,2,528,TA,TA,Y,0,36,0,0,0,0,NA,GdWo,NA,0,5,2008,WD,Normal,147000 +1310,20,RL,NA,7153,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,6,5,1991,1991,Gable,CompShg,HdBoard,HdBoard,BrkFace,88,TA,TA,CBlock,Gd,TA,No,GLQ,1200,Unf,0,78,1278,GasA,Gd,Y,SBrkr,1294,0,0,1294,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,1991,RFn,2,496,TA,TA,Y,112,51,0,0,0,0,NA,GdWo,NA,0,6,2008,WD,Normal,179200 +1311,20,RL,100,17500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,PosA,Norm,1Fam,1Story,7,8,1959,2002,Gable,CompShg,BrkFace,HdBoard,None,0,Gd,Gd,PConc,Gd,TA,Av,GLQ,1406,Unf,0,496,1902,GasA,TA,Y,SBrkr,1902,0,0,1902,1,0,2,0,3,1,Ex,7,Typ,2,TA,Attchd,1959,Fin,2,567,TA,TA,Y,0,207,162,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,335000 +1312,20,RL,68,8814,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2005,2007,Gable,CompShg,VinylSd,VinylSd,BrkFace,80,Gd,TA,PConc,Gd,TA,No,GLQ,925,Unf,0,349,1274,GasA,Ex,Y,SBrkr,1274,0,0,1274,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2005,RFn,2,508,TA,TA,Y,264,98,0,0,0,0,NA,NA,NA,0,1,2007,New,Partial,203000 +1313,60,RL,NA,9572,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1990,1990,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,336,Gd,TA,PConc,Ex,TA,No,GLQ,482,Unf,0,971,1453,GasA,Ex,Y,SBrkr,1453,1357,0,2810,0,0,2,1,4,1,Gd,9,Typ,1,Ex,Attchd,1990,RFn,2,750,Gd,Gd,Y,500,0,0,0,0,0,NA,NA,NA,0,6,2007,WD,Normal,302000 +1314,60,RL,108,14774,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NoRidge,Norm,Norm,1Fam,2Story,9,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,BrkFace,165,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1393,1393,GasA,Ex,Y,SBrkr,1422,1177,0,2599,0,0,2,1,4,1,Gd,10,Typ,1,TA,BuiltIn,1999,Fin,3,779,TA,TA,Y,668,30,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,333168 +1315,20,RL,60,8190,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,6,1954,1954,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,732,Unf,0,216,948,GasA,Ex,Y,SBrkr,948,0,0,948,1,0,1,0,3,1,TA,5,Typ,1,TA,Detchd,1956,Unf,1,280,TA,TA,Y,0,36,0,0,0,0,NA,NA,NA,0,10,2007,WD,Normal,119000 +1316,60,RL,85,11075,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,2Story,6,5,1969,1969,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,Fa,TA,Mn,ALQ,500,LwQ,276,176,952,GasA,TA,Y,SBrkr,1092,1020,0,2112,0,0,2,1,4,1,TA,9,Typ,2,Gd,Attchd,1969,Unf,2,576,TA,TA,Y,280,0,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,206900 +1317,20,RL,61,10226,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,Stone,270,Gd,TA,PConc,Ex,TA,Gd,Unf,0,Unf,0,1622,1622,GasA,Ex,Y,SBrkr,1630,0,0,1630,1,0,2,0,3,1,Ex,8,Typ,1,Gd,Attchd,2008,RFn,3,860,TA,TA,Y,172,42,0,0,0,0,NA,NA,NA,0,1,2009,WD,Normal,295493 +1318,120,FV,47,4230,Pave,Pave,Reg,Lvl,AllPub,Corner,Gtl,Somerst,Norm,Norm,TwnhsE,1Story,7,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Ex,Gd,No,Unf,0,Unf,0,1352,1352,GasA,Ex,Y,SBrkr,1352,0,0,1352,0,0,2,0,2,1,Gd,5,Typ,1,Gd,Attchd,2006,RFn,2,466,TA,TA,Y,0,241,0,0,0,0,NA,NA,NA,0,4,2007,New,Partial,208900 +1319,20,RL,NA,14781,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2001,2002,Hip,CompShg,VinylSd,VinylSd,BrkFace,178,Gd,TA,PConc,Gd,TA,Gd,Unf,0,Unf,0,1753,1753,GasA,Ex,Y,SBrkr,1787,0,0,1787,0,0,2,0,3,1,Gd,7,Typ,1,TA,Attchd,2001,RFn,3,748,TA,TA,Y,198,150,0,0,0,0,NA,NA,NA,0,8,2006,WD,Normal,275000 +1320,20,RL,75,10215,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,4,5,1954,1954,Hip,CompShg,Wd Sdng,Wd Sdng,BrkFace,132,TA,TA,PConc,TA,TA,No,ALQ,492,Unf,0,372,864,GasA,Ex,Y,SBrkr,948,0,0,948,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1954,Unf,1,248,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,2,2007,WD,Normal,111000 +1321,20,RL,70,8400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,3,1957,1957,Hip,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,ALQ,189,Rec,661,628,1478,GasA,Gd,Y,SBrkr,1478,0,0,1478,1,0,1,1,3,1,TA,6,Typ,2,Gd,Attchd,1957,RFn,2,442,TA,TA,Y,114,0,0,0,216,0,NA,NA,NA,0,6,2009,WD,Normal,156500 +1322,20,RL,NA,6627,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,BrkSide,Feedr,Norm,1Fam,1Story,3,6,1949,1950,Hip,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,NA,NA,NA,NA,0,NA,0,0,0,Floor,TA,N,SBrkr,720,0,0,720,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1955,Unf,1,287,TA,Fa,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,72500 +1323,60,RL,107,10186,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,7,5,1992,1992,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,674,Unf,0,76,750,GasA,Ex,Y,SBrkr,1061,862,0,1923,1,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1992,RFn,2,564,TA,TA,Y,240,39,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,190000 +1324,30,RL,50,5330,Pave,NA,Reg,HLS,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1Story,4,7,1940,1950,Hip,CompShg,VinylSd,VinylSd,None,0,Fa,TA,CBlock,TA,TA,No,LwQ,280,Unf,0,140,420,GasA,Gd,Y,SBrkr,708,0,0,708,0,0,1,0,2,1,Fa,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,164,0,0,0,0,0,NA,NA,NA,0,12,2009,WD,Normal,82500 +1325,20,RL,75,9986,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,BrkFace,428,Gd,TA,PConc,Ex,TA,Av,Unf,0,Unf,0,1795,1795,GasA,Ex,Y,SBrkr,1795,0,0,1795,0,0,2,0,2,1,Gd,7,Typ,1,Gd,Attchd,2007,RFn,3,895,TA,TA,Y,0,49,0,0,0,0,NA,NA,NA,0,2,2007,New,Partial,147000 +1326,30,RM,40,3636,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1Story,4,4,1922,1950,Gable,CompShg,AsbShng,AsbShng,None,0,TA,TA,BrkTil,TA,Fa,No,Unf,0,Unf,0,796,796,GasA,Fa,N,SBrkr,796,0,0,796,0,0,1,0,2,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,0,100,0,0,0,NA,MnPrv,NA,0,1,2008,WD,Normal,55000 +1327,30,RH,70,4270,Pave,NA,Reg,Bnk,AllPub,Inside,Mod,Edwards,Norm,Norm,1Fam,1Story,3,6,1931,2006,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,No,Rec,544,Unf,0,0,544,GasA,Ex,Y,SBrkr,774,0,0,774,0,0,1,0,3,1,Gd,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,286,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,79000 +1328,20,RL,60,6600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,9,1982,2008,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,Gd,CBlock,TA,TA,No,ALQ,641,Unf,0,175,816,GasA,Ex,Y,SBrkr,816,0,0,816,0,1,1,0,3,1,Gd,5,Typ,1,Ex,Attchd,1982,Unf,1,264,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,10,2008,WD,Normal,130500 +1329,50,RM,60,10440,Pave,Grvl,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1.5Fin,6,7,1920,1950,Gable,CompShg,BrkFace,Wd Sdng,None,0,Gd,Gd,BrkTil,Gd,TA,No,LwQ,493,Unf,0,1017,1510,GasW,Ex,Y,SBrkr,1584,1208,0,2792,0,0,2,0,5,1,TA,8,Mod,2,TA,Detchd,1920,Unf,2,520,Fa,TA,Y,0,547,0,0,480,0,NA,MnPrv,Shed,1150,6,2008,WD,Normal,256000 +1330,60,RL,63,9084,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,7,5,1998,1998,Hip,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,935,935,GasA,Gd,Y,SBrkr,955,677,0,1632,0,0,2,1,3,1,TA,8,Typ,1,TA,Attchd,1998,Fin,2,462,TA,TA,Y,0,28,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,176500 +1331,20,RL,85,10000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,Stone,410,Gd,TA,PConc,Gd,Gd,Av,Unf,0,Unf,0,1588,1588,GasA,Ex,Y,SBrkr,1588,0,0,1588,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2006,RFn,3,825,TA,TA,Y,144,45,0,0,0,0,NA,NA,NA,0,12,2007,WD,Normal,227000 +1332,80,RL,55,10780,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,SLvl,5,5,1976,1976,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,Av,ALQ,483,Unf,0,428,911,GasA,Gd,Y,SBrkr,954,0,0,954,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1976,Unf,2,576,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,132500 +1333,20,RL,67,8877,Pave,NA,Reg,Lvl,AllPub,Inside,Mod,Edwards,Norm,Norm,1Fam,1Story,4,6,1938,1958,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,Mn,ALQ,690,Unf,0,126,816,GasA,Ex,Y,SBrkr,816,0,0,816,1,0,1,0,2,1,TA,3,Typ,1,Gd,Detchd,1958,Unf,1,288,Fa,Fa,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,100000 +1334,50,RM,60,7200,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,5,6,1938,1995,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,803,803,GasA,Ex,Y,SBrkr,803,557,0,1360,0,0,1,1,2,1,Gd,6,Typ,0,NA,Detchd,1951,Unf,1,297,TA,TA,Y,0,65,190,0,0,0,NA,MnPrv,NA,0,7,2006,WD,Normal,125500 +1335,160,RM,24,2368,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,TwnhsE,2Story,5,6,1970,1970,Gable,CompShg,HdBoard,HdBoard,None,312,TA,TA,CBlock,TA,TA,No,LwQ,765,Unf,0,0,765,GasA,TA,Y,SBrkr,765,600,0,1365,0,0,1,1,3,1,TA,7,Min1,0,NA,Attchd,1970,Unf,2,440,TA,TA,Y,0,36,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,125000 +1336,20,RL,80,9650,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,5,1977,1977,Gable,CompShg,Plywood,Plywood,BrkFace,360,TA,TA,CBlock,Gd,TA,No,ALQ,686,Unf,0,664,1350,GasA,TA,Y,SBrkr,1334,0,0,1334,0,1,2,0,2,1,TA,6,Typ,1,TA,Attchd,1977,RFn,2,630,TA,TA,Y,0,16,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal,167900 +1337,90,RL,87,9246,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Feedr,Norm,Duplex,1Story,5,5,1973,1973,Gable,CompShg,Plywood,Plywood,BrkFace,564,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1656,1656,GasA,TA,Y,SBrkr,1656,0,0,1656,0,0,2,0,4,2,TA,8,Typ,0,NA,Detchd,1973,Unf,2,506,TA,TA,Y,0,211,0,0,0,0,NA,NA,NA,0,11,2008,WD,Normal,135000 +1338,30,RM,153,4118,Pave,Grvl,IR1,Bnk,AllPub,Corner,Mod,OldTown,Feedr,Norm,1Fam,1Story,4,4,1941,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,693,693,Grav,Fa,N,FuseA,693,0,0,693,0,0,1,0,2,1,Fa,4,Typ,0,NA,NA,NA,NA,0,0,NA,NA,N,0,20,0,0,0,0,NA,NA,NA,0,3,2006,WD,Normal,52500 +1339,60,RL,95,13450,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,700,Unf,0,216,916,GasA,Ex,Y,SBrkr,920,941,0,1861,1,0,2,1,3,1,Gd,8,Typ,0,NA,BuiltIn,2002,RFn,2,492,TA,TA,Y,146,91,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,200000 +1340,20,RL,120,9560,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,1Story,5,7,1972,1972,Hip,CompShg,MetalSd,MetalSd,None,0,TA,Gd,CBlock,TA,TA,Mn,Rec,360,Unf,0,504,864,GasA,Ex,Y,SBrkr,864,0,0,864,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1972,RFn,1,288,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,128500 +1341,20,RL,70,8294,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,5,1971,1971,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,858,858,GasA,TA,Y,SBrkr,872,0,0,872,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1974,Unf,4,480,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,6,2007,WD,Normal,123000 +1342,20,RL,66,13695,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SawyerW,RRAe,Norm,1Fam,1Story,6,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,GLQ,814,Unf,0,300,1114,GasA,Ex,Y,SBrkr,1114,0,0,1114,1,0,1,0,3,1,Gd,6,Typ,0,NA,Detchd,2004,Unf,2,576,TA,TA,Y,0,78,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,155000 +1343,60,RL,NA,9375,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,2002,2002,Gable,CompShg,VinylSd,VinylSd,BrkFace,149,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1284,1284,GasA,Ex,Y,SBrkr,1284,885,0,2169,0,0,2,1,3,1,Gd,7,Typ,1,Gd,Attchd,2002,RFn,2,647,TA,TA,Y,192,87,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,228500 +1344,50,RL,57,7558,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1.5Fin,6,6,1928,1950,Gable,CompShg,BrkFace,Stone,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,896,896,GasA,Gd,Y,SBrkr,1172,741,0,1913,0,0,1,1,3,1,TA,9,Typ,1,TA,Detchd,1929,Unf,2,342,Fa,Fa,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2009,WD,Normal,177000 +1345,60,RL,85,11103,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,728,728,GasA,Ex,Y,SBrkr,728,728,0,1456,0,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,2006,Fin,2,440,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,7,2007,New,Partial,155835 +1346,30,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,4,4,1920,1950,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,PConc,TA,TA,No,ALQ,250,Unf,0,710,960,GasA,Gd,Y,FuseA,960,0,0,960,0,0,1,0,2,1,Fa,5,Typ,0,NA,Detchd,1997,Unf,1,308,TA,TA,Y,0,0,168,0,0,0,NA,NA,NA,0,7,2007,WD,Normal,108500 +1347,20,RL,NA,20781,Pave,NA,IR2,Lvl,AllPub,CulDSac,Gtl,NWAmes,PosN,Norm,1Fam,1Story,7,7,1968,2003,Hip,CompShg,BrkFace,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,BLQ,297,Rec,68,1203,1568,GasA,TA,Y,SBrkr,2156,0,0,2156,0,0,2,0,3,1,TA,9,Typ,1,Gd,Attchd,1968,RFn,2,508,Gd,TA,Y,0,80,0,290,0,0,NA,NA,NA,0,6,2006,WD,Normal,262500 +1348,20,RL,93,15306,Pave,NA,IR1,HLS,AllPub,Corner,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,Stone,100,Gd,TA,PConc,Ex,TA,Gd,GLQ,80,Unf,0,1652,1732,GasA,Ex,Y,SBrkr,1776,0,0,1776,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2006,Fin,3,712,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2007,New,Partial,283463 +1349,20,RL,NA,16196,Pave,NA,IR3,Low,AllPub,Inside,Gtl,SawyerW,Norm,Norm,1Fam,1Story,7,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,Gd,GLQ,1443,Unf,0,39,1482,GasA,Ex,Y,SBrkr,1494,0,0,1494,1,0,2,0,3,1,Gd,5,Typ,1,Fa,Attchd,1998,RFn,2,514,TA,TA,Y,402,25,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,215000 +1350,70,RM,50,5250,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,8,5,1872,1987,Gable,CompShg,MetalSd,MetalSd,None,0,TA,Gd,BrkTil,TA,Fa,No,LwQ,259,Unf,0,425,684,OthW,Fa,N,SBrkr,938,1215,205,2358,0,0,2,0,4,1,TA,8,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,54,20,0,0,0,NA,NA,NA,0,12,2008,WD,Normal,122000 +1351,90,RL,91,11643,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Artery,Norm,Duplex,2Story,5,5,1969,1969,Gable,CompShg,MetalSd,MetalSd,BrkFace,368,TA,TA,CBlock,TA,TA,No,LwQ,500,Unf,0,748,1248,GasA,TA,Y,SBrkr,1338,1296,0,2634,1,1,2,2,6,2,TA,12,Typ,0,NA,Detchd,1969,Unf,4,968,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2009,WD,Normal,200000 +1352,60,RL,70,9247,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,2Story,6,6,1962,1962,Gable,CompShg,HdBoard,HdBoard,BrkFace,318,TA,TA,CBlock,TA,TA,No,Rec,319,Unf,0,539,858,GasA,Ex,Y,SBrkr,858,858,0,1716,0,0,1,1,4,1,TA,8,Typ,1,Gd,Attchd,1962,Fin,2,490,TA,TA,Y,0,84,0,0,120,0,NA,NA,NA,0,3,2008,WD,Normal,171000 +1353,50,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,9,1937,2000,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,698,698,GasA,TA,Y,SBrkr,786,390,0,1176,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1999,Unf,2,624,TA,TA,N,210,0,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,134900 +1354,50,RL,56,14720,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NoRidge,Norm,Norm,1Fam,1.5Fin,8,5,1995,1996,Hip,CompShg,VinylSd,VinylSd,BrkFace,579,Gd,TA,PConc,Gd,TA,Av,GLQ,816,Unf,0,1217,2033,GasA,Ex,Y,SBrkr,2053,1185,0,3238,1,0,2,1,4,1,Gd,9,Typ,1,Ex,Attchd,1996,Fin,3,666,TA,TA,Y,283,86,0,0,0,0,NA,NA,NA,0,3,2010,WD,Normal,410000 +1355,60,RL,NA,10316,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,735,Unf,0,257,992,GasA,Ex,Y,SBrkr,992,873,0,1865,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,2000,RFn,3,839,TA,TA,Y,0,184,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,235000 +1356,80,RL,102,10192,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,SLvl,7,6,1968,1992,Gable,CompShg,MetalSd,MetalSd,BrkFace,143,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,570,570,GasA,Gd,Y,SBrkr,1222,698,0,1920,0,0,3,0,4,1,Gd,8,Typ,1,TA,Attchd,1968,RFn,2,487,TA,TA,Y,0,98,0,0,0,0,NA,GdPrv,NA,0,9,2006,WD,Normal,170000 +1357,20,RL,NA,9477,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1966,1966,Gable,CompShg,HdBoard,HdBoard,BrkFace,65,TA,TA,CBlock,TA,TA,No,Rec,340,Unf,0,524,864,GasA,TA,Y,SBrkr,892,0,0,892,0,0,1,0,3,1,TA,5,Typ,0,NA,Attchd,1966,RFn,1,264,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,10,2008,WD,Normal,110000 +1358,20,RL,NA,12537,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1971,2008,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,No,GLQ,734,Unf,0,344,1078,GasA,Ex,Y,SBrkr,1078,0,0,1078,1,0,1,1,3,1,TA,6,Typ,1,Fa,Attchd,1971,Fin,2,500,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,149900 +1359,160,FV,NA,2117,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,Twnhs,2Story,6,5,2000,2000,Gable,CompShg,MetalSd,MetalSd,BrkFace,216,Gd,TA,PConc,Gd,TA,No,GLQ,378,Unf,0,378,756,GasA,Ex,Y,SBrkr,769,804,0,1573,0,0,2,1,3,1,Gd,5,Typ,0,NA,Detchd,2000,Unf,2,440,TA,TA,Y,0,32,0,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,177500 +1360,20,RL,129,16737,Pave,NA,Reg,Lvl,AllPub,FR3,Gtl,NridgHt,Norm,Norm,1Fam,1Story,9,5,2004,2005,Hip,CompShg,VinylSd,VinylSd,BrkFace,66,Gd,TA,PConc,Ex,TA,Av,GLQ,1447,Unf,0,533,1980,GasA,Ex,Y,SBrkr,1980,0,0,1980,1,0,2,0,3,1,Ex,8,Typ,1,Gd,Attchd,2004,Fin,3,770,TA,TA,Y,194,45,0,0,0,0,NA,NA,NA,0,9,2006,WD,Normal,315000 +1361,70,RL,51,9842,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Feedr,Norm,1Fam,2Story,5,6,1921,1998,Gable,CompShg,MetalSd,Wd Sdng,None,0,TA,TA,BrkTil,TA,Fa,No,Unf,0,Unf,0,612,612,GasA,Ex,Y,SBrkr,990,1611,0,2601,0,0,3,1,4,1,TA,8,Typ,0,NA,BuiltIn,1998,RFn,2,621,TA,TA,Y,183,0,301,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,189000 +1362,20,RL,124,16158,Pave,NA,IR1,Low,AllPub,Inside,Mod,StoneBr,Norm,Norm,1Fam,1Story,7,5,2005,2005,Hip,CompShg,VinylSd,VinylSd,Stone,16,Gd,TA,PConc,Ex,TA,Av,ALQ,1274,Unf,0,256,1530,GasA,Ex,Y,SBrkr,1530,0,0,1530,1,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2005,Fin,2,430,TA,TA,Y,168,36,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,260000 +1363,50,RL,NA,12513,Pave,NA,IR1,Lvl,AllPub,FR2,Gtl,NAmes,Feedr,Norm,1Fam,1.5Fin,4,4,1920,2007,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,BrkTil,TA,Fa,No,Unf,0,Unf,0,715,715,GasA,Gd,Y,SBrkr,1281,457,0,1738,0,0,2,0,4,1,TA,7,Typ,1,Gd,Attchd,1920,Unf,1,368,TA,TA,Y,55,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,104900 +1364,60,RL,73,8499,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,616,616,GasA,Ex,Y,SBrkr,616,796,0,1412,0,0,2,1,3,1,Gd,6,Typ,1,Gd,BuiltIn,2007,Fin,2,432,TA,TA,Y,0,36,0,0,0,0,NA,NA,NA,0,3,2007,New,Partial,156932 +1365,160,FV,30,3180,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,TwnhsE,2Story,7,5,2005,2005,Gable,CompShg,MetalSd,MetalSd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,600,600,GasA,Ex,Y,SBrkr,520,600,80,1200,0,0,2,1,2,1,Gd,4,Typ,0,NA,Detchd,2005,RFn,2,480,TA,TA,Y,0,166,0,0,0,0,NA,NA,NA,0,4,2006,WD,Abnorml,144152 +1366,60,FV,NA,7500,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,533,Unf,0,281,814,GasA,Ex,Y,SBrkr,814,860,0,1674,1,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,2000,RFn,2,663,TA,TA,Y,0,96,0,0,0,0,NA,NA,NA,0,1,2010,WD,Normal,216000 +1367,60,RL,68,9179,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,1999,1999,Gable,CompShg,VinylSd,VinylSd,BrkFace,158,Gd,TA,PConc,Gd,TA,No,GLQ,633,Unf,0,240,873,GasA,Ex,Y,SBrkr,882,908,0,1790,1,0,2,1,3,1,Gd,7,Typ,0,NA,Attchd,1999,RFn,2,588,TA,TA,Y,0,88,0,0,0,0,NA,NA,NA,0,6,2008,WD,Abnorml,193000 +1368,160,RM,41,2665,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,TwnhsE,2Story,5,6,1977,1977,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,PConc,TA,TA,No,ALQ,548,Rec,173,36,757,GasA,Ex,Y,SBrkr,925,550,0,1475,0,0,2,0,4,1,TA,6,Typ,1,TA,Attchd,1977,RFn,1,336,TA,TA,Y,104,26,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,127000 +1369,120,RM,NA,4435,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,TwnhsE,1Story,6,5,2003,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,170,Gd,TA,PConc,Gd,TA,Av,GLQ,685,Unf,0,163,848,GasA,Ex,Y,SBrkr,848,0,0,848,1,0,1,0,1,1,Gd,4,Typ,0,NA,Attchd,2003,Fin,2,420,TA,TA,Y,140,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,144000 +1370,20,RL,48,10635,Pave,NA,IR2,Lvl,AllPub,FR2,Gtl,CollgCr,Norm,Norm,1Fam,1Story,8,5,2003,2003,Hip,CompShg,VinylSd,VinylSd,BrkFace,171,Gd,TA,PConc,Gd,TA,Av,BLQ,370,GLQ,972,315,1657,GasA,Ex,Y,SBrkr,1668,0,0,1668,1,0,2,0,3,1,Gd,8,Typ,1,TA,Attchd,2003,Fin,2,502,TA,TA,Y,0,262,0,0,0,0,NA,NA,NA,0,5,2010,WD,Normal,232000 +1371,50,RL,90,5400,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Artery,Norm,1Fam,1.5Fin,4,6,1920,1950,Gable,CompShg,CBlock,CBlock,None,0,Fa,TA,PConc,TA,TA,No,ALQ,315,Rec,105,420,840,GasA,Ex,Y,SBrkr,840,534,0,1374,0,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1967,Fin,1,338,TA,TA,Y,0,0,198,0,0,0,NA,NA,NA,0,10,2009,WD,Normal,105000 +1372,80,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SLvl,6,6,1955,1996,Hip,CompShg,AsbShng,AsbShng,None,0,TA,TA,CBlock,TA,TA,Av,BLQ,831,Unf,0,161,992,GasA,Gd,Y,SBrkr,1661,0,0,1661,1,0,1,0,3,1,Gd,8,Typ,1,TA,BuiltIn,1955,RFn,1,377,TA,TA,Y,0,28,0,0,178,0,NA,MnPrv,NA,0,10,2008,WD,Normal,165500 +1373,60,RL,75,9750,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,6,1998,1998,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,Av,GLQ,975,Unf,0,133,1108,GasA,Ex,Y,SBrkr,1108,989,0,2097,1,0,2,1,3,1,Gd,8,Typ,1,TA,Detchd,1998,RFn,2,583,TA,TA,Y,253,170,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,274300 +1374,20,RL,NA,11400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,1Story,10,5,2001,2002,Hip,CompShg,VinylSd,VinylSd,BrkFace,705,Ex,TA,PConc,Ex,TA,Gd,GLQ,1282,Unf,0,1351,2633,GasA,Ex,Y,SBrkr,2633,0,0,2633,1,0,2,1,2,1,Ex,8,Typ,2,Gd,Attchd,2001,RFn,3,804,TA,TA,Y,314,140,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal,466500 +1375,60,FV,85,10625,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,7,5,2005,2005,Gable,CompShg,CemntBd,CmentBd,None,0,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1026,1026,GasA,Ex,Y,SBrkr,1026,932,0,1958,0,0,2,1,3,1,Gd,9,Typ,1,Gd,Attchd,2005,Fin,3,936,TA,TA,Y,154,210,0,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,250000 +1376,20,RL,89,10991,Pave,NA,IR1,HLS,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,BrkFace,80,Gd,TA,PConc,Gd,TA,Gd,Unf,0,Unf,0,1571,1571,GasA,Ex,Y,SBrkr,1571,0,0,1571,0,0,2,0,3,1,Gd,7,Typ,1,Gd,Attchd,2007,Fin,3,722,TA,TA,Y,100,36,0,0,0,0,NA,NA,NA,0,12,2007,New,Partial,239000 +1377,30,RL,52,6292,Pave,NA,Reg,Bnk,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1Story,6,5,1930,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Gd,TA,Mn,Rec,384,Unf,0,384,768,GasA,TA,N,SBrkr,790,0,0,790,0,0,1,0,2,1,TA,4,Typ,0,NA,Detchd,1925,Unf,1,160,Fa,TA,Y,0,141,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal,91000 +1378,50,RL,60,10998,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,5,5,1941,1960,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,LwQ,408,BLQ,420,156,984,GasA,Ex,Y,SBrkr,984,620,0,1604,0,0,2,0,3,1,TA,6,Min2,0,NA,Detchd,1977,Unf,2,660,TA,TA,Y,0,68,0,0,0,0,NA,NA,NA,0,7,2009,WD,Normal,117000 +1379,160,RM,21,1953,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrDale,Norm,Norm,Twnhs,2Story,6,5,1973,1973,Gable,CompShg,HdBoard,HdBoard,BrkFace,408,TA,TA,CBlock,TA,Fa,No,BLQ,309,Unf,0,174,483,GasA,TA,Y,SBrkr,483,504,0,987,0,0,1,1,2,1,TA,5,Typ,0,NA,Detchd,1973,Unf,1,264,TA,TA,Y,72,0,0,0,0,0,NA,NA,NA,0,6,2006,WD,Normal,83000 +1380,80,RL,73,9735,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,SLvl,5,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,384,384,GasA,Gd,Y,NA,754,640,0,1394,0,0,2,1,3,1,Gd,7,Typ,0,NA,BuiltIn,2007,Fin,2,400,TA,TA,Y,100,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,167500 +1381,30,RL,45,8212,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,3,3,1914,1950,Gable,CompShg,Stucco,Stucco,None,0,TA,Fa,BrkTil,TA,Fa,No,Rec,203,Unf,0,661,864,GasA,TA,N,FuseF,864,0,0,864,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1938,Unf,1,200,TA,Fa,Y,0,0,96,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,58500 +1382,20,RL,NA,12925,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,7,1970,1970,Gable,CompShg,BrkFace,Plywood,None,0,TA,TA,CBlock,TA,TA,Mn,BLQ,865,Unf,0,340,1205,GasA,Ex,Y,SBrkr,2117,0,0,2117,0,0,2,1,4,1,TA,7,Typ,2,Gd,Attchd,1970,Fin,2,550,TA,TA,Y,0,42,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,237500 +1383,70,RM,60,7200,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,2Story,7,7,1920,1950,Hip,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Fa,TA,No,Unf,0,Unf,0,596,596,GasA,Ex,Y,SBrkr,998,764,0,1762,1,0,1,1,4,1,Gd,8,Typ,0,NA,Detchd,1989,Unf,2,576,TA,TA,N,36,0,221,0,0,0,NA,NA,NA,0,10,2006,WD,Normal,157000 +1384,30,RL,NA,25339,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,1Story,5,7,1918,2007,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,BrkTil,TA,TA,No,Unf,0,Unf,0,816,816,GasA,Ex,Y,SBrkr,1416,0,0,1416,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2007,Unf,2,576,TA,TA,N,0,0,112,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,112000 +1385,50,RL,60,9060,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1.5Fin,6,5,1939,1950,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,BrkTil,TA,TA,Mn,Rec,204,Unf,0,356,560,GasA,TA,Y,SBrkr,698,560,0,1258,0,0,1,0,2,1,TA,6,Typ,0,NA,Detchd,1939,Unf,1,280,TA,TA,P,0,0,0,0,0,0,NA,MnPrv,NA,0,10,2009,WD,Normal,105000 +1386,50,RM,40,5436,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,IDOTRR,Norm,Norm,1Fam,1.5Fin,4,8,1922,2007,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,BrkTil,TA,TA,No,BLQ,735,Unf,0,61,796,GasA,Gd,Y,SBrkr,796,358,0,1154,1,0,1,0,3,1,Gd,7,Typ,0,NA,Detchd,1922,Unf,1,240,TA,TA,N,0,96,0,0,0,0,NA,MnPrv,NA,0,5,2010,WD,Normal,125500 +1387,60,RL,80,16692,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NWAmes,RRAn,Norm,1Fam,2Story,7,5,1978,1978,Gable,CompShg,Plywood,Plywood,BrkFace,184,TA,TA,CBlock,Gd,TA,No,BLQ,790,LwQ,469,133,1392,GasA,TA,Y,SBrkr,1392,1392,0,2784,1,0,3,1,5,1,Gd,12,Typ,2,TA,Attchd,1978,RFn,2,564,TA,TA,Y,0,112,0,0,440,519,Fa,MnPrv,TenC,2000,7,2006,WD,Normal,250000 +1388,50,RM,60,8520,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1.5Fin,6,7,1916,1950,Gable,CompShg,Stucco,Stucco,None,0,TA,Gd,BrkTil,TA,TA,No,Rec,168,LwQ,546,0,714,GasW,TA,N,SBrkr,1664,862,0,2526,0,0,2,0,5,1,Gd,10,Typ,1,Gd,Detchd,1916,Unf,1,216,TA,TA,Y,88,15,0,0,0,0,NA,GdWo,NA,0,8,2007,CWD,Family,136000 +1389,20,RL,42,14892,Pave,NA,IR1,HLS,AllPub,CulDSac,Gtl,Gilbert,Norm,Norm,1Fam,1Story,9,5,2006,2007,Gable,CompShg,VinylSd,VinylSd,Stone,160,Ex,TA,PConc,Ex,TA,Gd,GLQ,1320,Unf,0,426,1746,GasA,Ex,Y,SBrkr,1746,0,0,1746,1,0,2,0,3,1,Ex,7,Typ,2,Gd,Attchd,2006,Fin,3,758,TA,TA,Y,201,39,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal,377500 +1390,50,RM,60,6000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,6,1941,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,Gd,BrkTil,TA,Gd,No,ALQ,375,Unf,0,360,735,GasA,Ex,Y,SBrkr,869,349,0,1218,0,1,1,0,3,1,TA,6,Typ,1,Gd,Detchd,2003,Unf,2,440,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,3,2007,WD,Normal,131000 +1391,20,RL,70,9100,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,244,Gd,TA,PConc,Gd,TA,Av,GLQ,1400,Unf,0,125,1525,GasA,Ex,Y,SBrkr,1525,0,0,1525,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2000,RFn,2,541,TA,TA,Y,219,36,0,0,0,0,NA,NA,NA,0,9,2006,WD,Normal,235000 +1392,90,RL,65,8944,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,Duplex,1Story,5,5,1967,1967,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1584,1584,GasA,TA,Y,SBrkr,1584,0,0,1584,0,0,2,0,4,2,TA,8,Mod,0,NA,Detchd,1967,Unf,3,792,TA,TA,Y,0,152,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal,124000 +1393,85,RL,68,7838,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,SFoyer,5,5,1967,1967,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,Av,ALQ,769,Unf,0,95,864,GasA,TA,Y,SBrkr,900,0,0,900,1,0,1,0,3,1,TA,6,Typ,1,Po,Attchd,1967,RFn,1,288,TA,TA,Y,175,144,0,0,0,0,NA,MnWw,NA,0,12,2006,WD,Normal,123000 +1394,190,RM,60,10800,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,2fmCon,1.5Fin,6,7,1905,2000,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,Fa,TA,No,Unf,0,Unf,0,482,482,GasA,Ex,N,SBrkr,1221,691,0,1912,0,0,2,0,3,2,TA,7,Typ,1,TA,Detchd,2003,Unf,2,672,Gd,TA,Y,0,25,212,0,0,0,NA,NA,NA,0,4,2008,WD,Normal,163000 +1395,120,RL,53,4045,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2006,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,45,Gd,TA,PConc,Gd,TA,Av,GLQ,1070,Unf,0,286,1356,GasA,Ex,Y,SBrkr,1500,0,0,1500,1,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2006,Fin,3,648,TA,TA,Y,161,20,0,0,0,0,NA,NA,NA,0,10,2006,New,Partial,246578 +1396,60,RL,88,12665,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Timber,Norm,Norm,1Fam,2Story,8,5,2005,2006,Hip,CompShg,VinylSd,VinylSd,BrkFace,245,Gd,TA,PConc,Gd,Gd,Gd,Unf,0,Unf,0,1094,1094,GasA,Ex,Y,SBrkr,1133,1349,0,2482,0,0,2,1,4,1,Gd,9,Typ,1,Gd,BuiltIn,2005,Fin,3,642,TA,TA,Y,144,39,0,0,0,0,NA,NA,NA,0,2,2007,WD,Normal,281213 +1397,20,RL,NA,57200,Pave,NA,IR1,Bnk,AllPub,Inside,Sev,Timber,Norm,Norm,1Fam,1Story,5,5,1948,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,Av,BLQ,353,Rec,334,60,747,GasA,TA,Y,SBrkr,1687,0,0,1687,1,0,1,0,3,1,TA,7,Min1,2,TA,Detchd,1966,Unf,2,572,TA,TA,N,0,0,50,0,0,0,NA,NA,NA,0,6,2010,WD,Normal,160000 +1398,70,RM,51,6120,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,2Story,5,8,1920,2004,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,TA,TA,Mn,Unf,0,Unf,0,939,939,GasA,Ex,Y,SBrkr,939,574,0,1513,0,0,1,1,4,1,TA,8,Typ,0,NA,Detchd,1933,Unf,1,180,Fa,Fa,N,24,0,150,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,137500 +1399,50,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1.5Fin,5,4,1950,1982,Gable,CompShg,VinylSd,Wd Sdng,None,0,TA,TA,CBlock,TA,TA,No,Rec,180,BLQ,352,676,1208,GasA,Gd,Y,FuseA,1136,768,0,1904,1,0,1,1,3,1,TA,7,Min1,0,NA,Attchd,1950,Unf,1,240,TA,TA,Y,0,0,168,0,0,0,NA,GdPrv,NA,0,5,2009,WD,Normal,138000 +1400,50,RL,51,6171,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,SWISU,Norm,Norm,1Fam,1.5Fin,6,6,1925,1990,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,BrkTil,TA,TA,No,BLQ,264,Unf,0,712,976,GasA,Ex,Y,SBrkr,1160,448,0,1608,0,0,2,1,3,1,Gd,7,Typ,1,Gd,Detchd,1925,Unf,1,216,Fa,TA,Y,147,16,0,0,0,0,NA,MnPrv,NA,0,10,2009,WD,Normal,137450 +1401,50,RM,50,6000,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,7,1929,1950,Gable,CompShg,WdShing,Wd Shng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,862,862,GasA,TA,Y,SBrkr,950,208,0,1158,0,0,1,0,3,1,TA,5,Typ,1,Gd,BuiltIn,1929,RFn,1,208,TA,TA,Y,0,0,112,0,0,0,NA,NA,NA,0,7,2008,WD,Normal,120000 +1402,60,RL,62,7415,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,TA,TA,No,GLQ,759,Unf,0,80,839,GasA,Ex,Y,SBrkr,864,729,0,1593,1,0,2,1,3,1,TA,8,Typ,1,TA,Attchd,2004,Fin,2,398,TA,TA,Y,100,75,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal,193000 +1403,20,RL,64,6762,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,Gd,Av,Unf,0,Unf,0,1286,1286,GasA,Ex,Y,SBrkr,1294,0,0,1294,0,0,2,0,2,1,Gd,6,Typ,1,Gd,Attchd,2006,RFn,2,662,TA,TA,Y,168,55,0,0,0,0,NA,NA,NA,0,7,2006,New,Partial,193879 +1404,20,RL,49,15256,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Somerst,RRAn,Norm,1Fam,1Story,8,5,2007,2007,Gable,CompShg,VinylSd,VinylSd,Stone,84,Gd,TA,PConc,Gd,TA,Gd,GLQ,929,Unf,0,556,1485,GasA,Ex,Y,SBrkr,1464,0,0,1464,1,0,2,0,3,1,Gd,6,Typ,0,NA,Attchd,2007,Unf,3,754,TA,TA,Y,168,160,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,282922 +1405,50,RL,60,10410,Pave,Grvl,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Artery,Norm,1Fam,1.5Fin,3,4,1915,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,672,672,GasA,TA,Y,SBrkr,694,520,0,1214,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1998,Unf,3,936,TA,TA,Y,216,0,160,0,0,0,NA,MnPrv,NA,0,1,2006,WD,Family,105000 +1406,120,RM,44,3842,Pave,NA,IR1,HLS,AllPub,Inside,Mod,Crawfor,Norm,Norm,TwnhsE,1Story,8,5,2004,2005,Hip,CompShg,CemntBd,CmentBd,Stone,174,Gd,TA,PConc,Ex,TA,Gd,GLQ,1373,Unf,0,221,1594,GasA,Ex,Y,SBrkr,1646,0,0,1646,1,1,2,0,2,1,Gd,5,Typ,1,Gd,Attchd,2004,Fin,2,482,TA,TA,Y,128,53,0,0,155,0,NA,NA,NA,0,1,2008,WD,Normal,275000 +1407,85,RL,70,8445,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,CollgCr,Norm,Norm,1Fam,SFoyer,5,7,1972,2007,Gable,CompShg,HdBoard,Wd Shng,None,0,TA,TA,CBlock,Gd,TA,Av,GLQ,656,Unf,0,112,768,GasA,TA,Y,SBrkr,768,0,0,768,1,0,1,0,2,1,TA,5,Typ,0,NA,Detchd,1988,Unf,2,396,TA,TA,Y,58,0,0,0,0,0,NA,MnPrv,NA,0,3,2009,WD,Normal,133000 +1408,20,RL,NA,8780,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,5,1985,1985,Gable,CompShg,HdBoard,Plywood,None,0,TA,TA,CBlock,TA,TA,No,ALQ,625,Unf,0,208,833,GasA,Ex,Y,SBrkr,833,0,0,833,1,0,1,0,3,1,TA,5,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,3,2009,WD,Normal,112000 +1409,70,RM,60,7740,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,2Story,4,7,1910,1950,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,Fa,TA,No,Unf,0,Unf,0,622,622,GasA,Gd,Y,SBrkr,741,622,0,1363,0,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1966,Unf,2,528,TA,TA,Y,0,0,0,0,168,0,NA,NA,NA,0,6,2010,WD,Normal,125500 +1410,60,RL,46,20544,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,NWAmes,Norm,Norm,1Fam,2Story,7,6,1986,1991,Gable,CompShg,Plywood,Plywood,BrkFace,123,TA,Gd,CBlock,Gd,TA,No,Unf,0,Unf,0,791,791,GasA,Gd,Y,SBrkr,1236,857,0,2093,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1986,Fin,2,542,TA,TA,Y,364,63,0,0,0,0,NA,MnPrv,NA,0,11,2008,WD,Normal,215000 +1411,60,RL,79,12420,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,7,5,2001,2001,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,666,Unf,0,278,944,GasA,Ex,Y,SBrkr,944,896,0,1840,1,0,2,1,3,1,Gd,6,Typ,0,NA,Attchd,2001,RFn,2,622,TA,TA,Y,0,45,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,230000 +1412,50,RL,80,9600,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1.5Fin,6,8,1950,2005,Gable,CompShg,VinylSd,VinylSd,None,0,TA,Gd,CBlock,TA,TA,No,BLQ,120,Unf,0,736,856,GasA,Ex,Y,SBrkr,1112,556,0,1668,0,0,1,1,3,1,TA,6,Min2,0,NA,Attchd,1950,Unf,1,271,TA,TA,Y,0,0,0,0,0,0,NA,MnPrv,NA,0,9,2009,WD,Normal,140000 +1413,90,RL,60,7200,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,Duplex,1Story,4,5,1949,1950,Gable,CompShg,BrkFace,Stone,None,0,TA,TA,Slab,NA,NA,NA,NA,0,NA,0,0,0,Wall,Fa,N,FuseF,1040,0,0,1040,0,0,2,0,2,2,TA,6,Typ,0,NA,Detchd,1956,Unf,2,420,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,6,2009,WD,Normal,90000 +1414,20,RL,88,10994,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,SawyerW,Norm,Norm,1Fam,1Story,8,5,2005,2006,Gable,CompShg,VinylSd,VinylSd,Stone,366,Gd,TA,PConc,Gd,Gd,No,GLQ,976,Unf,0,868,1844,GasA,Ex,Y,SBrkr,1844,0,0,1844,1,0,2,0,2,1,Gd,7,Typ,1,Gd,Attchd,2005,Fin,2,620,TA,TA,Y,165,44,0,0,0,0,NA,NA,NA,0,9,2009,COD,Abnorml,257000 +1415,50,RL,64,13053,Pave,Pave,Reg,Bnk,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Fin,6,7,1923,2000,Gambrel,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,833,833,GasA,Gd,Y,SBrkr,1053,795,0,1848,0,0,1,1,4,1,Gd,8,Typ,1,Gd,Detchd,1922,Unf,2,370,TA,TA,N,0,0,0,0,220,0,NA,NA,NA,0,6,2008,WD,Normal,207000 +1416,120,RL,51,3635,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Blmngtn,Norm,Norm,TwnhsE,1Story,7,5,2007,2007,Hip,CompShg,VinylSd,VinylSd,BrkFace,130,Gd,TA,PConc,Gd,TA,No,ALQ,988,Unf,0,398,1386,GasA,Ex,Y,SBrkr,1569,0,0,1569,0,1,2,0,1,1,Gd,7,Typ,1,TA,Attchd,2007,RFn,3,660,TA,TA,Y,143,20,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,175900 +1417,190,RM,60,11340,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,2fmCon,2Story,4,6,1885,1950,Gable,CompShg,VinylSd,AsbShng,None,0,TA,TA,PConc,TA,TA,No,Unf,0,Unf,0,777,777,GasA,Gd,Y,SBrkr,1246,1044,0,2290,0,0,2,0,4,2,TA,11,Typ,0,NA,Detchd,1971,Unf,2,560,TA,TA,N,0,0,114,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,122500 +1418,60,RL,NA,16545,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,8,5,1998,1998,Gable,CompShg,VinylSd,VinylSd,BrkFace,731,Gd,TA,PConc,Gd,TA,Mn,GLQ,781,Unf,0,503,1284,GasA,Ex,Y,SBrkr,1310,1140,0,2450,1,0,2,1,3,1,Gd,7,Typ,1,TA,Attchd,1998,Fin,3,1069,TA,TA,Y,0,126,0,0,0,0,NA,NA,NA,0,5,2009,WD,Normal,340000 +1419,20,RL,71,9204,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1963,1963,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,BLQ,25,Rec,872,247,1144,GasA,TA,Y,SBrkr,1144,0,0,1144,1,0,1,1,3,1,TA,6,Typ,0,NA,Detchd,1962,Unf,1,336,TA,TA,Y,0,88,0,0,0,0,NA,NA,NA,0,8,2008,COD,Normal,124000 +1420,20,RL,NA,16381,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,1Story,6,5,1969,1969,Gable,CompShg,Plywood,Plywood,BrkFace,312,Gd,Gd,CBlock,TA,TA,Av,Rec,1110,Unf,0,734,1844,GasA,Gd,Y,SBrkr,1844,0,0,1844,1,0,2,0,3,1,Gd,7,Typ,1,TA,Attchd,1969,RFn,2,540,TA,TA,Y,0,73,216,0,0,0,NA,NA,NA,0,12,2006,WD,Normal,223000 +1421,60,RL,90,11700,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,NWAmes,Norm,Norm,1Fam,2Story,6,6,1968,1968,Gable,CompShg,HdBoard,HdBoard,BrkFace,420,TA,TA,CBlock,TA,TA,No,ALQ,404,Unf,0,304,708,GasA,Gd,Y,SBrkr,708,708,0,1416,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1968,RFn,2,776,TA,TA,Y,0,169,0,0,119,0,NA,NA,NA,0,5,2006,WD,Normal,179900 +1422,120,RL,53,4043,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NPkVill,Norm,Norm,TwnhsE,1Story,6,5,1977,1977,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,No,ALQ,360,Unf,0,709,1069,GasA,TA,Y,SBrkr,1069,0,0,1069,0,0,2,0,2,1,TA,4,Typ,1,Fa,Attchd,1977,RFn,2,440,TA,TA,Y,0,55,0,0,165,0,NA,NA,NA,0,7,2010,WD,Normal,127500 +1423,120,RM,37,4435,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,TwnhsE,1Story,6,5,2003,2003,Gable,CompShg,VinylSd,VinylSd,BrkFace,170,Gd,TA,PConc,Gd,TA,Av,GLQ,686,Unf,0,162,848,GasA,Ex,Y,SBrkr,848,0,0,848,1,0,1,0,1,1,Gd,3,Typ,0,NA,Attchd,2003,Fin,2,420,TA,TA,Y,140,0,0,0,0,0,NA,NA,NA,0,3,2008,WD,Normal,136500 +1424,80,RL,NA,19690,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Edwards,Norm,Norm,1Fam,SLvl,6,7,1966,1966,Flat,Tar&Grv,Plywood,Plywood,None,0,Gd,Gd,CBlock,Gd,TA,Av,Unf,0,Unf,0,697,697,GasA,TA,Y,SBrkr,1575,626,0,2201,0,0,2,0,4,1,Gd,8,Typ,1,Gd,Attchd,1966,Unf,2,432,Gd,Gd,Y,586,236,0,0,0,738,Gd,GdPrv,NA,0,8,2006,WD,Alloca,274970 +1425,20,RL,NA,9503,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,5,1958,1983,Hip,CompShg,HdBoard,HdBoard,None,0,TA,TA,CBlock,TA,TA,No,ALQ,457,Rec,374,193,1024,GasA,TA,Y,SBrkr,1344,0,0,1344,1,0,1,0,2,1,TA,6,Min1,1,TA,Detchd,1970,Unf,1,484,TA,TA,Y,316,28,0,0,0,0,NA,GdWo,NA,0,6,2007,WD,Normal,144000 +1426,20,RL,80,10721,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,6,1959,1959,Hip,CompShg,HdBoard,HdBoard,Stone,243,Gd,TA,CBlock,TA,TA,No,Unf,0,Unf,0,1252,1252,GasA,Ex,Y,SBrkr,1252,0,0,1252,0,0,1,0,3,1,Gd,7,Typ,0,NA,Detchd,1960,Unf,2,528,TA,TA,Y,0,39,0,0,0,0,NA,NA,NA,0,10,2008,WD,Normal,142000 +1427,60,RL,81,10944,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NoRidge,Norm,Norm,1Fam,2Story,7,5,1994,1994,Gable,CompShg,VinylSd,VinylSd,BrkFace,448,Gd,TA,PConc,Gd,TA,No,GLQ,1000,Unf,0,223,1223,GasA,Ex,Y,SBrkr,1223,904,0,2127,1,0,2,1,3,1,Gd,5,Typ,2,TA,Attchd,1994,RFn,2,525,TA,TA,Y,171,132,0,0,0,0,NA,NA,NA,0,8,2008,WD,Normal,271000 +1428,50,RL,60,10930,Pave,Grvl,Reg,Bnk,AllPub,Inside,Gtl,NAmes,Artery,Norm,1Fam,1.5Fin,5,6,1945,1950,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,BLQ,580,Unf,0,333,913,GasA,TA,Y,FuseA,1048,510,0,1558,1,0,1,1,3,1,TA,6,Typ,1,TA,Attchd,1962,Unf,1,288,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,4,2008,WD,Normal,140000 +1429,30,RM,60,7200,Pave,NA,Reg,Lvl,AllPub,Corner,Gtl,OldTown,Norm,Norm,1Fam,1Story,5,7,1940,1992,Gable,CompShg,MetalSd,MetalSd,Stone,294,TA,Gd,CBlock,TA,TA,No,BLQ,510,Unf,0,278,788,GasA,TA,Y,SBrkr,804,0,0,804,1,0,1,0,2,1,Gd,4,Typ,2,Gd,Attchd,1940,Unf,1,240,TA,TA,Y,0,0,154,0,0,0,NA,MnPrv,NA,0,2,2010,WD,Abnorml,119000 +1430,20,RL,NA,12546,Pave,NA,IR1,Lvl,AllPub,Corner,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,7,1981,1981,Gable,CompShg,MetalSd,MetalSd,BrkFace,310,Gd,Gd,CBlock,Gd,TA,No,BLQ,678,Unf,0,762,1440,GasA,Ex,Y,SBrkr,1440,0,0,1440,0,0,2,0,3,1,Gd,7,Typ,1,TA,Attchd,1981,Fin,2,467,TA,TA,Y,0,0,99,0,0,0,NA,NA,NA,0,4,2007,WD,Normal,182900 +1431,60,RL,60,21930,Pave,NA,IR3,Lvl,AllPub,Inside,Gtl,Gilbert,RRAn,Norm,1Fam,2Story,5,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,Gd,Av,Unf,0,Unf,0,732,732,GasA,Ex,Y,SBrkr,734,1104,0,1838,0,0,2,1,4,1,TA,7,Typ,1,Gd,BuiltIn,2005,Fin,2,372,TA,TA,Y,100,40,0,0,0,0,NA,NA,NA,0,7,2006,WD,Normal,192140 +1432,120,RL,NA,4928,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,NPkVill,Norm,Norm,TwnhsE,1Story,6,6,1976,1976,Gable,CompShg,Plywood,Plywood,None,0,TA,TA,CBlock,Gd,TA,No,LwQ,958,Unf,0,0,958,GasA,TA,Y,SBrkr,958,0,0,958,0,0,2,0,2,1,TA,5,Typ,0,NA,Attchd,1976,RFn,2,440,TA,TA,Y,0,60,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal,143750 +1433,30,RL,60,10800,Pave,Grvl,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Norm,Norm,1Fam,1Story,4,6,1927,2007,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,656,656,GasA,TA,Y,SBrkr,968,0,0,968,0,0,2,0,4,1,TA,5,Typ,0,NA,Detchd,1928,Unf,1,216,Fa,Fa,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,64500 +1434,60,RL,93,10261,Pave,NA,IR1,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,2000,2000,Gable,CompShg,VinylSd,VinylSd,BrkFace,318,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,936,936,GasA,Ex,Y,SBrkr,962,830,0,1792,1,0,2,1,3,1,TA,8,Typ,1,TA,Attchd,2000,Fin,2,451,TA,TA,Y,0,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,186500 +1435,20,RL,80,17400,Pave,NA,Reg,Low,AllPub,Inside,Mod,Mitchel,Norm,Norm,1Fam,1Story,5,5,1977,1977,Gable,CompShg,BrkFace,BrkFace,None,0,TA,TA,CBlock,TA,TA,No,ALQ,936,Unf,0,190,1126,GasA,Fa,Y,SBrkr,1126,0,0,1126,1,0,2,0,3,1,TA,5,Typ,1,Gd,Attchd,1977,RFn,2,484,TA,TA,P,295,41,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,160000 +1436,20,RL,80,8400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,6,9,1962,2005,Gable,CompShg,Wd Sdng,Wd Sdng,BrkFace,237,Gd,Gd,CBlock,TA,TA,No,Unf,0,Unf,0,1319,1319,GasA,TA,Y,SBrkr,1537,0,0,1537,1,0,1,1,3,1,Gd,7,Typ,1,Gd,Attchd,1962,RFn,2,462,TA,TA,Y,0,36,0,0,0,0,NA,GdPrv,NA,0,7,2008,COD,Abnorml,174000 +1437,20,RL,60,9000,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NAmes,Norm,Norm,1Fam,1Story,4,6,1971,1971,Gable,CompShg,HdBoard,HdBoard,None,0,TA,TA,PConc,TA,TA,No,ALQ,616,Unf,0,248,864,GasA,TA,Y,SBrkr,864,0,0,864,0,0,1,0,3,1,TA,5,Typ,0,NA,Detchd,1974,Unf,2,528,TA,TA,Y,0,0,0,0,0,0,NA,GdWo,NA,0,5,2007,WD,Normal,120500 +1438,20,RL,96,12444,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NridgHt,Norm,Norm,1Fam,1Story,8,5,2008,2008,Hip,CompShg,VinylSd,VinylSd,Stone,426,Ex,TA,PConc,Ex,TA,Av,GLQ,1336,Unf,0,596,1932,GasA,Ex,Y,SBrkr,1932,0,0,1932,1,0,2,0,2,1,Ex,7,Typ,1,Gd,Attchd,2008,Fin,3,774,TA,TA,Y,0,66,0,304,0,0,NA,NA,NA,0,11,2008,New,Partial,394617 +1439,20,RM,90,7407,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,OldTown,Artery,Norm,1Fam,1Story,6,7,1957,1996,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,No,GLQ,600,Unf,0,312,912,GasA,TA,Y,FuseA,1236,0,0,1236,1,0,1,0,2,1,TA,6,Typ,0,NA,Attchd,1957,Unf,2,923,TA,TA,Y,0,158,158,0,0,0,NA,MnPrv,NA,0,4,2010,WD,Normal,149700 +1440,60,RL,80,11584,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,SLvl,7,6,1979,1979,Hip,CompShg,HdBoard,HdBoard,BrkFace,96,TA,TA,CBlock,TA,TA,No,GLQ,315,Rec,110,114,539,GasA,TA,Y,SBrkr,1040,685,0,1725,0,0,2,1,3,1,TA,6,Typ,1,TA,Attchd,1979,RFn,2,550,TA,TA,Y,0,88,216,0,0,0,NA,NA,NA,0,11,2007,WD,Normal,197000 +1441,70,RL,79,11526,Pave,NA,IR1,Bnk,AllPub,Inside,Mod,Crawfor,Norm,Norm,1Fam,2.5Fin,6,7,1922,1994,Gable,CompShg,MetalSd,MetalSd,None,0,TA,TA,BrkTil,Ex,TA,No,Unf,0,Unf,0,588,588,GasA,Fa,Y,SBrkr,1423,748,384,2555,0,0,2,0,3,1,TA,11,Min1,1,Gd,Detchd,1993,Fin,2,672,TA,TA,Y,431,0,0,0,0,0,NA,NA,NA,0,9,2008,WD,Normal,191000 +1442,120,RM,NA,4426,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,TwnhsE,1Story,6,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,147,Gd,TA,PConc,Gd,TA,Av,GLQ,697,Unf,0,151,848,GasA,Ex,Y,SBrkr,848,0,0,848,1,0,1,0,1,1,Gd,3,Typ,1,TA,Attchd,2004,RFn,2,420,TA,TA,Y,149,0,0,0,0,0,NA,NA,NA,0,5,2008,WD,Normal,149300 +1443,60,FV,85,11003,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,2Story,10,5,2008,2008,Gable,CompShg,VinylSd,VinylSd,Stone,160,Ex,TA,PConc,Ex,TA,Av,GLQ,765,Unf,0,252,1017,GasA,Ex,Y,SBrkr,1026,981,0,2007,1,0,2,1,3,1,Ex,10,Typ,1,Ex,Attchd,2008,Fin,3,812,TA,TA,Y,168,52,0,0,0,0,NA,NA,NA,0,4,2009,WD,Normal,310000 +1444,30,RL,NA,8854,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,BrkSide,Norm,Norm,1Fam,1.5Unf,6,6,1916,1950,Gable,CompShg,Wd Sdng,Wd Sdng,None,0,TA,TA,BrkTil,TA,TA,No,Unf,0,Unf,0,952,952,Grav,Fa,N,FuseF,952,0,0,952,0,0,1,0,2,1,Fa,4,Typ,1,Gd,Detchd,1916,Unf,1,192,Fa,Po,P,0,98,0,0,40,0,NA,NA,NA,0,5,2009,WD,Normal,121000 +1445,20,RL,63,8500,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,CollgCr,Norm,Norm,1Fam,1Story,7,5,2004,2004,Gable,CompShg,VinylSd,VinylSd,BrkFace,106,Gd,TA,PConc,Gd,TA,Av,Unf,0,Unf,0,1422,1422,GasA,Ex,Y,SBrkr,1422,0,0,1422,0,0,2,0,3,1,Gd,7,Typ,0,NA,Attchd,2004,RFn,2,626,TA,TA,Y,192,60,0,0,0,0,NA,NA,NA,0,11,2007,WD,Normal,179600 +1446,85,RL,70,8400,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Sawyer,Norm,Norm,1Fam,SFoyer,6,5,1966,1966,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,TA,TA,Gd,LwQ,187,Rec,627,0,814,GasA,Gd,Y,SBrkr,913,0,0,913,1,0,1,0,3,1,TA,6,Typ,0,NA,Detchd,1990,Unf,1,240,TA,TA,Y,0,0,252,0,0,0,NA,NA,NA,0,5,2007,WD,Normal,129000 +1447,20,RL,NA,26142,Pave,NA,IR1,Lvl,AllPub,CulDSac,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,7,1962,1962,Gable,CompShg,HdBoard,HdBoard,BrkFace,189,TA,TA,CBlock,TA,TA,No,Rec,593,Unf,0,595,1188,GasA,TA,Y,SBrkr,1188,0,0,1188,0,0,1,0,3,1,TA,6,Typ,0,NA,Attchd,1962,Unf,1,312,TA,TA,P,261,39,0,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,157900 +1448,60,RL,80,10000,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,CollgCr,Norm,Norm,1Fam,2Story,8,5,1995,1996,Gable,CompShg,VinylSd,VinylSd,BrkFace,438,Gd,TA,PConc,Gd,TA,No,GLQ,1079,Unf,0,141,1220,GasA,Ex,Y,SBrkr,1220,870,0,2090,1,0,2,1,3,1,Gd,8,Typ,1,TA,Attchd,1995,RFn,2,556,TA,TA,Y,0,65,0,0,0,0,NA,NA,NA,0,12,2007,WD,Normal,240000 +1449,50,RL,70,11767,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,2Story,4,7,1910,2000,Gable,CompShg,MetalSd,HdBoard,None,0,TA,TA,CBlock,Fa,TA,No,Unf,0,Unf,0,560,560,GasA,Gd,N,SBrkr,796,550,0,1346,0,0,1,1,2,1,TA,6,Min2,0,NA,Detchd,1950,Unf,1,384,Fa,TA,Y,168,24,0,0,0,0,NA,GdWo,NA,0,5,2007,WD,Normal,112000 +1450,180,RM,21,1533,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,MeadowV,Norm,Norm,Twnhs,SFoyer,5,7,1970,1970,Gable,CompShg,CemntBd,CmentBd,None,0,TA,TA,CBlock,Gd,TA,Av,GLQ,553,Unf,0,77,630,GasA,Ex,Y,SBrkr,630,0,0,630,1,0,1,0,1,1,Ex,3,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,0,0,0,0,0,0,NA,NA,NA,0,8,2006,WD,Abnorml,92000 +1451,90,RL,60,9000,Pave,NA,Reg,Lvl,AllPub,FR2,Gtl,NAmes,Norm,Norm,Duplex,2Story,5,5,1974,1974,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,CBlock,Gd,TA,No,Unf,0,Unf,0,896,896,GasA,TA,Y,SBrkr,896,896,0,1792,0,0,2,2,4,2,TA,8,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,32,45,0,0,0,0,NA,NA,NA,0,9,2009,WD,Normal,136000 +1452,20,RL,78,9262,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,8,5,2008,2009,Gable,CompShg,CemntBd,CmentBd,Stone,194,Gd,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1573,1573,GasA,Ex,Y,SBrkr,1578,0,0,1578,0,0,2,0,3,1,Ex,7,Typ,1,Gd,Attchd,2008,Fin,3,840,TA,TA,Y,0,36,0,0,0,0,NA,NA,NA,0,5,2009,New,Partial,287090 +1453,180,RM,35,3675,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,TwnhsE,SLvl,5,5,2005,2005,Gable,CompShg,VinylSd,VinylSd,BrkFace,80,TA,TA,PConc,Gd,TA,Gd,GLQ,547,Unf,0,0,547,GasA,Gd,Y,SBrkr,1072,0,0,1072,1,0,1,0,2,1,TA,5,Typ,0,NA,Basment,2005,Fin,2,525,TA,TA,Y,0,28,0,0,0,0,NA,NA,NA,0,5,2006,WD,Normal,145000 +1454,20,RL,90,17217,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Mitchel,Norm,Norm,1Fam,1Story,5,5,2006,2006,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,1140,1140,GasA,Ex,Y,SBrkr,1140,0,0,1140,0,0,1,0,3,1,TA,6,Typ,0,NA,NA,NA,NA,0,0,NA,NA,Y,36,56,0,0,0,0,NA,NA,NA,0,7,2006,WD,Abnorml,84500 +1455,20,FV,62,7500,Pave,Pave,Reg,Lvl,AllPub,Inside,Gtl,Somerst,Norm,Norm,1Fam,1Story,7,5,2004,2005,Gable,CompShg,VinylSd,VinylSd,None,0,Gd,TA,PConc,Gd,TA,No,GLQ,410,Unf,0,811,1221,GasA,Ex,Y,SBrkr,1221,0,0,1221,1,0,2,0,2,1,Gd,6,Typ,0,NA,Attchd,2004,RFn,2,400,TA,TA,Y,0,113,0,0,0,0,NA,NA,NA,0,10,2009,WD,Normal,185000 +1456,60,RL,62,7917,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Gilbert,Norm,Norm,1Fam,2Story,6,5,1999,2000,Gable,CompShg,VinylSd,VinylSd,None,0,TA,TA,PConc,Gd,TA,No,Unf,0,Unf,0,953,953,GasA,Ex,Y,SBrkr,953,694,0,1647,0,0,2,1,3,1,TA,7,Typ,1,TA,Attchd,1999,RFn,2,460,TA,TA,Y,0,40,0,0,0,0,NA,NA,NA,0,8,2007,WD,Normal,175000 +1457,20,RL,85,13175,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NWAmes,Norm,Norm,1Fam,1Story,6,6,1978,1988,Gable,CompShg,Plywood,Plywood,Stone,119,TA,TA,CBlock,Gd,TA,No,ALQ,790,Rec,163,589,1542,GasA,TA,Y,SBrkr,2073,0,0,2073,1,0,2,0,3,1,TA,7,Min1,2,TA,Attchd,1978,Unf,2,500,TA,TA,Y,349,0,0,0,0,0,NA,MnPrv,NA,0,2,2010,WD,Normal,210000 +1458,70,RL,66,9042,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Crawfor,Norm,Norm,1Fam,2Story,7,9,1941,2006,Gable,CompShg,CemntBd,CmentBd,None,0,Ex,Gd,Stone,TA,Gd,No,GLQ,275,Unf,0,877,1152,GasA,Ex,Y,SBrkr,1188,1152,0,2340,0,0,2,0,4,1,Gd,9,Typ,2,Gd,Attchd,1941,RFn,1,252,TA,TA,Y,0,60,0,0,0,0,NA,GdPrv,Shed,2500,5,2010,WD,Normal,266500 +1459,20,RL,68,9717,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,NAmes,Norm,Norm,1Fam,1Story,5,6,1950,1996,Hip,CompShg,MetalSd,MetalSd,None,0,TA,TA,CBlock,TA,TA,Mn,GLQ,49,Rec,1029,0,1078,GasA,Gd,Y,FuseA,1078,0,0,1078,1,0,1,0,2,1,Gd,5,Typ,0,NA,Attchd,1950,Unf,1,240,TA,TA,Y,366,0,112,0,0,0,NA,NA,NA,0,4,2010,WD,Normal,142125 +1460,20,RL,75,9937,Pave,NA,Reg,Lvl,AllPub,Inside,Gtl,Edwards,Norm,Norm,1Fam,1Story,5,6,1965,1965,Gable,CompShg,HdBoard,HdBoard,None,0,Gd,TA,CBlock,TA,TA,No,BLQ,830,LwQ,290,136,1256,GasA,Gd,Y,SBrkr,1256,0,0,1256,1,0,1,1,3,1,TA,6,Typ,0,NA,Attchd,1965,Fin,1,276,TA,TA,Y,736,68,0,0,0,0,NA,NA,NA,0,6,2008,WD,Normal,147500 diff --git a/A Comprehensive Machine Learning Workflow with Python.ipynb b/A Comprehensive Machine Learning Workflow with Python.ipynb new file mode 100644 index 0000000..c749304 --- /dev/null +++ b/A Comprehensive Machine Learning Workflow with Python.ipynb @@ -0,0 +1,967 @@ +{ + "cells": [ + { + "metadata": { + "_uuid": "a8f9622945156d6337ba73c481da2de7efef7384" + }, + "cell_type": "markdown", + "source": "###
A Comprehensive Machine Learning Workflow with Python
\n\n
There are plenty of courses and tutorials that can help you learn machine learning from scratch but here in Kaggle, I want to solve Titanic competition a popular machine learning Dataset as a comprehensive workflow with python packages. \nAfter reading, you can use this workflow to solve other real problems and use it as a template to deal with machine learning problems.
\n
last update: 10/25/2018
\n\n\n\n>###### you may be interested have a look at it: [**10-steps-to-become-a-data-scientist**](https://github.com/mjbahmani/10-steps-to-become-a-data-scientist)\n\n\n---------------------------------------------------------------------\nyou can Fork and Run this kernel on Github:\n\n> ###### [ GitHub](https://github.com/mjbahmani/Machine-Learning-Workflow-with-Python)\n\n-------------------------------------------------------------------------------------------------------------\n **I hope you find this kernel helpful and some UPVOTES would be very much appreciated**\n \n -----------" + }, + { + "metadata": { + "_uuid": "cda11210a88d6484112cbe2c3624225328326c6a" + }, + "cell_type": "markdown", + "source": "## Notebook Content\n* 1- [Introduction](#1)\n * 1- [Courses](#1)\n * 1- [Kaggle kernels](#1)\n * 1- [Ebooks](#1)\n* 2- [Machine learning workflow](#2)\n* 2-1 [Real world Application Vs Competitions](#2)\n\n* 3- [Problem Definition](#3)\n* 3-1 [Problem feature](#4)\n* 3-2 [Aim](#5)\n* 3-3 [Variables](#6)\n* 4-[ Inputs & Outputs](#7)\n* 4-1 [Inputs ](#8)\n* 4-2 [Outputs](#9)\n* 5- [Installation](#10)\n* 5-1 [ jupyter notebook](#11)\n* 5-2[ kaggle kernel](#12)\n* 5-3 [Colab notebook](#13)\n* 5-4 [install python & packages](#14)\n* 5-5 [Loading Packages](#15)\n* 6- [Exploratory data analysis](#16)\n* 6-1 [Data Collection](#17)\n* 6-2 [Visualization](#18)\n* 6-2-1 [Scatter plot](#19)\n* 6-2-2 [Box](#20)\n* 6-2-3 [Histogram](#21)\n* 6-2-4 [Multivariate Plots](#22)\n* 6-2-5 [Violinplots](#23)\n* 6-2-6 [Pair plot](#24)\n* 6-2-7 [Kde plot](#25)\n* 6-2-8 [Joint plot](#26)\n* 6-2-9 [Andrews curves](#27)\n* 6-2-10 [Heatmap](#28)\n* 6-2-11 [Radviz](#29)\n* 6-3 [Data Preprocessing](#30)\n* 6-4 [Data Cleaning](#31)\n* 7- [Model Deployment](#32)\n* 7-1[ KNN](#33)\n* 7-2 [Radius Neighbors Classifier](#34)\n* 7-3 [Logistic Regression](#35)\n* 7-4 [Passive Aggressive Classifier](#36)\n* 7-5 [Naive Bayes](#37)\n* 7-6 [MultinomialNB](#38)\n* 7-7 [BernoulliNB](#39)\n* 7-8 [SVM](#40)\n* 7-9 [Nu-Support Vector Classification](#41)\n* 7-10 [Linear Support Vector Classification](#42)\n* 7-11 [Decision Tree](#43)\n* 7-12 [ExtraTreeClassifier](#44)\n* 7-13 [Neural network](#45)\n* 7-13-1 [What is a Perceptron?](#45)\n* 7-14 [RandomForest](#46)\n* 7-15 [Bagging classifier ](#47)\n* 7-16 [AdaBoost classifier](#48)\n* 7-17 [Gradient Boosting Classifier](#49)\n* 7-18 [Linear Discriminant Analysis](#50)\n* 7-19 [Quadratic Discriminant Analysis](#51)\n* 7-20 [Kmeans](#52)\n* 7-21 [Backpropagation](#53)\n* 9- [Conclusion](#54)\n* 10- [References](#55)" + }, + { + "metadata": { + "_uuid": "750903cc2679d39058f56df6c6c040be02b748df" + }, + "cell_type": "markdown", + "source": "
\n## 1- Introduction\nThis is a **comprehensive ML techniques with python** , that I have spent for more than two months to complete it.\n\nit is clear that everyone in this community is familiar with Titanic dataset but if you need to review your information about the dataset please visit this [link](https://www.kaggle.com/c/titanic/data).\n\nI have tried to help **beginners** in Kaggle how to face machine learning problems. and I think it is a great opportunity for who want to learn machine learning workflow with python completely.\nI have covered most of the methods that are implemented for **Titanic** until **2018**, you can start to learn and review your knowledge about ML with a perfect dataset and try to learn and memorize the workflow for your journey in Data science world.\n## 1-1 Courses\nThere are alot of Online courses that can help you develop your knowledge, here I have just listed some of them:\n\n1. [Machine Learning Certification by Stanford University (Coursera)](https://www.coursera.org/learn/machine-learning/)\n\n2. [Machine Learning A-Z™: Hands-On Python & R In Data Science (Udemy)](https://www.udemy.com/machinelearning/)\n\n3. [Deep Learning Certification by Andrew Ng from deeplearning.ai (Coursera)](https://www.coursera.org/specializations/deep-learning)\n\n4. [Python for Data Science and Machine Learning Bootcamp (Udemy)](Python for Data Science and Machine Learning Bootcamp (Udemy))\n\n5. [Mathematics for Machine Learning by Imperial College London](https://www.coursera.org/specializations/mathematics-machine-learning)\n\n6. [Deep Learning A-Z™: Hands-On Artificial Neural Networks](https://www.udemy.com/deeplearning/)\n\n7. [Complete Guide to TensorFlow for Deep Learning Tutorial with Python](https://www.udemy.com/complete-guide-to-tensorflow-for-deep-learning-with-python/)\n\n8. [Data Science and Machine Learning Tutorial with Python – Hands On](https://www.udemy.com/data-science-and-machine-learning-with-python-hands-on/)\n\n9. [Machine Learning Certification by University of Washington](https://www.coursera.org/specializations/machine-learning)\n\n10. [Data Science and Machine Learning Bootcamp with R](https://www.udemy.com/data-science-and-machine-learning-bootcamp-with-r/)\n11. [Creative Applications of Deep Learning with TensorFlow](https://www.class-central.com/course/kadenze-creative-applications-of-deep-learning-with-tensorflow-6679)\n12. [Neural Networks for Machine Learning](https://www.class-central.com/mooc/398/coursera-neural-networks-for-machine-learning)\n13. [Practical Deep Learning For Coders, Part 1](https://www.class-central.com/mooc/7887/practical-deep-learning-for-coders-part-1)\n14. [Machine Learning](https://www.cs.ox.ac.uk/teaching/courses/2014-2015/ml/index.html)\n\n## 1-2 Kaggle kernels\nI want to thanks **Kaggle team** and all of the **kernel's authors** who develop this huge resources for Data scientists. I have learned from The work of others and I have just listed some more important kernels that inspired my work and I've used them in this kernel:\n\n1. [https://www.kaggle.com/ash316/eda-to-prediction-dietanic](https://www.kaggle.com/ash316/eda-to-prediction-dietanic)\n\n2. [https://www.kaggle.com/mrisdal/exploring-survival-on-the-titanic](https://www.kaggle.com/mrisdal/exploring-survival-on-the-titanic)\n\n3. [https://www.kaggle.com/yassineghouzam/titanic-top-4-with-ensemble-modeling](https://www.kaggle.com/yassineghouzam/titanic-top-4-with-ensemble-modeling)\n\n4. [https://www.kaggle.com/ldfreeman3/a-data-science-framework-to-achieve-99-accuracy](https://www.kaggle.com/ldfreeman3/a-data-science-framework-to-achieve-99-accuracy)\n\n5. [https://www.kaggle.com/startupsci/titanic-data-science-solutions](https://www.kaggle.com/startupsci/titanic-data-science-solutions)\n## 1-3 Ebooks\nSo you love reading , here is **10 free machine learning books**\n1. [Probability and Statistics for Programmers](http://www.greenteapress.com/thinkstats/)\n2. [Bayesian Reasoning and Machine Learning](http://web4.cs.ucl.ac.uk/staff/D.Barber/textbook/091117.pdf)\n2. [An Introduction to Statistical Learning](http://www-bcf.usc.edu/~gareth/ISL/)\n2. [Understanding Machine Learning](http://www.cs.huji.ac.il/~shais/UnderstandingMachineLearning/index.html)\n2. [A Programmer’s Guide to Data Mining](http://guidetodatamining.com/)\n2. [Mining of Massive Datasets](http://infolab.stanford.edu/~ullman/mmds/book.pdf)\n2. [A Brief Introduction to Neural Networks](http://www.dkriesel.com/_media/science/neuronalenetze-en-zeta2-2col-dkrieselcom.pdf)\n2. [Deep Learning](http://www.deeplearningbook.org/)\n2. [Natural Language Processing with Python](https://www.researchgate.net/publication/220691633_Natural_Language_Processing_with_Python)\n2. [Machine Learning Yearning](http://www.mlyearning.org/)\n\n\n\nI am open to getting your feedback for improving this **kernel**\n" + }, + { + "metadata": { + "_uuid": "e11b73b618b0f6e4335520ef80267c6d577d1ba5" + }, + "cell_type": "markdown", + "source": "
\n## 2- Machine Learning Workflow\nField of \tstudy \tthat \tgives\tcomputers\tthe\tability \tto\tlearn \twithout \tbeing explicitly \tprogrammed.\n\n**Arthur\tSamuel, 1959**\n\nIf you have already read some [machine learning books](https://towardsdatascience.com/list-of-free-must-read-machine-learning-books-89576749d2ff). You have noticed that there are different ways to stream data into machine learning.\n\nmost of these books share the following steps (checklist):\n* Define the Problem(Look at the big picture)\n* Specify Inputs & Outputs\n* Data Collection\n* Exploratory data analysis\n* Data Preprocessing\n* Model Design, Training, and Offline Evaluation\n* Model Deployment, Online Evaluation, and Monitoring\n* Model Maintenance, Diagnosis, and Retraining\n\n**You can see my workflow in the below image** :\n \n\n**you should\tfeel free\tto\tadapt \tthis\tchecklist \tto\tyour needs**" + }, + { + "metadata": { + "_uuid": "d8b27260d5ccff025f37490d84bd35bba7eef00a" + }, + "cell_type": "markdown", + "source": "## 2-1 Real world Application Vs Competitions\njust a simple comparison between real-world apps with competitions:\n" + }, + { + "metadata": { + "_uuid": "600be852c0d28e7c0c5ebb718904ab15a536342c" + }, + "cell_type": "markdown", + "source": "
\n## 3- Problem Definition\nI think one of the important things when you start a new machine learning project is Defining your problem. that means you should understand business problem.( **Problem Formalization**)\n\nProblem Definition has four steps that have illustrated in the picture below:\n\n
\n### 3-1 Problem Feature\nThe sinking of the Titanic is one of the most infamous shipwrecks in history. **On April 15, 1912**, during her maiden voyage, the Titanic sank after colliding with an iceberg, killing **1502 out of 2224** passengers and crew. That's why the name DieTanic. This is a very unforgetable disaster that no one in the world can forget.\n\nIt took about $7.5 million to build the Titanic and it sunk under the ocean due to collision. The Titanic Dataset is a very good dataset for begineers to start a journey in data science and participate in competitions in Kaggle.\n\nwe will use the classic titanic data set. This dataset contains information about **11 different variables**:\n\n\n* Survival\n* Pclass\n* Name\n* Sex\n* Age\n* SibSp\n* Parch\n* Ticket\n* Fare\n* Cabin\n* Embarked\n\n\n### 3-3-1 Why am I using titanic dataset\n\n1- This is a good project because it is so well understood.\n\n2- Attributes are numeric and categorical so you have to figure out how to load and handle data.\n\n3- It is a ML problem, allowing you to practice with perhaps an easier type of supervised learning algorithm.\n\n4- we can define problem as clustering(unsupervised algorithm) project too.\n\n5- because we love **Kaggle** :-) .\n\n
\n### 3-2 Aim\nIt is your job to predict if a passenger survived the sinking of the Titanic or not. For each PassengerId in the test set, you must predict a 0 or 1 value for the Survived variable.\n\n
\n### 3-3 Variables\n\n1. **Age** ==>> Age is fractional if less than 1. If the age is estimated, is it in the form of xx.5\n\n2. **Sibsp** ==>> The dataset defines family relations in this way...\n\n a. Sibling = brother, sister, stepbrother, stepsister\n\n b. Spouse = husband, wife (mistresses and fiancés were ignored)\n\n3. **Parch** ==>> The dataset defines family relations in this way...\n\n a. Parent = mother, father\n\n b. Child = daughter, son, stepdaughter, stepson\n\n c. Some children travelled only with a nanny, therefore parch=0 for them.\n\n4. **Pclass** ==>> A proxy for socio-economic status (SES)\n * 1st = Upper\n * 2nd = Middle\n * 3rd = Lower\n5. **Embarked** ==>> nominal datatype \n6. **Name** ==>> nominal datatype . It could be used in feature engineering to derive the gender from title\n7. **Sex** ==>> nominal datatype \n8. **Ticket** ==>> that have no impact on the outcome variable. Thus, they will be excluded from analysis\n9. **Cabin** ==>> is a nominal datatype that can be used in feature engineering\n11. **Fare** ==>> Indicating the fare\n12. **PassengerID ** ==>> have no impact on the outcome variable. Thus, it will be excluded from analysis\n11. **Survival** is ==>> **[dependent variable](http://www.dailysmarty.com/posts/difference-between-independent-and-dependent-variables-in-machine-learning)** , 0 or 1\n### 3-1-1 Types of Features\n\n### Categorical:\n\nA categorical variable is one that has two or more categories and each value in that feature can be categorised by them.For example, gender is a categorical variable having two categories (male and female). Now we cannot sort or give any ordering to such variables. They are also known as Nominal Variables.\n\n**Categorical Features in the dataset: Sex,Embarked.**\n\n### Ordinal:\nAn ordinal variable is similar to categorical values, but the difference between them is that we can have relative ordering or sorting between the values. For eg: If we have a feature like Height with values Tall, Medium, Short, then Height is a ordinal variable. Here we can have a relative sort in the variable.\n\n**Ordinal Features in the dataset: PClass**\n\n### Continous:\nA feature is said to be continous if it can take values between any two points or between the minimum or maximum values in the features column.\n\n**Continous Features in the dataset: Age**\n\n**<< Note >>**\n> You must answer the following question:\nHow does your company expact to use and benfit from your model." + }, + { + "metadata": { + "_uuid": "8bb4dfebb521f83543e1d45db3559216dad8f6fb" + }, + "cell_type": "markdown", + "source": "
\n## 4- Inputs & Outputs\n
\n### 4-1 Inputs\n**Titanic** is a very popular **Machine Learning** problem then I decided to apply it on plenty of machine learning methods.\nThe titanic data set is a **multivariate data set** .\n
\n### 4-2 Outputs\nYour score is the percentage of passengers you correctly predict. This is known simply as \"accuracy”.\n\n\nThe Outputs should have exactly **2 columns**:\n\nPassengerId (sorted in any order)\nSurvived (contains your binary predictions: 1 for survived, 0 for deceased)\n" + }, + { + "metadata": { + "_uuid": "89ee0cda57822cd4102eadf8992c5bfe1964d557" + }, + "cell_type": "markdown", + "source": "
\n## 5-Installation\n#### Windows:\n* Anaconda (from https://www.continuum.io) is a free Python distribution for SciPy stack. It is also available for Linux and Mac.\n* Canopy (https://www.enthought.com/products/canopy/) is available as free as well as commercial distribution with full SciPy stack for Windows, Linux and Mac.\n* Python (x,y) is a free Python distribution with SciPy stack and Spyder IDE for Windows OS. (Downloadable from http://python-xy.github.io/)\n#### Linux\nPackage managers of respective Linux distributions are used to install one or more packages in SciPy stack.\n\nFor Ubuntu Users:\nsudo apt-get install python-numpy python-scipy python-matplotlibipythonipythonnotebook\npython-pandas python-sympy python-nose" + }, + { + "metadata": { + "_uuid": "c1793fb141d3338bbc4300874be6ffa5cb1a9139" + }, + "cell_type": "markdown", + "source": "
\n## 5-1 Jupyter notebook\nI strongly recommend installing **Python** and **Jupyter** using the **[Anaconda Distribution](https://www.anaconda.com/download/)**, which includes Python, the Jupyter Notebook, and other commonly used packages for scientific computing and data science.\n\nFirst, download Anaconda. We recommend downloading Anaconda’s latest Python 3 version.\n\nSecond, install the version of Anaconda which you downloaded, following the instructions on the download page.\n\nCongratulations, you have installed Jupyter Notebook! To run the notebook, run the following command at the Terminal (Mac/Linux) or Command Prompt (Windows):" + }, + { + "metadata": { + "_uuid": "abbd1757dde9805758a2cec47a186e31dbc29822" + }, + "cell_type": "markdown", + "source": "> jupyter notebook\n> " + }, + { + "metadata": { + "_uuid": "8a70c253d5afa93f07a7a7e048dbb2d7812c8d10" + }, + "cell_type": "markdown", + "source": "
\n## 5-2 Kaggle Kernel\nKaggle kernel is an environment just like you use jupyter notebook, it's an **extension** of the where in you are able to carry out all the functions of jupyter notebooks plus it has some added tools like forking et al." + }, + { + "metadata": { + "_uuid": "237bbe4e4509c9491ce165e3599c432b979d7b90" + }, + "cell_type": "markdown", + "source": "
\n## 5-3 Colab notebook\n**Colaboratory** is a research tool for machine learning education and research. It’s a Jupyter notebook environment that requires no setup to use.\n### 5-3-1 What browsers are supported?\nColaboratory works with most major browsers, and is most thoroughly tested with desktop versions of Chrome and Firefox.\n### 5-3-2 Is it free to use?\nYes. Colaboratory is a research project that is free to use.\n### 5-3-3 What is the difference between Jupyter and Colaboratory?\nJupyter is the open source project on which Colaboratory is based. Colaboratory allows you to use and share Jupyter notebooks with others without having to download, install, or run anything on your own computer other than a browser." + }, + { + "metadata": { + "_uuid": "fbedcae8843986c2139f18dad4b5f313e6535ac5" + }, + "cell_type": "markdown", + "source": "
\n## 5-5 Loading Packages\nIn this kernel we are using the following packages:" + }, + { + "metadata": { + "_uuid": "61f49281fdd8592b44c0867225f57e6fce36342c" + }, + "cell_type": "markdown", + "source": " \n" + }, + { + "metadata": { + "_uuid": "c90e261f3b150e10aaec1f34ab3be768acf7aa25" + }, + "cell_type": "markdown", + "source": "### 5-5-1 Import" + }, + { + "metadata": { + "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", + "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn.cross_validation import train_test_split\nfrom sklearn.metrics import classification_report\nfrom sklearn.metrics import confusion_matrix\nfrom sklearn.metrics import accuracy_score\nimport matplotlib.pylab as pylab\nimport matplotlib.pyplot as plt\nfrom pandas import get_dummies\nimport matplotlib as mpl\nimport seaborn as sns\nimport pandas as pd\nimport numpy as np\nimport matplotlib\nimport warnings\nimport sklearn\nimport scipy\nimport numpy\nimport json\nimport sys\nimport csv\nimport os\n\n\nprint('matplotlib: {}'.format(matplotlib.__version__))\nprint('sklearn: {}'.format(sklearn.__version__))\nprint('scipy: {}'.format(scipy.__version__))\nprint('seaborn: {}'.format(sns.__version__))\nprint('pandas: {}'.format(pd.__version__))\nprint('numpy: {}'.format(np.__version__))\nprint('Python: {}'.format(sys.version))\n\n", + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "text": "matplotlib: 2.2.3\nsklearn: 0.19.1\nscipy: 1.1.0\nseaborn: 0.9.0\npandas: 0.23.4\nnumpy: 1.15.2\nPython: 3.6.6 |Anaconda, Inc.| (default, Oct 9 2018, 12:34:16) \n[GCC 7.3.0]\n", + "name": "stdout" + } + ] + }, + { + "metadata": { + "_uuid": "431bf889ae401c1089a13835356c13f2b6a06f6c" + }, + "cell_type": "markdown", + "source": "### 5-5-2 Setup\n\nA few tiny adjustments for better **code readability**" + }, + { + "metadata": { + "trusted": true, + "_uuid": "2a498652935827a033d0bcb7df1d28c068f44a25" + }, + "cell_type": "code", + "source": "sns.set(style='white', context='notebook', palette='deep')\npylab.rcParams['figure.figsize'] = 12,8\nwarnings.filterwarnings('ignore')\nmpl.style.use('ggplot')\nsns.set_style('white')\n%matplotlib inline", + "execution_count": 5, + "outputs": [] + }, + { + "metadata": { + "_uuid": "04ff1a533119d589baee777c21194a951168b0c7" + }, + "cell_type": "markdown", + "source": "
\n## 6- Exploratory Data Analysis(EDA)\n In this section, you'll learn how to use graphical and numerical techniques to begin uncovering the structure of your data. \n \n* Which variables suggest interesting relationships?\n* Which observations are unusual?\n* Analysis of the features!\nBy the end of the section, you'll be able to answer these questions and more, while generating graphics that are both insightful and beautiful. then We will review analytical and statistical operations:\n\n* 5-1 Data Collection\n* 5-2 Visualization\n* 5-3 Data Preprocessing\n* 5-4 Data Cleaning\n\n\n " + }, + { + "metadata": { + "_uuid": "cedecea930b278f86292367cc28d2996a235a169" + }, + "cell_type": "markdown", + "source": "
\n## 6-1 Data Collection\n**Data collection** is the process of gathering and measuring data, information or any variables of interest in a standardized and established manner that enables the collector to answer or test hypothesis and evaluate outcomes of the particular collection.[techopedia]\nI start Collection Data by the training and testing datasets into Pandas DataFrames\n" + }, + { + "metadata": { + "_uuid": "9269ae851b744856bce56840637030a16a5877e1", + "trusted": true + }, + "cell_type": "code", + "source": "# import train and test to play with it\ntrain = pd.read_csv('../input/train.csv')\ntest = pd.read_csv('../input/test.csv')", + "execution_count": 7, + "outputs": [] + }, + { + "metadata": { + "_uuid": "58ed9c838069f54de5cf90b20a774c3e236149b3" + }, + "cell_type": "markdown", + "source": "**<< Note 1 >>**\n\n* Each **row** is an observation (also known as : sample, example, instance, record)\n* Each **column** is a feature (also known as: Predictor, attribute, Independent Variable, input, regressor, Covariate)" + }, + { + "metadata": { + "_uuid": "7b5fd1034cd591ebd29fba1c77d342ec2b408d13" + }, + "cell_type": "markdown", + "source": "After loading the data via **pandas**, we should checkout what the content is, description and via the following:" + }, + { + "metadata": { + "_uuid": "edd043f8feb76cfe51b79785302ca4936ceb7b51", + "trusted": true + }, + "cell_type": "code", + "source": "type(train)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "edd043f8feb76cfe51b79785302ca4936ceb7b51", + "trusted": true + }, + "cell_type": "code", + "source": "type(test)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "055772bd170aa8018aabd85106b76675802c33b3" + }, + "cell_type": "markdown", + "source": "
\n## 6-2 Visualization\n**Data visualization** is the presentation of data in a pictorial or graphical format. It enables decision makers to see analytics presented visually, so they can grasp difficult concepts or identify new patterns.\n\nWith interactive visualization, you can take the concept a step further by using technology to drill down into charts and graphs for more detail, interactively changing what data you see and how it’s processed.[SAS]\n\n In this section I show you **11 plots** with **matplotlib** and **seaborn** that is listed in the blew picture:\n \n" + }, + { + "metadata": { + "_uuid": "b0014a7a52e714996bc443981c853095926d20e5" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-1 Scatter plot\n\nScatter plot Purpose To identify the type of relationship (if any) between two quantitative variables\n\n\n" + }, + { + "metadata": { + "_uuid": "af099546eed64ebc796403d4139cb4c977c27b03", + "trusted": true + }, + "cell_type": "code", + "source": "# Modify the graph above by assigning each species an individual color.\ng = sns.FacetGrid(train, hue=\"Survived\", col=\"Pclass\", margin_titles=True,\n palette={1:\"seagreen\", 0:\"gray\"})\ng=g.map(plt.scatter, \"Fare\", \"Age\",edgecolor=\"w\").add_legend();", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d1c7b62b5f8cba427bca13049256365141655372" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-2 Box\nIn descriptive statistics, a **box plot** or boxplot is a method for graphically depicting groups of numerical data through their quartiles. Box plots may also have lines extending vertically from the boxes (whiskers) indicating variability outside the upper and lower quartiles, hence the terms box-and-whisker plot and box-and-whisker diagram.[wikipedia]" + }, + { + "metadata": { + "_uuid": "0655e20f31a582f861d391308a088778cd7eaae9", + "trusted": true + }, + "cell_type": "code", + "source": "train.plot(kind='box', subplots=True, layout=(2,4), sharex=False, sharey=False)\nplt.figure()\n#This gives us a much clearer idea of the distribution of the input attributes:\n\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f7f6426fd44bcd77d35a5fdbc8c4fc4f18d991ad", + "trusted": true + }, + "cell_type": "code", + "source": "# To plot the species data using a box plot:\n\nsns.boxplot(x=\"Fare\", y=\"Age\", data=test )\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7b193e4aa7e6fb337d3f65c334849094addd097a", + "trusted": true + }, + "cell_type": "code", + "source": "# Use Seaborn's striplot to add data points on top of the box plot \n# Insert jitter=True so that the data points remain scattered and not piled into a verticle line.\n# Assign ax to each axis, so that each plot is ontop of the previous axis. \n\nax= sns.boxplot(x=\"Fare\", y=\"Age\", data=train)\nax= sns.stripplot(x=\"Fare\", y=\"Age\", data=train, jitter=True, edgecolor=\"gray\")\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "56adbafa89c117118621c72b3b7cb19edc21298e", + "trusted": true + }, + "cell_type": "code", + "source": "# Tweek the plot above to change fill and border color color using ax.artists.\n# Assing ax.artists a variable name, and insert the box number into the corresponding brackets\n\nax= sns.boxplot(x=\"Fare\", y=\"Age\", data=train)\nax= sns.stripplot(x=\"Fare\", y=\"Age\", data=train, jitter=True, edgecolor=\"gray\")\n\nboxtwo = ax.artists[2]\nboxtwo.set_facecolor('red')\nboxtwo.set_edgecolor('black')\nboxthree=ax.artists[1]\nboxthree.set_facecolor('yellow')\nboxthree.set_edgecolor('black')\n\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "743a92c3c2fff1a1f99845518247f7971ad18b7c" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-3 Histogram\nWe can also create a **histogram** of each input variable to get an idea of the distribution.\n\n" + }, + { + "metadata": { + "_uuid": "5da0520ed3e738ee8814b2d91843ed4acec2b6e6", + "trusted": true + }, + "cell_type": "code", + "source": "# histograms\ntrain.hist(figsize=(15,20))\nplt.figure()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b4e3de19781686010c6038f0e3076eb678398169" + }, + "cell_type": "markdown", + "source": "It looks like perhaps two of the input variables have a Gaussian distribution. This is useful to note as we can use algorithms that can exploit this assumption.\n\n" + }, + { + "metadata": { + "_uuid": "9f80a6e971cbf0af72d659b51af552ea1dddc9a8", + "trusted": true + }, + "cell_type": "code", + "source": "train[\"Age\"].hist();", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "06c7ec477241ef4e5ea68e6cc09f785638b31d6f" + }, + "cell_type": "code", + "source": "f,ax=plt.subplots(1,2,figsize=(20,10))\ntrain[train['Survived']==0].Age.plot.hist(ax=ax[0],bins=20,edgecolor='black',color='red')\nax[0].set_title('Survived= 0')\nx1=list(range(0,85,5))\nax[0].set_xticks(x1)\ntrain[train['Survived']==1].Age.plot.hist(ax=ax[1],color='green',bins=20,edgecolor='black')\nax[1].set_title('Survived= 1')\nx2=list(range(0,85,5))\nax[1].set_xticks(x2)\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "18637e84198615d9f936d0ef62723a98aa8cf4a4" + }, + "cell_type": "code", + "source": "f,ax=plt.subplots(1,2,figsize=(18,8))\ntrain['Survived'].value_counts().plot.pie(explode=[0,0.1],autopct='%1.1f%%',ax=ax[0],shadow=True)\nax[0].set_title('Survived')\nax[0].set_ylabel('')\nsns.countplot('Survived',data=train,ax=ax[1])\nax[1].set_title('Survived')\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "4349021072da9bc4d1f1b523991e19590593d048" + }, + "cell_type": "code", + "source": "f,ax=plt.subplots(1,2,figsize=(18,8))\ntrain[['Sex','Survived']].groupby(['Sex']).mean().plot.bar(ax=ax[0])\nax[0].set_title('Survived vs Sex')\nsns.countplot('Sex',hue='Survived',data=train,ax=ax[1])\nax[1].set_title('Sex:Survived vs Dead')\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3bbff56707484f88625eb8ef309b712ba03f939e" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-4 Multivariate Plots\nNow we can look at the interactions between the variables.\n\nFirst, let’s look at scatterplots of all pairs of attributes. This can be helpful to spot structured relationships between input variables." + }, + { + "metadata": { + "_uuid": "eb4e5d117e4ef40d7668632f42130206a5537bd0", + "trusted": true + }, + "cell_type": "code", + "source": "\n# scatter plot matrix\npd.plotting.scatter_matrix(train,figsize=(10,10))\nplt.figure()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "de7fea7986071fafbe0b93933e3beda445cbe373" + }, + "cell_type": "markdown", + "source": "Note the diagonal grouping of some pairs of attributes. This suggests a high correlation and a predictable relationship." + }, + { + "metadata": { + "_uuid": "e0f696ec021ec99c1058a62e22c8b73082fe6fa7" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-5 violinplots" + }, + { + "metadata": { + "_uuid": "e352d2f8340609adf4bf6718b1d2ecee0fa730b5", + "trusted": true + }, + "cell_type": "code", + "source": "# violinplots on petal-length for each species\nsns.violinplot(data=train,x=\"Fare\", y=\"Age\")", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "f9a29b9689cd5c3901f27901aa0b5295fc2f04f1" + }, + "cell_type": "code", + "source": "f,ax=plt.subplots(1,2,figsize=(18,8))\nsns.violinplot(\"Pclass\",\"Age\", hue=\"Survived\", data=train,split=True,ax=ax[0])\nax[0].set_title('Pclass and Age vs Survived')\nax[0].set_yticks(range(0,110,10))\nsns.violinplot(\"Sex\",\"Age\", hue=\"Survived\", data=train,split=True,ax=ax[1])\nax[1].set_title('Sex and Age vs Survived')\nax[1].set_yticks(range(0,110,10))\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0ed35bceb87051e56316d35a630334518e8b8c64" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-6 pairplot" + }, + { + "metadata": { + "_uuid": "b80350add6f9a742f10bffc4b497562f8bebea95", + "trusted": true + }, + "cell_type": "code", + "source": "# Using seaborn pairplot to see the bivariate relation between each pair of features\nsns.pairplot(train, hue=\"Age\")", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "fb187bcc0fb51e53f8abe9e3952c6ae5c3177411" + }, + "cell_type": "markdown", + "source": "From the plot, we can see that the species setosa is separataed from the other two across all feature combinations\n\nWe can also replace the histograms shown in the diagonal of the pairplot by kde." + }, + { + "metadata": { + "_uuid": "5570ff32db5a4740b26b244531af552ac1b57f4a", + "trusted": true + }, + "cell_type": "code", + "source": "# updating the diagonal elements in a pairplot to show a kde\nsns.pairplot(train, hue=\"Age\",diag_kind=\"kde\")", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2544d3c2dd34a360d295019d8cb597c7ef8f66bc" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-7 kdeplot" + }, + { + "metadata": { + "_uuid": "1d07222b89303b386e9e824d52cc73c045667f25", + "trusted": true + }, + "cell_type": "code", + "source": "# seaborn's kdeplot, plots univariate or bivariate density estimates.\n#Size can be changed by tweeking the value used\nsns.FacetGrid(train, hue=\"Survived\", size=5).map(sns.kdeplot, \"Fare\").add_legend()\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "560d8e8f17bacefaf8c3855a9648f26b82fdee9b" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-8 jointplot" + }, + { + "metadata": { + "_uuid": "4adb4da16ea61e0f1a12bc9925dfbbaaa81e0360", + "trusted": true + }, + "cell_type": "code", + "source": "# Use seaborn's jointplot to make a hexagonal bin plot\n#Set desired size and ratio and choose a color.\nsns.jointplot(x=\"Age\", y=\"Survived\", data=train, size=10,ratio=10, kind='hex',color='green')\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3768e31e990bfe4c2ff7b45087fbba85e0560d00" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-9 andrews_curves" + }, + { + "metadata": { + "_uuid": "263eaa9d2bfad0f8c68b6e8e874bdc11a6e802ac", + "trusted": true + }, + "cell_type": "code", + "source": "# we will use seaborn jointplot shows bivariate scatterplots and univariate histograms with Kernel density \n# estimation in the same figure\nsns.jointplot(x=\"Age\", y=\"Fare\", data=train, size=6, kind='kde', color='#800000', space=0)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8e73333289d17dd648b7b2112d7fe3fe7ea444d0" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-10 Heatmap" + }, + { + "metadata": { + "_uuid": "3100955ca9dc61ac7d435e9c064d10d06f26afa7", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure(figsize=(7,4)) \nsns.heatmap(train.corr(),annot=True,cmap='cubehelix_r') #draws heatmap with input as the correlation matrix calculted by(iris.corr())\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "bc691cdb2001f0a7dc35b2f2644e4cf455e3016a" + }, + "cell_type": "code", + "source": "sns.heatmap(train.corr(),annot=False,cmap='RdYlGn',linewidths=0.2) \nfig=plt.gcf()\nfig.set_size_inches(10,8)\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ab06d1cd799430c7c7f8de978ee2c6e275e7655b" + }, + "cell_type": "markdown", + "source": "### 6-2-11 Bar Plot" + }, + { + "metadata": { + "_uuid": "329488de1a908a6d367b9da4b40a20238163d32e", + "trusted": true + }, + "cell_type": "code", + "source": "train['Pclass'].value_counts().plot(kind=\"bar\");", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3dafbfb8735b66c98088cb0e85d50d4772a06df1" + }, + "cell_type": "markdown", + "source": "### 6-2-12 Factorplot" + }, + { + "metadata": { + "trusted": true, + "_uuid": "33f7dd81d408b1530113c451dc1b58194ec487b8" + }, + "cell_type": "code", + "source": "sns.factorplot('Pclass','Survived',hue='Sex',data=train)\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "739bba4248dec9a31b7f4f00618cd2fce103d172" + }, + "cell_type": "markdown", + "source": "### 6-2-13 distplot" + }, + { + "metadata": { + "trusted": true, + "_uuid": "318b702bd9751c332c3ad854e7f90e685b1417f5" + }, + "cell_type": "code", + "source": "f,ax=plt.subplots(1,3,figsize=(20,8))\nsns.distplot(train[train['Pclass']==1].Fare,ax=ax[0])\nax[0].set_title('Fares in Pclass 1')\nsns.distplot(train[train['Pclass']==2].Fare,ax=ax[1])\nax[1].set_title('Fares in Pclass 2')\nsns.distplot(train[train['Pclass']==3].Fare,ax=ax[2])\nax[2].set_title('Fares in Pclass 3')\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0859caf857ceeb19f4cc47ccd11fbbfdfe4b0dd9" + }, + "cell_type": "markdown", + "source": "**<< Note >>**\n\n**Yellowbrick** is a suite of visual diagnostic tools called “Visualizers” that extend the Scikit-Learn API to allow human steering of the model selection process. In a nutshell, Yellowbrick combines scikit-learn with matplotlib in the best tradition of the scikit-learn documentation, but to produce visualizations for your models! " + }, + { + "metadata": { + "_uuid": "5af51158a5bc342947c553392e3d1665ac24ba62" + }, + "cell_type": "markdown", + "source": "### 6-2-12 Conclusion\nwe have used Python to apply data visualization tools to the Iris dataset. Color and size changes were made to the data points in scatterplots. I changed the border and fill color of the boxplot and violin, respectively." + }, + { + "metadata": { + "_uuid": "91dda1f631cf4ed362162501aaaac6d19cfd6cc7" + }, + "cell_type": "markdown", + "source": "
\n## 6-3 Data Preprocessing\n**Data preprocessing** refers to the transformations applied to our data before feeding it to the algorithm.\n \nData Preprocessing is a technique that is used to convert the raw data into a clean data set. In other words, whenever the data is gathered from different sources it is collected in raw format which is not feasible for the analysis.\nthere are plenty of steps for data preprocessing and we just listed some of them :\n* removing Target column (id)\n* Sampling (without replacement)\n* Making part of iris unbalanced and balancing (with undersampling and SMOTE)\n* Introducing missing values and treating them (replacing by average values)\n* Noise filtering\n* Data discretization\n* Normalization and standardization\n* PCA analysis\n* Feature selection (filter, embedded, wrapper)" + }, + { + "metadata": { + "_uuid": "581b90e6a869c3793472c7edd59091d6d6342fb2" + }, + "cell_type": "markdown", + "source": "## 6-3-1 Features\nFeatures:\n* numeric\n* categorical\n* ordinal\n* datetime\n* coordinates\n\nfind the type of features in titanic dataset\n" + }, + { + "metadata": { + "_uuid": "73ab30f86273b590a51fc363d9bf78c2709558fa" + }, + "cell_type": "markdown", + "source": "### 6-3-2 Explorer Dataset\n1- Dimensions of the dataset.\n\n2- Peek at the data itself.\n\n3- Statistical summary of all attributes.\n\n4- Breakdown of the data by the class variable.[7]\n\nDon’t worry, each look at the data is **one command**. These are useful commands that you can use again and again on future projects." + }, + { + "metadata": { + "_uuid": "4b45251be7be77333051fe738639104ae1005fa5", + "trusted": true + }, + "cell_type": "code", + "source": "# shape\nprint(train.shape)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c64e9d3e0bf394fb833de94a0fc5c34f69fce24c", + "trusted": true + }, + "cell_type": "code", + "source": "#columns*rows\ntrain.size", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a6315bf510cecb907b2d23aad25faf6ccad32ac4" + }, + "cell_type": "markdown", + "source": "how many NA elements in every column\n" + }, + { + "metadata": { + "_uuid": "675f72fb58d83c527f71819e71ed8e17f81126f5", + "trusted": true + }, + "cell_type": "code", + "source": "train.isnull().sum()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e8e124ca20643ad307d9bfdc34328d548c6ddcbc", + "trusted": true + }, + "cell_type": "code", + "source": "# remove rows that have NA's\n#train = train.dropna()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "277e1998627d6a3ddeff4e913a6b8c3dc81dec96" + }, + "cell_type": "markdown", + "source": "\nWe can get a quick idea of how many instances (rows) and how many attributes (columns) the data contains with the shape property.\n\nYou should see 150 instances and 5 attributes:" + }, + { + "metadata": { + "_uuid": "95ee5e18f97bc410df1e54ac74e32cdff2b30755" + }, + "cell_type": "markdown", + "source": "for getting some information about the dataset you can use **info()** command" + }, + { + "metadata": { + "_uuid": "ca840f02925751186f87e402fcb5f637ab1ab8a0", + "trusted": true + }, + "cell_type": "code", + "source": "print(train.info())", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3458838205be4c7fbff88e95ef69934e13e2199b" + }, + "cell_type": "markdown", + "source": "you see number of unique item for Species with command below:" + }, + { + "metadata": { + "_uuid": "4b90d165a007106ae99809ad28edd75bd8153dd8", + "trusted": true + }, + "cell_type": "code", + "source": "train['Age'].unique()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8accfbddf2228274ad412c3ad3be72b4107d6f6c", + "trusted": true + }, + "cell_type": "code", + "source": "train[\"Pclass\"].value_counts()\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ae08b544a8d4202c7d0a47ec83d685e81c91a66d" + }, + "cell_type": "markdown", + "source": "to check the first 5 rows of the data set, we can use head(5)." + }, + { + "metadata": { + "_uuid": "5899889553c3416b27e93efceddb106eb71f5156", + "trusted": true + }, + "cell_type": "code", + "source": "train.head(5) ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1150b6ac3d82562aefd5c64f9f01accee5eace4d" + }, + "cell_type": "markdown", + "source": "to check out last 5 row of the data set, we use tail() function" + }, + { + "metadata": { + "_uuid": "79339442ff1f53ae1054d794337b9541295d3305", + "trusted": true + }, + "cell_type": "code", + "source": "train.tail() ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2c288c3dc8656a872a8529368812546e434d3a22" + }, + "cell_type": "markdown", + "source": "to pop up 5 random rows from the data set, we can use **sample(5)** function" + }, + { + "metadata": { + "_uuid": "09eb18d1fcf4a2b73ba2f5ddce99dfa521681140", + "trusted": true + }, + "cell_type": "code", + "source": "train.sample(5) ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c8a1cc36348c68fb98d6cb28aa9919fc5f2892f3" + }, + "cell_type": "markdown", + "source": "to give a statistical summary about the dataset, we can use **describe()" + }, + { + "metadata": { + "_uuid": "3f7211e96627b9a81c5b620a9ba61446f7719ea3", + "trusted": true + }, + "cell_type": "code", + "source": "train.describe() ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "031d16ca235837e889734635ecff193be64b27a4" + }, + "cell_type": "markdown", + "source": "to check out how many null info are on the dataset, we can use **isnull().sum()" + }, + { + "metadata": { + "_uuid": "8807b632269e2fa734ad26e8513199400fc09a83", + "trusted": true + }, + "cell_type": "code", + "source": "train.isnull().sum()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "446e6162e16325213047ff31454813455668b574", + "trusted": true + }, + "cell_type": "code", + "source": "train.groupby('Pclass').count()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c2f1eaf0b6dfdc7cc4dace04614e99ed56425d00" + }, + "cell_type": "markdown", + "source": "to print dataset **columns**, we can use columns atribute" + }, + { + "metadata": { + "_uuid": "909d61b33ec06249d0842e6115597bbacf21163f", + "trusted": true + }, + "cell_type": "code", + "source": "train.columns", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "22bc5d81c18275ee1fb082c0adbb7a65bdbec4cc" + }, + "cell_type": "markdown", + "source": "**<< Note 2 >>**\nin pandas's data frame you can perform some query such as \"where\"" + }, + { + "metadata": { + "_uuid": "c8c8d9fd63d9bdb601183aeb4f1435affeb8a596", + "trusted": true + }, + "cell_type": "code", + "source": "train.where(train ['Age']==30)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "33fc33a18489b438a884819d99dc00a02b113be8" + }, + "cell_type": "markdown", + "source": "as you can see in the below in python, it is so easy perform some query on the dataframe:" + }, + { + "metadata": { + "_uuid": "8b545ff7e8367c5ab9c1db710f70b6936ac8422c", + "trusted": true + }, + "cell_type": "code", + "source": "train[train['Age']>7.2]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1c92b300076a232321c915857d8a7c5685a97865", + "trusted": true + }, + "cell_type": "code", + "source": "# Seperating the data into dependent and independent variables\nX = train.iloc[:, :-1].values\ny = train.iloc[:, -1].values", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "aa882e5bcdc7d5f440489eff75d1d225269655a4" + }, + "cell_type": "markdown", + "source": "**<< Note >>**\n>**Preprocessing and generation pipelines depend on a model type**" + }, + { + "metadata": { + "_uuid": "8280749a19af32869978c61941d1dea306632d71" + }, + "cell_type": "markdown", + "source": "
\n## 6-4 Data Cleaning\nWhen dealing with real-world data, dirty data is the norm rather than the exception. We continuously need to predict correct values, impute missing ones, and find links between various data artefacts such as schemas and records. We need to stop treating data cleaning as a piecemeal exercise (resolving different types of errors in isolation), and instead leverage all signals and resources (such as constraints, available statistics, and dictionaries) to accurately predict corrective actions.\n\nThe primary goal of data cleaning is to detect and remove errors and **anomalies** to increase the value of data in analytics and decision making. While it has been the focus of many researchers for several years, individual problems have been addressed separately. These include missing value imputation, outliers detection, transformations, integrity constraints violations detection and repair, consistent query answering, deduplication, and many other related problems such as profiling and constraints mining.[8]" + }, + { + "metadata": { + "_uuid": "60dcf563b3a637f4836d5d3487b15a8f444caf53", + "trusted": true + }, + "cell_type": "code", + "source": "cols = train.columns\nfeatures = cols[0:12]\nlabels = cols[4]\nprint(features)\nprint(labels)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "72cc7c7b60a33390a85b16bc34e3b9e424650cdd" + }, + "cell_type": "markdown", + "source": "
\n## 7- Model Deployment\nIn this section have been applied plenty of ** learning algorithms** that play an important rule in your experiences and improve your knowledge in case of ML technique.\n\n> **<< Note 3 >>** : The results shown here may be slightly different for your analysis because, for example, the neural network algorithms use random number generators for fixing the initial value of the weights (starting points) of the neural networks, which often result in obtaining slightly different (local minima) solutions each time you run the analysis. Also note that changing the seed for the random number generator used to create the train, test, and validation samples can change your results." + }, + { + "metadata": { + "_uuid": "4b7788bbaaace438242d3b2d0d2ed489a91939ce" + }, + "cell_type": "markdown", + "source": "## Families of ML algorithms\nThere are several categories for machine learning algorithms, below are some of these categories:\n* Linear\n * Linear Regression\n * Logistic Regression\n * Support Vector Machines\n* Tree-Based\n * Decision Tree\n * Random Forest\n * GBDT\n* KNN\n* Neural Networks\n\n-----------------------------\nAnd if we want to categorize ML algorithms with the type of learning, there are below type:\n* Classification\n\n * k-Nearest \tNeighbors\n * LinearRegression\n * SVM\n * DT \n * NN\n \n* clustering\n\n * K-means\n * HCA\n * Expectation Maximization\n \n* Visualization \tand\tdimensionality \treduction:\n\n * Principal \tComponent \tAnalysis(PCA)\n * Kernel PCA\n * Locally -Linear\tEmbedding \t(LLE)\n * t-distributed\tStochastic\tNeighbor\tEmbedding \t(t-SNE)\n \n* Association \trule\tlearning\n\n * Apriori\n * Eclat\n* Semisupervised learning\n* Reinforcement Learning\n * Q-learning\n* Batch learning & Online learning\n* Ensemble Learning\n\n**<< Note >>**\n> Here is no method which outperforms all others for all tasks\n\n" + }, + { + "metadata": { + "_uuid": "daf9910caba26e071ff560dbdaca079ee148e140" + }, + "cell_type": "markdown", + "source": "
\n## Prepare Features & Targets\nFirst of all seperating the data into dependent(Feature) and independent(Target) variables.\n\n**<< Note 4 >>**\n* X==>>Feature\n* y==>>Target" + }, + { + "metadata": { + "_uuid": "b06cb1191a0f52a904c52a918d1f999536e79bda", + "trusted": true + }, + "cell_type": "code", + "source": "\nX = train.iloc[:, :-1].values\ny = train.iloc[:, -1].values\n\n# Splitting the dataset into the Training set and Test set\nfrom sklearn.cross_validation import train_test_split\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d13f167dd92888d856c4ad2ff2895bf4855e361c" + }, + "cell_type": "markdown", + "source": "## Accuracy and precision\n* **precision** : \n\nIn pattern recognition, information retrieval and binary classification, precision (also called positive predictive value) is the fraction of relevant instances among the retrieved instances, \n* **recall** : \n\nrecall is the fraction of relevant instances that have been retrieved over the total amount of relevant instances. \n* **F-score** :\n\nthe F1 score is a measure of a test's accuracy. It considers both the precision p and the recall r of the test to compute the score: p is the number of correct positive results divided by the number of all positive results returned by the classifier, and r is the number of correct positive results divided by the number of all relevant samples (all samples that should have been identified as positive). The F1 score is the harmonic average of the precision and recall, where an F1 score reaches its best value at 1 (perfect precision and recall) and worst at 0.\n**What is the difference between accuracy and precision?\n\"Accuracy\" and \"precision\" are general terms throughout science. A good way to internalize the difference are the common \"bullseye diagrams\". In machine learning/statistics as a whole, accuracy vs. precision is analogous to bias vs. variance." + }, + { + "metadata": { + "_uuid": "b8b544762cc789bfeb8ebccd6765f77b9c7e1a0f" + }, + "cell_type": "markdown", + "source": "
\n## 7-1 K-Nearest Neighbours\nIn **Machine Learning**, the **k-nearest neighbors algorithm** (k-NN) is a non-parametric method used for classification and regression. In both cases, the input consists of the k closest training examples in the feature space. The output depends on whether k-NN is used for classification or regression:\n\nIn k-NN classification, the output is a class membership. An object is classified by a majority vote of its neighbors, with the object being assigned to the class most common among its k nearest neighbors (k is a positive integer, typically small). If k = 1, then the object is simply assigned to the class of that single nearest neighbor.\nIn k-NN regression, the output is the property value for the object. This value is the average of the values of its k nearest neighbors.\nk-NN is a type of instance-based learning, or lazy learning, where the function is only approximated locally and all computation is deferred until classification. The k-NN algorithm is among the simplest of all machine learning algorithms." + }, + { + "metadata": { + "_uuid": "97adc471c068fbd8d36ca19a4db0d98b0924c731" + }, + "cell_type": "markdown", + "source": "-----------------\n
\n# 10- Conclusion" + }, + { + "metadata": { + "_uuid": "1adfb5ba84e0f1d8fba58a2fca30546ead095047", + "collapsed": true + }, + "cell_type": "markdown", + "source": "this kernel is not completed yet , I have tried to cover all the parts related to the process of **Machine Learning** with a variety of Python packages and I know that there are still some problems then I hope to get your feedback to improve it.\n" + }, + { + "metadata": { + "_uuid": "cf3679a51c72dbe2d2549b5fe97e4ac5f1fa0fa0" + }, + "cell_type": "markdown", + "source": "you can Fork and Run this kernel on Github:\n> ###### [ GitHub](https://github.com/mjbahmani/Machine-Learning-Workflow-with-Python)\n\n--------------------------------------\n\n **I hope you find this kernel helpful and some UPVOTES would be very much appreciated** " + }, + { + "metadata": { + "_cell_guid": "79c7e3d0-c299-4dcb-8224-4455121ee9b0", + "_uuid": "d629ff2d2480ee46fbb7e2d37f6b5fab8052498a", + "collapsed": true + }, + "cell_type": "markdown", + "source": "
\n\n-----------\n\n# 11- References\n1. [https://skymind.ai/wiki/machine-learning-workflow](https://skymind.ai/wiki/machine-learning-workflow)\n\n1. [Problem-define](https://machinelearningmastery.com/machine-learning-in-python-step-by-step/)\n\n1. [Sklearn](http://scikit-learn.org/)\n\n1. [machine-learning-in-python-step-by-step](https://machinelearningmastery.com/machine-learning-in-python-step-by-step/)\n\n1. [Data Cleaning](http://wp.sigmod.org/?p=2288)\n\n1. [competitive data science](https://www.coursera.org/learn/competitive-data-science/)\n\n1. [Machine Learning Certification by Stanford University (Coursera)](https://www.coursera.org/learn/machine-learning/)\n\n1. [Machine Learning A-Z™: Hands-On Python & R In Data Science (Udemy)](https://www.udemy.com/machinelearning/)\n\n1. [Deep Learning Certification by Andrew Ng from deeplearning.ai (Coursera)](https://www.coursera.org/specializations/deep-learning)\n\n1. [Python for Data Science and Machine Learning Bootcamp (Udemy)](Python for Data Science and Machine Learning Bootcamp (Udemy))\n\n1. [Mathematics for Machine Learning by Imperial College London](https://www.coursera.org/specializations/mathematics-machine-learning)\n\n1. [Deep Learning A-Z™: Hands-On Artificial Neural Networks](https://www.udemy.com/deeplearning/)\n\n1. [Complete Guide to TensorFlow for Deep Learning Tutorial with Python](https://www.udemy.com/complete-guide-to-tensorflow-for-deep-learning-with-python/)\n\n1. [Data Science and Machine Learning Tutorial with Python – Hands On](https://www.udemy.com/data-science-and-machine-learning-with-python-hands-on/)\n\n1. [Machine Learning Certification by University of Washington](https://www.coursera.org/specializations/machine-learning)\n\n1. [Data Science and Machine Learning Bootcamp with R](https://www.udemy.com/data-science-and-machine-learning-bootcamp-with-r/)\n\n1. [Creative Applications of Deep Learning with TensorFlow](https://www.class-central.com/course/kadenze-creative-applications-of-deep-learning-with-tensorflow-6679)\n\n1. [Neural Networks for Machine Learning](https://www.class-central.com/mooc/398/coursera-neural-networks-for-machine-learning)\n\n1. [Practical Deep Learning For Coders, Part 1](https://www.class-central.com/mooc/7887/practical-deep-learning-for-coders-part-1)\n\n1. [Machine Learning](https://www.cs.ox.ac.uk/teaching/courses/2014-2015/ml/index.html)\n\n1. [https://www.kaggle.com/ash316/eda-to-prediction-dietanic](https://www.kaggle.com/ash316/eda-to-prediction-dietanic)\n\n1. [https://www.kaggle.com/mrisdal/exploring-survival-on-the-titanic](https://www.kaggle.com/mrisdal/exploring-survival-on-the-titanic)\n\n1. [https://www.kaggle.com/yassineghouzam/titanic-top-4-with-ensemble-modeling](https://www.kaggle.com/yassineghouzam/titanic-top-4-with-ensemble-modeling)\n\n1. [https://www.kaggle.com/ldfreeman3/a-data-science-framework-to-achieve-99-accuracy](https://www.kaggle.com/ldfreeman3/a-data-science-framework-to-achieve-99-accuracy)\n\n1. [https://www.kaggle.com/startupsci/titanic-data-science-solutions](https://www.kaggle.com/startupsci/titanic-data-science-solutions)\n\n-------------\n" + }, + { + "metadata": { + "_uuid": "3218340bb7dfc4ab53987820284a5c2b1c34eb45" + }, + "cell_type": "markdown", + "source": "# The kernel is not complete and will be updated soon !!!" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.6.6", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} \ No newline at end of file diff --git a/A Comprehensive Machine ML Workflow with Python/A Comprehensive Machine Learning Workflow with Python.ipynb b/A Comprehensive Machine ML Workflow with Python/A Comprehensive Machine Learning Workflow with Python.ipynb new file mode 100644 index 0000000..619e1cc --- /dev/null +++ b/A Comprehensive Machine ML Workflow with Python/A Comprehensive Machine Learning Workflow with Python.ipynb @@ -0,0 +1,1825 @@ +{ + "cells": [ + { + "metadata": { + "_uuid": "a8f9622945156d6337ba73c481da2de7efef7384" + }, + "cell_type": "markdown", + "source": "##
A Comprehensive Machine Learning Workflow with Python
\n\n
There are plenty of courses and tutorials that can help you learn machine learning from scratch but here in Kaggle, I want to predict House prices(in the next version) a popular machine learning Dataset as a comprehensive workflow with python packages. \nAfter reading, you can use this workflow to solve other real problems and use it as a template to deal with machine learning problems.
\n
last update: 10/16/2018
\n\n\n\n>###### you may be interested have a look at it: [**10-steps-to-become-a-data-scientist**](https://github.com/mjbahmani/10-steps-to-become-a-data-scientist)\n\n\n---------------------------------------------------------------------\nyou can Fork and Run this kernel on Github:\n> ###### [ GitHub](https://github.com/mjbahmani/Machine-Learning-Workflow-with-Python)\n\n-------------------------------------------------------------------------------------------------------------\n **I hope you find this kernel helpful and some UPVOTES would be very much appreciated**\n \n -----------" + }, + { + "metadata": { + "_uuid": "cda11210a88d6484112cbe2c3624225328326c6a" + }, + "cell_type": "markdown", + "source": "## Notebook Content\n* 1- [Introduction](#1)\n* 2- [Machine learning workflow](#2)\n* 2-1 [Real world Application Vs Competitions](#2)\n\n* 3- [Problem Definition](#3)\n* 3-1 [Problem feature](#4)\n* 3-2 [Aim](#5)\n* 3-3 [Variables](#6)\n* 4-[ Inputs & Outputs](#7)\n* 4-1 [Inputs ](#8)\n* 4-2 [Outputs](#9)\n* 5- [Installation](#10)\n* 5-1 [ jupyter notebook](#11)\n* 5-2[ kaggle kernel](#12)\n* 5-3 [Colab notebook](#13)\n* 5-4 [install python & packages](#14)\n* 5-5 [Loading Packages](#15)\n* 6- [Exploratory data analysis](#16)\n* 6-1 [Data Collection](#17)\n* 6-2 [Visualization](#18)\n* 6-2-1 [Scatter plot](#19)\n* 6-2-2 [Box](#20)\n* 6-2-3 [Histogram](#21)\n* 6-2-4 [Multivariate Plots](#22)\n* 6-2-5 [Violinplots](#23)\n* 6-2-6 [Pair plot](#24)\n* 6-2-7 [Kde plot](#25)\n* 6-2-8 [Joint plot](#26)\n* 6-2-9 [Andrews curves](#27)\n* 6-2-10 [Heatmap](#28)\n* 6-2-11 [Radviz](#29)\n* 6-3 [Data Preprocessing](#30)\n* 6-4 [Data Cleaning](#31)\n* 7- [Model Deployment](#32)\n* 7-1[ KNN](#33)\n* 7-2 [Radius Neighbors Classifier](#34)\n* 7-3 [Logistic Regression](#35)\n* 7-4 [Passive Aggressive Classifier](#36)\n* 7-5 [Naive Bayes](#37)\n* 7-6 [MultinomialNB](#38)\n* 7-7 [BernoulliNB](#39)\n* 7-8 [SVM](#40)\n* 7-9 [Nu-Support Vector Classification](#41)\n* 7-10 [Linear Support Vector Classification](#42)\n* 7-11 [Decision Tree](#43)\n* 7-12 [ExtraTreeClassifier](#44)\n* 7-13 [Neural network](#45)\n* 7-13-1 [What is a Perceptron?](#45)\n* 7-14 [RandomForest](#46)\n* 7-15 [Bagging classifier ](#47)\n* 7-16 [AdaBoost classifier](#48)\n* 7-17 [Gradient Boosting Classifier](#49)\n* 7-18 [Linear Discriminant Analysis](#50)\n* 7-19 [Quadratic Discriminant Analysis](#51)\n* 7-20 [Kmeans](#52)\n* 7-21 [Backpropagation](#53)\n* 9- [Conclusion](#54)\n* 10- [References](#55)" + }, + { + "metadata": { + "_uuid": "750903cc2679d39058f56df6c6c040be02b748df" + }, + "cell_type": "markdown", + "source": "
\n## 1- Introduction\nThis is a **comprehensive ML techniques with python** , that I have spent for more than two months to complete it.\n\nit is clear that everyone in this community is familiar with IRIS dataset but if you need to review your information about the dataset please visit this [link](https://archive.ics.uci.edu/ml/datasets/iris).\n\nI have tried to help **beginners** in Kaggle how to face machine learning problems. and I think it is a great opportunity for who want to learn machine learning workflow with python completely.\nI have covered most of the methods that are implemented for iris until **2018**, you can start to learn and review your knowledge about ML with a simple dataset and try to learn and memorize the workflow for your journey in Data science world.\n\nI am open to getting your feedback for improving this **kernel**\n" + }, + { + "metadata": { + "_uuid": "e11b73b618b0f6e4335520ef80267c6d577d1ba5" + }, + "cell_type": "markdown", + "source": "
\n## 2- Machine Learning Workflow\nField of \tstudy \tthat \tgives\tcomputers\tthe\tability \tto\tlearn \twithout \tbeing\nexplicitly \tprogrammed.\n\nArthur\tSamuel, 1959\n\nIf you have already read some [machine learning books](https://towardsdatascience.com/list-of-free-must-read-machine-learning-books-89576749d2ff). You have noticed that there are different ways to stream data into machine learning.\n\nmost of these books share the following steps (checklist):\n* Define the Problem(Look at the big picture)\n* Specify Inputs & Outputs\n* Data Collection\n* Exploratory data analysis\n* Data Preprocessing\n* Model Design, Training, and Offline Evaluation\n* Model Deployment, Online Evaluation, and Monitoring\n* Model Maintenance, Diagnosis, and Retraining\n\n**You can see my workflow in the below image** :\n \n\n**you should\tfeel free\tto\tadapt \tthis\tchecklist \tto\tyour needs**" + }, + { + "metadata": { + "_uuid": "d8b27260d5ccff025f37490d84bd35bba7eef00a" + }, + "cell_type": "markdown", + "source": "## 2-1 Real world Application Vs Competitions\n" + }, + { + "metadata": { + "_uuid": "600be852c0d28e7c0c5ebb718904ab15a536342c" + }, + "cell_type": "markdown", + "source": "
\n## 3- Problem Definition\nI think one of the important things when you start a new machine learning project is Defining your problem. that means you should understand business problem.( **Problem Formalization**)\n\nProblem Definition has four steps that have illustrated in the picture below:\n\n
\n### 3-1 Problem Feature\nwe will use the classic Iris data set. This dataset contains information about three different types of Iris flowers:\n\n* Iris Versicolor\n* Iris Virginica\n* Iris Setosa\n\nThe data set contains measurements of four variables :\n\n* sepal length \n* sepal width\n* petal length \n* petal width\n \nThe Iris data set has a number of interesting features:\n\n1. One of the classes (Iris Setosa) is linearly separable from the other two. However, the other two classes are not linearly separable.\n\n2. There is some overlap between the Versicolor and Virginica classes, so it is unlikely to achieve a perfect classification rate.\n\n3. There is some redundancy in the four input variables, so it is possible to achieve a good solution with only three of them, or even (with difficulty) from two, but the precise choice of best variables is not obvious.\n\n**Why am I using iris dataset:**\n\n1- This is a good project because it is so well understood.\n\n2- Attributes are numeric so you have to figure out how to load and handle data.\n\n3- It is a classification problem, allowing you to practice with perhaps an easier type of supervised learning algorithm.\n\n4- It is a multi-class classification problem (multi-nominal) that may require some specialized handling.\n\n5- It only has 4 attributes and 150 rows, meaning it is small and easily fits into memory (and a screen or A4 page).\n\n6- All of the numeric attributes are in the same units and the same scale, not requiring any special scaling or transforms to get started.[5]\n\n7- we can define problem as clustering(unsupervised algorithm) project too.\n
\n### 3-2 Aim\nThe aim is to classify iris flowers among three species (setosa, versicolor or virginica) from measurements of length and width of sepals and petals\n
\n### 3-3 Variables\nThe variables are :\n**sepal_length**: Sepal length, in centimeters, used as input.\n**sepal_width**: Sepal width, in centimeters, used as input.\n**petal_length**: Petal length, in centimeters, used as input.\n**petal_width**: Petal width, in centimeters, used as input.\n**setosa**: Iris setosa, true or false, used as target.\n**versicolour**: Iris versicolour, true or false, used as target.\n**virginica**: Iris virginica, true or false, used as target.\n\n**<< Note >>**\n> You must answer the following question:\nHow does your company expact to use and benfit from your model." + }, + { + "metadata": { + "_uuid": "8bb4dfebb521f83543e1d45db3559216dad8f6fb" + }, + "cell_type": "markdown", + "source": "
\n## 4- Inputs & Outputs\n
\n### 4-1 Inputs\n**Iris** is a very popular **classification** and **clustering** problem in machine learning and it is such as \"Hello world\" program when you start learning a new programming language. then I decided to apply Iris on 20 machine learning method on it.\nThe Iris flower data set or Fisher's Iris data set is a **multivariate data set** introduced by the British statistician and biologist Ronald Fisher in his 1936 paper The use of multiple measurements in taxonomic problems as an example of linear discriminant analysis. It is sometimes called Anderson's Iris data set because Edgar Anderson collected the data to quantify the morphologic variation of Iris flowers in three related species. Two of the three species were collected in the Gaspé Peninsula \"all from the same pasture, and picked on the same day and measured at the same time by the same person with the same apparatus\".\nThe data set consists of 50 samples from each of three species of Iris (Iris setosa, Iris virginica, and Iris versicolor). Four features were measured from each sample: the length and the width of the sepals and petals, in centimeters. Based on the combination of these four features, Fisher developed a linear discriminant model to distinguish the species from each other.\n\nAs a result, **iris dataset is used as the input of all algorithms**.\n![iris](https://image.ibb.co/gbH3ue/iris.png)\n[image source](https://rpubs.com/wjholst/322258)\n
\n### 4-2 Outputs\nthe outputs for our algorithms totally depend on the type of classification or clustering algorithms.\nthe outputs can be the number of clusters or predict for new input.\n\n**setosa**: Iris setosa, true or false, used as target.\n**versicolour**: Iris versicolour, true or false, used as target.\n**virginica**: Iris virginica, true or false, used as a target." + }, + { + "metadata": { + "_uuid": "89ee0cda57822cd4102eadf8992c5bfe1964d557" + }, + "cell_type": "markdown", + "source": "
\n## 5-Installation\n#### Windows:\n* Anaconda (from https://www.continuum.io) is a free Python distribution for SciPy stack. It is also available for Linux and Mac.\n* Canopy (https://www.enthought.com/products/canopy/) is available as free as well as commercial distribution with full SciPy stack for Windows, Linux and Mac.\n* Python (x,y) is a free Python distribution with SciPy stack and Spyder IDE for Windows OS. (Downloadable from http://python-xy.github.io/)\n#### Linux\nPackage managers of respective Linux distributions are used to install one or more packages in SciPy stack.\n\nFor Ubuntu Users:\nsudo apt-get install python-numpy python-scipy python-matplotlibipythonipythonnotebook\npython-pandas python-sympy python-nose" + }, + { + "metadata": { + "_uuid": "c1793fb141d3338bbc4300874be6ffa5cb1a9139" + }, + "cell_type": "markdown", + "source": "
\n## 5-1 Jupyter notebook\nI strongly recommend installing **Python** and **Jupyter** using the **[Anaconda Distribution](https://www.anaconda.com/download/)**, which includes Python, the Jupyter Notebook, and other commonly used packages for scientific computing and data science.\n\nFirst, download Anaconda. We recommend downloading Anaconda’s latest Python 3 version.\n\nSecond, install the version of Anaconda which you downloaded, following the instructions on the download page.\n\nCongratulations, you have installed Jupyter Notebook! To run the notebook, run the following command at the Terminal (Mac/Linux) or Command Prompt (Windows):" + }, + { + "metadata": { + "_uuid": "abbd1757dde9805758a2cec47a186e31dbc29822" + }, + "cell_type": "markdown", + "source": "> jupyter notebook\n> " + }, + { + "metadata": { + "_uuid": "8a70c253d5afa93f07a7a7e048dbb2d7812c8d10" + }, + "cell_type": "markdown", + "source": "
\n## 5-2 Kaggle Kernel\nKaggle kernel is an environment just like you use jupyter notebook, it's an **extension** of the where in you are able to carry out all the functions of jupyter notebooks plus it has some added tools like forking et al." + }, + { + "metadata": { + "_uuid": "237bbe4e4509c9491ce165e3599c432b979d7b90" + }, + "cell_type": "markdown", + "source": "
\n## 5-3 Colab notebook\n**Colaboratory** is a research tool for machine learning education and research. It’s a Jupyter notebook environment that requires no setup to use.\n### 5-3-1 What browsers are supported?\nColaboratory works with most major browsers, and is most thoroughly tested with desktop versions of Chrome and Firefox.\n### 5-3-2 Is it free to use?\nYes. Colaboratory is a research project that is free to use.\n### 5-3-3 What is the difference between Jupyter and Colaboratory?\nJupyter is the open source project on which Colaboratory is based. Colaboratory allows you to use and share Jupyter notebooks with others without having to download, install, or run anything on your own computer other than a browser." + }, + { + "metadata": { + "_uuid": "fbedcae8843986c2139f18dad4b5f313e6535ac5" + }, + "cell_type": "markdown", + "source": "
\n## 5-5 Loading Packages\nIn this kernel we are using the following packages:" + }, + { + "metadata": { + "_uuid": "61f49281fdd8592b44c0867225f57e6fce36342c" + }, + "cell_type": "markdown", + "source": " \n Now we import all of them " + }, + { + "metadata": { + "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", + "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5", + "trusted": true + }, + "cell_type": "code", + "source": "# packages to load \n# Check the versions of libraries\n# Python version\nimport warnings\nwarnings.filterwarnings('ignore')\nimport sys\nprint('Python: {}'.format(sys.version))\n# scipy\nimport scipy\nprint('scipy: {}'.format(scipy.__version__))\nimport numpy\n# matplotlib\nimport matplotlib\nprint('matplotlib: {}'.format(matplotlib.__version__))\n# numpy\nimport numpy as np # linear algebra\nprint('numpy: {}'.format(np.__version__))\n# pandas\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nprint('pandas: {}'.format(pd.__version__))\nimport seaborn as sns\nprint('seaborn: {}'.format(sns.__version__))\nsns.set(color_codes=True)\nimport matplotlib.pyplot as plt\nprint('matplotlib: {}'.format(matplotlib.__version__))\nimport tensorflow as tf\nprint('tensorflow: {}'.format(tf.__version__))\n%matplotlib inline\n# scikit-learn\nimport sklearn\nprint('sklearn: {}'.format(sklearn.__version__))\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\nimport os\n%matplotlib inline\nfrom sklearn.metrics import accuracy_score\n# Importing metrics for evaluation\nfrom sklearn.metrics import confusion_matrix\nfrom sklearn.metrics import classification_report\nfrom pandas import get_dummies\nfrom sklearn.cross_validation import train_test_split", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "04ff1a533119d589baee777c21194a951168b0c7" + }, + "cell_type": "markdown", + "source": "
\n## 6- Exploratory Data Analysis(EDA)\n In this section, you'll learn how to use graphical and numerical techniques to begin uncovering the structure of your data. \n \n* Which variables suggest interesting relationships?\n* Which observations are unusual?\n\nBy the end of the section, you'll be able to answer these questions and more, while generating graphics that are both insightful and beautiful. then We will review analytical and statistical operations:\n\n* 5-1 Data Collection\n* 5-2 Visualization\n* 5-3 Data Preprocessing\n* 5-4 Data Cleaning\n" + }, + { + "metadata": { + "_uuid": "cedecea930b278f86292367cc28d2996a235a169" + }, + "cell_type": "markdown", + "source": "
\n## 6-1 Data Collection\n**Data collection** is the process of gathering and measuring data, information or any variables of interest in a standardized and established manner that enables the collector to answer or test hypothesis and evaluate outcomes of the particular collection.[techopedia]\n\n**Iris dataset** consists of 3 different types of irises’ (Setosa, Versicolour, and Virginica) petal and sepal length, stored in a 150x4 numpy.ndarray\n\nThe rows being the samples and the columns being: Sepal Length, Sepal Width, Petal Length and Petal Width.[6]\n" + }, + { + "metadata": { + "_uuid": "9269ae851b744856bce56840637030a16a5877e1", + "trusted": true + }, + "cell_type": "code", + "source": "# import Dataset to play with it\ndataset = pd.read_csv('../input/Iris.csv')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "58ed9c838069f54de5cf90b20a774c3e236149b3" + }, + "cell_type": "markdown", + "source": "**<< Note 1 >>**\n\n* Each row is an observation (also known as : sample, example, instance, record)\n* Each column is a feature (also known as: Predictor, attribute, Independent Variable, input, regressor, Covariate)" + }, + { + "metadata": { + "_uuid": "7b5fd1034cd591ebd29fba1c77d342ec2b408d13" + }, + "cell_type": "markdown", + "source": "After loading the data via **pandas**, we should checkout what the content is, description and via the following:" + }, + { + "metadata": { + "_uuid": "edd043f8feb76cfe51b79785302ca4936ceb7b51", + "trusted": true + }, + "cell_type": "code", + "source": "type(dataset)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "055772bd170aa8018aabd85106b76675802c33b3" + }, + "cell_type": "markdown", + "source": "
\n## 6-2 Visualization\n**Data visualization** is the presentation of data in a pictorial or graphical format. It enables decision makers to see analytics presented visually, so they can grasp difficult concepts or identify new patterns.\n\nWith interactive visualization, you can take the concept a step further by using technology to drill down into charts and graphs for more detail, interactively changing what data you see and how it’s processed.[SAS]\n\n In this section I show you **11 plots** with **matplotlib** and **seaborn** that is listed in the blew picture:\n \n" + }, + { + "metadata": { + "_uuid": "b0014a7a52e714996bc443981c853095926d20e5" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-1 Scatter plot\n\nScatter plot Purpose To identify the type of relationship (if any) between two quantitative variables\n\n\n" + }, + { + "metadata": { + "_uuid": "af099546eed64ebc796403d4139cb4c977c27b03", + "trusted": true + }, + "cell_type": "code", + "source": "# Modify the graph above by assigning each species an individual color.\nsns.FacetGrid(dataset, hue=\"Species\", size=5) \\\n .map(plt.scatter, \"SepalLengthCm\", \"SepalWidthCm\") \\\n .add_legend()\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d1c7b62b5f8cba427bca13049256365141655372" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-2 Box\nIn descriptive statistics, a **box plot** or boxplot is a method for graphically depicting groups of numerical data through their quartiles. Box plots may also have lines extending vertically from the boxes (whiskers) indicating variability outside the upper and lower quartiles, hence the terms box-and-whisker plot and box-and-whisker diagram.[wikipedia]" + }, + { + "metadata": { + "_uuid": "0655e20f31a582f861d391308a088778cd7eaae9", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "dataset.plot(kind='box', subplots=True, layout=(2,3), sharex=False, sharey=False)\nplt.figure()\n#This gives us a much clearer idea of the distribution of the input attributes:\n\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f7f6426fd44bcd77d35a5fdbc8c4fc4f18d991ad", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# To plot the species data using a box plot:\n\nsns.boxplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset )\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7b193e4aa7e6fb337d3f65c334849094addd097a", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# Use Seaborn's striplot to add data points on top of the box plot \n# Insert jitter=True so that the data points remain scattered and not piled into a verticle line.\n# Assign ax to each axis, so that each plot is ontop of the previous axis. \n\nax= sns.boxplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset)\nax= sns.stripplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset, jitter=True, edgecolor=\"gray\")\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "56adbafa89c117118621c72b3b7cb19edc21298e", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# Tweek the plot above to change fill and border color color using ax.artists.\n# Assing ax.artists a variable name, and insert the box number into the corresponding brackets\n\nax= sns.boxplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset)\nax= sns.stripplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset, jitter=True, edgecolor=\"gray\")\n\nboxtwo = ax.artists[2]\nboxtwo.set_facecolor('red')\nboxtwo.set_edgecolor('black')\nboxthree=ax.artists[1]\nboxthree.set_facecolor('yellow')\nboxthree.set_edgecolor('black')\n\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "743a92c3c2fff1a1f99845518247f7971ad18b7c" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-3 Histogram\nWe can also create a **histogram** of each input variable to get an idea of the distribution.\n\n" + }, + { + "metadata": { + "_uuid": "5da0520ed3e738ee8814b2d91843ed4acec2b6e6", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# histograms\ndataset.hist(figsize=(15,20))\nplt.figure()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b4e3de19781686010c6038f0e3076eb678398169" + }, + "cell_type": "markdown", + "source": "It looks like perhaps two of the input variables have a Gaussian distribution. This is useful to note as we can use algorithms that can exploit this assumption.\n\n" + }, + { + "metadata": { + "trusted": true, + "_uuid": "9f80a6e971cbf0af72d659b51af552ea1dddc9a8" + }, + "cell_type": "code", + "source": "dataset[\"PetalLengthCm\"].hist();", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3bbff56707484f88625eb8ef309b712ba03f939e" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-4 Multivariate Plots\nNow we can look at the interactions between the variables.\n\nFirst, let’s look at scatterplots of all pairs of attributes. This can be helpful to spot structured relationships between input variables." + }, + { + "metadata": { + "_uuid": "eb4e5d117e4ef40d7668632f42130206a5537bd0", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "\n# scatter plot matrix\npd.plotting.scatter_matrix(dataset,figsize=(10,10))\nplt.figure()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "de7fea7986071fafbe0b93933e3beda445cbe373" + }, + "cell_type": "markdown", + "source": "Note the diagonal grouping of some pairs of attributes. This suggests a high correlation and a predictable relationship." + }, + { + "metadata": { + "_uuid": "e0f696ec021ec99c1058a62e22c8b73082fe6fa7" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-5 violinplots" + }, + { + "metadata": { + "_uuid": "e352d2f8340609adf4bf6718b1d2ecee0fa730b5", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# violinplots on petal-length for each species\nsns.violinplot(data=dataset,x=\"Species\", y=\"PetalLengthCm\")", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0ed35bceb87051e56316d35a630334518e8b8c64" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-6 pairplot" + }, + { + "metadata": { + "_uuid": "b80350add6f9a742f10bffc4b497562f8bebea95", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# Using seaborn pairplot to see the bivariate relation between each pair of features\nsns.pairplot(dataset, hue=\"Species\")", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "fb187bcc0fb51e53f8abe9e3952c6ae5c3177411" + }, + "cell_type": "markdown", + "source": "From the plot, we can see that the species setosa is separataed from the other two across all feature combinations\n\nWe can also replace the histograms shown in the diagonal of the pairplot by kde." + }, + { + "metadata": { + "_uuid": "5570ff32db5a4740b26b244531af552ac1b57f4a", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# updating the diagonal elements in a pairplot to show a kde\nsns.pairplot(dataset, hue=\"Species\",diag_kind=\"kde\")", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2544d3c2dd34a360d295019d8cb597c7ef8f66bc" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-7 kdeplot" + }, + { + "metadata": { + "_uuid": "1d07222b89303b386e9e824d52cc73c045667f25", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# seaborn's kdeplot, plots univariate or bivariate density estimates.\n#Size can be changed by tweeking the value used\nsns.FacetGrid(dataset, hue=\"Species\", size=5).map(sns.kdeplot, \"PetalLengthCm\").add_legend()\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "560d8e8f17bacefaf8c3855a9648f26b82fdee9b" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-8 jointplot" + }, + { + "metadata": { + "_uuid": "4adb4da16ea61e0f1a12bc9925dfbbaaa81e0360", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# Use seaborn's jointplot to make a hexagonal bin plot\n#Set desired size and ratio and choose a color.\nsns.jointplot(x=\"SepalLengthCm\", y=\"SepalWidthCm\", data=dataset, size=10,ratio=10, kind='hex',color='green')\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3768e31e990bfe4c2ff7b45087fbba85e0560d00" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-9 andrews_curves" + }, + { + "metadata": { + "_uuid": "937b6856d109001db14a3ac99568df45efbe1070", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "#In Pandas use Andrews Curves to plot and visualize data structure.\n#Each multivariate observation is transformed into a curve and represents the coefficients of a Fourier series.\n#This useful for detecting outliers in times series data.\n#Use colormap to change the color of the curves\n\nfrom pandas.tools.plotting import andrews_curves\nandrews_curves(dataset.drop(\"Id\", axis=1), \"Species\",colormap='rainbow')\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "263eaa9d2bfad0f8c68b6e8e874bdc11a6e802ac", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# we will use seaborn jointplot shows bivariate scatterplots and univariate histograms with Kernel density \n# estimation in the same figure\nsns.jointplot(x=\"SepalLengthCm\", y=\"SepalWidthCm\", data=dataset, size=6, kind='kde', color='#800000', space=0)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8e73333289d17dd648b7b2112d7fe3fe7ea444d0" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-10 Heatmap" + }, + { + "metadata": { + "_uuid": "3100955ca9dc61ac7d435e9c064d10d06f26afa7", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "plt.figure(figsize=(7,4)) \nsns.heatmap(dataset.corr(),annot=True,cmap='cubehelix_r') #draws heatmap with input as the correlation matrix calculted by(iris.corr())\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b81dbdd5dd8cb92a86b1f7114ffb6f088458a527" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-11 radviz" + }, + { + "metadata": { + "_uuid": "33fed3027d7242227d612a84bbb42b012356091b", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# A final multivariate visualization technique pandas has is radviz\n# Which puts each feature as a point on a 2D plane, and then simulates\n# having each sample attached to those points through a spring weighted\n# by the relative value for that feature\nfrom pandas.tools.plotting import radviz\nradviz(dataset.drop(\"Id\", axis=1), \"Species\")", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ab06d1cd799430c7c7f8de978ee2c6e275e7655b" + }, + "cell_type": "markdown", + "source": "### Bar Plot" + }, + { + "metadata": { + "trusted": true, + "_uuid": "329488de1a908a6d367b9da4b40a20238163d32e" + }, + "cell_type": "code", + "source": "dataset['Species'].value_counts().plot(kind=\"bar\");", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0859caf857ceeb19f4cc47ccd11fbbfdfe4b0dd9" + }, + "cell_type": "markdown", + "source": "**<< Note >>**\n\n**Yellowbrick** is a suite of visual diagnostic tools called “Visualizers” that extend the Scikit-Learn API to allow human steering of the model selection process. In a nutshell, Yellowbrick combines scikit-learn with matplotlib in the best tradition of the scikit-learn documentation, but to produce visualizations for your models! " + }, + { + "metadata": { + "_uuid": "5af51158a5bc342947c553392e3d1665ac24ba62" + }, + "cell_type": "markdown", + "source": "### 6-2-12 Conclusion\nwe have used Python to apply data visualization tools to the Iris dataset. Color and size changes were made to the data points in scatterplots. I changed the border and fill color of the boxplot and violin, respectively." + }, + { + "metadata": { + "_uuid": "91dda1f631cf4ed362162501aaaac6d19cfd6cc7" + }, + "cell_type": "markdown", + "source": "
\n## 6-3 Data Preprocessing\n**Data preprocessing** refers to the transformations applied to our data before feeding it to the algorithm.\n \nData Preprocessing is a technique that is used to convert the raw data into a clean data set. In other words, whenever the data is gathered from different sources it is collected in raw format which is not feasible for the analysis.\nthere are plenty of steps for data preprocessing and we just listed some of them :\n* removing Target column (id)\n* Sampling (without replacement)\n* Making part of iris unbalanced and balancing (with undersampling and SMOTE)\n* Introducing missing values and treating them (replacing by average values)\n* Noise filtering\n* Data discretization\n* Normalization and standardization\n* PCA analysis\n* Feature selection (filter, embedded, wrapper)" + }, + { + "metadata": { + "_uuid": "581b90e6a869c3793472c7edd59091d6d6342fb2" + }, + "cell_type": "markdown", + "source": "## 6-3-1 Features\nFeatures:\n* numeric\n* categorical\n* ordinal\n* datetime\n* coordinates\n\nfind the type of features in titanic dataset\n" + }, + { + "metadata": { + "_uuid": "73ab30f86273b590a51fc363d9bf78c2709558fa" + }, + "cell_type": "markdown", + "source": "### 6-3-2 Explorer Dataset\n1- Dimensions of the dataset.\n\n2- Peek at the data itself.\n\n3- Statistical summary of all attributes.\n\n4- Breakdown of the data by the class variable.[7]\n\nDon’t worry, each look at the data is **one command**. These are useful commands that you can use again and again on future projects." + }, + { + "metadata": { + "_uuid": "4b45251be7be77333051fe738639104ae1005fa5", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# shape\nprint(dataset.shape)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c64e9d3e0bf394fb833de94a0fc5c34f69fce24c", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "#columns*rows\ndataset.size", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a6315bf510cecb907b2d23aad25faf6ccad32ac4" + }, + "cell_type": "markdown", + "source": "how many NA elements in every column\n" + }, + { + "metadata": { + "trusted": true, + "_uuid": "675f72fb58d83c527f71819e71ed8e17f81126f5" + }, + "cell_type": "code", + "source": "dataset.isnull().sum()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "e8e124ca20643ad307d9bfdc34328d548c6ddcbc" + }, + "cell_type": "code", + "source": "# remove rows that have NA's\ndataset = dataset.dropna()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "277e1998627d6a3ddeff4e913a6b8c3dc81dec96" + }, + "cell_type": "markdown", + "source": "\nWe can get a quick idea of how many instances (rows) and how many attributes (columns) the data contains with the shape property.\n\nYou should see 150 instances and 5 attributes:" + }, + { + "metadata": { + "_uuid": "95ee5e18f97bc410df1e54ac74e32cdff2b30755" + }, + "cell_type": "markdown", + "source": "for getting some information about the dataset you can use **info()** command" + }, + { + "metadata": { + "_uuid": "ca840f02925751186f87e402fcb5f637ab1ab8a0", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "print(dataset.info())", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3458838205be4c7fbff88e95ef69934e13e2199b" + }, + "cell_type": "markdown", + "source": "you see number of unique item for Species with command below:" + }, + { + "metadata": { + "_uuid": "4b90d165a007106ae99809ad28edd75bd8153dd8", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "dataset['Species'].unique()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8accfbddf2228274ad412c3ad3be72b4107d6f6c", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "dataset[\"Species\"].value_counts()\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ae08b544a8d4202c7d0a47ec83d685e81c91a66d" + }, + "cell_type": "markdown", + "source": "to check the first 5 rows of the data set, we can use head(5)." + }, + { + "metadata": { + "_uuid": "5899889553c3416b27e93efceddb106eb71f5156", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "dataset.head(5) ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1150b6ac3d82562aefd5c64f9f01accee5eace4d" + }, + "cell_type": "markdown", + "source": "to check out last 5 row of the data set, we use tail() function" + }, + { + "metadata": { + "_uuid": "79339442ff1f53ae1054d794337b9541295d3305", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "dataset.tail() ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2c288c3dc8656a872a8529368812546e434d3a22" + }, + "cell_type": "markdown", + "source": "to pop up 5 random rows from the data set, we can use **sample(5)** function" + }, + { + "metadata": { + "_uuid": "09eb18d1fcf4a2b73ba2f5ddce99dfa521681140", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "dataset.sample(5) ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c8a1cc36348c68fb98d6cb28aa9919fc5f2892f3" + }, + "cell_type": "markdown", + "source": "to give a statistical summary about the dataset, we can use **describe()" + }, + { + "metadata": { + "_uuid": "3f7211e96627b9a81c5b620a9ba61446f7719ea3", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "dataset.describe() ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "031d16ca235837e889734635ecff193be64b27a4" + }, + "cell_type": "markdown", + "source": "to check out how many null info are on the dataset, we can use **isnull().sum()" + }, + { + "metadata": { + "_uuid": "8807b632269e2fa734ad26e8513199400fc09a83", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "dataset.isnull().sum()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "446e6162e16325213047ff31454813455668b574", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "dataset.groupby('Species').count()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c2f1eaf0b6dfdc7cc4dace04614e99ed56425d00" + }, + "cell_type": "markdown", + "source": "to print dataset **columns**, we can use columns atribute" + }, + { + "metadata": { + "_uuid": "909d61b33ec06249d0842e6115597bbacf21163f", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "dataset.columns", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "22bc5d81c18275ee1fb082c0adbb7a65bdbec4cc" + }, + "cell_type": "markdown", + "source": "**<< Note 2 >>**\nin pandas's data frame you can perform some query such as \"where\"" + }, + { + "metadata": { + "_uuid": "c8c8d9fd63d9bdb601183aeb4f1435affeb8a596", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "dataset.where(dataset ['Species']=='Iris-setosa')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "33fc33a18489b438a884819d99dc00a02b113be8" + }, + "cell_type": "markdown", + "source": "as you can see in the below in python, it is so easy perform some query on the dataframe:" + }, + { + "metadata": { + "_uuid": "8b545ff7e8367c5ab9c1db710f70b6936ac8422c", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "dataset[dataset['SepalLengthCm']>7.2]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1c92b300076a232321c915857d8a7c5685a97865", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# Seperating the data into dependent and independent variables\nX = dataset.iloc[:, :-1].values\ny = dataset.iloc[:, -1].values", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "aa882e5bcdc7d5f440489eff75d1d225269655a4" + }, + "cell_type": "markdown", + "source": "**<< Note >>**\n>**Preprocessing and generation pipelines depend on a model type**" + }, + { + "metadata": { + "_uuid": "8280749a19af32869978c61941d1dea306632d71" + }, + "cell_type": "markdown", + "source": "
\n## 6-4 Data Cleaning\nWhen dealing with real-world data, dirty data is the norm rather than the exception. We continuously need to predict correct values, impute missing ones, and find links between various data artefacts such as schemas and records. We need to stop treating data cleaning as a piecemeal exercise (resolving different types of errors in isolation), and instead leverage all signals and resources (such as constraints, available statistics, and dictionaries) to accurately predict corrective actions.\n\nThe primary goal of data cleaning is to detect and remove errors and **anomalies** to increase the value of data in analytics and decision making. While it has been the focus of many researchers for several years, individual problems have been addressed separately. These include missing value imputation, outliers detection, transformations, integrity constraints violations detection and repair, consistent query answering, deduplication, and many other related problems such as profiling and constraints mining.[8]" + }, + { + "metadata": { + "trusted": true, + "_uuid": "60dcf563b3a637f4836d5d3487b15a8f444caf53" + }, + "cell_type": "code", + "source": "cols = dataset.columns\nfeatures = cols[0:4]\nlabels = cols[4]\nprint(features)\nprint(labels)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "180b76d9afa9d51cbe05e38a128d7f1f63e6da26" + }, + "cell_type": "code", + "source": "#Well conditioned data will have zero mean and equal variance\n#We get this automattically when we calculate the Z Scores for the data\n\ndata_norm = pd.DataFrame(dataset)\n\nfor feature in features:\n dataset[feature] = (dataset[feature] - dataset[feature].mean())/dataset[feature].std()\n\n#Show that should now have zero mean\nprint(\"Averages\")\nprint(dataset.mean())\n\nprint(\"\\n Deviations\")\n#Show that we have equal variance\nprint(pow(dataset.std(),2))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "c40ac6be7f6cff60f81e97478662817ef6ae1ef4" + }, + "cell_type": "code", + "source": "#Shuffle The data\nindices = data_norm.index.tolist()\nindices = np.array(indices)\nnp.random.shuffle(indices)\nX = data_norm.reindex(indices)[features]\ny = data_norm.reindex(indices)[labels]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "d260748e8e388fe03be57a8a120be513710a26c0" + }, + "cell_type": "code", + "source": "# One Hot Encode as a dataframe\nfrom sklearn.cross_validation import train_test_split\ny = get_dummies(y)\n\n# Generate Training and Validation Sets\nX_train, X_test, y_train, y_test = train_test_split(X,y, test_size=.3)\n\n# Convert to np arrays so that we can use with TensorFlow\nX_train = np.array(X_train).astype(np.float32)\nX_test = np.array(X_test).astype(np.float32)\ny_train = np.array(y_train).astype(np.float32)\ny_test = np.array(y_test).astype(np.float32)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "94ff73f511d1aea70025681c4c04200bf2973dcc" + }, + "cell_type": "code", + "source": "#Check to make sure split still has 4 features and 3 labels\nprint(X_train.shape, y_train.shape)\nprint(X_test.shape, y_test.shape)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "72cc7c7b60a33390a85b16bc34e3b9e424650cdd" + }, + "cell_type": "markdown", + "source": "
\n## 7- Model Deployment\nIn this section have been applied more than **20 learning algorithms** that play an important rule in your experiences and improve your knowledge in case of ML technique.\n\n> **<< Note 3 >>** : The results shown here may be slightly different for your analysis because, for example, the neural network algorithms use random number generators for fixing the initial value of the weights (starting points) of the neural networks, which often result in obtaining slightly different (local minima) solutions each time you run the analysis. Also note that changing the seed for the random number generator used to create the train, test, and validation samples can change your results." + }, + { + "metadata": { + "_uuid": "4b7788bbaaace438242d3b2d0d2ed489a91939ce" + }, + "cell_type": "markdown", + "source": "## Families of ML algorithms\nThere are several categories for machine learning algorithms, below are some of these categories:\n* Linear\n * Linear Regression\n * Logistic Regression\n * Support Vector Machines\n* Tree-Based\n * Decision Tree\n * Random Forest\n * GBDT\n* KNN\n* Neural Networks\n\n-----------------------------\nAnd if we want to categorize ML algorithms with the type of learning, there are below type:\n* Classification\n\n * k-Nearest \tNeighbors\n * LinearRegression\n * SVM\n * DT \n * NN\n \n* clustering\n\n * K-means\n * HCA\n * Expectation Maximization\n \n* Visualization \tand\tdimensionality \treduction:\n\n * Principal \tComponent \tAnalysis(PCA)\n * Kernel PCA\n * Locally -Linear\tEmbedding \t(LLE)\n * t-distributed\tStochastic\tNeighbor\tEmbedding \t(t-SNE)\n \n* Association \trule\tlearning\n\n * Apriori\n * Eclat\n* Semisupervised learning\n* Reinforcement Learning\n * Q-learning\n* Batch learning & Online learning\n* Ensemble Learning\n\n**<< Note >>**\n> Here is no method which outperforms all others for all tasks\n\n" + }, + { + "metadata": { + "_uuid": "daf9910caba26e071ff560dbdaca079ee148e140" + }, + "cell_type": "markdown", + "source": "
\n## Prepare Features & Targets\nFirst of all seperating the data into dependent(Feature) and independent(Target) variables.\n\n**<< Note 4 >>**\n* X==>>Feature\n* y==>>Target" + }, + { + "metadata": { + "_uuid": "b06cb1191a0f52a904c52a918d1f999536e79bda", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "\nX = dataset.iloc[:, :-1].values\ny = dataset.iloc[:, -1].values\n\n# Splitting the dataset into the Training set and Test set\nfrom sklearn.cross_validation import train_test_split\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d13f167dd92888d856c4ad2ff2895bf4855e361c" + }, + "cell_type": "markdown", + "source": "## Accuracy and precision\n* **precision** : \n\nIn pattern recognition, information retrieval and binary classification, precision (also called positive predictive value) is the fraction of relevant instances among the retrieved instances, \n* **recall** : \n\nrecall is the fraction of relevant instances that have been retrieved over the total amount of relevant instances. \n* **F-score** :\n\nthe F1 score is a measure of a test's accuracy. It considers both the precision p and the recall r of the test to compute the score: p is the number of correct positive results divided by the number of all positive results returned by the classifier, and r is the number of correct positive results divided by the number of all relevant samples (all samples that should have been identified as positive). The F1 score is the harmonic average of the precision and recall, where an F1 score reaches its best value at 1 (perfect precision and recall) and worst at 0.\n**What is the difference between accuracy and precision?\n\"Accuracy\" and \"precision\" are general terms throughout science. A good way to internalize the difference are the common \"bullseye diagrams\". In machine learning/statistics as a whole, accuracy vs. precision is analogous to bias vs. variance." + }, + { + "metadata": { + "_uuid": "b8b544762cc789bfeb8ebccd6765f77b9c7e1a0f" + }, + "cell_type": "markdown", + "source": "
\n## 7-1 K-Nearest Neighbours\nIn **Machine Learning**, the **k-nearest neighbors algorithm** (k-NN) is a non-parametric method used for classification and regression. In both cases, the input consists of the k closest training examples in the feature space. The output depends on whether k-NN is used for classification or regression:\n\nIn k-NN classification, the output is a class membership. An object is classified by a majority vote of its neighbors, with the object being assigned to the class most common among its k nearest neighbors (k is a positive integer, typically small). If k = 1, then the object is simply assigned to the class of that single nearest neighbor.\nIn k-NN regression, the output is the property value for the object. This value is the average of the values of its k nearest neighbors.\nk-NN is a type of instance-based learning, or lazy learning, where the function is only approximated locally and all computation is deferred until classification. The k-NN algorithm is among the simplest of all machine learning algorithms." + }, + { + "metadata": { + "_uuid": "eaa2caacfbc319932f79c75c549364089d1e649f", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# K-Nearest Neighbours\nfrom sklearn.neighbors import KNeighborsClassifier\n\nModel = KNeighborsClassifier(n_neighbors=8)\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\n\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e01bbec9f80532e30c6cf26d5c3fffffb5ea01d4" + }, + "cell_type": "markdown", + "source": "
\n## 7-2 Radius Neighbors Classifier\nClassifier implementing a **vote** among neighbors within a given **radius**\n\nIn scikit-learn **RadiusNeighborsClassifier** is very similar to **KNeighborsClassifier** with the exception of two parameters. First, in RadiusNeighborsClassifier we need to specify the radius of the fixed area used to determine if an observation is a neighbor using radius. Unless there is some substantive reason for setting radius to some value, it is best to treat it like any other hyperparameter and tune it during model selection. The second useful parameter is outlier_label, which indicates what label to give an observation that has no observations within the radius - which itself can often be a useful tool for identifying outliers." + }, + { + "metadata": { + "_uuid": "7728fdafa163e068668cea92cf8d79306b41d458", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "from sklearn.neighbors import RadiusNeighborsClassifier\nModel=RadiusNeighborsClassifier(radius=8.0)\nModel.fit(X_train,y_train)\ny_pred=Model.predict(X_test)\n#summary of the predictions made by the classifier\nprint(classification_report(y_test,y_pred))\nprint(confusion_matrix(y_test,y_pred))\n#Accouracy score\nprint('accuracy is ', accuracy_score(y_test,y_pred))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e55a785373bf654e0d4b2a78693fab1c8a625acb" + }, + "cell_type": "markdown", + "source": "
\n## 7-3 Logistic Regression\nLogistic regression is the appropriate regression analysis to conduct when the dependent variable is **dichotomous** (binary). Like all regression analyses, the logistic regression is a **predictive analysis**.\n\nIn statistics, the logistic model (or logit model) is a widely used statistical model that, in its basic form, uses a logistic function to model a binary dependent variable; many more complex extensions exist. In regression analysis, logistic regression (or logit regression) is estimating the parameters of a logistic model; it is a form of binomial regression. Mathematically, a binary logistic model has a dependent variable with two possible values, such as pass/fail, win/lose, alive/dead or healthy/sick; these are represented by an indicator variable, where the two values are labeled \"0\" and \"1\"" + }, + { + "metadata": { + "_uuid": "55eb348cf69272192274cd0728a123796b459b55", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# LogisticRegression\nfrom sklearn.linear_model import LogisticRegression\nModel = LogisticRegression()\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c0a1c2ccaa4f6e9c5e2e42c47a295ceef7abd3b9" + }, + "cell_type": "markdown", + "source": "
\n## 7-4 Passive Aggressive Classifier" + }, + { + "metadata": { + "_uuid": "d509b2111a143660dd5cb1f02ea2779e38295b77", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "from sklearn.linear_model import PassiveAggressiveClassifier\nModel = PassiveAggressiveClassifier()\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "52938b49082dac7b35dc627828838bf12924cc7f" + }, + "cell_type": "markdown", + "source": "
\n## 7-5 Naive Bayes\nIn machine learning, naive Bayes classifiers are a family of simple \"**probabilistic classifiers**\" based on applying Bayes' theorem with strong (naive) independence assumptions between the features." + }, + { + "metadata": { + "_uuid": "522d4a3fa874950d0850a5a9a4178ec763781ec3", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# Naive Bayes\nfrom sklearn.naive_bayes import GaussianNB\nModel = GaussianNB()\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "272c1db2587015ac12e9919d51eaa4f4b73cb408" + }, + "cell_type": "markdown", + "source": "
\n## 7-6 MultinomialNB\nThe multinomial Naive Bayes classifier is suitable for classification with **discrete features** (e.g., word counts for text classification). The multinomial distribution normally requires integer feature counts. However, in practice, fractional counts such as tf-idf may also work.\n\n" + }, + { + "metadata": { + "_uuid": "c370fd6ae6eee484a22cbf6c5323710222b05ffb", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# MultinomialNB\nfrom sklearn.naive_bayes import MultinomialNB\nModel = MultinomialNB()\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e530d18ab308e36d575806583e534cc07fe61c61" + }, + "cell_type": "markdown", + "source": "
\n## 7-7 BernoulliNB\nLike MultinomialNB, this classifier is suitable for **discrete data**. The difference is that while MultinomialNB works with occurrence counts, BernoulliNB is designed for binary/boolean features." + }, + { + "metadata": { + "_uuid": "e7051b5e9aa144b74e9913cb2a6668832e7f3e02", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# BernoulliNB\nfrom sklearn.naive_bayes import BernoulliNB\nModel = BernoulliNB()\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "386d2d0e4fc7f5dc2b9298226d8e2ecfb7150346" + }, + "cell_type": "markdown", + "source": "
\n## 7-8 SVM\n\nThe advantages of support vector machines are:\n* Effective in high dimensional spaces.\n* Still effective in cases where number of dimensions is greater than the number of samples. \n* Uses a subset of training points in the decision function (called support vectors), so it is also memory efficient.\n* Versatile: different Kernel functions can be specified for the decision function. Common kernels are provided, but it is also possible to specify custom kernels.\n\nThe disadvantages of support vector machines include:\n\n* If the number of features is much greater than the number of samples, avoid over-fitting in choosing Kernel functions and regularization term is crucial.\n* SVMs do not directly provide probability estimates, these are calculated using an expensive five-fold cross-validation" + }, + { + "metadata": { + "_uuid": "a44a5a43945404c95863668c2ba099f6032357f8", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# Support Vector Machine\nfrom sklearn.svm import SVC\n\nModel = SVC()\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\n\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b1d092cc03dcaa712f4fe4ec6867b292321377d5" + }, + "cell_type": "markdown", + "source": "
\n## 7-9 Nu-Support Vector Classification\n\n> Similar to SVC but uses a parameter to control the number of support vectors." + }, + { + "metadata": { + "_uuid": "2fa7c9a5bef780adb400bd9ad83d030f83a8d2b3", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# Support Vector Machine's \nfrom sklearn.svm import NuSVC\n\nModel = NuSVC()\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\n\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5d07a75e83251ddbf8cfdfd11c9faa2671ad87ff" + }, + "cell_type": "markdown", + "source": "
\n## 7-10 Linear Support Vector Classification\n\nSimilar to **SVC** with parameter kernel=’linear’, but implemented in terms of liblinear rather than libsvm, so it has more flexibility in the choice of penalties and loss functions and should scale better to large numbers of samples." + }, + { + "metadata": { + "_uuid": "7e7275f160f2e4e270200eaa01c13be5cb465142", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# Linear Support Vector Classification\nfrom sklearn.svm import LinearSVC\n\nModel = LinearSVC()\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\n\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "cec81c9e0c3bc6afba07811a321b5383a0f823f3" + }, + "cell_type": "markdown", + "source": "
\n## 7-11 Decision Tree\nDecision Trees (DTs) are a non-parametric supervised learning method used for **classification** and **regression**. The goal is to create a model that predicts the value of a target variable by learning simple **decision rules** inferred from the data features." + }, + { + "metadata": { + "_uuid": "10e25ad67f7c25a8654637d4ba496b64121d67d0", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# Decision Tree's\nfrom sklearn.tree import DecisionTreeClassifier\n\nModel = DecisionTreeClassifier()\n\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a7d897130fd705943764e924bbe468c99b7c036a" + }, + "cell_type": "markdown", + "source": "
\n## 7-12 ExtraTreeClassifier\nAn extremely randomized tree classifier.\n\nExtra-trees differ from classic decision trees in the way they are built. When looking for the best split to separate the samples of a node into two groups, random splits are drawn for each of the **max_features** randomly selected features and the best split among those is chosen. When max_features is set 1, this amounts to building a totally random decision tree.\n\n**Warning**: Extra-trees should only be used within ensemble methods." + }, + { + "metadata": { + "_uuid": "5a775006a814b6aacdcc07dc46995eb291b873f1", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "# ExtraTreeClassifier\nfrom sklearn.tree import ExtraTreeClassifier\n\nModel = ExtraTreeClassifier()\n\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "48f940f73580a2997d75f22eba09d938c86a1a97" + }, + "cell_type": "markdown", + "source": "
\n## 7-13 Neural network\n\nI have used multi-layer Perceptron classifier.\nThis model optimizes the log-loss function using **LBFGS** or **stochastic gradient descent**." + }, + { + "metadata": { + "_uuid": "1c10482510f654878f93b573dc1abe4112b861eb" + }, + "cell_type": "markdown", + "source": "## 7-13-1 What is a Perceptron?" + }, + { + "metadata": { + "_uuid": "a94d82b497cbe543da0a637ecfed6e9e8b7569e7" + }, + "cell_type": "markdown", + "source": "There are many online examples and tutorials on perceptrons and learning. Here is a list of some articles:\n- [Wikipedia on Perceptrons](https://en.wikipedia.org/wiki/Perceptron)\n- Jurafsky and Martin (ed. 3), Chapter 8" + }, + { + "metadata": { + "_uuid": "e8e4da1a0b3d51a5fff38750fb4631ac3aa7eebb" + }, + "cell_type": "markdown", + "source": "This is an example that I have taken from a draft of the 3rd edition of Jurafsky and Martin, with slight modifications:\nWe import *numpy* and use its *exp* function. We could use the same function from the *math* module, or some other module like *scipy*. The *sigmoid* function is defined as in the textbook:\n" + }, + { + "metadata": { + "_uuid": "196e5a54ed0de712e2254e77439051267cad4b3d", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "import numpy as np\n\ndef sigmoid(z):\n return 1 / (1 + np.exp(-z))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9aa207d0bb6a7342932406d8fa68cbd49be866b5" + }, + "cell_type": "markdown", + "source": "Our example data, **weights** $w$, **bias** $b$, and **input** $x$ are defined as:" + }, + { + "metadata": { + "_uuid": "69cae82df8a906ad43594464c6497e05e282dcd1", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "w = np.array([0.2, 0.3, 0.8])\nb = 0.5\nx = np.array([0.5, 0.6, 0.1])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8cd5da02c0fc0beedd9a3417e399982293d28fd2" + }, + "cell_type": "markdown", + "source": "Our neural unit would compute $z$ as the **dot-product** $w \\cdot x$ and add the **bias** $b$ to it. The sigmoid function defined above will convert this $z$ value to the **activation value** $a$ of the unit:" + }, + { + "metadata": { + "_uuid": "65d083572bf2cc897d816765db05758b107741ff", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "z = w.dot(x) + b\nprint(\"z:\", z)\nprint(\"a:\", sigmoid(z))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9e9101a20c9a167a1d925f3b64aafb94317155e2" + }, + "cell_type": "markdown", + "source": "### The XOR Problem\nThe power of neural units comes from combining them into larger networks. Minsky and Papert (1969): A single neural unit cannot compute the simple logical function XOR.\n\nThe task is to implement a simple **perceptron** to compute logical operations like AND, OR, and XOR.\n\n- Input: $x_1$ and $x_2$\n- Bias: $b = -1$ for AND; $b = 0$ for OR\n- Weights: $w = [1, 1]$\n\nwith the following activation function:\n\n$$\ny = \\begin{cases}\n \\ 0 & \\quad \\text{if } w \\cdot x + b \\leq 0\\\\\n \\ 1 & \\quad \\text{if } w \\cdot x + b > 0\n \\end{cases}\n$$" + }, + { + "metadata": { + "_uuid": "c03b3a6a5307cc53e637afd6da5c307c985be7ac" + }, + "cell_type": "markdown", + "source": "We can define this activation function in Python as:" + }, + { + "metadata": { + "_uuid": "7b0832df65fc1aa694a1cf67b8713c894b1ed2a2", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "def activation(z):\n if z > 0:\n return 1\n return 0", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "27ae56a47bd180ebbfd82b3f0242c8078db6ac97" + }, + "cell_type": "markdown", + "source": "For AND we could implement a perceptron as:" + }, + { + "metadata": { + "_uuid": "3267d3f1a2864f29ff2382a2057b0b88fa74b649", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "w = np.array([1, 1])\nb = -1\nx = np.array([0, 0])\nprint(\"0 AND 0:\", activation(w.dot(x) + b))\nx = np.array([1, 0])\nprint(\"1 AND 0:\", activation(w.dot(x) + b))\nx = np.array([0, 1])\nprint(\"0 AND 1:\", activation(w.dot(x) + b))\nx = np.array([1, 1])\nprint(\"1 AND 1:\", activation(w.dot(x) + b))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "dbee1f41f0bd66613f5b49e0f65be4bfd9f91283" + }, + "cell_type": "markdown", + "source": "For OR we could implement a perceptron as:" + }, + { + "metadata": { + "_uuid": "bf47440fb2f5a0fb016286f0a3a41a05a8416495", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "w = np.array([1, 1])\nb = 0\nx = np.array([0, 0])\nprint(\"0 OR 0:\", activation(w.dot(x) + b))\nx = np.array([1, 0])\nprint(\"1 OR 0:\", activation(w.dot(x) + b))\nx = np.array([0, 1])\nprint(\"0 OR 1:\", activation(w.dot(x) + b))\nx = np.array([1, 1])\nprint(\"1 OR 1:\", activation(w.dot(x) + b))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "181068ef1b8e1ba568093184c41a118b4c0bfe7f" + }, + "cell_type": "markdown", + "source": "There is no way to implement a perceptron for XOR this way." + }, + { + "metadata": { + "_uuid": "d12494da861ea094378c7cf6a3409803fb5585ac" + }, + "cell_type": "markdown", + "source": "no see our prediction for iris" + }, + { + "metadata": { + "_uuid": "5f040cfaeb71f8caa94e4d7f18cccde8d2a0b8a7", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "from sklearn.neural_network import MLPClassifier\nModel=MLPClassifier()\nModel.fit(X_train,y_train)\ny_pred=Model.predict(X_test)\n# Summary of the predictions\nprint(classification_report(y_test,y_pred))\nprint(confusion_matrix(y_test,y_pred))\n#Accuracy Score\nprint('accuracy is ',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ffc339dbf9c8da74194b994930694bd97bb2afbb" + }, + "cell_type": "markdown", + "source": "
\n## 7-14 RandomForest\nA random forest is a meta estimator that **fits a number of decision tree classifiers** on various sub-samples of the dataset and uses averaging to improve the predictive accuracy and control over-fitting. \n\nThe sub-sample size is always the same as the original input sample size but the samples are drawn with replacement if bootstrap=True (default)." + }, + { + "metadata": { + "_uuid": "8ed2305b51c2248a8aa62cf4452632f448e83771", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "from sklearn.ensemble import RandomForestClassifier\nModel=RandomForestClassifier(max_depth=2)\nModel.fit(X_train,y_train)\ny_pred=Model.predict(X_test)\nprint(classification_report(y_test,y_pred))\nprint(confusion_matrix(y_pred,y_test))\n#Accuracy Score\nprint('accuracy is ',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1311eb15f2afceed2219faeb859d0d07b7072176" + }, + "cell_type": "markdown", + "source": "
\n## 7-15 Bagging classifier \nA Bagging classifier is an ensemble **meta-estimator** that fits base classifiers each on random subsets of the original dataset and then aggregate their individual predictions (either by voting or by averaging) to form a final prediction. Such a meta-estimator can typically be used as a way to reduce the variance of a black-box estimator (e.g., a decision tree), by introducing randomization into its construction procedure and then making an ensemble out of it.\n\nThis algorithm encompasses several works from the literature. When random subsets of the dataset are drawn as random subsets of the samples, then this algorithm is known as Pasting . If samples are drawn with replacement, then the method is known as Bagging . When random subsets of the dataset are drawn as random subsets of the features, then the method is known as Random Subspaces . Finally, when base estimators are built on subsets of both samples and features, then the method is known as Random Patches .[http://scikit-learn.org]" + }, + { + "metadata": { + "_uuid": "c11c731d3db6c1c81301da85dc158cb7d324c4cb", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "from sklearn.ensemble import BaggingClassifier\nModel=BaggingClassifier()\nModel.fit(X_train,y_train)\ny_pred=Model.predict(X_test)\nprint(classification_report(y_test,y_pred))\nprint(confusion_matrix(y_pred,y_test))\n#Accuracy Score\nprint('accuracy is ',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c0944bd32424f38906148d96f4b1e6fccfbf97a6" + }, + "cell_type": "markdown", + "source": "
\n## 7-16 AdaBoost classifier\n\nAn AdaBoost classifier is a meta-estimator that begins by fitting a classifier on the original dataset and then fits additional copies of the classifier on the same dataset but where the weights of incorrectly classified instances are adjusted such that subsequent classifiers focus more on difficult cases.\nThis class implements the algorithm known as **AdaBoost-SAMME** ." + }, + { + "metadata": { + "_uuid": "938946ee8e017b982c4c06e193d4d13cb7d3fb5f", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "from sklearn.ensemble import AdaBoostClassifier\nModel=AdaBoostClassifier()\nModel.fit(X_train,y_train)\ny_pred=Model.predict(X_test)\nprint(classification_report(y_test,y_pred))\nprint(confusion_matrix(y_pred,y_test))\n#Accuracy Score\nprint('accuracy is ',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9d62842d12731d3eb1d6577c5b35c12c4886c708" + }, + "cell_type": "markdown", + "source": "
\n## 7-17 Gradient Boosting Classifier\nGB builds an additive model in a forward stage-wise fashion; it allows for the optimization of arbitrary differentiable loss functions." + }, + { + "metadata": { + "_uuid": "863124561c0d1b5995d0b8d3702daa7bc364d6b0", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "from sklearn.ensemble import GradientBoostingClassifier\nModel=GradientBoostingClassifier()\nModel.fit(X_train,y_train)\ny_pred=Model.predict(X_test)\nprint(classification_report(y_test,y_pred))\nprint(confusion_matrix(y_pred,y_test))\n#Accuracy Score\nprint('accuracy is ',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e89b4494bd78c2d66beeba34a4e320fd8c9dae0c" + }, + "cell_type": "markdown", + "source": "
\n## 7-18 Linear Discriminant Analysis\nLinear Discriminant Analysis (discriminant_analysis.LinearDiscriminantAnalysis) and Quadratic Discriminant Analysis (discriminant_analysis.QuadraticDiscriminantAnalysis) are two classic classifiers, with, as their names suggest, a **linear and a quadratic decision surface**, respectively.\n\nThese classifiers are attractive because they have closed-form solutions that can be easily computed, are inherently multiclass, have proven to work well in practice, and have no **hyperparameters** to tune." + }, + { + "metadata": { + "_uuid": "0796cd9f1c902345df605b7557a9c3ff686e35a9", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nModel=LinearDiscriminantAnalysis()\nModel.fit(X_train,y_train)\ny_pred=Model.predict(X_test)\nprint(classification_report(y_test,y_pred))\nprint(confusion_matrix(y_pred,y_test))\n#Accuracy Score\nprint('accuracy is ',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "296137970fc94fa4a4eb4185cb5fa952b1985c57" + }, + "cell_type": "markdown", + "source": "
\n## 7-19 Quadratic Discriminant Analysis\nA classifier with a quadratic decision boundary, generated by fitting class conditional densities to the data and using Bayes’ rule.\n\nThe model fits a **Gaussian** density to each class." + }, + { + "metadata": { + "_uuid": "5f521d19f295b8e8f24f5715e93b1c45e9a6bce3", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis\nModel=QuadraticDiscriminantAnalysis()\nModel.fit(X_train,y_train)\ny_pred=Model.predict(X_test)\nprint(classification_report(y_test,y_pred))\nprint(confusion_matrix(y_pred,y_test))\n#Accuracy Score\nprint('accuracy is ',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0518634bf8850ac1bfcfc301e93a8740e1995c3a" + }, + "cell_type": "markdown", + "source": "
\n## 7-20 Kmeans \nK-means clustering is a type of unsupervised learning, which is used when you have unlabeled data (i.e., data without defined categories or groups). \n\nThe goal of this algorithm is **to find groups in the data**, with the number of groups represented by the variable K. The algorithm works iteratively to assign each data point to one of K groups based on the features that are provided.\n\n" + }, + { + "metadata": { + "_uuid": "427f08af02fc7288a5e35de5ff4b6c33b8fce491", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "from sklearn.cluster import KMeans\niris_SP = dataset[['SepalLengthCm','SepalWidthCm','PetalLengthCm','PetalWidthCm']]\n# k-means cluster analysis for 1-15 clusters \nfrom scipy.spatial.distance import cdist\nclusters=range(1,15)\nmeandist=[]\n\n# loop through each cluster and fit the model to the train set\n# generate the predicted cluster assingment and append the mean \n# distance my taking the sum divided by the shape\nfor k in clusters:\n model=KMeans(n_clusters=k)\n model.fit(iris_SP)\n clusassign=model.predict(iris_SP)\n meandist.append(sum(np.min(cdist(iris_SP, model.cluster_centers_, 'euclidean'), axis=1))\n / iris_SP.shape[0])\n\n\"\"\"\nPlot average distance from observations from the cluster centroid\nto use the Elbow Method to identify number of clusters to choose\n\"\"\"\nplt.plot(clusters, meandist)\nplt.xlabel('Number of clusters')\nplt.ylabel('Average distance')\nplt.title('Selecting k with the Elbow Method') \n# pick the fewest number of clusters that reduces the average distance\n# If you observe after 3 we can see graph is almost linear", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "adad2b1882db36d6ac1b4a47d2118386d6bdf0a1" + }, + "cell_type": "markdown", + "source": "
\n## 7-21- Backpropagation" + }, + { + "metadata": { + "_uuid": "e0b9d339d6ccd1515d5c45f02358f351052b3c6f" + }, + "cell_type": "markdown", + "source": "Backpropagation is a method used in artificial neural networks to calculate a gradient that is needed in the calculation of the weights to be used in the network.It is commonly used to train deep neural networks,a term referring to neural networks with more than one hidden layer." + }, + { + "metadata": { + "_uuid": "ea58e2f8077aa74972727b0c3e10bc57fd82d5a7" + }, + "cell_type": "markdown", + "source": "In this example we will use a very simple network to start with. The network will only have one input and one output layer. We want to make the following predictions from the input:\n\n| Input | Output |\n| ------ |:------:|\n| 0 0 1 | 0 |\n| 1 1 1 | 1 |\n| 1 0 1 | 1 |\n| 0 1 1 | 0 |" + }, + { + "metadata": { + "_uuid": "07d2e4bc074dea99ec6c331a4ec51e777d468d0e" + }, + "cell_type": "markdown", + "source": "We will use *Numpy* to compute the network parameters, weights, activation, and outputs:" + }, + { + "metadata": { + "_uuid": "9b5c9c7115e49cdb5c3c8428399e2508687efa47" + }, + "cell_type": "markdown", + "source": "We will use the *[Sigmoid](http://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html#sigmoid)* activation function:" + }, + { + "metadata": { + "_uuid": "8422345e9e9c1853acba702d0d7138e3a209f0e8", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "def sigmoid(z):\n \"\"\"The sigmoid activation function.\"\"\"\n return 1 / (1 + np.exp(-z))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1eec604fbe5729fecabfc4101a7b4887bf390876" + }, + "cell_type": "markdown", + "source": "We could use the [ReLU](http://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html#activation-relu) activation function instead:" + }, + { + "metadata": { + "_uuid": "557945abedb17c571926af334d5469b4edf12b48", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "def relu(z):\n \"\"\"The ReLU activation function.\"\"\"\n return max(0, z)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f405e20e385bc594337a59deba1c7d8d7769349d" + }, + "cell_type": "markdown", + "source": "The [Sigmoid](http://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html#sigmoid) activation function introduces non-linearity to the computation. It maps the input value to an output value between $0$ and $1$." + }, + { + "metadata": { + "_uuid": "d388972329e79c533e7a8b90a2cfed18e288e4e5" + }, + "cell_type": "markdown", + "source": "" + }, + { + "metadata": { + "_uuid": "a6881ae9a1a8554739f9464119d14875beaaf8ad" + }, + "cell_type": "markdown", + "source": "The derivative of the sigmoid function is maximal at $x=0$ and minimal for lower or higher values of $x$:" + }, + { + "metadata": { + "_uuid": "dfb7cad18d4509840dea33c4aff0e6de8a6cf86b" + }, + "cell_type": "markdown", + "source": "" + }, + { + "metadata": { + "_uuid": "616e01ca7ed747aeb817707cbd14c57a92f31553" + }, + "cell_type": "markdown", + "source": "The *sigmoid_prime* function returns the derivative of the sigmoid for any given $z$. The derivative of the sigmoid is $z * (1 - z)$. This is basically the slope of the sigmoid function at any given point: " + }, + { + "metadata": { + "_uuid": "d4be4a6c8353a98c55eba479f520cbdeecc29f1d", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "def sigmoid_prime(z):\n \"\"\"The derivative of sigmoid for z.\"\"\"\n return z * (1 - z)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3be8c0c576f52ec92539039615a0b4ffe5248f57" + }, + "cell_type": "markdown", + "source": "We define the inputs as rows in *X*. There are three input nodes (three columns per vector in $X$. Each row is one trainig example:" + }, + { + "metadata": { + "_uuid": "14fa62c6d5ac721998095f5b556610e0984eea98", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "X = np.array([ [ 0, 0, 1 ],\n [ 0, 1, 1 ],\n [ 1, 0, 1 ],\n [ 1, 1, 1 ] ])\nprint(X)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3f32526b2e047abdda2a1d1d611f1cf7f188f2e9" + }, + "cell_type": "markdown", + "source": "The outputs are stored in *y*, where each row represents the output for the corresponding input vector (row) in *X*. The vector is initiated as a single row vector and with four columns and transposed (using the $.T$ method) into a column vector with four rows:" + }, + { + "metadata": { + "_uuid": "dbd824213ef3fe2dd7eb01d4b4396d816bf002d3", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "y = np.array([[0,0,1,1]]).T\nprint(y)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5e6e2ad9b6539e5c3d6aff5cf2db5f44c0f2611e" + }, + "cell_type": "markdown", + "source": "To make the outputs deterministic, we seed the random number generator with a constant. This will guarantee that every time you run the code, you will get the same random distribution:" + }, + { + "metadata": { + "_uuid": "6a441227d4cd02b6654e7800cb823e8eef62ff1d", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "np.random.seed(1)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7cc15f07e9c4a15ec48265dd70f1e60e292f6485" + }, + "cell_type": "markdown", + "source": "We create a weight matrix ($Wo$) with randomly initialized weights:" + }, + { + "metadata": { + "_uuid": "f1be1de240c6e7b718def61d73d5b7b4f770b54a", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "n_inputs = 3\nn_outputs = 1\n#Wo = 2 * np.random.random( (n_inputs, n_outputs) ) - 1\nWo = np.random.random( (n_inputs, n_outputs) ) * np.sqrt(2.0/n_inputs)\nprint(Wo)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f690ef1844d5344c2513381b6169f3bfe6080714" + }, + "cell_type": "markdown", + "source": "The reason for the output weight matrix ($Wo$) to have 3 rows and 1 column is that it represents the weights of the connections from the three input neurons to the single output neuron. The initialization of the weight matrix is random with a mean of $0$ and a variance of $1$. There is a good reason for chosing a mean of zero in the weight initialization. See for details the section on Weight Initialization in the [Stanford course CS231n on Convolutional Neural Networks for Visual Recognition](https://cs231n.github.io/neural-networks-2/#init)." + }, + { + "metadata": { + "_uuid": "4b87807dc117e0908ec98b4e54843dc8f29c7397" + }, + "cell_type": "markdown", + "source": "The core representation of this network is basically the weight matrix *Wo*. The rest, input matrix, output vector and so on are components that we need to learning and evaluation. The leraning result is stored in the *Wo* weight matrix." + }, + { + "metadata": { + "_uuid": "fb1319477d80a209e9caa3129b6371d872dab29b" + }, + "cell_type": "markdown", + "source": "We loop in the optimization and learning cycle 10,000 times. In the *forward propagation* line we process the entire input matrix for training. This is called **full batch** training. I do not use an alternative variable name to represent the input layer, instead I use the input matrix $X$ directly here. Think of this as the different inputs to the input neurons computed at once. In principle the input or training data could have many more training examples, the code would stay the same." + }, + { + "metadata": { + "_uuid": "45907fc6c64b83116860d2c3dab8d252fd470c3e", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "for n in range(10000):\n # forward propagation\n l1 = sigmoid(np.dot(X, Wo))\n \n # compute the loss\n l1_error = y - l1\n #print(\"l1_error:\\n\", l1_error)\n \n # multiply the loss by the slope of the sigmoid at l1\n l1_delta = l1_error * sigmoid_prime(l1)\n #print(\"l1_delta:\\n\", l1_delta)\n \n #print(\"error:\", l1_error, \"\\nderivative:\", sigmoid(l1, True), \"\\ndelta:\", l1_delta, \"\\n\", \"-\"*10, \"\\n\")\n # update weights\n Wo += np.dot(X.T, l1_delta)\n\nprint(\"l1:\\n\", l1)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6d887640b00bf8d73c4544ef23d11c296ff15154" + }, + "cell_type": "markdown", + "source": "The dots in $l1$ represent the lines in the graphic below. The lines represent the slope of the sigmoid in the particular position. The slope is highest with a value $x = 0$ (blue dot). It is rather shallow with $x = 2$ (green dot), and not so shallow and not as high with $x = -1$. All derivatives are between $0$ and $1$, of course, that is, no slope or a maximal slope of $1$. There is no negative slope in a sigmoid function." + }, + { + "metadata": { + "_uuid": "01ea3085bf5e9dd4babee8437895735c9aa54763" + }, + "cell_type": "markdown", + "source": "" + }, + { + "metadata": { + "_uuid": "c0cfdf91801ec2bbffc34a7a95f6e899ed7a39fc" + }, + "cell_type": "markdown", + "source": "The matrix $l1\\_error$ is a 4 by 1 matrix (4 rows, 1 column). The derivative matrix $sigmoid\\_prime(l1)$ is also a 4 by one matrix. The returned matrix of the element-wise product $l1\\_delta$ is also the 4 by 1 matrix." + }, + { + "metadata": { + "_uuid": "5349a8fcd505990baa71481697397cef4f2176fb" + }, + "cell_type": "markdown", + "source": "The product of the error and the slopes **reduces the error of high confidence predictions**. When the sigmoid slope is very shallow, the network had a very high or a very low value, that is, it was rather confident. If the network guessed something close to $x=0, y=0.5$, it was not very confident. Such predictions without confidence are updated most significantly. The other peripheral scores are multiplied with a number closer to $0$." + }, + { + "metadata": { + "_uuid": "057f51f99a2a87073013e9e2b9f5538c98297cf3" + }, + "cell_type": "markdown", + "source": "In the prediction line $l1 = sigmoid(np.dot(X, Wo))$ we compute the dot-product of the input vectors with the weights and compute the sigmoid on the sums.\nThe result of the dot-product is the number of rows of the first matrix ($X$) and the number of columns of the second matrix ($Wo$).\nIn the computation of the difference between the true (or gold) values in $y$ and the \"guessed\" values in $l1$ we have an estimate of the miss." + }, + { + "metadata": { + "_uuid": "7c64e2c97d7093bb8f71d5bd173820b526fc71a1" + }, + "cell_type": "markdown", + "source": "An example computation for the input $[ 1, 0, 1 ]$ and the weights $[ 9.5, 0.2, -0.1 ]$ and an output of $0.99$: If $y = 1$, the $l1\\_error = y - l2 = 0.01$, and $l1\\_delta = 0.01 * tiny\\_deriv$:" + }, + { + "metadata": { + "_uuid": "602abaf7339d617f2e0333c86ab98b94bb40a96d" + }, + "cell_type": "markdown", + "source": "" + }, + { + "metadata": { + "_uuid": "3307f0633c665a5fa0aaa97898ab6a1d1d9f6fac" + }, + "cell_type": "markdown", + "source": "## 9-1 More Complex Example with Backpropagation" + }, + { + "metadata": { + "_uuid": "750b541e55ae336dcee16ff38d672dff649792a6" + }, + "cell_type": "markdown", + "source": "Consider now a more complicated example where no column has a correlation with the output:\n\n| Input | Output |\n| ------ |:------:|\n| 0 0 1 | 0 |\n| 0 1 1 | 1 |\n| 1 0 1 | 1 |\n| 1 1 1 | 0 |" + }, + { + "metadata": { + "_uuid": "85bc7295eaf21d0bfad6c4572bfb868d74b2e1aa" + }, + "cell_type": "markdown", + "source": "The pattern here is our XOR pattern or problem: If there is a $1$ in either column $1$ or $2$, but not in both, the output is $1$ (XOR over column $1$ and $2$)." + }, + { + "metadata": { + "_uuid": "340ea076b1899802093da816d92017ce2b3d2716" + }, + "cell_type": "markdown", + "source": "From our discussion of the XOR problem we remember that this is a *non-linear pattern*, a **one-to-one relationship between a combination of inputs**." + }, + { + "metadata": { + "_uuid": "b64402f35850471c7136b201c783b9d9e60e6556" + }, + "cell_type": "markdown", + "source": "To cope with this problem, we need a network with another layer, that is a layer that will combine and transform the input, and an additional layer will map it to the output. We will add a *hidden layer* with randomized weights and then train those to optimize the output probabilities of the table above." + }, + { + "metadata": { + "_uuid": "28829b11334a35dc1649f1d6d2134ed4e0d1a795" + }, + "cell_type": "markdown", + "source": "We will define a new $X$ input matrix that reflects the above table:" + }, + { + "metadata": { + "_uuid": "2c41f4546c675916ff0964370bc98a6862353666", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "X = np.array([[0, 0, 1],\n [0, 1, 1],\n [1, 0, 1],\n [1, 1, 1]])\nprint(X)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "20aff6095cd099acf174500e76946c12481192d7" + }, + "cell_type": "markdown", + "source": "We also define a new output matrix $y$:" + }, + { + "metadata": { + "_uuid": "508e0c65bdd467bfed8d69ac52638d8821dd9e2f", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "y = np.array([[ 0, 1, 1, 0]]).T\nprint(y)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "87a03d01b3b1df0ff847a7507cc66ae87f1669d2" + }, + "cell_type": "markdown", + "source": "We initialize the random number generator with a constant again:" + }, + { + "metadata": { + "_uuid": "237da33769d159e1d450e66c93e677618c0a127f", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "np.random.seed(1)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "03c37d00f1d7b87c44e7a4777990049af4044548" + }, + "cell_type": "markdown", + "source": "Assume that our 3 inputs are mapped to 4 hidden layer ($Wh$) neurons, we have to initialize the hidden layer weights in a 3 by 4 matrix. The outout layer ($Wo$) is a single neuron that is connected to the hidden layer, thus the output layer is a 4 by 1 matrix:" + }, + { + "metadata": { + "_uuid": "823a9291e688f1840b781b5aeba9779215206676", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "n_inputs = 3\nn_hidden_neurons = 4\nn_output_neurons = 1\nWh = np.random.random( (n_inputs, n_hidden_neurons) ) * np.sqrt(2.0/n_inputs)\nWo = np.random.random( (n_hidden_neurons, n_output_neurons) ) * np.sqrt(2.0/n_hidden_neurons)\nprint(\"Wh:\\n\", Wh)\nprint(\"Wo:\\n\", Wo)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d27aca98d06bc0ed16678628d6927015b8dfe427" + }, + "cell_type": "markdown", + "source": "We will loop now 60,000 times to optimize the weights:" + }, + { + "metadata": { + "_uuid": "90add134167965958223083f3c3a7818795777bc", + "collapsed": true, + "trusted": false + }, + "cell_type": "code", + "source": "for i in range(100000):\n l1 = sigmoid(np.dot(X, Wh))\n l2 = sigmoid(np.dot(l1, Wo))\n \n l2_error = y - l2\n \n if (i % 10000) == 0:\n print(\"Error:\", np.mean(np.abs(l2_error)))\n \n # gradient, changing towards the target value\n l2_delta = l2_error * sigmoid_prime(l2)\n \n # compute the l1 contribution by value to the l2 error, given the output weights\n l1_error = l2_delta.dot(Wo.T)\n \n # direction of the l1 target:\n # in what direction is the target l1?\n l1_delta = l1_error * sigmoid_prime(l1)\n \n Wo += np.dot(l1.T, l2_delta)\n Wh += np.dot(X.T, l1_delta)\n\nprint(\"Wo:\\n\", Wo)\nprint(\"Wh:\\n\", Wh)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "263abd8f132d7b73ab2eb67c56caf1508a35d1d3" + }, + "cell_type": "markdown", + "source": "The new computation in this new loop is $l1\\_error = l2\\_delta.dot(Wo.T)$, a **confidence weighted error** from $l2$ to compute an error for $l1$. The computation sends the error across the weights from $l2$ to $l1$. The result is a **contribution weighted error**, because we learn how much each node value in $l1$ **contributed** to the error in $l2$. This step is called **backpropagation**. We update $Wh$ using the same steps we did in the 2 layer implementation." + }, + { + "metadata": { + "_uuid": "97adc471c068fbd8d36ca19a4db0d98b0924c731" + }, + "cell_type": "markdown", + "source": "-----------------\n
\n# 10- Conclusion" + }, + { + "metadata": { + "_uuid": "1adfb5ba84e0f1d8fba58a2fca30546ead095047", + "collapsed": true + }, + "cell_type": "markdown", + "source": "In this kernel, I have tried to cover all the parts related to the process of **Machine Learning** with a variety of Python packages and I know that there are still some problems then I hope to get your feedback to improve it.\n" + }, + { + "metadata": { + "_uuid": "cf3679a51c72dbe2d2549b5fe97e4ac5f1fa0fa0" + }, + "cell_type": "markdown", + "source": "you can follow me on:\n> ###### [ GitHub](https://github.com/mjbahmani)\n> ###### [Kaggle](https://www.kaggle.com/mjbahmani/)\n\n--------------------------------------\n\n **I hope you find this kernel helpful and some UPVOTES would be very much appreciated** " + }, + { + "metadata": { + "_cell_guid": "79c7e3d0-c299-4dcb-8224-4455121ee9b0", + "_uuid": "d629ff2d2480ee46fbb7e2d37f6b5fab8052498a", + "collapsed": true + }, + "cell_type": "markdown", + "source": "
\n\n-----------\n\n# 11- References\n* [1] [Iris image](https://rpubs.com/wjholst/322258)\n* [2] [IRIS](https://archive.ics.uci.edu/ml/datasets/iris)\n* [3] [https://skymind.ai/wiki/machine-learning-workflow](https://skymind.ai/wiki/machine-learning-workflow)\n* [4] [IRIS-wiki](https://archive.ics.uci.edu/ml/datasets/iris)\n* [5] [Problem-define](https://machinelearningmastery.com/machine-learning-in-python-step-by-step/)\n* [6] [Sklearn](http://scikit-learn.org/)\n* [7] [machine-learning-in-python-step-by-step](https://machinelearningmastery.com/machine-learning-in-python-step-by-step/)\n* [8] [Data Cleaning](http://wp.sigmod.org/?p=2288)\n* [9] [competitive data science](https://www.coursera.org/learn/competitive-data-science/)\n\n\n-------------\n" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.6.6", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} \ No newline at end of file diff --git a/A journey with Scikit-Learn/A journey with Scikit-Learn.ipynb b/A journey with Scikit-Learn/A journey with Scikit-Learn.ipynb new file mode 100644 index 0000000..96cfa41 --- /dev/null +++ b/A journey with Scikit-Learn/A journey with Scikit-Learn.ipynb @@ -0,0 +1,1704 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1247188a5193a0bb99f176fea36dc594d283160e" + }, + "source": [ + "##
A Journey with Scikit-Learn
\n", + "\n", + "
There are plenty of courses and tutorials that can help you learn Scikit-Learn from scratch but here in Kaggle, After reading, you can use this workflow to solve other real problems and use it as a template to deal with machine learning problems.
\n", + "
last update: 11/01/2018
\n", + "\n", + "\n", + "\n", + "\n", + ">###### you may be interested have a look at it: [**10-steps-to-become-a-data-scientist**](https://github.com/mjbahmani/10-steps-to-become-a-data-scientist)\n", + "\n", + "\n", + "---------------------------------------------------------------------\n", + "you can Fork and Run this kernel on Github:\n", + "> ###### [ GitHub](https://github.com/mjbahmani/Machine-Learning-Workflow-with-Python)\n", + "\n", + "-------------------------------------------------------------------------------------------------------------\n", + "\n", + " **I hope you find this kernel helpful and some UPVOTES would be very much appreciated**\n", + " \n", + " -----------" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ec7344e7f2a1bafa9a44a518722fcd8ec47c374b" + }, + "source": [ + "## 1-Introduction\n", + "\n", + "- The __open source__ Python ecosystem provides __a standalone, versatile and powerful scientific working environment__, including: [NumPy](http://numpy.org), [SciPy](http://scipy.org), [IPython](http://ipython.org), [Matplotlib](http://matplotlib.org), [Pandas](http://pandas.pydata.org/), _and many others..._\n", + "\n", + "\n", + "\n", + "- Scikit-Learn builds upon NumPy and SciPy and __complements__ this scientific environment with machine learning algorithms;\n", + "- By design, Scikit-Learn is __non-intrusive__, easy to use and easy to combine with other libraries;\n", + "- Core algorithms are implemented in low-level languages." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "4e28cde75726e3617dc80585626f7f8a1297a9e4" + }, + "source": [ + "### 1-1 Import" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", + "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5" + }, + "outputs": [ + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0msklearn\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmetrics\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mconfusion_matrix\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0msklearn\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmetrics\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0maccuracy_score\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0msklearn\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdecomposition\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mPCA\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpyplot\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mpandas\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mget_dummies\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\decomposition\\__init__.py\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[0mincremental_pca\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mIncrementalPCA\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[0mkernel_pca\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mKernelPCA\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 11\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[0msparse_pca\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mSparsePCA\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mMiniBatchSparsePCA\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 12\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[0mtruncated_svd\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mTruncatedSVD\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[0mfastica_\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mFastICA\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfastica\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\decomposition\\sparse_pca.py\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mutils\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mcheck_random_state\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcheck_array\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mutils\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalidation\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mcheck_is_fitted\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 11\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlinear_model\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mridge_regression\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 12\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbase\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mBaseEstimator\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mTransformerMixin\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[0mdict_learning\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mdict_learning\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdict_learning_online\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\__init__.py\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 32\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[0mperceptron\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mPerceptron\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 33\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 34\u001b[1;33m from .randomized_l1 import (RandomizedLasso, RandomizedLogisticRegression,\n\u001b[0m\u001b[0;32m 35\u001b[0m lasso_stability_path)\n\u001b[0;32m 36\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\randomized_l1.py\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 21\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexternals\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0msix\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 22\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexternals\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjoblib\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mMemory\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mParallel\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdelayed\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 23\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfeature_selection\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbase\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mSelectorMixin\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 24\u001b[0m from ..utils import (as_float_array, check_random_state, check_X_y, safe_mask,\n\u001b[0;32m 25\u001b[0m deprecated)\n", + "\u001b[1;32mC:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\feature_selection\\__init__.py\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 23\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[0mfrom_model\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mSelectFromModel\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 24\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 25\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[0mmutual_info_\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mmutual_info_regression\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmutual_info_classif\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 26\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 27\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\feature_selection\\mutual_info_.py\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexternals\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msix\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mmoves\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmetrics\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcluster\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msupervised\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mmutual_info_score\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 11\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mneighbors\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mNearestNeighbors\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 12\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpreprocessing\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mscale\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mutils\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mcheck_random_state\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\neighbors\\__init__.py\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 4\u001b[0m \"\"\"\n\u001b[0;32m 5\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 6\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[0mball_tree\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mBallTree\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 7\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[0mkd_tree\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mKDTree\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[0mdist_metrics\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mDistanceMetric\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32msklearn\\neighbors\\dist_metrics.pxd\u001b[0m in \u001b[0;36minit sklearn.neighbors.ball_tree\u001b[1;34m()\u001b[0m\n", + "\u001b[1;32mC:\\ProgramData\\Anaconda3\\lib\\importlib\\_bootstrap.py\u001b[0m in \u001b[0;36m_find_and_load\u001b[1;34m(name, import_)\u001b[0m\n", + "\u001b[1;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "from sklearn.metrics import classification_report\n", + "from sklearn.metrics import confusion_matrix\n", + "from sklearn.metrics import accuracy_score\n", + "from sklearn.decomposition import PCA\n", + "import matplotlib.pyplot as plt\n", + "from pandas import get_dummies\n", + "import plotly.graph_objs as go\n", + "from sklearn import datasets\n", + "import seaborn as sns\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib\n", + "import warnings\n", + "import sklearn\n", + "import scipy\n", + "import numpy\n", + "import json\n", + "import sys\n", + "import csv\n", + "import os" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3c3c434ac82d771c5549c4f36d0e8e878489f252" + }, + "source": [ + "### 1-2 Print" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "72fdff866b7cbe404867e82f9122e16fc33facf2" + }, + "outputs": [], + "source": [ + "print('matplotlib: {}'.format(matplotlib.__version__))\n", + "print('sklearn: {}'.format(sklearn.__version__))\n", + "print('scipy: {}'.format(scipy.__version__))\n", + "print('seaborn: {}'.format(sns.__version__))\n", + "print('pandas: {}'.format(pd.__version__))\n", + "print('numpy: {}'.format(np.__version__))\n", + "print('Python: {}'.format(sys.version))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cedecea930b278f86292367cc28d2996a235a169" + }, + "source": [ + "
\n", + "## 2- Data Collection\n", + "**Data collection** is the process of gathering and measuring data, information or any variables of interest in a standardized and established manner that enables the collector to answer or test hypothesis and evaluate outcomes of the particular collection.[techopedia]\n", + "\n", + "**Iris dataset** consists of 3 different types of irises’ (Setosa, Versicolour, and Virginica) petal and sepal length, stored in a 150x4 numpy.ndarray\n", + "\n", + "The rows being the samples and the columns being: Sepal Length, Sepal Width, Petal Length and Petal Width.[6]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 188, + "metadata": { + "_uuid": "9269ae851b744856bce56840637030a16a5877e1" + }, + "outputs": [], + "source": [ + "# import Dataset to play with it\n", + "dataset = pd.read_csv('../input/Iris.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "58ed9c838069f54de5cf90b20a774c3e236149b3" + }, + "source": [ + "**<< Note 1 >>**\n", + "\n", + "* Each row is an observation (also known as : sample, example, instance, record)\n", + "* Each column is a feature (also known as: Predictor, attribute, Independent Variable, input, regressor, Covariate)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7b5fd1034cd591ebd29fba1c77d342ec2b408d13" + }, + "source": [ + "After loading the data via **pandas**, we should checkout what the content is, description and via the following:" + ] + }, + { + "cell_type": "code", + "execution_count": 189, + "metadata": { + "_uuid": "edd043f8feb76cfe51b79785302ca4936ceb7b51" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "pandas.core.frame.DataFrame" + ] + }, + "execution_count": 189, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(dataset)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6e80040de557789b0dff267ce45ba3e494885fee" + }, + "source": [ + "## 2- Algorithms" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "666c206f83175114a513b37fb9ae322b5cd8543e" + }, + "source": [ + "__Supervised learning:__\n", + "\n", + "* Linear models (Ridge, Lasso, Elastic Net, ...)\n", + "* Support Vector Machines\n", + "* Tree-based methods (Random Forests, Bagging, GBRT, ...)\n", + "* Nearest neighbors \n", + "* Neural networks (basics)\n", + "* Gaussian Processes\n", + "* Feature selection" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "44eef8d741beebe15555c5166360b2ce77f5d5b1" + }, + "source": [ + "__Unsupervised learning:__\n", + "\n", + "* Clustering (KMeans, Ward, ...)\n", + "* Matrix decomposition (PCA, ICA, ...)\n", + "* Density estimation\n", + "* Outlier detection" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8da2cc5428b697a7b5f21d34038d343bb8b094bb" + }, + "source": [ + "__Model selection and evaluation:__\n", + "\n", + "* Cross-validation\n", + "* Grid-search\n", + "* Lots of metrics\n", + "\n", + "_... and many more!_ (See our [Reference](http://scikit-learn.org/dev/modules/classes.html))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e8a877d51d20c1ad31bb635cffc89175426eb77c" + }, + "source": [ + "## 3- Framework\n", + "\n", + "Data comes as a finite learning set ${\\cal L} = (X, y)$ where\n", + "* Input samples are given as an array $X$ of shape `n_samples` $\\times$ `n_features`, taking their values in ${\\cal X}$;\n", + "* Output values are given as an array $y$, taking _symbolic_ values in ${\\cal Y}$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "bafb45df9ecfe90563f2f9a1be8a327823cf6d35" + }, + "source": [ + "The goal of supervised classification is to build an estimator $\\varphi: {\\cal X} \\mapsto {\\cal Y}$ minimizing\n", + "\n", + "$$\n", + "Err(\\varphi) = \\mathbb{E}_{X,Y}\\{ \\ell(Y, \\varphi(X)) \\}\n", + "$$\n", + "\n", + "where $\\ell$ is a loss function, e.g., the zero-one loss for classification $\\ell_{01}(Y,\\hat{Y}) = 1(Y \\neq \\hat{Y})$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7efef8f514caf78e7bc2a60b4d5c0e7fa6d160ac" + }, + "source": [ + "## 4- Applications\n", + "\n", + "- Classifying signal from background events; \n", + "- Diagnosing disease from symptoms;\n", + "- Recognising cats in pictures;\n", + "- Identifying body parts with Kinect cameras;\n", + "- ...\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7cc13baab79cbc6446763e4ebe8feba2c95e74c9" + }, + "source": [ + "## 5- Data \n", + "\n", + "- Input data = Numpy arrays or Scipy sparse matrices ;\n", + "- Algorithms are expressed using high-level operations defined on matrices or vectors (similar to MATLAB) ;\n", + " - Leverage efficient low-leverage implementations ;\n", + " - Keep code short and readable. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "ea74e169f182b48bc12abc501df217e7c711157c" + }, + "outputs": [], + "source": [ + "# Generate data\n", + "from sklearn.datasets import make_blobs\n", + "import numpy as np\n", + "X, y = make_blobs(n_samples=1000, centers=20, random_state=123)\n", + "labels = [\"b\", \"r\"]\n", + "y = np.take(labels, (y < 10))\n", + "print(X) \n", + "print(y[:5])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "9430d1ac40a1d7ba715347c27039b9b0859e674a" + }, + "outputs": [], + "source": [ + "# X is a 2 dimensional array, with 1000 rows and 2 columns\n", + "print(X.shape)\n", + " \n", + "# y is a vector of 1000 elements\n", + "print(y.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "0e4d94f4cde57a7f8aeaec876d0020b144fd7818" + }, + "outputs": [], + "source": [ + "# Rows and columns can be accessed with lists, slices or masks\n", + "print(X[[1, 2, 3]]) # rows 1, 2 and 3\n", + "print(X[:5]) # 5 first rows\n", + "print(X[500:510, 0]) # values from row 500 to row 510 at column 0\n", + "print(X[y == \"b\"][:5]) # 5 first rows for which y is \"b\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "f87a77afd2c6d75c7d20390394a1f9ae569a30dc" + }, + "outputs": [], + "source": [ + "# Plot\n", + "from matplotlib import pyplot as plt\n", + "plt.rcParams[\"figure.figsize\"] = (8, 8)\n", + "plt.rcParams[\"figure.max_open_warning\"] = -1\n", + "plt.figure()\n", + "for label in labels:\n", + " mask = (y == label)\n", + " plt.scatter(X[mask, 0], X[mask, 1], c=label)\n", + "plt.xlim(-10, 10)\n", + "plt.ylim(-10, 10)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "af3faf3d05bc406b6d882f527f5f5637c4e572a8" + }, + "source": [ + "## 6- Loading external data\n", + "\n", + "- Numpy provides some [simple tools](https://docs.scipy.org/doc/numpy/reference/routines.io.html) for loading data from files (CSV, binary, etc);\n", + "\n", + "- For structured data, Pandas provides more [advanced tools](http://pandas.pydata.org/pandas-docs/stable/io.html) (CSV, JSON, Excel, HDF5, SQL, etc);" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d8307c56699bb79ffb7b3b9e62532b8dab8f7761" + }, + "source": [ + "## 7- A simple and unified API\n", + "\n", + "All learning algorithms in scikit-learn share a uniform and limited API consisting of complementary interfaces:\n", + "\n", + "- an `estimator` interface for building and fitting models;\n", + "- a `predictor` interface for making predictions;\n", + "- a `transformer` interface for converting data.\n", + "\n", + "Goal: enforce a simple and consistent API to __make it trivial to swap or plug algorithms__. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "bc2471a2bc5d24fbee0532a71219e8b25996c20c" + }, + "source": [ + "### 8- Estimators" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "ae2c9909a05b213a567338be03f0b880dcbc42fd" + }, + "outputs": [], + "source": [ + "class Estimator(object):\n", + " def fit(self, X, y=None):\n", + " \"\"\"Fits estimator to data.\"\"\"\n", + " # set state of ``self``\n", + " return self" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "c7c25b799b47dd172f3f73e2c85d2670b0095124" + }, + "outputs": [], + "source": [ + "# Import the nearest neighbor class\n", + "from sklearn.neighbors import KNeighborsClassifier # Change this to try \n", + " # something else\n", + "\n", + "# Set hyper-parameters, for controlling algorithm\n", + "clf = KNeighborsClassifier(n_neighbors=5)\n", + "\n", + "# Learn a model from training data\n", + "clf.fit(X, y)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "f3813605cc909c6fecd52a12e2edc37ad4cc42c2" + }, + "outputs": [], + "source": [ + "# Estimator state is stored in instance attributes\n", + "clf._tree" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0984dea25e9a6c6c7b7372057f87c4bacd230375" + }, + "source": [ + "### 9- Predictors" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "9ca84979bfe46e0b6ce79ade03ac19efde72f5c3" + }, + "outputs": [], + "source": [ + "# Make predictions \n", + "print(clf.predict(X[:5])) " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "1b12ceaf8ca499e5e7d3486955f281f5bd72f34b" + }, + "outputs": [], + "source": [ + "# Compute (approximate) class probabilities\n", + "print(clf.predict_proba(X[:5]))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "72cc7c7b60a33390a85b16bc34e3b9e424650cdd" + }, + "source": [ + "
\n", + "## 7- Model Deployment\n", + "In this section have been applied more than **20 learning algorithms** that play an important rule in your experiences and improve your knowledge in case of ML technique.\n", + "\n", + "> **<< Note 3 >>** : The results shown here may be slightly different for your analysis because, for example, the neural network algorithms use random number generators for fixing the initial value of the weights (starting points) of the neural networks, which often result in obtaining slightly different (local minima) solutions each time you run the analysis. Also note that changing the seed for the random number generator used to create the train, test, and validation samples can change your results." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "4b7788bbaaace438242d3b2d0d2ed489a91939ce" + }, + "source": [ + "## Families of ML algorithms\n", + "There are several categories for machine learning algorithms, below are some of these categories:\n", + "* Linear\n", + " * Linear Regression\n", + " * Logistic Regression\n", + " * Support Vector Machines\n", + "* Tree-Based\n", + " * Decision Tree\n", + " * Random Forest\n", + " * GBDT\n", + "* KNN\n", + "* Neural Networks\n", + "\n", + "-----------------------------\n", + "And if we want to categorize ML algorithms with the type of learning, there are below type:\n", + "* Classification\n", + "\n", + " * k-Nearest \tNeighbors\n", + " * LinearRegression\n", + " * SVM\n", + " * DT \n", + " * NN\n", + " \n", + "* clustering\n", + "\n", + " * K-means\n", + " * HCA\n", + " * Expectation Maximization\n", + " \n", + "* Visualization \tand\tdimensionality \treduction:\n", + "\n", + " * Principal \tComponent \tAnalysis(PCA)\n", + " * Kernel PCA\n", + " * Locally -Linear\tEmbedding \t(LLE)\n", + " * t-distributed\tStochastic\tNeighbor\tEmbedding \t(t-SNE)\n", + " \n", + "* Association \trule\tlearning\n", + "\n", + " * Apriori\n", + " * Eclat\n", + "* Semisupervised learning\n", + "* Reinforcement Learning\n", + " * Q-learning\n", + "* Batch learning & Online learning\n", + "* Ensemble Learning\n", + "\n", + "**<< Note >>**\n", + "> Here is no method which outperforms all others for all tasks\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "daf9910caba26e071ff560dbdaca079ee148e140" + }, + "source": [ + "
\n", + "## Prepare Features & Targets\n", + "First of all seperating the data into dependent(Feature) and independent(Target) variables.\n", + "\n", + "**<< Note 4 >>**\n", + "* X==>>Feature\n", + "* y==>>Target" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "b06cb1191a0f52a904c52a918d1f999536e79bda" + }, + "outputs": [], + "source": [ + "\n", + "X = dataset.iloc[:, :-1].values\n", + "y = dataset.iloc[:, -1].values\n", + "\n", + "# Splitting the dataset into the Training set and Test set\n", + "from sklearn.model_selection import train_test_split\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d13f167dd92888d856c4ad2ff2895bf4855e361c" + }, + "source": [ + "## Accuracy and precision\n", + "* **precision** : \n", + "\n", + "In pattern recognition, information retrieval and binary classification, precision (also called positive predictive value) is the fraction of relevant instances among the retrieved instances, \n", + "* **recall** : \n", + "\n", + "recall is the fraction of relevant instances that have been retrieved over the total amount of relevant instances. \n", + "* **F-score** :\n", + "\n", + "the F1 score is a measure of a test's accuracy. It considers both the precision p and the recall r of the test to compute the score: p is the number of correct positive results divided by the number of all positive results returned by the classifier, and r is the number of correct positive results divided by the number of all relevant samples (all samples that should have been identified as positive). The F1 score is the harmonic average of the precision and recall, where an F1 score reaches its best value at 1 (perfect precision and recall) and worst at 0.\n", + "**What is the difference between accuracy and precision?\n", + "\"Accuracy\" and \"precision\" are general terms throughout science. A good way to internalize the difference are the common \"bullseye diagrams\". In machine learning/statistics as a whole, accuracy vs. precision is analogous to bias vs. variance." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b8b544762cc789bfeb8ebccd6765f77b9c7e1a0f" + }, + "source": [ + "
\n", + "## 7-1 K-Nearest Neighbours\n", + "In **Machine Learning**, the **k-nearest neighbors algorithm** (k-NN) is a non-parametric method used for classification and regression. In both cases, the input consists of the k closest training examples in the feature space. The output depends on whether k-NN is used for classification or regression:\n", + "\n", + "In k-NN classification, the output is a class membership. An object is classified by a majority vote of its neighbors, with the object being assigned to the class most common among its k nearest neighbors (k is a positive integer, typically small). If k = 1, then the object is simply assigned to the class of that single nearest neighbor.\n", + "In k-NN regression, the output is the property value for the object. This value is the average of the values of its k nearest neighbors.\n", + "k-NN is a type of instance-based learning, or lazy learning, where the function is only approximated locally and all computation is deferred until classification. The k-NN algorithm is among the simplest of all machine learning algorithms." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "eaa2caacfbc319932f79c75c549364089d1e649f" + }, + "outputs": [], + "source": [ + "# K-Nearest Neighbours\n", + "from sklearn.neighbors import KNeighborsClassifier\n", + "\n", + "Model = KNeighborsClassifier(n_neighbors=8)\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e01bbec9f80532e30c6cf26d5c3fffffb5ea01d4" + }, + "source": [ + "
\n", + "## 7-2 Radius Neighbors Classifier\n", + "Classifier implementing a **vote** among neighbors within a given **radius**\n", + "\n", + "In scikit-learn **RadiusNeighborsClassifier** is very similar to **KNeighborsClassifier** with the exception of two parameters. First, in RadiusNeighborsClassifier we need to specify the radius of the fixed area used to determine if an observation is a neighbor using radius. Unless there is some substantive reason for setting radius to some value, it is best to treat it like any other hyperparameter and tune it during model selection. The second useful parameter is outlier_label, which indicates what label to give an observation that has no observations within the radius - which itself can often be a useful tool for identifying outliers." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "7728fdafa163e068668cea92cf8d79306b41d458" + }, + "outputs": [], + "source": [ + "from sklearn.neighbors import RadiusNeighborsClassifier\n", + "Model=RadiusNeighborsClassifier(radius=8.0)\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "#summary of the predictions made by the classifier\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_test,y_pred))\n", + "#Accouracy score\n", + "print('accuracy is ', accuracy_score(y_test,y_pred))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e55a785373bf654e0d4b2a78693fab1c8a625acb" + }, + "source": [ + "
\n", + "## 7-3 Logistic Regression\n", + "Logistic regression is the appropriate regression analysis to conduct when the dependent variable is **dichotomous** (binary). Like all regression analyses, the logistic regression is a **predictive analysis**.\n", + "\n", + "In statistics, the logistic model (or logit model) is a widely used statistical model that, in its basic form, uses a logistic function to model a binary dependent variable; many more complex extensions exist. In regression analysis, logistic regression (or logit regression) is estimating the parameters of a logistic model; it is a form of binomial regression. Mathematically, a binary logistic model has a dependent variable with two possible values, such as pass/fail, win/lose, alive/dead or healthy/sick; these are represented by an indicator variable, where the two values are labeled \"0\" and \"1\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "55eb348cf69272192274cd0728a123796b459b55" + }, + "outputs": [], + "source": [ + "# LogisticRegression\n", + "from sklearn.linear_model import LogisticRegression\n", + "Model = LogisticRegression()\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c0a1c2ccaa4f6e9c5e2e42c47a295ceef7abd3b9" + }, + "source": [ + "
\n", + "## 7-4 Passive Aggressive Classifier" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "d509b2111a143660dd5cb1f02ea2779e38295b77" + }, + "outputs": [], + "source": [ + "from sklearn.linear_model import PassiveAggressiveClassifier\n", + "Model = PassiveAggressiveClassifier()\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "52938b49082dac7b35dc627828838bf12924cc7f" + }, + "source": [ + "
\n", + "## 7-5 Naive Bayes\n", + "In machine learning, naive Bayes classifiers are a family of simple \"**probabilistic classifiers**\" based on applying Bayes' theorem with strong (naive) independence assumptions between the features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "522d4a3fa874950d0850a5a9a4178ec763781ec3" + }, + "outputs": [], + "source": [ + "# Naive Bayes\n", + "from sklearn.naive_bayes import GaussianNB\n", + "Model = GaussianNB()\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e530d18ab308e36d575806583e534cc07fe61c61" + }, + "source": [ + "
\n", + "## 7-7 BernoulliNB\n", + "Like MultinomialNB, this classifier is suitable for **discrete data**. The difference is that while MultinomialNB works with occurrence counts, BernoulliNB is designed for binary/boolean features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "e7051b5e9aa144b74e9913cb2a6668832e7f3e02" + }, + "outputs": [], + "source": [ + "# BernoulliNB\n", + "from sklearn.naive_bayes import BernoulliNB\n", + "Model = BernoulliNB()\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "386d2d0e4fc7f5dc2b9298226d8e2ecfb7150346" + }, + "source": [ + "
\n", + "## 7-8 SVM\n", + "\n", + "The advantages of support vector machines are:\n", + "* Effective in high dimensional spaces.\n", + "* Still effective in cases where number of dimensions is greater than the number of samples. \n", + "* Uses a subset of training points in the decision function (called support vectors), so it is also memory efficient.\n", + "* Versatile: different Kernel functions can be specified for the decision function. Common kernels are provided, but it is also possible to specify custom kernels.\n", + "\n", + "The disadvantages of support vector machines include:\n", + "\n", + "* If the number of features is much greater than the number of samples, avoid over-fitting in choosing Kernel functions and regularization term is crucial.\n", + "* SVMs do not directly provide probability estimates, these are calculated using an expensive five-fold cross-validation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "a44a5a43945404c95863668c2ba099f6032357f8" + }, + "outputs": [], + "source": [ + "# Support Vector Machine\n", + "from sklearn.svm import SVC\n", + "\n", + "Model = SVC()\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b1d092cc03dcaa712f4fe4ec6867b292321377d5" + }, + "source": [ + "
\n", + "## 7-9 Nu-Support Vector Classification\n", + "\n", + "> Similar to SVC but uses a parameter to control the number of support vectors." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "2fa7c9a5bef780adb400bd9ad83d030f83a8d2b3" + }, + "outputs": [], + "source": [ + "# Support Vector Machine's \n", + "from sklearn.svm import NuSVC\n", + "\n", + "Model = NuSVC()\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5d07a75e83251ddbf8cfdfd11c9faa2671ad87ff" + }, + "source": [ + "
\n", + "## 7-10 Linear Support Vector Classification\n", + "\n", + "Similar to **SVC** with parameter kernel=’linear’, but implemented in terms of liblinear rather than libsvm, so it has more flexibility in the choice of penalties and loss functions and should scale better to large numbers of samples." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "7e7275f160f2e4e270200eaa01c13be5cb465142" + }, + "outputs": [], + "source": [ + "# Linear Support Vector Classification\n", + "from sklearn.svm import LinearSVC\n", + "\n", + "Model = LinearSVC()\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cec81c9e0c3bc6afba07811a321b5383a0f823f3" + }, + "source": [ + "
\n", + "## 7-11 Decision Tree\n", + "Decision Trees (DTs) are a non-parametric supervised learning method used for **classification** and **regression**. The goal is to create a model that predicts the value of a target variable by learning simple **decision rules** inferred from the data features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "10e25ad67f7c25a8654637d4ba496b64121d67d0" + }, + "outputs": [], + "source": [ + "# Decision Tree's\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "\n", + "Model = DecisionTreeClassifier()\n", + "\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a7d897130fd705943764e924bbe468c99b7c036a" + }, + "source": [ + "
\n", + "## 7-12 ExtraTreeClassifier\n", + "An extremely randomized tree classifier.\n", + "\n", + "Extra-trees differ from classic decision trees in the way they are built. When looking for the best split to separate the samples of a node into two groups, random splits are drawn for each of the **max_features** randomly selected features and the best split among those is chosen. When max_features is set 1, this amounts to building a totally random decision tree.\n", + "\n", + "**Warning**: Extra-trees should only be used within ensemble methods." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "5a775006a814b6aacdcc07dc46995eb291b873f1" + }, + "outputs": [], + "source": [ + "# ExtraTreeClassifier\n", + "from sklearn.tree import ExtraTreeClassifier\n", + "\n", + "Model = ExtraTreeClassifier()\n", + "\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "48f940f73580a2997d75f22eba09d938c86a1a97" + }, + "source": [ + "
\n", + "## 7-13 Neural network\n", + "\n", + "I have used multi-layer Perceptron classifier.\n", + "This model optimizes the log-loss function using **LBFGS** or **stochastic gradient descent**." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1c10482510f654878f93b573dc1abe4112b861eb" + }, + "source": [ + "## 7-13-1 What is a Perceptron?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a94d82b497cbe543da0a637ecfed6e9e8b7569e7" + }, + "source": [ + "There are many online examples and tutorials on perceptrons and learning. Here is a list of some articles:\n", + "- [Wikipedia on Perceptrons](https://en.wikipedia.org/wiki/Perceptron)\n", + "- Jurafsky and Martin (ed. 3), Chapter 8" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e8e4da1a0b3d51a5fff38750fb4631ac3aa7eebb" + }, + "source": [ + "This is an example that I have taken from a draft of the 3rd edition of Jurafsky and Martin, with slight modifications:\n", + "We import *numpy* and use its *exp* function. We could use the same function from the *math* module, or some other module like *scipy*. The *sigmoid* function is defined as in the textbook:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "196e5a54ed0de712e2254e77439051267cad4b3d" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "def sigmoid(z):\n", + " return 1 / (1 + np.exp(-z))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9aa207d0bb6a7342932406d8fa68cbd49be866b5" + }, + "source": [ + "Our example data, **weights** $w$, **bias** $b$, and **input** $x$ are defined as:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "69cae82df8a906ad43594464c6497e05e282dcd1" + }, + "outputs": [], + "source": [ + "w = np.array([0.2, 0.3, 0.8])\n", + "b = 0.5\n", + "x = np.array([0.5, 0.6, 0.1])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8cd5da02c0fc0beedd9a3417e399982293d28fd2" + }, + "source": [ + "Our neural unit would compute $z$ as the **dot-product** $w \\cdot x$ and add the **bias** $b$ to it. The sigmoid function defined above will convert this $z$ value to the **activation value** $a$ of the unit:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "65d083572bf2cc897d816765db05758b107741ff" + }, + "outputs": [], + "source": [ + "z = w.dot(x) + b\n", + "print(\"z:\", z)\n", + "print(\"a:\", sigmoid(z))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9e9101a20c9a167a1d925f3b64aafb94317155e2" + }, + "source": [ + "### The XOR Problem\n", + "The power of neural units comes from combining them into larger networks. Minsky and Papert (1969): A single neural unit cannot compute the simple logical function XOR.\n", + "\n", + "The task is to implement a simple **perceptron** to compute logical operations like AND, OR, and XOR.\n", + "\n", + "- Input: $x_1$ and $x_2$\n", + "- Bias: $b = -1$ for AND; $b = 0$ for OR\n", + "- Weights: $w = [1, 1]$\n", + "\n", + "with the following activation function:\n", + "\n", + "$$\n", + "y = \\begin{cases}\n", + " \\ 0 & \\quad \\text{if } w \\cdot x + b \\leq 0\\\\\n", + " \\ 1 & \\quad \\text{if } w \\cdot x + b > 0\n", + " \\end{cases}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c03b3a6a5307cc53e637afd6da5c307c985be7ac" + }, + "source": [ + "We can define this activation function in Python as:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "7b0832df65fc1aa694a1cf67b8713c894b1ed2a2" + }, + "outputs": [], + "source": [ + "def activation(z):\n", + " if z > 0:\n", + " return 1\n", + " return 0" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "27ae56a47bd180ebbfd82b3f0242c8078db6ac97" + }, + "source": [ + "For AND we could implement a perceptron as:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "3267d3f1a2864f29ff2382a2057b0b88fa74b649" + }, + "outputs": [], + "source": [ + "w = np.array([1, 1])\n", + "b = -1\n", + "x = np.array([0, 0])\n", + "print(\"0 AND 0:\", activation(w.dot(x) + b))\n", + "x = np.array([1, 0])\n", + "print(\"1 AND 0:\", activation(w.dot(x) + b))\n", + "x = np.array([0, 1])\n", + "print(\"0 AND 1:\", activation(w.dot(x) + b))\n", + "x = np.array([1, 1])\n", + "print(\"1 AND 1:\", activation(w.dot(x) + b))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "dbee1f41f0bd66613f5b49e0f65be4bfd9f91283" + }, + "source": [ + "For OR we could implement a perceptron as:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "bf47440fb2f5a0fb016286f0a3a41a05a8416495" + }, + "outputs": [], + "source": [ + "w = np.array([1, 1])\n", + "b = 0\n", + "x = np.array([0, 0])\n", + "print(\"0 OR 0:\", activation(w.dot(x) + b))\n", + "x = np.array([1, 0])\n", + "print(\"1 OR 0:\", activation(w.dot(x) + b))\n", + "x = np.array([0, 1])\n", + "print(\"0 OR 1:\", activation(w.dot(x) + b))\n", + "x = np.array([1, 1])\n", + "print(\"1 OR 1:\", activation(w.dot(x) + b))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "181068ef1b8e1ba568093184c41a118b4c0bfe7f" + }, + "source": [ + "There is no way to implement a perceptron for XOR this way." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d12494da861ea094378c7cf6a3409803fb5585ac" + }, + "source": [ + "no see our prediction for iris" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "5f040cfaeb71f8caa94e4d7f18cccde8d2a0b8a7" + }, + "outputs": [], + "source": [ + "from sklearn.neural_network import MLPClassifier\n", + "Model=MLPClassifier()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "# Summary of the predictions\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_test,y_pred))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ffc339dbf9c8da74194b994930694bd97bb2afbb" + }, + "source": [ + "
\n", + "## 7-14 RandomForest\n", + "A random forest is a meta estimator that **fits a number of decision tree classifiers** on various sub-samples of the dataset and uses averaging to improve the predictive accuracy and control over-fitting. \n", + "\n", + "The sub-sample size is always the same as the original input sample size but the samples are drawn with replacement if bootstrap=True (default)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8ed2305b51c2248a8aa62cf4452632f448e83771" + }, + "outputs": [], + "source": [ + "from sklearn.ensemble import RandomForestClassifier\n", + "Model=RandomForestClassifier(max_depth=2)\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1311eb15f2afceed2219faeb859d0d07b7072176" + }, + "source": [ + "
\n", + "## 7-15 Bagging classifier \n", + "A Bagging classifier is an ensemble **meta-estimator** that fits base classifiers each on random subsets of the original dataset and then aggregate their individual predictions (either by voting or by averaging) to form a final prediction. Such a meta-estimator can typically be used as a way to reduce the variance of a black-box estimator (e.g., a decision tree), by introducing randomization into its construction procedure and then making an ensemble out of it.\n", + "\n", + "This algorithm encompasses several works from the literature. When random subsets of the dataset are drawn as random subsets of the samples, then this algorithm is known as Pasting . If samples are drawn with replacement, then the method is known as Bagging . When random subsets of the dataset are drawn as random subsets of the features, then the method is known as Random Subspaces . Finally, when base estimators are built on subsets of both samples and features, then the method is known as Random Patches .[http://scikit-learn.org]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "c11c731d3db6c1c81301da85dc158cb7d324c4cb" + }, + "outputs": [], + "source": [ + "from sklearn.ensemble import BaggingClassifier\n", + "Model=BaggingClassifier()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c0944bd32424f38906148d96f4b1e6fccfbf97a6" + }, + "source": [ + "
\n", + "## 7-16 AdaBoost classifier\n", + "\n", + "An AdaBoost classifier is a meta-estimator that begins by fitting a classifier on the original dataset and then fits additional copies of the classifier on the same dataset but where the weights of incorrectly classified instances are adjusted such that subsequent classifiers focus more on difficult cases.\n", + "This class implements the algorithm known as **AdaBoost-SAMME** ." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "938946ee8e017b982c4c06e193d4d13cb7d3fb5f" + }, + "outputs": [], + "source": [ + "from sklearn.ensemble import AdaBoostClassifier\n", + "Model=AdaBoostClassifier()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9d62842d12731d3eb1d6577c5b35c12c4886c708" + }, + "source": [ + "
\n", + "## 7-17 Gradient Boosting Classifier\n", + "GB builds an additive model in a forward stage-wise fashion; it allows for the optimization of arbitrary differentiable loss functions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "863124561c0d1b5995d0b8d3702daa7bc364d6b0" + }, + "outputs": [], + "source": [ + "from sklearn.ensemble import GradientBoostingClassifier\n", + "Model=GradientBoostingClassifier()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e89b4494bd78c2d66beeba34a4e320fd8c9dae0c" + }, + "source": [ + "
\n", + "## 7-18 Linear Discriminant Analysis\n", + "Linear Discriminant Analysis (discriminant_analysis.LinearDiscriminantAnalysis) and Quadratic Discriminant Analysis (discriminant_analysis.QuadraticDiscriminantAnalysis) are two classic classifiers, with, as their names suggest, a **linear and a quadratic decision surface**, respectively.\n", + "\n", + "These classifiers are attractive because they have closed-form solutions that can be easily computed, are inherently multiclass, have proven to work well in practice, and have no **hyperparameters** to tune." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "0796cd9f1c902345df605b7557a9c3ff686e35a9" + }, + "outputs": [], + "source": [ + "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\n", + "Model=LinearDiscriminantAnalysis()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "296137970fc94fa4a4eb4185cb5fa952b1985c57" + }, + "source": [ + "
\n", + "## 7-19 Quadratic Discriminant Analysis\n", + "A classifier with a quadratic decision boundary, generated by fitting class conditional densities to the data and using Bayes’ rule.\n", + "\n", + "The model fits a **Gaussian** density to each class." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "5f521d19f295b8e8f24f5715e93b1c45e9a6bce3" + }, + "outputs": [], + "source": [ + "from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis\n", + "Model=QuadraticDiscriminantAnalysis()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0518634bf8850ac1bfcfc301e93a8740e1995c3a" + }, + "source": [ + "
\n", + "## 7-20 Kmeans \n", + "K-means clustering is a type of unsupervised learning, which is used when you have unlabeled data (i.e., data without defined categories or groups). \n", + "\n", + "The goal of this algorithm is **to find groups in the data**, with the number of groups represented by the variable K. The algorithm works iteratively to assign each data point to one of K groups based on the features that are provided.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "427f08af02fc7288a5e35de5ff4b6c33b8fce491" + }, + "outputs": [], + "source": [ + "from sklearn.cluster import KMeans\n", + "iris_SP = dataset[['SepalLengthCm','SepalWidthCm','PetalLengthCm','PetalWidthCm']]\n", + "# k-means cluster analysis for 1-15 clusters \n", + "from scipy.spatial.distance import cdist\n", + "clusters=range(1,15)\n", + "meandist=[]\n", + "\n", + "# loop through each cluster and fit the model to the train set\n", + "# generate the predicted cluster assingment and append the mean \n", + "# distance my taking the sum divided by the shape\n", + "for k in clusters:\n", + " model=KMeans(n_clusters=k)\n", + " model.fit(iris_SP)\n", + " clusassign=model.predict(iris_SP)\n", + " meandist.append(sum(np.min(cdist(iris_SP, model.cluster_centers_, 'euclidean'), axis=1))\n", + " / iris_SP.shape[0])\n", + "\n", + "\"\"\"\n", + "Plot average distance from observations from the cluster centroid\n", + "to use the Elbow Method to identify number of clusters to choose\n", + "\"\"\"\n", + "plt.plot(clusters, meandist)\n", + "plt.xlabel('Number of clusters')\n", + "plt.ylabel('Average distance')\n", + "plt.title('Selecting k with the Elbow Method') \n", + "# pick the fewest number of clusters that reduces the average distance\n", + "# If you observe after 3 we can see graph is almost linear" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7e2b213a37847110d05a0c90d7c5c33f9aefb228" + }, + "source": [ + "## 15- Evaluation\n", + "\n", + "- Recall that we want to learn an estimator $\\varphi$ minimizing the generalization error $Err(\\varphi) = \\mathbb{E}_{X,Y}\\{ \\ell(Y, \\varphi(X)) \\}$.\n", + "\n", + "- Problem: Since $P_{X,Y}$ is unknown, the generalization error $Err(\\varphi)$ cannot be evaluated.\n", + "\n", + "- Solution: Use a proxy to approximate $Err(\\varphi)$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "22f5ef117e03d54401413e162f5d8c023953dda4" + }, + "source": [ + "## 16- Training error" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "2cf59c5ba23a9d7b5bd931372002f911d5a8e6f7" + }, + "outputs": [], + "source": [ + "from sklearn.neighbors import KNeighborsClassifier\n", + "from sklearn.metrics import zero_one_loss\n", + "clf = KNeighborsClassifier(n_neighbors=1)\n", + "clf.fit(X, y)\n", + "print(\"Training error =\", zero_one_loss(y, clf.predict(X)))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c03e9024b8c512dc8bbafe93074dd077ae016c28" + }, + "source": [ + "## 17 - Test error\n", + "\n", + "Issue: the training error is a __biased__ estimate of the generalization error.\n", + "\n", + "Solution: Divide ${\\cal L}$ into two disjoint parts called training and test sets (usually using 70% for training and 30% for test).\n", + "- Use the training set for fitting the model;\n", + "- Use the test set for evaluation only, thereby yielding an unbiased estimate." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "caf35db8de547a3994b837be4e95d446683be305" + }, + "outputs": [], + "source": [ + "from sklearn.neighbors import KNeighborsClassifier\n", + "from sklearn.metrics import zero_one_loss\n", + "from sklearn.model_selection import train_test_split\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y)\n", + "clf = KNeighborsClassifier(n_neighbors=5)\n", + "clf.fit(X_train, y_train)\n", + "print(\"Training error =\", zero_one_loss(y_train, clf.predict(X_train)))\n", + "print(\"Test error =\", zero_one_loss(y_test, clf.predict(X_test)))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "db40db7313dbc0ba56058101810dd5177c43a83b" + }, + "source": [ + "Summary: Beware of bias when you estimate model performance:\n", + "- Training score is often an optimistic estimate of the true performance;\n", + "- __The same data should not be used both for training and evaluation.__" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "953b31ec46a7a55ba984c2e043033362bca3c2fc" + }, + "source": [ + "## 18- Cross-validation" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6ae5deaa807d06338b4cf05c3b2df6649c673dd1" + }, + "source": [ + "Issue: \n", + "- When ${\\cal L}$ is small, training on 70% of the data may lead to a model that is significantly different from a model that would have been learned on the entire set ${\\cal L}$. \n", + "- Yet, increasing the size of the training set (resp. decreasing the size of the test set), might lead to an inaccurate estimate of the generalization error. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "bc9008ff6bffa47cf1c4e834724113df52ae8a30" + }, + "source": [ + "Solution: K-Fold cross-validation. \n", + "- Split ${\\cal L}$ into K small disjoint folds. \n", + "- Train on K-1 folds, evaluate the test error one the held-out fold.\n", + "- Repeat for all combinations and average the K estimates of the generalization error.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "b0bf80dea0982187171e5802fe9281632e9fabfe" + }, + "outputs": [], + "source": [ + "from sklearn.model_selection import KFold\n", + "\n", + "scores = []\n", + "\n", + "for train, test in KFold(n_splits=5, random_state=42).split(X):\n", + " X_train, y_train = X[train], y[train]\n", + " X_test, y_test = X[test], y[test]\n", + " clf = KNeighborsClassifier(n_neighbors=5).fit(X_train, y_train)\n", + " scores.append(zero_one_loss(y_test, clf.predict(X_test)))\n", + "\n", + "print(\"CV error = %f +-%f\" % (np.mean(scores), np.std(scores)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + ">###### you may be interested have a look at it: [**10-steps-to-become-a-data-scientist**](https://github.com/mjbahmani/10-steps-to-become-a-data-scientist)\n", + "\n", + "\n", + "---------------------------------------------------------------------\n", + "you can Fork and Run this kernel on Github:\n", + "> ###### [ GitHub](https://github.com/mjbahmani/Machine-Learning-Workflow-with-Python)\n", + "\n", + "-------------------------------------------------------------------------------------------------------------\n", + "\n", + " **I hope you find this kernel helpful and some UPVOTES would be very much appreciated**\n", + " \n", + " -----------" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1923ba01df86012077df2a2750b92ebb2adb8236" + }, + "source": [ + "## References\n", + "1. [Coursera](https://www.coursera.org/specializations/data-science-python)\n", + "1. [GitHub](https://github.com/mjbahmani)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7f0644ae4e74da4a20cba4e9094ed2458be44361" + }, + "source": [ + "# This Kernel is not completed and will be updated soon!!!" + ] + } + ], + "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.4" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/CheatSheet/DATA.png b/CheatSheet/DATA.png new file mode 100644 index 0000000..6b1355a Binary files /dev/null and b/CheatSheet/DATA.png differ diff --git a/CheatSheet/python_cheat_sheet.pdf b/CheatSheet/python_cheat_sheet.pdf new file mode 100644 index 0000000..35cc635 Binary files /dev/null and b/CheatSheet/python_cheat_sheet.pdf differ diff --git a/Courses/Coursera.txt b/Courses/Coursera.txt new file mode 100644 index 0000000..23ae2ef --- /dev/null +++ b/Courses/Coursera.txt @@ -0,0 +1,10 @@ +this is a courses list that can help you learn machine learning from Coursera: + + + +"Deep Learning" by Andrew Ng + + +Feel free to share free online courses that are not mentioned here! + +If you like more AI and Data Science check out https://aitube.io for free videos, courses, books, papers and more! diff --git a/Courses/DataCamp.txt b/Courses/DataCamp.txt new file mode 100644 index 0000000..88ea147 --- /dev/null +++ b/Courses/DataCamp.txt @@ -0,0 +1,2 @@ +this is a courses list that can help you learn machine learning from Datacamp +https://www.datacamp.com/onboarding diff --git a/Courses/EDX.txt b/Courses/EDX.txt new file mode 100644 index 0000000..ca34f37 --- /dev/null +++ b/Courses/EDX.txt @@ -0,0 +1 @@ +this is a courses list that can help you learn machine learning from EDX diff --git a/Courses/Udacity.txt b/Courses/Udacity.txt new file mode 100644 index 0000000..fb0abc8 --- /dev/null +++ b/Courses/Udacity.txt @@ -0,0 +1,7 @@ +this is a courses list that can help you learn machine learning from Udacity + + +1- "Intro to Machine Learning" on Udacity +2- "Machine Learning by Georgia Tech" on Udacity (Georgia Tech) +3- "Data Wrangling with MongoDB" on Udacity +Feel free to share free online courses that are not mentioned here! diff --git a/Courses/Udemy.txt b/Courses/Udemy.txt new file mode 100644 index 0000000..a35c150 --- /dev/null +++ b/Courses/Udemy.txt @@ -0,0 +1,12 @@ +this is a courses list that can help you learn machine learning from Udemy + +1- Machine Learning A-Z™: Hands-On Python & R In Data Science +2- python-for-data-science-and-machine-learning-bootcamp +3- data-science-and-machine-learning-with-python-hands-on +4- data-science-and-machine-learning-bootcamp-with-r + + + + +Feel free to share free online courses that are not mentioned here! + diff --git a/Data Cleaning in Python for Machine Learning Experts/Data Cleaning in Python for Machine Learning Experts.ipynb b/Data Cleaning in Python for Machine Learning Experts/Data Cleaning in Python for Machine Learning Experts.ipynb new file mode 100644 index 0000000..b178174 --- /dev/null +++ b/Data Cleaning in Python for Machine Learning Experts/Data Cleaning in Python for Machine Learning Experts.ipynb @@ -0,0 +1,861 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a8f9622945156d6337ba73c481da2de7efef7384" + }, + "source": [ + "##
Data Cleaning in Python for Machine Learning Experts
\n", + "\n", + "
There are plenty of courses and tutorials that can help you learn machine learning from scratch but here in Kaggle, I want to predict House prices(in the next version) a popular machine learning Dataset as a comprehensive workflow with python packages. \n", + "After reading, you can use this workflow to solve other real problems and use it as a template to deal with machine learning problems.
\n", + "
last update: 10/15/2018
\n", + "\n", + "\n", + "\n", + ">###### you may be interested have a look at it: [**A Comprehensive ML Workflow for House Prices**](https://www.kaggle.com/mjbahmani/a-comprehensive-ml-workflow-for-house-prices)\n", + "\n", + "\n", + "---------------------------------------------------------------------\n", + "you can follow me on:\n", + "> ###### [ GitHub](https://github.com/mjbahmani)\n", + "> ###### [Kaggle](https://www.kaggle.com/mjbahmani/)\n", + "-------------------------------------------------------------------------------------------------------------\n", + " **I hope you find this kernel helpful and some upvotes would be very much appreciated**\n", + " \n", + " -----------" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cda11210a88d6484112cbe2c3624225328326c6a" + }, + "source": [ + "## Notebook Content\n", + "* 1- [Introduction](#1)\n", + "* 2- [Machine Learning workflow](#2)\n", + "* 3- [Problem Definition](#3)\n", + "* 3-1 [Problem feature](#4)\n", + "* 3-2 [Aim](#5)\n", + "* 3-3 [Variables](#6)\n", + "* 4-[ Inputs & Outputs](#7)\n", + "* 4-1 [Inputs ](#8)\n", + "* 4-2 [Outputs](#9)\n", + "* 5- [Installation](#10)\n", + "* 5-1 [ jupyter notebook](#11)\n", + "* 5-2[ kaggle kernel](#12)\n", + "* 5-3 [Colab notebook](#13)\n", + "* 5-4 [install python & packages](#14)\n", + "* 5-5 [Loading Packages](#15)\n", + "* 6- [Exploratory data analysis](#16)\n", + "* 6-1 [Data Collection](#17)\n", + "* 6-2 [Visualization](#18)\n", + "* 6-2-1 [Scatter plot](#19)\n", + "* 6-2-2 [Box](#20)\n", + "* 6-2-3 [Histogram](#21)\n", + "* 6-2-4 [Multivariate Plots](#22)\n", + "* 6-2-5 [Violinplots](#23)\n", + "* 6-2-6 [Pair plot](#24)\n", + "* 6-2-7 [Kde plot](#25)\n", + "* 6-2-8 [Joint plot](#26)\n", + "* 6-2-9 [Andrews curves](#27)\n", + "* 6-2-10 [Heatmap](#28)\n", + "* 6-2-11 [Radviz](#29)\n", + "* 6-3 [Data Preprocessing](#30)\n", + "* 6-4 [Data Cleaning](#31)\n", + "* 7- [Model Deployment](#32)\n", + "* 7-1[ KNN](#33)\n", + "* 7-2 [Radius Neighbors Classifier](#34)\n", + "* 7-3 [Logistic Regression](#35)\n", + "* 7-4 [Passive Aggressive Classifier](#36)\n", + "* 7-5 [Naive Bayes](#37)\n", + "* 7-6 [MultinomialNB](#38)\n", + "* 7-7 [BernoulliNB](#39)\n", + "* 7-8 [SVM](#40)\n", + "* 7-9 [Nu-Support Vector Classification](#41)\n", + "* 7-10 [Linear Support Vector Classification](#42)\n", + "* 7-11 [Decision Tree](#43)\n", + "* 7-12 [ExtraTreeClassifier](#44)\n", + "* 7-13 [Neural network](#45)\n", + "* 7-13-1 [What is a Perceptron?](#45)\n", + "* 7-14 [RandomForest](#46)\n", + "* 7-15 [Bagging classifier ](#47)\n", + "* 7-16 [AdaBoost classifier](#48)\n", + "* 7-17 [Gradient Boosting Classifier](#49)\n", + "* 7-18 [Linear Discriminant Analysis](#50)\n", + "* 7-19 [Quadratic Discriminant Analysis](#51)\n", + "* 7-20 [Kmeans](#52)\n", + "* 7-21 [Backpropagation](#53)\n", + "* 9- [Conclusion](#54)\n", + "* 10- [References](#55)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "750903cc2679d39058f56df6c6c040be02b748df" + }, + "source": [ + "
\n", + "## 1- Introduction\n", + "This is a **comprehensive ML techniques with python** , that I have spent for more than two months to complete it.\n", + "\n", + "it is clear that everyone in this community is familiar with IRIS dataset but if you need to review your information about the dataset please visit this [link](https://archive.ics.uci.edu/ml/datasets/iris).\n", + "\n", + "I have tried to help **beginners** in Kaggle how to face machine learning problems. and I think it is a great opportunity for who want to learn machine learning workflow with python completely.\n", + "I have covered most of the methods that are implemented for iris until **2018**, you can start to learn and review your knowledge about ML with a simple dataset and try to learn and memorize the workflow for your journey in Data science world.\n", + "\n", + "I am open to getting your feedback for improving this **kernel**\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e11b73b618b0f6e4335520ef80267c6d577d1ba5" + }, + "source": [ + "
\n", + "## 2- Machine Learning Workflow\n", + "Field of \tstudy \tthat \tgives\tcomputers\tthe\tability \tto\tlearn \twithout \tbeing\n", + "explicitly \tprogrammed.\n", + "\n", + "Arthur\tSamuel, 1959\n", + "\n", + "If you have already read some [machine learning books](https://towardsdatascience.com/list-of-free-must-read-machine-learning-books-89576749d2ff). You have noticed that there are different ways to stream data into machine learning.\n", + "\n", + "most of these books share the following steps (checklist):\n", + "* Define the Problem(Look at the big picture)\n", + "* Specify Inputs & Outputs\n", + "* Data Collection\n", + "* Exploratory data analysis\n", + "* Data Preprocessing\n", + "* Model Design, Training, and Offline Evaluation\n", + "* Model Deployment, Online Evaluation, and Monitoring\n", + "* Model Maintenance, Diagnosis, and Retraining\n", + "\n", + "**You can see my workflow in the below image** :\n", + " \n", + "\n", + "**you should\tfeel free\tto\tadapt \tthis\tchecklist \tto\tyour needs**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "89ee0cda57822cd4102eadf8992c5bfe1964d557" + }, + "source": [ + "
\n", + "## 5-Installation\n", + "#### Windows:\n", + "* Anaconda (from https://www.continuum.io) is a free Python distribution for SciPy stack. It is also available for Linux and Mac.\n", + "* Canopy (https://www.enthought.com/products/canopy/) is available as free as well as commercial distribution with full SciPy stack for Windows, Linux and Mac.\n", + "* Python (x,y) is a free Python distribution with SciPy stack and Spyder IDE for Windows OS. (Downloadable from http://python-xy.github.io/)\n", + "#### Linux\n", + "Package managers of respective Linux distributions are used to install one or more packages in SciPy stack.\n", + "\n", + "For Ubuntu Users:\n", + "sudo apt-get install python-numpy python-scipy python-matplotlibipythonipythonnotebook\n", + "python-pandas python-sympy python-nose" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c1793fb141d3338bbc4300874be6ffa5cb1a9139" + }, + "source": [ + "
\n", + "## 5-1 Jupyter notebook\n", + "I strongly recommend installing **Python** and **Jupyter** using the **[Anaconda Distribution](https://www.anaconda.com/download/)**, which includes Python, the Jupyter Notebook, and other commonly used packages for scientific computing and data science.\n", + "\n", + "First, download Anaconda. We recommend downloading Anaconda’s latest Python 3 version.\n", + "\n", + "Second, install the version of Anaconda which you downloaded, following the instructions on the download page.\n", + "\n", + "Congratulations, you have installed Jupyter Notebook! To run the notebook, run the following command at the Terminal (Mac/Linux) or Command Prompt (Windows):" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "abbd1757dde9805758a2cec47a186e31dbc29822" + }, + "source": [ + "> jupyter notebook\n", + "> " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8a70c253d5afa93f07a7a7e048dbb2d7812c8d10" + }, + "source": [ + "
\n", + "## 5-2 Kaggle Kernel\n", + "Kaggle kernel is an environment just like you use jupyter notebook, it's an **extension** of the where in you are able to carry out all the functions of jupyter notebooks plus it has some added tools like forking et al." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "237bbe4e4509c9491ce165e3599c432b979d7b90" + }, + "source": [ + "
\n", + "## 5-3 Colab notebook\n", + "**Colaboratory** is a research tool for machine learning education and research. It’s a Jupyter notebook environment that requires no setup to use.\n", + "### 5-3-1 What browsers are supported?\n", + "Colaboratory works with most major browsers, and is most thoroughly tested with desktop versions of Chrome and Firefox.\n", + "### 5-3-2 Is it free to use?\n", + "Yes. Colaboratory is a research project that is free to use.\n", + "### 5-3-3 What is the difference between Jupyter and Colaboratory?\n", + "Jupyter is the open source project on which Colaboratory is based. Colaboratory allows you to use and share Jupyter notebooks with others without having to download, install, or run anything on your own computer other than a browser." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "fbedcae8843986c2139f18dad4b5f313e6535ac5" + }, + "source": [ + "
\n", + "## 5-5 Loading Packages\n", + "In this kernel we are using the following packages:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "61f49281fdd8592b44c0867225f57e6fce36342c" + }, + "source": [ + " \n", + " Now we import all of them " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", + "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Python: 3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)]\n", + "scipy: 0.19.0\n", + "matplotlib: 2.0.2\n", + "numpy: 1.12.1\n", + "pandas: 0.20.1\n", + "seaborn: 0.7.1\n", + "matplotlib: 2.0.2\n", + "sklearn: 0.18.1\n" + ] + } + ], + "source": [ + "# packages to load \n", + "# Check the versions of libraries\n", + "# Python version\n", + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "import sys\n", + "print('Python: {}'.format(sys.version))\n", + "# scipy\n", + "import scipy\n", + "print('scipy: {}'.format(scipy.__version__))\n", + "import numpy\n", + "# matplotlib\n", + "import matplotlib\n", + "print('matplotlib: {}'.format(matplotlib.__version__))\n", + "# numpy\n", + "import numpy as np # linear algebra\n", + "print('numpy: {}'.format(np.__version__))\n", + "# pandas\n", + "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n", + "print('pandas: {}'.format(pd.__version__))\n", + "import seaborn as sns\n", + "print('seaborn: {}'.format(sns.__version__))\n", + "sns.set(color_codes=True)\n", + "import matplotlib.pyplot as plt\n", + "print('matplotlib: {}'.format(matplotlib.__version__))\n", + "%matplotlib inline\n", + "# scikit-learn\n", + "import sklearn\n", + "print('sklearn: {}'.format(sklearn.__version__))\n", + "# Input data files are available in the \"../input/\" directory.\n", + "# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n", + "import os\n", + "%matplotlib inline\n", + "from sklearn.metrics import accuracy_score\n", + "# Importing metrics for evaluation\n", + "from sklearn.metrics import confusion_matrix\n", + "from sklearn.metrics import classification_report\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "04ff1a533119d589baee777c21194a951168b0c7" + }, + "source": [ + "
\n", + "## 6- Data Cleaning\n", + " In this section, you'll learn how to use graphical and numerical techniques to begin uncovering the structure of your data. \n", + " \n", + "* Which variables suggest interesting relationships?\n", + "* Which observations are unusual?\n", + "\n", + "By the end of the section, you'll be able to answer these questions and more, while generating graphics that are both insightful and beautiful. then We will review analytical and statistical operations:\n", + "\n", + "* 5-1 Data Collection\n", + "* 5-2 Visualization\n", + "* 5-3 Data Preprocessing\n", + "* 5-4 Data Cleaning\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cedecea930b278f86292367cc28d2996a235a169" + }, + "source": [ + "
\n", + "## 6-1 Data Collection\n", + "**Data collection** is the process of gathering and measuring data, information or any variables of interest in a standardized and established manner that enables the collector to answer or test hypothesis and evaluate outcomes of the particular collection.[techopedia]\n", + "\n", + "**Iris dataset** consists of 3 different types of irises’ (Setosa, Versicolour, and Virginica) petal and sepal length, stored in a 150x4 numpy.ndarray\n", + "\n", + "The rows being the samples and the columns being: Sepal Length, Sepal Width, Petal Length and Petal Width.[6]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "_uuid": "9269ae851b744856bce56840637030a16a5877e1", + "collapsed": true + }, + "outputs": [], + "source": [ + "# import Dataset to play with it\n", + "dataset = pd.read_csv('../input/Iris.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "58ed9c838069f54de5cf90b20a774c3e236149b3" + }, + "source": [ + "**<< Note 1 >>**\n", + "\n", + "* Each row is an observation (also known as : sample, example, instance, record)\n", + "* Each column is a feature (also known as: Predictor, attribute, Independent Variable, input, regressor, Covariate)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7b5fd1034cd591ebd29fba1c77d342ec2b408d13" + }, + "source": [ + "After loading the data via **pandas**, we should checkout what the content is, description and via the following:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "_uuid": "edd043f8feb76cfe51b79785302ca4936ceb7b51" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "pandas.core.frame.DataFrame" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(dataset)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5af51158a5bc342947c553392e3d1665ac24ba62" + }, + "source": [ + "### 6-2-12 Conclusion\n", + "we have used Python to apply data visualization tools to the Iris dataset. Color and size changes were made to the data points in scatterplots. I changed the border and fill color of the boxplot and violin, respectively." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "581b90e6a869c3793472c7edd59091d6d6342fb2" + }, + "source": [ + "## 6-3-1 Features\n", + "Features:\n", + "* numeric\n", + "* categorical\n", + "* ordinal\n", + "* datetime\n", + "* coordinates\n", + "\n", + "find the type of features in titanic dataset\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 6-3-2 Explorer Dataset\n", + "1- Dimensions of the dataset.\n", + "\n", + "2- Peek at the data itself.\n", + "\n", + "3- Statistical summary of all attributes.\n", + "\n", + "4- Breakdown of the data by the class variable.[7]\n", + "\n", + "Don’t worry, each look at the data is **one command**. These are useful commands that you can use again and again on future projects." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "_uuid": "4b45251be7be77333051fe738639104ae1005fa5" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(150, 6)\n" + ] + } + ], + "source": [ + "# shape\n", + "print(dataset.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "c64e9d3e0bf394fb833de94a0fc5c34f69fce24c", + "collapsed": true + }, + "outputs": [], + "source": [ + "#columns*rows\n", + "dataset.size" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "277e1998627d6a3ddeff4e913a6b8c3dc81dec96" + }, + "source": [ + "\n", + "We can get a quick idea of how many instances (rows) and how many attributes (columns) the data contains with the shape property.\n", + "\n", + "You should see 150 instances and 5 attributes:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "95ee5e18f97bc410df1e54ac74e32cdff2b30755" + }, + "source": [ + "for getting some information about the dataset you can use **info()** command" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "ca840f02925751186f87e402fcb5f637ab1ab8a0", + "collapsed": true + }, + "outputs": [], + "source": [ + "print(dataset.info())" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3458838205be4c7fbff88e95ef69934e13e2199b" + }, + "source": [ + "you see number of unique item for Species with command below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "4b90d165a007106ae99809ad28edd75bd8153dd8", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset['Species'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8accfbddf2228274ad412c3ad3be72b4107d6f6c", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset[\"Species\"].value_counts()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ae08b544a8d4202c7d0a47ec83d685e81c91a66d" + }, + "source": [ + "to check the first 5 rows of the data set, we can use head(5)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "5899889553c3416b27e93efceddb106eb71f5156", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.head(5) " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1150b6ac3d82562aefd5c64f9f01accee5eace4d" + }, + "source": [ + "to check out last 5 row of the data set, we use tail() function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "79339442ff1f53ae1054d794337b9541295d3305", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.tail() " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2c288c3dc8656a872a8529368812546e434d3a22" + }, + "source": [ + "to pop up 5 random rows from the data set, we can use **sample(5)** function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "09eb18d1fcf4a2b73ba2f5ddce99dfa521681140", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.sample(5) " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c8a1cc36348c68fb98d6cb28aa9919fc5f2892f3" + }, + "source": [ + "to give a statistical summary about the dataset, we can use **describe()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "3f7211e96627b9a81c5b620a9ba61446f7719ea3", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.describe() " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "031d16ca235837e889734635ecff193be64b27a4" + }, + "source": [ + "to check out how many null info are on the dataset, we can use **isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8807b632269e2fa734ad26e8513199400fc09a83", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "446e6162e16325213047ff31454813455668b574", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.groupby('Species').count()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c2f1eaf0b6dfdc7cc4dace04614e99ed56425d00" + }, + "source": [ + "to print dataset **columns**, we can use columns atribute" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "909d61b33ec06249d0842e6115597bbacf21163f", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.columns" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "22bc5d81c18275ee1fb082c0adbb7a65bdbec4cc" + }, + "source": [ + "**<< Note 2 >>**\n", + "in pandas's data frame you can perform some query such as \"where\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "c8c8d9fd63d9bdb601183aeb4f1435affeb8a596", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.where(dataset ['Species']=='Iris-setosa')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "33fc33a18489b438a884819d99dc00a02b113be8" + }, + "source": [ + "as you can see in the below in python, it is so easy perform some query on the dataframe:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8b545ff7e8367c5ab9c1db710f70b6936ac8422c", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset[dataset['SepalLengthCm']>7.2]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "1c92b300076a232321c915857d8a7c5685a97865", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Seperating the data into dependent and independent variables\n", + "X = dataset.iloc[:, :-1].values\n", + "y = dataset.iloc[:, -1].values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**<< Note >>**\n", + ">**Preprocessing and generation pipelines depend on a model type**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8280749a19af32869978c61941d1dea306632d71" + }, + "source": [ + "
\n", + "## 6-4 Data Cleaning\n", + "When dealing with real-world data, dirty data is the norm rather than the exception. We continuously need to predict correct values, impute missing ones, and find links between various data artefacts such as schemas and records. We need to stop treating data cleaning as a piecemeal exercise (resolving different types of errors in isolation), and instead leverage all signals and resources (such as constraints, available statistics, and dictionaries) to accurately predict corrective actions.\n", + "\n", + "The primary goal of data cleaning is to detect and remove errors and **anomalies** to increase the value of data in analytics and decision making. While it has been the focus of many researchers for several years, individual problems have been addressed separately. These include missing value imputation, outliers detection, transformations, integrity constraints violations detection and repair, consistent query answering, deduplication, and many other related problems such as profiling and constraints mining.[8]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e8e4da1a0b3d51a5fff38750fb4631ac3aa7eebb" + }, + "source": [ + "This is an example that I have taken from a draft of the 3rd edition of Jurafsky and Martin, with slight modifications:\n", + "We import *numpy* and use its *exp* function. We could use the same function from the *math* module, or some other module like *scipy*. The *sigmoid* function is defined as in the textbook:\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "97adc471c068fbd8d36ca19a4db0d98b0924c731" + }, + "source": [ + "-----------------\n", + "
\n", + "# 8- Conclusion" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1adfb5ba84e0f1d8fba58a2fca30546ead095047", + "collapsed": true + }, + "source": [ + "In this kernel, I have tried to cover all the parts related to the process of ML with a variety of Python packages and I know that there are still some problems then I hope to get your feedback to improve it.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cf3679a51c72dbe2d2549b5fe97e4ac5f1fa0fa0" + }, + "source": [ + "you can follow me on:\n", + "> ###### [ GitHub](https://github.com/mjbahmani)\n", + "> ###### [LinkedIn](https://www.linkedin.com/in/bahmani/)\n", + "> ###### [Kaggle](https://www.kaggle.com/mjbahmani/)\n", + "\n", + "--------------------------------------\n", + "\n", + " **I hope you find this kernel helpful and some upvotes would be very much appreciated**\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_cell_guid": "79c7e3d0-c299-4dcb-8224-4455121ee9b0", + "_uuid": "d629ff2d2480ee46fbb7e2d37f6b5fab8052498a", + "collapsed": true + }, + "source": [ + "
\n", + "\n", + "-----------\n", + "\n", + "# 9- References\n", + "* [1] [Iris image](https://rpubs.com/wjholst/322258)\n", + "* [2] [IRIS](https://archive.ics.uci.edu/ml/datasets/iris)\n", + "* [3] [https://skymind.ai/wiki/machine-learning-workflow](https://skymind.ai/wiki/machine-learning-workflow)\n", + "* [4] [IRIS-wiki](https://archive.ics.uci.edu/ml/datasets/iris)\n", + "* [5] [Problem-define](https://machinelearningmastery.com/machine-learning-in-python-step-by-step/)\n", + "* [6] [Sklearn](http://scikit-learn.org/)\n", + "* [7] [machine-learning-in-python-step-by-step](https://machinelearningmastery.com/machine-learning-in-python-step-by-step/)\n", + "* [8] [Data Cleaning](http://wp.sigmod.org/?p=2288)\n", + "* [9] [competitive data science](https://www.coursera.org/learn/competitive-data-science/)\n", + "\n", + "\n", + "-------------\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/Data Visualization in Python for Machine Learning Experts/Data Visualization in Python for Machine Learning Experts.ipynb b/Data Visualization in Python for Machine Learning Experts/Data Visualization in Python for Machine Learning Experts.ipynb new file mode 100644 index 0000000..0b6af14 --- /dev/null +++ b/Data Visualization in Python for Machine Learning Experts/Data Visualization in Python for Machine Learning Experts.ipynb @@ -0,0 +1,2993 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a8f9622945156d6337ba73c481da2de7efef7384" + }, + "source": [ + "##
A Comprehensive Machine Learning Workflow with Python
\n", + "\n", + "
There are plenty of courses and tutorials that can help you learn machine learning from scratch but here in Kaggle, I want to predict House prices(in the next version) a popular machine learning Dataset as a comprehensive workflow with python packages. \n", + "After reading, you can use this workflow to solve other real problems and use it as a template to deal with machine learning problems.
\n", + "
last update: 10/15/2018
\n", + "\n", + "\n", + "\n", + ">###### you may be interested have a look at it: [**A Comprehensive ML Workflow for House Prices**](https://www.kaggle.com/mjbahmani/a-comprehensive-ml-workflow-for-house-prices)\n", + "\n", + "\n", + "---------------------------------------------------------------------\n", + "you can follow me on:\n", + "> ###### [ GitHub](https://github.com/mjbahmani)\n", + "> ###### [Kaggle](https://www.kaggle.com/mjbahmani/)\n", + "-------------------------------------------------------------------------------------------------------------\n", + " **I hope you find this kernel helpful and some upvotes would be very much appreciated**\n", + " \n", + " -----------" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cda11210a88d6484112cbe2c3624225328326c6a" + }, + "source": [ + "## Notebook Content\n", + "* 1- [Introduction](#1)\n", + "* 2- [Machine learning workflow](#2)\n", + "* 2-1 [Real world Application Vs Competitions](#2)\n", + "\n", + "* 3- [Problem Definition](#3)\n", + "* 3-1 [Problem feature](#4)\n", + "* 3-2 [Aim](#5)\n", + "* 3-3 [Variables](#6)\n", + "* 4-[ Inputs & Outputs](#7)\n", + "* 4-1 [Inputs ](#8)\n", + "* 4-2 [Outputs](#9)\n", + "* 5- [Installation](#10)\n", + "* 5-1 [ jupyter notebook](#11)\n", + "* 5-2[ kaggle kernel](#12)\n", + "* 5-3 [Colab notebook](#13)\n", + "* 5-4 [install python & packages](#14)\n", + "* 5-5 [Loading Packages](#15)\n", + "* 6- [Exploratory data analysis](#16)\n", + "* 6-1 [Data Collection](#17)\n", + "* 6-2 [Visualization](#18)\n", + "* 6-2-1 [Scatter plot](#19)\n", + "* 6-2-2 [Box](#20)\n", + "* 6-2-3 [Histogram](#21)\n", + "* 6-2-4 [Multivariate Plots](#22)\n", + "* 6-2-5 [Violinplots](#23)\n", + "* 6-2-6 [Pair plot](#24)\n", + "* 6-2-7 [Kde plot](#25)\n", + "* 6-2-8 [Joint plot](#26)\n", + "* 6-2-9 [Andrews curves](#27)\n", + "* 6-2-10 [Heatmap](#28)\n", + "* 6-2-11 [Radviz](#29)\n", + "* 6-3 [Data Preprocessing](#30)\n", + "* 6-4 [Data Cleaning](#31)\n", + "* 7- [Model Deployment](#32)\n", + "* 7-1[ KNN](#33)\n", + "* 7-2 [Radius Neighbors Classifier](#34)\n", + "* 7-3 [Logistic Regression](#35)\n", + "* 7-4 [Passive Aggressive Classifier](#36)\n", + "* 7-5 [Naive Bayes](#37)\n", + "* 7-6 [MultinomialNB](#38)\n", + "* 7-7 [BernoulliNB](#39)\n", + "* 7-8 [SVM](#40)\n", + "* 7-9 [Nu-Support Vector Classification](#41)\n", + "* 7-10 [Linear Support Vector Classification](#42)\n", + "* 7-11 [Decision Tree](#43)\n", + "* 7-12 [ExtraTreeClassifier](#44)\n", + "* 7-13 [Neural network](#45)\n", + "* 7-13-1 [What is a Perceptron?](#45)\n", + "* 7-14 [RandomForest](#46)\n", + "* 7-15 [Bagging classifier ](#47)\n", + "* 7-16 [AdaBoost classifier](#48)\n", + "* 7-17 [Gradient Boosting Classifier](#49)\n", + "* 7-18 [Linear Discriminant Analysis](#50)\n", + "* 7-19 [Quadratic Discriminant Analysis](#51)\n", + "* 7-20 [Kmeans](#52)\n", + "* 7-21 [Backpropagation](#53)\n", + "* 9- [Conclusion](#54)\n", + "* 10- [References](#55)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "750903cc2679d39058f56df6c6c040be02b748df" + }, + "source": [ + "
\n", + "## 1- Introduction\n", + "This is a **comprehensive ML techniques with python** , that I have spent for more than two months to complete it.\n", + "\n", + "it is clear that everyone in this community is familiar with IRIS dataset but if you need to review your information about the dataset please visit this [link](https://archive.ics.uci.edu/ml/datasets/iris).\n", + "\n", + "I have tried to help **beginners** in Kaggle how to face machine learning problems. and I think it is a great opportunity for who want to learn machine learning workflow with python completely.\n", + "I have covered most of the methods that are implemented for iris until **2018**, you can start to learn and review your knowledge about ML with a simple dataset and try to learn and memorize the workflow for your journey in Data science world.\n", + "\n", + "I am open to getting your feedback for improving this **kernel**\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e11b73b618b0f6e4335520ef80267c6d577d1ba5" + }, + "source": [ + "
\n", + "## 2- Machine Learning Workflow\n", + "Field of \tstudy \tthat \tgives\tcomputers\tthe\tability \tto\tlearn \twithout \tbeing\n", + "explicitly \tprogrammed.\n", + "\n", + "Arthur\tSamuel, 1959\n", + "\n", + "If you have already read some [machine learning books](https://towardsdatascience.com/list-of-free-must-read-machine-learning-books-89576749d2ff). You have noticed that there are different ways to stream data into machine learning.\n", + "\n", + "most of these books share the following steps (checklist):\n", + "* Define the Problem(Look at the big picture)\n", + "* Specify Inputs & Outputs\n", + "* Data Collection\n", + "* Exploratory data analysis\n", + "* Data Preprocessing\n", + "* Model Design, Training, and Offline Evaluation\n", + "* Model Deployment, Online Evaluation, and Monitoring\n", + "* Model Maintenance, Diagnosis, and Retraining\n", + "\n", + "**You can see my workflow in the below image** :\n", + " \n", + "\n", + "**you should\tfeel free\tto\tadapt \tthis\tchecklist \tto\tyour needs**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2-1 Real world Application Vs Competitions\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "600be852c0d28e7c0c5ebb718904ab15a536342c" + }, + "source": [ + "
\n", + "## 3- Problem Definition\n", + "I think one of the important things when you start a new machine learning project is Defining your problem. that means you should understand business problem.( **Problem Formalization**)\n", + "\n", + "Problem Definition has four steps that have illustrated in the picture below:\n", + "\n", + "
\n", + "### 3-1 Problem Feature\n", + "we will use the classic Iris data set. This dataset contains information about three different types of Iris flowers:\n", + "\n", + "* Iris Versicolor\n", + "* Iris Virginica\n", + "* Iris Setosa\n", + "\n", + "The data set contains measurements of four variables :\n", + "\n", + "* sepal length \n", + "* sepal width\n", + "* petal length \n", + "* petal width\n", + " \n", + "The Iris data set has a number of interesting features:\n", + "\n", + "1. One of the classes (Iris Setosa) is linearly separable from the other two. However, the other two classes are not linearly separable.\n", + "\n", + "2. There is some overlap between the Versicolor and Virginica classes, so it is unlikely to achieve a perfect classification rate.\n", + "\n", + "3. There is some redundancy in the four input variables, so it is possible to achieve a good solution with only three of them, or even (with difficulty) from two, but the precise choice of best variables is not obvious.\n", + "\n", + "**Why am I using iris dataset:**\n", + "\n", + "1- This is a good project because it is so well understood.\n", + "\n", + "2- Attributes are numeric so you have to figure out how to load and handle data.\n", + "\n", + "3- It is a classification problem, allowing you to practice with perhaps an easier type of supervised learning algorithm.\n", + "\n", + "4- It is a multi-class classification problem (multi-nominal) that may require some specialized handling.\n", + "\n", + "5- It only has 4 attributes and 150 rows, meaning it is small and easily fits into memory (and a screen or A4 page).\n", + "\n", + "6- All of the numeric attributes are in the same units and the same scale, not requiring any special scaling or transforms to get started.[5]\n", + "\n", + "7- we can define problem as clustering(unsupervised algorithm) project too.\n", + "
\n", + "### 3-2 Aim\n", + "The aim is to classify iris flowers among three species (setosa, versicolor or virginica) from measurements of length and width of sepals and petals\n", + "
\n", + "### 3-3 Variables\n", + "The variables are :\n", + "**sepal_length**: Sepal length, in centimeters, used as input.\n", + "**sepal_width**: Sepal width, in centimeters, used as input.\n", + "**petal_length**: Petal length, in centimeters, used as input.\n", + "**petal_width**: Petal width, in centimeters, used as input.\n", + "**setosa**: Iris setosa, true or false, used as target.\n", + "**versicolour**: Iris versicolour, true or false, used as target.\n", + "**virginica**: Iris virginica, true or false, used as target.\n", + "\n", + "**<< Note >>**\n", + "> You must answer the following question:\n", + "How does your company expact to use and benfit from your model." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8bb4dfebb521f83543e1d45db3559216dad8f6fb" + }, + "source": [ + "
\n", + "## 4- Inputs & Outputs\n", + "
\n", + "### 4-1 Inputs\n", + "**Iris** is a very popular **classification** and **clustering** problem in machine learning and it is such as \"Hello world\" program when you start learning a new programming language. then I decided to apply Iris on 20 machine learning method on it.\n", + "The Iris flower data set or Fisher's Iris data set is a **multivariate data set** introduced by the British statistician and biologist Ronald Fisher in his 1936 paper The use of multiple measurements in taxonomic problems as an example of linear discriminant analysis. It is sometimes called Anderson's Iris data set because Edgar Anderson collected the data to quantify the morphologic variation of Iris flowers in three related species. Two of the three species were collected in the Gaspé Peninsula \"all from the same pasture, and picked on the same day and measured at the same time by the same person with the same apparatus\".\n", + "The data set consists of 50 samples from each of three species of Iris (Iris setosa, Iris virginica, and Iris versicolor). Four features were measured from each sample: the length and the width of the sepals and petals, in centimeters. Based on the combination of these four features, Fisher developed a linear discriminant model to distinguish the species from each other.\n", + "\n", + "As a result, **iris dataset is used as the input of all algorithms**.\n", + "![iris](https://image.ibb.co/gbH3ue/iris.png)\n", + "[image source](https://rpubs.com/wjholst/322258)\n", + "
\n", + "### 4-2 Outputs\n", + "the outputs for our algorithms totally depend on the type of classification or clustering algorithms.\n", + "the outputs can be the number of clusters or predict for new input.\n", + "\n", + "**setosa**: Iris setosa, true or false, used as target.\n", + "**versicolour**: Iris versicolour, true or false, used as target.\n", + "**virginica**: Iris virginica, true or false, used as a target." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "89ee0cda57822cd4102eadf8992c5bfe1964d557" + }, + "source": [ + "
\n", + "## 5-Installation\n", + "#### Windows:\n", + "* Anaconda (from https://www.continuum.io) is a free Python distribution for SciPy stack. It is also available for Linux and Mac.\n", + "* Canopy (https://www.enthought.com/products/canopy/) is available as free as well as commercial distribution with full SciPy stack for Windows, Linux and Mac.\n", + "* Python (x,y) is a free Python distribution with SciPy stack and Spyder IDE for Windows OS. (Downloadable from http://python-xy.github.io/)\n", + "#### Linux\n", + "Package managers of respective Linux distributions are used to install one or more packages in SciPy stack.\n", + "\n", + "For Ubuntu Users:\n", + "sudo apt-get install python-numpy python-scipy python-matplotlibipythonipythonnotebook\n", + "python-pandas python-sympy python-nose" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c1793fb141d3338bbc4300874be6ffa5cb1a9139" + }, + "source": [ + "
\n", + "## 5-1 Jupyter notebook\n", + "I strongly recommend installing **Python** and **Jupyter** using the **[Anaconda Distribution](https://www.anaconda.com/download/)**, which includes Python, the Jupyter Notebook, and other commonly used packages for scientific computing and data science.\n", + "\n", + "First, download Anaconda. We recommend downloading Anaconda’s latest Python 3 version.\n", + "\n", + "Second, install the version of Anaconda which you downloaded, following the instructions on the download page.\n", + "\n", + "Congratulations, you have installed Jupyter Notebook! To run the notebook, run the following command at the Terminal (Mac/Linux) or Command Prompt (Windows):" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "abbd1757dde9805758a2cec47a186e31dbc29822" + }, + "source": [ + "> jupyter notebook\n", + "> " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8a70c253d5afa93f07a7a7e048dbb2d7812c8d10" + }, + "source": [ + "
\n", + "## 5-2 Kaggle Kernel\n", + "Kaggle kernel is an environment just like you use jupyter notebook, it's an **extension** of the where in you are able to carry out all the functions of jupyter notebooks plus it has some added tools like forking et al." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "237bbe4e4509c9491ce165e3599c432b979d7b90" + }, + "source": [ + "
\n", + "## 5-3 Colab notebook\n", + "**Colaboratory** is a research tool for machine learning education and research. It’s a Jupyter notebook environment that requires no setup to use.\n", + "### 5-3-1 What browsers are supported?\n", + "Colaboratory works with most major browsers, and is most thoroughly tested with desktop versions of Chrome and Firefox.\n", + "### 5-3-2 Is it free to use?\n", + "Yes. Colaboratory is a research project that is free to use.\n", + "### 5-3-3 What is the difference between Jupyter and Colaboratory?\n", + "Jupyter is the open source project on which Colaboratory is based. Colaboratory allows you to use and share Jupyter notebooks with others without having to download, install, or run anything on your own computer other than a browser." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "fbedcae8843986c2139f18dad4b5f313e6535ac5" + }, + "source": [ + "
\n", + "## 5-5 Loading Packages\n", + "In this kernel we are using the following packages:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "61f49281fdd8592b44c0867225f57e6fce36342c" + }, + "source": [ + " \n", + " Now we import all of them " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", + "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5", + "collapsed": true + }, + "outputs": [], + "source": [ + "# packages to load \n", + "# Check the versions of libraries\n", + "# Python version\n", + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "import sys\n", + "print('Python: {}'.format(sys.version))\n", + "# scipy\n", + "import scipy\n", + "print('scipy: {}'.format(scipy.__version__))\n", + "import numpy\n", + "# matplotlib\n", + "import matplotlib\n", + "print('matplotlib: {}'.format(matplotlib.__version__))\n", + "# numpy\n", + "import numpy as np # linear algebra\n", + "print('numpy: {}'.format(np.__version__))\n", + "# pandas\n", + "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n", + "print('pandas: {}'.format(pd.__version__))\n", + "import seaborn as sns\n", + "print('seaborn: {}'.format(sns.__version__))\n", + "sns.set(color_codes=True)\n", + "import matplotlib.pyplot as plt\n", + "print('matplotlib: {}'.format(matplotlib.__version__))\n", + "%matplotlib inline\n", + "# scikit-learn\n", + "import sklearn\n", + "print('sklearn: {}'.format(sklearn.__version__))\n", + "# Input data files are available in the \"../input/\" directory.\n", + "# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n", + "import os\n", + "%matplotlib inline\n", + "from sklearn.metrics import accuracy_score\n", + "# Importing metrics for evaluation\n", + "from sklearn.metrics import confusion_matrix\n", + "from sklearn.metrics import classification_report\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "04ff1a533119d589baee777c21194a951168b0c7" + }, + "source": [ + "
\n", + "## 6- Exploratory Data Analysis(EDA)\n", + " In this section, you'll learn how to use graphical and numerical techniques to begin uncovering the structure of your data. \n", + " \n", + "* Which variables suggest interesting relationships?\n", + "* Which observations are unusual?\n", + "\n", + "By the end of the section, you'll be able to answer these questions and more, while generating graphics that are both insightful and beautiful. then We will review analytical and statistical operations:\n", + "\n", + "* 5-1 Data Collection\n", + "* 5-2 Visualization\n", + "* 5-3 Data Preprocessing\n", + "* 5-4 Data Cleaning\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cedecea930b278f86292367cc28d2996a235a169" + }, + "source": [ + "
\n", + "## 6-1 Data Collection\n", + "**Data collection** is the process of gathering and measuring data, information or any variables of interest in a standardized and established manner that enables the collector to answer or test hypothesis and evaluate outcomes of the particular collection.[techopedia]\n", + "\n", + "**Iris dataset** consists of 3 different types of irises’ (Setosa, Versicolour, and Virginica) petal and sepal length, stored in a 150x4 numpy.ndarray\n", + "\n", + "The rows being the samples and the columns being: Sepal Length, Sepal Width, Petal Length and Petal Width.[6]\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "9269ae851b744856bce56840637030a16a5877e1", + "collapsed": true + }, + "outputs": [], + "source": [ + "# import Dataset to play with it\n", + "dataset = pd.read_csv('../input/Iris.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "58ed9c838069f54de5cf90b20a774c3e236149b3" + }, + "source": [ + "**<< Note 1 >>**\n", + "\n", + "* Each row is an observation (also known as : sample, example, instance, record)\n", + "* Each column is a feature (also known as: Predictor, attribute, Independent Variable, input, regressor, Covariate)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7b5fd1034cd591ebd29fba1c77d342ec2b408d13" + }, + "source": [ + "After loading the data via **pandas**, we should checkout what the content is, description and via the following:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "edd043f8feb76cfe51b79785302ca4936ceb7b51", + "collapsed": true + }, + "outputs": [], + "source": [ + "type(dataset)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "055772bd170aa8018aabd85106b76675802c33b3" + }, + "source": [ + "
\n", + "## 6-2 Visualization\n", + "**Data visualization** is the presentation of data in a pictorial or graphical format. It enables decision makers to see analytics presented visually, so they can grasp difficult concepts or identify new patterns.\n", + "\n", + "With interactive visualization, you can take the concept a step further by using technology to drill down into charts and graphs for more detail, interactively changing what data you see and how it’s processed.[SAS]\n", + "\n", + " In this section I show you **11 plots** with **matplotlib** and **seaborn** that is listed in the blew picture:\n", + " \n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b0014a7a52e714996bc443981c853095926d20e5" + }, + "source": [ + "
\n", + "### 6-2-1 Scatter plot\n", + "\n", + "Scatter plot Purpose To identify the type of relationship (if any) between two quantitative variables\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "af099546eed64ebc796403d4139cb4c977c27b03", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Modify the graph above by assigning each species an individual color.\n", + "sns.FacetGrid(dataset, hue=\"Species\", size=5) \\\n", + " .map(plt.scatter, \"SepalLengthCm\", \"SepalWidthCm\") \\\n", + " .add_legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d1c7b62b5f8cba427bca13049256365141655372" + }, + "source": [ + "
\n", + "### 6-2-2 Box\n", + "In descriptive statistics, a **box plot** or boxplot is a method for graphically depicting groups of numerical data through their quartiles. Box plots may also have lines extending vertically from the boxes (whiskers) indicating variability outside the upper and lower quartiles, hence the terms box-and-whisker plot and box-and-whisker diagram.[wikipedia]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "0655e20f31a582f861d391308a088778cd7eaae9", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.plot(kind='box', subplots=True, layout=(2,3), sharex=False, sharey=False)\n", + "plt.figure()\n", + "#This gives us a much clearer idea of the distribution of the input attributes:\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "f7f6426fd44bcd77d35a5fdbc8c4fc4f18d991ad", + "collapsed": true + }, + "outputs": [], + "source": [ + "# To plot the species data using a box plot:\n", + "\n", + "sns.boxplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset )\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "7b193e4aa7e6fb337d3f65c334849094addd097a", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Use Seaborn's striplot to add data points on top of the box plot \n", + "# Insert jitter=True so that the data points remain scattered and not piled into a verticle line.\n", + "# Assign ax to each axis, so that each plot is ontop of the previous axis. \n", + "\n", + "ax= sns.boxplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset)\n", + "ax= sns.stripplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset, jitter=True, edgecolor=\"gray\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "56adbafa89c117118621c72b3b7cb19edc21298e", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Tweek the plot above to change fill and border color color using ax.artists.\n", + "# Assing ax.artists a variable name, and insert the box number into the corresponding brackets\n", + "\n", + "ax= sns.boxplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset)\n", + "ax= sns.stripplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset, jitter=True, edgecolor=\"gray\")\n", + "\n", + "boxtwo = ax.artists[2]\n", + "boxtwo.set_facecolor('red')\n", + "boxtwo.set_edgecolor('black')\n", + "boxthree=ax.artists[1]\n", + "boxthree.set_facecolor('yellow')\n", + "boxthree.set_edgecolor('black')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "743a92c3c2fff1a1f99845518247f7971ad18b7c" + }, + "source": [ + "
\n", + "### 6-2-3 Histogram\n", + "We can also create a **histogram** of each input variable to get an idea of the distribution.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "5da0520ed3e738ee8814b2d91843ed4acec2b6e6", + "collapsed": true + }, + "outputs": [], + "source": [ + "# histograms\n", + "dataset.hist(figsize=(15,20))\n", + "plt.figure()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b4e3de19781686010c6038f0e3076eb678398169" + }, + "source": [ + "It looks like perhaps two of the input variables have a Gaussian distribution. This is useful to note as we can use algorithms that can exploit this assumption.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3bbff56707484f88625eb8ef309b712ba03f939e" + }, + "source": [ + "
\n", + "### 6-2-4 Multivariate Plots\n", + "Now we can look at the interactions between the variables.\n", + "\n", + "First, let’s look at scatterplots of all pairs of attributes. This can be helpful to spot structured relationships between input variables." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "eb4e5d117e4ef40d7668632f42130206a5537bd0", + "collapsed": true + }, + "outputs": [], + "source": [ + "\n", + "# scatter plot matrix\n", + "pd.plotting.scatter_matrix(dataset,figsize=(10,10))\n", + "plt.figure()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "de7fea7986071fafbe0b93933e3beda445cbe373" + }, + "source": [ + "Note the diagonal grouping of some pairs of attributes. This suggests a high correlation and a predictable relationship." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e0f696ec021ec99c1058a62e22c8b73082fe6fa7" + }, + "source": [ + "
\n", + "### 6-2-5 violinplots" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "e352d2f8340609adf4bf6718b1d2ecee0fa730b5", + "collapsed": true + }, + "outputs": [], + "source": [ + "# violinplots on petal-length for each species\n", + "sns.violinplot(data=dataset,x=\"Species\", y=\"PetalLengthCm\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0ed35bceb87051e56316d35a630334518e8b8c64" + }, + "source": [ + "
\n", + "### 6-2-6 pairplot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "b80350add6f9a742f10bffc4b497562f8bebea95", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Using seaborn pairplot to see the bivariate relation between each pair of features\n", + "sns.pairplot(dataset, hue=\"Species\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "fb187bcc0fb51e53f8abe9e3952c6ae5c3177411" + }, + "source": [ + "From the plot, we can see that the species setosa is separataed from the other two across all feature combinations\n", + "\n", + "We can also replace the histograms shown in the diagonal of the pairplot by kde." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "5570ff32db5a4740b26b244531af552ac1b57f4a", + "collapsed": true + }, + "outputs": [], + "source": [ + "# updating the diagonal elements in a pairplot to show a kde\n", + "sns.pairplot(dataset, hue=\"Species\",diag_kind=\"kde\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2544d3c2dd34a360d295019d8cb597c7ef8f66bc" + }, + "source": [ + "
\n", + "### 6-2-7 kdeplot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "1d07222b89303b386e9e824d52cc73c045667f25", + "collapsed": true + }, + "outputs": [], + "source": [ + "# seaborn's kdeplot, plots univariate or bivariate density estimates.\n", + "#Size can be changed by tweeking the value used\n", + "sns.FacetGrid(dataset, hue=\"Species\", size=5).map(sns.kdeplot, \"PetalLengthCm\").add_legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "560d8e8f17bacefaf8c3855a9648f26b82fdee9b" + }, + "source": [ + "
\n", + "### 6-2-8 jointplot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "4adb4da16ea61e0f1a12bc9925dfbbaaa81e0360", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Use seaborn's jointplot to make a hexagonal bin plot\n", + "#Set desired size and ratio and choose a color.\n", + "sns.jointplot(x=\"SepalLengthCm\", y=\"SepalWidthCm\", data=dataset, size=10,ratio=10, kind='hex',color='green')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3768e31e990bfe4c2ff7b45087fbba85e0560d00" + }, + "source": [ + "
\n", + "### 6-2-9 andrews_curves" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "937b6856d109001db14a3ac99568df45efbe1070", + "collapsed": true + }, + "outputs": [], + "source": [ + "#In Pandas use Andrews Curves to plot and visualize data structure.\n", + "#Each multivariate observation is transformed into a curve and represents the coefficients of a Fourier series.\n", + "#This useful for detecting outliers in times series data.\n", + "#Use colormap to change the color of the curves\n", + "\n", + "from pandas.tools.plotting import andrews_curves\n", + "andrews_curves(dataset.drop(\"Id\", axis=1), \"Species\",colormap='rainbow')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "263eaa9d2bfad0f8c68b6e8e874bdc11a6e802ac", + "collapsed": true + }, + "outputs": [], + "source": [ + "# we will use seaborn jointplot shows bivariate scatterplots and univariate histograms with Kernel density \n", + "# estimation in the same figure\n", + "sns.jointplot(x=\"SepalLengthCm\", y=\"SepalWidthCm\", data=dataset, size=6, kind='kde', color='#800000', space=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8e73333289d17dd648b7b2112d7fe3fe7ea444d0" + }, + "source": [ + "
\n", + "### 6-2-10 Heatmap" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "3100955ca9dc61ac7d435e9c064d10d06f26afa7", + "collapsed": true + }, + "outputs": [], + "source": [ + "plt.figure(figsize=(7,4)) \n", + "sns.heatmap(dataset.corr(),annot=True,cmap='cubehelix_r') #draws heatmap with input as the correlation matrix calculted by(iris.corr())\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b81dbdd5dd8cb92a86b1f7114ffb6f088458a527" + }, + "source": [ + "
\n", + "### 6-2-11 radviz" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "33fed3027d7242227d612a84bbb42b012356091b", + "collapsed": true + }, + "outputs": [], + "source": [ + "# A final multivariate visualization technique pandas has is radviz\n", + "# Which puts each feature as a point on a 2D plane, and then simulates\n", + "# having each sample attached to those points through a spring weighted\n", + "# by the relative value for that feature\n", + "from pandas.tools.plotting import radviz\n", + "radviz(dataset.drop(\"Id\", axis=1), \"Species\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0859caf857ceeb19f4cc47ccd11fbbfdfe4b0dd9" + }, + "source": [ + "**<< Note >>**\n", + "\n", + "**Yellowbrick** is a suite of visual diagnostic tools called “Visualizers” that extend the Scikit-Learn API to allow human steering of the model selection process. In a nutshell, Yellowbrick combines scikit-learn with matplotlib in the best tradition of the scikit-learn documentation, but to produce visualizations for your models! " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5af51158a5bc342947c553392e3d1665ac24ba62" + }, + "source": [ + "### 6-2-12 Conclusion\n", + "we have used Python to apply data visualization tools to the Iris dataset. Color and size changes were made to the data points in scatterplots. I changed the border and fill color of the boxplot and violin, respectively." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "91dda1f631cf4ed362162501aaaac6d19cfd6cc7" + }, + "source": [ + "
\n", + "## 6-3 Data Preprocessing\n", + "**Data preprocessing** refers to the transformations applied to our data before feeding it to the algorithm.\n", + " \n", + "Data Preprocessing is a technique that is used to convert the raw data into a clean data set. In other words, whenever the data is gathered from different sources it is collected in raw format which is not feasible for the analysis.\n", + "there are plenty of steps for data preprocessing and we just listed some of them :\n", + "* removing Target column (id)\n", + "* Sampling (without replacement)\n", + "* Making part of iris unbalanced and balancing (with undersampling and SMOTE)\n", + "* Introducing missing values and treating them (replacing by average values)\n", + "* Noise filtering\n", + "* Data discretization\n", + "* Normalization and standardization\n", + "* PCA analysis\n", + "* Feature selection (filter, embedded, wrapper)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "581b90e6a869c3793472c7edd59091d6d6342fb2" + }, + "source": [ + "## 6-3-1 Features\n", + "Features:\n", + "* numeric\n", + "* categorical\n", + "* ordinal\n", + "* datetime\n", + "* coordinates\n", + "\n", + "find the type of features in titanic dataset\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 6-3-2 Explorer Dataset\n", + "1- Dimensions of the dataset.\n", + "\n", + "2- Peek at the data itself.\n", + "\n", + "3- Statistical summary of all attributes.\n", + "\n", + "4- Breakdown of the data by the class variable.[7]\n", + "\n", + "Don’t worry, each look at the data is **one command**. These are useful commands that you can use again and again on future projects." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "4b45251be7be77333051fe738639104ae1005fa5", + "collapsed": true + }, + "outputs": [], + "source": [ + "# shape\n", + "print(dataset.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "c64e9d3e0bf394fb833de94a0fc5c34f69fce24c", + "collapsed": true + }, + "outputs": [], + "source": [ + "#columns*rows\n", + "dataset.size" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "277e1998627d6a3ddeff4e913a6b8c3dc81dec96" + }, + "source": [ + "\n", + "We can get a quick idea of how many instances (rows) and how many attributes (columns) the data contains with the shape property.\n", + "\n", + "You should see 150 instances and 5 attributes:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "95ee5e18f97bc410df1e54ac74e32cdff2b30755" + }, + "source": [ + "for getting some information about the dataset you can use **info()** command" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "ca840f02925751186f87e402fcb5f637ab1ab8a0", + "collapsed": true + }, + "outputs": [], + "source": [ + "print(dataset.info())" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3458838205be4c7fbff88e95ef69934e13e2199b" + }, + "source": [ + "you see number of unique item for Species with command below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "4b90d165a007106ae99809ad28edd75bd8153dd8", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset['Species'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8accfbddf2228274ad412c3ad3be72b4107d6f6c", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset[\"Species\"].value_counts()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ae08b544a8d4202c7d0a47ec83d685e81c91a66d" + }, + "source": [ + "to check the first 5 rows of the data set, we can use head(5)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "5899889553c3416b27e93efceddb106eb71f5156", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.head(5) " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1150b6ac3d82562aefd5c64f9f01accee5eace4d" + }, + "source": [ + "to check out last 5 row of the data set, we use tail() function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "79339442ff1f53ae1054d794337b9541295d3305", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.tail() " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2c288c3dc8656a872a8529368812546e434d3a22" + }, + "source": [ + "to pop up 5 random rows from the data set, we can use **sample(5)** function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "09eb18d1fcf4a2b73ba2f5ddce99dfa521681140", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.sample(5) " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c8a1cc36348c68fb98d6cb28aa9919fc5f2892f3" + }, + "source": [ + "to give a statistical summary about the dataset, we can use **describe()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "3f7211e96627b9a81c5b620a9ba61446f7719ea3", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.describe() " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "031d16ca235837e889734635ecff193be64b27a4" + }, + "source": [ + "to check out how many null info are on the dataset, we can use **isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8807b632269e2fa734ad26e8513199400fc09a83", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "446e6162e16325213047ff31454813455668b574", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.groupby('Species').count()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c2f1eaf0b6dfdc7cc4dace04614e99ed56425d00" + }, + "source": [ + "to print dataset **columns**, we can use columns atribute" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "909d61b33ec06249d0842e6115597bbacf21163f", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.columns" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "22bc5d81c18275ee1fb082c0adbb7a65bdbec4cc" + }, + "source": [ + "**<< Note 2 >>**\n", + "in pandas's data frame you can perform some query such as \"where\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "c8c8d9fd63d9bdb601183aeb4f1435affeb8a596", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset.where(dataset ['Species']=='Iris-setosa')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "33fc33a18489b438a884819d99dc00a02b113be8" + }, + "source": [ + "as you can see in the below in python, it is so easy perform some query on the dataframe:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8b545ff7e8367c5ab9c1db710f70b6936ac8422c", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset[dataset['SepalLengthCm']>7.2]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "1c92b300076a232321c915857d8a7c5685a97865", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Seperating the data into dependent and independent variables\n", + "X = dataset.iloc[:, :-1].values\n", + "y = dataset.iloc[:, -1].values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**<< Note >>**\n", + ">**Preprocessing and generation pipelines depend on a model type**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8280749a19af32869978c61941d1dea306632d71" + }, + "source": [ + "
\n", + "## 6-4 Data Cleaning\n", + "When dealing with real-world data, dirty data is the norm rather than the exception. We continuously need to predict correct values, impute missing ones, and find links between various data artefacts such as schemas and records. We need to stop treating data cleaning as a piecemeal exercise (resolving different types of errors in isolation), and instead leverage all signals and resources (such as constraints, available statistics, and dictionaries) to accurately predict corrective actions.\n", + "\n", + "The primary goal of data cleaning is to detect and remove errors and **anomalies** to increase the value of data in analytics and decision making. While it has been the focus of many researchers for several years, individual problems have been addressed separately. These include missing value imputation, outliers detection, transformations, integrity constraints violations detection and repair, consistent query answering, deduplication, and many other related problems such as profiling and constraints mining.[8]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "72cc7c7b60a33390a85b16bc34e3b9e424650cdd" + }, + "source": [ + "
\n", + "## 7- Model Deployment\n", + "In this section have been applied more than **20 learning algorithms** that play an important rule in your experiences and improve your knowledge in case of ML technique.\n", + "\n", + "> **<< Note 3 >>** : The results shown here may be slightly different for your analysis because, for example, the neural network algorithms use random number generators for fixing the initial value of the weights (starting points) of the neural networks, which often result in obtaining slightly different (local minima) solutions each time you run the analysis. Also note that changing the seed for the random number generator used to create the train, test, and validation samples can change your results." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Families of ML algorithms\n", + "There are several categories for machine learning algorithms, below are some of these categories:\n", + "* Linear\n", + " * Linear Regression\n", + " * Logistic Regression\n", + " * Support Vector Machines\n", + "* Tree-Based\n", + " * Decision Tree\n", + " * Random Forest\n", + " * GBDT\n", + "* KNN\n", + "* Neural Networks\n", + "\n", + "-----------------------------\n", + "And if we want to categorize ML algorithms with the type of learning, there are below type:\n", + "* Classification\n", + "\n", + " * k-Nearest \tNeighbors\n", + " * LinearRegression\n", + " * SVM\n", + " * DT \n", + " * NN\n", + " \n", + "* clustering\n", + "\n", + " * K-means\n", + " * HCA\n", + " * Expectation Maximization\n", + " \n", + "* Visualization \tand\tdimensionality \treduction:\n", + "\n", + " * Principal \tComponent \tAnalysis(PCA)\n", + " * Kernel PCA\n", + " * Locally -Linear\tEmbedding \t(LLE)\n", + " * t-distributed\tStochastic\tNeighbor\tEmbedding \t(t-SNE)\n", + " \n", + "* Association \trule\tlearning\n", + "\n", + " * Apriori\n", + " * Eclat\n", + "* Semisupervised learning\n", + "* Reinforcement Learning\n", + " * Q-learning\n", + "* Batch learning & Online learning\n", + "* Ensemble Learning\n", + "\n", + "**<< Note >>**\n", + "> Here is no method which outperforms all others for all tasks\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "daf9910caba26e071ff560dbdaca079ee148e140" + }, + "source": [ + "
\n", + "## Prepare Features & Targets\n", + "First of all seperating the data into dependent(Feature) and independent(Target) variables.\n", + "\n", + "**<< Note 4 >>**\n", + "* X==>>Feature\n", + "* y==>>Target" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "b06cb1191a0f52a904c52a918d1f999536e79bda", + "collapsed": true + }, + "outputs": [], + "source": [ + "\n", + "X = dataset.iloc[:, :-1].values\n", + "y = dataset.iloc[:, -1].values\n", + "\n", + "# Splitting the dataset into the Training set and Test set\n", + "from sklearn.cross_validation import train_test_split\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d13f167dd92888d856c4ad2ff2895bf4855e361c" + }, + "source": [ + "## Accuracy and precision\n", + "* **precision** : \n", + "\n", + "In pattern recognition, information retrieval and binary classification, precision (also called positive predictive value) is the fraction of relevant instances among the retrieved instances, \n", + "* **recall** : \n", + "\n", + "recall is the fraction of relevant instances that have been retrieved over the total amount of relevant instances. \n", + "* **F-score** :\n", + "\n", + "the F1 score is a measure of a test's accuracy. It considers both the precision p and the recall r of the test to compute the score: p is the number of correct positive results divided by the number of all positive results returned by the classifier, and r is the number of correct positive results divided by the number of all relevant samples (all samples that should have been identified as positive). The F1 score is the harmonic average of the precision and recall, where an F1 score reaches its best value at 1 (perfect precision and recall) and worst at 0.\n", + "**What is the difference between accuracy and precision?\n", + "\"Accuracy\" and \"precision\" are general terms throughout science. A good way to internalize the difference are the common \"bullseye diagrams\". In machine learning/statistics as a whole, accuracy vs. precision is analogous to bias vs. variance." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b8b544762cc789bfeb8ebccd6765f77b9c7e1a0f" + }, + "source": [ + "
\n", + "## 7-1 K-Nearest Neighbours\n", + "In **Machine Learning**, the **k-nearest neighbors algorithm** (k-NN) is a non-parametric method used for classification and regression. In both cases, the input consists of the k closest training examples in the feature space. The output depends on whether k-NN is used for classification or regression:\n", + "\n", + "In k-NN classification, the output is a class membership. An object is classified by a majority vote of its neighbors, with the object being assigned to the class most common among its k nearest neighbors (k is a positive integer, typically small). If k = 1, then the object is simply assigned to the class of that single nearest neighbor.\n", + "In k-NN regression, the output is the property value for the object. This value is the average of the values of its k nearest neighbors.\n", + "k-NN is a type of instance-based learning, or lazy learning, where the function is only approximated locally and all computation is deferred until classification. The k-NN algorithm is among the simplest of all machine learning algorithms." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "eaa2caacfbc319932f79c75c549364089d1e649f", + "collapsed": true + }, + "outputs": [], + "source": [ + "# K-Nearest Neighbours\n", + "from sklearn.neighbors import KNeighborsClassifier\n", + "\n", + "Model = KNeighborsClassifier(n_neighbors=8)\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e01bbec9f80532e30c6cf26d5c3fffffb5ea01d4" + }, + "source": [ + "
\n", + "## 7-2 Radius Neighbors Classifier\n", + "Classifier implementing a **vote** among neighbors within a given **radius**\n", + "\n", + "In scikit-learn **RadiusNeighborsClassifier** is very similar to **KNeighborsClassifier** with the exception of two parameters. First, in RadiusNeighborsClassifier we need to specify the radius of the fixed area used to determine if an observation is a neighbor using radius. Unless there is some substantive reason for setting radius to some value, it is best to treat it like any other hyperparameter and tune it during model selection. The second useful parameter is outlier_label, which indicates what label to give an observation that has no observations within the radius - which itself can often be a useful tool for identifying outliers." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "7728fdafa163e068668cea92cf8d79306b41d458", + "collapsed": true + }, + "outputs": [], + "source": [ + "from sklearn.neighbors import RadiusNeighborsClassifier\n", + "Model=RadiusNeighborsClassifier(radius=8.0)\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "#summary of the predictions made by the classifier\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_test,y_pred))\n", + "#Accouracy score\n", + "print('accuracy is ', accuracy_score(y_test,y_pred))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e55a785373bf654e0d4b2a78693fab1c8a625acb" + }, + "source": [ + "
\n", + "## 7-3 Logistic Regression\n", + "Logistic regression is the appropriate regression analysis to conduct when the dependent variable is **dichotomous** (binary). Like all regression analyses, the logistic regression is a **predictive analysis**.\n", + "\n", + "In statistics, the logistic model (or logit model) is a widely used statistical model that, in its basic form, uses a logistic function to model a binary dependent variable; many more complex extensions exist. In regression analysis, logistic regression (or logit regression) is estimating the parameters of a logistic model; it is a form of binomial regression. Mathematically, a binary logistic model has a dependent variable with two possible values, such as pass/fail, win/lose, alive/dead or healthy/sick; these are represented by an indicator variable, where the two values are labeled \"0\" and \"1\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "55eb348cf69272192274cd0728a123796b459b55", + "collapsed": true + }, + "outputs": [], + "source": [ + "# LogisticRegression\n", + "from sklearn.linear_model import LogisticRegression\n", + "Model = LogisticRegression()\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c0a1c2ccaa4f6e9c5e2e42c47a295ceef7abd3b9" + }, + "source": [ + "
\n", + "## 7-4 Passive Aggressive Classifier" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "d509b2111a143660dd5cb1f02ea2779e38295b77", + "collapsed": true + }, + "outputs": [], + "source": [ + "from sklearn.linear_model import PassiveAggressiveClassifier\n", + "Model = PassiveAggressiveClassifier()\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "52938b49082dac7b35dc627828838bf12924cc7f" + }, + "source": [ + "
\n", + "## 7-5 Naive Bayes\n", + "In machine learning, naive Bayes classifiers are a family of simple \"**probabilistic classifiers**\" based on applying Bayes' theorem with strong (naive) independence assumptions between the features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "522d4a3fa874950d0850a5a9a4178ec763781ec3", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Naive Bayes\n", + "from sklearn.naive_bayes import GaussianNB\n", + "Model = GaussianNB()\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "272c1db2587015ac12e9919d51eaa4f4b73cb408" + }, + "source": [ + "
\n", + "## 7-6 MultinomialNB\n", + "The multinomial Naive Bayes classifier is suitable for classification with **discrete features** (e.g., word counts for text classification). The multinomial distribution normally requires integer feature counts. However, in practice, fractional counts such as tf-idf may also work.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "c370fd6ae6eee484a22cbf6c5323710222b05ffb", + "collapsed": true + }, + "outputs": [], + "source": [ + "# MultinomialNB\n", + "from sklearn.naive_bayes import MultinomialNB\n", + "Model = MultinomialNB()\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e530d18ab308e36d575806583e534cc07fe61c61" + }, + "source": [ + "
\n", + "## 7-7 BernoulliNB\n", + "Like MultinomialNB, this classifier is suitable for **discrete data**. The difference is that while MultinomialNB works with occurrence counts, BernoulliNB is designed for binary/boolean features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "e7051b5e9aa144b74e9913cb2a6668832e7f3e02", + "collapsed": true + }, + "outputs": [], + "source": [ + "# BernoulliNB\n", + "from sklearn.naive_bayes import BernoulliNB\n", + "Model = BernoulliNB()\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "386d2d0e4fc7f5dc2b9298226d8e2ecfb7150346" + }, + "source": [ + "
\n", + "## 7-8 SVM\n", + "\n", + "The advantages of support vector machines are:\n", + "* Effective in high dimensional spaces.\n", + "* Still effective in cases where number of dimensions is greater than the number of samples. \n", + "* Uses a subset of training points in the decision function (called support vectors), so it is also memory efficient.\n", + "* Versatile: different Kernel functions can be specified for the decision function. Common kernels are provided, but it is also possible to specify custom kernels.\n", + "\n", + "The disadvantages of support vector machines include:\n", + "\n", + "* If the number of features is much greater than the number of samples, avoid over-fitting in choosing Kernel functions and regularization term is crucial.\n", + "* SVMs do not directly provide probability estimates, these are calculated using an expensive five-fold cross-validation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "a44a5a43945404c95863668c2ba099f6032357f8", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Support Vector Machine\n", + "from sklearn.svm import SVC\n", + "\n", + "Model = SVC()\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b1d092cc03dcaa712f4fe4ec6867b292321377d5" + }, + "source": [ + "
\n", + "## 7-9 Nu-Support Vector Classification\n", + "\n", + "> Similar to SVC but uses a parameter to control the number of support vectors." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "2fa7c9a5bef780adb400bd9ad83d030f83a8d2b3", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Support Vector Machine's \n", + "from sklearn.svm import NuSVC\n", + "\n", + "Model = NuSVC()\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5d07a75e83251ddbf8cfdfd11c9faa2671ad87ff" + }, + "source": [ + "
\n", + "## 7-10 Linear Support Vector Classification\n", + "\n", + "Similar to **SVC** with parameter kernel=’linear’, but implemented in terms of liblinear rather than libsvm, so it has more flexibility in the choice of penalties and loss functions and should scale better to large numbers of samples." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "7e7275f160f2e4e270200eaa01c13be5cb465142", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Linear Support Vector Classification\n", + "from sklearn.svm import LinearSVC\n", + "\n", + "Model = LinearSVC()\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cec81c9e0c3bc6afba07811a321b5383a0f823f3" + }, + "source": [ + "
\n", + "## 7-11 Decision Tree\n", + "Decision Trees (DTs) are a non-parametric supervised learning method used for **classification** and **regression**. The goal is to create a model that predicts the value of a target variable by learning simple **decision rules** inferred from the data features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "10e25ad67f7c25a8654637d4ba496b64121d67d0", + "collapsed": true + }, + "outputs": [], + "source": [ + "# Decision Tree's\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "\n", + "Model = DecisionTreeClassifier()\n", + "\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a7d897130fd705943764e924bbe468c99b7c036a" + }, + "source": [ + "
\n", + "## 7-12 ExtraTreeClassifier\n", + "An extremely randomized tree classifier.\n", + "\n", + "Extra-trees differ from classic decision trees in the way they are built. When looking for the best split to separate the samples of a node into two groups, random splits are drawn for each of the **max_features** randomly selected features and the best split among those is chosen. When max_features is set 1, this amounts to building a totally random decision tree.\n", + "\n", + "**Warning**: Extra-trees should only be used within ensemble methods." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "5a775006a814b6aacdcc07dc46995eb291b873f1", + "collapsed": true + }, + "outputs": [], + "source": [ + "# ExtraTreeClassifier\n", + "from sklearn.tree import ExtraTreeClassifier\n", + "\n", + "Model = ExtraTreeClassifier()\n", + "\n", + "Model.fit(X_train, y_train)\n", + "\n", + "y_pred = Model.predict(X_test)\n", + "\n", + "# Summary of the predictions made by the classifier\n", + "print(classification_report(y_test, y_pred))\n", + "print(confusion_matrix(y_test, y_pred))\n", + "# Accuracy score\n", + "print('accuracy is',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "48f940f73580a2997d75f22eba09d938c86a1a97" + }, + "source": [ + "
\n", + "## 7-13 Neural network\n", + "\n", + "I have used multi-layer Perceptron classifier.\n", + "This model optimizes the log-loss function using **LBFGS** or **stochastic gradient descent**." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1c10482510f654878f93b573dc1abe4112b861eb" + }, + "source": [ + "## 7-13-1 What is a Perceptron?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a94d82b497cbe543da0a637ecfed6e9e8b7569e7" + }, + "source": [ + "There are many online examples and tutorials on perceptrons and learning. Here is a list of some articles:\n", + "- [Wikipedia on Perceptrons](https://en.wikipedia.org/wiki/Perceptron)\n", + "- Jurafsky and Martin (ed. 3), Chapter 8" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e8e4da1a0b3d51a5fff38750fb4631ac3aa7eebb" + }, + "source": [ + "This is an example that I have taken from a draft of the 3rd edition of Jurafsky and Martin, with slight modifications:\n", + "We import *numpy* and use its *exp* function. We could use the same function from the *math* module, or some other module like *scipy*. The *sigmoid* function is defined as in the textbook:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "196e5a54ed0de712e2254e77439051267cad4b3d", + "collapsed": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "def sigmoid(z):\n", + " return 1 / (1 + np.exp(-z))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9aa207d0bb6a7342932406d8fa68cbd49be866b5" + }, + "source": [ + "Our example data, **weights** $w$, **bias** $b$, and **input** $x$ are defined as:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "69cae82df8a906ad43594464c6497e05e282dcd1", + "collapsed": true + }, + "outputs": [], + "source": [ + "w = np.array([0.2, 0.3, 0.8])\n", + "b = 0.5\n", + "x = np.array([0.5, 0.6, 0.1])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8cd5da02c0fc0beedd9a3417e399982293d28fd2" + }, + "source": [ + "Our neural unit would compute $z$ as the **dot-product** $w \\cdot x$ and add the **bias** $b$ to it. The sigmoid function defined above will convert this $z$ value to the **activation value** $a$ of the unit:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "65d083572bf2cc897d816765db05758b107741ff", + "collapsed": true + }, + "outputs": [], + "source": [ + "z = w.dot(x) + b\n", + "print(\"z:\", z)\n", + "print(\"a:\", sigmoid(z))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9e9101a20c9a167a1d925f3b64aafb94317155e2" + }, + "source": [ + "### The XOR Problem\n", + "The power of neural units comes from combining them into larger networks. Minsky and Papert (1969): A single neural unit cannot compute the simple logical function XOR.\n", + "\n", + "The task is to implement a simple **perceptron** to compute logical operations like AND, OR, and XOR.\n", + "\n", + "- Input: $x_1$ and $x_2$\n", + "- Bias: $b = -1$ for AND; $b = 0$ for OR\n", + "- Weights: $w = [1, 1]$\n", + "\n", + "with the following activation function:\n", + "\n", + "$$\n", + "y = \\begin{cases}\n", + " \\ 0 & \\quad \\text{if } w \\cdot x + b \\leq 0\\\\\n", + " \\ 1 & \\quad \\text{if } w \\cdot x + b > 0\n", + " \\end{cases}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c03b3a6a5307cc53e637afd6da5c307c985be7ac" + }, + "source": [ + "We can define this activation function in Python as:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "7b0832df65fc1aa694a1cf67b8713c894b1ed2a2", + "collapsed": true + }, + "outputs": [], + "source": [ + "def activation(z):\n", + " if z > 0:\n", + " return 1\n", + " return 0" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "27ae56a47bd180ebbfd82b3f0242c8078db6ac97" + }, + "source": [ + "For AND we could implement a perceptron as:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "3267d3f1a2864f29ff2382a2057b0b88fa74b649", + "collapsed": true + }, + "outputs": [], + "source": [ + "w = np.array([1, 1])\n", + "b = -1\n", + "x = np.array([0, 0])\n", + "print(\"0 AND 0:\", activation(w.dot(x) + b))\n", + "x = np.array([1, 0])\n", + "print(\"1 AND 0:\", activation(w.dot(x) + b))\n", + "x = np.array([0, 1])\n", + "print(\"0 AND 1:\", activation(w.dot(x) + b))\n", + "x = np.array([1, 1])\n", + "print(\"1 AND 1:\", activation(w.dot(x) + b))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "dbee1f41f0bd66613f5b49e0f65be4bfd9f91283" + }, + "source": [ + "For OR we could implement a perceptron as:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "bf47440fb2f5a0fb016286f0a3a41a05a8416495", + "collapsed": true + }, + "outputs": [], + "source": [ + "w = np.array([1, 1])\n", + "b = 0\n", + "x = np.array([0, 0])\n", + "print(\"0 OR 0:\", activation(w.dot(x) + b))\n", + "x = np.array([1, 0])\n", + "print(\"1 OR 0:\", activation(w.dot(x) + b))\n", + "x = np.array([0, 1])\n", + "print(\"0 OR 1:\", activation(w.dot(x) + b))\n", + "x = np.array([1, 1])\n", + "print(\"1 OR 1:\", activation(w.dot(x) + b))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "181068ef1b8e1ba568093184c41a118b4c0bfe7f" + }, + "source": [ + "There is no way to implement a perceptron for XOR this way." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d12494da861ea094378c7cf6a3409803fb5585ac" + }, + "source": [ + "no see our prediction for iris" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "5f040cfaeb71f8caa94e4d7f18cccde8d2a0b8a7", + "collapsed": true + }, + "outputs": [], + "source": [ + "from sklearn.neural_network import MLPClassifier\n", + "Model=MLPClassifier()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "# Summary of the predictions\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_test,y_pred))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ffc339dbf9c8da74194b994930694bd97bb2afbb" + }, + "source": [ + "
\n", + "## 7-14 RandomForest\n", + "A random forest is a meta estimator that **fits a number of decision tree classifiers** on various sub-samples of the dataset and uses averaging to improve the predictive accuracy and control over-fitting. \n", + "\n", + "The sub-sample size is always the same as the original input sample size but the samples are drawn with replacement if bootstrap=True (default)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8ed2305b51c2248a8aa62cf4452632f448e83771", + "collapsed": true + }, + "outputs": [], + "source": [ + "from sklearn.ensemble import RandomForestClassifier\n", + "Model=RandomForestClassifier(max_depth=2)\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1311eb15f2afceed2219faeb859d0d07b7072176" + }, + "source": [ + "
\n", + "## 7-15 Bagging classifier \n", + "A Bagging classifier is an ensemble **meta-estimator** that fits base classifiers each on random subsets of the original dataset and then aggregate their individual predictions (either by voting or by averaging) to form a final prediction. Such a meta-estimator can typically be used as a way to reduce the variance of a black-box estimator (e.g., a decision tree), by introducing randomization into its construction procedure and then making an ensemble out of it.\n", + "\n", + "This algorithm encompasses several works from the literature. When random subsets of the dataset are drawn as random subsets of the samples, then this algorithm is known as Pasting . If samples are drawn with replacement, then the method is known as Bagging . When random subsets of the dataset are drawn as random subsets of the features, then the method is known as Random Subspaces . Finally, when base estimators are built on subsets of both samples and features, then the method is known as Random Patches .[http://scikit-learn.org]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "c11c731d3db6c1c81301da85dc158cb7d324c4cb", + "collapsed": true + }, + "outputs": [], + "source": [ + "from sklearn.ensemble import BaggingClassifier\n", + "Model=BaggingClassifier()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c0944bd32424f38906148d96f4b1e6fccfbf97a6" + }, + "source": [ + "
\n", + "## 7-16 AdaBoost classifier\n", + "\n", + "An AdaBoost classifier is a meta-estimator that begins by fitting a classifier on the original dataset and then fits additional copies of the classifier on the same dataset but where the weights of incorrectly classified instances are adjusted such that subsequent classifiers focus more on difficult cases.\n", + "This class implements the algorithm known as **AdaBoost-SAMME** ." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "938946ee8e017b982c4c06e193d4d13cb7d3fb5f", + "collapsed": true + }, + "outputs": [], + "source": [ + "from sklearn.ensemble import AdaBoostClassifier\n", + "Model=AdaBoostClassifier()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9d62842d12731d3eb1d6577c5b35c12c4886c708" + }, + "source": [ + "
\n", + "## 7-17 Gradient Boosting Classifier\n", + "GB builds an additive model in a forward stage-wise fashion; it allows for the optimization of arbitrary differentiable loss functions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "863124561c0d1b5995d0b8d3702daa7bc364d6b0", + "collapsed": true + }, + "outputs": [], + "source": [ + "from sklearn.ensemble import GradientBoostingClassifier\n", + "Model=GradientBoostingClassifier()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e89b4494bd78c2d66beeba34a4e320fd8c9dae0c" + }, + "source": [ + "
\n", + "## 7-18 Linear Discriminant Analysis\n", + "Linear Discriminant Analysis (discriminant_analysis.LinearDiscriminantAnalysis) and Quadratic Discriminant Analysis (discriminant_analysis.QuadraticDiscriminantAnalysis) are two classic classifiers, with, as their names suggest, a **linear and a quadratic decision surface**, respectively.\n", + "\n", + "These classifiers are attractive because they have closed-form solutions that can be easily computed, are inherently multiclass, have proven to work well in practice, and have no **hyperparameters** to tune." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "0796cd9f1c902345df605b7557a9c3ff686e35a9", + "collapsed": true + }, + "outputs": [], + "source": [ + "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\n", + "Model=LinearDiscriminantAnalysis()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "296137970fc94fa4a4eb4185cb5fa952b1985c57" + }, + "source": [ + "
\n", + "## 7-19 Quadratic Discriminant Analysis\n", + "A classifier with a quadratic decision boundary, generated by fitting class conditional densities to the data and using Bayes’ rule.\n", + "\n", + "The model fits a **Gaussian** density to each class." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "5f521d19f295b8e8f24f5715e93b1c45e9a6bce3", + "collapsed": true + }, + "outputs": [], + "source": [ + "from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis\n", + "Model=QuadraticDiscriminantAnalysis()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0518634bf8850ac1bfcfc301e93a8740e1995c3a" + }, + "source": [ + "
\n", + "## 7-20 Kmeans \n", + "K-means clustering is a type of unsupervised learning, which is used when you have unlabeled data (i.e., data without defined categories or groups). \n", + "\n", + "The goal of this algorithm is **to find groups in the data**, with the number of groups represented by the variable K. The algorithm works iteratively to assign each data point to one of K groups based on the features that are provided.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "427f08af02fc7288a5e35de5ff4b6c33b8fce491", + "collapsed": true + }, + "outputs": [], + "source": [ + "from sklearn.cluster import KMeans\n", + "iris_SP = dataset[['SepalLengthCm','SepalWidthCm','PetalLengthCm','PetalWidthCm']]\n", + "# k-means cluster analysis for 1-15 clusters \n", + "from scipy.spatial.distance import cdist\n", + "clusters=range(1,15)\n", + "meandist=[]\n", + "\n", + "# loop through each cluster and fit the model to the train set\n", + "# generate the predicted cluster assingment and append the mean \n", + "# distance my taking the sum divided by the shape\n", + "for k in clusters:\n", + " model=KMeans(n_clusters=k)\n", + " model.fit(iris_SP)\n", + " clusassign=model.predict(iris_SP)\n", + " meandist.append(sum(np.min(cdist(iris_SP, model.cluster_centers_, 'euclidean'), axis=1))\n", + " / iris_SP.shape[0])\n", + "\n", + "\"\"\"\n", + "Plot average distance from observations from the cluster centroid\n", + "to use the Elbow Method to identify number of clusters to choose\n", + "\"\"\"\n", + "plt.plot(clusters, meandist)\n", + "plt.xlabel('Number of clusters')\n", + "plt.ylabel('Average distance')\n", + "plt.title('Selecting k with the Elbow Method') \n", + "# pick the fewest number of clusters that reduces the average distance\n", + "# If you observe after 3 we can see graph is almost linear" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "adad2b1882db36d6ac1b4a47d2118386d6bdf0a1" + }, + "source": [ + "
\n", + "## 7-21- Backpropagation" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e0b9d339d6ccd1515d5c45f02358f351052b3c6f" + }, + "source": [ + "Backpropagation is a method used in artificial neural networks to calculate a gradient that is needed in the calculation of the weights to be used in the network.It is commonly used to train deep neural networks,a term referring to neural networks with more than one hidden layer." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ea58e2f8077aa74972727b0c3e10bc57fd82d5a7" + }, + "source": [ + "In this example we will use a very simple network to start with. The network will only have one input and one output layer. We want to make the following predictions from the input:\n", + "\n", + "| Input | Output |\n", + "| ------ |:------:|\n", + "| 0 0 1 | 0 |\n", + "| 1 1 1 | 1 |\n", + "| 1 0 1 | 1 |\n", + "| 0 1 1 | 0 |" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "07d2e4bc074dea99ec6c331a4ec51e777d468d0e" + }, + "source": [ + "We will use *Numpy* to compute the network parameters, weights, activation, and outputs:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9b5c9c7115e49cdb5c3c8428399e2508687efa47" + }, + "source": [ + "We will use the *[Sigmoid](http://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html#sigmoid)* activation function:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8422345e9e9c1853acba702d0d7138e3a209f0e8", + "collapsed": true + }, + "outputs": [], + "source": [ + "def sigmoid(z):\n", + " \"\"\"The sigmoid activation function.\"\"\"\n", + " return 1 / (1 + np.exp(-z))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1eec604fbe5729fecabfc4101a7b4887bf390876" + }, + "source": [ + "We could use the [ReLU](http://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html#activation-relu) activation function instead:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "557945abedb17c571926af334d5469b4edf12b48", + "collapsed": true + }, + "outputs": [], + "source": [ + "def relu(z):\n", + " \"\"\"The ReLU activation function.\"\"\"\n", + " return max(0, z)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "f405e20e385bc594337a59deba1c7d8d7769349d" + }, + "source": [ + "The [Sigmoid](http://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html#sigmoid) activation function introduces non-linearity to the computation. It maps the input value to an output value between $0$ and $1$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d388972329e79c533e7a8b90a2cfed18e288e4e5" + }, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a6881ae9a1a8554739f9464119d14875beaaf8ad" + }, + "source": [ + "The derivative of the sigmoid function is maximal at $x=0$ and minimal for lower or higher values of $x$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "dfb7cad18d4509840dea33c4aff0e6de8a6cf86b" + }, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "616e01ca7ed747aeb817707cbd14c57a92f31553" + }, + "source": [ + "The *sigmoid_prime* function returns the derivative of the sigmoid for any given $z$. The derivative of the sigmoid is $z * (1 - z)$. This is basically the slope of the sigmoid function at any given point: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "d4be4a6c8353a98c55eba479f520cbdeecc29f1d", + "collapsed": true + }, + "outputs": [], + "source": [ + "def sigmoid_prime(z):\n", + " \"\"\"The derivative of sigmoid for z.\"\"\"\n", + " return z * (1 - z)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3be8c0c576f52ec92539039615a0b4ffe5248f57" + }, + "source": [ + "We define the inputs as rows in *X*. There are three input nodes (three columns per vector in $X$. Each row is one trainig example:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "14fa62c6d5ac721998095f5b556610e0984eea98", + "collapsed": true + }, + "outputs": [], + "source": [ + "X = np.array([ [ 0, 0, 1 ],\n", + " [ 0, 1, 1 ],\n", + " [ 1, 0, 1 ],\n", + " [ 1, 1, 1 ] ])\n", + "print(X)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3f32526b2e047abdda2a1d1d611f1cf7f188f2e9" + }, + "source": [ + "The outputs are stored in *y*, where each row represents the output for the corresponding input vector (row) in *X*. The vector is initiated as a single row vector and with four columns and transposed (using the $.T$ method) into a column vector with four rows:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "dbd824213ef3fe2dd7eb01d4b4396d816bf002d3", + "collapsed": true + }, + "outputs": [], + "source": [ + "y = np.array([[0,0,1,1]]).T\n", + "print(y)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5e6e2ad9b6539e5c3d6aff5cf2db5f44c0f2611e" + }, + "source": [ + "To make the outputs deterministic, we seed the random number generator with a constant. This will guarantee that every time you run the code, you will get the same random distribution:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "6a441227d4cd02b6654e7800cb823e8eef62ff1d", + "collapsed": true + }, + "outputs": [], + "source": [ + "np.random.seed(1)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7cc15f07e9c4a15ec48265dd70f1e60e292f6485" + }, + "source": [ + "We create a weight matrix ($Wo$) with randomly initialized weights:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "f1be1de240c6e7b718def61d73d5b7b4f770b54a", + "collapsed": true + }, + "outputs": [], + "source": [ + "n_inputs = 3\n", + "n_outputs = 1\n", + "#Wo = 2 * np.random.random( (n_inputs, n_outputs) ) - 1\n", + "Wo = np.random.random( (n_inputs, n_outputs) ) * np.sqrt(2.0/n_inputs)\n", + "print(Wo)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "f690ef1844d5344c2513381b6169f3bfe6080714" + }, + "source": [ + "The reason for the output weight matrix ($Wo$) to have 3 rows and 1 column is that it represents the weights of the connections from the three input neurons to the single output neuron. The initialization of the weight matrix is random with a mean of $0$ and a variance of $1$. There is a good reason for chosing a mean of zero in the weight initialization. See for details the section on Weight Initialization in the [Stanford course CS231n on Convolutional Neural Networks for Visual Recognition](https://cs231n.github.io/neural-networks-2/#init)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "4b87807dc117e0908ec98b4e54843dc8f29c7397" + }, + "source": [ + "The core representation of this network is basically the weight matrix *Wo*. The rest, input matrix, output vector and so on are components that we need to learning and evaluation. The leraning result is stored in the *Wo* weight matrix." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "fb1319477d80a209e9caa3129b6371d872dab29b" + }, + "source": [ + "We loop in the optimization and learning cycle 10,000 times. In the *forward propagation* line we process the entire input matrix for training. This is called **full batch** training. I do not use an alternative variable name to represent the input layer, instead I use the input matrix $X$ directly here. Think of this as the different inputs to the input neurons computed at once. In principle the input or training data could have many more training examples, the code would stay the same." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "45907fc6c64b83116860d2c3dab8d252fd470c3e", + "collapsed": true + }, + "outputs": [], + "source": [ + "for n in range(10000):\n", + " # forward propagation\n", + " l1 = sigmoid(np.dot(X, Wo))\n", + " \n", + " # compute the loss\n", + " l1_error = y - l1\n", + " #print(\"l1_error:\\n\", l1_error)\n", + " \n", + " # multiply the loss by the slope of the sigmoid at l1\n", + " l1_delta = l1_error * sigmoid_prime(l1)\n", + " #print(\"l1_delta:\\n\", l1_delta)\n", + " \n", + " #print(\"error:\", l1_error, \"\\nderivative:\", sigmoid(l1, True), \"\\ndelta:\", l1_delta, \"\\n\", \"-\"*10, \"\\n\")\n", + " # update weights\n", + " Wo += np.dot(X.T, l1_delta)\n", + "\n", + "print(\"l1:\\n\", l1)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6d887640b00bf8d73c4544ef23d11c296ff15154" + }, + "source": [ + "The dots in $l1$ represent the lines in the graphic below. The lines represent the slope of the sigmoid in the particular position. The slope is highest with a value $x = 0$ (blue dot). It is rather shallow with $x = 2$ (green dot), and not so shallow and not as high with $x = -1$. All derivatives are between $0$ and $1$, of course, that is, no slope or a maximal slope of $1$. There is no negative slope in a sigmoid function." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "01ea3085bf5e9dd4babee8437895735c9aa54763" + }, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c0cfdf91801ec2bbffc34a7a95f6e899ed7a39fc" + }, + "source": [ + "The matrix $l1\\_error$ is a 4 by 1 matrix (4 rows, 1 column). The derivative matrix $sigmoid\\_prime(l1)$ is also a 4 by one matrix. The returned matrix of the element-wise product $l1\\_delta$ is also the 4 by 1 matrix." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5349a8fcd505990baa71481697397cef4f2176fb" + }, + "source": [ + "The product of the error and the slopes **reduces the error of high confidence predictions**. When the sigmoid slope is very shallow, the network had a very high or a very low value, that is, it was rather confident. If the network guessed something close to $x=0, y=0.5$, it was not very confident. Such predictions without confidence are updated most significantly. The other peripheral scores are multiplied with a number closer to $0$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "057f51f99a2a87073013e9e2b9f5538c98297cf3" + }, + "source": [ + "In the prediction line $l1 = sigmoid(np.dot(X, Wo))$ we compute the dot-product of the input vectors with the weights and compute the sigmoid on the sums.\n", + "The result of the dot-product is the number of rows of the first matrix ($X$) and the number of columns of the second matrix ($Wo$).\n", + "In the computation of the difference between the true (or gold) values in $y$ and the \"guessed\" values in $l1$ we have an estimate of the miss." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7c64e2c97d7093bb8f71d5bd173820b526fc71a1" + }, + "source": [ + "An example computation for the input $[ 1, 0, 1 ]$ and the weights $[ 9.5, 0.2, -0.1 ]$ and an output of $0.99$: If $y = 1$, the $l1\\_error = y - l2 = 0.01$, and $l1\\_delta = 0.01 * tiny\\_deriv$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "602abaf7339d617f2e0333c86ab98b94bb40a96d" + }, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3307f0633c665a5fa0aaa97898ab6a1d1d9f6fac" + }, + "source": [ + "## 9-1 More Complex Example with Backpropagation" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "750b541e55ae336dcee16ff38d672dff649792a6" + }, + "source": [ + "Consider now a more complicated example where no column has a correlation with the output:\n", + "\n", + "| Input | Output |\n", + "| ------ |:------:|\n", + "| 0 0 1 | 0 |\n", + "| 0 1 1 | 1 |\n", + "| 1 0 1 | 1 |\n", + "| 1 1 1 | 0 |" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "85bc7295eaf21d0bfad6c4572bfb868d74b2e1aa" + }, + "source": [ + "The pattern here is our XOR pattern or problem: If there is a $1$ in either column $1$ or $2$, but not in both, the output is $1$ (XOR over column $1$ and $2$)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "340ea076b1899802093da816d92017ce2b3d2716" + }, + "source": [ + "From our discussion of the XOR problem we remember that this is a *non-linear pattern*, a **one-to-one relationship between a combination of inputs**." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b64402f35850471c7136b201c783b9d9e60e6556" + }, + "source": [ + "To cope with this problem, we need a network with another layer, that is a layer that will combine and transform the input, and an additional layer will map it to the output. We will add a *hidden layer* with randomized weights and then train those to optimize the output probabilities of the table above." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "28829b11334a35dc1649f1d6d2134ed4e0d1a795" + }, + "source": [ + "We will define a new $X$ input matrix that reflects the above table:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "2c41f4546c675916ff0964370bc98a6862353666", + "collapsed": true + }, + "outputs": [], + "source": [ + "X = np.array([[0, 0, 1],\n", + " [0, 1, 1],\n", + " [1, 0, 1],\n", + " [1, 1, 1]])\n", + "print(X)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "20aff6095cd099acf174500e76946c12481192d7" + }, + "source": [ + "We also define a new output matrix $y$:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "508e0c65bdd467bfed8d69ac52638d8821dd9e2f", + "collapsed": true + }, + "outputs": [], + "source": [ + "y = np.array([[ 0, 1, 1, 0]]).T\n", + "print(y)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "87a03d01b3b1df0ff847a7507cc66ae87f1669d2" + }, + "source": [ + "We initialize the random number generator with a constant again:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "237da33769d159e1d450e66c93e677618c0a127f", + "collapsed": true + }, + "outputs": [], + "source": [ + "np.random.seed(1)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "03c37d00f1d7b87c44e7a4777990049af4044548" + }, + "source": [ + "Assume that our 3 inputs are mapped to 4 hidden layer ($Wh$) neurons, we have to initialize the hidden layer weights in a 3 by 4 matrix. The outout layer ($Wo$) is a single neuron that is connected to the hidden layer, thus the output layer is a 4 by 1 matrix:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "823a9291e688f1840b781b5aeba9779215206676", + "collapsed": true + }, + "outputs": [], + "source": [ + "n_inputs = 3\n", + "n_hidden_neurons = 4\n", + "n_output_neurons = 1\n", + "Wh = np.random.random( (n_inputs, n_hidden_neurons) ) * np.sqrt(2.0/n_inputs)\n", + "Wo = np.random.random( (n_hidden_neurons, n_output_neurons) ) * np.sqrt(2.0/n_hidden_neurons)\n", + "print(\"Wh:\\n\", Wh)\n", + "print(\"Wo:\\n\", Wo)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d27aca98d06bc0ed16678628d6927015b8dfe427" + }, + "source": [ + "We will loop now 60,000 times to optimize the weights:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "90add134167965958223083f3c3a7818795777bc", + "collapsed": true + }, + "outputs": [], + "source": [ + "for i in range(100000):\n", + " l1 = sigmoid(np.dot(X, Wh))\n", + " l2 = sigmoid(np.dot(l1, Wo))\n", + " \n", + " l2_error = y - l2\n", + " \n", + " if (i % 10000) == 0:\n", + " print(\"Error:\", np.mean(np.abs(l2_error)))\n", + " \n", + " # gradient, changing towards the target value\n", + " l2_delta = l2_error * sigmoid_prime(l2)\n", + " \n", + " # compute the l1 contribution by value to the l2 error, given the output weights\n", + " l1_error = l2_delta.dot(Wo.T)\n", + " \n", + " # direction of the l1 target:\n", + " # in what direction is the target l1?\n", + " l1_delta = l1_error * sigmoid_prime(l1)\n", + " \n", + " Wo += np.dot(l1.T, l2_delta)\n", + " Wh += np.dot(X.T, l1_delta)\n", + "\n", + "print(\"Wo:\\n\", Wo)\n", + "print(\"Wh:\\n\", Wh)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "263abd8f132d7b73ab2eb67c56caf1508a35d1d3" + }, + "source": [ + "The new computation in this new loop is $l1\\_error = l2\\_delta.dot(Wo.T)$, a **confidence weighted error** from $l2$ to compute an error for $l1$. The computation sends the error across the weights from $l2$ to $l1$. The result is a **contribution weighted error**, because we learn how much each node value in $l1$ **contributed** to the error in $l2$. This step is called **backpropagation**. We update $Wh$ using the same steps we did in the 2 layer implementation." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "97adc471c068fbd8d36ca19a4db0d98b0924c731" + }, + "source": [ + "-----------------\n", + "
\n", + "# 8- Conclusion" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1adfb5ba84e0f1d8fba58a2fca30546ead095047", + "collapsed": true + }, + "source": [ + "In this kernel, I have tried to cover all the parts related to the process of ML with a variety of Python packages and I know that there are still some problems then I hope to get your feedback to improve it.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cf3679a51c72dbe2d2549b5fe97e4ac5f1fa0fa0" + }, + "source": [ + "you can follow me on:\n", + "> ###### [ GitHub](https://github.com/mjbahmani)\n", + "> ###### [LinkedIn](https://www.linkedin.com/in/bahmani/)\n", + "> ###### [Kaggle](https://www.kaggle.com/mjbahmani/)\n", + "\n", + "--------------------------------------\n", + "\n", + " **I hope you find this kernel helpful and some upvotes would be very much appreciated**\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_cell_guid": "79c7e3d0-c299-4dcb-8224-4455121ee9b0", + "_uuid": "d629ff2d2480ee46fbb7e2d37f6b5fab8052498a", + "collapsed": true + }, + "source": [ + "
\n", + "\n", + "-----------\n", + "\n", + "# 9- References\n", + "* [1] [Iris image](https://rpubs.com/wjholst/322258)\n", + "* [2] [IRIS](https://archive.ics.uci.edu/ml/datasets/iris)\n", + "* [3] [https://skymind.ai/wiki/machine-learning-workflow](https://skymind.ai/wiki/machine-learning-workflow)\n", + "* [4] [IRIS-wiki](https://archive.ics.uci.edu/ml/datasets/iris)\n", + "* [5] [Problem-define](https://machinelearningmastery.com/machine-learning-in-python-step-by-step/)\n", + "* [6] [Sklearn](http://scikit-learn.org/)\n", + "* [7] [machine-learning-in-python-step-by-step](https://machinelearningmastery.com/machine-learning-in-python-step-by-step/)\n", + "* [8] [Data Cleaning](http://wp.sigmod.org/?p=2288)\n", + "* [9] [competitive data science](https://www.coursera.org/learn/competitive-data-science/)\n", + "\n", + "\n", + "-------------\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/Ebooks/Linear Algebra.pdf b/Ebooks/Linear Algebra.pdf new file mode 100644 index 0000000..f4fc357 Binary files /dev/null and b/Ebooks/Linear Algebra.pdf differ diff --git a/Ebooks/R vs Python vs MATLAB vs Octave.pdf b/Ebooks/R vs Python vs MATLAB vs Octave.pdf new file mode 100644 index 0000000..2773610 Binary files /dev/null and b/Ebooks/R vs Python vs MATLAB vs Octave.pdf differ diff --git a/Exploratory Data Analysis for Meta Kaggle Dataset/Exploratory Data Analysis for Meta Kaggle Dataset.ipynb b/Exploratory Data Analysis for Meta Kaggle Dataset/Exploratory Data Analysis for Meta Kaggle Dataset.ipynb new file mode 100644 index 0000000..4c8950e --- /dev/null +++ b/Exploratory Data Analysis for Meta Kaggle Dataset/Exploratory Data Analysis for Meta Kaggle Dataset.ipynb @@ -0,0 +1,661 @@ +{ + "cells": [ + { + "metadata": { + "_uuid": "a8f9622945156d6337ba73c481da2de7efef7384" + }, + "cell_type": "markdown", + "source": "##
Exploratory Data Analysis for Meta Kaggle Dataset
\n\n
There are plenty of Kernels that can help you learn EDA from scratch but here in Kaggle, I want to Analysis Meta Kaggle a popular Dataset as a comprehensive workflow for EDA. \nAfter reading, you can use it to Analysis other real dataset and use it as a template to deal with EDA problems.
\n
last update: 10/21/2018
\n\n\n\n>###### you may be interested have a look at it: [**10-steps-to-become-a-data-scientist**](https://github.com/mjbahmani/10-steps-to-become-a-data-scientist)\n\n\n---------------------------------------------------------------------\nyou can Fork and Run this kernel on Github:\n> ###### [ GitHub](https://github.com/mjbahmani/Machine-Learning-Workflow-with-Python)\n\n-------------------------------------------------------------------------------------------------------------\n **I hope you find this kernel helpful and some UPVOTES would be very much appreciated**\n \n -----------" + }, + { + "metadata": { + "_uuid": "cda11210a88d6484112cbe2c3624225328326c6a" + }, + "cell_type": "markdown", + "source": "## Notebook Content\n* 1- [Introduction](#1)\n* 2- [Loading Packages](#15)\n* 3- [Exploratory data analysis](#16)\n* 3-1 [Data Collection](#17)\n* 3-2 [Visualization](#18)\n* 3-2-1 [Scatter plot](#19)\n* 3-2-2 [Box](#20)\n* 3-2-3 [Histogram](#21)\n* 3-2-4 [Multivariate Plots](#22)\n* 3-2-5 [Violinplots](#23)\n* 3-2-6 [Pair plot](#24)\n* 3-2-7 [Kde plot](#25)\n* 3-2-8 [Joint plot](#26)\n* 3-2-9 [Andrews curves](#27)\n* 3-2-10 [Heatmap](#28)\n* 3-2-11 [Radviz](#29)" + }, + { + "metadata": { + "_uuid": "750903cc2679d39058f56df6c6c040be02b748df" + }, + "cell_type": "markdown", + "source": "
\n## 1- Introduction\nThis is a **comprehensive EDA techniques with python** , that I have spent a lot of time to complete it.\n\nit is clear that everyone in this community is familiar with Kaggle but if you need to review your information about the dataset please visit this [link](https://www.kaggle.com/c/titanic/data).\n\nI am open to getting your feedback for improving this **kernel**\n" + }, + { + "metadata": { + "_uuid": "fbedcae8843986c2139f18dad4b5f313e6535ac5" + }, + "cell_type": "markdown", + "source": "
\n## 2- Loading Packages\nIn this kernel we are using the following packages:" + }, + { + "metadata": { + "_uuid": "61f49281fdd8592b44c0867225f57e6fce36342c" + }, + "cell_type": "markdown", + "source": " \n Now we import all of them " + }, + { + "metadata": { + "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", + "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5", + "trusted": true + }, + "cell_type": "code", + "source": "# packages to load \n# Check the versions of libraries\n# Python version\nimport warnings\nwarnings.filterwarnings('ignore')\nimport sys\nprint('Python: {}'.format(sys.version))\n# scipy\nimport scipy\nprint('scipy: {}'.format(scipy.__version__))\nimport numpy\n# matplotlib\nimport matplotlib\nprint('matplotlib: {}'.format(matplotlib.__version__))\n# numpy\nimport numpy as np # linear algebra\nprint('numpy: {}'.format(np.__version__))\n# pandas\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nprint('pandas: {}'.format(pd.__version__))\nimport seaborn as sns\nprint('seaborn: {}'.format(sns.__version__))\nsns.set(color_codes=True)\nimport matplotlib.pyplot as plt\nprint('matplotlib: {}'.format(matplotlib.__version__))\n%matplotlib inline\n# scikit-learn\nimport sklearn\nprint('sklearn: {}'.format(sklearn.__version__))\n# Input data files are available in the \"../input/\" directory.\nimport os\n%matplotlib inline", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "04ff1a533119d589baee777c21194a951168b0c7" + }, + "cell_type": "markdown", + "source": "
\n## 3- Exploratory Data Analysis(EDA)\n In this section, you'll learn how to use graphical and numerical techniques to begin uncovering the structure of your data. \n \n* Which variables suggest interesting relationships?\n* Which observations are unusual?\n\nBy the end of the section, you'll be able to answer these questions and more, while generating graphics that are both insightful and beautiful. then We will review analytical and statistical operations:\n\n* 5-1 Data Collection\n* 5-2 Visualization\n* 5-3 Data Preprocessing\n* 5-4 Data Cleaning\n" + }, + { + "metadata": { + "_uuid": "cedecea930b278f86292367cc28d2996a235a169" + }, + "cell_type": "markdown", + "source": "
\n## 3-1 Data Collection\n**Data collection** is the process of gathering and measuring data, information or any variables of interest in a standardized and established manner that enables the collector to answer or test hypothesis and evaluate outcomes of the particular collection.[techopedia]\n" + }, + { + "metadata": { + "_uuid": "9269ae851b744856bce56840637030a16a5877e1", + "trusted": true + }, + "cell_type": "code", + "source": "# import kernels and users to play with it\nusers = pd.read_csv(\"../input/Users.csv\")\nkernels = pd.read_csv(\"../input/Kernels.csv\")", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "58ed9c838069f54de5cf90b20a774c3e236149b3" + }, + "cell_type": "markdown", + "source": "**<< Note 1 >>**\n\n* Each row is an observation (also known as : sample, example, instance, record)\n* Each column is a feature (also known as: Predictor, attribute, Independent Variable, input, regressor, Covariate)" + }, + { + "metadata": { + "_uuid": "7b5fd1034cd591ebd29fba1c77d342ec2b408d13" + }, + "cell_type": "markdown", + "source": "# Please **replace** your username and find your userid\n\nwe suppose that userid==authoruserid and use userid for both kernels and users dataset" + }, + { + "metadata": { + "_uuid": "edd043f8feb76cfe51b79785302ca4936ceb7b51", + "trusted": true + }, + "cell_type": "code", + "source": "username=\"mjbahmani\"\nuserid=int(users[users['UserName']==\"mjbahmani\"].Id)\nuserid", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "4b45251be7be77333051fe738639104ae1005fa5", + "trusted": true + }, + "cell_type": "code", + "source": "# shape\nprint(users.shape)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "4b45251be7be77333051fe738639104ae1005fa5", + "trusted": true + }, + "cell_type": "code", + "source": "# shape\nprint(kernels.shape)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c64e9d3e0bf394fb833de94a0fc5c34f69fce24c", + "trusted": true + }, + "cell_type": "code", + "source": "#columns*rows\nusers.size", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c64e9d3e0bf394fb833de94a0fc5c34f69fce24c", + "trusted": true + }, + "cell_type": "code", + "source": "#columns*rows\nkernels.size", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a6315bf510cecb907b2d23aad25faf6ccad32ac4" + }, + "cell_type": "markdown", + "source": "how many NA elements in every column\n" + }, + { + "metadata": { + "_uuid": "675f72fb58d83c527f71819e71ed8e17f81126f5", + "trusted": true + }, + "cell_type": "code", + "source": "users.isnull().sum()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "675f72fb58d83c527f71819e71ed8e17f81126f5", + "trusted": true + }, + "cell_type": "code", + "source": "kernels.isnull().sum()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "277e1998627d6a3ddeff4e913a6b8c3dc81dec96" + }, + "cell_type": "markdown", + "source": "\nWe can get a quick idea of how many instances (rows) and how many attributes (columns) the data contains with the shape property." + }, + { + "metadata": { + "_uuid": "95ee5e18f97bc410df1e54ac74e32cdff2b30755" + }, + "cell_type": "markdown", + "source": "for getting some information about the dataset you can use **info()** command" + }, + { + "metadata": { + "_uuid": "ca840f02925751186f87e402fcb5f637ab1ab8a0", + "trusted": true + }, + "cell_type": "code", + "source": "print(users.info())", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ca840f02925751186f87e402fcb5f637ab1ab8a0", + "trusted": true + }, + "cell_type": "code", + "source": "print(kernels.info())", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3458838205be4c7fbff88e95ef69934e13e2199b" + }, + "cell_type": "markdown", + "source": "you see number of unique item for Species with command below:" + }, + { + "metadata": { + "_uuid": "4b90d165a007106ae99809ad28edd75bd8153dd8", + "trusted": true + }, + "cell_type": "code", + "source": "kernels['Medal'].unique()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8accfbddf2228274ad412c3ad3be72b4107d6f6c", + "trusted": true + }, + "cell_type": "code", + "source": "kernels[\"Medal\"].value_counts()\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ae08b544a8d4202c7d0a47ec83d685e81c91a66d" + }, + "cell_type": "markdown", + "source": "to check the first 5 rows of the data set, we can use head(5)." + }, + { + "metadata": { + "_uuid": "5899889553c3416b27e93efceddb106eb71f5156", + "trusted": true + }, + "cell_type": "code", + "source": "kernels.head(5) ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1150b6ac3d82562aefd5c64f9f01accee5eace4d" + }, + "cell_type": "markdown", + "source": "to check out last 5 row of the data set, we use tail() function" + }, + { + "metadata": { + "_uuid": "79339442ff1f53ae1054d794337b9541295d3305", + "trusted": true + }, + "cell_type": "code", + "source": "users.tail() ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2c288c3dc8656a872a8529368812546e434d3a22" + }, + "cell_type": "markdown", + "source": "to pop up 5 random rows from the data set, we can use **sample(5)** function" + }, + { + "metadata": { + "_uuid": "09eb18d1fcf4a2b73ba2f5ddce99dfa521681140", + "trusted": true + }, + "cell_type": "code", + "source": "kernels.sample(5) ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c8a1cc36348c68fb98d6cb28aa9919fc5f2892f3" + }, + "cell_type": "markdown", + "source": "to give a statistical summary about the dataset, we can use **describe()" + }, + { + "metadata": { + "_uuid": "3f7211e96627b9a81c5b620a9ba61446f7719ea3", + "trusted": true + }, + "cell_type": "code", + "source": "kernels.describe() ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "031d16ca235837e889734635ecff193be64b27a4" + }, + "cell_type": "markdown", + "source": "to check out how many null info are on the dataset, we can use **isnull().sum()" + }, + { + "metadata": { + "_uuid": "8807b632269e2fa734ad26e8513199400fc09a83", + "trusted": true + }, + "cell_type": "code", + "source": "kernels.isnull().sum()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "446e6162e16325213047ff31454813455668b574", + "trusted": true + }, + "cell_type": "code", + "source": "kernels.groupby('Medal').count()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c2f1eaf0b6dfdc7cc4dace04614e99ed56425d00" + }, + "cell_type": "markdown", + "source": "to print dataset **columns**, we can use columns atribute" + }, + { + "metadata": { + "_uuid": "909d61b33ec06249d0842e6115597bbacf21163f", + "trusted": true + }, + "cell_type": "code", + "source": "kernels.columns", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "62b52ea61cfa597007bd31652c7f03778233227c" + }, + "cell_type": "code", + "source": "users.columns", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "22bc5d81c18275ee1fb082c0adbb7a65bdbec4cc" + }, + "cell_type": "markdown", + "source": "**<< Note 2 >>**\nin pandas's data frame you can perform some query such as \"where\"" + }, + { + "metadata": { + "_uuid": "ff69b963b60e8ff77acae02850885c7e90358129" + }, + "cell_type": "markdown", + "source": "## 3-2Find yourself in Users datset" + }, + { + "metadata": { + "trusted": true, + "_uuid": "1e36488451f22350bc2c655bfdd2b50803540b87" + }, + "cell_type": "code", + "source": "users[users['Id']==userid]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "33fc33a18489b438a884819d99dc00a02b113be8" + }, + "cell_type": "markdown", + "source": "## 3-3 Find your kernels in Kernels dataset" + }, + { + "metadata": { + "trusted": true, + "_uuid": "aa877c667451c76a052808964bbf8eb5991b39e0" + }, + "cell_type": "code", + "source": "yourkernels=kernels[kernels['AuthorUserId']==userid]\nyourkernels", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "aa882e5bcdc7d5f440489eff75d1d225269655a4" + }, + "cell_type": "markdown", + "source": "**<< Note >>**\n>**Preprocessing and generation pipelines depend on a model type**" + }, + { + "metadata": { + "_uuid": "055772bd170aa8018aabd85106b76675802c33b3" + }, + "cell_type": "markdown", + "source": "
\n## 3-4 Visualization\n**Data visualization** is the presentation of data in a pictorial or graphical format. It enables decision makers to see analytics presented visually, so they can grasp difficult concepts or identify new patterns.\n\nWith interactive visualization, you can take the concept a step further by using technology to drill down into charts and graphs for more detail, interactively changing what data you see and how it’s processed.[SAS]\n\n In this section I show you **11 plots** with **matplotlib** and **seaborn** that is listed in the blew picture:\n \n" + }, + { + "metadata": { + "_uuid": "b0014a7a52e714996bc443981c853095926d20e5" + }, + "cell_type": "markdown", + "source": "
\n## 3-4-1 Scatter plot\n\nScatter plot Purpose To identify the type of relationship (if any) between two quantitative variables\n\n\n" + }, + { + "metadata": { + "_uuid": "af099546eed64ebc796403d4139cb4c977c27b03", + "trusted": true + }, + "cell_type": "code", + "source": "# Modify the graph above by assigning each species an individual color.\nx=yourkernels[\"TotalVotes\"]\ny=yourkernels[\"TotalViews\"]\nplt.scatter(x, y)\nplt.legend()\nplt.show()\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "1b31a7c185ee654c31ff5b062d111bcefa205966" + }, + "cell_type": "code", + "source": "f,ax=plt.subplots(1,2,figsize=(18,8))\nyourkernels['Medal'].value_counts().plot.bar(color=['#CD7F32','#FFDF00','#D3D3D3'],ax=ax[0])\nax[0].set_title('Number Of Medal')\nax[0].set_ylabel('Count')\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d1c7b62b5f8cba427bca13049256365141655372" + }, + "cell_type": "markdown", + "source": "
\n### 3-4-2 Box\nIn descriptive statistics, a **box plot** or boxplot is a method for graphically depicting groups of numerical data through their quartiles. Box plots may also have lines extending vertically from the boxes (whiskers) indicating variability outside the upper and lower quartiles, hence the terms box-and-whisker plot and box-and-whisker diagram.[wikipedia]" + }, + { + "metadata": { + "_uuid": "0655e20f31a582f861d391308a088778cd7eaae9", + "trusted": true + }, + "cell_type": "code", + "source": "yourkernels[\"TotalVotes\"].plot(kind='box')\nplt.figure()\n#This gives us a much clearer idea of the distribution of the input attributes:\n\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f7f6426fd44bcd77d35a5fdbc8c4fc4f18d991ad", + "trusted": true + }, + "cell_type": "code", + "source": "# To plot the species data using a box plot:\n\nsns.boxplot(x=\"TotalViews\", y=\"TotalVotes\", data=yourkernels )\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7b193e4aa7e6fb337d3f65c334849094addd097a", + "trusted": true + }, + "cell_type": "code", + "source": "# Use Seaborn's striplot to add data points on top of the box plot \n# Insert jitter=True so that the data points remain scattered and not piled into a verticle line.\n# Assign ax to each axis, so that each plot is ontop of the previous axis. \n\nax= sns.boxplot(x=\"TotalViews\", y=\"TotalVotes\", data=yourkernels)\nax= sns.stripplot(x=\"TotalViews\", y=\"TotalVotes\", data=yourkernels, jitter=True, edgecolor=\"gray\")\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "56adbafa89c117118621c72b3b7cb19edc21298e", + "trusted": true + }, + "cell_type": "code", + "source": "# Tweek the plot above to change fill and border color color using ax.artists.\n# Assing ax.artists a variable name, and insert the box number into the corresponding brackets\n\nax= sns.boxplot(x=\"TotalViews\", y=\"TotalVotes\", data=yourkernels)\nax= sns.stripplot(x=\"TotalViews\", y=\"TotalVotes\", data=yourkernels, jitter=True, edgecolor=\"gray\")\n\nboxtwo = ax.artists[2]\nboxtwo.set_facecolor('red')\nboxtwo.set_edgecolor('black')\nboxthree=ax.artists[1]\nboxthree.set_facecolor('yellow')\nboxthree.set_edgecolor('black')\n\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "40c9ab245695d47cb33eda65a0d637de390f9e59" + }, + "cell_type": "code", + "source": "sns.factorplot('TotalViews','TotalVotes',hue='Medal',data=yourkernels)\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "743a92c3c2fff1a1f99845518247f7971ad18b7c" + }, + "cell_type": "markdown", + "source": "
\n### 3-4-3 Histogram\nWe can also create a **histogram** of each input variable to get an idea of the distribution.\n\n" + }, + { + "metadata": { + "_uuid": "5da0520ed3e738ee8814b2d91843ed4acec2b6e6", + "trusted": true + }, + "cell_type": "code", + "source": "# histograms\nyourkernels.hist(figsize=(15,20))\nplt.figure()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b4e3de19781686010c6038f0e3076eb678398169" + }, + "cell_type": "markdown", + "source": "It looks like perhaps two of the input variables have a Gaussian distribution. This is useful to note as we can use algorithms that can exploit this assumption.\n\n" + }, + { + "metadata": { + "_uuid": "9f80a6e971cbf0af72d659b51af552ea1dddc9a8", + "trusted": true + }, + "cell_type": "code", + "source": "yourkernels[\"TotalViews\"].hist();", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "5d8ef0781d88c46a8becf6d7f5b1f4ad2c05db7e" + }, + "cell_type": "code", + "source": "sns.factorplot('TotalViews','TotalVotes',data=yourkernels)\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e0f696ec021ec99c1058a62e22c8b73082fe6fa7" + }, + "cell_type": "markdown", + "source": "
\n### 3-4-5 violinplots" + }, + { + "metadata": { + "_uuid": "e352d2f8340609adf4bf6718b1d2ecee0fa730b5", + "trusted": true + }, + "cell_type": "code", + "source": "# violinplots on petal-length for each species\nsns.violinplot(data=yourkernels,x=\"TotalViews\", y=\"TotalVotes\")", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2544d3c2dd34a360d295019d8cb597c7ef8f66bc" + }, + "cell_type": "markdown", + "source": "
\n### 3-6-7 kdeplot" + }, + { + "metadata": { + "_uuid": "1d07222b89303b386e9e824d52cc73c045667f25", + "trusted": true + }, + "cell_type": "code", + "source": "# seaborn's kdeplot, plots univariate or bivariate density estimates.\n#Size can be changed by tweeking the value used\nsns.FacetGrid(yourkernels, hue=\"TotalVotes\", size=5).map(sns.kdeplot, \"TotalViews\").add_legend()\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "06e1259b209e753c2f05643706d6157145bb3b98" + }, + "cell_type": "code", + "source": "f,ax=plt.subplots(1,3,figsize=(20,8))\nsns.distplot(yourkernels[yourkernels['Medal']==1].TotalVotes,ax=ax[0])\nax[0].set_title('TotalVotes in Medal 1')\nsns.distplot(yourkernels[yourkernels['Medal']==2].TotalVotes,ax=ax[1])\nax[1].set_title('TotalVotes in Medal 2')\nsns.distplot(yourkernels[yourkernels['Medal']==3].TotalVotes,ax=ax[2])\nax[2].set_title('TotalVotes in Medal 3')\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "560d8e8f17bacefaf8c3855a9648f26b82fdee9b" + }, + "cell_type": "markdown", + "source": "
\n### 3-4-8 jointplot" + }, + { + "metadata": { + "_uuid": "4adb4da16ea61e0f1a12bc9925dfbbaaa81e0360", + "trusted": true + }, + "cell_type": "code", + "source": "# Use seaborn's jointplot to make a hexagonal bin plot\n#Set desired size and ratio and choose a color.\nsns.jointplot(x=\"TotalVotes\", y=\"TotalViews\", data=yourkernels, size=10,ratio=10, kind='hex',color='green')\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3768e31e990bfe4c2ff7b45087fbba85e0560d00" + }, + "cell_type": "markdown", + "source": "
\n### 3-4-9 andrews_curves" + }, + { + "metadata": { + "_uuid": "263eaa9d2bfad0f8c68b6e8e874bdc11a6e802ac", + "trusted": true + }, + "cell_type": "code", + "source": "# we will use seaborn jointplot shows bivariate scatterplots and univariate histograms with Kernel density \n# estimation in the same figure\nsns.jointplot(x=\"TotalVotes\", y=\"TotalViews\", data=yourkernels, size=6, kind='kde', color='#800000', space=0)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8e73333289d17dd648b7b2112d7fe3fe7ea444d0" + }, + "cell_type": "markdown", + "source": "
\n### 3-4-10 Heatmap" + }, + { + "metadata": { + "_uuid": "3100955ca9dc61ac7d435e9c064d10d06f26afa7", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure(figsize=(10,7)) \nsns.heatmap(yourkernels.corr(),annot=True,cmap='cubehelix_r') #draws heatmap with input as the correlation matrix calculted by(iris.corr())\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "cf3679a51c72dbe2d2549b5fe97e4ac5f1fa0fa0" + }, + "cell_type": "markdown", + "source": "you can follow me on:\n\n> ###### [ GitHub](https://github.com/mjbahmani)\n\n--------------------------------------\n\n **I hope you find this kernel helpful and some UPVOTES would be very much appreciated** " + }, + { + "metadata": { + "_uuid": "72e1e18935b372b6aac2fae910e5bd12de1d420f" + }, + "cell_type": "markdown", + "source": "# This kernel is not completed yet and will be updated soon !!!" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.6.6", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} \ No newline at end of file diff --git a/Kaggle Kernels/Kaggle Kernels List.txt b/Kaggle Kernels/Kaggle Kernels List.txt new file mode 100644 index 0000000..83e9903 --- /dev/null +++ b/Kaggle Kernels/Kaggle Kernels List.txt @@ -0,0 +1 @@ +Kaggle Kernels List \ No newline at end of file diff --git a/Linear Algabra in 60 Minuties/Linear Algabra in 60 Minuties.ipynb b/Linear Algabra in 60 Minuties/Linear Algabra in 60 Minuties.ipynb new file mode 100644 index 0000000..8610779 --- /dev/null +++ b/Linear Algabra in 60 Minuties/Linear Algabra in 60 Minuties.ipynb @@ -0,0 +1,2308 @@ +{ + "cells": [ + { + "metadata": { + "_uuid": "726661972b09b03a31d424ef02a9be0cd284d81b" + }, + "cell_type": "markdown", + "source": " #
Linear Algebra in 60 Minutes \n
One of the most common questions we get on Data science is:\n
\nHow much maths do I need to learn to be a data scientist?\n
\nIf you get confused and ask experts what should you learn at this stage, most of them would suggest / agree that you go ahead with Linear Algebra? \nin this simple tutorials you can learn all of the thing you need for being a data scientist with Linear Algabra
\n\n
last update: 10/11/2018
\n\n\n\n\n\nyou can follow me on:\n> ###### [ GitHub](https://github.com/mjbahmani)\n> ###### [Kaggle](https://www.kaggle.com/mjbahmani/)\n-------------------------------------------------------------------------------------------------------------\n **I hope you find this kernel helpful and some upvotes would be very much appreciated**\n \n -----------" + }, + { + "metadata": { + "_uuid": "2a01be35950f7a117fc6700e866de3bf5a3ea6b9" + }, + "cell_type": "markdown", + "source": "\n## Notebook Content\n [Introduction](#0)\n1. [Basic Concepts and Notation](#1)\n1. [Notation ](#2)\n1. [Matrix Multiplication](#3)\n 1. [Vector-Vector Products](#4)\n 1. [Outer Product of Two Vectors](#5)\n 1. [Matrix-Vector Products](#6)\n 1. [Matrix-Matrix Products](#7)\n1. [Identity Matrix](#8)\n1. [Diagonal Matrix](#9)\n1. [Transpose of a Matrix](#10)\n1. [Symmetric Metrices](#11)\n1. [The Trace](#12)\n1. [Norms](#13)\n1. [Linear Independence and Rank](#14)\n 1. [Column Rank of a Matrix](#15)\n 1. [Row Rank of a Matrix](#16)\n 1. [Rank of a Matrix](#17)\n1. [Subtraction and Addition of Metrices](#18)\n 1. [Inverse](#19)\n1. [Orthogonal Matrices](#20)\n1. [Range and Nullspace of a Matrix](#21)\n1. [Determinant](#22)\n 1. [geometric interpretation of the determinant](#23)\n1. [Tensors](#24)\n1. [Hyperplane](#25)\n1. [Summary](#26)\n 1. [Dot Product](#27)\n 1. [Hadamard Product](#28)\n 1. [Outer Product](#29)\n1. [Conclusion](#30)\n1. [References](#31)" + }, + { + "metadata": { + "_uuid": "b18443661b6d30ffea2150fa74d44d62e14ae952" + }, + "cell_type": "markdown", + "source": "
\n# Introduction\nLinear algebra is the branch of mathematics that deals with vector spaces. Although I can’t hope to teach you linear algebra in a brief chapter, it underpins a large number of data science concepts and techniques, which means I owe it to you to at least try. What we learn in this chapter we’ll use heavily throughout the rest of the book.\n\n
\n*Is there anything more useless or less useful than Algebra?*\n
\n*Billy Connolly*" + }, + { + "metadata": { + "_uuid": "e6824a84cbdfb6dc17200c495101e113967bf514" + }, + "cell_type": "markdown", + "source": "
\n# 1- Basic Concepts and Notation" + }, + { + "metadata": { + "_uuid": "d46c78c9ba7287f5af049a777047621cca585e9b" + }, + "cell_type": "markdown", + "source": "The following system of equations:" + }, + { + "metadata": { + "_uuid": "92450d2d0c14c50b12faff1fba1a24d47f73c6fa" + }, + "cell_type": "markdown", + "source": "$\\begin{equation}\n\\begin{split}\n4 x_1 - 5 x_2 & = -13 \\\\\n -2x_1 + 3 x_2 & = 9\n\\end{split}\n\\end{equation}$" + }, + { + "metadata": { + "_uuid": "e7b0348e56afdf9ecaff27164052f9ad8157a355" + }, + "cell_type": "markdown", + "source": "We are looking for a unique solution for the two variables $x_1$ and $x_2$. The system can be described as:" + }, + { + "metadata": { + "_uuid": "cd257c92064d3a32a783f478de4ecc6ee02eb855" + }, + "cell_type": "markdown", + "source": "\\begin{align}\n\\dot{x} & = \\sigma(y-x) \\\\\n\\dot{y} & = \\rho x - y - xz \\\\\n\\dot{z} & = -\\beta z + xy\n\\end{align}" + }, + { + "metadata": { + "_uuid": "6196aa1b102f2bc5baa03ab11a6f46a6334afb77" + }, + "cell_type": "markdown", + "source": "$$\nAx=b\n$$" + }, + { + "metadata": { + "_uuid": "62e00b4cd01db4db4eeed802bc6f873e56d44401" + }, + "cell_type": "markdown", + "source": "as matrices:" + }, + { + "metadata": { + "_uuid": "4d66f085637e77ab9d00fad7070d04902e06a405" + }, + "cell_type": "markdown", + "source": "$$A = \\begin{bmatrix}\n 4 & -5 \\\\[0.3em]\n -2 & 3 \n \\end{bmatrix},\\ \n b = \\begin{bmatrix}\n -13 \\\\[0.3em]\n 9 \n \\end{bmatrix}$$" + }, + { + "metadata": { + "_uuid": "c29e9ef072d3fe0241c29d3f1ce528acf428d50d" + }, + "cell_type": "markdown", + "source": "A **scalar** is an element in a vector, containing a real number **value**. In a vector space model or a vector mapping of (symbolic, qualitative, or quantitative) properties the scalar holds the concrete value or property of a variable." + }, + { + "metadata": { + "_uuid": "113ed77c0072b401987b15bf29b020b3b47f49ba" + }, + "cell_type": "markdown", + "source": "A **vector** is an array, tuple, or ordered list of scalars (or elements) of size $n$, with $n$ a positive integer. The **length** of the vector, that is the number of scalars in the vector, is also called the **order** of the vector." + }, + { + "metadata": { + "_uuid": "49c0b3e90c95512ef3733b25fd87cdef8ce31f97" + }, + "cell_type": "markdown", + "source": "**Vectorization** is the process of creating a vector from some data using some process." + }, + { + "metadata": { + "_uuid": "dbea06c756c0c9e398def8799d080e23b3e5f899" + }, + "cell_type": "markdown", + "source": "Vectors of the length $n$ could be treated like points in $n$-dimensional space. One can calculate the distance between such points using measures like [Euclidean Distance](https://en.wikipedia.org/wiki/Euclidean_distance). The similarity of vectors could also be calculated using [Cosine Similarity](https://en.wikipedia.org/wiki/Cosine_similarity)." + }, + { + "metadata": { + "_uuid": "edaec8965119aa83192198d2d440c37546335719" + }, + "cell_type": "markdown", + "source": "
\n## 2- Notation" + }, + { + "metadata": { + "_uuid": "64af248dc35d9897a3f5bdd032850a57e4ff3876" + }, + "cell_type": "markdown", + "source": "A **matrix** is a list of vectors that all are of the same length. $A$ is a matrix with $m$ rows and $n$ columns, antries of $A$ are real numbers:" + }, + { + "metadata": { + "_uuid": "9bad820eed2da96e788ffcafbcf2479caee67643" + }, + "cell_type": "markdown", + "source": "$A \\in \\mathbb{R}^{m \\times n}$" + }, + { + "metadata": { + "_uuid": "b55c3fe6c04903ecfeeea63b7336123352acf529" + }, + "cell_type": "markdown", + "source": "A vector $x$ with $n$ entries of real numbers, could also be thought of as a matrix with $n$ rows and $1$ column, or as known as a **column vector**." + }, + { + "metadata": { + "_uuid": "c0b067c3a32a5104136293c0d1887b2edeca12a7" + }, + "cell_type": "markdown", + "source": "$x = \\begin{bmatrix}\n x_1 \\\\[0.3em]\n x_2 \\\\[0.3em]\n \\vdots \\\\[0.3em]\n x_n\n \\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "ea3788fd5e066c884394be142580a4fdadac01fe" + }, + "cell_type": "markdown", + "source": "Representing a **row vector**, that is a matrix with $1$ row and $n$ columns, we write $x^T$ (this denotes the transpose of $x$, see above)." + }, + { + "metadata": { + "_uuid": "084a41970af4598e3fd2d3f6217a8695b160c9ac" + }, + "cell_type": "markdown", + "source": "$x^T = \\begin{bmatrix}\n x_1 & x_2 & \\cdots & x_n\n \\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "0a4ea55a9af6d93de973a5e87fb5c82ce1fb7206" + }, + "cell_type": "markdown", + "source": "We use the notation $a_{ij}$ (or $A_{ij}$, $A_{i,j}$, etc.) to denote the entry of $A$ in the $i$th row and\n$j$th column:" + }, + { + "metadata": { + "_uuid": "0503f34627c7269d302d2b3836069c8a04ab7dba" + }, + "cell_type": "markdown", + "source": "$A = \\begin{bmatrix}\n a_{11} & a_{12} & \\cdots & a_{1n} \\\\[0.3em]\n a_{21} & a_{22} & \\cdots & a_{2n} \\\\[0.3em]\n \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n a_{m1} & a_{m2} & \\cdots & a_{mn} \n \\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "e8af099926ef22c12554e4a2d8820afd542ee807" + }, + "cell_type": "markdown", + "source": "We denote the $j$th column of $A$ by $a_j$ or $A_{:,j}$:" + }, + { + "metadata": { + "_uuid": "c17b201130a3ea73e59a50914599e7b9d1c1306d" + }, + "cell_type": "markdown", + "source": "$A = \\begin{bmatrix}\n \\big| & \\big| & & \\big| \\\\[0.3em]\n a_{1} & a_{2} & \\cdots & a_{n} \\\\[0.3em]\n \\big| & \\big| & & \\big| \n \\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "7644f7d6386a60f8bf590d99a23d47accda09d8a" + }, + "cell_type": "markdown", + "source": "We denote the $i$th row of $A$ by $a_i^T$ or $A_{i,:}$:" + }, + { + "metadata": { + "_uuid": "fc9411370a353ff0e933eceadd9de277ca4b0113" + }, + "cell_type": "markdown", + "source": "$A = \\begin{bmatrix}\n -- & a_1^T & -- \\\\[0.3em]\n -- & a_2^T & -- \\\\[0.3em]\n & \\vdots & \\\\[0.3em]\n -- & a_m^T & -- \n \\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "2301a92667f6fc9b26f76c216b5c8cb6e47b6343" + }, + "cell_type": "markdown", + "source": "" + }, + { + "metadata": { + "_uuid": "c572408519a74d444556d2769694ebd9bf4d58da" + }, + "cell_type": "markdown", + "source": "A $n \\times m$ matrix is a two-dimensional array with $n$ rows and $m$ columns." + }, + { + "metadata": { + "_uuid": "41bc780d93b81da8aa1ff806c54a4791dbb2c8dc" + }, + "cell_type": "markdown", + "source": "
\n## 3-Matrix Multiplication" + }, + { + "metadata": { + "_uuid": "0573f52724da68f860328d1cc3259c215d817f80" + }, + "cell_type": "markdown", + "source": "The result of the multiplication of two matrixes $A \\in \\mathbb{R}^{m \\times n}$ and $B \\in \\mathbb{R}^{n \\times p}$ is the matrix:" + }, + { + "metadata": { + "_uuid": "bd6307c19afbda119a0dacca7e096b965889a30b" + }, + "cell_type": "markdown", + "source": "$C = AB \\in \\mathbb{R}^{m \\times n}$" + }, + { + "metadata": { + "_uuid": "0e0a76e86724698f241fcc74fc37e54d881622bd" + }, + "cell_type": "markdown", + "source": "That is, we are multiplying the columns of $A$ with the rows of $B$:" + }, + { + "metadata": { + "_uuid": "adb65bab1beb10117cbb490383cb62a9578ce62f" + }, + "cell_type": "markdown", + "source": "$C_{ij}=\\sum_{k=1}^n{A_{ij}B_{kj}}$" + }, + { + "metadata": { + "_uuid": "17f45fb4f428ad87706493da0431bdce6c00b531" + }, + "cell_type": "markdown", + "source": "The number of columns in $A$ must be equal to the number of rows in $B$." + }, + { + "metadata": { + "_uuid": "aa352f5ba3a8ee911eb8f1c03749267eb4c4f76e" + }, + "cell_type": "markdown", + "source": "
\n### 3-1 Vector-Vector Products" + }, + { + "metadata": { + "_uuid": "4cf79a777e194d13bcc2dd7d164158f4390b5e8c" + }, + "cell_type": "markdown", + "source": "#### Inner or Dot Product of Two Vectors" + }, + { + "metadata": { + "_uuid": "3274f5ded5ea7255a4f1e24a3155a5a0af41f6c3" + }, + "cell_type": "markdown", + "source": "For two vectors $x, y \\in \\mathbb{R}^n$, the **inner product** or **dot product** $x^T y$ is a real number:" + }, + { + "metadata": { + "_uuid": "12af85ed7e264aebd0f5b07757bd30cebe4da1a8" + }, + "cell_type": "markdown", + "source": "$x^T y \\in \\mathbb{R} = \\begin{bmatrix}\n x_1 & x_2 & \\cdots & x_n\n \\end{bmatrix} \\begin{bmatrix}\n y_1 \\\\[0.3em]\n y_2 \\\\[0.3em]\n \\vdots \\\\[0.3em]\n y_n\n \\end{bmatrix} = \\sum_{i=1}^{n}{x_i y_i}$" + }, + { + "metadata": { + "_uuid": "1b9b1e36e48691239719c0810b1097d4b3ffbd84" + }, + "cell_type": "markdown", + "source": "The **inner products** are a special case of matrix multiplication." + }, + { + "metadata": { + "_uuid": "530f02a04a9c565031e3a5f2ba01781265b59f7b" + }, + "cell_type": "markdown", + "source": "It is always the case that $x^T y = y^T x$." + }, + { + "metadata": { + "_uuid": "ab71687334bbaacf7f2b715b957d24a18e255e71" + }, + "cell_type": "markdown", + "source": "##### Example" + }, + { + "metadata": { + "_uuid": "1f11e295fe1154db1ad859ac91c55211e1f35b4c" + }, + "cell_type": "markdown", + "source": "To calculate the inner product of two vectors $x = [1 2 3 4]$ and $y = [5 6 7 8]$, we can loop through the vector and multiply and sum the scalars (this is simplified code):" + }, + { + "metadata": { + "trusted": true, + "_uuid": "371da89fa6d1b698c59ee82d6aa7b475fd7a5625" + }, + "cell_type": "code", + "source": "x = (1, 2, 3, 4)\ny = (5, 6, 7, 8)\nn = len(x)\nif n == len(y):\n result = 0\n for i in range(n):\n result += x[i] * y[i]\n print(result)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5dfcb47d8e3568eafc3593911ef8655762525093" + }, + "cell_type": "markdown", + "source": "It is clear that in the code above we could change line 7 to `result += y[i] * x[i]` without affecting the result." + }, + { + "metadata": { + "_uuid": "2bc1c325a7af9aa6d418474bbc59e5eb24c4652a" + }, + "cell_type": "markdown", + "source": "We can use the *numpy* module to apply the same operation, to calculate the **inner product**. We import the *numpy* module and assign it a name *np* for the following code:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "05779f9ebb13affb22eb3f35bee252f04f7f596c" + }, + "cell_type": "code", + "source": "import numpy as np", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "4d8ffa140774c6a7e2f0cd35c4809bd80069ce8b" + }, + "cell_type": "markdown", + "source": "We define the vectors $x$ and $y$ using *numpy*:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "e6c39782297031e83d0e695fa80f9ebc2a817f4f" + }, + "cell_type": "code", + "source": "x = np.array([1, 2, 3, 4])\ny = np.array([5, 6, 7, 8])\nprint(\"x:\", x)\nprint(\"y:\", y)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ba7b567d2a4696cf0739e12cf4415ea3b8110e1e" + }, + "cell_type": "markdown", + "source": "We can now calculate the $dot$ or $inner product$ using the *dot* function of *numpy*:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "c9fd9b61bdfa83059272f1ad61067138d0763308" + }, + "cell_type": "code", + "source": "np.dot(x, y)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "fec79e95e9d5b4059f91fd69334569a6831b835b" + }, + "cell_type": "markdown", + "source": "The order of the arguments is irrelevant:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "d3843ed486083fd994883be64136127728d09d7e" + }, + "cell_type": "code", + "source": "np.dot(y, x)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "4025fa080136e50fcc4749100946148fa508ce32" + }, + "cell_type": "markdown", + "source": "Note that both vectors are actually **row vectors** in the above code. We can transpose them to column vectors by using the *shape* property:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "f3a97f695aad46b1d848469240308024d1dcb634" + }, + "cell_type": "code", + "source": "print(\"x:\", x)\nx.shape = (4, 1)\nprint(\"xT:\", x)\nprint(\"y:\", y)\ny.shape = (4, 1)\nprint(\"yT:\", y)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6a850ef7d0e2025dd57cbf89c4bbe4146ed83ba4" + }, + "cell_type": "markdown", + "source": "In fact, in our understanding of Linear Algebra, we take the arrays above to represent **row vectors**. *Numpy* treates them differently." + }, + { + "metadata": { + "_uuid": "b64cdd134c53e7865a76d4efecc2ace176c664cd" + }, + "cell_type": "markdown", + "source": "We see the issues when we try to transform the array objects. Usually, we can transform a row vector into a column vector in *numpy* by using the *T* method on vector or matrix objects:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "bb73c80a401c89d79dbd920e5d63cf1a07b384e7" + }, + "cell_type": "code", + "source": "x = np.array([1, 2, 3, 4])\ny = np.array([5, 6, 7, 8])\nprint(\"x:\", x)\nprint(\"y:\", y)\nprint(\"xT:\", x.T)\nprint(\"yT:\", y.T)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e80fc9e4bec6d2cc26a8194e19736e1f24484d5f" + }, + "cell_type": "markdown", + "source": "The problem here is that this does not do, what we expect it to do. It only works, if we declare the variables not to be arrays of numbers, but in fact a matrix:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "cb78424e23837608cbd597fb6fc7c3cbd99f368a" + }, + "cell_type": "code", + "source": "x = np.array([[1, 2, 3, 4]])\ny = np.array([[5, 6, 7, 8]])\nprint(\"x:\", x)\nprint(\"y:\", y)\nprint(\"xT:\", x.T)\nprint(\"yT:\", y.T)\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9bed60bdfd536f42ad4a88a358e611fef07bc14a" + }, + "cell_type": "markdown", + "source": "Note that the *numpy* functions *dot* and *outer* are not affected by this distinction. We can compute the dot product using the mathematical equation above in *numpy* using the new $x$ and $y$ row vectors:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "df9c92e49f2dad24800996d0655caccec351c580" + }, + "cell_type": "code", + "source": "print(\"x:\", x)\nprint(\"y:\", y.T)\nnp.dot(x, y.T)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c1705fc2b1b16b9228274a2f53cd0fa59a39d8fd" + }, + "cell_type": "markdown", + "source": "Or by reverting to:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "3a86b041668670f66b643053dfecfc46bdcd2749" + }, + "cell_type": "code", + "source": "print(\"x:\", x.T)\nprint(\"y:\", y)\nnp.dot(y, x.T)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "13ebfb31e281db7417cc3e2beb312e63f9688e28" + }, + "cell_type": "markdown", + "source": "To read the result from this array of arrays, we would need to access the value this way:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "295be78d3c1258ec4f24579985c5f14f8746e8a9" + }, + "cell_type": "code", + "source": "np.dot(y, x.T)[0][0]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b5bda4ac75a8d11935ef765b2c869e56d9df8a56" + }, + "cell_type": "markdown", + "source": "
\n## 3-2 Outer Product of Two Vectors" + }, + { + "metadata": { + "_uuid": "600acbd91bfbb49c43541a743541fcdb43b00c1a" + }, + "cell_type": "markdown", + "source": "For two vectors $x \\in \\mathbb{R}^m$ and $y \\in \\mathbb{R}^n$, where $n$ and $m$ do not have to be equal, the **outer product** of $x$ and $y$ is:" + }, + { + "metadata": { + "_uuid": "8e8923ee3fd2fe565cbd45dd93eb69b99bcae973" + }, + "cell_type": "markdown", + "source": "$xy^T \\in \\mathbb{R}^{m\\times n}$" + }, + { + "metadata": { + "_uuid": "5d50297bd88d3a2c3c7738412e84611c119695e8" + }, + "cell_type": "markdown", + "source": "The **outer product** results in a matrix with $m$ rows and $n$ columns by $(xy^T)_{ij} = x_i y_j$:" + }, + { + "metadata": { + "_uuid": "24c79c28d1a44f968c54fb7f6b25f4515e48ffa2" + }, + "cell_type": "markdown", + "source": "$xy^T \\in \\mathbb{R}^{m\\times n} = \\begin{bmatrix}\n x_1 \\\\[0.3em]\n x_2 \\\\[0.3em]\n \\vdots \\\\[0.3em]\n x_n\n \\end{bmatrix} \\begin{bmatrix}\n y_1 & y_2 & \\cdots & y_n\n \\end{bmatrix} = \\begin{bmatrix}\n x_1 y_1 & x_1 y_2 & \\cdots & x_1 y_n \\\\[0.3em]\n x_2 y_1 & x_2 y_2 & \\cdots & x_2 y_n \\\\[0.3em]\n \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n x_m y_1 & x_m y_2 & \\cdots & x_m y_n \\\\[0.3em]\n \\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "cfb0c1807bfd9dee7f997d2375d065c4ecbcc9d5" + }, + "cell_type": "markdown", + "source": "Some useful property of the outer product: assume $\\mathbf{1} \\in \\mathbb{R}^n$ is an $n$-dimensional vector of scalars with the value $1$. Given a matrix $A \\in \\mathbb{R}^{m\\times n}$ with all columns equal to some vector $x \\in \\mathbb{R}^m$, using the outer product $A$ can be represented as:" + }, + { + "metadata": { + "_uuid": "223cb0c14b513f60b8a31d5c81fab450afc50902" + }, + "cell_type": "markdown", + "source": "$A = \\begin{bmatrix}\n \\big| & \\big| & & \\big| \\\\[0.3em]\n x & x & \\cdots & x \\\\[0.3em]\n \\big| & \\big| & & \\big| \n \\end{bmatrix} = \\begin{bmatrix}\n x_1 & x_1 & \\cdots & x_1 \\\\[0.3em]\n x_2 & x_2 & \\cdots & x_2 \\\\[0.3em]\n \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n x_m &x_m & \\cdots & x_m\n \\end{bmatrix} = \\begin{bmatrix}\n x_1 \\\\[0.3em]\n x_2 \\\\[0.3em]\n \\vdots \\\\[0.3em]\n x_m\n \\end{bmatrix} \\begin{bmatrix}\n 1 & 1 & \\cdots & 1\n \\end{bmatrix} = x \\mathbf{1}^T$" + }, + { + "metadata": { + "_uuid": "559fa51035235c9d1c1a2286d05610d5e51dc958" + }, + "cell_type": "markdown", + "source": "##### Example" + }, + { + "metadata": { + "_uuid": "79454aca18aaa191658d04a48662f75588dd6e4e" + }, + "cell_type": "markdown", + "source": "If we want to compute the outer product of two vectors $x$ and $y$, we need to transpose the row vector $x$ to a column vector $x^T$. This can be achieved by the *reshape* function in *numpy*, the *T* method, or the *transpose()* function. The *reshape* function takes a parameter that describes the number of colums and rows for the resulting transposing:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "31c5791cb210071f5253d0a20a7f1e2c030a48ea" + }, + "cell_type": "code", + "source": "x = np.array([[1, 2, 3, 4]])\nprint(\"x:\", x)\nprint(\"xT:\", np.reshape(x, (4, 1)))\nprint(\"xT:\", x.T)\nprint(\"xT:\", x.transpose())", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0f8844018b2de3e4cd9584350a223b1e1347efe9" + }, + "cell_type": "markdown", + "source": "We can now compute the **outer product** by multiplying the column vector $x$ with the row vector $y$:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "4744a491b80ce1e01ddc4590847c9660ea9ae14b" + }, + "cell_type": "code", + "source": "x = np.array([[1, 2, 3, 4]])\ny = np.array([[5, 6, 7, 8]])\nx.T * y", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7ee36e496adf686e1445faca7e5c9c1dee9abf35" + }, + "cell_type": "markdown", + "source": "*Numpy* provides an *outer* function that does all that:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "47ce570eb9aa9a1173a2f30de728aba2aec3976c" + }, + "cell_type": "code", + "source": "np.outer(x, y)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b3eed151fe4f34604d1691e36a41d82b36d3fead" + }, + "cell_type": "markdown", + "source": "Note, in this simple case using the simple arrays for the data structures of the vectors does not affect the result of the *outer* function:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "e52b29787ddf67293d7dbe6f0887cfc23fc4f11f" + }, + "cell_type": "code", + "source": "x = np.array([1, 2, 3, 4])\ny = np.array([5, 6, 7, 8])\nnp.outer(x, y)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0497e5d541a3c1ba344863a6730ea7521e65d50c" + }, + "cell_type": "markdown", + "source": "
\n## 3-3 Matrix-Vector Products" + }, + { + "metadata": { + "_uuid": "04b13cebdd26ed43bc8a0cceb68a7108d70a136a" + }, + "cell_type": "markdown", + "source": "Assume a matrix $A \\in \\mathbb{R}^{m\\times n}$ and a vector $x \\in \\mathbb{R}^n$ the product results in a vector $y = Ax \\in \\mathbb{R}^m$." + }, + { + "metadata": { + "_uuid": "5fd17293bb4d5d64da6b241166804fc7e04fe01f" + }, + "cell_type": "markdown", + "source": "$Ax$ could be expressed as the dot product of row $i$ of matrix $A$ with the column value $j$ of vector $x$. Let us first consider matrix multiplication with a scalar:" + }, + { + "metadata": { + "_uuid": "16e79a2bad504080985d9934e8ca7715ca808ecf" + }, + "cell_type": "markdown", + "source": "$A = \\begin{bmatrix}\n 1 & 2 \\\\[0.3em]\n 3 & 4\n \\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "d5ce445bbdd95aa2f30b88d50d40694c7138cd16" + }, + "cell_type": "markdown", + "source": "We can compute the product of $A$ with a scalar $n = 2$ as:" + }, + { + "metadata": { + "_uuid": "d4e35d8ca8587610ee6af9b9dbe5ffcb39b088e6" + }, + "cell_type": "markdown", + "source": "$A = \\begin{bmatrix}\n 1 * n & 2 * n \\\\[0.3em]\n 3 * n & 4 * n\n \\end{bmatrix} = \\begin{bmatrix}\n 1 * 2 & 2 * 2 \\\\[0.3em]\n 3 * 2 & 4 * 2\n \\end{bmatrix} = \\begin{bmatrix}\n 2 & 4 \\\\[0.3em]\n 6 & 8\n \\end{bmatrix} $" + }, + { + "metadata": { + "_uuid": "cdf6b9087f0d650fc81e307e20ea19c80e65ca81" + }, + "cell_type": "markdown", + "source": "Using *numpy* this can be achieved by:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "dab712cc9bfed1169b78e17b899fb51ab054323a" + }, + "cell_type": "code", + "source": "import numpy as np\nA = np.array([[4, 5, 6],\n [7, 8, 9]])\nA * 2", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7c0f41deb55a4d276a163064a096a7265dfb6b70" + }, + "cell_type": "markdown", + "source": "Assume that we have a column vector $x$:" + }, + { + "metadata": { + "_uuid": "9b1ae2e8676afb189d397c7eda3ac2ff6ac7d68c" + }, + "cell_type": "markdown", + "source": "$x = \\begin{bmatrix}\n 1 \\\\[0.3em]\n 2 \\\\[0.3em]\n 3 \n \\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "cc7395a031bfe1a5ef2c81742ce53402a4f4a760" + }, + "cell_type": "markdown", + "source": "To be able to multiply this vector with a matrix, the number of columns in the matrix must correspond to the number of rows in the column vector. The matrix $A$ must have $3$ columns, as for example: " + }, + { + "metadata": { + "_uuid": "3a64bb5508b56c69089f3f3a0ad660b7d3afcc6d" + }, + "cell_type": "markdown", + "source": "$A = \\begin{bmatrix}\n 4 & 5 & 6\\\\[0.3em]\n 7 & 8 & 9\n \\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "263ba698745983ffaf1d3e8d70913655d706b7b5" + }, + "cell_type": "markdown", + "source": "To compute $Ax$, we multiply row $1$ of the matrix with column $1$ of $x$:" + }, + { + "metadata": { + "_uuid": "c2a029c124746ef05f143057fd2504aacbd0f420" + }, + "cell_type": "markdown", + "source": "$\\begin{bmatrix}\n 4 & 5 & 6\n \\end{bmatrix}\n \\begin{bmatrix}\n 1 \\\\[0.3em]\n 2 \\\\[0.3em]\n 3 \n\\end{bmatrix} = 4 * 1 + 5 * 2 + 6 * 3 = 32 $" + }, + { + "metadata": { + "_uuid": "a58cee7c07b4c95146d47bb4760cbad517f80d73" + }, + "cell_type": "markdown", + "source": "We do the compute the dot product of row $2$ of $A$ and column $1$ of $x$:" + }, + { + "metadata": { + "_uuid": "2b48c07ca48080c579e827df7b7b7851648d1c4e" + }, + "cell_type": "markdown", + "source": "$\\begin{bmatrix}\n 7 & 8 & 9\n \\end{bmatrix}\n \\begin{bmatrix}\n 1 \\\\[0.3em]\n 2 \\\\[0.3em]\n 3 \n\\end{bmatrix} = 7 * 1 + 8 * 2 + 9 * 3 = 50 $" + }, + { + "metadata": { + "_uuid": "9212e603fc8e945f1fd1d2a1155aeaad802c5008" + }, + "cell_type": "markdown", + "source": "The resulting column vector $Ax$ is:" + }, + { + "metadata": { + "_uuid": "91f948005340d308fa68953ce38f38e751d8711d" + }, + "cell_type": "markdown", + "source": "$Ax = \\begin{bmatrix}\n 32 \\\\[0.3em]\n 50 \n \\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "2be29c242244536effade27bc0f8bbd03eddd537" + }, + "cell_type": "markdown", + "source": "Using *numpy* we can compute $Ax$:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "00f0a534b7dae7a24ee27a74553e1f785f3714ef" + }, + "cell_type": "code", + "source": "A = np.array([[4, 5, 6],\n [7, 8, 9]])\nx = np.array([1, 2, 3])\nA.dot(x)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2f6c7e7c90592f5d4d529798199ec7507a2752c3" + }, + "cell_type": "markdown", + "source": "We can thus describe the product writing $A$ by rows as:" + }, + { + "metadata": { + "_uuid": "bf34bef734155d6027fdcf8f16ae735a25ccaeef" + }, + "cell_type": "markdown", + "source": "$y = Ax = \\begin{bmatrix}\n -- & a_1^T & -- \\\\[0.3em]\n -- & a_2^T & -- \\\\[0.3em]\n & \\vdots & \\\\[0.3em]\n -- & a_m^T & -- \n\\end{bmatrix} x = \\begin{bmatrix}\n a_1^T x \\\\[0.3em]\n a_2^T x \\\\[0.3em]\n \\vdots \\\\[0.3em]\n a_m^T x \n\\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "5662d8ac1faca01adf26451e5d07bf18dff21290" + }, + "cell_type": "markdown", + "source": "This means that the $i$th scalar of $y$ is the inner product of the $i$th row of $A$ and $x$, that is $y_i = a_i^T x$." + }, + { + "metadata": { + "_uuid": "3c2f566e74d022fcb5b8cebf8405d8f5029dd9e6" + }, + "cell_type": "markdown", + "source": "If we write $A$ in column form, then:" + }, + { + "metadata": { + "_uuid": "9140e355e1330614dc78af903d25155af62a3c87" + }, + "cell_type": "markdown", + "source": "$y = Ax =\n\\begin{bmatrix}\n \\big| & \\big| & & \\big| \\\\[0.3em]\n a_1 & a_2 & \\cdots & a_n \\\\[0.3em]\n \\big| & \\big| & & \\big| \n\\end{bmatrix}\n\\begin{bmatrix}\n x_1 \\\\[0.3em]\n x_2 \\\\[0.3em]\n \\vdots \\\\[0.3em]\n x_n\n\\end{bmatrix} =\n\\begin{bmatrix}\n a_1\n\\end{bmatrix} x_1 + \n\\begin{bmatrix}\n a_2\n\\end{bmatrix} x_2 + \\dots +\n\\begin{bmatrix}\n a_n\n\\end{bmatrix} x_n\n$" + }, + { + "metadata": { + "_uuid": "6ff2956fe3dda8845ca163ddfcbf41197f00934c" + }, + "cell_type": "markdown", + "source": "In this case $y$ is a **[linear combination](https://en.wikipedia.org/wiki/Linear_combination)** of the *columns* of $A$, the coefficients taken from $x$." + }, + { + "metadata": { + "_uuid": "d771db142d2ea47073067f2edcae75351c2af9d4" + }, + "cell_type": "markdown", + "source": "The above examples multiply be the right with a column vector. One can multiply on the left by a row vector as well, $y^T = x^T A$ for $A \\in \\mathbb{R}^{m\\times n}$, $x\\in \\mathbb{R}^m$, $y \\in \\mathbb{R}^n$. There are two ways to express $y^T$, with $A$ expressed by its columns, with $i$th scalar of $y^T$ corresponds to the inner product of $x$ and the $i$th column of $A$:" + }, + { + "metadata": { + "_uuid": "084b84e5eda9db135fdec2e8118510b875bb84f9" + }, + "cell_type": "markdown", + "source": "$y^T = x^T A = x^t \\begin{bmatrix}\n \\big| & \\big| & & \\big| \\\\[0.3em]\n a_1 & a_2 & \\cdots & a_n \\\\[0.3em]\n \\big| & \\big| & & \\big| \n\\end{bmatrix} = \n\\begin{bmatrix}\n x^T a_1 & x^T a_2 & \\dots & x^T a_n \n\\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "7b07dc51ff2dc60fc85e6512ac9ac8171e4c15df" + }, + "cell_type": "markdown", + "source": "One can express $A$ by rows, where $y^T$ is a linear combination of the rows of $A$ with the scalars from $x$." + }, + { + "metadata": { + "_uuid": "00fef9e0d2286fd9e415e86c3117b14461f9dc95" + }, + "cell_type": "markdown", + "source": "$\\begin{equation}\n\\begin{split}\ny^T & = x^T A \\\\\n & = \\begin{bmatrix}\n x_1 & x_2 & \\dots & x_n \n\\end{bmatrix}\n\\begin{bmatrix}\n -- & a_1^T & -- \\\\[0.3em]\n -- & a_2^T & -- \\\\[0.3em]\n & \\vdots & \\\\[0.3em]\n -- & a_m^T & -- \n\\end{bmatrix} \\\\\n & = x_1 \\begin{bmatrix}-- & a_1^T & --\\end{bmatrix} + x_2 \\begin{bmatrix}-- & a_2^T & --\\end{bmatrix} + \\dots + x_n \\begin{bmatrix}-- & a_n^T & --\\end{bmatrix}\n\\end{split}\n\\end{equation}$" + }, + { + "metadata": { + "_uuid": "baee0e90e0271a893fa7344c7fbecb17849e24cb" + }, + "cell_type": "markdown", + "source": "
\n## 3-4Matrix-Matrix Products\n" + }, + { + "metadata": { + "_uuid": "b9d6edf802b8d25e416d6bcbc05a89f232761f0c" + }, + "cell_type": "markdown", + "source": "One can view matrix-matrix multiplication $C = AB$ as a set of vector-vector products. The $(i,j)$th entry of $C$ is the inner product of the $i$th row of $A$ and the $j$th column of $B$:" + }, + { + "metadata": { + "_uuid": "4d23d2540ce269b381ed3a574afe757dd9ce0890" + }, + "cell_type": "markdown", + "source": "$C = AB =\n\\begin{bmatrix}\n -- & a_1^T & -- \\\\[0.3em]\n -- & a_2^T & -- \\\\[0.3em]\n & \\vdots & \\\\[0.3em]\n -- & a_m^T & -- \n\\end{bmatrix}\n\\begin{bmatrix}\n \\big| & \\big| & & \\big| \\\\[0.3em]\n b_1 & b_2 & \\cdots & b_p \\\\[0.3em]\n \\big| & \\big| & & \\big| \n\\end{bmatrix} = \n\\begin{bmatrix}\n a_1^T b_1 & a_1^T b_2 & \\cdots & a_1^T b_p \\\\[0.3em]\n a_2^T b_1 & a_2^T b_2 & \\cdots & a_2^T b_p \\\\[0.3em]\n \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n a_m^T b_1 & a_m^T b_2 & \\cdots & a_m^T b_p \n\\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "92fccf9287e2092fb03bcee8f14cdc4b943493ef" + }, + "cell_type": "markdown", + "source": "Here $A \\in \\mathbb{R}^{m\\times n}$ and $B \\in \\mathbb{R}^{n\\times p}$, $a_i \\in \\mathbb{R}^n$ and $b_j \\in \\mathbb{R}^n$, and $A$ is represented by rows, $B$ by columns." + }, + { + "metadata": { + "_uuid": "9777cf6f6fda796af639d33530c834098dc86d8e" + }, + "cell_type": "markdown", + "source": "If we represent $A$ by columns and $B$ by rows, then $AB$ is the sum of the outer products:" + }, + { + "metadata": { + "_uuid": "6de77426379cc3e29abbe9323f14e95cf97286f1" + }, + "cell_type": "markdown", + "source": "$C = AB =\n\\begin{bmatrix}\n \\big| & \\big| & & \\big| \\\\[0.3em]\n a_1 & a_2 & \\cdots & a_n \\\\[0.3em]\n \\big| & \\big| & & \\big| \n\\end{bmatrix}\n\\begin{bmatrix}\n -- & b_1^T & -- \\\\[0.3em]\n -- & b_2^T & -- \\\\[0.3em]\n & \\vdots & \\\\[0.3em]\n -- & b_n^T & -- \n\\end{bmatrix}\n= \\sum_{i=1}^n a_i b_i^T\n$" + }, + { + "metadata": { + "_uuid": "44d6c5cb2e94ba42ba07a2c7318066cff447bd13" + }, + "cell_type": "markdown", + "source": "This means that $AB$ is the sum over all $i$ of the outer product of the $i$th column of $A$ and the $i$th row of $B$." + }, + { + "metadata": { + "_uuid": "bf95358be113e90861b32ddc10eb4d167970ea7c" + }, + "cell_type": "markdown", + "source": "One can interpret matrix-matrix operations also as a set of matrix-vector products. Representing $B$ by columns, the columns of $C$ are matrix-vector products between $A$ and the columns of $B$:" + }, + { + "metadata": { + "_uuid": "e4af158d553d4af80b571cb7792d3742d9a3933e" + }, + "cell_type": "markdown", + "source": "$C = AB = A\n\\begin{bmatrix}\n \\big| & \\big| & & \\big| \\\\[0.3em]\n b_1 & b_2 & \\cdots & b_p \\\\[0.3em]\n \\big| & \\big| & & \\big| \n\\end{bmatrix} = \n\\begin{bmatrix}\n \\big| & \\big| & & \\big| \\\\[0.3em]\n A b_1 & A b_2 & \\cdots & A b_p \\\\[0.3em]\n \\big| & \\big| & & \\big| \n\\end{bmatrix}\n$" + }, + { + "metadata": { + "_uuid": "db64a70c69c7498c0addd32920b1997ae346648f" + }, + "cell_type": "markdown", + "source": "In this interpretation the $i$th column of $C$ is the matrix-vector product with the vector on the right, i.e. $c_i = A b_i$." + }, + { + "metadata": { + "_uuid": "fa9aed70fa2cf022252d49b0e6cf61c2a3271938" + }, + "cell_type": "markdown", + "source": "Representing $A$ by rows, the rows of $C$ are the matrix-vector products between the rows of $A$ and $B$:" + }, + { + "metadata": { + "_uuid": "c031d45c3a799bfb462b54ee981cced64aeb6b46" + }, + "cell_type": "markdown", + "source": "$C = AB = \\begin{bmatrix}\n -- & a_1^T & -- \\\\[0.3em]\n -- & a_2^T & -- \\\\[0.3em]\n & \\vdots & \\\\[0.3em]\n -- & a_m^T & -- \n\\end{bmatrix}\nB = \n\\begin{bmatrix}\n -- & a_1^T B & -- \\\\[0.3em]\n -- & a_2^T B & -- \\\\[0.3em]\n & \\vdots & \\\\[0.3em]\n -- & a_n^T B & -- \n\\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "db7e6699c9753b8bc35ddb205e39b6c0cfeaa7ba" + }, + "cell_type": "markdown", + "source": "The $i$th row of $C$ is the matrix-vector product with the vector on the left, i.e. $c_i^T = a_i^T B$." + }, + { + "metadata": { + "_uuid": "acb4c283712f1039fe818e9c76b2d06655df25ae" + }, + "cell_type": "markdown", + "source": "#### Notes on Matrix-Matrix Products" + }, + { + "metadata": { + "_uuid": "10b2cf32e0874d9d9ca346cf6e88051a74e670a0" + }, + "cell_type": "markdown", + "source": "**Matrix multiplication is associative:** $(AB)C = A(BC)$" + }, + { + "metadata": { + "_uuid": "336cb93754fabc5e3e870339560db9c13b7b5499" + }, + "cell_type": "markdown", + "source": "**Matrix multiplication is distributive:** $A(B + C) = AB + AC$" + }, + { + "metadata": { + "_uuid": "0f5a92225097ef125566df78d95c73699287388b" + }, + "cell_type": "markdown", + "source": "**Matrix multiplication is, in general, not commutative;** It can be the case that $AB \\neq BA$. (For example, if $A \\in \\mathbb{R}^{m\\times n}$ and $B \\in \\mathbb{R}^{n\\times q}$, the matrix product $BA$ does not even exist if $m$ and $q$ are not equal!)" + }, + { + "metadata": { + "_uuid": "42bf81d28ea53bf258944612b436bf9a3a6b1292" + }, + "cell_type": "markdown", + "source": "
\n## 4- Identity Matrix" + }, + { + "metadata": { + "_uuid": "2cb80bc7e181a316499f1c420d6504714a887c98" + }, + "cell_type": "markdown", + "source": "The **identity matrix** $I \\in \\mathbb{R}^{n\\times n}$ is a square matrix with the value $1$ on the diagonal and $0$ everywhere else:" + }, + { + "metadata": { + "_uuid": "fa7f57a6322de8459dfa3f46472a1f61acdcf31b" + }, + "cell_type": "markdown", + "source": "$I_{ij} = \\left\\{\n\\begin{array}{lr}\n 1 & i = j\\\\\n 0 & i \\neq j\n\\end{array}\n\\right.\n$" + }, + { + "metadata": { + "_uuid": "57cbbb9997318e430819b5e4d3accd0fd1f0a8d4" + }, + "cell_type": "markdown", + "source": "For all $A \\in \\mathbb{R}^{m\\times n}$:" + }, + { + "metadata": { + "_uuid": "556f89cba86ab17d19c89bce923fd09eea629b83" + }, + "cell_type": "markdown", + "source": "$AI = A = IA$" + }, + { + "metadata": { + "_uuid": "91306a27b6500debe6277cedd75558823466907c" + }, + "cell_type": "markdown", + "source": "In the equation above multiplication has to be made possible, which means that in the portion $AI = A$ the dimensions of $I$ have to be $n\\times n$, while in $A = IA$ they have to be $m\\times m$." + }, + { + "metadata": { + "_uuid": "be61bed3414ed2dccb551abbffb0a58ba270d38d" + }, + "cell_type": "markdown", + "source": "We can generate an *identity matrix* in *numpy* using:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "29068a6e863dff19854170ea9ef701385d4ebda7" + }, + "cell_type": "code", + "source": "import numpy as np\nA = np.array([[0, 1, 2],\n [3, 4, 5],\n [6, 7, 8],\n [9, 10, 11]])\nprint(\"A:\", A)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "caf0c2e4e4a417c3751daed3f3bf5e151562ab52" + }, + "cell_type": "markdown", + "source": "We can ask for the shape of $A$:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "41d1470cef878a6ea9d6db819ca44bf5ebc7232e" + }, + "cell_type": "code", + "source": "A.shape", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ffdd27ea7c4abf464d6ea49efbd921e68622a12f" + }, + "cell_type": "markdown", + "source": "The *shape* property of a matrix contains the $m$ (number of rows) and $n$ (number of columns) properties in a tuple, in that particular order. We can create an identity matrix for the use in $AI$ by using the $n$ value: " + }, + { + "metadata": { + "trusted": true, + "_uuid": "70d0df8d58e0a9209bcaa5753c51d3e8d905ce40" + }, + "cell_type": "code", + "source": "np.identity(A.shape[1], dtype=\"int\")", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8598fcdf9d480b28ccbfb9bde7c42297842bb590" + }, + "cell_type": "markdown", + "source": "Note that we specify the *dtype* parameter to *identity* as *int*, since the default would return a matrix of *float* values." + }, + { + "metadata": { + "_uuid": "6529004c2c919ec745dfe52f007ec4e90e39032c" + }, + "cell_type": "markdown", + "source": "To generate an identity matrix for the use in $IA$ we would use the $m$ value:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "6ac179dd27c16233d91df6ef504de64e5fadb7c8" + }, + "cell_type": "code", + "source": "np.identity(A.shape[0], dtype=\"int\")", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "bab65d4322a7f2f3f6ae4b596d67ce3643647e42" + }, + "cell_type": "markdown", + "source": "We can compute the dot product of $A$ and its identity matrix $I$:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "bc705223af8b1d89e6c5ac665da1993145b61bb7" + }, + "cell_type": "code", + "source": "n = A.shape[1]\nI = np.array(np.identity(n, dtype=\"int\"))\nnp.dot(A, I)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "279c5e7af710a1ce530f2debc04c23001041745e" + }, + "cell_type": "markdown", + "source": "The same is true for the other direction:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "7818e9032440e9dddcdea3839fc8ba2cbac81d90" + }, + "cell_type": "code", + "source": "m = A.shape[0]\nI = np.array(np.identity(m, dtype=\"int\"))\nnp.dot(I, A)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "93c10865c2374f850dd040b8d545c226002dbb75" + }, + "cell_type": "markdown", + "source": "
\n## 5- Diagonal Matrix" + }, + { + "metadata": { + "_uuid": "ef72260c42e7c6e409b52f5b3c845e3c4a7fbe7d" + }, + "cell_type": "markdown", + "source": "In the **diagonal matrix** non-diagonal elements are $0$, that is $D = diag(d_1, d_2, \\dots{}, d_n)$, with:" + }, + { + "metadata": { + "_uuid": "b63515e277c941f4a6970d3a692a40cc23433d20" + }, + "cell_type": "markdown", + "source": "$D_{ij} = \\left\\{\n\\begin{array}{lr}\n d_i & i = j\\\\\n 0 & i \\neq j\n\\end{array}\n\\right.\n$" + }, + { + "metadata": { + "_uuid": "2a70473875d2876ab2ced96694e02da219bc6f8f" + }, + "cell_type": "markdown", + "source": "The identity matrix is a special case of a diagonal matrix: $I = diag(1, 1, \\dots{}, 1)$." + }, + { + "metadata": { + "_uuid": "10c74f8237e9f95bcc0e47cf5b2c0beba8b39b01" + }, + "cell_type": "markdown", + "source": "In *numpy* we can create a *diagonal matrix* from any given matrix using the *diag* function:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "51b5323cf73f7e328f3c8c024fd634e33329235b" + }, + "cell_type": "code", + "source": "import numpy as np\nA = np.array([[0, 1, 2, 3],\n [4, 5, 6, 7],\n [8, 9, 10, 11],\n [12, 13, 14, 15]])\nnp.diag(A)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0a1c89b112c3a23a7fe57eb358979e01776e55e5" + }, + "cell_type": "markdown", + "source": "An optional parameter *k* to the *diag* function allows us to extract the diagonal above the main diagonal with a positive *k*, and below the main diagonal with a negative *k*:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "213118a89acd75f4ca025d46b319037cd1bcbbf8" + }, + "cell_type": "code", + "source": "np.diag(A, k=1)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "70526663a463f5cdb1214fcf5ea2f7f3fb9ce166" + }, + "cell_type": "code", + "source": "np.diag(A, k=-1)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "87d1e66c2fdd87db8a4b6e7b2dfee28d66dfd3fa" + }, + "cell_type": "markdown", + "source": "
\n## 6- Transpose of a Matrix" + }, + { + "metadata": { + "_uuid": "c56e983d9d25ddb75355b21700f1bb8a117a3bf2" + }, + "cell_type": "markdown", + "source": "**Transposing** a matrix is achieved by *flipping* the rows and columns. For a matrix $A \\in \\mathbb{R}^{m\\times n}$ the transpose $A^T \\in \\mathbb{R}^{n\\times m}$ is the $n\\times m$ matrix given by:" + }, + { + "metadata": { + "_uuid": "4076483db1f8a050c8a4389e464daf3320b27353" + }, + "cell_type": "markdown", + "source": "$(A^T)_{ij} = A_{ji}$" + }, + { + "metadata": { + "_uuid": "8e052bc93821a8f2c38fd71079c0eb1cc4529d70" + }, + "cell_type": "markdown", + "source": "Properties of transposes:" + }, + { + "metadata": { + "_uuid": "cacdebb118384b89516d2531497c2c9a3ff062cd" + }, + "cell_type": "markdown", + "source": "- $(A^T)^T = A$\n- $(AB)^T = B^T A^T$\n- $(A+B)^T = A^T + B^T$" + }, + { + "metadata": { + "_uuid": "2862a79e4c2abaede94a473a74f5eee9c07be65d" + }, + "cell_type": "markdown", + "source": "
\n## 7- Symmetric Metrices" + }, + { + "metadata": { + "_uuid": "9ffb7cb76c38a6ea0544d7f6fc392aaf27e53db0" + }, + "cell_type": "markdown", + "source": "Square metrices $A \\in \\mathbb{R}^{n\\times n}$ are **symmetric**, if $A = A^T$." + }, + { + "metadata": { + "_uuid": "d9bd494a412e0aba403cd7704e750c571da15550" + }, + "cell_type": "markdown", + "source": "$A$ is **anti-symmetric**, if $A = -A^T$." + }, + { + "metadata": { + "_uuid": "84a715bb732f79ebab0ef8fbb0e1a9e3b1571bbb" + }, + "cell_type": "markdown", + "source": "For any matrix $A \\in \\mathbb{R}^{n\\times n}$, the matrix $A + A^T$ is **symmetric**." + }, + { + "metadata": { + "_uuid": "84f8f94866478a6d3488ac7c3e10bde4050282ec" + }, + "cell_type": "markdown", + "source": "For any matrix $A \\in \\mathbb{R}^{n\\times n}$, the matrix $A - A^T$ is **anti-symmetric**." + }, + { + "metadata": { + "_uuid": "63e98eda5728b4f2e92903de5ac143a63bff1988" + }, + "cell_type": "markdown", + "source": "Thus, any square matrix $A \\in \\mathbb{R}^{n\\times n}$ can be represented as a sum of a symmetric matrix and an anti-symmetric matrix:" + }, + { + "metadata": { + "_uuid": "0b576a9e0c31f5d6abfd7acd8e6bffe9a5b8fa46" + }, + "cell_type": "markdown", + "source": "$A = \\frac{1}{2} (A + A^T) + \\frac{1}{2} (A - A^T)$" + }, + { + "metadata": { + "_uuid": "a30d35c4e2f7dc510ab9bfdad0f95ddb331b0867" + }, + "cell_type": "markdown", + "source": "The first matrix on the right, i.e. $\\frac{1}{2} (A + A^T)$ is symmetric. The second matrix $\\frac{1}{2} (A - A^T)$ is anti-symmetric." + }, + { + "metadata": { + "_uuid": "ece2bb90cbe7266a0868c7aef3ebc69a2d4a87c6" + }, + "cell_type": "markdown", + "source": "$\\mathbb{S}^n$ is the set of all symmetric matrices of size $n$." + }, + { + "metadata": { + "_uuid": "65a01f8617d8963563fafe08a2eb7d727b747de1" + }, + "cell_type": "markdown", + "source": "$A \\in \\mathbb{S}^n$ means that $A$ is symmetric and of the size $n\\times n$." + }, + { + "metadata": { + "_uuid": "428183208acf9df58cd241a7cd0ede7e17baf3d1" + }, + "cell_type": "markdown", + "source": "
\n## 8-The Trace" + }, + { + "metadata": { + "_uuid": "65c8dc82a48027fe563390588cd7afded770124c" + }, + "cell_type": "markdown", + "source": "The **trace** of a square matrix $A \\in \\mathbb{R}^{n\\times n}$ is $tr(A)$ (or $trA$) is the sum of the diagonal elements in the matrix:" + }, + { + "metadata": { + "_uuid": "54a2ebb1d5b8770df521a93140944bade3e59f58" + }, + "cell_type": "markdown", + "source": "$trA = \\sum_{i=1}^n A_{ii}$" + }, + { + "metadata": { + "_uuid": "5fa504cae78b2e61af20508a743c59b73de808a4" + }, + "cell_type": "markdown", + "source": "Properties of the **trace**:" + }, + { + "metadata": { + "_uuid": "714ef0b38ed9ed3d965403e1a723e14755ae3578" + }, + "cell_type": "markdown", + "source": "- For $A \\in \\mathbb{R}^{n\\times n}$, $\\mathrm{tr}A = \\mathrm{tr}A^T$\n- For $A,B \\in \\mathbb{R}^{n\\times n}$, $\\mathrm{tr}(A + B) = \\mathrm{tr}A + \\mathrm{tr}B$\n- For $A \\in \\mathbb{R}^{n\\times n}$, $t \\in \\mathbb{R}$, $\\mathrm{tr}(tA) = t \\mathrm{tr}A$\n- For $A,B$ such that $AB$ is square, $\\mathrm{tr}AB = \\mathrm{tr}BA$\n- For $A,B,C$ such that $ABC$ is square, $\\mathrm{tr}ABC = \\mathrm{tr}BCA = \\mathrm{tr}CAB$, and so on for the product of more matrices." + }, + { + "metadata": { + "_uuid": "17f061ccf8620270700b566eea8e41b70f215960" + }, + "cell_type": "markdown", + "source": "See for proofs the paper!" + }, + { + "metadata": { + "_uuid": "0b5536a2d51d252ff8ed7c972f407c1669fac6ab" + }, + "cell_type": "markdown", + "source": "
\n# 9- Norms" + }, + { + "metadata": { + "_uuid": "10c44bf3423731f3e86e0991445262aa370f84f9" + }, + "cell_type": "markdown", + "source": "The **norm** of a vector $x$ is $\\| x\\|$, informally the length of a vector." + }, + { + "metadata": { + "_uuid": "24a7de6bf2eca7bb43c39bb7c29b1e95a55be60d" + }, + "cell_type": "markdown", + "source": "Example: the Euclidean or $\\mathscr{l}_2$ norm:" + }, + { + "metadata": { + "_uuid": "5769f3e4578c931424802b0477d461186d38d7c9" + }, + "cell_type": "markdown", + "source": "$\\|x\\|_2 = \\sqrt{\\sum_{i=1}^n{x_i^2}}$" + }, + { + "metadata": { + "_uuid": "3a22383b644d3ecb03b2e1612e4a81e42d801198" + }, + "cell_type": "markdown", + "source": "Note: $\\|x\\|_2^2 = x^T x$" + }, + { + "metadata": { + "_uuid": "31936574afd9f877b78437741644f02360712dbf" + }, + "cell_type": "markdown", + "source": "A **norm** is any function $f : \\mathbb{R}^n \\rightarrow \\mathbb{R}$ that satisfies the following properties:" + }, + { + "metadata": { + "_uuid": "92ee01878823a54687233df4f81ad557c4b8d0f5" + }, + "cell_type": "markdown", + "source": "- For all $x \\in \\mathbb{R}^n$, $f(x) \\geq 0$ (non-negativity)\n- $f(x) = 0$ if and only if $x = 0$ (definiteness)\n- For all $x \\in \\mathbb{R}^n$, $t \\in \\mathbb{R}$, $f(tx) = |t|\\ f(x)$ (homogeneity)\n- For all $x, y \\in \\mathbb{R}^n$, $f(x + y) \\leq f(x) + f(y)$ (triangle inequality)" + }, + { + "metadata": { + "_uuid": "9d7f1f14c48ede7d070853d10d87f953c2e96363" + }, + "cell_type": "markdown", + "source": "Norm $\\mathscr{l}_1$:" + }, + { + "metadata": { + "_uuid": "d344bdc1023e51db2d40c70fc3517482ba8498c3" + }, + "cell_type": "markdown", + "source": "$\\|x\\|_1 = \\sum_{i=1}^n{|x_i|}$" + }, + { + "metadata": { + "_uuid": "9bc08aceaa2f48d9316db78613565ece9918b2f3" + }, + "cell_type": "markdown", + "source": "Norm $\\mathscr{l}_\\infty$:" + }, + { + "metadata": { + "_uuid": "d1e82ea1b1912a251d527632d449abea56f1b962" + }, + "cell_type": "markdown", + "source": "$\\|x\\|_\\infty = \\max_i|x_i|$" + }, + { + "metadata": { + "_uuid": "42a50728fde1ccf922e23060d93c16de2fcdee18" + }, + "cell_type": "markdown", + "source": "All these three norms are examples of the $\\mathscr{l}_p$ norms, with $p$ a real number parameter $p \\geq 1$:" + }, + { + "metadata": { + "_uuid": "6e7b6568a68806eb7a8e2ecaa462f6d562fa5f88" + }, + "cell_type": "markdown", + "source": "$\\|x\\|_p = \\left(\\sum_{i=1}^n{|x_i|^p}\\right)^{\\frac{1}{p}}$" + }, + { + "metadata": { + "_uuid": "5926237e98fe18916eb7458308db8ca58660e64c" + }, + "cell_type": "markdown", + "source": "*Frobenius norm* for matrices:" + }, + { + "metadata": { + "_uuid": "4e3ca17aaae665d04876be7db38dca12dc0443f3" + }, + "cell_type": "markdown", + "source": "$\\|A\\|_F = \\sqrt{\\sum_{i=1}^m\\sum_{i=1}^n A_{ij}^2} = \\sqrt{\\mathrm{tr}(A^T A)}$" + }, + { + "metadata": { + "_uuid": "b7f49b2eae1d711613d9c2376cbbc882432cf8cf" + }, + "cell_type": "markdown", + "source": "And many more." + }, + { + "metadata": { + "_uuid": "42d54d284146a24f5eeedffa8c53ed870359b08d" + }, + "cell_type": "markdown", + "source": "
\n# 10- Linear Independence and Rank" + }, + { + "metadata": { + "_uuid": "1b1e657d8254ffeb8d935ab3aa78d2818b6b2783" + }, + "cell_type": "markdown", + "source": "A set of vectors $\\{x_1, x_2, \\dots{}, x_n\\} \\subset \\mathbb{R}^m$ is said to be **(linearly) independent** if no vector can be represented as a linear combination of the remaining vectors." + }, + { + "metadata": { + "_uuid": "81303a8c87b6b3d06c670cb256a9cb8f5cd5d7d1" + }, + "cell_type": "markdown", + "source": "A set of vectors $\\{x_1, x_2, \\dots{}, x_n\\} \\subset \\mathbb{R}^m$ is said to be **(lineraly) dependent** if one vector from this set can be represented as a linear combination of the remaining vectors." + }, + { + "metadata": { + "_uuid": "b4c86e0d8f2a3e0577f826ef9c7c003d33fe8644" + }, + "cell_type": "markdown", + "source": "For some scalar values $\\alpha_1, \\dots{}, \\alpha_{n-1} \\in \\mathbb{R}$ the vectors $x_1, \\dots{}, x_n$ are linerly dependent, if:" + }, + { + "metadata": { + "_uuid": "2f069efddfa24291e1332122b0f90e1f1535c969" + }, + "cell_type": "markdown", + "source": "$\\begin{equation}\nx_n = \\sum_{i=1}^{n-1}{\\alpha_i x_i}\n\\end{equation}$" + }, + { + "metadata": { + "_uuid": "073368cbbc7baf69fed982710410ea8230cf7a39" + }, + "cell_type": "markdown", + "source": "Example: The following vectors are lineraly dependent, because $x_3 = -2 x_1 + x_2$" + }, + { + "metadata": { + "_uuid": "7b32ded623b0ec47af882f547c2b2747815ebea3" + }, + "cell_type": "markdown", + "source": "$x_1 = \\begin{bmatrix}\n 1 \\\\[0.3em]\n 2 \\\\[0.3em]\n 3 \n\\end{bmatrix}\n\\quad\nx_2 = \\begin{bmatrix}\n 4 \\\\[0.3em]\n 1 \\\\[0.3em]\n 5 \n\\end{bmatrix}\n\\quad\nx_3 = \\begin{bmatrix}\n 2 \\\\[0.3em]\n -1 \\\\[0.3em]\n -1 \n\\end{bmatrix}\n$" + }, + { + "metadata": { + "_uuid": "90c9bd9faf3ba0c6e8299f5c1e2495ab804a9105" + }, + "cell_type": "markdown", + "source": "
\n## 10-1 Column Rank of a Matrix" + }, + { + "metadata": { + "_uuid": "21660819816899f2b26e88d8d319bf0af58d3ef1" + }, + "cell_type": "markdown", + "source": "The **column rank** of a matrix $A \\in \\mathbb{R}^{m\\times n}$ is the size of the largest subset of columns of $A$ that constitute a linear independent set. Informaly this is the number of linearly independent columns of $A$." + }, + { + "metadata": { + "_uuid": "54eb416e6d3bf9e9aee63eb8b2dda5e935e65de9" + }, + "cell_type": "markdown", + "source": "
\n## 10-2 Row Rank of a Matrix" + }, + { + "metadata": { + "_uuid": "182d15eb4de63f174665159e1ba83fd181832a41" + }, + "cell_type": "markdown", + "source": "The **row rank** of a matrix $A \\in \\mathbb{R}^{m\\times n}$ is the largest number of rows of $A$ that constitute a lineraly independent set." + }, + { + "metadata": { + "_uuid": "134604c79595d4a945d8381fff3a999ba58b1f24" + }, + "cell_type": "markdown", + "source": "
\n## 10-3 Rank of a Matrix" + }, + { + "metadata": { + "_uuid": "6beff646fa29df47149aa8c55181a6a47ae6ee21" + }, + "cell_type": "markdown", + "source": "For any matrix $A \\in \\mathbb{R}^{m\\times n}$, the column rank of $A$ is equal to the row rank of $A$. Both quantities are referred to collectively as the rank of $A$, denoted as $rank(A)$. Here are some basic properties of the rank:" + }, + { + "metadata": { + "_uuid": "e3ecf29883a4d9026e917936f80e9667981e0bdb" + }, + "cell_type": "markdown", + "source": "- For $A \\in \\mathbb{R}^{m\\times n}$, $rank(A) \\leq \\min(m, n)$. If $rank(A) = \\min(m, n)$, then $A$ is said to be\n**full rank**.\n- For $A \\in \\mathbb{R}^{m\\times n}$, $rank(A) = rank(A^T)$\n- For $A \\in \\mathbb{R}^{m\\times n}$, $B \\in \\mathbb{R}^{n\\times p}$, $rank(AB) \\leq \\min(rank(A), rank(B))$\n- For $A,B \\in \\mathbb{R}^{m\\times n}$, $rank(A + B) \\leq rank(A) + rank(B)$" + }, + { + "metadata": { + "_uuid": "e3cf40ea16ea61ebd53a5b56d1ecccf3ebfeba50" + }, + "cell_type": "markdown", + "source": "
\n# 11- Subtraction and Addition of Metrices" + }, + { + "metadata": { + "_uuid": "a1849019d67f882bfafb7650be73b682b1a9927f" + }, + "cell_type": "markdown", + "source": "Assume $A \\in \\mathbb{R}^{m\\times n}$ and $B \\in \\mathbb{R}^{m\\times n}$, that is $A$ and $B$ are of the same size, to add $A$ to $B$, or to subtract $B$ from $A$, we add or subtract corresponding entries:" + }, + { + "metadata": { + "_uuid": "c85f1a6e4bfacef8def2a18b66bd2d23178ff9d6" + }, + "cell_type": "markdown", + "source": "$A + B =\n\\begin{bmatrix}\n a_{11} & a_{12} & \\cdots & a_{1n} \\\\[0.3em]\n a_{21} & a_{22} & \\cdots & a_{2n} \\\\[0.3em]\n \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n a_{m1} & a_{m2} & \\cdots & a_{mn}\n\\end{bmatrix} +\n\\begin{bmatrix}\n b_{11} & b_{12} & \\cdots & b_{1n} \\\\[0.3em]\n b_{21} & b_{22} & \\cdots & b_{2n} \\\\[0.3em]\n \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n b_{m1} & b_{m2} & \\cdots & b_{mn}\n\\end{bmatrix} =\n\\begin{bmatrix}\n a_{11} + b_{11} & a_{12} + b_{12} & \\cdots & a_{1n} + b_{1n} \\\\[0.3em]\n a_{21} + b_{21} & a_{22} + b_{22} & \\cdots & a_{2n} + b_{2n} \\\\[0.3em]\n \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n a_{m1} + b_{m1} & a_{m2} + b_{m2} & \\cdots & a_{mn} + b_{mn}\n\\end{bmatrix}\n$" + }, + { + "metadata": { + "_uuid": "ab774c9519a58113a305fb800ac761d7a2b8a7f2" + }, + "cell_type": "markdown", + "source": "The same is applies to subtraction:" + }, + { + "metadata": { + "_uuid": "fe301f7d29c3c1d88cb28ea80365146ce252b571" + }, + "cell_type": "markdown", + "source": "$A - B =\n\\begin{bmatrix}\n a_{11} & a_{12} & \\cdots & a_{1n} \\\\[0.3em]\n a_{21} & a_{22} & \\cdots & a_{2n} \\\\[0.3em]\n \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n a_{m1} & a_{m2} & \\cdots & a_{mn}\n\\end{bmatrix} -\n\\begin{bmatrix}\n b_{11} & b_{12} & \\cdots & b_{1n} \\\\[0.3em]\n b_{21} & b_{22} & \\cdots & b_{2n} \\\\[0.3em]\n \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n b_{m1} & b_{m2} & \\cdots & b_{mn}\n\\end{bmatrix} =\n\\begin{bmatrix}\n a_{11} - b_{11} & a_{12} - b_{12} & \\cdots & a_{1n} - b_{1n} \\\\[0.3em]\n a_{21} - b_{21} & a_{22} - b_{22} & \\cdots & a_{2n} - b_{2n} \\\\[0.3em]\n \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n a_{m1} - b_{m1} & a_{m2} - b_{m2} & \\cdots & a_{mn} - b_{mn}\n\\end{bmatrix}\n$" + }, + { + "metadata": { + "_uuid": "1203e8ce060702741dac72fa1ba8db01430d0e2a" + }, + "cell_type": "markdown", + "source": "In Python using *numpy* this can be achieved using the following code:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "fa3526c6b6308ae79ab322ff12e6e21e45761e8a" + }, + "cell_type": "code", + "source": "import numpy as np\nprint(\"np.arange(9):\", np.arange(9))\nprint(\"np.arange(9, 18):\", np.arange(9, 18))\nA = np.arange(9, 18).reshape((3, 3))\nB = np.arange(9).reshape((3, 3))\nprint(\"A:\", A)\nprint(\"B:\", B)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0653012e78bb393232bd317d056e46ed6a96df64" + }, + "cell_type": "markdown", + "source": "The *numpy* function *arange* is similar to the standard Python function *range*. It returns an array with $n$ elements, specified in the one parameter version only. If we provide to parameters to *arange*, it generates an array starting from the value of the first parameter and ending with a value one less than the second parameter. The function *reshape* returns us a matrix with the corresponding number of rows and columns." + }, + { + "metadata": { + "_uuid": "2c2f223e42500cdc89887cf0c9c3a5bb2fd2497c" + }, + "cell_type": "markdown", + "source": "We can now add and subtract the two matrices $A$ and $B$:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "3882778eea130a7cc3fd3e32d66177e6d5715223" + }, + "cell_type": "code", + "source": "A + B", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "00e586d7bdee0508f12ec92f4742994813ce0f79" + }, + "cell_type": "code", + "source": "A - B", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "94127d106aa8e05925e99e5f6c0a70f2c860af39" + }, + "cell_type": "markdown", + "source": "
\n## 11-1 Inverse" + }, + { + "metadata": { + "_uuid": "0f12955c3ddc3ddd076f4c64b30e50c952536bc9" + }, + "cell_type": "markdown", + "source": "The **inverse** of a square matrix $A \\in \\mathbb{R}^{n\\times n}$ is $A^{-1}$:" + }, + { + "metadata": { + "_uuid": "8dc73e363ae4a93812b6e17fe70ebc135d8ba6b4" + }, + "cell_type": "markdown", + "source": "$A^{-1} A = I = A A^{-1}$" + }, + { + "metadata": { + "_uuid": "18c16a6e9bb49a377274e69d40b514e956fd048f" + }, + "cell_type": "markdown", + "source": "Not all matrices have inverses. Non-square matrices do not have inverses by definition. For some square matrices $A$ the inverse might not exist." + }, + { + "metadata": { + "_uuid": "185dd34140399fd7da8b5e6fcc7eff1d95278cd5" + }, + "cell_type": "markdown", + "source": "$A$ is **invertible** or **non-singular** if $A^{-1}$ exists." + }, + { + "metadata": { + "_uuid": "a4d8f9676deb29e4782f0587649aaf517a03ac57" + }, + "cell_type": "markdown", + "source": "$A$ is **non-invertible** or **singular** if $A^{-1}$ does not exist." + }, + { + "metadata": { + "_uuid": "4c898f96bf3f31393cf4f99a6a36f0d9d1c2281f" + }, + "cell_type": "markdown", + "source": "Note: **non-singular** means the opposite of **non-invertible**!" + }, + { + "metadata": { + "_uuid": "6b73cfa800911706a244586d404f46151e779739" + }, + "cell_type": "markdown", + "source": "For $A$ to have an inverse $A^{-1}$, $A$ must be **full rank**." + }, + { + "metadata": { + "_uuid": "3ef6268b4924d7ea4fa8ba3d223b4088e935d7a1" + }, + "cell_type": "markdown", + "source": "Assuming that $A,B \\in \\mathbb{R}^{n\\times n}$ are non-singular, then:" + }, + { + "metadata": { + "_uuid": "156bdaac9c0ba13b5821690eab42cef6fecaa086" + }, + "cell_type": "markdown", + "source": "- $(A^{-1})^{-1} = A$\n- $(AB)^{-1} = B^{-1} A^{-1}$\n- $(A^{-1})^T = (A^T)^{-1}$ (often simply $A^{-T}$)" + }, + { + "metadata": { + "_uuid": "6d67e21b6e3c3131310b7208bac880550e61ad03" + }, + "cell_type": "markdown", + "source": "
\n## 12- Orthogonal Matrices" + }, + { + "metadata": { + "_uuid": "b6fe01ce3f3ab34bc1af7161a4cc26888bafbccc" + }, + "cell_type": "markdown", + "source": "Two vectors $x, y \\in \\mathbb{R}^n$ are **orthogonal** if $x^T y = 0$." + }, + { + "metadata": { + "_uuid": "0da38648b240fb48345c46ebbd929d5b52de2649" + }, + "cell_type": "markdown", + "source": "A vector $x \\in \\mathbb{R}^n$ is **normalized** if $\\|x\\|^2 = 1$." + }, + { + "metadata": { + "_uuid": "285dac0071b9f07b4cf6eb6801ba66438eba1973" + }, + "cell_type": "markdown", + "source": "A square matrix $U \\in \\mathbb{R}^{n\\times n}$ is **orthogonal** if all its columns are orthogonal to each other and are **normalized**. The columns are then referred to as being **orthonormal**." + }, + { + "metadata": { + "_uuid": "1f48fa9b729d801ea41c99e9fc7c3836f003feb1" + }, + "cell_type": "markdown", + "source": "It follows immediately from the definition of orthogonality and normality that:" + }, + { + "metadata": { + "_uuid": "d038680211e0a4c8f3973ca6c363989092bcbc28" + }, + "cell_type": "markdown", + "source": "$U^T U = I = U U^T$" + }, + { + "metadata": { + "_uuid": "6d5d88f90103f834392fdc3737b153e24bc7e89f" + }, + "cell_type": "markdown", + "source": "This means that the inverse of an orthogonal matrix is its transpose." + }, + { + "metadata": { + "_uuid": "c6b4807c8fea87560848b8a7304e7f272e14a6cc" + }, + "cell_type": "markdown", + "source": "If U is not square - i.e., $U \\in \\mathbb{R}^{m\\times n}$, $n < m$ - but its columns are still orthonormal, then $U^T U = I$, but $U U^T \\neq I$." + }, + { + "metadata": { + "_uuid": "72ab7604c3c4f7375a5404a92b13a3ecc948db83" + }, + "cell_type": "markdown", + "source": "We generally only use the term orthogonal to describe the case, where $U$ is square." + }, + { + "metadata": { + "_uuid": "abba1ff00658101fff6b4c9c1a227f66f4025d13" + }, + "cell_type": "markdown", + "source": "Another nice property of orthogonal matrices is that operating on a vector with an orthogonal matrix will not change its Euclidean norm. For any $x \\in \\mathbb{R}^n$, $U \\in \\mathbb{R}^{n\\times n}$ orthogonal." + }, + { + "metadata": { + "_uuid": "de6caa369cdbd23a1284111c157ff678cb1253b7" + }, + "cell_type": "markdown", + "source": "$\\|U_x\\|^2 = \\|x\\|^2$" + }, + { + "metadata": { + "_uuid": "84a7cc36920151c3166ad9036173a975077a816e" + }, + "cell_type": "markdown", + "source": "
\n## 13- Range and Nullspace of a Matrix" + }, + { + "metadata": { + "_uuid": "94a0da9d701ebbfd945f4f1d506685a84adf2bd1" + }, + "cell_type": "markdown", + "source": "The **span** of a set of vectors $\\{ x_1, x_2, \\dots{}, x_n\\}$ is the set of all vectors that can be expressed as\na linear combination of $\\{ x_1, \\dots{}, x_n \\}$:" + }, + { + "metadata": { + "_uuid": "383daf5739119f28efaeac95ffaadb43dd9ac053" + }, + "cell_type": "markdown", + "source": "$\\mathrm{span}(\\{ x_1, \\dots{}, x_n \\}) = \\{ v : v = \\sum_{i=1}^n \\alpha_i x_i, \\alpha_i \\in \\mathbb{R} \\}$" + }, + { + "metadata": { + "_uuid": "871ec420d48420bb427fb4de940bf0493161e0bf" + }, + "cell_type": "markdown", + "source": "It can be shown that if $\\{ x_1, \\dots{}, x_n \\}$ is a set of n linearly independent vectors, where each $x_i \\in \\mathbb{R}^n$, then $\\mathrm{span}(\\{ x_1, \\dots{}, x_n\\}) = \\mathbb{R}^n$. That is, any vector $v \\in \\mathbb{R}^n$ can be written as a linear combination of $x_1$ through $x_n$." + }, + { + "metadata": { + "_uuid": "90013aa1d12bb743454daa79b0ca39ec6de659bb" + }, + "cell_type": "markdown", + "source": "The projection of a vector $y \\in \\mathbb{R}^m$ onto the span of $\\{ x_1, \\dots{}, x_n\\}$ (here we assume $x_i \\in \\mathbb{R}^m$) is the vector $v \\in \\mathrm{span}(\\{ x_1, \\dots{}, x_n \\})$, such that $v$ is as close as possible to $y$, as measured by the Euclidean norm $\\|v − y\\|^2$. We denote the projection as $\\mathrm{Proj}(y; \\{ x_1, \\dots{}, x_n \\})$ and can define it formally as:" + }, + { + "metadata": { + "_uuid": "a5a99821ba988bb61e19cbea30d491010b018fa0" + }, + "cell_type": "markdown", + "source": "$\\mathrm{Proj}( y; \\{ x_1, \\dots{}, x_n \\}) = \\mathrm{argmin}_{v\\in \\mathrm{span}(\\{x_1,\\dots{},x_n\\})}\\|y − v\\|^2$" + }, + { + "metadata": { + "_uuid": "5a1f8588277edbd60ae162d5eb75d80477bb5536" + }, + "cell_type": "markdown", + "source": "The **range** (sometimes also called the columnspace) of a matrix $A \\in \\mathbb{R}^{m\\times n}$, denoted $\\mathcal{R}(A)$, is the the span of the columns of $A$. In other words," + }, + { + "metadata": { + "_uuid": "2eed745f252be323178ea38e2a36c679b32e5a20" + }, + "cell_type": "markdown", + "source": "$\\mathcal{R}(A) = \\{ v \\in \\mathbb{R}^m : v = A x, x \\in \\mathbb{R}^n\\}$" + }, + { + "metadata": { + "_uuid": "24c6299fe37bf5c6cc4a6bf032c69a54b1225711" + }, + "cell_type": "markdown", + "source": "Making a few technical assumptions (namely that $A$ is full rank and that $n < m$), the projection of a vector $y \\in \\mathbb{R}^m$ onto the range of $A$ is given by:" + }, + { + "metadata": { + "_uuid": "317752e8f0825aa0467524c54811cb6a91a6a589" + }, + "cell_type": "markdown", + "source": "$\\mathrm{Proj}(y; A) = \\mathrm{argmin}_{v\\in \\mathcal{R}(A)}\\|v − y\\|^2 = A(A^T A)^{−1} A^T y$" + }, + { + "metadata": { + "_uuid": "01cd617db6fe7e3ea6c26740ff2a740896c28d83" + }, + "cell_type": "markdown", + "source": "See for more details in the notes page 13." + }, + { + "metadata": { + "_uuid": "1be3dda0bfa967fabd0e5b79783f79880292264b" + }, + "cell_type": "markdown", + "source": "The **nullspace** of a matrix $A \\in \\mathbb{R}^{m\\times n}$, denoted $\\mathcal{N}(A)$ is the set of all vectors that equal $0$ when multiplied by $A$, i.e.," + }, + { + "metadata": { + "_uuid": "17e8400c92fc8bcfa2ae43b0b486daa39a99ac13" + }, + "cell_type": "markdown", + "source": "$\\mathcal{N}(A) = \\{ x \\in \\mathbb{R}^n : A x = 0 \\}$" + }, + { + "metadata": { + "_uuid": "bc996c4d7033175abf7327a96510d852956271e7" + }, + "cell_type": "markdown", + "source": "Note that vectors in $\\mathcal{R}(A)$ are of size $m$, while vectors in the $\\mathcal{N}(A)$ are of size $n$, so vectors in $\\mathcal{R}(A^T)$ and $\\mathcal{N}(A)$ are both in $\\mathbb{R}^n$. In fact, we can say much more. It turns out that:" + }, + { + "metadata": { + "_uuid": "b6d09d8a84f5d4f386ec4f66e02faa3fe4f8d430" + }, + "cell_type": "markdown", + "source": "$\\{ w : w = u + v, u \\in \\mathcal{R}(A^T), v \\in \\mathcal{N}(A) \\} = \\mathbb{R}^n$ and $\\mathcal{R}(A^T) \\cap \\mathcal{N}(A) = \\{0\\}$" + }, + { + "metadata": { + "_uuid": "d31bfe6323c97b5a80b7d8449599cc44f01b1ff2" + }, + "cell_type": "markdown", + "source": "In other words, $\\mathcal{R}(A^T)$ and $\\mathcal{N}(A)$ are disjoint subsets that together span the entire space of\n$\\mathbb{R}^n$. Sets of this type are called **orthogonal complements**, and we denote this $\\mathcal{R}(A^T) = \\mathcal{N}(A)^\\perp$." + }, + { + "metadata": { + "_uuid": "5168e46a20736d3815f9ac3590ab129b732bee12" + }, + "cell_type": "markdown", + "source": "
\n# 14- Determinant" + }, + { + "metadata": { + "_uuid": "ab428148ca965168e967ead22e9a5d75d0753395" + }, + "cell_type": "markdown", + "source": "The determinant of a square matrix $A \\in \\mathbb{R}^{n\\times n}$, is a function $\\mathrm{det} : \\mathbb{R}^{n\\times n} \\rightarrow \\mathbb{R}$, and is denoted $|A|$ or $\\mathrm{det}A$ (like the trace operator, we usually omit parentheses)." + }, + { + "metadata": { + "_uuid": "8d506220cb4188a91add70aef133f099546c5b52" + }, + "cell_type": "markdown", + "source": "
\n## 14-1 A geometric interpretation of the determinant" + }, + { + "metadata": { + "_uuid": "9f283379fba7f2500ed5c872aefa9bca9b8e96e4" + }, + "cell_type": "markdown", + "source": "Given" + }, + { + "metadata": { + "_uuid": "c7b9813ca4bc5a0def37c4023f4411736f3a56f6" + }, + "cell_type": "markdown", + "source": "$\\begin{bmatrix}\n -- & a_1^T & -- \\\\[0.3em]\n -- & a_2^T & -- \\\\[0.3em]\n & \\vdots & \\\\[0.3em]\n -- & a_n^T & -- \n\\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "eb5b19546fdb0385acecb393b738751993cc233e" + }, + "cell_type": "markdown", + "source": "consider the set of points $S \\subset \\mathbb{R}^n$ formed by taking all possible linear combinations of the row vectors $a_1, \\dots{}, a_n \\in \\mathbb{R}^n$ of $A$, where the coefficients of the linear combination are all\nbetween $0$ and $1$; that is, the set $S$ is the restriction of $\\mathrm{span}( \\{ a_1, \\dots{}, a_n \\})$ to only those linear combinations whose coefficients $\\alpha_1, \\dots{}, \\alpha_n$ satisfy $0 \\leq \\alpha_i \\leq 1$, $i = 1, \\dots{}, n$. Formally:" + }, + { + "metadata": { + "_uuid": "5472ba1f4030a4269cf126aa25e2380e0423df7e" + }, + "cell_type": "markdown", + "source": "$S = \\{v \\in \\mathbb{R}^n : v = \\sum_{i=1}^n \\alpha_i a_i \\mbox{ where } 0 \\leq \\alpha_i \\leq 1, i = 1, \\dots{}, n \\}$" + }, + { + "metadata": { + "_uuid": "c50a0db43e5b89a727bc197ae5ba8cbebb01d7f2" + }, + "cell_type": "markdown", + "source": "The absolute value of the determinant of $A$, it turns out, is a measure of the *volume* of the set $S$. The volume here is intuitively for example for $n = 2$ the area of $S$ in the Cartesian plane, or with $n = 3$ it is the common understanding of *volume* for 3-dimensional objects." + }, + { + "metadata": { + "_uuid": "c0f6744d8f272e3003d102375db1324a79e0fab2" + }, + "cell_type": "markdown", + "source": "Example:" + }, + { + "metadata": { + "_uuid": "a0a147d45a64ba1993de8ba8fe174926855bd107" + }, + "cell_type": "markdown", + "source": "$A = \\begin{bmatrix}\n 1 & 3\\\\[0.3em]\n 3 & 2 \n\\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "24a2eeb6ef0d65aceb11fcc075b1704dbc93adfe" + }, + "cell_type": "markdown", + "source": "The rows of the matrix are:" + }, + { + "metadata": { + "_uuid": "58f2dda1e93a143213f0c042ff45e50531dacb69" + }, + "cell_type": "markdown", + "source": "$a_1 = \\begin{bmatrix}\n 1 \\\\[0.3em]\n 3 \n\\end{bmatrix}\n\\quad\na_2 = \\begin{bmatrix}\n 3 \\\\[0.3em]\n 2 \n\\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "7a98353ba7d834e4e5eff9e4d47d566dd5c3bcf7" + }, + "cell_type": "markdown", + "source": "The set S corresponding to these rows is shown in:" + }, + { + "metadata": { + "_uuid": "b79f0b59db034dc4cae82baa909c1ecea465edde" + }, + "cell_type": "markdown", + "source": "" + }, + { + "metadata": { + "_uuid": "22905f0fbe47a3faa1ee412af8d826b7d8e866c2" + }, + "cell_type": "markdown", + "source": "The figure above is an illustration of the determinant for the $2\\times 2$ matrix $A$ above. Here, $a_1$ and $a_2$\nare vectors corresponding to the rows of $A$, and the set $S$ corresponds to the shaded region (i.e., the parallelogram). The absolute value of the determinant, $|\\mathrm{det}A| = 7$, is the area of the parallelogram." + }, + { + "metadata": { + "_uuid": "3b5673d481c010c12a8d18bdca300a8edb0574ec" + }, + "cell_type": "markdown", + "source": "For two-dimensional matrices, $S$ generally has the shape of a parallelogram. In our example, the value of the determinant is $|A| = −7$ (as can be computed using the formulas shown later), so the area of the parallelogram is $7$." + }, + { + "metadata": { + "_uuid": "b3ee3e58537abad231076fa6dcad1f3abd68069e" + }, + "cell_type": "markdown", + "source": "In three dimensions, the set $S$ corresponds to an object known as a parallelepiped (a three-dimensional box with skewed sides, such that every face has the shape of a parallelogram). The absolute value of the determinant of the $3 \\times 3$ matrix whose rows define $S$ give the three-dimensional volume of the parallelepiped. In even higher dimensions, the set $S$ is an object known as an $n$-dimensional parallelotope." + }, + { + "metadata": { + "_uuid": "fde7372d4a93c088021b1b88ac7735898423d6fa" + }, + "cell_type": "markdown", + "source": "Algebraically, the determinant satisfies the following three properties (from which all other properties follow, including the general formula):" + }, + { + "metadata": { + "_uuid": "23fcae64aa37ed84a6623d4bbd4d3827bb4de479" + }, + "cell_type": "markdown", + "source": "- The determinant of the identity is $1$, $|I| = 1$. (Geometrically, the volume of a unit hypercube is $1$).\n- Given a matrix $A \\in \\mathbb{R}^{n\\times n}$, if we multiply a single row in $A$ by a scalar $t \\in \\mathbb{R}$, then the determinant of the new matrix is $t|A|$,
\n$\\left| \\begin{bmatrix}\n -- & t a_1^T & -- \\\\[0.3em]\n -- & a_2^T & -- \\\\[0.3em]\n & \\vdots & \\\\[0.3em]\n -- & a_m^T & -- \n\\end{bmatrix}\\right| = t|A|$
\n(Geometrically, multiplying one of the sides of the set $S$ by a factor $t$ causes the volume\nto increase by a factor $t$.)\n- If we exchange any two rows $a^T_i$ and $a^T_j$ of $A$, then the determinant of the new matrix is $−|A|$, for example
\n$\\left| \\begin{bmatrix}\n -- & a_2^T & -- \\\\[0.3em]\n -- & a_1^T & -- \\\\[0.3em]\n & \\vdots & \\\\[0.3em]\n -- & a_m^T & -- \n\\end{bmatrix}\\right| = -|A|$" + }, + { + "metadata": { + "_uuid": "53377e062ad34710a752ba01c2ad9b29e7a7acc1" + }, + "cell_type": "markdown", + "source": "Several properties that follow from the three properties above include:" + }, + { + "metadata": { + "_uuid": "adc1e33df4ba57d017b0d15b92dbed95411d0dd0" + }, + "cell_type": "markdown", + "source": "- For $A \\in \\mathbb{R}^{n\\times n}$, $|A| = |A^T|$\n- For $A,B \\in \\mathbb{R}^{n\\times n}$, $|AB| = |A||B|$\n- For $A \\in \\mathbb{R}^{n\\times n}$, $|A| = 0$ if and only if $A$ is singular (i.e., non-invertible). (If $A$ is singular then it does not have full rank, and hence its columns are linearly dependent. In this case, the set $S$ corresponds to a \"flat sheet\" within the $n$-dimensional space and hence has zero volume.)\n- For $A \\in \\mathbb{R}^{n\\times n}$ and $A$ non-singular, $|A−1| = 1/|A|$" + }, + { + "metadata": { + "_uuid": "b678c186a46e54adda4b3621e17d6b10a01b5104" + }, + "cell_type": "markdown", + "source": "" + }, + { + "metadata": { + "_uuid": "c03b0d7f8c0409ac026d6c7274cfaf95b572a26c" + }, + "cell_type": "markdown", + "source": "
\n# 15- Tensors" + }, + { + "metadata": { + "_uuid": "baf22e2a7f0a839a26df2a17815b6f2867dc7c15" + }, + "cell_type": "markdown", + "source": "A [**tensor**](https://en.wikipedia.org/wiki/Tensor) could be thought of as an organized multidimensional array of numerical values. A vector could be assumed to be a sub-class of a tensor. Rows of tensors extend alone the y-axis, columns along the x-axis. The **rank** of a scalar is 0, the rank of a **vector** is 1, the rank of a **matrix** is 2, the rank of a **tensor** is 3 or higher." + }, + { + "metadata": { + "_uuid": "9585bfae0dd3cd9de762cf8d5ffb801a2b24dc08" + }, + "cell_type": "markdown", + "source": "
\n# 16- Hyperplane" + }, + { + "metadata": { + "_uuid": "e689830f047dd755c68f83b0a4747928eb70c044" + }, + "cell_type": "markdown", + "source": "The **hyperplane** is a sub-space in the ambient space with one dimension less. In a two-dimensional space the hyperplane is a line, in a three-dimensional space it is a two-dimensional plane, etc." + }, + { + "metadata": { + "_uuid": "2f4ff05c6a2421c9e41d326d29970ff6be1b3695" + }, + "cell_type": "markdown", + "source": "Hyperplanes divide an $n$-dimensional space into sub-spaces that might represent clases in a machine learning algorithm." + }, + { + "metadata": { + "_uuid": "5d0b6000150ad6ff588def76de5a253ede8cf2c0" + }, + "cell_type": "markdown", + "source": "
\n# 17- Summary\nlet me summary what we read in this kernel" + }, + { + "metadata": { + "_uuid": "96e75090c39b6cd532802b441136fa965ec1e23e" + }, + "cell_type": "markdown", + "source": "
\n## 17-1 Dot Product" + }, + { + "metadata": { + "_uuid": "17c6a340146ca249ecc0c705bcf1a1d3b238a41e" + }, + "cell_type": "markdown", + "source": "This is also the *inner product*. It is a function that returns a number computed from two vectors of the same length by summing up the product of the corresponding dimensions." + }, + { + "metadata": { + "_uuid": "568f93108472fb46ac6c1385eaf522df04b88963" + }, + "cell_type": "markdown", + "source": "For two vectors $a = [a_1, a_2, \\dots{}, a_n]$ and $b = [b_1, b_2, \\dots{}, b_n]$ the dot product is:" + }, + { + "metadata": { + "_uuid": "553525a7d5c8bdc0f42d15cb0c7b050b99259438" + }, + "cell_type": "markdown", + "source": "$\\mathbf{a} \\cdot \\mathbf{b} = \\sum_{i=1}^{n} a_{i} b_{i} = a_{1} b_{1} + a_{2} b_{2} + \\cdots + a_{n} b_{n}$" + }, + { + "metadata": { + "_uuid": "3ddded1808585f448ae581cefc5f7929dfb8b6bb" + }, + "cell_type": "markdown", + "source": "If we normalize two vectors and compute the dot product, we get the *cosine similarity*, which can be used as a metric for cimilarity of vectors. Independent of the absolute length we look at the angle between the vectors, i.e. the lenght is neutralized via normalization." + }, + { + "metadata": { + "_uuid": "209f09dffb7a9fd54d4f67505c9c2c99c3b9d8a1" + }, + "cell_type": "markdown", + "source": "The cosine of two non-zero vectors can be derived by using the Euclidean dot product formula (see [Wikipedia: Cosine similarity](https://en.wikipedia.org/wiki/Cosine_similarity)):" + }, + { + "metadata": { + "_uuid": "70b58e8c4b3a7f7dfd2c6d1ac2645d733567f695" + }, + "cell_type": "markdown", + "source": "$\\mathbf{a} \\cdot \\mathbf{b} = \\left\\|\\mathbf{a}\\right\\| \\left\\|\\mathbf{b}\\right\\| \\cos\\theta$" + }, + { + "metadata": { + "_uuid": "84637290dea55cd2b13490e2f909a5345e1c34e0" + }, + "cell_type": "markdown", + "source": "Given two vectors of attributes, $A$ and $B$, the cosine similarity, $cos(\\theta)$, is represented using a dot product and magnitude as:" + }, + { + "metadata": { + "_uuid": "b16a800c6e8a05128b743df3d2f46e9949aa0b91" + }, + "cell_type": "markdown", + "source": "$\\text{similarity} = \\cos(\\theta) = \\frac{\\mathbf{A} \\cdot \\mathbf{B}}{ \\|\\mathbf{A} \\|\\|\\mathbf{B} \\| } = \\frac{\\sum \\limits_{i=1}^{n}{A_{i}B_{i}}}{{\\sqrt {\\sum \\limits _{i=1}^{n}{A_{i}^{2}}}}{\\sqrt {\\sum \\limits _{i=1}^{n}{B_{i}^{2}}}}}$, with $A_i$ and $B_i$ components of vector $A$ and $B$ respectively." + }, + { + "metadata": { + "_uuid": "71b2e4d8c382f4136e42fd53b61ef88df119b080" + }, + "cell_type": "markdown", + "source": "
\n## 17-2 Hadamard Product" + }, + { + "metadata": { + "_uuid": "4c7d5009e2286222eb2cabbaed7ef566466b1750" + }, + "cell_type": "markdown", + "source": "This is also known as the **entrywise product**. For two matrices $A \\in \\mathbb{R}^{m\\times n}$ and $B \\in \\mathbb{R}^{m\\times n}$ the Hadamard product $A\\circ B$ is:" + }, + { + "metadata": { + "_uuid": "9a7b9033a63c6ab1f8cf966f223ade338e7246fa" + }, + "cell_type": "markdown", + "source": "$(A\\circ B)_{i,j} = (A)_{i,j} (B)_{i,j}$" + }, + { + "metadata": { + "_uuid": "6894eccfcce41feb652d7fc48b29d1d277600a61" + }, + "cell_type": "markdown", + "source": "For example:" + }, + { + "metadata": { + "_uuid": "fe03041de34c8d360f6c6dfec2203f728cd8ce14" + }, + "cell_type": "markdown", + "source": "$\\begin{bmatrix}\n a_{11} & a_{12} & a_{13} \\\\[0.3em]\n a_{21} & a_{22} & a_{23} \\\\[0.3em]\n a_{31} & a_{32} & a_{33}\n\\end{bmatrix} \\circ\n\\begin{bmatrix}\n b_{11} & b_{12} & b_{13} \\\\[0.3em]\n b_{21} & b_{22} & b_{23} \\\\[0.3em]\n b_{31} & b_{32} & b_{33}\n\\end{bmatrix} = \n\\begin{bmatrix}\n a_{11}b_{11} & a_{12}b_{12} & a_{13}b_{13} \\\\[0.3em]\n a_{21}b_{21} & a_{22}b_{22} & a_{23}b_{23} \\\\[0.3em]\n a_{31}b_{31} & a_{32}b_{32} & a_{33}b_{33}\n\\end{bmatrix}$" + }, + { + "metadata": { + "_uuid": "095f1aa2d9e40963f741190a0a6a27e965128b0b" + }, + "cell_type": "markdown", + "source": "
\n## 17-3 Outer Product" + }, + { + "metadata": { + "_uuid": "a5a14ff2193cead6734cd39fc259e8cb78eade8d" + }, + "cell_type": "markdown", + "source": "This is also called the **tensor product** of two vectors. Compute the resulting matrix by multiplying each element from a column vector with all alements in a row vector." + }, + { + "metadata": { + "_uuid": "e2c212b2e166a22e1223eb3dc8eadd8708d63da8" + }, + "cell_type": "markdown", + "source": "# 18- Eigenvalues and Eigenvectors\nAssume, we have two interest bearing accounts. The first gives an interest rate of 5%, the second a 3% interest, with annual compound.\n\nAssume that after $t$ years the amounts in the two accounts are represented by a 2-vector:\n\n$x^{(t)} = \\begin{bmatrix}\n amount in Account 1 \\\\[0.3em]\n amount in Account 2\n\\end{bmatrix}$\n\nThe growth of the amounts in one year can be described in a matrix:\n\n$x^{(t+1)} = \\begin{bmatrix}\n a_{11} & a_{12} \\\\[0.3em]\n a_{21} & a_{22}\n\\end{bmatrix} x^{(t)}$\n\nGiven the specification of the interest rate above, this simple case gives us:\n\n$x^{(t+1)} = \\begin{bmatrix}\n 1.05 & 0 \\\\[0.3em]\n 0 & 1.03\n\\end{bmatrix} x^{(t)}$\n\nLet $A$ denote the matrix: $\\begin{bmatrix}\n 1.05 & 0 \\\\[0.3em]\n 0 & 1.03\n\\end{bmatrix}$\n\n\n$A$ is a diagonal.\n\n\n\n" + }, + { + "metadata": { + "trusted": true, + "_uuid": "d4fcec0a1e26fc2141216557438defa7a21e2a35" + }, + "cell_type": "code", + "source": "import numpy as np\nx = np.array([[100],\n [100]])\nA = np.array([[1.05, 0],\n [0, 1.03]])\nA.dot(x)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "1f7c6424ce119fcc291049a93fd9b2ae2f2b0d52" + }, + "cell_type": "markdown", + "source": "After two years the accounts would be:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "01c9a78d158c1ea69aaacade830cae9064a0c8aa" + }, + "cell_type": "code", + "source": "A.dot(A.dot(x))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d7fbcdf5abef38a3e31d9862fbbbb63afe7f5aad" + }, + "cell_type": "markdown", + "source": "If we might want to know how $x^{(100)}$ compares to $x^{(0)}$, we could iterate over:\n \n \n" + }, + { + "metadata": { + "_uuid": "5c83c5721054bd3155a87fdd1aefc3709d83e5d2" + }, + "cell_type": "markdown", + "source": "$\\begin{align}\nx^{(100)} & = A x^{(99)} \\\\\n & = A(Ax^{(98)}) \\\\\n & = A(A(Ax^{(97)})) \\\\\n & \\vdots \\\\\n & = \\underbrace{A \\cdot A \\dots A}_\\text{100 times} \\ x^{(0)} \n\\end{align}$\n\nWe can also write the product as $A^{100}$.\n\nNote that $A$ is a diagonal, thus the entries of $A^{100}$ are $1.05^{100}$ and $1.03^{100}$:\n\n$A^{100} = \\begin{bmatrix}\n 131.50125784630401 & 0 \\\\[0.3em]\n 0 & 19.218631980856298\n\\end{bmatrix}$\n\nWhat we can see is that account 1 dominates account 2, account 2 becoming less and less relevant over time." + }, + { + "metadata": { + "_uuid": "afc2a360fedd783e5e9d7bbc975c9c6f06a2ee72" + }, + "cell_type": "markdown", + "source": "# 19-Conclusion\nIf you have made this far – give yourself a pat at the back. We have covered different aspects of **Linear algebra** in this Kernel. I have tried to give sufficient amount of information as well as keep the flow such that everybody can understand the concepts and be able to do necessary calculations. Still, if you get stuck somewhere, feel free to comment below.\n\n" + }, + { + "metadata": { + "_uuid": "b132163ee07917a0ab100b93f6ed5545ce0de45d" + }, + "cell_type": "markdown", + "source": "you can follow me on:\n> ###### [ GitHub](https://github.com/mjbahmani)\n> ###### [Kaggle](https://www.kaggle.com/mjbahmani/)\n\n **I hope you find this kernel helpful and some upvotes would be very much appreciated**\n " + }, + { + "metadata": { + "trusted": true, + "_uuid": "5719a5ba111b65b20b53d538281ac773eb14471a" + }, + "cell_type": "markdown", + "source": "
\n# 20-References" + }, + { + "metadata": { + "trusted": true, + "_uuid": "aab5b3d8cb417250dc6baa081a579106900effba" + }, + "cell_type": "markdown", + "source": "* [1] [Linear Algbra1](https://github.com/dcavar/python-tutorial-for-ipython)\n* [2] [Linear Algbra2](https://www.oreilly.com/library/view/data-science-from/9781491901410/ch04.html)\n\n\n" + }, + { + "metadata": { + "trusted": true, + "_uuid": "2ff110801517655eca35aa002c08b19622c88245" + }, + "cell_type": "code", + "source": "", + "execution_count": null, + "outputs": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.6.6", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} \ No newline at end of file diff --git a/Linear Algabra in 60 Minuties/Linear Algebra in 60 Minutes .ipynb b/Linear Algabra in 60 Minuties/Linear Algebra in 60 Minutes .ipynb new file mode 100644 index 0000000..591296f --- /dev/null +++ b/Linear Algabra in 60 Minuties/Linear Algebra in 60 Minutes .ipynb @@ -0,0 +1,4104 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "_uuid": "726661972b09b03a31d424ef02a9be0cd284d81b" + }, + "source": [ + " #
Linear Algebra in 60 Minutes \n", + "
One of the most common questions we get on Data science is:\n", + "
\n", + "How much maths do I need to learn to be a data scientist?\n", + "
\n", + "If you get confused and ask experts what should you learn at this stage, most of them would suggest / agree that you go ahead with Linear Algebra? \n", + "in this simple tutorials you can learn all of the thing you need for being a data scientist with Linear Algabra
\n", + "\n", + "
last update: 10/22/2018
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "you can follow me on:\n", + "\n", + "> ###### [ GitHub](https://github.com/mjbahmani)\n", + "\n", + "-------------------------------------------------------------------------------------------------------------\n", + " **I hope you find this kernel helpful and some upvotes would be very much appreciated**\n", + " \n", + " -----------" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2a01be35950f7a117fc6700e866de3bf5a3ea6b9" + }, + "source": [ + "\n", + "## Notebook Content\n", + " [Introduction](#0)\n", + "1. [Basic Concepts and Notation](#1)\n", + "1. [Notation ](#2)\n", + "1. [Matrix Multiplication](#3)\n", + " 1. [Vector-Vector Products](#4)\n", + " 1. [Outer Product of Two Vectors](#5)\n", + " 1. [Matrix-Vector Products](#6)\n", + " 1. [Matrix-Matrix Products](#7)\n", + "1. [Identity Matrix](#8)\n", + "1. [Diagonal Matrix](#9)\n", + "1. [Transpose of a Matrix](#10)\n", + "1. [Symmetric Metrices](#11)\n", + "1. [The Trace](#12)\n", + "1. [Norms](#13)\n", + "1. [Linear Independence and Rank](#14)\n", + " 1. [Column Rank of a Matrix](#15)\n", + " 1. [Row Rank of a Matrix](#16)\n", + " 1. [Rank of a Matrix](#17)\n", + "1. [Subtraction and Addition of Metrices](#18)\n", + " 1. [Inverse](#19)\n", + "1. [Orthogonal Matrices](#20)\n", + "1. [Range and Nullspace of a Matrix](#21)\n", + "1. [Determinant](#22)\n", + " 1. [geometric interpretation of the determinant](#23)\n", + "1. [Tensors](#24)\n", + "1. [Hyperplane](#25)\n", + "1. [Summary](#26)\n", + " 1. [Dot Product](#27)\n", + " 1. [Hadamard Product](#28)\n", + " 1. [Outer Product](#29)\n", + "1. [Eigenvalues and Eigenvectors](#30)\n", + "1. [Exercise](#31)\n", + "1. [Conclusion](#32)\n", + "1. [References](#33)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b18443661b6d30ffea2150fa74d44d62e14ae952" + }, + "source": [ + "
\n", + "# Introduction\n", + "Linear algebra is the branch of mathematics that deals with vector spaces. Although I can’t hope to teach you linear algebra in a brief chapter, it underpins a large number of data science concepts and techniques, which means I owe it to you to at least try. What we learn in this chapter we’ll use heavily throughout the rest of the book.\n", + "\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*Is there anything more useless or less useful than Algebra?*\n", + "\n", + "**Billy Connolly**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Import" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import matplotlib.patches as patch\n", + "from scipy import linalg\n", + "import pandas as pd\n", + "import numpy as np\n", + "import glob\n", + "import sys\n", + "import os" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Setup" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "%precision 4\n", + "plt.style.use('ggplot')\n", + "np.set_printoptions(suppress=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e6824a84cbdfb6dc17200c495101e113967bf514" + }, + "source": [ + "
\n", + "# 1- Basic Concepts and Notation" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d46c78c9ba7287f5af049a777047621cca585e9b" + }, + "source": [ + "The following system of equations:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "92450d2d0c14c50b12faff1fba1a24d47f73c6fa" + }, + "source": [ + "$\\begin{equation}\n", + "\\begin{split}\n", + "4 x_1 - 5 x_2 & = -13 \\\\\n", + " -2x_1 + 3 x_2 & = 9\n", + "\\end{split}\n", + "\\end{equation}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e7b0348e56afdf9ecaff27164052f9ad8157a355" + }, + "source": [ + "We are looking for a unique solution for the two variables $x_1$ and $x_2$. The system can be described as:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cd257c92064d3a32a783f478de4ecc6ee02eb855" + }, + "source": [ + "\\begin{align}\n", + "\\dot{x} & = \\sigma(y-x) \\\\\n", + "\\dot{y} & = \\rho x - y - xz \\\\\n", + "\\dot{z} & = -\\beta z + xy\n", + "\\end{align}" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6196aa1b102f2bc5baa03ab11a6f46a6334afb77" + }, + "source": [ + "$$\n", + "Ax=b\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "62e00b4cd01db4db4eeed802bc6f873e56d44401" + }, + "source": [ + "as matrices:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "4d66f085637e77ab9d00fad7070d04902e06a405" + }, + "source": [ + "$$A = \\begin{bmatrix}\n", + " 4 & -5 \\\\[0.3em]\n", + " -2 & 3 \n", + " \\end{bmatrix},\\ \n", + " b = \\begin{bmatrix}\n", + " -13 \\\\[0.3em]\n", + " 9 \n", + " \\end{bmatrix}$$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c29e9ef072d3fe0241c29d3f1ce528acf428d50d" + }, + "source": [ + "A **scalar** is an element in a vector, containing a real number **value**. In a vector space model or a vector mapping of (symbolic, qualitative, or quantitative) properties the scalar holds the concrete value or property of a variable." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "113ed77c0072b401987b15bf29b020b3b47f49ba" + }, + "source": [ + "A **vector** is an array, tuple, or ordered list of scalars (or elements) of size $n$, with $n$ a positive integer. The **length** of the vector, that is the number of scalars in the vector, is also called the **order** of the vector." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "49c0b3e90c95512ef3733b25fd87cdef8ce31f97" + }, + "source": [ + "**Vectorization** is the process of creating a vector from some data using some process." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "dbea06c756c0c9e398def8799d080e23b3e5f899" + }, + "source": [ + "Vectors of the length $n$ could be treated like points in $n$-dimensional space. One can calculate the distance between such points using measures like [Euclidean Distance](https://en.wikipedia.org/wiki/Euclidean_distance). The similarity of vectors could also be calculated using [Cosine Similarity](https://en.wikipedia.org/wiki/Cosine_similarity)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "edaec8965119aa83192198d2d440c37546335719" + }, + "source": [ + "
\n", + "## 2- Notation" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "64af248dc35d9897a3f5bdd032850a57e4ff3876" + }, + "source": [ + "A **matrix** is a list of vectors that all are of the same length. $A$ is a matrix with $m$ rows and $n$ columns, antries of $A$ are real numbers:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9bad820eed2da96e788ffcafbcf2479caee67643" + }, + "source": [ + "$A \\in \\mathbb{R}^{m \\times n}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b55c3fe6c04903ecfeeea63b7336123352acf529" + }, + "source": [ + "A vector $x$ with $n$ entries of real numbers, could also be thought of as a matrix with $n$ rows and $1$ column, or as known as a **column vector**." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c0b067c3a32a5104136293c0d1887b2edeca12a7" + }, + "source": [ + "$x = \\begin{bmatrix}\n", + " x_1 \\\\[0.3em]\n", + " x_2 \\\\[0.3em]\n", + " \\vdots \\\\[0.3em]\n", + " x_n\n", + " \\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ea3788fd5e066c884394be142580a4fdadac01fe" + }, + "source": [ + "Representing a **row vector**, that is a matrix with $1$ row and $n$ columns, we write $x^T$ (this denotes the transpose of $x$, see above)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "084a41970af4598e3fd2d3f6217a8695b160c9ac" + }, + "source": [ + "$x^T = \\begin{bmatrix}\n", + " x_1 & x_2 & \\cdots & x_n\n", + " \\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0a4ea55a9af6d93de973a5e87fb5c82ce1fb7206" + }, + "source": [ + "We use the notation $a_{ij}$ (or $A_{ij}$, $A_{i,j}$, etc.) to denote the entry of $A$ in the $i$th row and\n", + "$j$th column:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0503f34627c7269d302d2b3836069c8a04ab7dba" + }, + "source": [ + "$A = \\begin{bmatrix}\n", + " a_{11} & a_{12} & \\cdots & a_{1n} \\\\[0.3em]\n", + " a_{21} & a_{22} & \\cdots & a_{2n} \\\\[0.3em]\n", + " \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n", + " a_{m1} & a_{m2} & \\cdots & a_{mn} \n", + " \\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e8af099926ef22c12554e4a2d8820afd542ee807" + }, + "source": [ + "We denote the $j$th column of $A$ by $a_j$ or $A_{:,j}$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c17b201130a3ea73e59a50914599e7b9d1c1306d" + }, + "source": [ + "$A = \\begin{bmatrix}\n", + " \\big| & \\big| & & \\big| \\\\[0.3em]\n", + " a_{1} & a_{2} & \\cdots & a_{n} \\\\[0.3em]\n", + " \\big| & \\big| & & \\big| \n", + " \\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7644f7d6386a60f8bf590d99a23d47accda09d8a" + }, + "source": [ + "We denote the $i$th row of $A$ by $a_i^T$ or $A_{i,:}$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "fc9411370a353ff0e933eceadd9de277ca4b0113" + }, + "source": [ + "$A = \\begin{bmatrix}\n", + " -- & a_1^T & -- \\\\[0.3em]\n", + " -- & a_2^T & -- \\\\[0.3em]\n", + " & \\vdots & \\\\[0.3em]\n", + " -- & a_m^T & -- \n", + " \\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2301a92667f6fc9b26f76c216b5c8cb6e47b6343" + }, + "source": [] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c572408519a74d444556d2769694ebd9bf4d58da" + }, + "source": [ + "A $n \\times m$ matrix is a two-dimensional array with $n$ rows and $m$ columns." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "41bc780d93b81da8aa1ff806c54a4791dbb2c8dc" + }, + "source": [ + "
\n", + "## 3-Matrix Multiplication" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0573f52724da68f860328d1cc3259c215d817f80" + }, + "source": [ + "The result of the multiplication of two matrixes $A \\in \\mathbb{R}^{m \\times n}$ and $B \\in \\mathbb{R}^{n \\times p}$ is the matrix:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "bd6307c19afbda119a0dacca7e096b965889a30b" + }, + "source": [ + "$C = AB \\in \\mathbb{R}^{m \\times n}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0e0a76e86724698f241fcc74fc37e54d881622bd" + }, + "source": [ + "That is, we are multiplying the columns of $A$ with the rows of $B$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "adb65bab1beb10117cbb490383cb62a9578ce62f" + }, + "source": [ + "$C_{ij}=\\sum_{k=1}^n{A_{ij}B_{kj}}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "17f45fb4f428ad87706493da0431bdce6c00b531" + }, + "source": [ + "The number of columns in $A$ must be equal to the number of rows in $B$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "aa352f5ba3a8ee911eb8f1c03749267eb4c4f76e" + }, + "source": [ + "
\n", + "### 3-1 Vector-Vector Products" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "4cf79a777e194d13bcc2dd7d164158f4390b5e8c" + }, + "source": [ + "#### Inner or Dot Product of Two Vectors" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3274f5ded5ea7255a4f1e24a3155a5a0af41f6c3" + }, + "source": [ + "For two vectors $x, y \\in \\mathbb{R}^n$, the **inner product** or **dot product** $x^T y$ is a real number:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "12af85ed7e264aebd0f5b07757bd30cebe4da1a8" + }, + "source": [ + "$x^T y \\in \\mathbb{R} = \\begin{bmatrix}\n", + " x_1 & x_2 & \\cdots & x_n\n", + " \\end{bmatrix} \\begin{bmatrix}\n", + " y_1 \\\\[0.3em]\n", + " y_2 \\\\[0.3em]\n", + " \\vdots \\\\[0.3em]\n", + " y_n\n", + " \\end{bmatrix} = \\sum_{i=1}^{n}{x_i y_i}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1b9b1e36e48691239719c0810b1097d4b3ffbd84" + }, + "source": [ + "The **inner products** are a special case of matrix multiplication." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "530f02a04a9c565031e3a5f2ba01781265b59f7b" + }, + "source": [ + "It is always the case that $x^T y = y^T x$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ab71687334bbaacf7f2b715b957d24a18e255e71" + }, + "source": [ + "##### Example" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1f11e295fe1154db1ad859ac91c55211e1f35b4c" + }, + "source": [ + "To calculate the inner product of two vectors $x = [1 2 3 4]$ and $y = [5 6 7 8]$, we can loop through the vector and multiply and sum the scalars (this is simplified code):" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "_uuid": "371da89fa6d1b698c59ee82d6aa7b475fd7a5625" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "70\n" + ] + } + ], + "source": [ + "x = (1, 2, 3, 4)\n", + "y = (5, 6, 7, 8)\n", + "n = len(x)\n", + "if n == len(y):\n", + " result = 0\n", + " for i in range(n):\n", + " result += x[i] * y[i]\n", + " print(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5dfcb47d8e3568eafc3593911ef8655762525093" + }, + "source": [ + "It is clear that in the code above we could change line 7 to `result += y[i] * x[i]` without affecting the result." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2bc1c325a7af9aa6d418474bbc59e5eb24c4652a" + }, + "source": [ + "We can use the *numpy* module to apply the same operation, to calculate the **inner product**. We import the *numpy* module and assign it a name *np* for the following code:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "_uuid": "05779f9ebb13affb22eb3f35bee252f04f7f596c", + "collapsed": true + }, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "4d8ffa140774c6a7e2f0cd35c4809bd80069ce8b" + }, + "source": [ + "We define the vectors $x$ and $y$ using *numpy*:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "_uuid": "e6c39782297031e83d0e695fa80f9ebc2a817f4f" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x: [1 2 3 4]\n", + "y: [5 6 7 8]\n" + ] + } + ], + "source": [ + "x = np.array([1, 2, 3, 4])\n", + "y = np.array([5, 6, 7, 8])\n", + "print(\"x:\", x)\n", + "print(\"y:\", y)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ba7b567d2a4696cf0739e12cf4415ea3b8110e1e" + }, + "source": [ + "We can now calculate the $dot$ or $inner product$ using the *dot* function of *numpy*:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "_uuid": "c9fd9b61bdfa83059272f1ad61067138d0763308" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "70" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.dot(x, y)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "fec79e95e9d5b4059f91fd69334569a6831b835b" + }, + "source": [ + "The order of the arguments is irrelevant:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "_uuid": "d3843ed486083fd994883be64136127728d09d7e" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "70" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.dot(y, x)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "4025fa080136e50fcc4749100946148fa508ce32" + }, + "source": [ + "Note that both vectors are actually **row vectors** in the above code. We can transpose them to column vectors by using the *shape* property:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "_uuid": "f3a97f695aad46b1d848469240308024d1dcb634" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x: [1 2 3 4]\n", + "xT: [[1]\n", + " [2]\n", + " [3]\n", + " [4]]\n", + "y: [5 6 7 8]\n", + "yT: [[5]\n", + " [6]\n", + " [7]\n", + " [8]]\n" + ] + } + ], + "source": [ + "print(\"x:\", x)\n", + "x.shape = (4, 1)\n", + "print(\"xT:\", x)\n", + "print(\"y:\", y)\n", + "y.shape = (4, 1)\n", + "print(\"yT:\", y)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6a850ef7d0e2025dd57cbf89c4bbe4146ed83ba4" + }, + "source": [ + "In fact, in our understanding of Linear Algebra, we take the arrays above to represent **row vectors**. *Numpy* treates them differently." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b64cdd134c53e7865a76d4efecc2ace176c664cd" + }, + "source": [ + "We see the issues when we try to transform the array objects. Usually, we can transform a row vector into a column vector in *numpy* by using the *T* method on vector or matrix objects:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "_uuid": "bb73c80a401c89d79dbd920e5d63cf1a07b384e7" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x: [1 2 3 4]\n", + "y: [5 6 7 8]\n", + "xT: [1 2 3 4]\n", + "yT: [5 6 7 8]\n" + ] + } + ], + "source": [ + "x = np.array([1, 2, 3, 4])\n", + "y = np.array([5, 6, 7, 8])\n", + "print(\"x:\", x)\n", + "print(\"y:\", y)\n", + "print(\"xT:\", x.T)\n", + "print(\"yT:\", y.T)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e80fc9e4bec6d2cc26a8194e19736e1f24484d5f" + }, + "source": [ + "The problem here is that this does not do, what we expect it to do. It only works, if we declare the variables not to be arrays of numbers, but in fact a matrix:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "_uuid": "cb78424e23837608cbd597fb6fc7c3cbd99f368a" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x: [[1 2 3 4]]\n", + "y: [[5 6 7 8]]\n", + "xT: [[1]\n", + " [2]\n", + " [3]\n", + " [4]]\n", + "yT: [[5]\n", + " [6]\n", + " [7]\n", + " [8]]\n" + ] + } + ], + "source": [ + "x = np.array([[1, 2, 3, 4]])\n", + "y = np.array([[5, 6, 7, 8]])\n", + "print(\"x:\", x)\n", + "print(\"y:\", y)\n", + "print(\"xT:\", x.T)\n", + "print(\"yT:\", y.T)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9bed60bdfd536f42ad4a88a358e611fef07bc14a" + }, + "source": [ + "Note that the *numpy* functions *dot* and *outer* are not affected by this distinction. We can compute the dot product using the mathematical equation above in *numpy* using the new $x$ and $y$ row vectors:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "_uuid": "df9c92e49f2dad24800996d0655caccec351c580" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x: [[1 2 3 4]]\n", + "y: [[5]\n", + " [6]\n", + " [7]\n", + " [8]]\n" + ] + }, + { + "data": { + "text/plain": [ + "array([[70]])" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print(\"x:\", x)\n", + "print(\"y:\", y.T)\n", + "np.dot(x, y.T)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c1705fc2b1b16b9228274a2f53cd0fa59a39d8fd" + }, + "source": [ + "Or by reverting to:" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "_uuid": "3a86b041668670f66b643053dfecfc46bdcd2749" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x: [[1]\n", + " [2]\n", + " [3]\n", + " [4]]\n", + "y: [[5 6 7 8]]\n" + ] + }, + { + "data": { + "text/plain": [ + "array([[70]])" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print(\"x:\", x.T)\n", + "print(\"y:\", y)\n", + "np.dot(y, x.T)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "13ebfb31e281db7417cc3e2beb312e63f9688e28" + }, + "source": [ + "To read the result from this array of arrays, we would need to access the value this way:" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "_uuid": "295be78d3c1258ec4f24579985c5f14f8746e8a9" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "70" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.dot(y, x.T)[0][0]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b5bda4ac75a8d11935ef765b2c869e56d9df8a56" + }, + "source": [ + "
\n", + "## 3-2 Outer Product of Two Vectors" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "600acbd91bfbb49c43541a743541fcdb43b00c1a" + }, + "source": [ + "For two vectors $x \\in \\mathbb{R}^m$ and $y \\in \\mathbb{R}^n$, where $n$ and $m$ do not have to be equal, the **outer product** of $x$ and $y$ is:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8e8923ee3fd2fe565cbd45dd93eb69b99bcae973" + }, + "source": [ + "$xy^T \\in \\mathbb{R}^{m\\times n}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5d50297bd88d3a2c3c7738412e84611c119695e8" + }, + "source": [ + "The **outer product** results in a matrix with $m$ rows and $n$ columns by $(xy^T)_{ij} = x_i y_j$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "24c79c28d1a44f968c54fb7f6b25f4515e48ffa2" + }, + "source": [ + "$xy^T \\in \\mathbb{R}^{m\\times n} = \\begin{bmatrix}\n", + " x_1 \\\\[0.3em]\n", + " x_2 \\\\[0.3em]\n", + " \\vdots \\\\[0.3em]\n", + " x_n\n", + " \\end{bmatrix} \\begin{bmatrix}\n", + " y_1 & y_2 & \\cdots & y_n\n", + " \\end{bmatrix} = \\begin{bmatrix}\n", + " x_1 y_1 & x_1 y_2 & \\cdots & x_1 y_n \\\\[0.3em]\n", + " x_2 y_1 & x_2 y_2 & \\cdots & x_2 y_n \\\\[0.3em]\n", + " \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n", + " x_m y_1 & x_m y_2 & \\cdots & x_m y_n \\\\[0.3em]\n", + " \\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cfb0c1807bfd9dee7f997d2375d065c4ecbcc9d5" + }, + "source": [ + "Some useful property of the outer product: assume $\\mathbf{1} \\in \\mathbb{R}^n$ is an $n$-dimensional vector of scalars with the value $1$. Given a matrix $A \\in \\mathbb{R}^{m\\times n}$ with all columns equal to some vector $x \\in \\mathbb{R}^m$, using the outer product $A$ can be represented as:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "223cb0c14b513f60b8a31d5c81fab450afc50902" + }, + "source": [ + "$A = \\begin{bmatrix}\n", + " \\big| & \\big| & & \\big| \\\\[0.3em]\n", + " x & x & \\cdots & x \\\\[0.3em]\n", + " \\big| & \\big| & & \\big| \n", + " \\end{bmatrix} = \\begin{bmatrix}\n", + " x_1 & x_1 & \\cdots & x_1 \\\\[0.3em]\n", + " x_2 & x_2 & \\cdots & x_2 \\\\[0.3em]\n", + " \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n", + " x_m &x_m & \\cdots & x_m\n", + " \\end{bmatrix} = \\begin{bmatrix}\n", + " x_1 \\\\[0.3em]\n", + " x_2 \\\\[0.3em]\n", + " \\vdots \\\\[0.3em]\n", + " x_m\n", + " \\end{bmatrix} \\begin{bmatrix}\n", + " 1 & 1 & \\cdots & 1\n", + " \\end{bmatrix} = x \\mathbf{1}^T$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "559fa51035235c9d1c1a2286d05610d5e51dc958" + }, + "source": [ + "##### Example" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "79454aca18aaa191658d04a48662f75588dd6e4e" + }, + "source": [ + "If we want to compute the outer product of two vectors $x$ and $y$, we need to transpose the row vector $x$ to a column vector $x^T$. This can be achieved by the *reshape* function in *numpy*, the *T* method, or the *transpose()* function. The *reshape* function takes a parameter that describes the number of colums and rows for the resulting transposing:" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "_uuid": "31c5791cb210071f5253d0a20a7f1e2c030a48ea" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x: [[1 2 3 4]]\n", + "xT: [[1]\n", + " [2]\n", + " [3]\n", + " [4]]\n", + "xT: [[1]\n", + " [2]\n", + " [3]\n", + " [4]]\n", + "xT: [[1]\n", + " [2]\n", + " [3]\n", + " [4]]\n" + ] + } + ], + "source": [ + "x = np.array([[1, 2, 3, 4]])\n", + "print(\"x:\", x)\n", + "print(\"xT:\", np.reshape(x, (4, 1)))\n", + "print(\"xT:\", x.T)\n", + "print(\"xT:\", x.transpose())" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0f8844018b2de3e4cd9584350a223b1e1347efe9" + }, + "source": [ + "We can now compute the **outer product** by multiplying the column vector $x$ with the row vector $y$:" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "_uuid": "4744a491b80ce1e01ddc4590847c9660ea9ae14b" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 5, 6, 7, 8],\n", + " [10, 12, 14, 16],\n", + " [15, 18, 21, 24],\n", + " [20, 24, 28, 32]])" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x = np.array([[1, 2, 3, 4]])\n", + "y = np.array([[5, 6, 7, 8]])\n", + "x.T * y" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7ee36e496adf686e1445faca7e5c9c1dee9abf35" + }, + "source": [ + "*Numpy* provides an *outer* function that does all that:" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "_uuid": "47ce570eb9aa9a1173a2f30de728aba2aec3976c" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 5, 6, 7, 8],\n", + " [10, 12, 14, 16],\n", + " [15, 18, 21, 24],\n", + " [20, 24, 28, 32]])" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.outer(x, y)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b3eed151fe4f34604d1691e36a41d82b36d3fead" + }, + "source": [ + "Note, in this simple case using the simple arrays for the data structures of the vectors does not affect the result of the *outer* function:" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "_uuid": "e52b29787ddf67293d7dbe6f0887cfc23fc4f11f" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 5, 6, 7, 8],\n", + " [10, 12, 14, 16],\n", + " [15, 18, 21, 24],\n", + " [20, 24, 28, 32]])" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x = np.array([1, 2, 3, 4])\n", + "y = np.array([5, 6, 7, 8])\n", + "np.outer(x, y)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0497e5d541a3c1ba344863a6730ea7521e65d50c" + }, + "source": [ + "
\n", + "## 3-3 Matrix-Vector Products" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "04b13cebdd26ed43bc8a0cceb68a7108d70a136a" + }, + "source": [ + "Assume a matrix $A \\in \\mathbb{R}^{m\\times n}$ and a vector $x \\in \\mathbb{R}^n$ the product results in a vector $y = Ax \\in \\mathbb{R}^m$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5fd17293bb4d5d64da6b241166804fc7e04fe01f" + }, + "source": [ + "$Ax$ could be expressed as the dot product of row $i$ of matrix $A$ with the column value $j$ of vector $x$. Let us first consider matrix multiplication with a scalar:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "16e79a2bad504080985d9934e8ca7715ca808ecf" + }, + "source": [ + "$A = \\begin{bmatrix}\n", + " 1 & 2 \\\\[0.3em]\n", + " 3 & 4\n", + " \\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d5ce445bbdd95aa2f30b88d50d40694c7138cd16" + }, + "source": [ + "We can compute the product of $A$ with a scalar $n = 2$ as:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d4e35d8ca8587610ee6af9b9dbe5ffcb39b088e6" + }, + "source": [ + "$A = \\begin{bmatrix}\n", + " 1 * n & 2 * n \\\\[0.3em]\n", + " 3 * n & 4 * n\n", + " \\end{bmatrix} = \\begin{bmatrix}\n", + " 1 * 2 & 2 * 2 \\\\[0.3em]\n", + " 3 * 2 & 4 * 2\n", + " \\end{bmatrix} = \\begin{bmatrix}\n", + " 2 & 4 \\\\[0.3em]\n", + " 6 & 8\n", + " \\end{bmatrix} $" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cdf6b9087f0d650fc81e307e20ea19c80e65ca81" + }, + "source": [ + "Using *numpy* this can be achieved by:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "_uuid": "dab712cc9bfed1169b78e17b899fb51ab054323a" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 8, 10, 12],\n", + " [14, 16, 18]])" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "A = np.array([[4, 5, 6],\n", + " [7, 8, 9]])\n", + "A * 2" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7c0f41deb55a4d276a163064a096a7265dfb6b70" + }, + "source": [ + "Assume that we have a column vector $x$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9b1ae2e8676afb189d397c7eda3ac2ff6ac7d68c" + }, + "source": [ + "$x = \\begin{bmatrix}\n", + " 1 \\\\[0.3em]\n", + " 2 \\\\[0.3em]\n", + " 3 \n", + " \\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cc7395a031bfe1a5ef2c81742ce53402a4f4a760" + }, + "source": [ + "To be able to multiply this vector with a matrix, the number of columns in the matrix must correspond to the number of rows in the column vector. The matrix $A$ must have $3$ columns, as for example: " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3a64bb5508b56c69089f3f3a0ad660b7d3afcc6d" + }, + "source": [ + "$A = \\begin{bmatrix}\n", + " 4 & 5 & 6\\\\[0.3em]\n", + " 7 & 8 & 9\n", + " \\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "263ba698745983ffaf1d3e8d70913655d706b7b5" + }, + "source": [ + "To compute $Ax$, we multiply row $1$ of the matrix with column $1$ of $x$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c2a029c124746ef05f143057fd2504aacbd0f420" + }, + "source": [ + "$\\begin{bmatrix}\n", + " 4 & 5 & 6\n", + " \\end{bmatrix}\n", + " \\begin{bmatrix}\n", + " 1 \\\\[0.3em]\n", + " 2 \\\\[0.3em]\n", + " 3 \n", + "\\end{bmatrix} = 4 * 1 + 5 * 2 + 6 * 3 = 32 $" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a58cee7c07b4c95146d47bb4760cbad517f80d73" + }, + "source": [ + "We do the compute the dot product of row $2$ of $A$ and column $1$ of $x$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2b48c07ca48080c579e827df7b7b7851648d1c4e" + }, + "source": [ + "$\\begin{bmatrix}\n", + " 7 & 8 & 9\n", + " \\end{bmatrix}\n", + " \\begin{bmatrix}\n", + " 1 \\\\[0.3em]\n", + " 2 \\\\[0.3em]\n", + " 3 \n", + "\\end{bmatrix} = 7 * 1 + 8 * 2 + 9 * 3 = 50 $" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9212e603fc8e945f1fd1d2a1155aeaad802c5008" + }, + "source": [ + "The resulting column vector $Ax$ is:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "91f948005340d308fa68953ce38f38e751d8711d" + }, + "source": [ + "$Ax = \\begin{bmatrix}\n", + " 32 \\\\[0.3em]\n", + " 50 \n", + " \\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2be29c242244536effade27bc0f8bbd03eddd537" + }, + "source": [ + "Using *numpy* we can compute $Ax$:" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "_uuid": "00f0a534b7dae7a24ee27a74553e1f785f3714ef" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([32, 50])" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A = np.array([[4, 5, 6],\n", + " [7, 8, 9]])\n", + "x = np.array([1, 2, 3])\n", + "A.dot(x)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2f6c7e7c90592f5d4d529798199ec7507a2752c3" + }, + "source": [ + "We can thus describe the product writing $A$ by rows as:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "bf34bef734155d6027fdcf8f16ae735a25ccaeef" + }, + "source": [ + "$y = Ax = \\begin{bmatrix}\n", + " -- & a_1^T & -- \\\\[0.3em]\n", + " -- & a_2^T & -- \\\\[0.3em]\n", + " & \\vdots & \\\\[0.3em]\n", + " -- & a_m^T & -- \n", + "\\end{bmatrix} x = \\begin{bmatrix}\n", + " a_1^T x \\\\[0.3em]\n", + " a_2^T x \\\\[0.3em]\n", + " \\vdots \\\\[0.3em]\n", + " a_m^T x \n", + "\\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5662d8ac1faca01adf26451e5d07bf18dff21290" + }, + "source": [ + "This means that the $i$th scalar of $y$ is the inner product of the $i$th row of $A$ and $x$, that is $y_i = a_i^T x$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3c2f566e74d022fcb5b8cebf8405d8f5029dd9e6" + }, + "source": [ + "If we write $A$ in column form, then:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9140e355e1330614dc78af903d25155af62a3c87" + }, + "source": [ + "$y = Ax =\n", + "\\begin{bmatrix}\n", + " \\big| & \\big| & & \\big| \\\\[0.3em]\n", + " a_1 & a_2 & \\cdots & a_n \\\\[0.3em]\n", + " \\big| & \\big| & & \\big| \n", + "\\end{bmatrix}\n", + "\\begin{bmatrix}\n", + " x_1 \\\\[0.3em]\n", + " x_2 \\\\[0.3em]\n", + " \\vdots \\\\[0.3em]\n", + " x_n\n", + "\\end{bmatrix} =\n", + "\\begin{bmatrix}\n", + " a_1\n", + "\\end{bmatrix} x_1 + \n", + "\\begin{bmatrix}\n", + " a_2\n", + "\\end{bmatrix} x_2 + \\dots +\n", + "\\begin{bmatrix}\n", + " a_n\n", + "\\end{bmatrix} x_n\n", + "$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6ff2956fe3dda8845ca163ddfcbf41197f00934c" + }, + "source": [ + "In this case $y$ is a **[linear combination](https://en.wikipedia.org/wiki/Linear_combination)** of the *columns* of $A$, the coefficients taken from $x$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d771db142d2ea47073067f2edcae75351c2af9d4" + }, + "source": [ + "The above examples multiply be the right with a column vector. One can multiply on the left by a row vector as well, $y^T = x^T A$ for $A \\in \\mathbb{R}^{m\\times n}$, $x\\in \\mathbb{R}^m$, $y \\in \\mathbb{R}^n$. There are two ways to express $y^T$, with $A$ expressed by its columns, with $i$th scalar of $y^T$ corresponds to the inner product of $x$ and the $i$th column of $A$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "084b84e5eda9db135fdec2e8118510b875bb84f9" + }, + "source": [ + "$y^T = x^T A = x^t \\begin{bmatrix}\n", + " \\big| & \\big| & & \\big| \\\\[0.3em]\n", + " a_1 & a_2 & \\cdots & a_n \\\\[0.3em]\n", + " \\big| & \\big| & & \\big| \n", + "\\end{bmatrix} = \n", + "\\begin{bmatrix}\n", + " x^T a_1 & x^T a_2 & \\dots & x^T a_n \n", + "\\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7b07dc51ff2dc60fc85e6512ac9ac8171e4c15df" + }, + "source": [ + "One can express $A$ by rows, where $y^T$ is a linear combination of the rows of $A$ with the scalars from $x$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "00fef9e0d2286fd9e415e86c3117b14461f9dc95" + }, + "source": [ + "$\\begin{equation}\n", + "\\begin{split}\n", + "y^T & = x^T A \\\\\n", + " & = \\begin{bmatrix}\n", + " x_1 & x_2 & \\dots & x_n \n", + "\\end{bmatrix}\n", + "\\begin{bmatrix}\n", + " -- & a_1^T & -- \\\\[0.3em]\n", + " -- & a_2^T & -- \\\\[0.3em]\n", + " & \\vdots & \\\\[0.3em]\n", + " -- & a_m^T & -- \n", + "\\end{bmatrix} \\\\\n", + " & = x_1 \\begin{bmatrix}-- & a_1^T & --\\end{bmatrix} + x_2 \\begin{bmatrix}-- & a_2^T & --\\end{bmatrix} + \\dots + x_n \\begin{bmatrix}-- & a_n^T & --\\end{bmatrix}\n", + "\\end{split}\n", + "\\end{equation}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "baee0e90e0271a893fa7344c7fbecb17849e24cb" + }, + "source": [ + "
\n", + "## 3-4 Matrix-Matrix Products\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b9d6edf802b8d25e416d6bcbc05a89f232761f0c" + }, + "source": [ + "One can view matrix-matrix multiplication $C = AB$ as a set of vector-vector products. The $(i,j)$th entry of $C$ is the inner product of the $i$th row of $A$ and the $j$th column of $B$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "4d23d2540ce269b381ed3a574afe757dd9ce0890" + }, + "source": [ + "$C = AB =\n", + "\\begin{bmatrix}\n", + " -- & a_1^T & -- \\\\[0.3em]\n", + " -- & a_2^T & -- \\\\[0.3em]\n", + " & \\vdots & \\\\[0.3em]\n", + " -- & a_m^T & -- \n", + "\\end{bmatrix}\n", + "\\begin{bmatrix}\n", + " \\big| & \\big| & & \\big| \\\\[0.3em]\n", + " b_1 & b_2 & \\cdots & b_p \\\\[0.3em]\n", + " \\big| & \\big| & & \\big| \n", + "\\end{bmatrix} = \n", + "\\begin{bmatrix}\n", + " a_1^T b_1 & a_1^T b_2 & \\cdots & a_1^T b_p \\\\[0.3em]\n", + " a_2^T b_1 & a_2^T b_2 & \\cdots & a_2^T b_p \\\\[0.3em]\n", + " \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n", + " a_m^T b_1 & a_m^T b_2 & \\cdots & a_m^T b_p \n", + "\\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "92fccf9287e2092fb03bcee8f14cdc4b943493ef" + }, + "source": [ + "Here $A \\in \\mathbb{R}^{m\\times n}$ and $B \\in \\mathbb{R}^{n\\times p}$, $a_i \\in \\mathbb{R}^n$ and $b_j \\in \\mathbb{R}^n$, and $A$ is represented by rows, $B$ by columns." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9777cf6f6fda796af639d33530c834098dc86d8e" + }, + "source": [ + "If we represent $A$ by columns and $B$ by rows, then $AB$ is the sum of the outer products:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6de77426379cc3e29abbe9323f14e95cf97286f1" + }, + "source": [ + "$C = AB =\n", + "\\begin{bmatrix}\n", + " \\big| & \\big| & & \\big| \\\\[0.3em]\n", + " a_1 & a_2 & \\cdots & a_n \\\\[0.3em]\n", + " \\big| & \\big| & & \\big| \n", + "\\end{bmatrix}\n", + "\\begin{bmatrix}\n", + " -- & b_1^T & -- \\\\[0.3em]\n", + " -- & b_2^T & -- \\\\[0.3em]\n", + " & \\vdots & \\\\[0.3em]\n", + " -- & b_n^T & -- \n", + "\\end{bmatrix}\n", + "= \\sum_{i=1}^n a_i b_i^T\n", + "$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "44d6c5cb2e94ba42ba07a2c7318066cff447bd13" + }, + "source": [ + "This means that $AB$ is the sum over all $i$ of the outer product of the $i$th column of $A$ and the $i$th row of $B$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "bf95358be113e90861b32ddc10eb4d167970ea7c" + }, + "source": [ + "One can interpret matrix-matrix operations also as a set of matrix-vector products. Representing $B$ by columns, the columns of $C$ are matrix-vector products between $A$ and the columns of $B$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e4af158d553d4af80b571cb7792d3742d9a3933e" + }, + "source": [ + "$C = AB = A\n", + "\\begin{bmatrix}\n", + " \\big| & \\big| & & \\big| \\\\[0.3em]\n", + " b_1 & b_2 & \\cdots & b_p \\\\[0.3em]\n", + " \\big| & \\big| & & \\big| \n", + "\\end{bmatrix} = \n", + "\\begin{bmatrix}\n", + " \\big| & \\big| & & \\big| \\\\[0.3em]\n", + " A b_1 & A b_2 & \\cdots & A b_p \\\\[0.3em]\n", + " \\big| & \\big| & & \\big| \n", + "\\end{bmatrix}\n", + "$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "db64a70c69c7498c0addd32920b1997ae346648f" + }, + "source": [ + "In this interpretation the $i$th column of $C$ is the matrix-vector product with the vector on the right, i.e. $c_i = A b_i$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "fa9aed70fa2cf022252d49b0e6cf61c2a3271938" + }, + "source": [ + "Representing $A$ by rows, the rows of $C$ are the matrix-vector products between the rows of $A$ and $B$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c031d45c3a799bfb462b54ee981cced64aeb6b46" + }, + "source": [ + "$C = AB = \\begin{bmatrix}\n", + " -- & a_1^T & -- \\\\[0.3em]\n", + " -- & a_2^T & -- \\\\[0.3em]\n", + " & \\vdots & \\\\[0.3em]\n", + " -- & a_m^T & -- \n", + "\\end{bmatrix}\n", + "B = \n", + "\\begin{bmatrix}\n", + " -- & a_1^T B & -- \\\\[0.3em]\n", + " -- & a_2^T B & -- \\\\[0.3em]\n", + " & \\vdots & \\\\[0.3em]\n", + " -- & a_n^T B & -- \n", + "\\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "db7e6699c9753b8bc35ddb205e39b6c0cfeaa7ba" + }, + "source": [ + "The $i$th row of $C$ is the matrix-vector product with the vector on the left, i.e. $c_i^T = a_i^T B$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "acb4c283712f1039fe818e9c76b2d06655df25ae" + }, + "source": [ + "#### Notes on Matrix-Matrix Products" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "10b2cf32e0874d9d9ca346cf6e88051a74e670a0" + }, + "source": [ + "**Matrix multiplication is associative:** $(AB)C = A(BC)$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "336cb93754fabc5e3e870339560db9c13b7b5499" + }, + "source": [ + "**Matrix multiplication is distributive:** $A(B + C) = AB + AC$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0f5a92225097ef125566df78d95c73699287388b" + }, + "source": [ + "**Matrix multiplication is, in general, not commutative;** It can be the case that $AB \\neq BA$. (For example, if $A \\in \\mathbb{R}^{m\\times n}$ and $B \\in \\mathbb{R}^{n\\times q}$, the matrix product $BA$ does not even exist if $m$ and $q$ are not equal!)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "42bf81d28ea53bf258944612b436bf9a3a6b1292" + }, + "source": [ + "
\n", + "## 4- Identity Matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2cb80bc7e181a316499f1c420d6504714a887c98" + }, + "source": [ + "The **identity matrix** $I \\in \\mathbb{R}^{n\\times n}$ is a square matrix with the value $1$ on the diagonal and $0$ everywhere else:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "fa7f57a6322de8459dfa3f46472a1f61acdcf31b" + }, + "source": [ + "$I_{ij} = \\left\\{\n", + "\\begin{array}{lr}\n", + " 1 & i = j\\\\\n", + " 0 & i \\neq j\n", + "\\end{array}\n", + "\\right.\n", + "$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "57cbbb9997318e430819b5e4d3accd0fd1f0a8d4" + }, + "source": [ + "For all $A \\in \\mathbb{R}^{m\\times n}$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "556f89cba86ab17d19c89bce923fd09eea629b83" + }, + "source": [ + "$AI = A = IA$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "91306a27b6500debe6277cedd75558823466907c" + }, + "source": [ + "In the equation above multiplication has to be made possible, which means that in the portion $AI = A$ the dimensions of $I$ have to be $n\\times n$, while in $A = IA$ they have to be $m\\times m$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "be61bed3414ed2dccb551abbffb0a58ba270d38d" + }, + "source": [ + "We can generate an *identity matrix* in *numpy* using:" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "_uuid": "29068a6e863dff19854170ea9ef701385d4ebda7" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A: [[ 0 1 2]\n", + " [ 3 4 5]\n", + " [ 6 7 8]\n", + " [ 9 10 11]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "A = np.array([[0, 1, 2],\n", + " [3, 4, 5],\n", + " [6, 7, 8],\n", + " [9, 10, 11]])\n", + "print(\"A:\", A)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "caf0c2e4e4a417c3751daed3f3bf5e151562ab52" + }, + "source": [ + "We can ask for the shape of $A$:" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "_uuid": "41d1470cef878a6ea9d6db819ca44bf5ebc7232e" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(4, 3)" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ffdd27ea7c4abf464d6ea49efbd921e68622a12f" + }, + "source": [ + "The *shape* property of a matrix contains the $m$ (number of rows) and $n$ (number of columns) properties in a tuple, in that particular order. We can create an identity matrix for the use in $AI$ by using the $n$ value: " + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "_uuid": "70d0df8d58e0a9209bcaa5753c51d3e8d905ce40" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[1, 0, 0],\n", + " [0, 1, 0],\n", + " [0, 0, 1]])" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.identity(A.shape[1], dtype=\"int\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8598fcdf9d480b28ccbfb9bde7c42297842bb590" + }, + "source": [ + "Note that we specify the *dtype* parameter to *identity* as *int*, since the default would return a matrix of *float* values." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6529004c2c919ec745dfe52f007ec4e90e39032c" + }, + "source": [ + "To generate an identity matrix for the use in $IA$ we would use the $m$ value:" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "_uuid": "6ac179dd27c16233d91df6ef504de64e5fadb7c8" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[1, 0, 0, 0],\n", + " [0, 1, 0, 0],\n", + " [0, 0, 1, 0],\n", + " [0, 0, 0, 1]])" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.identity(A.shape[0], dtype=\"int\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "bab65d4322a7f2f3f6ae4b596d67ce3643647e42" + }, + "source": [ + "We can compute the dot product of $A$ and its identity matrix $I$:" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "_uuid": "bc705223af8b1d89e6c5ac665da1993145b61bb7" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 0, 1, 2],\n", + " [ 3, 4, 5],\n", + " [ 6, 7, 8],\n", + " [ 9, 10, 11]])" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "n = A.shape[1]\n", + "I = np.array(np.identity(n, dtype=\"int\"))\n", + "np.dot(A, I)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "279c5e7af710a1ce530f2debc04c23001041745e" + }, + "source": [ + "The same is true for the other direction:" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "_uuid": "7818e9032440e9dddcdea3839fc8ba2cbac81d90" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 0, 1, 2],\n", + " [ 3, 4, 5],\n", + " [ 6, 7, 8],\n", + " [ 9, 10, 11]])" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m = A.shape[0]\n", + "I = np.array(np.identity(m, dtype=\"int\"))\n", + "np.dot(I, A)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "93c10865c2374f850dd040b8d545c226002dbb75" + }, + "source": [ + "
\n", + "## 5- Diagonal Matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ef72260c42e7c6e409b52f5b3c845e3c4a7fbe7d" + }, + "source": [ + "In the **diagonal matrix** non-diagonal elements are $0$, that is $D = diag(d_1, d_2, \\dots{}, d_n)$, with:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b63515e277c941f4a6970d3a692a40cc23433d20" + }, + "source": [ + "$D_{ij} = \\left\\{\n", + "\\begin{array}{lr}\n", + " d_i & i = j\\\\\n", + " 0 & i \\neq j\n", + "\\end{array}\n", + "\\right.\n", + "$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2a70473875d2876ab2ced96694e02da219bc6f8f" + }, + "source": [ + "The identity matrix is a special case of a diagonal matrix: $I = diag(1, 1, \\dots{}, 1)$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "10c74f8237e9f95bcc0e47cf5b2c0beba8b39b01" + }, + "source": [ + "In *numpy* we can create a *diagonal matrix* from any given matrix using the *diag* function:" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "_uuid": "51b5323cf73f7e328f3c8c024fd634e33329235b" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0, 5, 10, 15])" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "A = np.array([[0, 1, 2, 3],\n", + " [4, 5, 6, 7],\n", + " [8, 9, 10, 11],\n", + " [12, 13, 14, 15]])\n", + "np.diag(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0a1c89b112c3a23a7fe57eb358979e01776e55e5" + }, + "source": [ + "An optional parameter *k* to the *diag* function allows us to extract the diagonal above the main diagonal with a positive *k*, and below the main diagonal with a negative *k*:" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "_uuid": "213118a89acd75f4ca025d46b319037cd1bcbbf8" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1, 6, 11])" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.diag(A, k=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "_uuid": "70526663a463f5cdb1214fcf5ea2f7f3fb9ce166" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 4, 9, 14])" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.diag(A, k=-1)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "87d1e66c2fdd87db8a4b6e7b2dfee28d66dfd3fa" + }, + "source": [ + "
\n", + "## 6- Transpose of a Matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c56e983d9d25ddb75355b21700f1bb8a117a3bf2" + }, + "source": [ + "**Transposing** a matrix is achieved by *flipping* the rows and columns. For a matrix $A \\in \\mathbb{R}^{m\\times n}$ the transpose $A^T \\in \\mathbb{R}^{n\\times m}$ is the $n\\times m$ matrix given by:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "4076483db1f8a050c8a4389e464daf3320b27353" + }, + "source": [ + "$(A^T)_{ij} = A_{ji}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8e052bc93821a8f2c38fd71079c0eb1cc4529d70" + }, + "source": [ + "Properties of transposes:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cacdebb118384b89516d2531497c2c9a3ff062cd" + }, + "source": [ + "- $(A^T)^T = A$\n", + "- $(AB)^T = B^T A^T$\n", + "- $(A+B)^T = A^T + B^T$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2862a79e4c2abaede94a473a74f5eee9c07be65d" + }, + "source": [ + "
\n", + "## 7- Symmetric Metrices" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9ffb7cb76c38a6ea0544d7f6fc392aaf27e53db0" + }, + "source": [ + "Square metrices $A \\in \\mathbb{R}^{n\\times n}$ are **symmetric**, if $A = A^T$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d9bd494a412e0aba403cd7704e750c571da15550" + }, + "source": [ + "$A$ is **anti-symmetric**, if $A = -A^T$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "84a715bb732f79ebab0ef8fbb0e1a9e3b1571bbb" + }, + "source": [ + "For any matrix $A \\in \\mathbb{R}^{n\\times n}$, the matrix $A + A^T$ is **symmetric**." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "84f8f94866478a6d3488ac7c3e10bde4050282ec" + }, + "source": [ + "For any matrix $A \\in \\mathbb{R}^{n\\times n}$, the matrix $A - A^T$ is **anti-symmetric**." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "63e98eda5728b4f2e92903de5ac143a63bff1988" + }, + "source": [ + "Thus, any square matrix $A \\in \\mathbb{R}^{n\\times n}$ can be represented as a sum of a symmetric matrix and an anti-symmetric matrix:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0b576a9e0c31f5d6abfd7acd8e6bffe9a5b8fa46" + }, + "source": [ + "$A = \\frac{1}{2} (A + A^T) + \\frac{1}{2} (A - A^T)$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a30d35c4e2f7dc510ab9bfdad0f95ddb331b0867" + }, + "source": [ + "The first matrix on the right, i.e. $\\frac{1}{2} (A + A^T)$ is symmetric. The second matrix $\\frac{1}{2} (A - A^T)$ is anti-symmetric." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ece2bb90cbe7266a0868c7aef3ebc69a2d4a87c6" + }, + "source": [ + "$\\mathbb{S}^n$ is the set of all symmetric matrices of size $n$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "65a01f8617d8963563fafe08a2eb7d727b747de1" + }, + "source": [ + "$A \\in \\mathbb{S}^n$ means that $A$ is symmetric and of the size $n\\times n$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "428183208acf9df58cd241a7cd0ede7e17baf3d1" + }, + "source": [ + "
\n", + "## 8-The Trace" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "65c8dc82a48027fe563390588cd7afded770124c" + }, + "source": [ + "The **trace** of a square matrix $A \\in \\mathbb{R}^{n\\times n}$ is $tr(A)$ (or $trA$) is the sum of the diagonal elements in the matrix:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "54a2ebb1d5b8770df521a93140944bade3e59f58" + }, + "source": [ + "$trA = \\sum_{i=1}^n A_{ii}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5fa504cae78b2e61af20508a743c59b73de808a4" + }, + "source": [ + "Properties of the **trace**:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "714ef0b38ed9ed3d965403e1a723e14755ae3578" + }, + "source": [ + "- For $A \\in \\mathbb{R}^{n\\times n}$, $\\mathrm{tr}A = \\mathrm{tr}A^T$\n", + "- For $A,B \\in \\mathbb{R}^{n\\times n}$, $\\mathrm{tr}(A + B) = \\mathrm{tr}A + \\mathrm{tr}B$\n", + "- For $A \\in \\mathbb{R}^{n\\times n}$, $t \\in \\mathbb{R}$, $\\mathrm{tr}(tA) = t \\mathrm{tr}A$\n", + "- For $A,B$ such that $AB$ is square, $\\mathrm{tr}AB = \\mathrm{tr}BA$\n", + "- For $A,B,C$ such that $ABC$ is square, $\\mathrm{tr}ABC = \\mathrm{tr}BCA = \\mathrm{tr}CAB$, and so on for the product of more matrices." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "17f061ccf8620270700b566eea8e41b70f215960" + }, + "source": [ + "See for proofs the paper!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0b5536a2d51d252ff8ed7c972f407c1669fac6ab" + }, + "source": [ + "
\n", + "# 9- Norms" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "10c44bf3423731f3e86e0991445262aa370f84f9" + }, + "source": [ + "The **norm** of a vector $x$ is $\\| x\\|$, informally the length of a vector." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "24a7de6bf2eca7bb43c39bb7c29b1e95a55be60d" + }, + "source": [ + "Example: the Euclidean or $\\mathscr{l}_2$ norm:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5769f3e4578c931424802b0477d461186d38d7c9" + }, + "source": [ + "$\\|x\\|_2 = \\sqrt{\\sum_{i=1}^n{x_i^2}}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3a22383b644d3ecb03b2e1612e4a81e42d801198" + }, + "source": [ + "Note: $\\|x\\|_2^2 = x^T x$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "31936574afd9f877b78437741644f02360712dbf" + }, + "source": [ + "A **norm** is any function $f : \\mathbb{R}^n \\rightarrow \\mathbb{R}$ that satisfies the following properties:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "92ee01878823a54687233df4f81ad557c4b8d0f5" + }, + "source": [ + "- For all $x \\in \\mathbb{R}^n$, $f(x) \\geq 0$ (non-negativity)\n", + "- $f(x) = 0$ if and only if $x = 0$ (definiteness)\n", + "- For all $x \\in \\mathbb{R}^n$, $t \\in \\mathbb{R}$, $f(tx) = |t|\\ f(x)$ (homogeneity)\n", + "- For all $x, y \\in \\mathbb{R}^n$, $f(x + y) \\leq f(x) + f(y)$ (triangle inequality)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9d7f1f14c48ede7d070853d10d87f953c2e96363" + }, + "source": [ + "Norm $\\mathscr{l}_1$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d344bdc1023e51db2d40c70fc3517482ba8498c3" + }, + "source": [ + "$\\|x\\|_1 = \\sum_{i=1}^n{|x_i|}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9bc08aceaa2f48d9316db78613565ece9918b2f3" + }, + "source": [ + "Norm $\\mathscr{l}_\\infty$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d1e82ea1b1912a251d527632d449abea56f1b962" + }, + "source": [ + "$\\|x\\|_\\infty = \\max_i|x_i|$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "42a50728fde1ccf922e23060d93c16de2fcdee18" + }, + "source": [ + "All these three norms are examples of the $\\mathscr{l}_p$ norms, with $p$ a real number parameter $p \\geq 1$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6e7b6568a68806eb7a8e2ecaa462f6d562fa5f88" + }, + "source": [ + "$\\|x\\|_p = \\left(\\sum_{i=1}^n{|x_i|^p}\\right)^{\\frac{1}{p}}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5926237e98fe18916eb7458308db8ca58660e64c" + }, + "source": [ + "*Frobenius norm* for matrices:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "4e3ca17aaae665d04876be7db38dca12dc0443f3" + }, + "source": [ + "$\\|A\\|_F = \\sqrt{\\sum_{i=1}^m\\sum_{i=1}^n A_{ij}^2} = \\sqrt{\\mathrm{tr}(A^T A)}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b7f49b2eae1d711613d9c2376cbbc882432cf8cf" + }, + "source": [ + "And many more." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "42d54d284146a24f5eeedffa8c53ed870359b08d" + }, + "source": [ + "
\n", + "# 10- Linear Independence and Rank" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1b1e657d8254ffeb8d935ab3aa78d2818b6b2783" + }, + "source": [ + "A set of vectors $\\{x_1, x_2, \\dots{}, x_n\\} \\subset \\mathbb{R}^m$ is said to be **(linearly) independent** if no vector can be represented as a linear combination of the remaining vectors." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "81303a8c87b6b3d06c670cb256a9cb8f5cd5d7d1" + }, + "source": [ + "A set of vectors $\\{x_1, x_2, \\dots{}, x_n\\} \\subset \\mathbb{R}^m$ is said to be **(lineraly) dependent** if one vector from this set can be represented as a linear combination of the remaining vectors." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b4c86e0d8f2a3e0577f826ef9c7c003d33fe8644" + }, + "source": [ + "For some scalar values $\\alpha_1, \\dots{}, \\alpha_{n-1} \\in \\mathbb{R}$ the vectors $x_1, \\dots{}, x_n$ are linerly dependent, if:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2f069efddfa24291e1332122b0f90e1f1535c969" + }, + "source": [ + "$\\begin{equation}\n", + "x_n = \\sum_{i=1}^{n-1}{\\alpha_i x_i}\n", + "\\end{equation}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "073368cbbc7baf69fed982710410ea8230cf7a39" + }, + "source": [ + "Example: The following vectors are lineraly dependent, because $x_3 = -2 x_1 + x_2$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7b32ded623b0ec47af882f547c2b2747815ebea3" + }, + "source": [ + "$x_1 = \\begin{bmatrix}\n", + " 1 \\\\[0.3em]\n", + " 2 \\\\[0.3em]\n", + " 3 \n", + "\\end{bmatrix}\n", + "\\quad\n", + "x_2 = \\begin{bmatrix}\n", + " 4 \\\\[0.3em]\n", + " 1 \\\\[0.3em]\n", + " 5 \n", + "\\end{bmatrix}\n", + "\\quad\n", + "x_3 = \\begin{bmatrix}\n", + " 2 \\\\[0.3em]\n", + " -1 \\\\[0.3em]\n", + " -1 \n", + "\\end{bmatrix}\n", + "$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "90c9bd9faf3ba0c6e8299f5c1e2495ab804a9105" + }, + "source": [ + "
\n", + "## 10-1 Column Rank of a Matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "21660819816899f2b26e88d8d319bf0af58d3ef1" + }, + "source": [ + "The **column rank** of a matrix $A \\in \\mathbb{R}^{m\\times n}$ is the size of the largest subset of columns of $A$ that constitute a linear independent set. Informaly this is the number of linearly independent columns of $A$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "54eb416e6d3bf9e9aee63eb8b2dda5e935e65de9" + }, + "source": [ + "
\n", + "## 10-2 Row Rank of a Matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "182d15eb4de63f174665159e1ba83fd181832a41" + }, + "source": [ + "The **row rank** of a matrix $A \\in \\mathbb{R}^{m\\times n}$ is the largest number of rows of $A$ that constitute a lineraly independent set." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "134604c79595d4a945d8381fff3a999ba58b1f24" + }, + "source": [ + "
\n", + "## 10-3 Rank of a Matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6beff646fa29df47149aa8c55181a6a47ae6ee21" + }, + "source": [ + "For any matrix $A \\in \\mathbb{R}^{m\\times n}$, the column rank of $A$ is equal to the row rank of $A$. Both quantities are referred to collectively as the rank of $A$, denoted as $rank(A)$. Here are some basic properties of the rank:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e3ecf29883a4d9026e917936f80e9667981e0bdb" + }, + "source": [ + "- For $A \\in \\mathbb{R}^{m\\times n}$, $rank(A) \\leq \\min(m, n)$. If $rank(A) = \\min(m, n)$, then $A$ is said to be\n", + "**full rank**.\n", + "- For $A \\in \\mathbb{R}^{m\\times n}$, $rank(A) = rank(A^T)$\n", + "- For $A \\in \\mathbb{R}^{m\\times n}$, $B \\in \\mathbb{R}^{n\\times p}$, $rank(AB) \\leq \\min(rank(A), rank(B))$\n", + "- For $A,B \\in \\mathbb{R}^{m\\times n}$, $rank(A + B) \\leq rank(A) + rank(B)$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e3cf40ea16ea61ebd53a5b56d1ecccf3ebfeba50" + }, + "source": [ + "
\n", + "# 11- Subtraction and Addition of Metrices" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a1849019d67f882bfafb7650be73b682b1a9927f" + }, + "source": [ + "Assume $A \\in \\mathbb{R}^{m\\times n}$ and $B \\in \\mathbb{R}^{m\\times n}$, that is $A$ and $B$ are of the same size, to add $A$ to $B$, or to subtract $B$ from $A$, we add or subtract corresponding entries:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c85f1a6e4bfacef8def2a18b66bd2d23178ff9d6" + }, + "source": [ + "$A + B =\n", + "\\begin{bmatrix}\n", + " a_{11} & a_{12} & \\cdots & a_{1n} \\\\[0.3em]\n", + " a_{21} & a_{22} & \\cdots & a_{2n} \\\\[0.3em]\n", + " \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n", + " a_{m1} & a_{m2} & \\cdots & a_{mn}\n", + "\\end{bmatrix} +\n", + "\\begin{bmatrix}\n", + " b_{11} & b_{12} & \\cdots & b_{1n} \\\\[0.3em]\n", + " b_{21} & b_{22} & \\cdots & b_{2n} \\\\[0.3em]\n", + " \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n", + " b_{m1} & b_{m2} & \\cdots & b_{mn}\n", + "\\end{bmatrix} =\n", + "\\begin{bmatrix}\n", + " a_{11} + b_{11} & a_{12} + b_{12} & \\cdots & a_{1n} + b_{1n} \\\\[0.3em]\n", + " a_{21} + b_{21} & a_{22} + b_{22} & \\cdots & a_{2n} + b_{2n} \\\\[0.3em]\n", + " \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n", + " a_{m1} + b_{m1} & a_{m2} + b_{m2} & \\cdots & a_{mn} + b_{mn}\n", + "\\end{bmatrix}\n", + "$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ab774c9519a58113a305fb800ac761d7a2b8a7f2" + }, + "source": [ + "The same is applies to subtraction:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "fe301f7d29c3c1d88cb28ea80365146ce252b571" + }, + "source": [ + "$A - B =\n", + "\\begin{bmatrix}\n", + " a_{11} & a_{12} & \\cdots & a_{1n} \\\\[0.3em]\n", + " a_{21} & a_{22} & \\cdots & a_{2n} \\\\[0.3em]\n", + " \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n", + " a_{m1} & a_{m2} & \\cdots & a_{mn}\n", + "\\end{bmatrix} -\n", + "\\begin{bmatrix}\n", + " b_{11} & b_{12} & \\cdots & b_{1n} \\\\[0.3em]\n", + " b_{21} & b_{22} & \\cdots & b_{2n} \\\\[0.3em]\n", + " \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n", + " b_{m1} & b_{m2} & \\cdots & b_{mn}\n", + "\\end{bmatrix} =\n", + "\\begin{bmatrix}\n", + " a_{11} - b_{11} & a_{12} - b_{12} & \\cdots & a_{1n} - b_{1n} \\\\[0.3em]\n", + " a_{21} - b_{21} & a_{22} - b_{22} & \\cdots & a_{2n} - b_{2n} \\\\[0.3em]\n", + " \\vdots & \\vdots & \\ddots & \\vdots \\\\[0.3em]\n", + " a_{m1} - b_{m1} & a_{m2} - b_{m2} & \\cdots & a_{mn} - b_{mn}\n", + "\\end{bmatrix}\n", + "$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1203e8ce060702741dac72fa1ba8db01430d0e2a" + }, + "source": [ + "In Python using *numpy* this can be achieved using the following code:" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "_uuid": "fa3526c6b6308ae79ab322ff12e6e21e45761e8a" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "np.arange(9): [0 1 2 3 4 5 6 7 8]\n", + "np.arange(9, 18): [ 9 10 11 12 13 14 15 16 17]\n", + "A: [[ 9 10 11]\n", + " [12 13 14]\n", + " [15 16 17]]\n", + "B: [[0 1 2]\n", + " [3 4 5]\n", + " [6 7 8]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "print(\"np.arange(9):\", np.arange(9))\n", + "print(\"np.arange(9, 18):\", np.arange(9, 18))\n", + "A = np.arange(9, 18).reshape((3, 3))\n", + "B = np.arange(9).reshape((3, 3))\n", + "print(\"A:\", A)\n", + "print(\"B:\", B)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0653012e78bb393232bd317d056e46ed6a96df64" + }, + "source": [ + "The *numpy* function *arange* is similar to the standard Python function *range*. It returns an array with $n$ elements, specified in the one parameter version only. If we provide to parameters to *arange*, it generates an array starting from the value of the first parameter and ending with a value one less than the second parameter. The function *reshape* returns us a matrix with the corresponding number of rows and columns." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2c2f223e42500cdc89887cf0c9c3a5bb2fd2497c" + }, + "source": [ + "We can now add and subtract the two matrices $A$ and $B$:" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "_uuid": "3882778eea130a7cc3fd3e32d66177e6d5715223" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 9, 11, 13],\n", + " [15, 17, 19],\n", + " [21, 23, 25]])" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A + B" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "_uuid": "00e586d7bdee0508f12ec92f4742994813ce0f79" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[9, 9, 9],\n", + " [9, 9, 9],\n", + " [9, 9, 9]])" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A - B" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "94127d106aa8e05925e99e5f6c0a70f2c860af39" + }, + "source": [ + "
\n", + "## 11-1 Inverse" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0f12955c3ddc3ddd076f4c64b30e50c952536bc9" + }, + "source": [ + "The **inverse** of a square matrix $A \\in \\mathbb{R}^{n\\times n}$ is $A^{-1}$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8dc73e363ae4a93812b6e17fe70ebc135d8ba6b4" + }, + "source": [ + "$A^{-1} A = I = A A^{-1}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "18c16a6e9bb49a377274e69d40b514e956fd048f" + }, + "source": [ + "Not all matrices have inverses. Non-square matrices do not have inverses by definition. For some square matrices $A$ the inverse might not exist." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "185dd34140399fd7da8b5e6fcc7eff1d95278cd5" + }, + "source": [ + "$A$ is **invertible** or **non-singular** if $A^{-1}$ exists." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a4d8f9676deb29e4782f0587649aaf517a03ac57" + }, + "source": [ + "$A$ is **non-invertible** or **singular** if $A^{-1}$ does not exist." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "4c898f96bf3f31393cf4f99a6a36f0d9d1c2281f" + }, + "source": [ + "Note: **non-singular** means the opposite of **non-invertible**!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6b73cfa800911706a244586d404f46151e779739" + }, + "source": [ + "For $A$ to have an inverse $A^{-1}$, $A$ must be **full rank**." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3ef6268b4924d7ea4fa8ba3d223b4088e935d7a1" + }, + "source": [ + "Assuming that $A,B \\in \\mathbb{R}^{n\\times n}$ are non-singular, then:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "156bdaac9c0ba13b5821690eab42cef6fecaa086" + }, + "source": [ + "- $(A^{-1})^{-1} = A$\n", + "- $(AB)^{-1} = B^{-1} A^{-1}$\n", + "- $(A^{-1})^T = (A^T)^{-1}$ (often simply $A^{-T}$)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6d67e21b6e3c3131310b7208bac880550e61ad03" + }, + "source": [ + "
\n", + "## 12- Orthogonal Matrices" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b6fe01ce3f3ab34bc1af7161a4cc26888bafbccc" + }, + "source": [ + "Two vectors $x, y \\in \\mathbb{R}^n$ are **orthogonal** if $x^T y = 0$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "0da38648b240fb48345c46ebbd929d5b52de2649" + }, + "source": [ + "A vector $x \\in \\mathbb{R}^n$ is **normalized** if $\\|x\\|^2 = 1$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "285dac0071b9f07b4cf6eb6801ba66438eba1973" + }, + "source": [ + "A square matrix $U \\in \\mathbb{R}^{n\\times n}$ is **orthogonal** if all its columns are orthogonal to each other and are **normalized**. The columns are then referred to as being **orthonormal**." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1f48fa9b729d801ea41c99e9fc7c3836f003feb1" + }, + "source": [ + "It follows immediately from the definition of orthogonality and normality that:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d038680211e0a4c8f3973ca6c363989092bcbc28" + }, + "source": [ + "$U^T U = I = U U^T$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6d5d88f90103f834392fdc3737b153e24bc7e89f" + }, + "source": [ + "This means that the inverse of an orthogonal matrix is its transpose." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c6b4807c8fea87560848b8a7304e7f272e14a6cc" + }, + "source": [ + "If U is not square - i.e., $U \\in \\mathbb{R}^{m\\times n}$, $n < m$ - but its columns are still orthonormal, then $U^T U = I$, but $U U^T \\neq I$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "72ab7604c3c4f7375a5404a92b13a3ecc948db83" + }, + "source": [ + "We generally only use the term orthogonal to describe the case, where $U$ is square." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "abba1ff00658101fff6b4c9c1a227f66f4025d13" + }, + "source": [ + "Another nice property of orthogonal matrices is that operating on a vector with an orthogonal matrix will not change its Euclidean norm. For any $x \\in \\mathbb{R}^n$, $U \\in \\mathbb{R}^{n\\times n}$ orthogonal." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "de6caa369cdbd23a1284111c157ff678cb1253b7" + }, + "source": [ + "$\\|U_x\\|^2 = \\|x\\|^2$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "84a7cc36920151c3166ad9036173a975077a816e" + }, + "source": [ + "
\n", + "## 13- Range and Nullspace of a Matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "94a0da9d701ebbfd945f4f1d506685a84adf2bd1" + }, + "source": [ + "The **span** of a set of vectors $\\{ x_1, x_2, \\dots{}, x_n\\}$ is the set of all vectors that can be expressed as\n", + "a linear combination of $\\{ x_1, \\dots{}, x_n \\}$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "383daf5739119f28efaeac95ffaadb43dd9ac053" + }, + "source": [ + "$\\mathrm{span}(\\{ x_1, \\dots{}, x_n \\}) = \\{ v : v = \\sum_{i=1}^n \\alpha_i x_i, \\alpha_i \\in \\mathbb{R} \\}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "871ec420d48420bb427fb4de940bf0493161e0bf" + }, + "source": [ + "It can be shown that if $\\{ x_1, \\dots{}, x_n \\}$ is a set of n linearly independent vectors, where each $x_i \\in \\mathbb{R}^n$, then $\\mathrm{span}(\\{ x_1, \\dots{}, x_n\\}) = \\mathbb{R}^n$. That is, any vector $v \\in \\mathbb{R}^n$ can be written as a linear combination of $x_1$ through $x_n$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "90013aa1d12bb743454daa79b0ca39ec6de659bb" + }, + "source": [ + "The projection of a vector $y \\in \\mathbb{R}^m$ onto the span of $\\{ x_1, \\dots{}, x_n\\}$ (here we assume $x_i \\in \\mathbb{R}^m$) is the vector $v \\in \\mathrm{span}(\\{ x_1, \\dots{}, x_n \\})$, such that $v$ is as close as possible to $y$, as measured by the Euclidean norm $\\|v − y\\|^2$. We denote the projection as $\\mathrm{Proj}(y; \\{ x_1, \\dots{}, x_n \\})$ and can define it formally as:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a5a99821ba988bb61e19cbea30d491010b018fa0" + }, + "source": [ + "$\\mathrm{Proj}( y; \\{ x_1, \\dots{}, x_n \\}) = \\mathrm{argmin}_{v\\in \\mathrm{span}(\\{x_1,\\dots{},x_n\\})}\\|y − v\\|^2$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5a1f8588277edbd60ae162d5eb75d80477bb5536" + }, + "source": [ + "The **range** (sometimes also called the columnspace) of a matrix $A \\in \\mathbb{R}^{m\\times n}$, denoted $\\mathcal{R}(A)$, is the the span of the columns of $A$. In other words," + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2eed745f252be323178ea38e2a36c679b32e5a20" + }, + "source": [ + "$\\mathcal{R}(A) = \\{ v \\in \\mathbb{R}^m : v = A x, x \\in \\mathbb{R}^n\\}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "24c6299fe37bf5c6cc4a6bf032c69a54b1225711" + }, + "source": [ + "Making a few technical assumptions (namely that $A$ is full rank and that $n < m$), the projection of a vector $y \\in \\mathbb{R}^m$ onto the range of $A$ is given by:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "317752e8f0825aa0467524c54811cb6a91a6a589" + }, + "source": [ + "$\\mathrm{Proj}(y; A) = \\mathrm{argmin}_{v\\in \\mathcal{R}(A)}\\|v − y\\|^2 = A(A^T A)^{−1} A^T y$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "01cd617db6fe7e3ea6c26740ff2a740896c28d83" + }, + "source": [ + "See for more details in the notes page 13." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1be3dda0bfa967fabd0e5b79783f79880292264b" + }, + "source": [ + "The **nullspace** of a matrix $A \\in \\mathbb{R}^{m\\times n}$, denoted $\\mathcal{N}(A)$ is the set of all vectors that equal $0$ when multiplied by $A$, i.e.," + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "17e8400c92fc8bcfa2ae43b0b486daa39a99ac13" + }, + "source": [ + "$\\mathcal{N}(A) = \\{ x \\in \\mathbb{R}^n : A x = 0 \\}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "bc996c4d7033175abf7327a96510d852956271e7" + }, + "source": [ + "Note that vectors in $\\mathcal{R}(A)$ are of size $m$, while vectors in the $\\mathcal{N}(A)$ are of size $n$, so vectors in $\\mathcal{R}(A^T)$ and $\\mathcal{N}(A)$ are both in $\\mathbb{R}^n$. In fact, we can say much more. It turns out that:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b6d09d8a84f5d4f386ec4f66e02faa3fe4f8d430" + }, + "source": [ + "$\\{ w : w = u + v, u \\in \\mathcal{R}(A^T), v \\in \\mathcal{N}(A) \\} = \\mathbb{R}^n$ and $\\mathcal{R}(A^T) \\cap \\mathcal{N}(A) = \\{0\\}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d31bfe6323c97b5a80b7d8449599cc44f01b1ff2" + }, + "source": [ + "In other words, $\\mathcal{R}(A^T)$ and $\\mathcal{N}(A)$ are disjoint subsets that together span the entire space of\n", + "$\\mathbb{R}^n$. Sets of this type are called **orthogonal complements**, and we denote this $\\mathcal{R}(A^T) = \\mathcal{N}(A)^\\perp$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5168e46a20736d3815f9ac3590ab129b732bee12" + }, + "source": [ + "
\n", + "# 14- Determinant" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ab428148ca965168e967ead22e9a5d75d0753395" + }, + "source": [ + "The determinant of a square matrix $A \\in \\mathbb{R}^{n\\times n}$, is a function $\\mathrm{det} : \\mathbb{R}^{n\\times n} \\rightarrow \\mathbb{R}$, and is denoted $|A|$ or $\\mathrm{det}A$ (like the trace operator, we usually omit parentheses)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8d506220cb4188a91add70aef133f099546c5b52" + }, + "source": [ + "
\n", + "## 14-1 A geometric interpretation of the determinant" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9f283379fba7f2500ed5c872aefa9bca9b8e96e4" + }, + "source": [ + "Given" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c7b9813ca4bc5a0def37c4023f4411736f3a56f6" + }, + "source": [ + "$\\begin{bmatrix}\n", + " -- & a_1^T & -- \\\\[0.3em]\n", + " -- & a_2^T & -- \\\\[0.3em]\n", + " & \\vdots & \\\\[0.3em]\n", + " -- & a_n^T & -- \n", + "\\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "eb5b19546fdb0385acecb393b738751993cc233e" + }, + "source": [ + "consider the set of points $S \\subset \\mathbb{R}^n$ formed by taking all possible linear combinations of the row vectors $a_1, \\dots{}, a_n \\in \\mathbb{R}^n$ of $A$, where the coefficients of the linear combination are all\n", + "between $0$ and $1$; that is, the set $S$ is the restriction of $\\mathrm{span}( \\{ a_1, \\dots{}, a_n \\})$ to only those linear combinations whose coefficients $\\alpha_1, \\dots{}, \\alpha_n$ satisfy $0 \\leq \\alpha_i \\leq 1$, $i = 1, \\dots{}, n$. Formally:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5472ba1f4030a4269cf126aa25e2380e0423df7e" + }, + "source": [ + "$S = \\{v \\in \\mathbb{R}^n : v = \\sum_{i=1}^n \\alpha_i a_i \\mbox{ where } 0 \\leq \\alpha_i \\leq 1, i = 1, \\dots{}, n \\}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c50a0db43e5b89a727bc197ae5ba8cbebb01d7f2" + }, + "source": [ + "The absolute value of the determinant of $A$, it turns out, is a measure of the *volume* of the set $S$. The volume here is intuitively for example for $n = 2$ the area of $S$ in the Cartesian plane, or with $n = 3$ it is the common understanding of *volume* for 3-dimensional objects." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c0f6744d8f272e3003d102375db1324a79e0fab2" + }, + "source": [ + "Example:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a0a147d45a64ba1993de8ba8fe174926855bd107" + }, + "source": [ + "$A = \\begin{bmatrix}\n", + " 1 & 3\\\\[0.3em]\n", + " 3 & 2 \n", + "\\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "24a2eeb6ef0d65aceb11fcc075b1704dbc93adfe" + }, + "source": [ + "The rows of the matrix are:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "58f2dda1e93a143213f0c042ff45e50531dacb69" + }, + "source": [ + "$a_1 = \\begin{bmatrix}\n", + " 1 \\\\[0.3em]\n", + " 3 \n", + "\\end{bmatrix}\n", + "\\quad\n", + "a_2 = \\begin{bmatrix}\n", + " 3 \\\\[0.3em]\n", + " 2 \n", + "\\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7a98353ba7d834e4e5eff9e4d47d566dd5c3bcf7" + }, + "source": [ + "The set S corresponding to these rows is shown in:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b79f0b59db034dc4cae82baa909c1ecea465edde" + }, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "22905f0fbe47a3faa1ee412af8d826b7d8e866c2" + }, + "source": [ + "The figure above is an illustration of the determinant for the $2\\times 2$ matrix $A$ above. Here, $a_1$ and $a_2$\n", + "are vectors corresponding to the rows of $A$, and the set $S$ corresponds to the shaded region (i.e., the parallelogram). The absolute value of the determinant, $|\\mathrm{det}A| = 7$, is the area of the parallelogram." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3b5673d481c010c12a8d18bdca300a8edb0574ec" + }, + "source": [ + "For two-dimensional matrices, $S$ generally has the shape of a parallelogram. In our example, the value of the determinant is $|A| = −7$ (as can be computed using the formulas shown later), so the area of the parallelogram is $7$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b3ee3e58537abad231076fa6dcad1f3abd68069e" + }, + "source": [ + "In three dimensions, the set $S$ corresponds to an object known as a parallelepiped (a three-dimensional box with skewed sides, such that every face has the shape of a parallelogram). The absolute value of the determinant of the $3 \\times 3$ matrix whose rows define $S$ give the three-dimensional volume of the parallelepiped. In even higher dimensions, the set $S$ is an object known as an $n$-dimensional parallelotope." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "fde7372d4a93c088021b1b88ac7735898423d6fa" + }, + "source": [ + "Algebraically, the determinant satisfies the following three properties (from which all other properties follow, including the general formula):" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "23fcae64aa37ed84a6623d4bbd4d3827bb4de479" + }, + "source": [ + "- The determinant of the identity is $1$, $|I| = 1$. (Geometrically, the volume of a unit hypercube is $1$).\n", + "- Given a matrix $A \\in \\mathbb{R}^{n\\times n}$, if we multiply a single row in $A$ by a scalar $t \\in \\mathbb{R}$, then the determinant of the new matrix is $t|A|$,
\n", + "$\\left| \\begin{bmatrix}\n", + " -- & t a_1^T & -- \\\\[0.3em]\n", + " -- & a_2^T & -- \\\\[0.3em]\n", + " & \\vdots & \\\\[0.3em]\n", + " -- & a_m^T & -- \n", + "\\end{bmatrix}\\right| = t|A|$
\n", + "(Geometrically, multiplying one of the sides of the set $S$ by a factor $t$ causes the volume\n", + "to increase by a factor $t$.)\n", + "- If we exchange any two rows $a^T_i$ and $a^T_j$ of $A$, then the determinant of the new matrix is $−|A|$, for example
\n", + "$\\left| \\begin{bmatrix}\n", + " -- & a_2^T & -- \\\\[0.3em]\n", + " -- & a_1^T & -- \\\\[0.3em]\n", + " & \\vdots & \\\\[0.3em]\n", + " -- & a_m^T & -- \n", + "\\end{bmatrix}\\right| = -|A|$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "53377e062ad34710a752ba01c2ad9b29e7a7acc1" + }, + "source": [ + "Several properties that follow from the three properties above include:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "adc1e33df4ba57d017b0d15b92dbed95411d0dd0" + }, + "source": [ + "- For $A \\in \\mathbb{R}^{n\\times n}$, $|A| = |A^T|$\n", + "- For $A,B \\in \\mathbb{R}^{n\\times n}$, $|AB| = |A||B|$\n", + "- For $A \\in \\mathbb{R}^{n\\times n}$, $|A| = 0$ if and only if $A$ is singular (i.e., non-invertible). (If $A$ is singular then it does not have full rank, and hence its columns are linearly dependent. In this case, the set $S$ corresponds to a \"flat sheet\" within the $n$-dimensional space and hence has zero volume.)\n", + "- For $A \\in \\mathbb{R}^{n\\times n}$ and $A$ non-singular, $|A−1| = 1/|A|$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b678c186a46e54adda4b3621e17d6b10a01b5104" + }, + "source": [] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c03b0d7f8c0409ac026d6c7274cfaf95b572a26c" + }, + "source": [ + "
\n", + "# 15- Tensors" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "baf22e2a7f0a839a26df2a17815b6f2867dc7c15" + }, + "source": [ + "A [**tensor**](https://en.wikipedia.org/wiki/Tensor) could be thought of as an organized multidimensional array of numerical values. A vector could be assumed to be a sub-class of a tensor. Rows of tensors extend alone the y-axis, columns along the x-axis. The **rank** of a scalar is 0, the rank of a **vector** is 1, the rank of a **matrix** is 2, the rank of a **tensor** is 3 or higher." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9585bfae0dd3cd9de762cf8d5ffb801a2b24dc08" + }, + "source": [ + "
\n", + "# 16- Hyperplane" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e689830f047dd755c68f83b0a4747928eb70c044" + }, + "source": [ + "The **hyperplane** is a sub-space in the ambient space with one dimension less. In a two-dimensional space the hyperplane is a line, in a three-dimensional space it is a two-dimensional plane, etc." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2f4ff05c6a2421c9e41d326d29970ff6be1b3695" + }, + "source": [ + "Hyperplanes divide an $n$-dimensional space into sub-spaces that might represent clases in a machine learning algorithm." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5d0b6000150ad6ff588def76de5a253ede8cf2c0" + }, + "source": [ + "
\n", + "# 17- Summary\n", + "let me summary what we read in this kernel" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "96e75090c39b6cd532802b441136fa965ec1e23e" + }, + "source": [ + "
\n", + "## 17-1 Dot Product" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "17c6a340146ca249ecc0c705bcf1a1d3b238a41e" + }, + "source": [ + "This is also the *inner product*. It is a function that returns a number computed from two vectors of the same length by summing up the product of the corresponding dimensions." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "568f93108472fb46ac6c1385eaf522df04b88963" + }, + "source": [ + "For two vectors $a = [a_1, a_2, \\dots{}, a_n]$ and $b = [b_1, b_2, \\dots{}, b_n]$ the dot product is:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "553525a7d5c8bdc0f42d15cb0c7b050b99259438" + }, + "source": [ + "$\\mathbf{a} \\cdot \\mathbf{b} = \\sum_{i=1}^{n} a_{i} b_{i} = a_{1} b_{1} + a_{2} b_{2} + \\cdots + a_{n} b_{n}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3ddded1808585f448ae581cefc5f7929dfb8b6bb" + }, + "source": [ + "If we normalize two vectors and compute the dot product, we get the *cosine similarity*, which can be used as a metric for cimilarity of vectors. Independent of the absolute length we look at the angle between the vectors, i.e. the lenght is neutralized via normalization." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "209f09dffb7a9fd54d4f67505c9c2c99c3b9d8a1" + }, + "source": [ + "The cosine of two non-zero vectors can be derived by using the Euclidean dot product formula (see [Wikipedia: Cosine similarity](https://en.wikipedia.org/wiki/Cosine_similarity)):" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "70b58e8c4b3a7f7dfd2c6d1ac2645d733567f695" + }, + "source": [ + "$\\mathbf{a} \\cdot \\mathbf{b} = \\left\\|\\mathbf{a}\\right\\| \\left\\|\\mathbf{b}\\right\\| \\cos\\theta$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "84637290dea55cd2b13490e2f909a5345e1c34e0" + }, + "source": [ + "Given two vectors of attributes, $A$ and $B$, the cosine similarity, $cos(\\theta)$, is represented using a dot product and magnitude as:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b16a800c6e8a05128b743df3d2f46e9949aa0b91" + }, + "source": [ + "$\\text{similarity} = \\cos(\\theta) = \\frac{\\mathbf{A} \\cdot \\mathbf{B}}{ \\|\\mathbf{A} \\|\\|\\mathbf{B} \\| } = \\frac{\\sum \\limits_{i=1}^{n}{A_{i}B_{i}}}{{\\sqrt {\\sum \\limits _{i=1}^{n}{A_{i}^{2}}}}{\\sqrt {\\sum \\limits _{i=1}^{n}{B_{i}^{2}}}}}$, with $A_i$ and $B_i$ components of vector $A$ and $B$ respectively." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "71b2e4d8c382f4136e42fd53b61ef88df119b080" + }, + "source": [ + "
\n", + "## 17-2 Hadamard Product" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "4c7d5009e2286222eb2cabbaed7ef566466b1750" + }, + "source": [ + "This is also known as the **entrywise product**. For two matrices $A \\in \\mathbb{R}^{m\\times n}$ and $B \\in \\mathbb{R}^{m\\times n}$ the Hadamard product $A\\circ B$ is:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9a7b9033a63c6ab1f8cf966f223ade338e7246fa" + }, + "source": [ + "$(A\\circ B)_{i,j} = (A)_{i,j} (B)_{i,j}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6894eccfcce41feb652d7fc48b29d1d277600a61" + }, + "source": [ + "For example:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "fe03041de34c8d360f6c6dfec2203f728cd8ce14" + }, + "source": [ + "$\\begin{bmatrix}\n", + " a_{11} & a_{12} & a_{13} \\\\[0.3em]\n", + " a_{21} & a_{22} & a_{23} \\\\[0.3em]\n", + " a_{31} & a_{32} & a_{33}\n", + "\\end{bmatrix} \\circ\n", + "\\begin{bmatrix}\n", + " b_{11} & b_{12} & b_{13} \\\\[0.3em]\n", + " b_{21} & b_{22} & b_{23} \\\\[0.3em]\n", + " b_{31} & b_{32} & b_{33}\n", + "\\end{bmatrix} = \n", + "\\begin{bmatrix}\n", + " a_{11}b_{11} & a_{12}b_{12} & a_{13}b_{13} \\\\[0.3em]\n", + " a_{21}b_{21} & a_{22}b_{22} & a_{23}b_{23} \\\\[0.3em]\n", + " a_{31}b_{31} & a_{32}b_{32} & a_{33}b_{33}\n", + "\\end{bmatrix}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "095f1aa2d9e40963f741190a0a6a27e965128b0b" + }, + "source": [ + "
\n", + "## 17-3 Outer Product" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a5a14ff2193cead6734cd39fc259e8cb78eade8d" + }, + "source": [ + "This is also called the **tensor product** of two vectors. Compute the resulting matrix by multiplying each element from a column vector with all alements in a row vector." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e2c212b2e166a22e1223eb3dc8eadd8708d63da8" + }, + "source": [ + "
\n", + "# 18- Eigenvalues and Eigenvectors\n", + "Assume, we have two interest bearing accounts. The first gives an interest rate of 5%, the second a 3% interest, with annual compound.\n", + "\n", + "Assume that after $t$ years the amounts in the two accounts are represented by a 2-vector:\n", + "\n", + "$x^{(t)} = \\begin{bmatrix}\n", + " amount in Account 1 \\\\[0.3em]\n", + " amount in Account 2\n", + "\\end{bmatrix}$\n", + "\n", + "The growth of the amounts in one year can be described in a matrix:\n", + "\n", + "$x^{(t+1)} = \\begin{bmatrix}\n", + " a_{11} & a_{12} \\\\[0.3em]\n", + " a_{21} & a_{22}\n", + "\\end{bmatrix} x^{(t)}$\n", + "\n", + "Given the specification of the interest rate above, this simple case gives us:\n", + "\n", + "$x^{(t+1)} = \\begin{bmatrix}\n", + " 1.05 & 0 \\\\[0.3em]\n", + " 0 & 1.03\n", + "\\end{bmatrix} x^{(t)}$\n", + "\n", + "Let $A$ denote the matrix: $\\begin{bmatrix}\n", + " 1.05 & 0 \\\\[0.3em]\n", + " 0 & 1.03\n", + "\\end{bmatrix}$\n", + "\n", + "\n", + "$A$ is a diagonal.\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "_uuid": "d4fcec0a1e26fc2141216557438defa7a21e2a35" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 105.],\n", + " [ 103.]])" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "x = np.array([[100],\n", + " [100]])\n", + "A = np.array([[1.05, 0],\n", + " [0, 1.03]])\n", + "A.dot(x)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1f7c6424ce119fcc291049a93fd9b2ae2f2b0d52" + }, + "source": [ + "After two years the accounts would be:" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "_uuid": "01c9a78d158c1ea69aaacade830cae9064a0c8aa" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 110.25],\n", + " [ 106.09]])" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A.dot(A.dot(x))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d7fbcdf5abef38a3e31d9862fbbbb63afe7f5aad" + }, + "source": [ + "If we might want to know how $x^{(100)}$ compares to $x^{(0)}$, we could iterate over:\n", + " \n", + " \n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5c83c5721054bd3155a87fdd1aefc3709d83e5d2" + }, + "source": [ + "$\\begin{align}\n", + "x^{(100)} & = A x^{(99)} \\\\\n", + " & = A(Ax^{(98)}) \\\\\n", + " & = A(A(Ax^{(97)})) \\\\\n", + " & \\vdots \\\\\n", + " & = \\underbrace{A \\cdot A \\dots A}_\\text{100 times} \\ x^{(0)} \n", + "\\end{align}$\n", + "\n", + "We can also write the product as $A^{100}$.\n", + "\n", + "Note that $A$ is a diagonal, thus the entries of $A^{100}$ are $1.05^{100}$ and $1.03^{100}$:\n", + "\n", + "$A^{100} = \\begin{bmatrix}\n", + " 131.50125784630401 & 0 \\\\[0.3em]\n", + " 0 & 19.218631980856298\n", + "\\end{bmatrix}$\n", + "\n", + "What we can see is that account 1 dominates account 2, account 2 becoming less and less relevant over time." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "# 20- Exercise" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Students may (probably should) ignore this code. It is just here to make pretty arrows.\n", + "\n", + "def plot_vectors(vs):\n", + " \"\"\"Plot vectors in vs assuming origin at (0,0).\"\"\"\n", + " n = len(vs)\n", + " X, Y = np.zeros((n, 2))\n", + " U, V = np.vstack(vs).T\n", + " plt.quiver(X, Y, U, V, range(n), angles='xy', scale_units='xy', scale=1)\n", + " xmin, xmax = np.min([U, X]), np.max([U, X])\n", + " ymin, ymax = np.min([V, Y]), np.max([V, Y])\n", + " xrng = xmax - xmin\n", + " yrng = ymax - ymin\n", + " xmin -= 0.05*xrng\n", + " xmax += 0.05*xrng\n", + " ymin -= 0.05*yrng\n", + " ymax += 0.05*yrng\n", + " plt.axis([xmin, xmax, ymin, ymax])" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Again, this code is not intended as a coding example.\n", + "\n", + "a1 = np.array([3,0]) # axis\n", + "a2 = np.array([0,3])\n", + "\n", + "plt.figure(figsize=(8,4))\n", + "plt.subplot(1,2,1)\n", + "plot_vectors([a1, a2])\n", + "v1 = np.array([2,3])\n", + "plot_vectors([a1,v1])\n", + "plt.text(2,3,\"(2,3)\",fontsize=16)\n", + "plt.tight_layout()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAesAAAHVCAYAAADRg9N8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VGXaBvD7mZLeZoiCBAQRC6AgrgICIh1Bigrosupa\n1rUsnxSRYsW+iARExO6uZXVdEVRQXDCCCgu6S1FUVETFAoLgTPpMkpnzfn8E3yFASJvknXL/rovr\n4n1yMrkPhNycmTPniFJKgYiIiCKWzXQAIiIiOjKWNRERUYRjWRMREUU4ljUREVGEY1kTERFFOJY1\nERFRhGNZExERRTiWNRERUYRjWRMREUU4ljUREVGEczTWA+/atStsj5WdnY19+/aF7fEiFfcztnA/\nYwv3M7aEez9btmwZtsc6HB5ZExERRTiWNRERUYRjWRMREUU4ljUREVGEY1kTERFFOJY1ERFRhGNZ\nExFRtaZOnYqcnBzMnDmzQY/zyiuv4M9//jO6deuGnJwcTJo0KUwJ4wPLmoiIDsvn82HZsmUAgNdf\nfx2BQKDej7VkyRLs2LEDffr0QXp6ergihsXtt9+OP/7xjwCA3Nxc5OTkHPZXu3btanysvn37QkQO\n+fXQQw/pbZRS6Nq1K2bPnl3rjI12URQiIopuK1asQFFREfr3749Vq1Zh9erVGDRoUL0e66WXXoLN\nVnl8uHr16nDGbJAdO3bghRdewBtvvAEAGDduHPr27Vtlm9LSUlx66aW13vfOnTvjiSeeqDJr27at\n/r2I4I477sBVV12Fq6++Gm63u8bH5JE1EREd1qJFi5CVlYWHHnoISUlJWLRoUZWPL1u2DDk5Odi6\ndeshn3vZZZdh4MCBev1bUUeap59+Gh07dkSXLl0AVF6J7He/+12VX3v27EEgEMDYsWNr9Zjp6eno\n0aNHlV8tWrSoss3IkSORlJSEp59+ulaPGZl/ekREZNTu3buxZs0ajBgxAs2aNcO5556LvLw85Ofn\n620GDRqEjIwMLFmypMrn7t27F++//z7GjBkTliyWZSEQCNT4y7KsOj1uWVkZlixZgvPPP/+I2y1a\ntAhHHXXUIUfcDWG32zF27FiWNRER1d+SJUsQDAZ14Y4dOxZlZWVYunSp3iYpKQnDhw/Ha6+9VqUo\nX3/9dQDABRdcEJYs8+bNQ5s2bWr8NW/evDo97qZNm1BQUIDu3btXu83OnTuxbt06XHDBBXA4avfK\n8ebNm5GZmQmn04nOnTvjmWeeOex2ffr0wddff41vv/22xsfka9ZERHSIRYsW4bjjjsMZZ5wBADj7\n7LPRokULLFq0SJ+MBQBjxozBSy+9hLVr16JPnz4AgMWLF6N3795o3rx5WLJccsklVZ5Sr05dv96m\nTZsgIujQoUO12yxZsgSWZdX6KfA+ffrgkksuwYknnoj8/Hw8//zzuPrqq/Hzzz/jtttuq7Jt165d\nAQAffvhhjSevsayJiKiKTz75BNu2bcP48eNRUFCg50OHDsXf//53fPPNNzj++OMBAN26dUPr1q2x\nePFifaT46aefYsGCBWHLc/TRRyM7O7vG7er6uviePXuQnp6OhISEard59dVXccopp6Bjx461esy7\n7767ynrUqFG44IILcP/992PSpElIS0vTHzvqqKMA1O4ulbXas/Hjx2PKlCmYOnUqZsyYUavAREQU\nnX47kWzhwoXo2LGj/vX3v/8dQGWB/UZEcOGFF+Ltt9+Gz+fDq6++itTUVAwdOjRseRrraXC/33/E\not68eTO2b99e66Pq6owbNw4+nw+ffvpplXlycjKAyrfI1aTWR9YzZ85ERkZGHSMSEVE0KS8vx+uv\nv46uXbvilltuOeTjd955JxYvXoxp06ZBRAAAo0ePxvz587F8+XK89tprGDp0qC6icGisp8FdLhcK\nCwur/fiiRYvgdDrD9tr7wTweDwDU6lkDPg1ORETa22+/Da/XizvuuAM9e/Y85OOXXnopbr75Zqxb\ntw69evUCABx//PHo2rUr7r//fuzevfuwZ4Fv27YN27ZtA1B5RPvTTz/hzTffBACcddZZaNasWbWZ\nWrRocchbn8Khffv2KC8vx65du9CyZcsqHysvL8cbb7yBfv36HTFbbbz44otITk7GqaeeWmX+3Xff\nAQBOOumkGh+j1k/w33PPPZg+fTry8vLqGLOhypr46xERxa8XXngBaWlpGDFixGE/fv755x/2Pddj\nxozB7t270aJFC13iB1q2bBmuvfZaXHvttcjPz8f69ev1+quvvmqUfamOoPJoukePHgCAjz/++JBt\nfnub2pGeAh8zZkyVM8nXrFmDkSNH4tlnn8WqVauwZMkSjBo1CkuXLsXMmTOrvF4NAB999BGcTqfO\nccTMSilV00YejwdutxsFBQW49957ceWVVx7yYnteXp4u8lmzZqG8vLzGL14bUvYa7Em9EVBHheXx\nIpnD4WjQ5fyiBfcztnA/Y0tM72fgS9h8C2Al/QmO5G4IBALo3bs3OnTogKeeeqrKpqNHj8a6devw\n/fffV/u6ds+ePWG327FmzRokJCRg+/btuOGGG7Blyxbs27dPv3XrhhtuwLhx4w75/EGDBiEzM7PK\nOQDVqVVZH+iVV15BUlISRo4cecTtanN2W21kye1wpp6DvcU1v14R7bKzs7Fv3z7TMRod9zO2cD9j\nSyzupx0/IE3+jmRZDb/qg3x1t97Pf/3rX5g5cyY2b95cp9fZS0tL0aFDByxYsAAjR4485Gn0muza\ntQutW7fGypUrMWDAgBq3r/FpcL/fr89U8/v92LJlC4499tg6haq/MiTgf5CK95vo6xERUaywYTcy\nZDay5Qoky2ooZUeRuqbKNqNHj0bz5s3x3HPP1emxN2zYgLZt22L48OH1yvbggw/inHPOqVVRA7U4\nwaygoABz5swBAASDQfTu3RunnXZavcLVVQI+hk38UBUfQeCDQvjOLiQiothkw69IlReRgmUQqdDz\nUpyPIFpV2dbhcGDu3LmHvK2qJn369MH779fvQFIphRYtWuCaa66peeP9aizr5s2b48EHH6xXoIZK\nlPUAAEE5ErARZehtJAcREUU+QSFS5WWkYAls4q/yMUulolj98bCf99sNO5qKiGD69Ol1+pwIfuuW\nQhLW61WirEOZYlkTEVFVglKk4FWkyr9gk5LDblOsLoNCZhMnC5+ILWsHvoVd9uh1ItYDsMB7jxAR\nUaUypGApUuVF2CW/2q0CqgVK0TgXNmkqEVvWiVhXZW0XL5zqK1Sg+guuExFRfEjAR8iUObDL3hq3\nLVZ/BpDY+KEaUcQepibKusPM1h9mSyIiijfl6IZ8NRMl6gIElav67VQH+NG/CZM1jogsaxs8cOLL\nQ+YHH20TEVG8ElTgFBSrPyOANtVuVaSuByBNF6uRRGRZJ+JDiBx6rRanbIcNvxhIREREkUZQApdM\nQ6IcerlQAPCrPqhA5yZO1Tgis6yP8HR3IvhUOBFRvBMUwSU3IUE+07OAaqWfEj/cBVCiWQSWdeVV\ny6qTdJjXsomIKH4ICuCWG5EgX+hZQLWBR81HGc4GcPgLoESziCvr365aVv3HN0FQ8426iYgo9tjg\nhVsmwylf61mFagePeggWmsGv+uy/AMplBlOGX8SV9W9PgStlh1KhO51YKhUAIFKBBGw0ko2IiMyx\n4Ve4ZDKc8q2eVagT4FHzYKHy6e9ynIYidT0UskzFbBQRVtYKifgvStUI7FUvIoDQDUNKMQK/Wg+j\nTJ1+2Ld1ERFR7LJhL9wyCU7ZoWflqgM8au5BVyZzwIf63VwjkkXYRVHK4VFzYaHFYT9agc7wqrmw\n4/smzkVERKbYsBtuuREOCd16uVydAq+aBYU0g8maToSVdWK1RX2g4BHeU0dERLHDjl1wy+Qql58u\nV13gVX+FQorBZE0rwp4GJyIiqmTHT3DLhCpFXaZO339EHT9FDbCsiYgoAtnx/f6i3qdnZarb/iPq\nZIPJzGBZExFRRHHgW7hlIuzi0TO/6gWvuhfRfkOO+oqw16yJiCieOfA13DIFNinUM7/qg3x1OwCn\nuWCGsayJiCgiOPAl3HITbFKsZz7VHwXqFsR7XcX33hMRUURw4jO4ZDpsUqJnPjUEBWoaALu5YBGC\nZU1EREY58cn+og5darpUnYdCNQU8taoSy5qIiIxJwEa45BaIlOlZiTofRWoCWNQhLGsiIjIiAR/B\nJbdDpFzPStQYFKnxAMRcsAjEsiYioiaXiHXIkpkQqdCzYjUOxeoasKgPxbImIqImlYgPkCV3QSSo\nZ8XqchSrK8CiPjyWNRERNZkkvItMuQ8ilp4VWX9CCWLr/tPhxrImIqImkYQVyJQHqhR1oXUdSvF7\ng6miA8uaiIgaXTLeQobMgYjSs0Lr/1CKMQZTRQ+WNRERNapkvIFM27wqswJrMnwYZShR9GFZExFR\no0nBq8iwPaLXSgkK1VT4MMxgqujDsiYiokaRin8i3faEXitlQ4GaAT8GG0wVnVjWREQUdql4Hum2\nv+l1ZVHfBj/6G0wVvVjWREQURgpp8jekyQuhiXIgX92BMvQxmCu6sayJiChMFNLkSaTJP0MT5US+\nugtl6GkwV/RjWRMRURgopMsjSJXFoYlKgFfdi3J0M5grNrCsiYiogSxkyHykyBuhiUpCvrof5Tjd\nYK7YwbImIqIGsJAhc5Aiy0MTlQyvmoUKdDGYK7awrImIqJ6CyJTZSJYVemKpVHjVbFSgk8FcsYdl\nTURE9RBAptyPZFmlJ5ZKg0fNQQAnG8wVm1jWRERURxXIknuQJB/oiaUy4FG5COAEg7liF8uaiIjq\noBxZcieSZJ2eBJULXpWLANoZzBXbWNZERFRLZXDJ7UiU/+pJUDWDR81FEG0M5op9LGsiIqqRwIcs\nuRWJsknPguooeNQ8BNHKYLL4wLImIqIjEpTCJTcjQT7Rs6BqDo96CEEcYzBZ/GBZExFRtQTFcMl0\nJMjnehZQLeFR82ChucFk8YVlTUREhyUogkumIkG+1LOAag2PmgsLRxlMFn9Y1kREdAhBPtwyFU75\nWs8qVFt4VS4sNDOYLD6xrImIqAobvHDJFDjlWz2rUMfDo3KhkGUwWfxiWRMRUYi1F26ZBId8r0cV\n6kR41INQyDQYLL7ZTAcgIqLIYMMvsBdeUaWoy1WH/UfULGqTeGRNRESw42e45EaI9bOelatT4FUP\nQCHVYDICeGRNRBT37Ni5/6nvUFGXqdPgVbNZ1BGCZU1EFMfs+AFumQi77NGzMnUGvGoWFFIMJqMD\nsayJiOKUHTv2F/U+PbOcZ8Or7gOQZC4YHYJlTUQUhxz4Bm6ZBLt49cyvesFKmw8g0VwwOiyWNRFR\nnHFgG9wyGXbJ1zO/Ogf56i5AEgwmo+rwbHAiojjixBdwyVTYpFjPfGogCtQMsBIiF/9miIjihBOf\nwiXTYZNSPStV56JQTQVgNxeMasSyJiKKAwnYjCy5GTbx61mpGo5CdSP4imjkY1kTEcW4BGyAS26F\nSJmelajzUaQmgEUdHVjWREQxLAEfwSW3QaRCz0rURShS1wMQc8GoTljWREQxKhH/QZbcWaWoi9Ul\nKFZXg0UdXVjWREQxKBHvIUvugUhQz4qsK1CCy8Gijj4sayKiGJOEd5Ep90HE0rMi62qU4FKDqagh\nWNZERDEkCf9GpsyuUtSF1vUoxcUGU1FDsayJiGJEMt5EhuRCROlZoTUBpbjQYCoKB5Y1EVEMSMFr\nyLDNrzIrsKbAhxGGElE4sayJiKJcChYhw7ZQr5USFKpp8GGowVQUTixrIqIoloqXkG57Uq+VsqFA\n3Qw/BhlMReHGsiYiilKpeB7ptr/pdWVR3w4/+hlMRY2BZU1EFHUU0uQZpMk/QhPlQL6aiTKcbTAX\nNRaWNRFRVFFIl8eRKv8KTZQT+epulOEsg7moMdX6Cu6WZWHatGmYNWtWY+YhIqJqKaTLIwcVdQK8\n6n4WdYyrdVkvX74cOTk5jZmFiIiqZSFD5iFVFocmKgleNQvlONNgLmoKtSrrX3/9FZs2bcKAAQMa\nOw8RER0iiAyZgxRZqieWSoZXzUY5TjeYi5pKrV6zfvbZZ3HppZfC5/NVu01eXh7y8vIAALNmzUJ2\ndnaDw9kLHMD+a9CnJCcjKaXhjxnJHA5HWP7cIh33M7ZwPxuZCsBWchts5ctDI0mHlfE4Mh1dwv7l\n+PcZmWos640bNyIzMxPt2rXD559/Xu12AwcOxMCBA/V63759DQ7XTAJw7r85TKnPh+LShj9mJMvO\nzg7Ln1uk437GFu5nYwogU+5DsqzWE0ulw2PNQSA/B0D48/Dvs35atmwZtsc6nBrL+quvvsKGDRuw\nefNmlJeXw+fz4eGHH8aECRMaNRgRUXyrQJbcjSRZoyeWyoRH5SKA9gZzkQk1lvUf/vAH/OEPfwAA\nfP7551i2bBmLmoioUZUhS+5EkqzXk6BywatyEUA7g7nIFL7PmogoopTBJbchUf6nJ0HVDB41F0G0\nMZiLTKpTWXfq1AmdOnVqrCxERHFN4EOW3IJE2axnQXX0/qJuZTAZmcYjayKiCCAohUtmIEG26FlA\ntYBXzUMQxxhMRpGAZU1EZJigGC6ZhgTZqmcB1RIeNQ8WmhtMRpGCZU1EZJCgEG6ZCqd8pWcB1Xp/\nUUfP+4CpcbGsiYgMEeTDLTfBKdv1rEK1hVfNhQW3wWQUaVjWREQG2OCBS26EU3boWYU6Hh6VC4Us\nc8EoItX6Rh5ERBQeNuyDWyYdVNQnwqPmsajpsFjWRERNyIZf4JaJcMgPelauOu4/os4wmIwiGcua\niKiJ2PHz/qLeqWfl6lR41RwopBtMRpGOZU1E1ATs+Gl/Uf+sZ2WqK7xqNhRSDCajaMCyJiJqZHZ8\nD7dMgl1+0bMydSa86q9QSDaYjKIFzwYnImpEDnwHl9wIu3j1zK96IF/dBSDRXDCKKjyyJiJqJA5s\n339EfWBR90a+ugcsaqoLHlkTETUCB76CW26CTYr0zKf6oUDdCv7opbridwwRUZg58TlcMg02KdEz\nnxqEAjUd/LFL9cHvGiKiMHJiC1wyAzYp1bNSNRSF6iYAdnPBKKqxrImIwiQBm5ElN8Mmfj0rVSNQ\nqCaDpwhRQ7CsiYjCIAEb4JJbIVKmZyXqQhSpGwCIuWAUE1jWREQNlIAP4ZLbIVKhZyXqYhSp68Ci\npnBgWRMRNUAi1iBL7oJIQM+K1aUoVn8Ci5rChWVNRFRPiXgPWXIPRIJ6VmRdiRJcbjAVxSKWNRFR\nPSQhD5lyP0QsPSuy/owSXGIwFcUqljURUR0l421kyGyIKD0rtMajFGMNpqJYxrImIqqDZCxDpi23\nyqzQmohSXGAoEcUDljURUS2lYAkybA/rtVKCQjUFPgw3mIriAcuaiKgWxPfcYYp6GnwYajAVxQuW\nNRFRDVLxIuy+p/RaKRsK1C3wY6DBVBRPWNZERNVSSMVzSLc9G5ooO/LV7ShDX2OpKP6wrImIDksh\nTZ5GmrwYmigH8tWdKENvg7koHrGsiYgOoZAujyFVXjlgkgCvuhvl6GEwF8UrljURURUK6bIAqbIk\nNFGJsDIWoLzgRIO5KJ7xnm1ERJqFDJlbpagtlQSvmgXl7GkwF8U7HlkTEQEAgsiQB5Ei/9YTS6XA\nqx5ABU41mIuIZU1EBCCATJmFZMnTE0ulwqseRAU6GsxFVIllTURxLoBMuRfJ8p6eWCoDHvUgAjjJ\nXCyiA7CsiSiOlSNL7kaSrNUTS2XCo3IRQHuDuYiqYlkTUZwqQ5bMRJJ8qCdB5YJXzUUAxxnMRXQo\nljURxSE/XHIbEmWDngRVNjxqLoI41mAuosNjWRNRXBGUIktuQaJ8rGdB1Xx/UecYTEZUPZY1EcUN\nQQlcMgMJ8qmeBdQx8Kq5COIYg8mIjoxlTURxQVAEl0xDgnyhZwHVCh41FxaONpiMqGYsayKKeYJC\nuOUmOGWbngXUsfCoebDQzGAyotrh5UaJKKYJ8uGWyVWKukIdB496iEVNUYNH1kQUs2z4FS6ZAqfs\n0LMK1R4eNQcKWeaCEdURy5qIYpINe+GWG+GQH/WsQp0Ej3oQChkGkxHVHZ8GJ6KYY8MeuGVilaIu\nV53gUbksaopKLGsiiil2/Ly/qHfpWbnqAq96EAppBpMR1R/Lmohihh0/wS0T4JDdelamTq+8HzVS\nDCYjahiWNRHFBDu+h1smwi579axMnQmv+isUkg0mI2o4ljURRT0HvoVbJsEuv+qZX50Fr7oXQKK5\nYERhwrPBiSiqOfA13DIFNinUM7/qg3x1OwCnuWBEYcSyJqKo5cCXcMtU2KRIz3yqPwrULeCPN4ol\n/G4moqjkxOdwyTTYpETPfGowCtQ08EcbxRp+RxNR1HFiC1wyHTbx6VmpGoZCNQWA3VwwokbCsiai\nqJKATciSW2ATv56VqlEoVBPBc2YpVrGsiShqJOC/cMltECnXsxI1GkXq/wCIuWBEjYxlTURRIRHr\nkCUzIVKhZ8Xq9yhW14JFTbGOZU1EES8Ra5Ald0EkoGfF6jIUq6vAoqZ4wLImooiWhNXIlHsgYulZ\nkXUVSvBHg6mImhbLmogiVhJWIlNmHVTU16IE4wymImp6LGsiikjJWI4MeRAiSs8KrfEoxViDqYjM\nYFkTUcRJxlJk2uZWmRVYk+DD+YYSEZnFsiaiiJKCJciwPazXSgkK1RT4MNxgKiKzeAUBimivvPIK\n/vznP6Nbt27IycnBpEmTmuTrLl++HF26dIHPV3mFrD179uC+++7D4MGDcfLJJ+PUU0/FRRddhA8/\n/LBWj/fkk09i2LBh6NSpE9q1a4devXrhrrvugsfjqbLdHXfcgcsuuyzs+xMtUvDyQUVtQ4GawaKm\nuMeypoi2ZMkS7NixA3369EF6enqTfM1AIIC//vWvuP7665GcXHkf5C1btmDp0qUYMmQInnjiCcyb\nNw+JiYkYM2YM3nnnnRofMz8/H0OHDsW8efPwj3/8A5dffjn+9a9/Ydy4cbCs0MlT48ePx7p16/Cf\n//yn0fYvUqXiBWTYHtfryqK+FX4MMZiKKDLwaXCKaC+99BJstsr/U65evbpJvuaKFSvw008/4eKL\nL9azbt26Ye3atXA6Q7dc7Nu3L/r164fHHnsMgwYNOuJjTps2rcq6Z8+eSE5OxowZM/DZZ5+hc+fO\nAIDmzZtj4MCBePzxx9GrV68w7lUkU0iTZ5Emz4Umyo58dQfKcI7BXESRg0fW1OQWL16MnJwcbN26\n9ZCPXXbZZRg4cKBe/1bUTemf//wn+vbtC5fLpWeZmZlVihoAHA4HOnXqhN27d9fr6/z2+HZ71RtP\njBo1Cu+99x527txZr8eNLgpp8tRBRe1EvrqHRU10AJY1NbnzzjsPGRkZWLJkSZX53r178f7772PM\nmDFh+TqWZSEQCNT468CnocvKyrB+/Xp07969xscvLy/Hxo0b0b59+1pnCgQC8Pl82LhxI3Jzc9G7\nd2906tSpyjbdu3eHZVlYs2ZN7Xc2Kimky6NIk5dCE+WEV92LMvQ0mIso8rCsqcklJSVh+PDheO21\n16oU5euvvw4AuOCCC8LydebNm4c2bdrU+GvevHn6cz7//HP4/X507NixxsfPzc3Fzz//jPHjx9cq\nT0lJCdq0aYP27dtj5MiRaNmyJZ555plDtmvWrBmOOeYYbNq0qfY7G3UspMt8pMoiPVEqEV41C+Wo\n+T9KRPGGr1mTEWPGjMFLL72EtWvXok+fPgAqnx7v3bs3mjdvHpavcckll1R5Sr06B369PXv2AADc\nbvcRP+e1117DwoULMWnSpFodhQNAcnIyli9fjrKyMnz22Wd4+OGHccUVV+Dll1+Gw1H1n2KzZs3q\n/fR65LOQIblIkbdCE5UEr5qFCpxmMBdR5GJZkxHdunVD69atsXjxYvTp0wdff/01Pv30UyxYsCBs\nX+Poo49GdnZ2jdsd+Lp4WVkZACAxMbHa7VeuXInJkydj3LhxuOmmm2qdx2azoUuXLgAq9//kk0/G\n2LFj8dZbb2HUqFFVtk1KSoLf7z/cw0S5IDJlNpJlhZ5YKgVeNRsVOMVgLqLIVmNZl5eXY+bMmQgE\nAggGg+jRowcuuuiipshGMUxEcOGFF+Lpp5/GrFmz8OqrryI1NRVDhw4N29eYN28e5s6dW+N2N954\nI6ZMmQIgdNJXfn7+Ybdds2YNrrvuOpx77rl44IEHGpTvt+L+7rvvDvlYfn4+OnTo0KDHjzwBZMos\nJEuenlgqDV71ICoQa/tKFF41lrXT6cTMmTORlJSEQCCAO+64A6eddhpOPPHEpshHMWz06NGYP38+\nli9fjtdeew1Dhw7V72sOh/o8Df7byWI//PADzjzzzCrbbdiwAVdddRV69eqFBQsWNPhM9fXr1wMA\n2rZtW2UeDAaxc+dODB8eSxcCCSBL7kGSvK8nlsqAR81BAPxZQlSTGstaRJCUlASg8odIMBiECO8f\nS/VjBUMnlB1//PHo2rUr7r//fuzevfuwZ4Fv27YN27ZtAwD4/X789NNPePPNNwEAZ511Fpo1a1bt\n12rRogVatGhRp3w5OTlo1aoVPv74Y4wePVrPt2/fjssvvxxutxvXX389tmzZUuXzfve73+nf5+bm\nYu7cufjqq6+QlpaGwsJCXHLJJbjwwgtx3HHHQUSwefNmPPXUU+jYseMhzyZ8+eWX8Pl8tX4tPPKV\nI0vuQpKELvQSVFnwqrkIoJ3BXETRo1avWVuWhenTp2P37t0YMmQITjjhhEO2ycvLQ15e5dNbs2bN\nqtVrhTWxFziAYOXvU5KTkZTS8MeMZA6HIyx/bpHKX+LH0oUr8IdbRuv9vPzyyzFp0iTk5ORg1KhR\nhxytPvbYY7j33nv1ev369fqIdOXKlTjppJPCnvPiiy/G4sWL8dhjj+nZ8uXLkZ+fj/z8fIwde+hd\nn357rRsAlFJITExEdnY20tLSkJ6ejlNPPRXPPvssdu3aBYfDgTZt2mDy5MkYP378IVdmW79+PVq0\naIGRI0cecuJZJDri960qg614EmwVoaJWkg2V+Qyy7Mc3UcLwiPV/n7/hfkYmUUqpmjerVFJSgjlz\n5uDKK69EoqkHAAAgAElEQVTEsccee8Rtd+3a1eBwzeRqOGU7AKBY/R7F6roGP2Yky87Oxr59+0zH\naBSB8gAeuvIptO6Yg/Hzroro/fzt8qavvvoqunXrVufPHzlyJDp16oSnnnqqXvvZt29fDBs27JCr\nnkWq6r9v/XDJrUiUjXoSVNnwqHkIonXTBQyTWP73eSDuZ/20bNkybI91OHV60S01NRWdOnXCxx9/\n3Fh5KAZZQQtPTvoHPn3/S+ScWLenpU1o27YtLr74YjzyyCN1/lyfz4etW7fW+r3XB1uxYgX27t2L\na6+9tl6fHykEpXDJjIOKujk8an5UFjWRaTWWdWFhIUpKSgBUnhm+ZcsW5OTkNHowig1KKTx/26v4\naOlmAEDLE8LzHurGNnXqVJx22mn6rlu1lZycjO3bt6NVq1b1+rp+vx8LFixAZmZmvT4/EghK4JJp\nSJTQf+oDqiV+VfMRBH92ENVHjS+Ieb1eLFy4EJZlQSmFs846q8rJNERHsmTOcqx+IfR6ZcsTIv/I\nGqh8j/aNN97Y5F/34PdbRxtBEVwyDQnyhZ4FVGt4VC4sHG0wGVF0q7Gs27Rpg9mzZzdFFooxK55+\nD0vnr9Tr7FZuJKVWf7ERim6CArhlKpyyTc8Cqg08ai4sVH/WPhHVLPJPNaWotPbV/+KlO1+rMouW\np8Cp7mzwwiU3wSnf6FmFagevyoUF1xE+k4hqg2VNYbdp5ad4Zso/D5m3jIKTy6gerL1wyWQ4ZYce\nVagT4FFzoBC9r70TRRLedYvC6sv12/Ho9c9WufjJb3Ki5PVqqj0b9sJeeGWVoi5XHeBRc1nURGHE\nI2sKm+8/+wnzrnwSFWWBw348Wk4uo9qxYTfcciPECl1ToVydAq96AAqpBpMRxR6WNYXF7m9/wYOX\nPAZ/cVm12/A169hhxy64ZTLsskfPylUXeNVfoZBiMBlRbOLT4NRgnl35mD3uURT9WlztNu5jspCS\nEb6bdJA5dvwEt0ysUtRl6nR41SwWNVEj4ZE1NYhSCmsWfYQTz2wH6S7Ys2Mfvtm045DteHJZbLDj\n+/1H1B49s5y94S27HQDflkfUWFjW1CAiglETh+j1A79feNjt+BR49HPgW7jkRtgldK9vv+oFR9rD\nQFmhwWREsY9Pg1PYfL3hO2xdG7ogRr9LeyLz6AwAPBM82jnwNdwy6aCi7oN8dScgCeaCEcUJljWF\nzRsPrdC/T0pNxJjpw/GXhZdDbMKnwaOYA1/CLZNhk9DRs08NQL66A4DTXDCiOMKnwSksvv34e3z6\nXuh60AOuOBtprlScfFZ7jJ0+nEfWUcqJz+CS6bBJiZ751BAUqGkA7OaCEcUZljWFxdKHQ9cAT0hO\nwLnX9NPrYX8ZABExEYsawIlP9he1X89K1XkoVFPAJ+WImhbLmhrsh607sXnlZ3rd/7KeyGiWptcs\n6uiTgI1wyS0QCb1vvkSdjyI1ASxqoqbHsqYGO/DOWs5EB4Ze299gGmqoBPwXLrkNIuV6VqLGoEiN\nB8D/eBGZwLKmBtm5bTc2LP9Er88ZdxaymvOa0NEqEeuQJTMhUqFnxWocitU1YFETmcOypgZZ9vBK\nKKUAAHanHcP+MsBwIqqvRHyALLkLIkE9K1aXo1hdARY1kVksa6q33d/+gg+XbtLrsy/qjmYtee/i\naJSEd5Ep90EkdLe0IutPKMFlBlMR0W9Y1lRvyxa8A2XtP6p22DD8/wYaTkT1kYSVyJRZVYq60LoO\npfi9wVREdCCWNdXLL9/vw7olG/S65+gzcVTrZgYTUX0kYzky5EGIKD0rtG5AKUYbTEVEB2NZU728\nuTAPVrDySExsghH/N8hwIqqrZLyBTNu8KrMCazJ8GGUoERFVh2VNdfbrTg/WLvqvXvcYdTqaH3eU\nwURUVyl4FRm2R/RaKUGhmgofhhlMRUTVYVlTnb316CoEKyrPGBYRjJww2HAiqosUvIwM2+N6rZQN\nBWoG/ODfI1GkYllTnXh3F+CDl9fr9RnndUFLXvc7aqTieaTb/qbXlUV9G/zghWyIIhnLmupk+ePv\noqIsoNc8qo4WCmnyd6TJ86GJciBf3YEy9DGYi4hqg2VNtVa4rwjv/WOdXp8+5FQc2zHHYCKqHYU0\neRJp8s/QRDmRr+5CGXoazEVEtcWyplp7+4nVKPeHLkM5cuIQg2modhTS5RGkyuLQRCXAq+5FOboZ\nzEVEdcGyplop9pbg3efW6HWX/h1xXOfWBhNRzSxkyHykyBuhiUpCvrof5TjdYC4iqiuWNdXKiqff\nQ1lp6C5MPKqOdBYyJBcp8lZoopLhVQ+gAp0N5iKi+mBZU41KCkrxzt8+0OtOZ5+I9r9ray4Q1SCI\nTJmNZFmhJ5ZKhVfNRgU6GcxFRPXFsqYa5f19DXxFfr3mUXUkCyBT7keyrNITS6XBo+YggJMN5iKi\nhmBZ0xH5ivxY8dR7en1S9+Nxco/25gLREVQgS+5BkoSeBbFUBjwqFwGcYDAXETUUy5qO6N3n1qCk\noFSvR03mUXVkKkeW3IkkCb21Lqhc8KpcBNDOYC4iCgeWNVWrrLQM/35ytV63/11bdOx1osFEdHhl\ncMntSJTQ9dqDqhk8ai6CaGMwFxGFC8uaqrX6H+tQ5CnR65ETh0BEDCaigwl8yJJbkSib9CyojoJH\nzUMQrQwmI6JwYlnTYZX7yrH88dBJSsd1aY3O/ToYTEQHE5TCJTcjQT7Rs6BqDo96CEEcYzAZEYUb\ny5oO6/2XP0TBL4V6PXICj6ojiaAYLpmOBPlczwKqJTxqHiw0N5iMiBoDy5oOUVEWwPJH39Xr1h1a\nouvgUwwmogMJiuCSqUiQL/UsoFrDo+bCAu8rThSLWNZ0iLWL/gvPz/l6PXLiYB5VRwhBPtwyFU75\nWs8qVFt4VS4sNDOYjIgaE8uaqghUBPHmwnf0uuUJzXHGsC4GE9FvbPDCJVPglG/1rEIdD4/KhUKW\nwWRE1NhspgNQZFm35H/Y96NHr0dOGAybjd8mptnwK9wy6aCiPhEeNZdFTRQH+FOYtGAgiDcXhI6q\nmx93FLqP5N2ZTLPhF7hlIhzyvZ6Vqw77j6gzDSYjoqbCsibto6WbsWfHPr0eccMg2Oz8FjHJht1w\nyyQ45Cc9K1enwKvmQCHdYDIiakr8SUwAAMuysGzBSr3Obu3GWRecYTAR2bETzWQiHLJLz8rUafCq\n2VBINZiMiJoay5oAABuWf4JdX+/R6+HjB8HhtBtMFN/s+AFumQi7hP5OytQZ8KpZUEgxmIyITGBZ\nEyzLwtL5oaNq9zFZ6D22m8FE8c2OHXDLJNgl9JKEX/WAV90HIMlcMCIyhmVN2LzyM/z4Reip1mF/\nGQBnIt/VZ4ID3+wv6tAZ+X7VC/nqbgCJ5oIRkVH8iRznlFJ4Y/4Kvc5qnoFzxp1lMFH8cmAb3HIT\nbBK6zKtfnYN8dTv4T5UovvEnQJzbsmorvv80dKbx0Ov6IyHJaTBRfHLiC7hkKmxSrGc+NRAFagb4\nz5SI+FMgjlUeVYdeq05vloZ+l/YymCg+OfEpXDIdNinVs1J1LgrVVAA8yY+IWNZxbevabfhm0w69\nHnpNPyQmJ5gLFIec+BgumQGb+PWsVI1AoZoMnlJCRL9hWcexNx4KvVadmpWC/pf3Npgm/iRgA1xy\nK0TK9KxEXYAiNQEAb5xCRCEs6zj15Yfb8dVH3+j1kKv7IjmNbwtqKgn4CC65DSIVelaiLkKRuh4s\naiI6GMs6Ti094Azw5PQkDLzybINp4ksi/oMsubNKURerS1CsrgaLmogOh2Udh7Zv/A6fr9mm14Ou\n6oPUTF4Vqykk4n1kyd0QCepZkXUFSnA5WNREVB2WdRw68LXqpNREDLm6r7kwcSQJ7yJT7oOIpWdF\n1tUowaUGUxFRNGBZx5nvPvkBW1Z/odcDLu+NNBdvCtHYkvBvZMrsKkVdaF2PUlxsMBURRQuWdZxZ\n+nDofdUJSU6ce00/g2niQzLeRIbkQkTpWaE1AaW40GAqIoomLOs48sPWndi04lO97ndZL2Rk857I\njSkFryHDNr/KrMCaAh9GGEpERNGIZR1HDjyqdiY6MOy6/gbTxD7xP1+lqJUSFKpp8GGowVREFI1Y\n1nFi57bd2PDWJ3rd5/dnIat5psFEsS0VL8Fe+qReK2VDgboZfgwymIqIohXLOk4se3gllKp8zdTu\ntOO88QMMJ4pdqXge6ba/6XVlUd8OP3h+ABHVD8s6Duz+9hd8uHSTXp99UXc0a+kymChWKaTJM0iT\nf4QmyoF8NRNl4EVniKj+WNZxYNkj70BZlUfVNrsNw8cPNJwoFimkyRNIk5cPmCQgX92FMvD+4ETU\nMCzrGLf3h1+xbvEGve45+gwcdWwzg4likUK6PIJUWRyaqARYGQtQVnCSwVxEFCt4D74Y9+bCPFjB\nygtxiE0w4v94glN4WciQeVWK2lJJ8KoHoJy8NzgRhQePrGPYr7u8WPPKR3rdY+TpaNHuaIOJYk0Q\nGZKLFFmuJ5ZKhlc9gAp0NpiLiGINyzqGLX/0XQQrKm8YISIYMWGw4USxJIBMeQDJ8o6eWCoVXjUb\nFehkMBcRxSKWdYzK31OA9/+5Xq/PGNYFOSe2MJgolgSQKfchWVbriaXS4VFzEABfoyai8GNZx6jl\nj69CRVlAr0dO5FF1eFQgS+5GkqzRE0tlwqNyEUB7g7mIKJaxrGNQ4b4irH7hP3p9+pBTcWzHHIOJ\nYkUZsuROJEnoGYugcsGrchFAO4O5iCjW1VjW+/btw8KFC5Gfnw8RwcCBAzFs2LCmyEb19O8nV6Pc\nX6HXIycOMZgmVpTBJbchUf6nJ0HVDB41F0G0MZiLiOJBjWVtt9tx2WWXoV27dvD5fJgxYwY6d+6M\nVq1aNUU+qqNibwnefW6tXnfu1wHHdW5tMFH0E/iQJbciUUJXgQuqo/cXNf8dEFHjq/F91i6XC+3a\nVT7Fl5ycjJycHHg8nkYPRvWz8un34S8p0+tRk3hU3RCCUrhkepWiDqgW8Kj5LGoiajJ1es36l19+\nwXfffYf27Q89kSYvLw95eXkAgFmzZiE7O7vB4ewFDqDynUdISU5GUkrDHzOSORyOBv25lRSUIu/Z\n0IlPXfp1Qo8hZ4YjWlg1dD+bjFUEe/FESGCLHilbayD9b3DZj6nx06NmPxuI+xlbuJ+RqdZl7ff7\nkZubiyuuuAIpKSmHfHzgwIEYODB0zel9+/Y1OFwzCcAplb8v9flQXNrwx4xk2dnZDfpze2P+CpQU\nlOr1sL/0D8vfQ7g1dD+bgqAQbpkKka/0LKBawxOYB8vrBFBz/mjYz3DgfsYW7mf9tGzZMmyPdTi1\nKutAIIDc3FycffbZ6N69e6MGovrxFfux4qn39PrE7sfj5LP4VqL6EOTDLTfBKdv1rEK1hVfNhQW3\nwWREFK9qLGulFB5//HHk5ORg+PDhTZGJ6mHVc2tRkh86qj6fr1XXiw0euGQKnPKdnlWo4+FRuVDI\nMpiMiOJZjWX91Vdf4YMPPsCxxx6LqVOnAgDGjRuH008/vdHDUe2UlZbh7SdDV9M6/vS26Nj7RIOJ\nopMN++CWG+GQH/SsQp0Ij5oDhQyDyYgo3tVY1ieffDJeeeWVpshC9bT6xXUo+rVYr0dNHAwRMZgo\n+tjwC9wyGQ7ZqWflqmPl3bOQbjAZERFvkRn1yv0VePvxVXrdtnNrdO7f0WCi6GPHz3DLxIOK+lR4\n1RwWNRFFBJZ1lPvg5Q+Rv6dQr0dO4FF1Xdixc39R/6xnZaorvGo2FA591wMRkQks6ygWKA/grUfz\n9LrVyceg6+BTDCaKLnb8ALdMhF1+0bMydSa86q9QSDaYjIioKpZ1FFu76L/w7MrX65ETh8Bm419p\nbTjw3f6iDr3P0q96wKvuBZBkLhgR0WHwJ3uUClQEseyRd/T6mPbNceawLgYTRQ8HtsMtk2AXr575\nVW/kq3sAJJoLRkRUDd4iM0qtf20D9v0Yukb7yAmDYbPz/141ceAruOUm2KRIz3yqHwrUreA/ByKK\nVPzpFIWsoIVlC0JH1c3bZqP7yK4GE0UHJ7bCJVNhkxI986lBKFDTwX8KRBTJ+BMqCn20dBP2fLdX\nr4ffMAh2h91gosjnxBa4ZAZsErrKW6kaikJ1EwD+2RFRZGNZRxnLsrD0gKPq7NZu9Lww8u6sFUkS\nsBlZcjNs4tezUjUChWoyeNoGEUUDlnWU2bh8C3Zt263Xw8cPhMPJI8PqJGADXHIrREL3+C5RF6JI\n3QCA70cnoujAso4ilmXhjfkr9Np9TBZ6j+Vd0KqTgA/hktshUqFnJepiFKnrwKImomjCso4iH7/z\nOX78YpdeD7t+AJyJ/Cs8nESsRZbcCZGAnhWrS1Gs/gQWNRFFG/6kjxJKqSpH1ZlHZ+CccT0MJopc\niXgPWXIPRIJ6VmRdiRJcbjAVEVH9sayjxJbVX2DHlh/1eth1/ZGQnGAwUWRKQh4y5X6IWHpWZP0Z\nJbjEYCoiooZhWUcBpRSWHnBUne5ORb9LexpMFJmS8TYyZDZElJ4VWuNRirEGUxERNRzLOgps/c82\nbN+4Q6/PvaYfElN4WcwDJWMZMm25VWaF1kSU4gJDiYiIwodlHQWWPrRS/z41MwUDrjjbYJrIk4LX\nkGGbr9dKCQrVFPgw3GAqIqLwYVlHuC8/3I4vP9yu14OvPgfJabwr1G9S8AoybI/qtVKCAjUdfpxr\nMBURUXixrCPcga9VJ6cnYdBVfQymiSypeBHptqf0WikbCtQt8GOgwVREROHHso5g2zfuwOdrtun1\nwCv7IDUzxWCiSKGQiueQbns2NFF25KvbUYa+xlIRETUWlnUEO/CoOjElAef+ua+5MBFDIU2eQZr8\nIzRRDuSrO1GG3gZzERE1HpZ1hPpuy4/4ZNVWvR5w+dlIc6UaTBQJFNLlMaTKK6GJcsKr7kE5eIEY\nIopdLOsIdeBRdUKSE0Ov7WcwTSRQSJcFSJUloYlKhFfdh3KcYTAXEVHjY1lHoB+27sSmFZ/qdd9L\neyIjO91gItMsZMg8pMiy0EQlIV/9FeXoajAXEVHTYFlHoGUH3K/amejAsOsGGExjWhAZ8iBS5N96\nYqkUeNUDqMCpBnMRETUdlnWE2fX1bvzvzY/1us/ve8DVItNgIpMCyJRZSJY8PbFUKrzqQVSgo8Fc\nRERNi2UdYZY+vBJKVV7b2u6047y/xOtRdQCZci+S5T09sVQGPGoOAjjRXCwiIgNY1hFk5/bd+PCN\nTXrde2w3NMtxG0xkSjmy5G4kyVo9sVQmPCoXAbQ3mIuIyAyWdQRZNHsplFV5VG2z2zB8fDxeiasM\nWTITSfKhngSVC141FwEcZzAXEZE5LOsIsffHX7HqpdCRZM8Lz8DRbbINJjLBD5fchkTZoCdBlQ2P\nmosgjjWYi4jILJZ1hHhrYR6CgSAAQGyCETcMMpyoaQl8yJJbkCib9Syomu8v6hyDyYiIzGNZRwDP\nrnyseeUjve4+oitatDvaYKKmJSiBS2YgQULvLQ+oY+BVcxHEMQaTERFFBpZ1BFj+2LsIlAf1esSE\nwQbTNC1BEVwyDQnyhZ4FVCt41FxYiJ//sBARHQnL2rD8PQV476V1en3GsC5odVJ8HE0KCuGWm+CU\n0J3FAupYeNQ8WGhmMBkRUWSxmQ4Q795+YhUqygJ6PXJifBxVC/LhlslVirpCHQePeohFTUR0EB5Z\nG1T4azFWvRA6qu4+/HS06dTKYKImYu2DWybBKTv0qEK1h0fNgUKWuVxERBGKR9YG/fvJ1Sj3lev1\nuJsvMJimadiwF/bCKw8q6pPgUXNZ1ERE1WBZG1LsLcG7z67R61P7dsAJv2tnMFHjs2EP3DIRYn2n\nZ+WqEzwqFwoZBpMREUU2lrUhK595H/6SMr0eNWmIwTSNz46f4ZaJcMguPStXXeBVD0IhzWAyIqLI\nx7I2oLTQh3f+9oFed+x1Ak44I3YvpWnHT/uLereelanT4VWzoJBiMBkRUXRgWRuQ9+walBb69Hrk\nxNg9qrbje7hlIuzyi55Zzl7wqr9CIdlgMiKi6MGybmK+Yj/+/eRqvT6xWzucfFZs3knKgW/hlkmw\ny6965ldnwUp7GECiuWBERFGGZd3EVj3/H5Tkl+r1qElDICIGEzUOB77eX9RePfOrPshXdwPCoiYi\nqgu+z7oJlfnK8e8nV+n18V3boNPZJxlM1Dgc+BJumQqbFOmZT/VHgboF/JYjIqo7/uRsQu+9uA6F\n+4r1emQMHlU78TlcMg02KdEznxqMAjUN/HYjIqof/vRsIuX+Cix/7F29bnNqK3Tp39FgovBzYgtc\nMh02CZ08V6qGoVBNAWA3F4yIKMqxrJvImn99iPw9hXo9csLgmDqqTsAmZMktsIlfz0rVKBSqieCp\nEUREDcOybgKB8gDeXJin161OOganDznVYKLwSsD/4JJbIRK6dGqJGo0i9X8AYuc/JEREprCsm8Da\nRf+FZ1e+Xo+cOBg2W2wcbSZiPbLkDohU6FmxGodidQ1Y1ERE4cGybmSBimCVo+pj2jfHmeedZjBR\n+CRiDbLkLoiEbvFZrC5DsboKLGoiovBhWTeyD1/fiL0/hC4KMuKGQbDZo/+oOgmrkSn3QMTSsyLr\nKpTgjwZTERHFJpZ1I7KCFpYteEevj26TjR6jTjeYKDySsBKZMuugor4WJRhnMBURUexiWTeij5Zt\nxu5vQ9fEHnHDINgd0f0WpmS8jQyZDRGlZ4XWeJRirMFURESxjWXdSCzLwrIFK/U6u5UbPUefaTBR\nwyVjKTJtc6vMCqzJ8GGUoURERPGBZd1INr69BTu/Ct0S8rzxA+BwRu9RdQqWIMP2sF4rJShUN8GH\n8wymIiKKDyzrRqCUwtL5oaNqV4tMnH1RD4OJGiYFLyPD9rheK2VDgZoOP2L31p5ERJGEZd0INr/z\nGX7YulOvh10/AM7E6PyjTsU/kG57Wq8ri/pW+DHAYCoiovgSnQ0SwSqPqlfodeZR6ej7h7MMJqov\nhTR5FmnyXGii7MhXd6AM5xjMRUQUf1jWYfbpe1/iu09+1Ouh1/VHQnKCwUT1oZAmTyFNXgpNlBP5\n6i6UoafBXERE8YllHUZKKbxxwFF1ujsV/S/rZTBRfSiky6NIlUWhiXLCq+5FObobzEVEFL9Y1mH0\nxbqvsX3Dd3o95Jp+SExJNJioriyky8NIldf1RKlEeNX9KMfvDOYiIopvLOsweuOh0FF1amYKBl5+\ntsE0dWUhQ+YiRd4MTVQSvGoWKhAb1zInIopWLOsw+eqjb/Dl+u16PehPfZCcnmQwUV0EkSmzkSyh\n/2xYKhVe9QAqcIrBXEREBLCsw+bA16qT0hIx+KpoOWM6gEyZhWQJ3RnMUmnwqgdRgQ4GcxER0W9Y\n1mHwzaYd+PyDr/R60FXnIDUrxWCi2gogS+5BkryvJ5bKgEfNQQAnGsxFREQHYlmHwYFH1YkpCRhy\ndTQcVZcjS+5CkvxHT4IqC141FwG0M5iLiIgOxrJuoB2f/ohP3t2q1wP+2Bvp7jSDiWqjDFkyE0ny\noZ4ElRseNRdBtDUXi4iIDotl3UAHXgM8IcmJc6/tZzBNbfjhkluRKBv1JKiy4VHzEERrg7mIiKg6\nLOsG+PGLXdj47y163feSnsg8KsNgoiMTlCJLbkGifKxnQdV8/xF1jsFkRER0JCzrBjjwftWOBDuG\nXtffYJojE5TAJdORIJ/pWUC1hEfNhYUWBpMREVFNaizrRx99FJs2bUJmZiZyc3ObIlNU2LV9D/67\nLHSE2uf3PeA+JstgouoJiuCSaUiQL/QsoFrDo3Jh4WiDyYiIqDZsNW3Qt29f3HLLLU2RJaose3gl\nlFIAALvDhvP+MtBwosMTFMAtU6oUdYVqC496iEVNRBQlaizrjh07Ii0t0s9ublp7vtuL9a+HTtDq\nPbY7slu5DSY6PBu8cMuNcMo2PatQ7eBV82ChmcFkRERUF2F7zTovLw95eZVXwZo1axays7Mb/Jj2\nAgcQrPx9SnIyklIa/pjh8I9bl0BZlUfVNrsNl91+UVj21+FwhOVxAADWXtiLboIEv9EjZe8ASX8K\nbpvZp+vDup8RjPsZW7ifsSXa9jNsZT1w4EAMHBh6Knjfvn0NfsxmEoBTKn9f6vOhuLThj9lQe3/8\nFateXKPXZ13wOzgzbGHZ3+zs7LA8jg174ZYbIRK6r3a56gBvxWwoTwCA2T/HcO1npON+xhbuZ2wJ\n9362bNkybI91ODU+DU5VvfXouwgGLACAiGDEDYMMJ6rKhj1wy0Q4qhT1KfCqOVBIN5iMiIjqi2Vd\nB56f87HmX6GrfnUb2RXHHN/cYKKq7NiFZjIBDtmlZ+WqC7xqNhRSDSYjIqKGqPFp8Iceeghbt25F\nUVERrrvuOlx00UXo3z9y30/cmJY/9i4C5UG9HhlBR9V2/AS3TIZd9upZmTod+eo+KCQbTEZERA1V\nY1lPmjSpKXJEvPxfCvHei+v1+oyhndHq5MZ9jaK27Ph+f1F79KxMdYNX3QMg0VwwIiIKCz4NXktv\nP7EKFWUVej1y0hCDaUIc+BZumVilqP2qF7zqXrCoiYhiAy83WguFvxZj1fOhW0meNugUtOnUymCi\nSg58DbdMgU0K9cyv+iBf3Q7AaS4YERGFFcu6FlY8tRrlvnK9HjVxsME0lRz4Em65CTYp1jOfGoAC\ndTP410pEFFv4U70Gxd4S5D0bel/1qeecjHantTGYCHDiM7hkOmxSomc+NQQFahoAu7lgRETUKFjW\nNXjnbx/AX1ym16Zfq3biE7hkBmzi07NSdR4K1RTwFAQiotjEsj4CX5EfK//2vl536HkCTjyznbE8\nCdiILLkVNvHrWYk6H0VqAljURESxi2V9BHnPfoDSgtAR7KiJ5o6qE/BfuOQ2iIReOy9RY1Gk/gJA\njOUiIqLGx7Kuhr+kDP9+8j29PuHM43Byz/ZGsiRiHbJkJkRCbx0rVuNQrK4Bi5qIKPaxrKux6vm1\nKCCMs1wAABLnSURBVPaGTuAaNelciDR9MSbiA2TJXRAJXTmtWF2OYnUFWNRERPGBZX0YZb5yvP3E\nKr1ud1obnNLnpCbPkYRVyJR7IWLpWZH1J5TgsibPQkRE5rCsD+P9F9ehcF/o/cujJg1u8qPqJKxE\npsyqUtSF1nUoxe+bNAcREZnHsj5Iub8Cbz0WOqpuc0ordBnQqUkzJGM5MuRBiCg9K7RuQClGN2kO\nIiKKDCzrg6x55SPk7ynQ65ETmvaoOhlvINM2r8qswJoMH0Y1WQYiIoosLOsDBMoDeGthnl63OukY\nnH7uqU329cX/QpWiVkpQqKbCh2FNloGIiCIPy/oAa1/9H37d6dXrERMGw2ZrmouNpOBl2Esf12ul\nbChQM+CH+euQExGRWSzr/YKBIN5c+I5eH3P80eg2/LQm+dqpeB7ptr/pdWVR3wY/+jfJ1yciosjG\nst5v/esbsff7X/V6xA2DYbM39lG1Qpr8HWnyfGiiHMhXM1GGsxv5axMRUbRgWQOwghaWPRw6qj66\nTTZ6/H979x4dVXWoAfzbM3lM3slMICGBIAkImhRCeBhA5JHhoYJyHytdvnq53FZFasJdXmqwXMKV\nRYtAIKKh0bsUb229Wuq6iGhFUxUUqkQgBUQpiSmvgGkyCYQkM8mZs+8f6AkohZDMyZk58/3+Yu+Z\n7POdsBYf+8yZmXk5Oh9VIlo8j2jxv5fMhKJZ/hc8mKjzsYmIKJCwrAHs3V6Fs1/Va+M5P3XCGqLn\nV01KxIgyRInfd83IMKgxz8Bzvu8/fIWIiPxb0H9Vk6qq2LZxhzZ2pCZg0j+N0/OIiBFPX1bUqrSh\nSa6GDJuk43GJiChQBf3Oev87h3D66FltfOciJ0LC9Pq1qIgVJYgUb3XNyAg0yafQiZE6HZOIiAJd\nUJe1lBJvPN21q45PisPk/Ft0OpoXcWINIkTX8VQZhSa5Bp3o209IIyKiwBLUZV1V8TlOfH5aG9+5\ncDrCbKE6HElBnPgFIkTXx5iqMhouuQ4KRuhwPCIiMpOgLWspJd4o7drlxvWLwZT79LgLuxPxYiVs\nYpc2o8pYuGQJFAzT4XhERGQ2QVvWh3d+ido/n9DGsx+ajvCIMB8fpQPxYgVsYo8245UJaJIlUJDu\n42MREZFZBWVZf/e16uiEKEx/wNd3YnuQIP4T4WKvNuOVDrjkengx2MfHIiIiMwvKsv5yTzWOVdZq\n49kPToUtKtxn6wu0I178HOFivzbnlf3gkhvgxUCfHYeIiIJDUJb1pbvqyLgIOOff5rO1BdqQIJYi\nTPxZm/PKJLhkKbwY4LPjEBFR8Ai6sv7L3hp8seeYNp65YAoiYmw+WVvgAhJEEcLEYW1OkSlwyQ1Q\nkeSTYxARUfAJurJ+4+l3tT/bosMx89+m+GRdgRYkiCUIE19qc4ocBJdcDxX9fHIMIiIKTkFV1jUH\njuPwzq4ynfGvtyEqPrLX6wo0wy6WIFR07dg75Q1okiVQ4ej1+kREFNyCqqy3XfJadXhkGGb9ZGqv\n17SgCQniMYSKr7S5TpkBlyyBRHyv1yciIgqaL/I4fvgUqio+18bTH7gVMfboXq1pQSPsYvF3ivpG\nuOR6FjUREflM0JT1pbvq0PBQzH5oWq/Ws6AedlGIEHFcm+uQN32zo47r1dpERESXCoqyPvVlHT77\nw0FtPPW+CYjvH9vj9Sw4C7tYjBBxSpvrkFlokusgEdOrrERERN8VFGW97Zn3tD+HhFlxx8K8Hq9l\nxWk4RCFCRJ0255HZaJJrIBHVq5xERERXYvqyrqv+Gnu3HdDGk3+YC/uAnr2ebMVJ2EUhrOJrbc4j\nx6JJroZE7+8qJyIiuhLTl/Wbz7wHKSUAwBpiwZxFzh6tY8VfvynqBm3OLXPRJFcB8M2HqhAREV2J\nqcv667824JOt+7TxpH8ej8SB9uteJwQ1sIvFsAqXNueWk9AsnwTgu88UJyIiuhJTv896+7PvQfWq\nAACL1YI5P51x3WuE4C+wi/+ARZzX5trlVJyTy2DyXx8REfkJ07ZNwykXdv++6+spc+eNQdINide1\nRii+QIJYAou4oM21SyfOySKY+FdHRER+xrSN89amCniVi7tqIQTmPnp9u+pQHEaC+Bksok2ba5Oz\ncV4uAWD1ZVQiIqKrMmVZu840Y9ern2jj8XOzkTK0+996FYoqJIgiWIRbm2uTc3Fe/jtM/jI/ERH5\nIVOW9R/K34fS4dXGcx+d2e2fDcNnSBA/hxAeba5V/gNaZAEA4cuYRERE3WK6sm6uP48PfrNHG4+Z\nPRKDbkrp1s+G4VMkiGUQolOba5X5aJELwaImIiKjmK6s33nuA3R6usr27sWzuvVz4diNeLHisqK+\nIO/DBfljsKiJiMhIpirrFtcFvP/yx9o425mJwVkDr/lz4diJePEkhOi6dN6izkcr/gUsaiIiMpqp\nynrHf38IT1uHNr6r8Nq7ahv+iDixCkKo2lyL+hO04j5dMhIREV0v05R1a3Mb3tu8SxtnTRmBjNGD\nr/ozNryDOLHmsqI+ry5EG36oW04iIqLrZZqyfvfFnXBf6LqD++7Cq98BHoHtiBUlEEJqc+fVArTh\nH3XLSERE1BOmKOv2FjfefWGnNh4xYShuHJ/xd58fga2Is5ReNndOfQztmKtbRiIiop4yRVlXvLQL\nbefatfHV7gCPxBbEWsq0sZQC5+XP0I7bdc1IRETUUwFf1u5WD955/kNtPGzcENw0cdgVnxuFVxBj\neV4bS2nBObkUblz/F3wQERH1lYAv6/df3o0LTa3a+O7CWRDi+2+3isKvEWN5URtLaUGzXA4PpvZF\nTCIioh4L6LLuaO/AO8+9r42HjEpD1pQR33mWRLR4EdHi5a4ZGYJmWQwPJvdRUiIiop4L6LL+8JU/\n4dzfWrTx3Yu/u6uWiBbPIVq82jUjQ9Esn4QHE/owKRERUc8FbFl3ehS8/as/auO0zFRkOzMveYZE\njHgWUeL1rhkZhia5Ch0Y14dJiYiIeidgy/qj332CprPntPFdBTMv2VWriBWliBTbtMdVaUOz/CU6\nMLqPkxIREfVOQJa10qFg+7MV2jh1eDLG3D7ym5EXsaIEkeJt7XFVRqBJPoVOjAQREVGgCciy3v16\nJRpPN2njuY/OhMViAaAgTjyFCPGe9pgqo9Ak16ATmVdYiYiIyP8FXFl7FS/efLarjJPT++OWuaNx\nsahXIUJ8oD2myhi45DooGG5AUiIiIt8IuLL+ZOt+/O14ozaeWzADFqsX8eJJ2MRH2rwq4+CSJVAw\n1IiYREREPhNQZa16Vbz5zLvauN9gBybM+wHixXLYxJ+0ea9MQJNcDwVDjIhJRETkUwFV1pVvVeFM\nTb02vrtgKhJDlyNcVGpzXumAS66HF1f/ekwiIqJAETBlraoS257u2lWnZMRibv7/IVwc0Oa8sv83\nRT3QiIhERES6CJiyrtzRglNHzwAAIqK8eGrLCdisx7XHFZmMJrkBXgwwKiIREZEuAqKspQS2lDYA\nACJjvFj9u+Pon9z1MaOKTIFLlkJFf6MiEhER6cZidIDu+LQiBrWHPYiJV7D6tRoMH3VpUQ+CS25k\nURMRkWn5/c5aSuCV0iTE2hX88tUaDM1ya491yhvQJNdDhd3AhERE1FeklHh+8W9hHxCHbGcWMkYP\nhsUaEPvOXvH7st6/MxpfnwzDmi01GHLTpUWdAZcsgUS8gemIiKgvCSEw9vaR2PjjF7D92QrEOKIx\navrNyHZmImvKCERE24yOqItulXVVVRU2b94MVVWRl5eHefPm6Z0LwMVd9Zv/48Da12uQNsyjzXfK\n4XDJtZCI7ZMcRETkP3Jm/QBpmak48flptDRewMdb9uLjLXthDbVixIShGO3MQvaMTPQb5DA6qs8I\nKaW82hNUVUVhYSGWLVsGh8OBpUuXorCwEAMHXv3tUXV1db0O93XlAiT2O4XU9A5t7uRX/fCbslnw\nuMN6vb6/CQ+3weNxX/uJAY7naS48T3MJlPM8ffQsThw5fdXnDBw+AKOcmRg94/uXyxMTE9HQ0OCz\nPCkpKT5b60quubOurq5GcnIykpKSAAATJ05EZWXlNcvaFzxuK05Wh2tlffjTKCy7PwntrYd0PzYR\nEQW2U0fP4NTRM3irrAIx9iiMystEdt7Fy+VINDrd9blmWbtcLjgcXZcSHA4Hjh079r3nVVRUoKLi\n4tdWrl69GomJvf9NJM57DaerT+Oj7fcjJkHB8h8Ngafd2ut1iYgouHS4FShuLywyBNGRMQgJCfFJ\nT/UVn91g5nQ64XQ6tbGvLi+0d6h494274FXcGDHB7++H65XQsDB0dnRc+4kBjudpLjxPcwmU86w/\n3nDZx09fiX1APLJnZCLbmYWbJg5DmC0UAOBFJxRFMddlcLvdjsbGrm+5amxshN3ed2+Vik+KQ/Hr\nj/v0l+qvfP0air/ieZoLz9NcAuE8pZRYedeGKz6Wnj34m4LORNrNqRBC9HE6fVyzrDMyMnDmzBnU\n19fDbrdjz549KCgo6ItsRERE33Powy9Rc+Dix02HRYQh67bhyHZmYlReJuL7m/NdQtcsa6vVigUL\nFmDVqlVQVRXTpk3DoEGD+iIbERHRZaSU2PXaJ5j+o0nfu7xtZt16ETgnJwc5OTl6ZyEiIrqmRb+a\nb5rL291l7ju2iIjIVIKtpL9l/g9UJSIiCnAsayIiIj/HsiYiIvJzLGsiIiI/x7ImIiLycyxrIiIi\nP8eyJiIi8nMsayIiIj/HsiYiIvJzLGsiIiI/x7ImIiLycyxrIiIiP8eyJiIi8nNCSimNDkFERER/\nX0DsrIuKioyO0Cd4nubC8zQXnqe5BNp5BkRZExERBTOWNRERkZ+zrlixYoXRIbojPT3d6Ah9gudp\nLjxPc+F5mksgnSdvMCMiIvJzvAxORETk51jWREREfi7E6ABXU1VVhc2bN0NVVeTl5WHevHlGR9LF\npk2bsH//fsTFxaGkpMToOLpoaGhAWVkZmpubIYSA0+nEHXfcYXQsn+vo6EBxcTEURYHX60Vubi7y\n8/ONjqUbVVVRVFQEu90ecG+F6a5FixbBZrPBYrHAarVi9erVRkfSRWtrK8rLy3Hy5EkIIbBw4ULc\neOONRsfyqbq6OmzYsEEb19fXIz8/H3feeaeBqbrHb8taVVW88MILWLZsGRwOB5YuXYqxY8di4MCB\nRkfzualTp2L27NkoKyszOopurFYrHnjgAaSnp6O9vR1FRUUYOXKk6f4+Q0NDUVxcDJvNBkVRsHz5\ncmRnZ5vuH71vvf3220hNTUV7e7vRUXRVXFyM2NhYo2PoavPmzcjOzsZjjz0GRVHg8XiMjuRzKSkp\nWLt2LYCLHfPQQw9h/PjxBqfqHr+9DF5dXY3k5GQkJSUhJCQEEydORGVlpdGxdHHzzTcjOjra6Bi6\nSkhI0O68jIiIQGpqKlwul8GpfE8IAZvNBgDwer3wer0QQhicSh+NjY3Yv38/8vLyjI5CvdTW1oYv\nvvgC06dPBwCEhIQgKirK4FT6OnToEJKTk9GvXz+jo3SL3+6sXS4XHA6HNnY4HDh27JiBichX6uvr\nUVtbi6FDhxodRReqquLxxx/H2bNnMWvWLAwbNszoSLp46aWXcP/995t+Vw0AK1euhMViwYwZM+B0\nOo2O43P19fWIjY3Fpk2bcPz4caSnp2P+/PnafzzNaPfu3Zg0aZLRMbrNb3fWZE5utxslJSWYP38+\nIiMjjY6jC4vFgrVr16K8vBw1NTU4ceKE0ZF8bt++fYiLiwuo96n21MqVK7F27Vo88cQT2LFjB44c\nOWJ0JJ/zer2ora3FzJkzsWbNGoSHh2Pr1q1Gx9KNoijYt28fcnNzjY7SbX5b1na7HY2Njdq4sbER\ndrvdwETUW4qioKSkBJMnT8Ytt9xidBzdRUVFITMzE1VVVUZH8bmjR4/is88+w6JFi1BaWorDhw9j\n48aNRsfSxbf/7sTFxWHcuHGorq42OJHvORwOOBwO7SpQbm4uamtrDU6lnwMHDmDIkCGIj483Okq3\n+W1ZZ2Rk4MyZM6ivr4eiKNizZw/Gjh1rdCzqISklysvLkZqaijlz5hgdRzfnz59Ha2srgIt3hh88\neBCpqakGp/K9e++9F+Xl5SgrK8PixYuRlZWFgoICo2P5nNvt1i7zu91uHDx4EGlpaQan8r34+Hg4\nHA7U1dUBuPh6rtlu/rxUoF0CB/z4NWur1YoFCxZg1apVUFUV06ZNw6BBg4yOpYvS0lIcOXIELS0t\nePjhh5Gfn6/d6GEWR48exa5du5CWloYlS5YAAO655x7k5OQYnMy3mpqaUFZWBlVVIaXEhAkTMGbM\nGKNjUQ+dO3cO69atA3DxUvGtt96K7Oxsg1PpY8GCBdi4cSMURUH//v3xyCOPGB1JF9/+p+vBBx80\nOsp14ceNEhER+Tm/vQxOREREF7GsiYiI/BzLmoiIyM+xrImIiPwcy5qIiMjPsayJiIj8HMuaiIjI\nz/0/k1vRUDWzMRUAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Matrices, Transformations and Geometric Interpretation\n", + "a1 = np.array([7,0]) # axis\n", + "a2 = np.array([0,5])\n", + "\n", + "A = np.array([[2,1],[1,1]]) # transformation f in standard basis\n", + "v2 =np.dot(A,v1)\n", + "plt.figure(figsize=(8,8))\n", + "plot_vectors([a1, a2])\n", + "v1 = np.array([2,3])\n", + "plot_vectors([v1,v2])\n", + "plt.text(2,3,\"v1 =(2,3)\",fontsize=16)\n", + "plt.text(6,5,\"Av1 = \", fontsize=16)\n", + "plt.text(v2[0],v2[1],\"(7,5)\",fontsize=16)\n", + "print(v2[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n4wAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Change to a Different Basis\n", + "e1 = np.array([1,0])\n", + "e2 = np.array([0,1])\n", + "B = np.array([[1,4],[3,1]])\n", + "plt.figure(figsize=(8,4))\n", + "plt.subplot(1,2,1)\n", + "plot_vectors([e1, e2])\n", + "plt.subplot(1,2,2)\n", + "plot_vectors([B.dot(e1), B.dot(e2)])\n", + "plt.Circle((0,0),2)\n", + "#plt.show()\n", + "#plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + ".draw_wrapper>" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nIp/z/xMIzTfiiG1dAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Inner Products \n", + "e1 = np.array([1,0])\n", + "e2 = np.array([0,1])\n", + "A = np.array([[2,3],[3,1]])\n", + "v1=A.dot(e1)\n", + "v2=A.dot(e2)\n", + "plt.figure(figsize=(8,4))\n", + "plt.subplot(1,2,1)\n", + "plot_vectors([e1, e2])\n", + "plt.subplot(1,2,2)\n", + "plot_vectors([v1,v2])\n", + "plt.tight_layout()\n", + "#help(plt.Circle)\n", + "plt.Circle(np.array([0,0]),radius=1)\n", + "plt.Circle.draw" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "afc2a360fedd783e5e9d7bbc975c9c6f06a2ee72" + }, + "source": [ + "
\n", + "# 21-Conclusion\n", + "If you have made this far – give yourself a pat at the back. We have covered different aspects of **Linear algebra** in this Kernel. I have tried to give sufficient amount of information as well as keep the flow such that everybody can understand the concepts and be able to do necessary calculations. Still, if you get stuck somewhere, feel free to comment below.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b132163ee07917a0ab100b93f6ed5545ce0de45d" + }, + "source": [ + "you can follow me on:\n", + "> ###### [ GitHub](https://github.com/mjbahmani)\n", + "> ###### [Kaggle](https://www.kaggle.com/mjbahmani/)\n", + "\n", + " **I hope you find this kernel helpful and some upvotes would be very much appreciated**\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5719a5ba111b65b20b53d538281ac773eb14471a" + }, + "source": [ + "
\n", + "# 22-References" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "aab5b3d8cb417250dc6baa081a579106900effba" + }, + "source": [ + "* [1] [Linear Algbra1](https://github.com/dcavar/python-tutorial-for-ipython)\n", + "* [2] [Linear Algbra2](https://www.oreilly.com/library/view/data-science-from/9781491901410/ch04.html)\n", + "\n", + "\n" + ] + } + ], + "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.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/Pyris/20 ML Algorithms from start to Finish for Iris.ipynb b/Pyris/20 ML Algorithms from start to Finish for Iris.ipynb new file mode 100644 index 0000000..fc54260 --- /dev/null +++ b/Pyris/20 ML Algorithms from start to Finish for Iris.ipynb @@ -0,0 +1,1973 @@ +{ + "cells": [ + { + "metadata": { + "_uuid": "a8f9622945156d6337ba73c481da2de7efef7384" + }, + "cell_type": "markdown", + "source": "##
20 ML Algorithms from start to Finish for Iris
\n\n
I want to solve Iris problem (Hello World) a popular machine learning Dataset as a comprehensive workflow with python packages. \nAfter reading, you can use this workflow to solve other real problems and use it as a template to deal with machine learning problems.
\n![iris](https://image.ibb.co/gbH3ue/iris.png)\n
last update: 11/01/2018
\n\n\n\n>###### you may be interested have a look at it: [**10-steps-to-become-a-data-scientist**](https://github.com/mjbahmani/10-steps-to-become-a-data-scientist)\n\n\n---------------------------------------------------------------------\nyou can Fork and Run this kernel on Github:\n> ###### [ GitHub](https://github.com/mjbahmani/Machine-Learning-Workflow-with-Python)\n\n-------------------------------------------------------------------------------------------------------------\n\n **I hope you find this kernel helpful and some UPVOTES would be very much appreciated**\n \n -----------" + }, + { + "metadata": { + "_uuid": "cda11210a88d6484112cbe2c3624225328326c6a" + }, + "cell_type": "markdown", + "source": "## Notebook Content\n* 1- [Introduction](#1)\n* 2- [Machine learning workflow](#2)\n* 2-1 [Real world Application Vs Competitions](#2)\n\n* 3- [Problem Definition](#3)\n* 3-1 [Problem feature](#4)\n* 3-2 [Aim](#5)\n* 3-3 [Variables](#6)\n* 4-[ Inputs & Outputs](#7)\n* 4-1 [Inputs ](#8)\n* 4-2 [Outputs](#9)\n* 5- [Installation](#10)\n* 5-1 [ jupyter notebook](#11)\n* 5-2[ kaggle kernel](#12)\n* 5-3 [Colab notebook](#13)\n* 5-4 [install python & packages](#14)\n* 5-5 [Loading Packages](#15)\n* 6- [Exploratory data analysis](#16)\n* 6-1 [Data Collection](#17)\n* 6-2 [Visualization](#18)\n* 6-2-1 [Scatter plot](#19)\n* 6-2-2 [Box](#20)\n* 6-2-3 [Histogram](#21)\n* 6-2-4 [Multivariate Plots](#22)\n* 6-2-5 [Violinplots](#23)\n* 6-2-6 [Pair plot](#24)\n* 6-2-7 [Kde plot](#25)\n* 6-2-8 [Joint plot](#26)\n* 6-2-9 [Andrews curves](#27)\n* 6-2-10 [Heatmap](#28)\n* 6-2-11 [Radviz](#29)\n* 6-3 [Data Preprocessing](#30)\n* 6-4 [Data Cleaning](#31)\n* 7- [Model Deployment](#32)\n* 7-1[ KNN](#33)\n* 7-2 [Radius Neighbors Classifier](#34)\n* 7-3 [Logistic Regression](#35)\n* 7-4 [Passive Aggressive Classifier](#36)\n* 7-5 [Naive Bayes](#37)\n* 7-6 [MultinomialNB](#38)\n* 7-7 [BernoulliNB](#39)\n* 7-8 [SVM](#40)\n* 7-9 [Nu-Support Vector Classification](#41)\n* 7-10 [Linear Support Vector Classification](#42)\n* 7-11 [Decision Tree](#43)\n* 7-12 [ExtraTreeClassifier](#44)\n* 7-13 [Neural network](#45)\n* 7-13-1 [What is a Perceptron?](#45)\n* 7-14 [RandomForest](#46)\n* 7-15 [Bagging classifier ](#47)\n* 7-16 [AdaBoost classifier](#48)\n* 7-17 [Gradient Boosting Classifier](#49)\n* 7-18 [Linear Discriminant Analysis](#50)\n* 7-19 [Quadratic Discriminant Analysis](#51)\n* 7-20 [Kmeans](#52)\n* 7-21 [Backpropagation](#53)\n* 8- [Conclusion](#54)\n* 10- [References](#55)" + }, + { + "metadata": { + "_uuid": "750903cc2679d39058f56df6c6c040be02b748df" + }, + "cell_type": "markdown", + "source": "
\n## 1- Introduction\nThis is a **comprehensive ML techniques with python** , that I have spent for more than two months to complete it.\n\nit is clear that everyone in this community is familiar with IRIS dataset but if you need to review your information about the dataset please visit this [link](https://archive.ics.uci.edu/ml/datasets/iris).\n\nI have tried to help **beginners** in Kaggle how to face machine learning problems. and I think it is a great opportunity for who want to learn machine learning workflow with python completely.\nI have covered most of the methods that are implemented for iris until **2018**, you can start to learn and review your knowledge about ML with a simple dataset and try to learn and memorize the workflow for your journey in Data science world.\n\n## 1-1 Courses\n\nThere are alot of Online courses that can help you develop your knowledge, here I have just listed some of them:\n\n1. [Machine Learning Certification by Stanford University (Coursera)](https://www.coursera.org/learn/machine-learning/)\n\n2. [Machine Learning A-Z™: Hands-On Python & R In Data Science (Udemy)](https://www.udemy.com/machinelearning/)\n\n3. [Deep Learning Certification by Andrew Ng from deeplearning.ai (Coursera)](https://www.coursera.org/specializations/deep-learning)\n\n4. [Python for Data Science and Machine Learning Bootcamp (Udemy)](Python for Data Science and Machine Learning Bootcamp (Udemy))\n\n5. [Mathematics for Machine Learning by Imperial College London](https://www.coursera.org/specializations/mathematics-machine-learning)\n\n6. [Deep Learning A-Z™: Hands-On Artificial Neural Networks](https://www.udemy.com/deeplearning/)\n\n7. [Complete Guide to TensorFlow for Deep Learning Tutorial with Python](https://www.udemy.com/complete-guide-to-tensorflow-for-deep-learning-with-python/)\n\n8. [Data Science and Machine Learning Tutorial with Python – Hands On](https://www.udemy.com/data-science-and-machine-learning-with-python-hands-on/)\n\n9. [Machine Learning Certification by University of Washington](https://www.coursera.org/specializations/machine-learning)\n\n10. [Data Science and Machine Learning Bootcamp with R](https://www.udemy.com/data-science-and-machine-learning-bootcamp-with-r/)\n\n\n5- [https://www.kaggle.com/startupsci/titanic-data-science-solutions](https://www.kaggle.com/startupsci/titanic-data-science-solutions)\n## 1-2 Ebooks\nSo you love reading , here is **10 free machine learning books**\n\n1. [Probability and Statistics for Programmers](http://www.greenteapress.com/thinkstats/)\n\n2. [Bayesian Reasoning and Machine Learning](http://web4.cs.ucl.ac.uk/staff/D.Barber/textbook/091117.pdf)\n\n2. [An Introduction to Statistical Learning](http://www-bcf.usc.edu/~gareth/ISL/)\n\n2. [Understanding Machine Learning](http://www.cs.huji.ac.il/~shais/UnderstandingMachineLearning/index.html)\n\n2. [A Programmer’s Guide to Data Mining](http://guidetodatamining.com/)\n\n2. [Mining of Massive Datasets](http://infolab.stanford.edu/~ullman/mmds/book.pdf)\n\n2. [A Brief Introduction to Neural Networks](http://www.dkriesel.com/_media/science/neuronalenetze-en-zeta2-2col-dkrieselcom.pdf)\n\n2. [Deep Learning](http://www.deeplearningbook.org/)\n\n2. [Natural Language Processing with Python](https://www.researchgate.net/publication/220691633_Natural_Language_Processing_with_Python)\n\n2. [Machine Learning Yearning](http://www.mlyearning.org/)\n\nI am open to getting your feedback for improving this **kernel**\n" + }, + { + "metadata": { + "_uuid": "e11b73b618b0f6e4335520ef80267c6d577d1ba5" + }, + "cell_type": "markdown", + "source": "
\n## 2- Machine Learning Workflow\nField of \tstudy \tthat \tgives\tcomputers\tthe\tability \tto\tlearn \twithout \tbeing\nexplicitly \tprogrammed.\n\nArthur\tSamuel, 1959\n\nIf you have already read some [machine learning books](https://towardsdatascience.com/list-of-free-must-read-machine-learning-books-89576749d2ff). You have noticed that there are different ways to stream data into machine learning.\n\nmost of these books share the following steps (checklist):\n* Define the Problem(Look at the big picture)\n* Specify Inputs & Outputs\n* Data Collection\n* Exploratory data analysis\n* Data Preprocessing\n* Model Design, Training, and Offline Evaluation\n* Model Deployment, Online Evaluation, and Monitoring\n* Model Maintenance, Diagnosis, and Retraining\n\n**You can see my workflow in the below image** :\n \n\n**you should\tfeel free\tto\tadapt \tthis\tchecklist \tto\tyour needs**" + }, + { + "metadata": { + "_uuid": "d8b27260d5ccff025f37490d84bd35bba7eef00a" + }, + "cell_type": "markdown", + "source": "## 2-1 Real world Application Vs Competitions\n" + }, + { + "metadata": { + "_uuid": "600be852c0d28e7c0c5ebb718904ab15a536342c" + }, + "cell_type": "markdown", + "source": "
\n## 3- Problem Definition\nI think one of the important things when you start a new machine learning project is Defining your problem. that means you should understand business problem.( **Problem Formalization**)\n\nProblem Definition has four steps that have illustrated in the picture below:\n\n
\n### 3-1 Problem Feature\nwe will use the classic Iris data set. This dataset contains information about three different types of Iris flowers:\n\n* Iris Versicolor\n* Iris Virginica\n* Iris Setosa\n\nThe data set contains measurements of four variables :\n\n* sepal length \n* sepal width\n* petal length \n* petal width\n \nThe Iris data set has a number of interesting features:\n\n1. One of the classes (Iris Setosa) is linearly separable from the other two. However, the other two classes are not linearly separable.\n\n2. There is some overlap between the Versicolor and Virginica classes, so it is unlikely to achieve a perfect classification rate.\n\n3. There is some redundancy in the four input variables, so it is possible to achieve a good solution with only three of them, or even (with difficulty) from two, but the precise choice of best variables is not obvious.\n\n**Why am I using iris dataset:**\n\n1- This is a good project because it is so well understood.\n\n2- Attributes are numeric so you have to figure out how to load and handle data.\n\n3- It is a classification problem, allowing you to practice with perhaps an easier type of supervised learning algorithm.\n\n4- It is a multi-class classification problem (multi-nominal) that may require some specialized handling.\n\n5- It only has 4 attributes and 150 rows, meaning it is small and easily fits into memory (and a screen or A4 page).\n\n6- All of the numeric attributes are in the same units and the same scale, not requiring any special scaling or transforms to get started.[5]\n\n7- we can define problem as clustering(unsupervised algorithm) project too.\n
\n### 3-2 Aim\nThe aim is to classify iris flowers among three species (setosa, versicolor or virginica) from measurements of length and width of sepals and petals\n
\n### 3-3 Variables\nThe variables are :\n**sepal_length**: Sepal length, in centimeters, used as input.\n**sepal_width**: Sepal width, in centimeters, used as input.\n**petal_length**: Petal length, in centimeters, used as input.\n**petal_width**: Petal width, in centimeters, used as input.\n**setosa**: Iris setosa, true or false, used as target.\n**versicolour**: Iris versicolour, true or false, used as target.\n**virginica**: Iris virginica, true or false, used as target.\n\n**<< Note >>**\n> You must answer the following question:\nHow does your company expact to use and benfit from your model." + }, + { + "metadata": { + "_uuid": "8bb4dfebb521f83543e1d45db3559216dad8f6fb" + }, + "cell_type": "markdown", + "source": "
\n## 4- Inputs & Outputs\n
\n### 4-1 Inputs\n**Iris** is a very popular **classification** and **clustering** problem in machine learning and it is such as \"Hello world\" program when you start learning a new programming language. then I decided to apply Iris on 20 machine learning method on it.\nThe Iris flower data set or Fisher's Iris data set is a **multivariate data set** introduced by the British statistician and biologist Ronald Fisher in his 1936 paper The use of multiple measurements in taxonomic problems as an example of linear discriminant analysis. It is sometimes called Anderson's Iris data set because Edgar Anderson collected the data to quantify the morphologic variation of Iris flowers in three related species. Two of the three species were collected in the Gaspé Peninsula \"all from the same pasture, and picked on the same day and measured at the same time by the same person with the same apparatus\".\nThe data set consists of 50 samples from each of three species of Iris (Iris setosa, Iris virginica, and Iris versicolor). Four features were measured from each sample: the length and the width of the sepals and petals, in centimeters. Based on the combination of these four features, Fisher developed a linear discriminant model to distinguish the species from each other.\n\nAs a result, **iris dataset is used as the input of all algorithms**.\n
\n### 4-2 Outputs\nthe outputs for our algorithms totally depend on the type of classification or clustering algorithms.\nthe outputs can be the number of clusters or predict for new input.\n\n**setosa**: Iris setosa, true or false, used as target.\n**versicolour**: Iris versicolour, true or false, used as target.\n**virginica**: Iris virginica, true or false, used as a target." + }, + { + "metadata": { + "_uuid": "89ee0cda57822cd4102eadf8992c5bfe1964d557" + }, + "cell_type": "markdown", + "source": "
\n## 5-Installation\n#### Windows:\n* Anaconda (from https://www.continuum.io) is a free Python distribution for SciPy stack. It is also available for Linux and Mac.\n* Canopy (https://www.enthought.com/products/canopy/) is available as free as well as commercial distribution with full SciPy stack for Windows, Linux and Mac.\n* Python (x,y) is a free Python distribution with SciPy stack and Spyder IDE for Windows OS. (Downloadable from http://python-xy.github.io/)\n#### Linux\nPackage managers of respective Linux distributions are used to install one or more packages in SciPy stack.\n\nFor Ubuntu Users:\nsudo apt-get install python-numpy python-scipy python-matplotlibipythonipythonnotebook\npython-pandas python-sympy python-nose" + }, + { + "metadata": { + "_uuid": "c1793fb141d3338bbc4300874be6ffa5cb1a9139" + }, + "cell_type": "markdown", + "source": "
\n## 5-1 Jupyter notebook\nI strongly recommend installing **Python** and **Jupyter** using the **[Anaconda Distribution](https://www.anaconda.com/download/)**, which includes Python, the Jupyter Notebook, and other commonly used packages for scientific computing and data science.\n\nFirst, download Anaconda. We recommend downloading Anaconda’s latest Python 3 version.\n\nSecond, install the version of Anaconda which you downloaded, following the instructions on the download page.\n\nCongratulations, you have installed Jupyter Notebook! To run the notebook, run the following command at the Terminal (Mac/Linux) or Command Prompt (Windows):" + }, + { + "metadata": { + "_uuid": "abbd1757dde9805758a2cec47a186e31dbc29822" + }, + "cell_type": "markdown", + "source": "> jupyter notebook\n> " + }, + { + "metadata": { + "_uuid": "8a70c253d5afa93f07a7a7e048dbb2d7812c8d10" + }, + "cell_type": "markdown", + "source": "
\n## 5-2 Kaggle Kernel\nKaggle kernel is an environment just like you use jupyter notebook, it's an **extension** of the where in you are able to carry out all the functions of jupyter notebooks plus it has some added tools like forking et al." + }, + { + "metadata": { + "_uuid": "237bbe4e4509c9491ce165e3599c432b979d7b90" + }, + "cell_type": "markdown", + "source": "
\n## 5-3 Colab notebook\n**Colaboratory** is a research tool for machine learning education and research. It’s a Jupyter notebook environment that requires no setup to use.\n### 5-3-1 What browsers are supported?\nColaboratory works with most major browsers, and is most thoroughly tested with desktop versions of Chrome and Firefox.\n### 5-3-2 Is it free to use?\nYes. Colaboratory is a research project that is free to use.\n### 5-3-3 What is the difference between Jupyter and Colaboratory?\nJupyter is the open source project on which Colaboratory is based. Colaboratory allows you to use and share Jupyter notebooks with others without having to download, install, or run anything on your own computer other than a browser." + }, + { + "metadata": { + "_uuid": "fbedcae8843986c2139f18dad4b5f313e6535ac5" + }, + "cell_type": "markdown", + "source": "
\n## 5-5 Loading Packages\nIn this kernel we are using the following packages:" + }, + { + "metadata": { + "_uuid": "61f49281fdd8592b44c0867225f57e6fce36342c" + }, + "cell_type": "markdown", + "source": " \n" + }, + { + "metadata": { + "_uuid": "4e28cde75726e3617dc80585626f7f8a1297a9e4" + }, + "cell_type": "markdown", + "source": "### 5-5-1 Import" + }, + { + "metadata": { + "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", + "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn.model_selection import train_test_split\nfrom sklearn.metrics import classification_report\nfrom sklearn.metrics import confusion_matrix\nfrom sklearn.metrics import accuracy_score\nfrom sklearn.decomposition import PCA\nimport matplotlib.pyplot as plt\nfrom pandas import get_dummies\nimport plotly.graph_objs as go\nfrom sklearn import datasets\nimport plotly.plotly as py\nimport seaborn as sns\nimport pandas as pd\nimport numpy as np\nimport matplotlib\nimport warnings\nimport sklearn\nimport scipy\nimport numpy\nimport json\nimport sys\nimport csv\nimport os", + "execution_count": 185, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3c3c434ac82d771c5549c4f36d0e8e878489f252" + }, + "cell_type": "markdown", + "source": "### 5-5-2 Print" + }, + { + "metadata": { + "trusted": true, + "_uuid": "72fdff866b7cbe404867e82f9122e16fc33facf2" + }, + "cell_type": "code", + "source": "print('matplotlib: {}'.format(matplotlib.__version__))\nprint('sklearn: {}'.format(sklearn.__version__))\nprint('scipy: {}'.format(scipy.__version__))\nprint('seaborn: {}'.format(sns.__version__))\nprint('pandas: {}'.format(pd.__version__))\nprint('numpy: {}'.format(np.__version__))\nprint('Python: {}'.format(sys.version))", + "execution_count": 186, + "outputs": [ + { + "output_type": "stream", + "text": "matplotlib: 2.2.3\nsklearn: 0.20.0\nscipy: 1.1.0\nseaborn: 0.8.1\npandas: 0.23.4\nnumpy: 1.15.3\nPython: 3.6.6 |Anaconda, Inc.| (default, Oct 9 2018, 12:34:16) \n[GCC 7.3.0]\n", + "name": "stdout" + } + ] + }, + { + "metadata": { + "trusted": true, + "_uuid": "eb2175f0f6bb0d2777d3a05247e79399681c3850" + }, + "cell_type": "code", + "source": "#show plot inline\n%matplotlib inline", + "execution_count": 187, + "outputs": [] + }, + { + "metadata": { + "_uuid": "04ff1a533119d589baee777c21194a951168b0c7" + }, + "cell_type": "markdown", + "source": "
\n## 6- Exploratory Data Analysis(EDA)\n In this section, you'll learn how to use graphical and numerical techniques to begin uncovering the structure of your data. \n \n* Which variables suggest interesting relationships?\n* Which observations are unusual?\n\nBy the end of the section, you'll be able to answer these questions and more, while generating graphics that are both insightful and beautiful. then We will review analytical and statistical operations:\n\n* 5-1 Data Collection\n* 5-2 Visualization\n* 5-3 Data Preprocessing\n* 5-4 Data Cleaning\n" + }, + { + "metadata": { + "_uuid": "cedecea930b278f86292367cc28d2996a235a169" + }, + "cell_type": "markdown", + "source": "
\n## 6-1 Data Collection\n**Data collection** is the process of gathering and measuring data, information or any variables of interest in a standardized and established manner that enables the collector to answer or test hypothesis and evaluate outcomes of the particular collection.[techopedia]\n\n**Iris dataset** consists of 3 different types of irises’ (Setosa, Versicolour, and Virginica) petal and sepal length, stored in a 150x4 numpy.ndarray\n\nThe rows being the samples and the columns being: Sepal Length, Sepal Width, Petal Length and Petal Width.[6]\n" + }, + { + "metadata": { + "_uuid": "9269ae851b744856bce56840637030a16a5877e1", + "trusted": true + }, + "cell_type": "code", + "source": "# import Dataset to play with it\ndataset = pd.read_csv('../input/Iris.csv')", + "execution_count": 188, + "outputs": [] + }, + { + "metadata": { + "_uuid": "58ed9c838069f54de5cf90b20a774c3e236149b3" + }, + "cell_type": "markdown", + "source": "**<< Note 1 >>**\n\n* Each row is an observation (also known as : sample, example, instance, record)\n* Each column is a feature (also known as: Predictor, attribute, Independent Variable, input, regressor, Covariate)" + }, + { + "metadata": { + "_uuid": "7b5fd1034cd591ebd29fba1c77d342ec2b408d13" + }, + "cell_type": "markdown", + "source": "After loading the data via **pandas**, we should checkout what the content is, description and via the following:" + }, + { + "metadata": { + "_uuid": "edd043f8feb76cfe51b79785302ca4936ceb7b51", + "trusted": true + }, + "cell_type": "code", + "source": "type(dataset)", + "execution_count": 189, + "outputs": [ + { + "output_type": "execute_result", + "execution_count": 189, + "data": { + "text/plain": "pandas.core.frame.DataFrame" + }, + "metadata": {} + } + ] + }, + { + "metadata": { + "_uuid": "055772bd170aa8018aabd85106b76675802c33b3" + }, + "cell_type": "markdown", + "source": "
\n## 6-2 Visualization\n**Data visualization** is the presentation of data in a pictorial or graphical format. It enables decision makers to see analytics presented visually, so they can grasp difficult concepts or identify new patterns.\n\nWith interactive visualization, you can take the concept a step further by using technology to drill down into charts and graphs for more detail, interactively changing what data you see and how it’s processed.[SAS]\n\n In this section I show you **11 plots** with **matplotlib** and **seaborn** that is listed in the blew picture:\n \n" + }, + { + "metadata": { + "_uuid": "b0014a7a52e714996bc443981c853095926d20e5" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-1 Scatter plot\n\nScatter plot Purpose To identify the type of relationship (if any) between two quantitative variables\n\n\n" + }, + { + "metadata": { + "_uuid": "af099546eed64ebc796403d4139cb4c977c27b03", + "trusted": true + }, + "cell_type": "code", + "source": "# Modify the graph above by assigning each species an individual color.\nsns.FacetGrid(dataset, hue=\"Species\", size=5) \\\n .map(plt.scatter, \"SepalLengthCm\", \"SepalWidthCm\") \\\n .add_legend()\nplt.show()", + "execution_count": 190, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/png": "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RFbwlwCXAc6i2N5eYYjPVMGWD/O33aRBnbxu56s9UCx35jL8USDOI+nHxTvbLeCvTFrGgAw0cTSpvdzRBBkDMkLr12C/hn2GcPzM+ixEVvA3CGaniBwG8DmALwB8rqq7zA8rPAIpLRbMdu6BLvU9CjTYeBsc90CNCBkF6q9MmntwSH2PnAxkv4Z9BnH8zPosVH+aNm3a/6efftrkbVn//v17bNq0aYcZ/T788MOJ8+bNi6pr4X6fAxSRFABDa7wSAKyDMxn+2fQIPfA5QCKKQEE9B/j6un2t53/0bVLRidONEpo3PnPf8OT8yYMvOBpKIN4SYHl5OeLi4kLZbVD9RhJvzwH6HQWqqrtUdbGq3gngOgBzAPQCEPWXQImIrPL6un2tn1idd8GhE6cbKYBDJ043emJ13gWvr9vXuj72v3r16uYDBw5Mveqqq7onJyf3BpxJCgD27dsXl56entqjR4+05OTkXu+99945E5zn5OQ0cU91lJKSkuYur+ZtCqR77rkn6fTp0zE9evRIGzNmTFcAyMzMbJecnNwrOTm51+zZs38GACUlJTFXXHFF99TU1LTk5OReL7744vkA8Ic//KF97969eyYnJ/eaNGnSBVVV4Znz0t8oUPdZ3xAAnQDsgfPsbzKAqH8MgojIKvM/+jbpdEVVrZOQ0xVVMfM/+jYp1LNAt7y8vKabNm36pkePHmdqtr/88suthw8fXvzUU08VVlRU4MSJE+ecDP31r39NuOeeew5OmzbtaFlZmVRUVNSaAqlx48Y6efLkzgsWLGjz/PPP5y9evPhnO3bsyAOA//znP03/7//+r82GDRu2qyoGDhzYc/jw4Se+/fbbxomJieVr167dDQBHjhxxAMADDzxw6JlnnikAgLFjx3b917/+1fLmm28uro9jYMTfPcD/wpnongOwUlV/MjsgIiI7KDpxulFd2oPRt2/fU57JDwAGDx586q677upSXl4eM378+GNDhw4951mqIUOGnHrmmWfa//jjj41uuummY3369Dntawokz23Xrl173q9+9avjLVq0qAKAUaNGHfvkk0+ajxkzpvhPf/pTp2nTpiVdd911xVdfffVJAPj3v//d/Nlnn00sKyuLOX78eGxaWlopAMsTYAecvfd3l4jEwpkQvwTwparuMdq4IQulJJnRtre8+CU+/+7sH3+XXNgab0wdYspnoPpjWqmz5ZOQVbwZhQ4HEisrkdHyIowavySgbeesnoI3D+egCs57HRPapmPW6MUhx0T1I6F54zOHvCS7hOaNz0lYwWratKnXa4nXXHPNyc8++2znW2+91fL222/vOn369IMtWrSofPLJJzsAwMKFC/fefffdRy+77LJTK1eubDl69Ojkv/71r/uMpkAKRN++fU9v3Lgx76233mr5yCOPJH344Ycls2fPLrz//vsvWL9+fV737t3LZ8yY0aGsrCwspTYNO1HVQlVdoap/UNXLAfwCwA447/99G44AI5G7JFn+8VIozpYkW7XJ/8+E0baeyQ8APv/uKG558UtzPgjVC3d5sIJTBVBodXmw7D3Zoe13+SRkntiKgthYqAgKYmOReWIrspdP8rvtnNVTsPRwDqpEABFUiWDp4RzMWT0lpJio/tw3PDm/cWxMrQTVODam6r7hyUEll7rYtWtXo44dO5bff//9h2+99daijRs3Nr311luP79ixI2/Hjh15l19++U95eXmNevbseXrWrFmHRo4ceXzz5s3xvqZAAoDY2Fg9ffq0AMCVV1558t1332114sSJmJKSkph33333/CuvvPLE3r1745o3b151zz33HJ0xY0bh5s2bm/70008xAJCYmFhRXFwc884775xv9ud383cPsCWc9//cZ4H94Ux878D5aIQtGZUk83cWaLRtvo+KLp5JkSKLUXmwUM4Cs4o3oyy29n/RspgYZBVvhr+9vnk4B/AsvCCCNw/ngNPrRgb3fb76HgUaiDVr1jSfP39+YmxsrDZt2rTyjTfe+N5znddff731smXL2sTGxmpCQkL5E088UdCuXbtKb1MgpaSknLnllluKevbsmda7d++f3n777e9vvvnmIwMGDOgJAL/+9a+LLrnkktK33nqrxcyZMzvGxMQgNjZWn3/++X1t27atdG3bKyEhoaJfv36nzP78boaPQYhIEVyXO+FMeF+rqqV1tyLhMYiuD2d7nQxRAHw/z/hXk9G2Rg+k7PWzX7JO31f6Qr189wSCrbcFP29038W9oV6qB4kqtk7ZZrhtn8W9z02AAKCKXD/bUlAifjoku6vzdEiqmmBqRFGqQ6t4r2drgZQkM9rW1xkgRbbEZokoOFXgtT2k/VZWoiD23P+iiZWVXtauLQaAt5s/DWIOM6J6Yvj/QUTeEZG3fb3CFWSkCaUk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\n" + }, + "metadata": {} + } + ] + }, + { + "metadata": { + "_uuid": "d1c7b62b5f8cba427bca13049256365141655372" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-2 Box\nIn descriptive statistics, a **box plot** or boxplot is a method for graphically depicting groups of numerical data through their quartiles. Box plots may also have lines extending vertically from the boxes (whiskers) indicating variability outside the upper and lower quartiles, hence the terms box-and-whisker plot and box-and-whisker diagram.[wikipedia]" + }, + { + "metadata": { + "_uuid": "0655e20f31a582f861d391308a088778cd7eaae9", + "trusted": true + }, + "cell_type": "code", + "source": "dataset.plot(kind='box', subplots=True, layout=(2,3), sharex=False, sharey=False)\nplt.figure()\n#This gives us a much clearer idea of the distribution of the input attributes:\n\n", + "execution_count": 191, + "outputs": [ + { + "output_type": "execute_result", + "execution_count": 191, + "data": { + "text/plain": "
" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
" + }, + "metadata": {} + } + ] + }, + { + "metadata": { + "_uuid": "f7f6426fd44bcd77d35a5fdbc8c4fc4f18d991ad", + "trusted": true + }, + "cell_type": "code", + "source": "# To plot the species data using a box plot:\n\nsns.boxplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset )\nplt.show()", + "execution_count": 192, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEKCAYAAAARnO4WAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAGURJREFUeJzt3X+YXVV97/H3Jz8gIeGHJOOPyxgHOoGnqPzQqUIVxGgisWjtg7etV+lg7220+hApVa9oSkWjbbUqnVB/BFSmFqxFpKI23uRRY+iVAhMSQwg0mdIAwxWYBMEkJiE/vvePvQcOw2Rmz+Sss+fM/rye5zyzzzp7r/WdszLfrLPO3msrIjAzs4lvUtkBmJlZYzjhm5lVhBO+mVlFOOGbmVWEE76ZWUU44ZuZVYQTvplZRTjhm5lVhBO+mVlFTCk7gFqzZ8+Otra2ssMwM2saa9eu3RYRLUX2HVcJv62tjZ6enrLDMDNrGpIeKLqvp3TMzCoiWcKXdIqk9TWPX0m6NFV7ZmY2vGRTOhHxH8AZAJImAw8DN6dqz8zMhteoKZ03AP8ZEYXnmszMrL4alfD/EPhmg9oyM7MhJE/4ko4A3grceIjXF0nqkdTT39+fOhwzs8pqxAh/IXBXRDw61IsRsTwiOiKio6Wl0KmkZmY2Bo04D/8deDrHzIbR1dVFb29vkrr7+voAaG1trXvd7e3tLF68uO71ppI04UuaAcwH3pOyHTOzQ9m9e3fZIYwbSRN+ROwCZqVsw8yaX8pR8kDdXV1dydpoFr7S1sysIpzwzcwqwgnfzKwinPDNzCrCCd/MrCKc8M3MKsIJ38ysIpzwzcwqwgnfzKwinPDNzCrCCd/MrCKc8M3MKsIJ38ysIpzwzcwqwgnfzKwinPDNzCrCCd/MrCKc8M3MKsIJ38ysIpzwzcwqwgnfzKwinPDNzCrCCd/MrCKc8M3MKsIJ38ysIpImfEnHSfq2pPsk3Svp7JTtmZnZoU1JXP/fAT+MiLdLOgI4KnF7ZmZ2CMkSvqRjgXOBiwEi4ingqVTtmZnZ8FJO6ZwI9ANfl7RO0rWSZgzeSdIiST2Sevr7+xOGY2ZWbSkT/hTgFcCXIuJMYBfwkcE7RcTyiOiIiI6WlpaE4ZiZVVvKhN8H9EXE7fnzb5P9B2BmZiVIlvAj4hHgIUmn5EVvADalas/MzIaX+iydS4Dr8zN07gfenbg9M0uoq6uL3t7essMYlS1btgCwePHikiMprr29PUm8SRN+RKwHOlK2YWaN09vby7p71sFxZUcyCgezH+seXlduHEU9ka7q1CN8M5tojoOD5x0sO4oJa9LqdF+temkFM7OKcMI3M6sIJ3wzs4pwwjczqwgnfDOzinDCNzOrCCd8M7OK8Hn4ZlZYX18fPJn2XPHKewL6oi9J1e41M7OK8AjfzAprbW2lX/2+0jahSasn0XpCa5q6k9RqZmbjjhO+mVlFOOGbmVWEE76ZWUU44ZuZVYQTvplZRTjhm5lVhBO+mVlFOOGbmVWEE76ZWUU44ZuZVYQTvplZRTjhm5lVRNLVMiVtBXYAB4D9EdGRsj2rtq6uLnp7e+teb19ftjZ5a2v9VzBsb29n8eLFda83qSeabD38nfnPmaVGUdwTwAlpqm7E8sivj4htDWjHLIndu3eXHcK40d7eXnYIo7ZlyxYA5p4wt+RICjoh3fusiEhSMTw9wu8omvA7Ojqip6cnWTxmYzEwAu/q6io5EhuLid5/ktYWnT0pPMKXdBrQVntMRHxnhMMCWCkpgK9ExPKi7ZmZWX0VSviSvgacBtwDDNzqJoCREv5rI+JhSc8HVkm6LyLWDKp7EbAIYM6cOaOJ3czMRqHoCP+siDh1tJVHxMP5z8ck3Qy8ClgzaJ/lwHLIpnRG24aZmRVT9Kv22ySNKuFLmiHp6IFtYAGwcZTxmZlZnRQd4f8DWdJ/BNgLCIiIOG2YY14A3CxpoJ0bIuKHhxOsmZmNXdGE/1XgIuBunpnDH1ZE3A+cPsa4zMyszoom/P6IuCVpJGZmllTRhL9O0g3A98imdIBCp2Wamdk4UTThTydL9AtqyoqclmlmZuNEoYQfEe9OHYiZmaU17GmZkj4r6T1DlL9H0l+nC8vMzOptpPPw55FfFDXINcAF9Q/HzMxSGSnhHxlDrK4WEQfJzsU3M7MmMdIc/m5JcyNiS22hpLmA14y1UUu1Zn1KA8vrNtu69U251r4lNVLCvwJYIWkpsDYv6wAuBy5NGZhNTL29vWzeeBdzZh4oO5TCjtiXfRDes/XOkiMp7sGdk8sOwcahYRN+RKyQ9DbgQ8AlefE9wIURcXfq4GximjPzAEs6do68o43Z0p5mub2TNdKIp2VGxEagswGxmJlZQkXXwz8Z+CDPvQHKvDRhmVmVpPxuJ+V3MM32PUnRK21vBL4MXEt2Q3Izs6Ywffr0skMYN4om/P0R8aWkkZhZZTXTKLmZDZvwJR2fb35P0vuAm3n24mmPJ4zNzMzqaKQR/lqyRdIGLrL6UM1rAZyUIigzM6u/kU7LPBFA0rSI2FP7mqRpKQOziamvr49dOyb7tMHEHtgxmRl9fWWHYeNM0Xva/qxgmZmZjVMjzeG/EDgBmC7pTJ6Z2jkGOCpxbDYBtba2smf/L3zhVWJLe2YyrbW17DBsnBlpDv9NwMVAK/D5mvIdwEcTxWRmZgmMNIffDXRLujAibmpQTGZmlkDR8/BfIumyQWVPAmsjYn2dYzIzswSKfmnbAbyXbD7/BOA9wPnANZI+nCg2MzOro6Ij/FbgFRGxE0DSXwI/AM4lO1f/M2nCMzOzeik6wn8+NVfYAvuAF0TE7kHlZmY2ThUd4V8P3C7pu/nztwA3SJoBbBruQEmTgR7g4YjwfXDNzEpSKOFHxCcl/RD47bzovRHRk2+/c4TDPwDcS3buvpmZlaToCB/gLuDhgWMkzYmIB4c7QFIr8DvAp4DBZ/lYRT24s7mWVnj019nM5wuOOlhyJMU9uHMyJ5cdhI07RW+Acgnwl8CjZOvhi2zxtNNGOPQq4MPA0cPUvQhYBDBnzpwi4VgTa29vLzuEUXsqv4HGtLa5JUdS3Mk053ttaSkiRt5J6gVeHRHbC1csXQC8OSLeJ+k84IMjzeF3dHRET0/PcLuYNdzAWu1dXV0lR2L2XJLWRkRHkX2LnqXzENmFVqPxGuCtkrYC/wTMk/SPo6zDzMzqpOgc/v3Aakk/4Nk3QPn8oQ6IiMuBywFqRvjvGnuoZmZ2OIom/AfzxxH5w8zMmkzR0zKvBJB0VET8erSNRMRqYPVojzMzs/opNIcv6WxJm4D78uenS/pi0sjMzKyuin5pexXZ2vjbASLi52Tr6JiZWZMomvCJiIcGFR2ocyxmZpZQ0S9tH5L020BImsozyyWYmVmTKDrCfy/wfrK18B8GzgDelyooMzOrv6Jn6Wxj0CJpki4lm9s3M7MmUHgOfwheDM3MrIkcTsJX3aIwM7PkDifhj7zqmpmZjRvDzuFL2sHQiV3A9CQRmZlZEsMm/Ig45Dr2ZmbWXEYa4R8/3OsR8Xh9wzEzs1RGOi1zLdmUzlBf0AZwUt0jMjOzJEaa0jmxUYGYmVlahW9iLul5wFxg2kBZRKxJEZSZmdVf0ZuY/y+y9XNagfXAWcBtwLx0oZmZWT0VPQ//A8BvAQ9ExOuBM4EnkkVlZmZ1V3RKZ09E7JGEpCMj4j5JpySNzGyUurq66O3trXu9W7ZsAWDx4sV1r7u9vT1JvWZDKZrw+yQdB/wLsErSL4EH0oVlNn5Mn+5rDG1iUMToVkiQ9DrgWGBFROyrZzAdHR3R09NTzyrNzCY0SWsjoqPIvkXvafuNge2I+GlE3AJ8bYzxmZlZCYp+afvS2ieSJgOvrH84ZmaWyrAJX9Ll+QJqp0n6laQd+fPHgO82JEIzM6uLYRN+RPxVvoDaZyPimIg4On/MiojLGxSjmZnVQdEpnY9JepekvwCQ9GJJrxruAEnTJN0h6eeS7pF05WFHa1aCbdu2cckll7B9+/ayQzE7LEUT/t8DZwP/I3++My8bzl5gXkScTnbT8/MlnTWmKM1K1N3dzYYNG+ju7i47FLPDUjThvzoi3g/sAYiIXwJHDHdAZHbmT6fmD98ly5rKtm3bWLFiBRHBihUrPMq3plY04e/Lz8wJAEktwMGRDpI0WdJ6si95V0XE7WOO1KwE3d3dDFyrcvDgQY/yrakVTfhdwM3A8yV9Cvg34NMjHRQRByLiDLJF114l6WWD95G0SFKPpJ7+/v5RhG6W3qpVq9i3L7u+cN++faxcubLkiMzGrlDCj4jrgQ8DfwX8AnhbRNxYtJGIeAL4CXD+EK8tj4iOiOhoaWkpWqVZQ8yfP5+pU6cCMHXqVBYsWFByRGZjN9J5+NMkXSrpauB1wFci4uqIuHekiiW15OvvIGk6MB+4rx5BmzVKZ2cnUnbDt0mTJtHZ2VlyRGZjN9IIvxvoAO4GFgJ/O4q6XwT8RNIG4E6yOfzvjylKs5LMnj2bhQsXIomFCxcya9asskMyG7ORVss8NSJeDiDpq8AdRSuOiA1k6+abNbXOzk62bt3q0b01vZES/tOrYUbE/oGPtmZVMnv2bJYtW1Z2GGaHbaSEf7qkX+XbAqbnz0V2qv0xSaMzM7O6GTbhR8TkRgViZmZpFT0P38zMmpwTvplZRTjhm5lVhBO+mVlFOOGbmVWEE76ZWUU44ZuZVYQTvplZRTjhm5lVhBO+mVlFOOGbmVWEE76ZWUU44ZuZVYQTvplZRTjhm5lVhBO+mVlFOOGbmVWEE76ZWUU44ZuZVYQTvplZRTjhm5lVhBO+mVlFJEv4kl4s6SeSNkm6R9IHUrVlZmYjm5Kw7v3An0fEXZKOBtZKWhURmxK2aWZmh5BshB8Rv4iIu/LtHcC9wAmp2jMzs+E1ZA5fUhtwJnD7EK8tktQjqae/v78R4TTc5s2bWbhwIb29vWWHYmYVljzhS5oJ3ARcGhG/Gvx6RCyPiI6I6GhpaUkdTimWLl3Krl27+MQnPlF2KGZWYUkTvqSpZMn++oj4Tsq2xqvNmzezdetWALZu3epRvpmVJuVZOgK+CtwbEZ9P1c54t3Tp0mc99yjfzMqScoT/GuAiYJ6k9fnjzQnbG5cGRveHem5m1ijJTsuMiH8DlKr+ZtHW1vasJN/W1lZaLGZWbb7SNrElS5Y86/kVV1xRUiRmVnVO+ImdfPLJT4/q29raaG9vLzcgM6ssJ/wGWLJkCTNmzPDo3sxKlXJphabT1dWV5LTJvr4+pk+fTldXV93rBmhvb2fx4sVJ6jazicMJvwF2795ddghmZk74tVKNkgfqTTXCNzMrwnP4ZmYV4YRvZlYRTTmlk+rL1VS2bNkCpJsySsVfBptNLE2Z8Ht7e1l39yYOHnV82aEUoqcCgLX/+UjJkRQ36dePlx2CmdVZUyb8vr4+IMoOo7CYdkzZIYxB5O+zmU0UnsM3M6uIphzht7a28ujeKew59YKyQ5mwpm36Pq2tLyw7DDOrI4/wzcwqoilH+JB9qTht0/fLDqMQ7cnu7NhMc/nZl7Ye4ZtNJE2Z8JttxcktW3YAMPc3mimBvrDp3mczG15TJvxmOzfcSyuY2XjgOXwzs4pwwjczqwgnfDOzimjKOfxUUq3Rk3otHa95Y2ZFeITfAEceeSR79+5l3759ZYdiZhXmEX6NVKPkz33uc9xyyy3MnTuXyy67LEkbZmYj8Qg/sW3btrFixQoighUrVrB9+/ayQzKzikqW8CV9TdJjkjamaqMZdHd3c/DgQQAOHDhAd3d3yRGZWVWlHOFfB5yfsP6msGrVKvbv3w/A/v37WblyZckRmVlVJUv4EbEGqPxdNM4555xnPT/33HNLisTMqs5z+GZmFVF6wpe0SFKPpJ7+/v6yw6m7W2+99VnP16xZU1IkZlZ1pSf8iFgeER0R0dHS0lJ2OHU3f/58pkzJzn6dMmUKCxYsKDkiM6uq0hP+RNfZ2cmkSdnbPHnyZDo7O0uOyMyqKuVpmd8EbgNOkdQn6X+mams8mz17NgsXLkQSCxcuZNasWWWHZGYVlexK24h4R6q6m01nZydbt2716N7MSuWlFRpg9uzZLFu2rOwwzKziPIdvZlYRTvhmZhXhhG9mVhFO+GZmFaGIKDuGp0nqBx4oO45EZgPbyg7Cxsz919wmcv+9JCIKXbU6rhL+RCapJyI6yo7Dxsb919zcfxlP6ZiZVYQTvplZRTjhN87ysgOww+L+a27uPzyHb2ZWGR7hm5lVhBN+TtLOYV77WcJ2P5qq7omirL4pStK/SjpuDMd9XNIHU8Q0XqXuS0lvlfSRMRw3YtuSrpV06tgiGx88pZOTtDMiZg4qmxIR+xvdrj1bWX2Tuj1JHwd2RsTflhVDo5X4d9b07109eIQ/iKTzJN0q6RZgU162M//5IklrJK2XtFHSOUMc/1JJd+T7bJA0Ny9/V035VyRNlvTXwPS87Pp8v8vyujdKujQvmyHpB5J+npf/QV5+haQ787LlktSYd6kcdeibf5f00prnqyV15O/v1/L+WSfpd/PXL5Z0i6QfAz86VBuStkqanW//Ud7vP5f0jbysTdKP8/IfSZozRGxn5PFtkHSzpOfVxHiVpB7gA3V+S0uTsC8vlnR1XnadpC9Luh34jKQWSask3ZOP1h+o6bedNXGtlvRtSfdJun7g72qgjXz7fEl35f38o7zsVZJuy/8N/UzSKSnfwzGJCD+yTzk785/nAbuAE4d47c+Bj+Xbk4Gjh6hnGfDOfPsIYDrwm8D3gKl5+ReBP6qtO99+JXA3MAOYCdwDnAlcCFxTs9+x+c/ja8q+Abyl7PdxnPfNnwFX5tsvAv4j3/408K58+zhgc94HFwN9A+/zodoAtpJdyfnS/NjZtf2T931nvv3HwL/k2x8HPphvbwBel29/Argq314NfLHsPmiivrwYuDrfvg74PjA5f341cHm+fT4QNX1VG9eTQCvZgPg24LU1fdEBtAAPDcRe08/HAFPy7TcCN5X9fg9+eIQ/tDsi4r+GKL8TeLeyj+Ivj4gdQ+xzG/BRSf+b7JLn3cAbyJL5nZLW589PGuLY1wI3R8SuiNgJfAc4h+w/gfmS/kbSORHxZL7/6yXdLuluYB5ZwpnoDqdv/hl4e779+8C38+0FwEfyvlkNTAMGRuGrIuLxgm3MA26MiG0ANcedDdyQb3+DrJ+fJulY4LiI+Gle1A2cW7PLt4b4XSaCFH052I0RcSDffi3wTwAR8UPgl8PE1RcRB4H1QNug188C1gzEXtPPxwI3StoIfIFx+PfohD+0XUMVRsQasj/Eh4Hr8o/vv5d/9FwvqSMibgDeCuwG/lXSPEBAd0SckT9OiYiPFw0mIjYDryBL/EvzqZxpZJ8U3h4RLweuIUtUE93h9M3DwHZJpwF/wDOJVMCFNf0zJyLuHdzeUG2k+RWfY8jfeQJI0ZeF2hjB3prtAxS/UdQngZ9ExMuAtzAO/x6d8EdB0kuARyPiGuBa4BURcXNNouiRdBJwf0R0Ad8FTgN+BLxd0vPzeo7P6wLYJ2lqvn0r8DZJR0maAfwecKuk/wb8OiL+EfgsWfIf+Me0TdJMnhntVFKRvsl3/RbwYbJpsQ152f8BLqmZqz2zaBuDdvkx8N8lzcr3Pz4v/xnwh/n2O8n6+Wn5J7Zf1sxVXwT8lIo6zL4czv8l+zSApAXA88YY4r8D50o6Ma9roJ+PJftPCrKppXHHtzgcnfOAD0naB+wEhhrh/T5wUb7PI8CnI+JxSUuAlZImAfuA95OtDLoc2CDproh4p6TrgDvyuq6NiHWS3gR8VtLB/Ng/jYgnJF0DbMzbuTPR79wszmPkvoHso//fkY3GBnwSuIqsHyYB/wVcMNo2IuIeSZ8CfirpALCO7A//EuDrkj4E9APvHqLuTuDLko4C7j/EPlVxHmPvy+FcCXxT0kVkU6+PAENNFw0rIvolLQK+k/97eQyYD3wG6M7/1n8w2nobwadlmlklSDoSOBAR+yWdDXwpIs4oO65G8gjfzKpiDvDP+aj8KeBPSo6n4TzCNzOrCH9pa2ZWEU74ZmYV4YRvZlYRTvg2oUn6WL52yob8op1X17HuMa2SaVYWn6VjE1Z+6t0FZBfu7M0XyjqiXvVHxJvrVZdZI3iEbxPZi4BtEbEXICK2RcT/U7a65Wck3a1shcx2gHw1xZuUrUB6p6TX5OUzJX0933+DpAvz8tpVModaDXWyshUbN+bH/llJ74MZ4IRvE9tK4MWSNkv6oqTX1bz2ZL4G0dVkV9lCdtXmFyLit8hWKL02L/+Lgf0j4jSyJRSeJuk3ydZzeU1+Ic8BsiUUzgBOiIiX5W19Pc2vaVaMp3RswoqInZJeSbbi6OuBb+mZuyF9s+bnF/LtNwKn6pnbChyTr1P0Rp5ZC4eIGLzKYu1qqJAtif0Y2bLIJ0laRnap/cr6/XZmo+eEbxNavjTuamB1vox058BLtbvlPycBZ0XEnto6NPJ9ZQZWQ738OS9IpwNvAt5Lts7SH4/yVzCrG0/p2IQl6RTldxzLnUG2YB1kUzADP2/Lt1eSLXQ2cPzAOiuryBa7GygfvMrikKuh5vP7kyLiJmAJz11d06yhPMK3iWwmsCw/dXI/0AssIjtz53mSNpCtff6OfP/FwN/n5VOANWQj86V5+Uay+fkryW5OA0BEbDrEaqi7yVbJHBhYPecTgFkjeS0dqxxJW4GOgTtTmVWFp3TMzCrCI3wzs4rwCN/MrCKc8M3MKsIJ38ysIpzwzcwqwgnfzKwinPDNzCri/wMyDa4xX2s57QAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ] + }, + { + "metadata": { + "_uuid": "7b193e4aa7e6fb337d3f65c334849094addd097a", + "trusted": true + }, + "cell_type": "code", + "source": "# Use Seaborn's striplot to add data points on top of the box plot \n# Insert jitter=True so that the data points remain scattered and not piled into a verticle line.\n# Assign ax to each axis, so that each plot is ontop of the previous axis. \n\nax= sns.boxplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset)\nax= sns.stripplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset, jitter=True, edgecolor=\"gray\")\nplt.show()", + "execution_count": 193, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {} + } + ] + }, + { + "metadata": { + "_uuid": "56adbafa89c117118621c72b3b7cb19edc21298e", + "trusted": true + }, + "cell_type": "code", + "source": "# Tweek the plot above to change fill and border color color using ax.artists.\n# Assing ax.artists a variable name, and insert the box number into the corresponding brackets\n\nax= sns.boxplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset)\nax= sns.stripplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset, jitter=True, edgecolor=\"gray\")\n\nboxtwo = ax.artists[2]\nboxtwo.set_facecolor('red')\nboxtwo.set_edgecolor('black')\nboxthree=ax.artists[1]\nboxthree.set_facecolor('yellow')\nboxthree.set_edgecolor('black')\n\nplt.show()", + "execution_count": 194, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {} + } + ] + }, + { + "metadata": { + "_uuid": "743a92c3c2fff1a1f99845518247f7971ad18b7c" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-3 Histogram\nWe can also create a **histogram** of each input variable to get an idea of the distribution.\n\n" + }, + { + "metadata": { + "_uuid": "5da0520ed3e738ee8814b2d91843ed4acec2b6e6", + "trusted": true + }, + "cell_type": "code", + "source": "# histograms\ndataset.hist(figsize=(15,20))\nplt.figure()", + "execution_count": 195, + "outputs": [ + { + "output_type": "execute_result", + "execution_count": 195, + "data": { + "text/plain": "
" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
" + }, + "metadata": {} + } + ] + }, + { + "metadata": { + "_uuid": "b4e3de19781686010c6038f0e3076eb678398169" + }, + "cell_type": "markdown", + "source": "It looks like perhaps two of the input variables have a Gaussian distribution. This is useful to note as we can use algorithms that can exploit this assumption.\n\n" + }, + { + "metadata": { + "_uuid": "9f80a6e971cbf0af72d659b51af552ea1dddc9a8", + "trusted": true + }, + "cell_type": "code", + "source": "dataset[\"PetalLengthCm\"].hist();", + "execution_count": 196, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {} + } + ] + }, + { + "metadata": { + "_uuid": "3bbff56707484f88625eb8ef309b712ba03f939e" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-4 Multivariate Plots\nNow we can look at the interactions between the variables.\n\nFirst, let’s look at scatterplots of all pairs of attributes. This can be helpful to spot structured relationships between input variables." + }, + { + "metadata": { + "_uuid": "eb4e5d117e4ef40d7668632f42130206a5537bd0", + "trusted": true + }, + "cell_type": "code", + "source": "\n# scatter plot matrix\npd.plotting.scatter_matrix(dataset,figsize=(10,10))\nplt.figure()", + "execution_count": 197, + "outputs": [ + { + "output_type": "execute_result", + "execution_count": 197, + "data": { + "text/plain": "
" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
" + }, + "metadata": {} + } + ] + }, + { + "metadata": { + "_uuid": "de7fea7986071fafbe0b93933e3beda445cbe373" + }, + "cell_type": "markdown", + "source": "Note the diagonal grouping of some pairs of attributes. This suggests a high correlation and a predictable relationship." + }, + { + "metadata": { + "_uuid": "e0f696ec021ec99c1058a62e22c8b73082fe6fa7" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-5 violinplots" + }, + { + "metadata": { + "_uuid": "e352d2f8340609adf4bf6718b1d2ecee0fa730b5", + "trusted": true + }, + "cell_type": "code", + "source": "# violinplots on petal-length for each species\nsns.violinplot(data=dataset,x=\"Species\", y=\"PetalLengthCm\")", + "execution_count": 198, + "outputs": [ + { + "output_type": "stream", + "text": "/opt/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning:\n\nUsing a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n\n", + "name": "stderr" + }, + { + "output_type": "execute_result", + "execution_count": 198, + "data": { + "text/plain": "" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {} + } + ] + }, + { + "metadata": { + "_uuid": "0ed35bceb87051e56316d35a630334518e8b8c64" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-6 pairplot" + }, + { + "metadata": { + "_uuid": "b80350add6f9a742f10bffc4b497562f8bebea95", + "trusted": true + }, + "cell_type": "code", + "source": "# Using seaborn pairplot to see the bivariate relation between each pair of features\nsns.pairplot(dataset, hue=\"Species\")", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "fb187bcc0fb51e53f8abe9e3952c6ae5c3177411" + }, + "cell_type": "markdown", + "source": "From the plot, we can see that the species setosa is separataed from the other two across all feature combinations\n\nWe can also replace the histograms shown in the diagonal of the pairplot by kde." + }, + { + "metadata": { + "_uuid": "5570ff32db5a4740b26b244531af552ac1b57f4a", + "trusted": true + }, + "cell_type": "code", + "source": "# updating the diagonal elements in a pairplot to show a kde\nsns.pairplot(dataset, hue=\"Species\",diag_kind=\"kde\")", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2544d3c2dd34a360d295019d8cb597c7ef8f66bc" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-7 kdeplot" + }, + { + "metadata": { + "_uuid": "1d07222b89303b386e9e824d52cc73c045667f25", + "trusted": true + }, + "cell_type": "code", + "source": "# seaborn's kdeplot, plots univariate or bivariate density estimates.\n#Size can be changed by tweeking the value used\nsns.FacetGrid(dataset, hue=\"Species\", size=5).map(sns.kdeplot, \"PetalLengthCm\").add_legend()\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "560d8e8f17bacefaf8c3855a9648f26b82fdee9b" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-8 jointplot" + }, + { + "metadata": { + "_uuid": "4adb4da16ea61e0f1a12bc9925dfbbaaa81e0360", + "trusted": true + }, + "cell_type": "code", + "source": "# Use seaborn's jointplot to make a hexagonal bin plot\n#Set desired size and ratio and choose a color.\nsns.jointplot(x=\"SepalLengthCm\", y=\"SepalWidthCm\", data=dataset, size=10,ratio=10, kind='hex',color='green')\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3768e31e990bfe4c2ff7b45087fbba85e0560d00" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-9 andrews_curves" + }, + { + "metadata": { + "_uuid": "937b6856d109001db14a3ac99568df45efbe1070", + "trusted": true + }, + "cell_type": "code", + "source": "#In Pandas use Andrews Curves to plot and visualize data structure.\n#Each multivariate observation is transformed into a curve and represents the coefficients of a Fourier series.\n#This useful for detecting outliers in times series data.\n#Use colormap to change the color of the curves\n\nfrom pandas.tools.plotting import andrews_curves\nandrews_curves(dataset.drop(\"Id\", axis=1), \"Species\",colormap='rainbow')\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "263eaa9d2bfad0f8c68b6e8e874bdc11a6e802ac", + "trusted": true + }, + "cell_type": "code", + "source": "# we will use seaborn jointplot shows bivariate scatterplots and univariate histograms with Kernel density \n# estimation in the same figure\nsns.jointplot(x=\"SepalLengthCm\", y=\"SepalWidthCm\", data=dataset, size=6, kind='kde', color='#800000', space=0)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8e73333289d17dd648b7b2112d7fe3fe7ea444d0" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-10 Heatmap" + }, + { + "metadata": { + "_uuid": "3100955ca9dc61ac7d435e9c064d10d06f26afa7", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure(figsize=(7,4)) \nsns.heatmap(dataset.corr(),annot=True,cmap='cubehelix_r') #draws heatmap with input as the correlation matrix calculted by(iris.corr())\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b81dbdd5dd8cb92a86b1f7114ffb6f088458a527" + }, + "cell_type": "markdown", + "source": "
\n### 6-2-11 radviz" + }, + { + "metadata": { + "_uuid": "33fed3027d7242227d612a84bbb42b012356091b", + "trusted": true + }, + "cell_type": "code", + "source": "# A final multivariate visualization technique pandas has is radviz\n# Which puts each feature as a point on a 2D plane, and then simulates\n# having each sample attached to those points through a spring weighted\n# by the relative value for that feature\nfrom pandas.tools.plotting import radviz\nradviz(dataset.drop(\"Id\", axis=1), \"Species\")", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ab06d1cd799430c7c7f8de978ee2c6e275e7655b" + }, + "cell_type": "markdown", + "source": "### 6-2-12 Bar Plot" + }, + { + "metadata": { + "_uuid": "329488de1a908a6d367b9da4b40a20238163d32e", + "trusted": true + }, + "cell_type": "code", + "source": "dataset['Species'].value_counts().plot(kind=\"bar\");", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6a3bad799936695bb0e14b87a611302b2dec8c8a" + }, + "cell_type": "markdown", + "source": "### 6-2-14 visualization with Plotly" + }, + { + "metadata": { + "trusted": true, + "_uuid": "c5d24af251646fecba7e72e3f90c497fc359250e" + }, + "cell_type": "code", + "source": "import plotly.offline as py\nimport plotly.graph_objs as go\npy.init_notebook_mode(connected=True)\nfrom plotly import tools\nimport plotly.figure_factory as ff\niris = datasets.load_iris()\nX = iris.data[:, :2] # we only take the first two features.\nY = iris.target\n\nx_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5\ny_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5\ntrace = go.Scatter(x=X[:, 0],\n y=X[:, 1],\n mode='markers',\n marker=dict(color=np.random.randn(150),\n size=10,\n colorscale='Viridis',\n showscale=False))\n\nlayout = go.Layout(title='Training Points',\n xaxis=dict(title='Sepal length',\n showgrid=False),\n yaxis=dict(title='Sepal width',\n showgrid=False),\n )\n \nfig = go.Figure(data=[trace], layout=layout)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "fab38007b41a033f66f71110decb039f72b1e937" + }, + "cell_type": "code", + "source": "py.iplot(fig)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0859caf857ceeb19f4cc47ccd11fbbfdfe4b0dd9" + }, + "cell_type": "markdown", + "source": "**<< Note >>**\n\n**Yellowbrick** is a suite of visual diagnostic tools called “Visualizers” that extend the Scikit-Learn API to allow human steering of the model selection process. In a nutshell, Yellowbrick combines scikit-learn with matplotlib in the best tradition of the scikit-learn documentation, but to produce visualizations for your models! " + }, + { + "metadata": { + "_uuid": "5af51158a5bc342947c553392e3d1665ac24ba62" + }, + "cell_type": "markdown", + "source": "### 6-2-13 Conclusion\nwe have used Python to apply data visualization tools to the Iris dataset. Color and size changes were made to the data points in scatterplots. I changed the border and fill color of the boxplot and violin, respectively." + }, + { + "metadata": { + "_uuid": "91dda1f631cf4ed362162501aaaac6d19cfd6cc7" + }, + "cell_type": "markdown", + "source": "
\n## 6-3 Data Preprocessing\n**Data preprocessing** refers to the transformations applied to our data before feeding it to the algorithm.\n \nData Preprocessing is a technique that is used to convert the raw data into a clean data set. In other words, whenever the data is gathered from different sources it is collected in raw format which is not feasible for the analysis.\nthere are plenty of steps for data preprocessing and we just listed some of them :\n* removing Target column (id)\n* Sampling (without replacement)\n* Making part of iris unbalanced and balancing (with undersampling and SMOTE)\n* Introducing missing values and treating them (replacing by average values)\n* Noise filtering\n* Data discretization\n* Normalization and standardization\n* PCA analysis\n* Feature selection (filter, embedded, wrapper)" + }, + { + "metadata": { + "_uuid": "581b90e6a869c3793472c7edd59091d6d6342fb2" + }, + "cell_type": "markdown", + "source": "## 6-3-1 Features\nFeatures:\n* numeric\n* categorical\n* ordinal\n* datetime\n* coordinates\n\nfind the type of features in titanic dataset\n" + }, + { + "metadata": { + "_uuid": "73ab30f86273b590a51fc363d9bf78c2709558fa" + }, + "cell_type": "markdown", + "source": "### 6-3-2 Explorer Dataset\n1- Dimensions of the dataset.\n\n2- Peek at the data itself.\n\n3- Statistical summary of all attributes.\n\n4- Breakdown of the data by the class variable.[7]\n\nDon’t worry, each look at the data is **one command**. These are useful commands that you can use again and again on future projects." + }, + { + "metadata": { + "_uuid": "4b45251be7be77333051fe738639104ae1005fa5", + "trusted": true + }, + "cell_type": "code", + "source": "# shape\nprint(dataset.shape)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c64e9d3e0bf394fb833de94a0fc5c34f69fce24c", + "trusted": true + }, + "cell_type": "code", + "source": "#columns*rows\ndataset.size", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a6315bf510cecb907b2d23aad25faf6ccad32ac4" + }, + "cell_type": "markdown", + "source": "how many NA elements in every column\n" + }, + { + "metadata": { + "_uuid": "675f72fb58d83c527f71819e71ed8e17f81126f5", + "trusted": true + }, + "cell_type": "code", + "source": "dataset.isnull().sum()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e8e124ca20643ad307d9bfdc34328d548c6ddcbc", + "trusted": true + }, + "cell_type": "code", + "source": "# remove rows that have NA's\ndataset = dataset.dropna()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "277e1998627d6a3ddeff4e913a6b8c3dc81dec96" + }, + "cell_type": "markdown", + "source": "\nWe can get a quick idea of how many instances (rows) and how many attributes (columns) the data contains with the shape property.\n\nYou should see 150 instances and 5 attributes:" + }, + { + "metadata": { + "_uuid": "95ee5e18f97bc410df1e54ac74e32cdff2b30755" + }, + "cell_type": "markdown", + "source": "for getting some information about the dataset you can use **info()** command" + }, + { + "metadata": { + "_uuid": "ca840f02925751186f87e402fcb5f637ab1ab8a0", + "trusted": true + }, + "cell_type": "code", + "source": "print(dataset.info())", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3458838205be4c7fbff88e95ef69934e13e2199b" + }, + "cell_type": "markdown", + "source": "you see number of unique item for Species with command below:" + }, + { + "metadata": { + "_uuid": "4b90d165a007106ae99809ad28edd75bd8153dd8", + "trusted": true + }, + "cell_type": "code", + "source": "dataset['Species'].unique()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8accfbddf2228274ad412c3ad3be72b4107d6f6c", + "trusted": true + }, + "cell_type": "code", + "source": "dataset[\"Species\"].value_counts()\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ae08b544a8d4202c7d0a47ec83d685e81c91a66d" + }, + "cell_type": "markdown", + "source": "to check the first 5 rows of the data set, we can use head(5)." + }, + { + "metadata": { + "_uuid": "5899889553c3416b27e93efceddb106eb71f5156", + "trusted": true + }, + "cell_type": "code", + "source": "dataset.head(5) ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1150b6ac3d82562aefd5c64f9f01accee5eace4d" + }, + "cell_type": "markdown", + "source": "to check out last 5 row of the data set, we use tail() function" + }, + { + "metadata": { + "_uuid": "79339442ff1f53ae1054d794337b9541295d3305", + "trusted": true + }, + "cell_type": "code", + "source": "dataset.tail() ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2c288c3dc8656a872a8529368812546e434d3a22" + }, + "cell_type": "markdown", + "source": "to pop up 5 random rows from the data set, we can use **sample(5)** function" + }, + { + "metadata": { + "_uuid": "09eb18d1fcf4a2b73ba2f5ddce99dfa521681140", + "trusted": true + }, + "cell_type": "code", + "source": "dataset.sample(5) ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c8a1cc36348c68fb98d6cb28aa9919fc5f2892f3" + }, + "cell_type": "markdown", + "source": "to give a statistical summary about the dataset, we can use **describe()" + }, + { + "metadata": { + "_uuid": "3f7211e96627b9a81c5b620a9ba61446f7719ea3", + "trusted": true + }, + "cell_type": "code", + "source": "dataset.describe() ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "031d16ca235837e889734635ecff193be64b27a4" + }, + "cell_type": "markdown", + "source": "to check out how many null info are on the dataset, we can use **isnull().sum()" + }, + { + "metadata": { + "_uuid": "8807b632269e2fa734ad26e8513199400fc09a83", + "trusted": true + }, + "cell_type": "code", + "source": "dataset.isnull().sum()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "446e6162e16325213047ff31454813455668b574", + "trusted": true + }, + "cell_type": "code", + "source": "dataset.groupby('Species').count()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c2f1eaf0b6dfdc7cc4dace04614e99ed56425d00" + }, + "cell_type": "markdown", + "source": "to print dataset **columns**, we can use columns atribute" + }, + { + "metadata": { + "_uuid": "909d61b33ec06249d0842e6115597bbacf21163f", + "trusted": true + }, + "cell_type": "code", + "source": "dataset.columns", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "22bc5d81c18275ee1fb082c0adbb7a65bdbec4cc" + }, + "cell_type": "markdown", + "source": "**<< Note 2 >>**\nin pandas's data frame you can perform some query such as \"where\"" + }, + { + "metadata": { + "_uuid": "c8c8d9fd63d9bdb601183aeb4f1435affeb8a596", + "trusted": true + }, + "cell_type": "code", + "source": "dataset.where(dataset ['Species']=='Iris-setosa')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "33fc33a18489b438a884819d99dc00a02b113be8" + }, + "cell_type": "markdown", + "source": "as you can see in the below in python, it is so easy perform some query on the dataframe:" + }, + { + "metadata": { + "_uuid": "8b545ff7e8367c5ab9c1db710f70b6936ac8422c", + "trusted": true + }, + "cell_type": "code", + "source": "dataset[dataset['SepalLengthCm']>7.2]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1c92b300076a232321c915857d8a7c5685a97865", + "trusted": true + }, + "cell_type": "code", + "source": "# Seperating the data into dependent and independent variables\nX = dataset.iloc[:, :-1].values\ny = dataset.iloc[:, -1].values", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "aa882e5bcdc7d5f440489eff75d1d225269655a4" + }, + "cell_type": "markdown", + "source": "**<< Note >>**\n>**Preprocessing and generation pipelines depend on a model type**" + }, + { + "metadata": { + "_uuid": "8280749a19af32869978c61941d1dea306632d71" + }, + "cell_type": "markdown", + "source": "
\n## 6-4 Data Cleaning\nWhen dealing with real-world data, dirty data is the norm rather than the exception. We continuously need to predict correct values, impute missing ones, and find links between various data artefacts such as schemas and records. We need to stop treating data cleaning as a piecemeal exercise (resolving different types of errors in isolation), and instead leverage all signals and resources (such as constraints, available statistics, and dictionaries) to accurately predict corrective actions.\n\nThe primary goal of data cleaning is to detect and remove errors and **anomalies** to increase the value of data in analytics and decision making. While it has been the focus of many researchers for several years, individual problems have been addressed separately. These include missing value imputation, outliers detection, transformations, integrity constraints violations detection and repair, consistent query answering, deduplication, and many other related problems such as profiling and constraints mining.[8]" + }, + { + "metadata": { + "_uuid": "60dcf563b3a637f4836d5d3487b15a8f444caf53", + "trusted": true + }, + "cell_type": "code", + "source": "cols = dataset.columns\nfeatures = cols[0:4]\nlabels = cols[4]\nprint(features)\nprint(labels)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "180b76d9afa9d51cbe05e38a128d7f1f63e6da26", + "trusted": true + }, + "cell_type": "code", + "source": "#Well conditioned data will have zero mean and equal variance\n#We get this automattically when we calculate the Z Scores for the data\n\ndata_norm = pd.DataFrame(dataset)\n\nfor feature in features:\n dataset[feature] = (dataset[feature] - dataset[feature].mean())/dataset[feature].std()\n\n#Show that should now have zero mean\nprint(\"Averages\")\nprint(dataset.mean())\n\nprint(\"\\n Deviations\")\n#Show that we have equal variance\nprint(pow(dataset.std(),2))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c40ac6be7f6cff60f81e97478662817ef6ae1ef4", + "trusted": true + }, + "cell_type": "code", + "source": "#Shuffle The data\nindices = data_norm.index.tolist()\nindices = np.array(indices)\nnp.random.shuffle(indices)\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d260748e8e388fe03be57a8a120be513710a26c0", + "trusted": true + }, + "cell_type": "code", + "source": "# One Hot Encode as a dataframe\nfrom sklearn.model_selection import train_test_split\ny = get_dummies(y)\n\n# Generate Training and Validation Sets\nX_train, X_test, y_train, y_test = train_test_split(X,y, test_size=.3)\n\n# Convert to np arrays so that we can use with TensorFlow\nX_train = np.array(X_train).astype(np.float32)\nX_test = np.array(X_test).astype(np.float32)\ny_train = np.array(y_train).astype(np.float32)\ny_test = np.array(y_test).astype(np.float32)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "94ff73f511d1aea70025681c4c04200bf2973dcc", + "trusted": true + }, + "cell_type": "code", + "source": "#Check to make sure split still has 4 features and 3 labels\nprint(X_train.shape, y_train.shape)\nprint(X_test.shape, y_test.shape)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "72cc7c7b60a33390a85b16bc34e3b9e424650cdd" + }, + "cell_type": "markdown", + "source": "
\n## 7- Model Deployment\nIn this section have been applied more than **20 learning algorithms** that play an important rule in your experiences and improve your knowledge in case of ML technique.\n\n> **<< Note 3 >>** : The results shown here may be slightly different for your analysis because, for example, the neural network algorithms use random number generators for fixing the initial value of the weights (starting points) of the neural networks, which often result in obtaining slightly different (local minima) solutions each time you run the analysis. Also note that changing the seed for the random number generator used to create the train, test, and validation samples can change your results." + }, + { + "metadata": { + "_uuid": "4b7788bbaaace438242d3b2d0d2ed489a91939ce" + }, + "cell_type": "markdown", + "source": "## Families of ML algorithms\nThere are several categories for machine learning algorithms, below are some of these categories:\n* Linear\n * Linear Regression\n * Logistic Regression\n * Support Vector Machines\n* Tree-Based\n * Decision Tree\n * Random Forest\n * GBDT\n* KNN\n* Neural Networks\n\n-----------------------------\nAnd if we want to categorize ML algorithms with the type of learning, there are below type:\n* Classification\n\n * k-Nearest \tNeighbors\n * LinearRegression\n * SVM\n * DT \n * NN\n \n* clustering\n\n * K-means\n * HCA\n * Expectation Maximization\n \n* Visualization \tand\tdimensionality \treduction:\n\n * Principal \tComponent \tAnalysis(PCA)\n * Kernel PCA\n * Locally -Linear\tEmbedding \t(LLE)\n * t-distributed\tStochastic\tNeighbor\tEmbedding \t(t-SNE)\n \n* Association \trule\tlearning\n\n * Apriori\n * Eclat\n* Semisupervised learning\n* Reinforcement Learning\n * Q-learning\n* Batch learning & Online learning\n* Ensemble Learning\n\n**<< Note >>**\n> Here is no method which outperforms all others for all tasks\n\n" + }, + { + "metadata": { + "_uuid": "daf9910caba26e071ff560dbdaca079ee148e140" + }, + "cell_type": "markdown", + "source": "
\n## Prepare Features & Targets\nFirst of all seperating the data into dependent(Feature) and independent(Target) variables.\n\n**<< Note 4 >>**\n* X==>>Feature\n* y==>>Target" + }, + { + "metadata": { + "_uuid": "b06cb1191a0f52a904c52a918d1f999536e79bda", + "trusted": true + }, + "cell_type": "code", + "source": "\nX = dataset.iloc[:, :-1].values\ny = dataset.iloc[:, -1].values\n\n# Splitting the dataset into the Training set and Test set\nfrom sklearn.model_selection import train_test_split\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d13f167dd92888d856c4ad2ff2895bf4855e361c" + }, + "cell_type": "markdown", + "source": "## Accuracy and precision\n* **precision** : \n\nIn pattern recognition, information retrieval and binary classification, precision (also called positive predictive value) is the fraction of relevant instances among the retrieved instances, \n* **recall** : \n\nrecall is the fraction of relevant instances that have been retrieved over the total amount of relevant instances. \n* **F-score** :\n\nthe F1 score is a measure of a test's accuracy. It considers both the precision p and the recall r of the test to compute the score: p is the number of correct positive results divided by the number of all positive results returned by the classifier, and r is the number of correct positive results divided by the number of all relevant samples (all samples that should have been identified as positive). The F1 score is the harmonic average of the precision and recall, where an F1 score reaches its best value at 1 (perfect precision and recall) and worst at 0.\n**What is the difference between accuracy and precision?\n\"Accuracy\" and \"precision\" are general terms throughout science. A good way to internalize the difference are the common \"bullseye diagrams\". In machine learning/statistics as a whole, accuracy vs. precision is analogous to bias vs. variance." + }, + { + "metadata": { + "_uuid": "b8b544762cc789bfeb8ebccd6765f77b9c7e1a0f" + }, + "cell_type": "markdown", + "source": "
\n## 7-1 K-Nearest Neighbours\nIn **Machine Learning**, the **k-nearest neighbors algorithm** (k-NN) is a non-parametric method used for classification and regression. In both cases, the input consists of the k closest training examples in the feature space. The output depends on whether k-NN is used for classification or regression:\n\nIn k-NN classification, the output is a class membership. An object is classified by a majority vote of its neighbors, with the object being assigned to the class most common among its k nearest neighbors (k is a positive integer, typically small). If k = 1, then the object is simply assigned to the class of that single nearest neighbor.\nIn k-NN regression, the output is the property value for the object. This value is the average of the values of its k nearest neighbors.\nk-NN is a type of instance-based learning, or lazy learning, where the function is only approximated locally and all computation is deferred until classification. The k-NN algorithm is among the simplest of all machine learning algorithms." + }, + { + "metadata": { + "_uuid": "eaa2caacfbc319932f79c75c549364089d1e649f", + "trusted": true + }, + "cell_type": "code", + "source": "# K-Nearest Neighbours\nfrom sklearn.neighbors import KNeighborsClassifier\n\nModel = KNeighborsClassifier(n_neighbors=8)\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\n\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e01bbec9f80532e30c6cf26d5c3fffffb5ea01d4" + }, + "cell_type": "markdown", + "source": "
\n## 7-2 Radius Neighbors Classifier\nClassifier implementing a **vote** among neighbors within a given **radius**\n\nIn scikit-learn **RadiusNeighborsClassifier** is very similar to **KNeighborsClassifier** with the exception of two parameters. First, in RadiusNeighborsClassifier we need to specify the radius of the fixed area used to determine if an observation is a neighbor using radius. Unless there is some substantive reason for setting radius to some value, it is best to treat it like any other hyperparameter and tune it during model selection. The second useful parameter is outlier_label, which indicates what label to give an observation that has no observations within the radius - which itself can often be a useful tool for identifying outliers." + }, + { + "metadata": { + "_uuid": "7728fdafa163e068668cea92cf8d79306b41d458", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn.neighbors import RadiusNeighborsClassifier\nModel=RadiusNeighborsClassifier(radius=8.0)\nModel.fit(X_train,y_train)\ny_pred=Model.predict(X_test)\n#summary of the predictions made by the classifier\nprint(classification_report(y_test,y_pred))\nprint(confusion_matrix(y_test,y_pred))\n#Accouracy score\nprint('accuracy is ', accuracy_score(y_test,y_pred))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e55a785373bf654e0d4b2a78693fab1c8a625acb" + }, + "cell_type": "markdown", + "source": "
\n## 7-3 Logistic Regression\nLogistic regression is the appropriate regression analysis to conduct when the dependent variable is **dichotomous** (binary). Like all regression analyses, the logistic regression is a **predictive analysis**.\n\nIn statistics, the logistic model (or logit model) is a widely used statistical model that, in its basic form, uses a logistic function to model a binary dependent variable; many more complex extensions exist. In regression analysis, logistic regression (or logit regression) is estimating the parameters of a logistic model; it is a form of binomial regression. Mathematically, a binary logistic model has a dependent variable with two possible values, such as pass/fail, win/lose, alive/dead or healthy/sick; these are represented by an indicator variable, where the two values are labeled \"0\" and \"1\"" + }, + { + "metadata": { + "_uuid": "55eb348cf69272192274cd0728a123796b459b55", + "trusted": true + }, + "cell_type": "code", + "source": "# LogisticRegression\nfrom sklearn.linear_model import LogisticRegression\nModel = LogisticRegression()\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c0a1c2ccaa4f6e9c5e2e42c47a295ceef7abd3b9" + }, + "cell_type": "markdown", + "source": "
\n## 7-4 Passive Aggressive Classifier" + }, + { + "metadata": { + "_uuid": "d509b2111a143660dd5cb1f02ea2779e38295b77", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn.linear_model import PassiveAggressiveClassifier\nModel = PassiveAggressiveClassifier()\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "52938b49082dac7b35dc627828838bf12924cc7f" + }, + "cell_type": "markdown", + "source": "
\n## 7-5 Naive Bayes\nIn machine learning, naive Bayes classifiers are a family of simple \"**probabilistic classifiers**\" based on applying Bayes' theorem with strong (naive) independence assumptions between the features." + }, + { + "metadata": { + "_uuid": "522d4a3fa874950d0850a5a9a4178ec763781ec3", + "trusted": true + }, + "cell_type": "code", + "source": "# Naive Bayes\nfrom sklearn.naive_bayes import GaussianNB\nModel = GaussianNB()\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e530d18ab308e36d575806583e534cc07fe61c61" + }, + "cell_type": "markdown", + "source": "
\n## 7-7 BernoulliNB\nLike MultinomialNB, this classifier is suitable for **discrete data**. The difference is that while MultinomialNB works with occurrence counts, BernoulliNB is designed for binary/boolean features." + }, + { + "metadata": { + "_uuid": "e7051b5e9aa144b74e9913cb2a6668832e7f3e02", + "trusted": true + }, + "cell_type": "code", + "source": "# BernoulliNB\nfrom sklearn.naive_bayes import BernoulliNB\nModel = BernoulliNB()\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "386d2d0e4fc7f5dc2b9298226d8e2ecfb7150346" + }, + "cell_type": "markdown", + "source": "
\n## 7-8 SVM\n\nThe advantages of support vector machines are:\n* Effective in high dimensional spaces.\n* Still effective in cases where number of dimensions is greater than the number of samples. \n* Uses a subset of training points in the decision function (called support vectors), so it is also memory efficient.\n* Versatile: different Kernel functions can be specified for the decision function. Common kernels are provided, but it is also possible to specify custom kernels.\n\nThe disadvantages of support vector machines include:\n\n* If the number of features is much greater than the number of samples, avoid over-fitting in choosing Kernel functions and regularization term is crucial.\n* SVMs do not directly provide probability estimates, these are calculated using an expensive five-fold cross-validation" + }, + { + "metadata": { + "_uuid": "a44a5a43945404c95863668c2ba099f6032357f8", + "trusted": true + }, + "cell_type": "code", + "source": "# Support Vector Machine\nfrom sklearn.svm import SVC\n\nModel = SVC()\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\n\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b1d092cc03dcaa712f4fe4ec6867b292321377d5" + }, + "cell_type": "markdown", + "source": "
\n## 7-9 Nu-Support Vector Classification\n\n> Similar to SVC but uses a parameter to control the number of support vectors." + }, + { + "metadata": { + "_uuid": "2fa7c9a5bef780adb400bd9ad83d030f83a8d2b3", + "trusted": true + }, + "cell_type": "code", + "source": "# Support Vector Machine's \nfrom sklearn.svm import NuSVC\n\nModel = NuSVC()\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\n\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5d07a75e83251ddbf8cfdfd11c9faa2671ad87ff" + }, + "cell_type": "markdown", + "source": "
\n## 7-10 Linear Support Vector Classification\n\nSimilar to **SVC** with parameter kernel=’linear’, but implemented in terms of liblinear rather than libsvm, so it has more flexibility in the choice of penalties and loss functions and should scale better to large numbers of samples." + }, + { + "metadata": { + "_uuid": "7e7275f160f2e4e270200eaa01c13be5cb465142", + "trusted": true + }, + "cell_type": "code", + "source": "# Linear Support Vector Classification\nfrom sklearn.svm import LinearSVC\n\nModel = LinearSVC()\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\n\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "cec81c9e0c3bc6afba07811a321b5383a0f823f3" + }, + "cell_type": "markdown", + "source": "
\n## 7-11 Decision Tree\nDecision Trees (DTs) are a non-parametric supervised learning method used for **classification** and **regression**. The goal is to create a model that predicts the value of a target variable by learning simple **decision rules** inferred from the data features." + }, + { + "metadata": { + "_uuid": "10e25ad67f7c25a8654637d4ba496b64121d67d0", + "trusted": true + }, + "cell_type": "code", + "source": "# Decision Tree's\nfrom sklearn.tree import DecisionTreeClassifier\n\nModel = DecisionTreeClassifier()\n\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a7d897130fd705943764e924bbe468c99b7c036a" + }, + "cell_type": "markdown", + "source": "
\n## 7-12 ExtraTreeClassifier\nAn extremely randomized tree classifier.\n\nExtra-trees differ from classic decision trees in the way they are built. When looking for the best split to separate the samples of a node into two groups, random splits are drawn for each of the **max_features** randomly selected features and the best split among those is chosen. When max_features is set 1, this amounts to building a totally random decision tree.\n\n**Warning**: Extra-trees should only be used within ensemble methods." + }, + { + "metadata": { + "_uuid": "5a775006a814b6aacdcc07dc46995eb291b873f1", + "trusted": true + }, + "cell_type": "code", + "source": "# ExtraTreeClassifier\nfrom sklearn.tree import ExtraTreeClassifier\n\nModel = ExtraTreeClassifier()\n\nModel.fit(X_train, y_train)\n\ny_pred = Model.predict(X_test)\n\n# Summary of the predictions made by the classifier\nprint(classification_report(y_test, y_pred))\nprint(confusion_matrix(y_test, y_pred))\n# Accuracy score\nprint('accuracy is',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "48f940f73580a2997d75f22eba09d938c86a1a97" + }, + "cell_type": "markdown", + "source": "
\n## 7-13 Neural network\n\nI have used multi-layer Perceptron classifier.\nThis model optimizes the log-loss function using **LBFGS** or **stochastic gradient descent**." + }, + { + "metadata": { + "_uuid": "1c10482510f654878f93b573dc1abe4112b861eb" + }, + "cell_type": "markdown", + "source": "## 7-13-1 What is a Perceptron?" + }, + { + "metadata": { + "_uuid": "a94d82b497cbe543da0a637ecfed6e9e8b7569e7" + }, + "cell_type": "markdown", + "source": "There are many online examples and tutorials on perceptrons and learning. Here is a list of some articles:\n- [Wikipedia on Perceptrons](https://en.wikipedia.org/wiki/Perceptron)\n- Jurafsky and Martin (ed. 3), Chapter 8" + }, + { + "metadata": { + "_uuid": "e8e4da1a0b3d51a5fff38750fb4631ac3aa7eebb" + }, + "cell_type": "markdown", + "source": "This is an example that I have taken from a draft of the 3rd edition of Jurafsky and Martin, with slight modifications:\nWe import *numpy* and use its *exp* function. We could use the same function from the *math* module, or some other module like *scipy*. The *sigmoid* function is defined as in the textbook:\n" + }, + { + "metadata": { + "_uuid": "196e5a54ed0de712e2254e77439051267cad4b3d", + "trusted": true + }, + "cell_type": "code", + "source": "import numpy as np\n\ndef sigmoid(z):\n return 1 / (1 + np.exp(-z))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9aa207d0bb6a7342932406d8fa68cbd49be866b5" + }, + "cell_type": "markdown", + "source": "Our example data, **weights** $w$, **bias** $b$, and **input** $x$ are defined as:" + }, + { + "metadata": { + "_uuid": "69cae82df8a906ad43594464c6497e05e282dcd1", + "trusted": true + }, + "cell_type": "code", + "source": "w = np.array([0.2, 0.3, 0.8])\nb = 0.5\nx = np.array([0.5, 0.6, 0.1])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8cd5da02c0fc0beedd9a3417e399982293d28fd2" + }, + "cell_type": "markdown", + "source": "Our neural unit would compute $z$ as the **dot-product** $w \\cdot x$ and add the **bias** $b$ to it. The sigmoid function defined above will convert this $z$ value to the **activation value** $a$ of the unit:" + }, + { + "metadata": { + "_uuid": "65d083572bf2cc897d816765db05758b107741ff", + "trusted": true + }, + "cell_type": "code", + "source": "z = w.dot(x) + b\nprint(\"z:\", z)\nprint(\"a:\", sigmoid(z))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9e9101a20c9a167a1d925f3b64aafb94317155e2" + }, + "cell_type": "markdown", + "source": "### The XOR Problem\nThe power of neural units comes from combining them into larger networks. Minsky and Papert (1969): A single neural unit cannot compute the simple logical function XOR.\n\nThe task is to implement a simple **perceptron** to compute logical operations like AND, OR, and XOR.\n\n- Input: $x_1$ and $x_2$\n- Bias: $b = -1$ for AND; $b = 0$ for OR\n- Weights: $w = [1, 1]$\n\nwith the following activation function:\n\n$$\ny = \\begin{cases}\n \\ 0 & \\quad \\text{if } w \\cdot x + b \\leq 0\\\\\n \\ 1 & \\quad \\text{if } w \\cdot x + b > 0\n \\end{cases}\n$$" + }, + { + "metadata": { + "_uuid": "c03b3a6a5307cc53e637afd6da5c307c985be7ac" + }, + "cell_type": "markdown", + "source": "We can define this activation function in Python as:" + }, + { + "metadata": { + "_uuid": "7b0832df65fc1aa694a1cf67b8713c894b1ed2a2", + "trusted": true + }, + "cell_type": "code", + "source": "def activation(z):\n if z > 0:\n return 1\n return 0", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "27ae56a47bd180ebbfd82b3f0242c8078db6ac97" + }, + "cell_type": "markdown", + "source": "For AND we could implement a perceptron as:" + }, + { + "metadata": { + "_uuid": "3267d3f1a2864f29ff2382a2057b0b88fa74b649", + "trusted": true + }, + "cell_type": "code", + "source": "w = np.array([1, 1])\nb = -1\nx = np.array([0, 0])\nprint(\"0 AND 0:\", activation(w.dot(x) + b))\nx = np.array([1, 0])\nprint(\"1 AND 0:\", activation(w.dot(x) + b))\nx = np.array([0, 1])\nprint(\"0 AND 1:\", activation(w.dot(x) + b))\nx = np.array([1, 1])\nprint(\"1 AND 1:\", activation(w.dot(x) + b))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "dbee1f41f0bd66613f5b49e0f65be4bfd9f91283" + }, + "cell_type": "markdown", + "source": "For OR we could implement a perceptron as:" + }, + { + "metadata": { + "_uuid": "bf47440fb2f5a0fb016286f0a3a41a05a8416495", + "trusted": true + }, + "cell_type": "code", + "source": "w = np.array([1, 1])\nb = 0\nx = np.array([0, 0])\nprint(\"0 OR 0:\", activation(w.dot(x) + b))\nx = np.array([1, 0])\nprint(\"1 OR 0:\", activation(w.dot(x) + b))\nx = np.array([0, 1])\nprint(\"0 OR 1:\", activation(w.dot(x) + b))\nx = np.array([1, 1])\nprint(\"1 OR 1:\", activation(w.dot(x) + b))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "181068ef1b8e1ba568093184c41a118b4c0bfe7f" + }, + "cell_type": "markdown", + "source": "There is no way to implement a perceptron for XOR this way." + }, + { + "metadata": { + "_uuid": "d12494da861ea094378c7cf6a3409803fb5585ac" + }, + "cell_type": "markdown", + "source": "no see our prediction for iris" + }, + { + "metadata": { + "_uuid": "5f040cfaeb71f8caa94e4d7f18cccde8d2a0b8a7", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn.neural_network import MLPClassifier\nModel=MLPClassifier()\nModel.fit(X_train,y_train)\ny_pred=Model.predict(X_test)\n# Summary of the predictions\nprint(classification_report(y_test,y_pred))\nprint(confusion_matrix(y_test,y_pred))\n#Accuracy Score\nprint('accuracy is ',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ffc339dbf9c8da74194b994930694bd97bb2afbb" + }, + "cell_type": "markdown", + "source": "
\n## 7-14 RandomForest\nA random forest is a meta estimator that **fits a number of decision tree classifiers** on various sub-samples of the dataset and uses averaging to improve the predictive accuracy and control over-fitting. \n\nThe sub-sample size is always the same as the original input sample size but the samples are drawn with replacement if bootstrap=True (default)." + }, + { + "metadata": { + "_uuid": "8ed2305b51c2248a8aa62cf4452632f448e83771", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn.ensemble import RandomForestClassifier\nModel=RandomForestClassifier(max_depth=2)\nModel.fit(X_train,y_train)\ny_pred=Model.predict(X_test)\nprint(classification_report(y_test,y_pred))\nprint(confusion_matrix(y_pred,y_test))\n#Accuracy Score\nprint('accuracy is ',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1311eb15f2afceed2219faeb859d0d07b7072176" + }, + "cell_type": "markdown", + "source": "
\n## 7-15 Bagging classifier \nA Bagging classifier is an ensemble **meta-estimator** that fits base classifiers each on random subsets of the original dataset and then aggregate their individual predictions (either by voting or by averaging) to form a final prediction. Such a meta-estimator can typically be used as a way to reduce the variance of a black-box estimator (e.g., a decision tree), by introducing randomization into its construction procedure and then making an ensemble out of it.\n\nThis algorithm encompasses several works from the literature. When random subsets of the dataset are drawn as random subsets of the samples, then this algorithm is known as Pasting . If samples are drawn with replacement, then the method is known as Bagging . When random subsets of the dataset are drawn as random subsets of the features, then the method is known as Random Subspaces . Finally, when base estimators are built on subsets of both samples and features, then the method is known as Random Patches .[http://scikit-learn.org]" + }, + { + "metadata": { + "_uuid": "c11c731d3db6c1c81301da85dc158cb7d324c4cb", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn.ensemble import BaggingClassifier\nModel=BaggingClassifier()\nModel.fit(X_train,y_train)\ny_pred=Model.predict(X_test)\nprint(classification_report(y_test,y_pred))\nprint(confusion_matrix(y_pred,y_test))\n#Accuracy Score\nprint('accuracy is ',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c0944bd32424f38906148d96f4b1e6fccfbf97a6" + }, + "cell_type": "markdown", + "source": "
\n## 7-16 AdaBoost classifier\n\nAn AdaBoost classifier is a meta-estimator that begins by fitting a classifier on the original dataset and then fits additional copies of the classifier on the same dataset but where the weights of incorrectly classified instances are adjusted such that subsequent classifiers focus more on difficult cases.\nThis class implements the algorithm known as **AdaBoost-SAMME** ." + }, + { + "metadata": { + "_uuid": "938946ee8e017b982c4c06e193d4d13cb7d3fb5f", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn.ensemble import AdaBoostClassifier\nModel=AdaBoostClassifier()\nModel.fit(X_train,y_train)\ny_pred=Model.predict(X_test)\nprint(classification_report(y_test,y_pred))\nprint(confusion_matrix(y_pred,y_test))\n#Accuracy Score\nprint('accuracy is ',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9d62842d12731d3eb1d6577c5b35c12c4886c708" + }, + "cell_type": "markdown", + "source": "
\n## 7-17 Gradient Boosting Classifier\nGB builds an additive model in a forward stage-wise fashion; it allows for the optimization of arbitrary differentiable loss functions." + }, + { + "metadata": { + "_uuid": "863124561c0d1b5995d0b8d3702daa7bc364d6b0", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn.ensemble import GradientBoostingClassifier\nModel=GradientBoostingClassifier()\nModel.fit(X_train,y_train)\ny_pred=Model.predict(X_test)\nprint(classification_report(y_test,y_pred))\nprint(confusion_matrix(y_pred,y_test))\n#Accuracy Score\nprint('accuracy is ',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e89b4494bd78c2d66beeba34a4e320fd8c9dae0c" + }, + "cell_type": "markdown", + "source": "
\n## 7-18 Linear Discriminant Analysis\nLinear Discriminant Analysis (discriminant_analysis.LinearDiscriminantAnalysis) and Quadratic Discriminant Analysis (discriminant_analysis.QuadraticDiscriminantAnalysis) are two classic classifiers, with, as their names suggest, a **linear and a quadratic decision surface**, respectively.\n\nThese classifiers are attractive because they have closed-form solutions that can be easily computed, are inherently multiclass, have proven to work well in practice, and have no **hyperparameters** to tune." + }, + { + "metadata": { + "_uuid": "0796cd9f1c902345df605b7557a9c3ff686e35a9", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nModel=LinearDiscriminantAnalysis()\nModel.fit(X_train,y_train)\ny_pred=Model.predict(X_test)\nprint(classification_report(y_test,y_pred))\nprint(confusion_matrix(y_pred,y_test))\n#Accuracy Score\nprint('accuracy is ',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "296137970fc94fa4a4eb4185cb5fa952b1985c57" + }, + "cell_type": "markdown", + "source": "
\n## 7-19 Quadratic Discriminant Analysis\nA classifier with a quadratic decision boundary, generated by fitting class conditional densities to the data and using Bayes’ rule.\n\nThe model fits a **Gaussian** density to each class." + }, + { + "metadata": { + "_uuid": "5f521d19f295b8e8f24f5715e93b1c45e9a6bce3", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis\nModel=QuadraticDiscriminantAnalysis()\nModel.fit(X_train,y_train)\ny_pred=Model.predict(X_test)\nprint(classification_report(y_test,y_pred))\nprint(confusion_matrix(y_pred,y_test))\n#Accuracy Score\nprint('accuracy is ',accuracy_score(y_pred,y_test))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0518634bf8850ac1bfcfc301e93a8740e1995c3a" + }, + "cell_type": "markdown", + "source": "
\n## 7-20 Kmeans \nK-means clustering is a type of unsupervised learning, which is used when you have unlabeled data (i.e., data without defined categories or groups). \n\nThe goal of this algorithm is **to find groups in the data**, with the number of groups represented by the variable K. The algorithm works iteratively to assign each data point to one of K groups based on the features that are provided.\n\n" + }, + { + "metadata": { + "_uuid": "427f08af02fc7288a5e35de5ff4b6c33b8fce491", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn.cluster import KMeans\niris_SP = dataset[['SepalLengthCm','SepalWidthCm','PetalLengthCm','PetalWidthCm']]\n# k-means cluster analysis for 1-15 clusters \nfrom scipy.spatial.distance import cdist\nclusters=range(1,15)\nmeandist=[]\n\n# loop through each cluster and fit the model to the train set\n# generate the predicted cluster assingment and append the mean \n# distance my taking the sum divided by the shape\nfor k in clusters:\n model=KMeans(n_clusters=k)\n model.fit(iris_SP)\n clusassign=model.predict(iris_SP)\n meandist.append(sum(np.min(cdist(iris_SP, model.cluster_centers_, 'euclidean'), axis=1))\n / iris_SP.shape[0])\n\n\"\"\"\nPlot average distance from observations from the cluster centroid\nto use the Elbow Method to identify number of clusters to choose\n\"\"\"\nplt.plot(clusters, meandist)\nplt.xlabel('Number of clusters')\nplt.ylabel('Average distance')\nplt.title('Selecting k with the Elbow Method') \n# pick the fewest number of clusters that reduces the average distance\n# If you observe after 3 we can see graph is almost linear", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "cef1144c091641f2dfe71d7e77a72c2bb80ca74f" + }, + "cell_type": "markdown", + "source": "
\n## 7-21- Backpropagation" + }, + { + "metadata": { + "_uuid": "12549f818ad49bb4e456772c96acdf8c7c8a7764" + }, + "cell_type": "markdown", + "source": "Backpropagation is a method used in artificial neural networks to calculate a gradient that is needed in the calculation of the weights to be used in the network.It is commonly used to train deep neural networks,a term referring to neural networks with more than one hidden layer." + }, + { + "metadata": { + "_uuid": "4ffbb0de42d9591f1466bae537e18c3e77ab96cf" + }, + "cell_type": "markdown", + "source": "In this example we will use a very simple network to start with. The network will only have one input and one output layer. We want to make the following predictions from the input:\n\n| Input | Output |\n| ------ |:------:|\n| 0 0 1 | 0 |\n| 1 1 1 | 1 |\n| 1 0 1 | 1 |\n| 0 1 1 | 0 |" + }, + { + "metadata": { + "_uuid": "8cb07258af41ffde3ffae4aae6fc3d2dbe9be5ca" + }, + "cell_type": "markdown", + "source": "We will use **Numpy** to compute the network parameters, weights, activation, and outputs:" + }, + { + "metadata": { + "_uuid": "9b5c9c7115e49cdb5c3c8428399e2508687efa47" + }, + "cell_type": "markdown", + "source": "We will use the *[Sigmoid](http://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html#sigmoid)* activation function:" + }, + { + "metadata": { + "_uuid": "8422345e9e9c1853acba702d0d7138e3a209f0e8", + "trusted": true + }, + "cell_type": "code", + "source": "def sigmoid(z):\n \"\"\"The sigmoid activation function.\"\"\"\n return 1 / (1 + np.exp(-z))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1eec604fbe5729fecabfc4101a7b4887bf390876" + }, + "cell_type": "markdown", + "source": "We could use the [ReLU](http://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html#activation-relu) activation function instead:" + }, + { + "metadata": { + "_uuid": "557945abedb17c571926af334d5469b4edf12b48", + "trusted": true + }, + "cell_type": "code", + "source": "def relu(z):\n \"\"\"The ReLU activation function.\"\"\"\n return max(0, z)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f405e20e385bc594337a59deba1c7d8d7769349d" + }, + "cell_type": "markdown", + "source": "The [Sigmoid](http://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html#sigmoid) activation function introduces non-linearity to the computation. It maps the input value to an output value between $0$ and $1$." + }, + { + "metadata": { + "_uuid": "d388972329e79c533e7a8b90a2cfed18e288e4e5" + }, + "cell_type": "markdown", + "source": "" + }, + { + "metadata": { + "_uuid": "a6881ae9a1a8554739f9464119d14875beaaf8ad" + }, + "cell_type": "markdown", + "source": "The derivative of the sigmoid function is maximal at $x=0$ and minimal for lower or higher values of $x$:" + }, + { + "metadata": { + "_uuid": "dfb7cad18d4509840dea33c4aff0e6de8a6cf86b" + }, + "cell_type": "markdown", + "source": "" + }, + { + "metadata": { + "_uuid": "616e01ca7ed747aeb817707cbd14c57a92f31553" + }, + "cell_type": "markdown", + "source": "The *sigmoid_prime* function returns the derivative of the sigmoid for any given $z$. The derivative of the sigmoid is $z * (1 - z)$. This is basically the slope of the sigmoid function at any given point: " + }, + { + "metadata": { + "_uuid": "d4be4a6c8353a98c55eba479f520cbdeecc29f1d", + "trusted": true + }, + "cell_type": "code", + "source": "def sigmoid_prime(z):\n \"\"\"The derivative of sigmoid for z.\"\"\"\n return z * (1 - z)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3be8c0c576f52ec92539039615a0b4ffe5248f57" + }, + "cell_type": "markdown", + "source": "We define the inputs as rows in *X*. There are three input nodes (three columns per vector in $X$. Each row is one trainig example:" + }, + { + "metadata": { + "_uuid": "14fa62c6d5ac721998095f5b556610e0984eea98", + "trusted": true + }, + "cell_type": "code", + "source": "X = np.array([ [ 0, 0, 1 ],\n [ 0, 1, 1 ],\n [ 1, 0, 1 ],\n [ 1, 1, 1 ] ])\nprint(X)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3f32526b2e047abdda2a1d1d611f1cf7f188f2e9" + }, + "cell_type": "markdown", + "source": "The outputs are stored in *y*, where each row represents the output for the corresponding input vector (row) in *X*. The vector is initiated as a single row vector and with four columns and transposed (using the $.T$ method) into a column vector with four rows:" + }, + { + "metadata": { + "_uuid": "dbd824213ef3fe2dd7eb01d4b4396d816bf002d3", + "trusted": true + }, + "cell_type": "code", + "source": "y = np.array([[0,0,1,1]]).T\nprint(y)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5e6e2ad9b6539e5c3d6aff5cf2db5f44c0f2611e" + }, + "cell_type": "markdown", + "source": "To make the outputs deterministic, we seed the random number generator with a constant. This will guarantee that every time you run the code, you will get the same random distribution:" + }, + { + "metadata": { + "_uuid": "6a441227d4cd02b6654e7800cb823e8eef62ff1d", + "trusted": true + }, + "cell_type": "code", + "source": "np.random.seed(1)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7cc15f07e9c4a15ec48265dd70f1e60e292f6485" + }, + "cell_type": "markdown", + "source": "We create a weight matrix ($Wo$) with randomly initialized weights:" + }, + { + "metadata": { + "_uuid": "f1be1de240c6e7b718def61d73d5b7b4f770b54a", + "trusted": true + }, + "cell_type": "code", + "source": "n_inputs = 3\nn_outputs = 1\n#Wo = 2 * np.random.random( (n_inputs, n_outputs) ) - 1\nWo = np.random.random( (n_inputs, n_outputs) ) * np.sqrt(2.0/n_inputs)\nprint(Wo)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f690ef1844d5344c2513381b6169f3bfe6080714" + }, + "cell_type": "markdown", + "source": "The reason for the output weight matrix ($Wo$) to have 3 rows and 1 column is that it represents the weights of the connections from the three input neurons to the single output neuron. The initialization of the weight matrix is random with a mean of $0$ and a variance of $1$. There is a good reason for chosing a mean of zero in the weight initialization. See for details the section on Weight Initialization in the [Stanford course CS231n on Convolutional Neural Networks for Visual Recognition](https://cs231n.github.io/neural-networks-2/#init)." + }, + { + "metadata": { + "_uuid": "4b87807dc117e0908ec98b4e54843dc8f29c7397" + }, + "cell_type": "markdown", + "source": "The core representation of this network is basically the weight matrix *Wo*. The rest, input matrix, output vector and so on are components that we need to learning and evaluation. The leraning result is stored in the *Wo* weight matrix." + }, + { + "metadata": { + "_uuid": "fb1319477d80a209e9caa3129b6371d872dab29b" + }, + "cell_type": "markdown", + "source": "We loop in the optimization and learning cycle 10,000 times. In the *forward propagation* line we process the entire input matrix for training. This is called **full batch** training. I do not use an alternative variable name to represent the input layer, instead I use the input matrix $X$ directly here. Think of this as the different inputs to the input neurons computed at once. In principle the input or training data could have many more training examples, the code would stay the same." + }, + { + "metadata": { + "_uuid": "45907fc6c64b83116860d2c3dab8d252fd470c3e", + "trusted": true + }, + "cell_type": "code", + "source": "for n in range(10000):\n # forward propagation\n l1 = sigmoid(np.dot(X, Wo))\n \n # compute the loss\n l1_error = y - l1\n #print(\"l1_error:\\n\", l1_error)\n \n # multiply the loss by the slope of the sigmoid at l1\n l1_delta = l1_error * sigmoid_prime(l1)\n #print(\"l1_delta:\\n\", l1_delta)\n \n #print(\"error:\", l1_error, \"\\nderivative:\", sigmoid(l1, True), \"\\ndelta:\", l1_delta, \"\\n\", \"-\"*10, \"\\n\")\n # update weights\n Wo += np.dot(X.T, l1_delta)\n\nprint(\"l1:\\n\", l1)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6d887640b00bf8d73c4544ef23d11c296ff15154" + }, + "cell_type": "markdown", + "source": "The dots in $l1$ represent the lines in the graphic below. The lines represent the slope of the sigmoid in the particular position. The slope is highest with a value $x = 0$ (blue dot). It is rather shallow with $x = 2$ (green dot), and not so shallow and not as high with $x = -1$. All derivatives are between $0$ and $1$, of course, that is, no slope or a maximal slope of $1$. There is no negative slope in a sigmoid function." + }, + { + "metadata": { + "_uuid": "01ea3085bf5e9dd4babee8437895735c9aa54763" + }, + "cell_type": "markdown", + "source": "" + }, + { + "metadata": { + "_uuid": "c0cfdf91801ec2bbffc34a7a95f6e899ed7a39fc" + }, + "cell_type": "markdown", + "source": "The matrix $l1\\_error$ is a 4 by 1 matrix (4 rows, 1 column). The derivative matrix $sigmoid\\_prime(l1)$ is also a 4 by one matrix. The returned matrix of the element-wise product $l1\\_delta$ is also the 4 by 1 matrix." + }, + { + "metadata": { + "_uuid": "5349a8fcd505990baa71481697397cef4f2176fb" + }, + "cell_type": "markdown", + "source": "The product of the error and the slopes **reduces the error of high confidence predictions**. When the sigmoid slope is very shallow, the network had a very high or a very low value, that is, it was rather confident. If the network guessed something close to $x=0, y=0.5$, it was not very confident. Such predictions without confidence are updated most significantly. The other peripheral scores are multiplied with a number closer to $0$." + }, + { + "metadata": { + "_uuid": "057f51f99a2a87073013e9e2b9f5538c98297cf3" + }, + "cell_type": "markdown", + "source": "In the prediction line $l1 = sigmoid(np.dot(X, Wo))$ we compute the dot-product of the input vectors with the weights and compute the sigmoid on the sums.\nThe result of the dot-product is the number of rows of the first matrix ($X$) and the number of columns of the second matrix ($Wo$).\nIn the computation of the difference between the true (or gold) values in $y$ and the \"guessed\" values in $l1$ we have an estimate of the miss." + }, + { + "metadata": { + "_uuid": "7c64e2c97d7093bb8f71d5bd173820b526fc71a1" + }, + "cell_type": "markdown", + "source": "An example computation for the input $[ 1, 0, 1 ]$ and the weights $[ 9.5, 0.2, -0.1 ]$ and an output of $0.99$: If $y = 1$, the $l1\\_error = y - l2 = 0.01$, and $l1\\_delta = 0.01 * tiny\\_deriv$:" + }, + { + "metadata": { + "_uuid": "602abaf7339d617f2e0333c86ab98b94bb40a96d" + }, + "cell_type": "markdown", + "source": "" + }, + { + "metadata": { + "_uuid": "3307f0633c665a5fa0aaa97898ab6a1d1d9f6fac" + }, + "cell_type": "markdown", + "source": "## 7-21-1 More Complex Example with Backpropagation" + }, + { + "metadata": { + "_uuid": "750b541e55ae336dcee16ff38d672dff649792a6" + }, + "cell_type": "markdown", + "source": "Consider now a more complicated example where no column has a correlation with the output:\n\n| Input | Output |\n| ------ |:------:|\n| 0 0 1 | 0 |\n| 0 1 1 | 1 |\n| 1 0 1 | 1 |\n| 1 1 1 | 0 |" + }, + { + "metadata": { + "_uuid": "85bc7295eaf21d0bfad6c4572bfb868d74b2e1aa" + }, + "cell_type": "markdown", + "source": "The pattern here is our XOR pattern or problem: If there is a $1$ in either column $1$ or $2$, but not in both, the output is $1$ (XOR over column $1$ and $2$)." + }, + { + "metadata": { + "_uuid": "340ea076b1899802093da816d92017ce2b3d2716" + }, + "cell_type": "markdown", + "source": "From our discussion of the XOR problem we remember that this is a *non-linear pattern*, a **one-to-one relationship between a combination of inputs**." + }, + { + "metadata": { + "_uuid": "b64402f35850471c7136b201c783b9d9e60e6556" + }, + "cell_type": "markdown", + "source": "To cope with this problem, we need a network with another layer, that is a layer that will combine and transform the input, and an additional layer will map it to the output. We will add a *hidden layer* with randomized weights and then train those to optimize the output probabilities of the table above." + }, + { + "metadata": { + "_uuid": "28829b11334a35dc1649f1d6d2134ed4e0d1a795" + }, + "cell_type": "markdown", + "source": "We will define a new $X$ input matrix that reflects the above table:" + }, + { + "metadata": { + "_uuid": "2c41f4546c675916ff0964370bc98a6862353666", + "trusted": true + }, + "cell_type": "code", + "source": "X = np.array([[0, 0, 1],\n [0, 1, 1],\n [1, 0, 1],\n [1, 1, 1]])\nprint(X)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "20aff6095cd099acf174500e76946c12481192d7" + }, + "cell_type": "markdown", + "source": "We also define a new output matrix $y$:" + }, + { + "metadata": { + "_uuid": "508e0c65bdd467bfed8d69ac52638d8821dd9e2f", + "trusted": true + }, + "cell_type": "code", + "source": "y = np.array([[ 0, 1, 1, 0]]).T\nprint(y)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "87a03d01b3b1df0ff847a7507cc66ae87f1669d2" + }, + "cell_type": "markdown", + "source": "We initialize the random number generator with a constant again:" + }, + { + "metadata": { + "_uuid": "237da33769d159e1d450e66c93e677618c0a127f", + "trusted": true + }, + "cell_type": "code", + "source": "np.random.seed(1)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "03c37d00f1d7b87c44e7a4777990049af4044548" + }, + "cell_type": "markdown", + "source": "Assume that our 3 inputs are mapped to 4 hidden layer ($Wh$) neurons, we have to initialize the hidden layer weights in a 3 by 4 matrix. The outout layer ($Wo$) is a single neuron that is connected to the hidden layer, thus the output layer is a 4 by 1 matrix:" + }, + { + "metadata": { + "_uuid": "823a9291e688f1840b781b5aeba9779215206676", + "trusted": true + }, + "cell_type": "code", + "source": "n_inputs = 3\nn_hidden_neurons = 4\nn_output_neurons = 1\nWh = np.random.random( (n_inputs, n_hidden_neurons) ) * np.sqrt(2.0/n_inputs)\nWo = np.random.random( (n_hidden_neurons, n_output_neurons) ) * np.sqrt(2.0/n_hidden_neurons)\nprint(\"Wh:\\n\", Wh)\nprint(\"Wo:\\n\", Wo)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d27aca98d06bc0ed16678628d6927015b8dfe427" + }, + "cell_type": "markdown", + "source": "We will loop now 60,000 times to optimize the weights:" + }, + { + "metadata": { + "_uuid": "90add134167965958223083f3c3a7818795777bc", + "trusted": true + }, + "cell_type": "code", + "source": "for i in range(100000):\n l1 = sigmoid(np.dot(X, Wh))\n l2 = sigmoid(np.dot(l1, Wo))\n \n l2_error = y - l2\n \n if (i % 10000) == 0:\n print(\"Error:\", np.mean(np.abs(l2_error)))\n \n # gradient, changing towards the target value\n l2_delta = l2_error * sigmoid_prime(l2)\n \n # compute the l1 contribution by value to the l2 error, given the output weights\n l1_error = l2_delta.dot(Wo.T)\n \n # direction of the l1 target:\n # in what direction is the target l1?\n l1_delta = l1_error * sigmoid_prime(l1)\n \n Wo += np.dot(l1.T, l2_delta)\n Wh += np.dot(X.T, l1_delta)\n\nprint(\"Wo:\\n\", Wo)\nprint(\"Wh:\\n\", Wh)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "263abd8f132d7b73ab2eb67c56caf1508a35d1d3" + }, + "cell_type": "markdown", + "source": "The new computation in this new loop is $l1\\_error = l2\\_delta.dot(Wo.T)$, a **confidence weighted error** from $l2$ to compute an error for $l1$. The computation sends the error across the weights from $l2$ to $l1$. The result is a **contribution weighted error**, because we learn how much each node value in $l1$ **contributed** to the error in $l2$. This step is called **backpropagation**. We update $Wh$ using the same steps we did in the 2 layer implementation." + }, + { + "metadata": { + "trusted": true, + "_uuid": "60e0e926937b245cc36fe5845bf6be7cbdd6b341" + }, + "cell_type": "code", + "source": "from sklearn import datasets\niris = datasets.load_iris()\nX_iris = iris.data\ny_iris = iris.target", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "f33de6d7fe6de563e798b128857aa1420e31b290" + }, + "cell_type": "code", + "source": "plt.figure('sepal')\ncolormarkers = [ ['red','s'], ['greenyellow','o'], ['blue','x']]\nfor i in range(len(colormarkers)):\n px = X_iris[:, 0][y_iris == i]\n py = X_iris[:, 1][y_iris == i]\n plt.scatter(px, py, c=colormarkers[i][0], marker=colormarkers[i][1])\n\nplt.title('Iris Dataset: Sepal width vs sepal length')\nplt.legend(iris.target_names)\nplt.xlabel('Sepal length')\nplt.ylabel('Sepal width')\nplt.figure('petal')\n\nfor i in range(len(colormarkers)):\n px = X_iris[:, 2][y_iris == i]\n py = X_iris[:, 3][y_iris == i]\n plt.scatter(px, py, c=colormarkers[i][0], marker=colormarkers[i][1])\n\nplt.title('Iris Dataset: petal width vs petal length')\nplt.legend(iris.target_names)\nplt.xlabel('Petal length')\nplt.ylabel('Petal width')\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "97adc471c068fbd8d36ca19a4db0d98b0924c731" + }, + "cell_type": "markdown", + "source": "-----------------\n
\n# 8- Conclusion" + }, + { + "metadata": { + "_uuid": "1adfb5ba84e0f1d8fba58a2fca30546ead095047", + "collapsed": true + }, + "cell_type": "markdown", + "source": "In this kernel, I have tried to cover all the parts related to the process of **Machine Learning** with a variety of Python packages and I know that there are still some problems then I hope to get your feedback to improve it.\n" + }, + { + "metadata": { + "_uuid": "cf3679a51c72dbe2d2549b5fe97e4ac5f1fa0fa0" + }, + "cell_type": "markdown", + "source": "you can follow me on:\n\n> #### [ GitHub](https://github.com/mjbahmani)\n\n--------------------------------------\n\n **I hope you find this kernel helpful and some UPVOTES would be very much appreciated** " + }, + { + "metadata": { + "_cell_guid": "79c7e3d0-c299-4dcb-8224-4455121ee9b0", + "_uuid": "d629ff2d2480ee46fbb7e2d37f6b5fab8052498a", + "collapsed": true + }, + "cell_type": "markdown", + "source": "
\n\n-----------\n\n# 9- References\n* [1] [Iris image](https://rpubs.com/wjholst/322258)\n* [2] [IRIS](https://archive.ics.uci.edu/ml/datasets/iris)\n* [3] [https://skymind.ai/wiki/machine-learning-workflow](https://skymind.ai/wiki/machine-learning-workflow)\n* [4] [IRIS-wiki](https://archive.ics.uci.edu/ml/datasets/iris)\n* [5] [Problem-define](https://machinelearningmastery.com/machine-learning-in-python-step-by-step/)\n* [6] [Sklearn](http://scikit-learn.org/)\n* [7] [machine-learning-in-python-step-by-step](https://machinelearningmastery.com/machine-learning-in-python-step-by-step/)\n* [8] [Data Cleaning](http://wp.sigmod.org/?p=2288)\n* [9] [competitive data science](https://www.coursera.org/learn/competitive-data-science/)\n\n\n-------------\n" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.6.6", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} \ No newline at end of file diff --git a/README.md b/README.md index 3a4e5bc..f937e66 100644 --- a/README.md +++ b/README.md @@ -1,75 +1,180 @@ -## A Comprehensive Machine Learning Workflow with Python -There are plenty of courses and tutorials that can help you learn machine learning from scratch but here in Kaggle, I want to solve a simple machine learning problem as a comprehensive workflow with python packages.Then +# 1- Introduction +This is a **comprehensive ML techniques with python** , that I have spent for more than two months to complete it. -After reading, you can use this workflow to solve other real problems and use it as a template to deal with machine learning problems. +I think it is a great opportunity for who want to learn machine learning workflow with python completely. +I have covered most of the methods that are implemented for iris until **2018**, you can start to learn and review your knowledge about ML with a simple dataset and try to learn and memorize the workflow for your journey in Data science world. +I am open to getting your feedback for improving this +
+# 2- Machine Learning Workflow +Field of study that gives computers the ability to learn without being +explicitly programmed. + +Arthur Samuel, 1959 + +If you have already read some [machine learning books](https://towardsdatascience.com/list-of-free-must-read-machine-learning-books-89576749d2ff). You have noticed that there are different ways to stream data into machine learning. + +most of these books share the following steps (checklist): +* Define the Problem(Look at the big picture) +* Specify Inputs & Outputs +* Data Collection +* Exploratory data analysis +* Data Preprocessing +* Model Design, Training, and Offline Evaluation +* Model Deployment, Online Evaluation, and Monitoring +* Model Maintenance, Diagnosis, and Retraining + +**You can see my workflow in the below image** : + + +**you should feel free to adapt this checklist to your needs** +## 2-1 Real world Application Vs Competitions + +
+# 3- Problem Definition +I think one of the important things when you start a new machine learning project is Defining your problem. that means you should understand business problem.( **Problem Formalization**) + +Problem Definition has four steps that have illustrated in the picture below: + +
+### 3-1 Problem Feature +we will use the classic Iris data set. This dataset contains information about three different types of Iris flowers: + +* Iris Versicolor +* Iris Virginica +* Iris Setosa + +The data set contains measurements of four variables : + +* sepal length +* sepal width +* petal length +* petal width + +The Iris data set has a number of interesting features: + +1. One of the classes (Iris Setosa) is linearly separable from the other two. However, the other two classes are not linearly separable. + +2. There is some overlap between the Versicolor and Virginica classes, so it is unlikely to achieve a perfect classification rate. + +3. There is some redundancy in the four input variables, so it is possible to achieve a good solution with only three of them, or even (with difficulty) from two, but the precise choice of best variables is not obvious. + +**Why am I using this dataset:** + +1- This is a good project because it is so well understood. + +2- Attributes are numeric so you have to figure out how to load and handle data. + +3- It is a classification problem, allowing you to practice with perhaps an easier type of supervised learning algorithm. + +4- It is a multi-class classification problem (multi-nominal) that may require some specialized handling. + +5- It only has 4 attributes and 150 rows, meaning it is small and easily fits into memory (and a screen or A4 page). + +6- All of the numeric attributes are in the same units and the same scale, not requiring any special scaling or transforms to get started.[5] + +7- we can define problem as clustering(unsupervised algorithm) project too. +
+### 3-2 Aim +The aim is to classify iris flowers among three species (setosa, versicolor or virginica) from measurements of length and width of sepals and petals +
+### 3-3 Variables +The variables are : +**sepal_length**: Sepal length, in centimeters, used as input. +**sepal_width**: Sepal width, in centimeters, used as input. +**petal_length**: Petal length, in centimeters, used as input. +**petal_width**: Petal width, in centimeters, used as input. +**setosa**: Iris setosa, true or false, used as target. +**versicolour**: Iris versicolour, true or false, used as target. +**virginica**: Iris virginica, true or false, used as target. + +**<< Note >>** +> You must answer the following question: +How does your company expact to use and benfit from your model. +
+# 4- Inputs & Outputs +
+### 4-1 Inputs +**Iris** is a very popular **classification** and **clustering** problem in machine learning and it is such as "Hello world" program when you start learning a new programming language. then I decided to apply Iris on 20 machine learning method on it. +The Iris flower data set or Fisher's Iris data set is a **multivariate data set** introduced by the British statistician and biologist Ronald Fisher in his 1936 paper The use of multiple measurements in taxonomic problems as an example of linear discriminant analysis. It is sometimes called Anderson's Iris data set because Edgar Anderson collected the data to quantify the morphologic variation of Iris flowers in three related species. Two of the three species were collected in the Gaspé Peninsula "all from the same pasture, and picked on the same day and measured at the same time by the same person with the same apparatus". +The data set consists of 50 samples from each of three species of Iris (Iris setosa, Iris virginica, and Iris versicolor). Four features were measured from each sample: the length and the width of the sepals and petals, in centimeters. Based on the combination of these four features, Fisher developed a linear discriminant model to distinguish the species from each other. + +As a result, **iris dataset is used as the input of all algorithms**. +![iris](https://image.ibb.co/gbH3ue/iris.png) +[image source](https://rpubs.com/wjholst/322258) +
+### 4-2 Outputs +the outputs for our algorithms totally depend on the type of classification or clustering algorithms. +the outputs can be the number of clusters or predict for new input. + +**setosa**: Iris setosa, true or false, used as target. +**versicolour**: Iris versicolour, true or false, used as target. +**virginica**: Iris virginica, true or false, used as a target. +
+# 5-Installation +#### Windows: +* Anaconda (from https://www.continuum.io) is a free Python distribution for SciPy stack. It is also available for Linux and Mac. +* Canopy (https://www.enthought.com/products/canopy/) is available as free as well as commercial distribution with full SciPy stack for Windows, Linux and Mac. +* Python (x,y) is a free Python distribution with SciPy stack and Spyder IDE for Windows OS. (Downloadable from http://python-xy.github.io/) +#### Linux +Package managers of respective Linux distributions are used to install one or more packages in SciPy stack. + +For Ubuntu Users: +sudo apt-get install python-numpy python-scipy python-matplotlibipythonipythonnotebook +python-pandas python-sympy python-nose +
+## 5-1 Jupyter notebook +I strongly recommend installing **Python** and **Jupyter** using the **[Anaconda Distribution](https://www.anaconda.com/download/)**, which includes Python, the Jupyter Notebook, and other commonly used packages for scientific computing and data science. + +First, download Anaconda. We recommend downloading Anaconda’s latest Python 3 version. + +Second, install the version of Anaconda which you downloaded, following the instructions on the download page. + +Congratulations, you have installed Jupyter Notebook! To run the notebook, run the following command at the Terminal (Mac/Linux) or Command Prompt (Windows): +
+## 5-5 Loading Packages + +In this kernel we are using the following packages: + + + + Now we import all of them + +
+# 6- Exploratory Data Analysis(EDA) + In this section, you'll learn how to use graphical and numerical techniques to begin uncovering the structure of your data. + +* Which variables suggest interesting relationships? +* Which observations are unusual? + +By the end of the section, you'll be able to answer these questions and more, while generating graphics that are both insightful and beautiful. then We will review analytical and statistical operations: + +* 5-1 Data Collection +* 5-2 Visualization +* 5-3 Data Preprocessing +* 5-4 Data Cleaning + +
+## 6-1 Data Collection +**Data collection** is the process of gathering and measuring data, information or any variables of interest in a standardized and established manner that enables the collector to answer or test hypothesis and evaluate outcomes of the particular collection.[techopedia] + +**Iris dataset** consists of 3 different types of irises’ (Setosa, Versicolour, and Virginica) petal and sepal length, stored in a 150x4 numpy.ndarray + +The rows being the samples and the columns being: Sepal Length, Sepal Width, Petal Length and Petal Width.[6] + +
+## 6-2 Visualization +**Data visualization** is the presentation of data in a pictorial or graphical format. It enables decision makers to see analytics presented visually, so they can grasp difficult concepts or identify new patterns. + +With interactive visualization, you can take the concept a step further by using technology to drill down into charts and graphs for more detail, interactively changing what data you see and how it’s processed.[SAS] + + In this section I show you **11 plots** with **matplotlib** and **seaborn** that is listed in the blew picture: + + you can follow me on: > ###### [ GitHub](https://github.com/mjbahmani) > ###### [LinkedIn](https://www.linkedin.com/in/bahmani/) > ###### [Kaggle](https://www.kaggle.com/mjbahmani/) -## Notebook Content -* 1- Introduction -* 2- Machine learning workflow -* 3- Problem Definition -* 3-1 Problem feature -* 3-2 Aim -* 3-3 Variables -* 4- Inputs & Outputs -* 4-1 Inputs -* 4-2 Outputs -* 5- Installation -* 5-1 jupyter notebook -* 5-2 kaggle kernel -* 5-3 Colab notebook -* 5-4 install python & packages -* 5-5 Loading Packages -* 6- Exploratory data analysis -* 6-1 Data Collection -* 6-2 Visualization -* 6-2-1 Scatter plot -* 6-2-2 Box -* 6-2-3 Histogram -* 6-2-4 Multivariate Plots -* 6-2-5 Violinplots -* 6-2-6 Pair plot -* 6-2-7 Kde plot -* 6-2-8 Joint plot -* 6-2-9 Andrews curves -* 6-2-10 Heatmap -* 6-2-11 Radviz -* 6-3 Data Preprocessing -* 6-4 Data Cleaning -* 7- Model Deployment -* 7-1 KNN -* 7-2 Radius Neighbors Classifier -* 7-3 Logistic Regression -* 7-4 Passive Aggressive Classifier -* 7-5 Naive Bayes -* 7-6 MultinomialNB -* 7-7 BernoulliNB -* 7-8 SVM -* 7-9 Nu-Support Vector Classification -* 7-10Linear Support Vector Classification -* 7-11 Decision Tree -* 7-12 ExtraTreeClassifier -* 7-13 Neural network -* 7-14 RandomForest -* 7-15 Bagging classifier -* 7-16 AdaBoost classifier -* 7-17 Gradient Boosting Classifier -* 7-18 Linear Discriminant Analysis -* 7-19 Quadratic Discriminant Analysis -* 7-20 Kmeans -* 8- Conclusion -* 9- References - -# Introduction -This is a comprehensive ML techniques for IRIS data set, that I have spent for more than two months to complete it. - -it is clear that everyone in this community is familiar with IRIS dataset but if you need to review your information about the dataset please visit this link. - -I have tried to help beginners in Kaggle how to face machine learning problems. and I think it is a great opportunity for who want to learn machine learning workflow with python completely. I have covered most of the methods that are implemented for iris until 2018, you can start to learn and review your knowledge about ML with a simple dataset and try to learn and memorize the workflow for your journey in Data science world. - -I am open to getting your feedback for improving this kernel + ## Please Fork the Repository to continue... diff --git "a/The Data Scientist\342\200\231s Toolbox Tutorial/The Data Scientist\342\200\231s Toolbox Tutorial.ipynb" "b/The Data Scientist\342\200\231s Toolbox Tutorial/The Data Scientist\342\200\231s Toolbox Tutorial.ipynb" new file mode 100644 index 0000000..75f8897 --- /dev/null +++ "b/The Data Scientist\342\200\231s Toolbox Tutorial/The Data Scientist\342\200\231s Toolbox Tutorial.ipynb" @@ -0,0 +1,5654 @@ +{ + "cells": [ + { + "metadata": { + "_uuid": "866e7eb37a03e1a48e71ba4e4c8f4baca43472e8" + }, + "cell_type": "markdown", + "source": " #
The Data Scientist’s Toolbox Tutorial
\n ##
**quite practical and far from any theoretical concepts**
\n \n
last update: 10/30/2018
" + }, + { + "metadata": { + "_uuid": "e02d495da0fb0ad24e0341e91848f4c4cfc35bdb" + }, + "cell_type": "markdown", + "source": "\n\n---------------------------------------------------------------------\nFork, Run and Follow this kernel on GitHub:\n> ###### [ GitHub](https://github.com/mjbahmani/10-steps-to-become-a-data-scientist)\n\n\n-------------------------------------------------------------------------------------------------------------\n **I hope you find this kernel helpful and some UPVOTES would be very much appreciated**\n \n -----------\n" + }, + { + "metadata": { + "_uuid": "85b27cf82d3023fd69c338df2be7afb2d7afaf32" + }, + "cell_type": "markdown", + "source": "
\n**Notebook Content**\n1. [Python](#1)\n 1. [Basics](#2)\n 1. [Functions](#3)\n 1. [Types and Sequences](#4)\n 1. [More on Strings](#5)\n 1. [Reading and Writing CSV files](#6)\n 1. [Dates and Times](#7)\n 1. [Objects and map()](#8)\n 1. [Lambda and List Comprehensions](#9)\n 1. [OOP](#10)\n1. [Numpy](#12)\n 1. [Creating Arrays](#13)\n 1. [Combining Arrays](#14)\n 1. [Operations](#15)\n 1. [Math Functions](#16)\n 1. [Indexing / Slicing](#17)\n 1. [Copying Data](#18)\n 1. [Iterating Over Arrays](#19)\n 1. [The Series Data Structure](#20)\n 1. [Querying a Series](#21)\n1. [Pandas](#22)\n 1. [The DataFrame Data Structure](#22)\n 1. [Dataframe Indexing and Loading](#23)\n 1. [Missing values](#24)\n 1. [Merging Dataframes](#25)\n 1. [Making Code Pandorable](#26)\n 1. [Group by](#27)\n 1. [Scales](#28)\n 1. [Pivot Tables](#29)\n 1. [Date Functionality](#30)\n 1. [Distributions in Pandas](#31)\n 1. [Hypothesis Testing](#32)\n1. [Matplotlib](#33)\n 1. [Scatterplots](#34)\n 1. [Line Plots](#35)\n 1. [Bar Charts](#36)\n 1. [Histograms](#37)\n 1. [Box and Whisker Plots](#38)\n 1. [Heatmaps](#39)\n 1. [Animations](#40)\n 1. [Interactivity](#41)\n 1. [DataFrame.plot](#42)\n1. [seaborn](#43)\n 1. [5-1 Seaborn Vs Matplotlib](#43)\n 1. [5-2 10 Useful Python Data Visualization Libraries](#43)\n1. [SKlearn](#44)\n 1. [Introduction](#45)\n 1. [Algorithms](#46)\n 1. [Framework](#47)\n 1. [Applications](#48)\n 1. [Data](#49)\n 1. [Supervised Learning: Classification](#50)\n 1. [Separate training and testing sets](#51)\n 1. [linear, binary classifier](#52)\n 1. [Prediction](#53)\n 1. [Back to the original three-class problem](#54)\n 1. [Evaluating the classifier](#55)\n 1. [Using the four flower attributes](#56)\n 1. [Unsupervised Learning: Clustering](#57)\n 1. [Supervised Learning: Regression](#58)\n1. [Plotly](#59)\n1. [Conclusion](#60)\n1. [References](#61)" + }, + { + "metadata": { + "_uuid": "6b741a5af31141057f72904b11954acfb57f5772" + }, + "cell_type": "markdown", + "source": "## 1-Introduction" + }, + { + "metadata": { + "_uuid": "1e7678d8e7831683d0aefffdab152562c18c3188" + }, + "cell_type": "markdown", + "source": "In this kernel, we have a comprehensive tutorials for Five packages in python after that you can read my other kernels about machine learning" + }, + { + "metadata": { + "_uuid": "918161eb40e34a545c75850d6a7dee64d9bf5cd1" + }, + "cell_type": "markdown", + "source": " " + }, + { + "metadata": { + "_uuid": "953258de456acd2780aba3d18c1fc817ae689ad7" + }, + "cell_type": "markdown", + "source": "## 1-1 Import" + }, + { + "metadata": { + "_uuid": "4f8b6d44c99e1141bd001556f554c7efc6b77acf", + "trusted": true + }, + "cell_type": "code", + "source": "from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot\nfrom sklearn.metrics import classification_report\nfrom sklearn.metrics import confusion_matrix\nfrom sklearn.metrics import accuracy_score\nimport matplotlib.pyplot as plt\nimport plotly.graph_objs as go\nimport plotly.plotly as py\nimport scipy.stats as stats\nimport seaborn as sns\nimport pandas as pd\nimport numpy as np\nimport matplotlib\nimport warnings\nimport sklearn\nimport scipy\nimport json\nimport sys\nimport csv\nimport os\n\n \n\n\nprint('matplotlib: {}'.format(matplotlib.__version__))\nprint('sklearn: {}'.format(sklearn.__version__))\nprint('scipy: {}'.format(scipy.__version__))\nprint('seaborn: {}'.format(sns.__version__))\nprint('pandas: {}'.format(pd.__version__))\nprint('numpy: {}'.format(np.__version__))\nprint('Python: {}'.format(sys.version))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "51a98c51b1bf27253f6521a2951a5d61625642bf" + }, + "cell_type": "markdown", + "source": "## 1-2 Setup" + }, + { + "metadata": { + "trusted": true, + "_uuid": "cbf46ff8ec8faf08c4aa9c84eb796ffcf0a8c4c8" + }, + "cell_type": "code", + "source": "warnings.filterwarnings('ignore')\nsns.set(color_codes=True)\nplt.style.available\n%matplotlib inline\n%precision 2", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5efeff35ad9951e40551d0763eaf26f08bb4119e" + }, + "cell_type": "markdown", + "source": "
\n# 1-Python\n\n**Python** is a modern, robust, high level programming language. It is very easy to pick up even if you are completely new to programming.\n\nIt is used for:\n\n1. web development (server-side),\n1. software development,\n1. mathematics,\n1. system scripting.\n\n## Python Syntax compared to other programming languages\n\n1. Python was designed to for readability, and has some similarities to the English language with influence from mathematics.\n1. Python uses new lines to complete a command, as opposed to other programming languages which often use semicolons or parentheses.\n1. Python relies on indentation, using whitespace, to define scope; such as the scope of loops, functions and classes. Other programming languages often use curly-brackets for this purpose.\n" + }, + { + "metadata": { + "_uuid": "a276b26993c902362e522d8a29a67ef670db103d" + }, + "cell_type": "markdown", + "source": "
\n# 1-2 Python: Basics\n" + }, + { + "metadata": { + "_uuid": "732b4733f620d36d4ac78b27261933559f7086de", + "trusted": true + }, + "cell_type": "code", + "source": "import this", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "46d2f5efcea352bda6ee7f8721be0001548440f1" + }, + "cell_type": "markdown", + "source": "### 1-2-1 Variables\nA name that is used to denote something or a value is called a variable. In python, variables can be declared and values can be assigned to it as follows," + }, + { + "metadata": { + "_uuid": "52c065c046f96806741321dcc3e40dffec8f75fe", + "trusted": true + }, + "cell_type": "code", + "source": "x = 2\ny = 5\nxy = 'Hey'", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "762c34fcdeed69fc79fb84d7bb86c5baf8f9152e" + }, + "cell_type": "markdown", + "source": "### 1-2-2 Operators" + }, + { + "metadata": { + "_uuid": "9dcd3e4436aa8050f116b6f7157cc986e762c794" + }, + "cell_type": "markdown", + "source": "| Symbol | Task Performed |\n|----|---|\n| + | Addition |\n| - | Subtraction |\n| / | division |\n| % | mod |\n| * | multiplication |\n| // | floor division |\n| ** | to the power of |\n\n### Relational Operators\n| Symbol | Task Performed |\n|----|---|\n| == | True, if it is equal |\n| != | True, if not equal to |\n| < | less than |\n| > | greater than |\n| <= | less than or equal to |\n| >= | greater than or equal to |\n### Bitwise Operators\n| Symbol | Task Performed |\n|----|---|\n| & | Logical And |\n| l | Logical OR |\n| ^ | XOR |\n| ~ | Negate |\n| >> | Right shift |\n| << | Left shift |" + }, + { + "metadata": { + "_uuid": "281c637be82f68519f371353afa603fe842bd5fa" + }, + "cell_type": "markdown", + "source": "
\n# 1-3 Python : Functions" + }, + { + "metadata": { + "_uuid": "b513caa4821bc20e6b833577ba4d894bce011e32" + }, + "cell_type": "markdown", + "source": "
\n`add_numbers` is a function that takes two numbers and adds them together." + }, + { + "metadata": { + "_uuid": "700ebb9c4d8c7c57948194e3d848b4b480e06f9a", + "trusted": true + }, + "cell_type": "code", + "source": "def add_numbers(x, y):\n return x + y\n\nadd_numbers(1, 2)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0fb081fa2f33e01e616a82aad306ab6490f48a03" + }, + "cell_type": "markdown", + "source": "
\n`add_numbers` updated to take an optional 3rd parameter. Using `print` allows printing of multiple expressions within a single cell." + }, + { + "metadata": { + "_uuid": "b7dd7bc4f7f52acac95ac94586c74f4b59a22acb", + "trusted": true + }, + "cell_type": "code", + "source": "def add_numbers(x,y,z=None):\n if (z==None):\n return x+y\n else:\n return x+y+z\n\nprint(add_numbers(1, 2))\nprint(add_numbers(1, 2, 3))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "51d91959b8088baa0884eaf191edc9520e012625" + }, + "cell_type": "markdown", + "source": "
\n`add_numbers` updated to take an optional flag parameter." + }, + { + "metadata": { + "_uuid": "8f109910dd7dacbac0212d03b3a0d55e8d92b4bf", + "trusted": true + }, + "cell_type": "code", + "source": "def add_numbers(x, y, z=None, flag=False):\n if (flag):\n print('Flag is true!')\n if (z==None):\n return x + y\n else:\n return x + y + z\n \nprint(add_numbers(1, 2, flag=True))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "052a1ebfb11cba627a4ed7ae13360e15cfd2f5bc" + }, + "cell_type": "markdown", + "source": "
\nAssign function `add_numbers` to variable `a`." + }, + { + "metadata": { + "_uuid": "774773afde862fefb51b22d9e676b44744410c6f", + "trusted": true + }, + "cell_type": "code", + "source": "def add_numbers(x,y):\n return x+y\n\na = add_numbers\na(1,2)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "54244074f574884d9c241727f559466cdc646793" + }, + "cell_type": "markdown", + "source": "
\n# 1-4 Python : Types and Sequences" + }, + { + "metadata": { + "_uuid": "fe3bfa4b99b20b534a24cd4b04953de4c81a2032" + }, + "cell_type": "markdown", + "source": "
\nUse `type` to return the object's type." + }, + { + "metadata": { + "_uuid": "ea5486e825425487854b66e135142787a8696547", + "trusted": true + }, + "cell_type": "code", + "source": "type('This is a string')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6b1b6307a4b2363c5f13c86a94a6c6ed83cf05d1", + "trusted": true + }, + "cell_type": "code", + "source": "type(None)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1bfe51959705a633d7ae10b8e807ba752809f8a2", + "trusted": true + }, + "cell_type": "code", + "source": "type(1)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9c6ea01bf5fac295d6ca5dea7a867fd769d9854f", + "trusted": true + }, + "cell_type": "code", + "source": "type(1.0)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "08e7ecceb2d59d5964d039b1307736a106abef30", + "trusted": true + }, + "cell_type": "code", + "source": "type(add_numbers)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "843a9232374917b366c4afadc94fd123e13bc2cf" + }, + "cell_type": "markdown", + "source": "
\nTuples are an immutable data structure (cannot be altered)." + }, + { + "metadata": { + "_uuid": "02c0f949470c05c302705b8cbde9dbc4c5e9ec58", + "trusted": true + }, + "cell_type": "code", + "source": "x = (1, 'a', 2, 'b')\ntype(x)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "32e3d57ead5741f615aaf0ec276583163a6fc1a7" + }, + "cell_type": "markdown", + "source": "
\nLists are a mutable data structure." + }, + { + "metadata": { + "_uuid": "e559da4fdd4adcf955e36ee33209728c7f04c873", + "trusted": true + }, + "cell_type": "code", + "source": "x = [1, 'a', 2, 'b']\ntype(x)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1c25590aa57c37e383007ea43e9aebd08dbb7ef8" + }, + "cell_type": "markdown", + "source": "
\nUse `append` to append an object to a list." + }, + { + "metadata": { + "_uuid": "46b3996bb68391469648cfaf732d9f891aad8e76", + "trusted": true + }, + "cell_type": "code", + "source": "x.append(3.3)\nprint(x)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a0a9f9ad271ff5cab43f7d95c00f917dfa42cda3" + }, + "cell_type": "markdown", + "source": "
\nThis is an example of how to loop through each item in the list." + }, + { + "metadata": { + "_uuid": "fdbcbc6f491284146fb7ec2288a48dca70d028f0", + "trusted": true + }, + "cell_type": "code", + "source": "for item in x:\n print(item)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a863bf6c33d37823812c0d373bc685f8018328c3" + }, + "cell_type": "markdown", + "source": "
\nOr using the indexing operator:" + }, + { + "metadata": { + "_uuid": "34ebdc7a81ca55c6d96576e8e1032bb2e2a8c38d", + "trusted": true + }, + "cell_type": "code", + "source": "i=0\nwhile( i != len(x) ):\n print(x[i])\n i = i + 1", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7accd0a14f6f94b5f8f87c28e772fd7e70f5aa89" + }, + "cell_type": "markdown", + "source": "
\nUse `+` to concatenate lists." + }, + { + "metadata": { + "_uuid": "2e2d33c027d2d2e66444ea8c5bc16ac182604699", + "trusted": true + }, + "cell_type": "code", + "source": "[1,2] + [3,4]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8dac836d3bfd72d4ba18e0ad35e918fd5578e0c4" + }, + "cell_type": "markdown", + "source": "
\nUse `*` to repeat lists." + }, + { + "metadata": { + "_uuid": "33fbab44facf2994b9a1f4f842b5b68db790c60c", + "trusted": true + }, + "cell_type": "code", + "source": "[1]*3", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1bf6aa261fae9ee56cc8e2ec7ba789818619bfc7" + }, + "cell_type": "markdown", + "source": "
\nUse the `in` operator to check if something is inside a list." + }, + { + "metadata": { + "_uuid": "9dcaf39b71a922a3a61f6565cb9025fe89291cc8", + "trusted": true + }, + "cell_type": "code", + "source": "1 in [1, 2, 3]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2fdc7e3a4da86bf2fc3daef510d521ff4f9e780a" + }, + "cell_type": "markdown", + "source": "
\nNow let's look at strings. Use bracket notation to slice a string." + }, + { + "metadata": { + "_uuid": "31a527ad3d4ac52203a81f2aa05d6ccbcbefd7d0", + "trusted": true + }, + "cell_type": "code", + "source": "x = 'This is a string'\nprint(x[0]) #first character\nprint(x[0:1]) #first character, but we have explicitly set the end character\nprint(x[0:2]) #first two characters\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a2da025858712f120a1708fa8de0da26c6b8b1de" + }, + "cell_type": "markdown", + "source": "
\nThis will return the last element of the string." + }, + { + "metadata": { + "_uuid": "24cb16eaabaa7e13b0a4a69dfc6cdf71ffb0238b", + "trusted": true + }, + "cell_type": "code", + "source": "x[-1]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "892cb74f3b1ba32053e1b854681e9520d9ae7578" + }, + "cell_type": "markdown", + "source": "
\nThis will return the slice starting from the 4th element from the end and stopping before the 2nd element from the end." + }, + { + "metadata": { + "_uuid": "b947154182b9eb7aa08f5986eb768020e9eefdcb", + "trusted": true + }, + "cell_type": "code", + "source": "x[-4:-2]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7d88463b1e8c9555030af32e1e99cdd522c40610" + }, + "cell_type": "markdown", + "source": "
\nThis is a slice from the beginning of the string and stopping before the 3rd element." + }, + { + "metadata": { + "_uuid": "961b4829e231286702b78c13f6ce68c780df7c56", + "trusted": true + }, + "cell_type": "code", + "source": "x[:3]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d365c72e42116bbd6c7ae960d77af0d89d35f201" + }, + "cell_type": "markdown", + "source": "
\nAnd this is a slice starting from the 3rd element of the string and going all the way to the end." + }, + { + "metadata": { + "_uuid": "82c83cb0bfe09b269037a97ef0b00cd66254ab89", + "trusted": true + }, + "cell_type": "code", + "source": "x[3:]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b3914291465c80995a05d30f2842f38b1e2d7255", + "trusted": true + }, + "cell_type": "code", + "source": "firstname = 'MJ'\nlastname = 'Bahmani'\n\nprint(firstname + ' ' + lastname)\nprint(firstname*3)\nprint('mj' in firstname)\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5e92142f11b79daaa369a0a031bab1979602457e" + }, + "cell_type": "markdown", + "source": "
\n`split` returns a list of all the words in a string, or a list split on a specific character." + }, + { + "metadata": { + "_uuid": "63a7aea0881d73a1c2caab2b2bc0bf09d46e0402", + "trusted": true + }, + "cell_type": "code", + "source": "firstname = 'Mr Dr Mj Bahmani'.split(' ')[0] # [0] selects the first element of the list\nlastname = 'Mr Dr Mj Bahmani'.split(' ')[-1] # [-1] selects the last element of the list\nprint(firstname)\nprint(lastname)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a46edc198922ad4957bcdc3d990f43aaae35a464", + "trusted": true + }, + "cell_type": "code", + "source": "'MJ' + str(2)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "50a1372d759bcc6e0b4d8852588ba9fe1c3a1200" + }, + "cell_type": "markdown", + "source": "
\nDictionaries associate keys with values." + }, + { + "metadata": { + "_uuid": "b6dd088e810aca788fc74f76d23777b2115e12d0", + "trusted": true + }, + "cell_type": "code", + "source": "x = {'MJ Bahmani': 'Mohamadjavad.bahmani@gmail.com', 'irmatlab': 'irmatlab.ir@gmail.com'}\nx['MJ Bahmani'] # Retrieve a value by using the indexing operator\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6ec5106de063d06587a532835173cb3e15c4c074", + "trusted": true + }, + "cell_type": "code", + "source": "x['MJ Bahmani'] = None\nx['MJ Bahmani']", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "909deaebc50f94808fbdbe831ffbe1137066a2fe" + }, + "cell_type": "markdown", + "source": "
\nIterate over all of the keys:" + }, + { + "metadata": { + "_uuid": "993e0c88238de00475ddd22a2f4594ce14aa936d", + "scrolled": true, + "trusted": true + }, + "cell_type": "code", + "source": "for name in x:\n print(x[name])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9248f6bfe90a9c867ca248b08ad81c8626eaf689" + }, + "cell_type": "markdown", + "source": "
\nIterate over all of the values:" + }, + { + "metadata": { + "_uuid": "9f995195b06da4b3e64cabbe950d19570fbb910c", + "trusted": true + }, + "cell_type": "code", + "source": "for email in x.values():\n print(email)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "147f360dd1e8f878ae393c46648ec5f630d8d80c" + }, + "cell_type": "markdown", + "source": "
\nIterate over all of the items in the list:" + }, + { + "metadata": { + "_uuid": "ab973ccad15b9f3af27e6a2cbd2425ede962be86", + "trusted": true + }, + "cell_type": "code", + "source": "for name, email in x.items():\n print(name)\n print(email)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3a909b20788d5df862adec16c2d6d15e021a74dc" + }, + "cell_type": "markdown", + "source": "
\nYou can unpack a sequence into different variables:" + }, + { + "metadata": { + "_uuid": "296600127a5b164c23ad4aad0e622883f6ce56b1", + "trusted": true + }, + "cell_type": "code", + "source": "x = ('MJ', 'Bahmani', 'Mohamadjavad.bahmani@gmail.com')\nfname, lname, email = x", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b1d783512fd2e8d76b8d1c147ed51f8584d203b7", + "trusted": true + }, + "cell_type": "code", + "source": "fname", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a69c79b2a267725470ff843205f11c8a6e2a820e", + "trusted": true + }, + "cell_type": "code", + "source": "lname", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6b069e526dd64ce6efba8cb51854ef2636e308b9" + }, + "cell_type": "markdown", + "source": "
\n# 1-5 Python: More on Strings" + }, + { + "metadata": { + "_uuid": "2aa934d05afb73cd7cdcb9ff223b2014798f3b18", + "trusted": true + }, + "cell_type": "code", + "source": "print('MJ' + str(2))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2a9b5f81e7ae92846e4bce5c8c34ff23490b83ef" + }, + "cell_type": "markdown", + "source": "
\nPython has a built in method for convenient string formatting." + }, + { + "metadata": { + "_uuid": "a8fa5e6a70f8a2e642f0799b514d96f5e8b4cf67", + "trusted": true + }, + "cell_type": "code", + "source": "sales_record = {\n'price': 3.24,\n'num_items': 4,\n'person': 'MJ'}\n\nsales_statement = '{} bought {} item(s) at a price of {} each for a total of {}'\n\nprint(sales_statement.format(sales_record['person'],\n sales_record['num_items'],\n sales_record['price'],\n sales_record['num_items']*sales_record['price']))\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7fee00e11e78abee9a0397711ca813c60b1b8c57" + }, + "cell_type": "markdown", + "source": "
\n# 1-6 Python:Reading and Writing CSV files" + }, + { + "metadata": { + "_uuid": "3f79954fc298a34c3c231d35161dfb3bf743576d" + }, + "cell_type": "markdown", + "source": "
\nLet's import our datafile train.csv \n" + }, + { + "metadata": { + "_uuid": "ab5ab332ba1dc0fb1668d18df1b1771232cc4e35", + "scrolled": true, + "trusted": true + }, + "cell_type": "code", + "source": "\n\nwith open('../input/train.csv') as csvfile:\n train = list(csv.DictReader(csvfile))\n \ntrain[:1] # The first three dictionaries in our list.", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ac3ffa35fd8725c3b1d81ab92470f1e5de19061b" + }, + "cell_type": "markdown", + "source": "
\n`csv.Dictreader` has read in each row of our csv file as a dictionary. `len` shows that our list is comprised of 234 dictionaries." + }, + { + "metadata": { + "_uuid": "3f51c4e51000c69c3b3113f4cc8ed1e5e5fa005f", + "trusted": true + }, + "cell_type": "code", + "source": "len(train)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "59457b14190fe59e900f644450b66f542b2320c4" + }, + "cell_type": "markdown", + "source": "
\n`keys` gives us the column names of our csv." + }, + { + "metadata": { + "_uuid": "de6d753e74e0345bcc292cb6cfded49241b696f8", + "trusted": true + }, + "cell_type": "code", + "source": "train[0].keys()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "391e4c865b352e70ae7bc5cbdef9559ccf396cb8" + }, + "cell_type": "markdown", + "source": "
\nHow to do some math action on the data set" + }, + { + "metadata": { + "_uuid": "c654cdc458ff6f8d960caa80268f61e9f213e9e8", + "trusted": true + }, + "cell_type": "code", + "source": "sum(float(d['Fare']) for d in train) / len(train)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a12ec3e5c23e0660c9cfce427333afabe5a4384c" + }, + "cell_type": "markdown", + "source": "
\nUse `set` to return the unique values for the type of Sex in our dataset have." + }, + { + "metadata": { + "_uuid": "3541bdc6bd01a88c58e408bcc99411136a953538", + "trusted": true + }, + "cell_type": "code", + "source": "Sex = set(d['Sex'] for d in train)\nSex", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "51bd65ce547fceba323660a1370a407d004e9abe" + }, + "cell_type": "markdown", + "source": "
\n# 1-7 Python: Dates and Times" + }, + { + "metadata": { + "_uuid": "77aea246af2c06fe57b72bf45e424a4a6ae2e8c5", + "trusted": true + }, + "cell_type": "code", + "source": "import datetime as dt\nimport time as tm", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f14fbbf5385512cc6d6631677a62ff620d51f9ae" + }, + "cell_type": "markdown", + "source": "
\n`time` returns the current time in seconds since the Epoch. (January 1st, 1970)" + }, + { + "metadata": { + "_uuid": "73ffa7423c31ed5efb8bab44ead79a4162711920", + "trusted": true + }, + "cell_type": "code", + "source": "tm.time()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "83a2aceba5919534adf74e59c16baa61d6e24bda" + }, + "cell_type": "markdown", + "source": "
\nConvert the timestamp to datetime." + }, + { + "metadata": { + "_uuid": "b0726eaf4ebb492d3da2396520a7328bbb00263c", + "trusted": true + }, + "cell_type": "code", + "source": "dtnow = dt.datetime.fromtimestamp(tm.time())\ndtnow", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "df2a8c0e8237c6c88ea5d8f446604d6c60435b72" + }, + "cell_type": "markdown", + "source": "
\nHandy datetime attributes:" + }, + { + "metadata": { + "_uuid": "3ca2dd821f01874e23fc1eccf13b6584ba21e795", + "trusted": true + }, + "cell_type": "code", + "source": "dtnow.year, dtnow.month, dtnow.day, dtnow.hour, dtnow.minute, dtnow.second # get year, month, day, etc.from a datetime", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "85160de1a52833048050277d7df6713172b367c9" + }, + "cell_type": "markdown", + "source": "
\n`timedelta` is a duration expressing the difference between two dates." + }, + { + "metadata": { + "_uuid": "c466ccf8a9f33641fec51525f0e8a03dbec8fd62", + "trusted": true + }, + "cell_type": "code", + "source": "delta = dt.timedelta(days = 100) # create a timedelta of 100 days\ndelta", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c09e3bd1c17b5a67b8e340956fdb27b2e6b32b2d" + }, + "cell_type": "markdown", + "source": "
\n`date.today` returns the current local date." + }, + { + "metadata": { + "_uuid": "539408df43c0aa1b449551e14b84b49110b04beb", + "trusted": true + }, + "cell_type": "code", + "source": "today = dt.date.today()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "4022bf4458c6495ab1c4ddfcf82c155742641823", + "trusted": true + }, + "cell_type": "code", + "source": "today - delta # the date 100 days ago", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "38399dc2975b4f44e083ae319f37217286d9533a", + "trusted": true + }, + "cell_type": "code", + "source": "today > today-delta # compare dates", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a8bcac1b08550c3f143e21cf7ca9049449304a5c" + }, + "cell_type": "markdown", + "source": "
\n# 1-8 Python: Objects and map()" + }, + { + "metadata": { + "_uuid": "28be3905d37e6b7d2fb09a5f1a0e0c9df7e48559" + }, + "cell_type": "markdown", + "source": "
\nAn example of a class in python:" + }, + { + "metadata": { + "_uuid": "2dc3faf4892b932cb1015902e83a13bd47125b20", + "trusted": true + }, + "cell_type": "code", + "source": "class Person:\n department = 'School of Information' #a class variable\n\n def set_name(self, new_name): #a method\n self.name = new_name\n def set_location(self, new_location):\n self.location = new_location", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1da9aaf6d97f50fff89e9d08b658adb3c691a262", + "trusted": true + }, + "cell_type": "code", + "source": "person = Person()\nperson.set_name('MJ Bahmani')\nperson.set_location('MI, Berlin, Germany')\nprint('{} live in {} and works in the department {}'.format(person.name, person.location, person.department))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8422c57273a71b4a74b6b4a9eb5535444356823d" + }, + "cell_type": "markdown", + "source": "
\nHere's an example of mapping the `min` function between two lists." + }, + { + "metadata": { + "_uuid": "3052442e823ee0a450e404607e44cb3c321b508c", + "trusted": true + }, + "cell_type": "code", + "source": "store1 = [10.00, 11.00, 12.34, 2.34]\nstore2 = [9.00, 11.10, 12.34, 2.01]\ncheapest = map(min, store1, store2)\ncheapest", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "787b960d3c824c764a0eb7c2dab69d073eacfa9d" + }, + "cell_type": "markdown", + "source": "
\nNow let's iterate through the map object to see the values." + }, + { + "metadata": { + "_uuid": "a9d6751e7c95241dbd10a44f0179a40df8ee3a7a", + "scrolled": true, + "trusted": true + }, + "cell_type": "code", + "source": "for item in cheapest:\n print(item)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e9c6c70988cd1459c7078f31fb9a43a275965d46" + }, + "cell_type": "markdown", + "source": "
\n# 1-9-Python : Lambda and List Comprehensions" + }, + { + "metadata": { + "_uuid": "b6257386671f84333b4cfae3a979a2c1f8100e76" + }, + "cell_type": "markdown", + "source": "
\nHere's an example of lambda that takes in three parameters and adds the first two." + }, + { + "metadata": { + "_uuid": "a306ae5687e20ae64431306035359f33aa465382", + "trusted": true + }, + "cell_type": "code", + "source": "my_function = lambda a, b, c : a + b", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6bf98de2fab3b4239e41a093386d5fb9acad6367", + "trusted": true + }, + "cell_type": "code", + "source": "my_function(1, 2, 3)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5db80d702a02a1873aa09fa3acd26d922d74ff46" + }, + "cell_type": "markdown", + "source": "
\nLet's iterate from 0 to 999 and return the even numbers." + }, + { + "metadata": { + "_uuid": "90e7eb5e7689d6ce448b8c0c801c2caef70e6d44", + "trusted": true + }, + "cell_type": "code", + "source": "my_list = []\nfor number in range(0, 1000):\n if number % 2 == 0:\n my_list.append(number)\nmy_list", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1bfe68a8553e5718a04b14a321262e6e88407b2c" + }, + "cell_type": "markdown", + "source": "
\nNow the same thing but with list comprehension." + }, + { + "metadata": { + "_uuid": "ee501b9820296d1452845b8da201dbd69d4e0637", + "trusted": true + }, + "cell_type": "code", + "source": "my_list = [number for number in range(0,1000) if number % 2 == 0]\nmy_list", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e99f98ecb3393b8846fca621cdbad5dcaf1c60d1" + }, + "cell_type": "markdown", + "source": "
\n# 1-10 OOP\n\n\n" + }, + { + "metadata": { + "_uuid": "1c3c77a74a2f45e0cfbec9e2a43ac089aaa09558", + "trusted": true + }, + "cell_type": "code", + "source": "class FirstClass:\n test = 'test'\n def __init__(self,name,symbol):\n self.name = name\n self.symbol = symbol", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2dd1233bc33a4e9ca7bf528968267868f4d1bbe1", + "trusted": true + }, + "cell_type": "code", + "source": "eg3 = FirstClass('Three',3)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8bb856d47cf1407cccd295fe241825c2999e0756", + "trusted": true + }, + "cell_type": "code", + "source": "print (eg3.test, eg3.name)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3fa8ea01163ceea3f5cf46fe2f5eb843fa8a9cc7", + "trusted": true + }, + "cell_type": "code", + "source": "class FirstClass:\n def __init__(self,name,symbol):\n self.name = name\n self.symbol = symbol\n def square(self):\n return self.symbol * self.symbol\n def cube(self):\n return self.symbol * self.symbol * self.symbol\n def multiply(self, x):\n return self.symbol * x", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6086b2eaf54cc57b3447b7c0b47e4b67f208cba3", + "trusted": true + }, + "cell_type": "code", + "source": "eg4 = FirstClass('Five',5)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7029000f20ae1efcd694754d0db4b7e546cdafae", + "trusted": true + }, + "cell_type": "code", + "source": "print (eg4.square())\nprint (eg4.cube())", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e60cf1e71ae99cb38e6b555ae43cb6948bdfc329", + "trusted": true + }, + "cell_type": "code", + "source": "eg4.multiply(2)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "52ccbcd46b12d802454097d1a4c6ee52c551c4a3", + "trusted": true + }, + "cell_type": "code", + "source": "FirstClass.multiply(eg4,2)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c68d1914adc7080d3ee9b5592420ff95ea2870e7" + }, + "cell_type": "markdown", + "source": "### 1-10-1 Inheritance\n\nThere might be cases where a new class would have all the previous characteristics of an already defined class. So the new class can \"inherit\" the previous class and add it's own methods to it. This is called as inheritance.\n\nConsider class SoftwareEngineer which has a method salary." + }, + { + "metadata": { + "_uuid": "ea270e5c33b3e6d6fb3c7b66a0081e8d80825a78", + "trusted": true + }, + "cell_type": "code", + "source": "class SoftwareEngineer:\n def __init__(self,name,age):\n self.name = name\n self.age = age\n def salary(self, value):\n self.money = value\n print (self.name,\"earns\",self.money)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d63b58d87a62e2e692f25644b1bfd1b0c3c2ccff", + "trusted": true + }, + "cell_type": "code", + "source": "a = SoftwareEngineer('Kartik',26)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "14e20781ff108a4cc13ac68de99478293413b3d1", + "trusted": true + }, + "cell_type": "code", + "source": "a.salary(40000)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "89cf62c093a3c6369b77536f4700f70ddf84eebf", + "trusted": true + }, + "cell_type": "code", + "source": "dir(SoftwareEngineer)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "edcf9e2d90a66ca3370d889ffd2109827229825f", + "trusted": true + }, + "cell_type": "code", + "source": "class Artist:\n def __init__(self,name,age):\n self.name = name\n self.age = age\n def money(self,value):\n self.money = value\n print (self.name,\"earns\",self.money)\n def artform(self, job):\n self.job = job\n print (self.name,\"is a\", self.job)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "92e459938effe069d173a19f94819e68b34d4eca", + "trusted": true + }, + "cell_type": "code", + "source": "b = Artist('Nitin',20)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a708a468bec5bc8314bc40ad7e830568805885bc", + "trusted": true + }, + "cell_type": "code", + "source": "b.money(50000)\nb.artform('Musician')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "efa5a80085b1a7a6e98a88c5fd86da6c880421cf", + "trusted": true + }, + "cell_type": "code", + "source": "dir(Artist)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "843c1001213bd2cfd201e99b682a5c5bfe78c0c6" + }, + "cell_type": "markdown", + "source": "## 1-11 Python JSON\n" + }, + { + "metadata": { + "_uuid": "153a10fa7584e50553490e6f765284192776ee5c", + "trusted": true + }, + "cell_type": "code", + "source": "\n\n# some JSON:\nx = '{ \"name\":\"John\", \"age\":30, \"city\":\"New York\"}'\n\n# parse x:\ny = json.loads(x)\n\n# the result is a Python dictionary:\nprint(y[\"age\"])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "85876511f2a41d866fe4bfa5208372f51536e6c5" + }, + "cell_type": "markdown", + "source": "## Convert from Python to JSON\n" + }, + { + "metadata": { + "_uuid": "06ce583a101287b07e6e95d28426ae20d5b4e64b", + "trusted": true + }, + "cell_type": "code", + "source": "# a Python object (dict):\nx = {\n \"name\": \"John\",\n \"age\": 30,\n \"city\": \"New York\"\n}\n\n# convert into JSON:\ny = json.dumps(x)\n\n# the result is a JSON string:\nprint(y)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b016e08d500dc749010ed6495e3c02e3f1144b4e" + }, + "cell_type": "markdown", + "source": "You can convert Python objects of the following types, into JSON strings:\n\n* dict\n* list\n* tuple\n* string\n* int\n* float\n* True\n* False\n* None" + }, + { + "metadata": { + "_uuid": "2906f3ee8c9392b9be7507c2c99a1fc3db9df95d", + "trusted": true + }, + "cell_type": "code", + "source": "print(json.dumps({\"name\": \"John\", \"age\": 30}))\nprint(json.dumps([\"apple\", \"bananas\"]))\nprint(json.dumps((\"apple\", \"bananas\")))\nprint(json.dumps(\"hello\"))\nprint(json.dumps(42))\nprint(json.dumps(31.76))\nprint(json.dumps(True))\nprint(json.dumps(False))\nprint(json.dumps(None))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5cd4ddf30b6996185afdc94f68ad675b258ebb9a" + }, + "cell_type": "markdown", + "source": "Convert a Python object containing all the legal data types:" + }, + { + "metadata": { + "_uuid": "7a5a584c5912ac52a6fc9796e23eb4799d5b9261", + "trusted": true + }, + "cell_type": "code", + "source": "x = {\n \"name\": \"John\",\n \"age\": 30,\n \"married\": True,\n \"divorced\": False,\n \"children\": (\"Ann\",\"Billy\"),\n \"pets\": None,\n \"cars\": [\n {\"model\": \"BMW 230\", \"mpg\": 27.5},\n {\"model\": \"Ford Edge\", \"mpg\": 24.1}\n ]\n}\n\nprint(json.dumps(x))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "27a8da102cf08964e9cde82973cd653306e3356f" + }, + "cell_type": "markdown", + "source": "## 1-12 Python PIP\n" + }, + { + "metadata": { + "_uuid": "5d13a95f504b710e977b4b589c200d5dadca5bc2" + }, + "cell_type": "markdown", + "source": "### What is a Package?\nA package contains all the files you need for a module.\n\nModules are Python code libraries you can include in your project." + }, + { + "metadata": { + "_uuid": "cfe1ddbfe7ac5b38f1fb0d36401aaa59bf706b06" + }, + "cell_type": "markdown", + "source": "### Install PIP\nIf you do not have PIP installed, you can download and install it from this page: https://pypi.org/project/pip/" + }, + { + "metadata": { + "_uuid": "af880b807b69c45d77b21433937a13772453b481" + }, + "cell_type": "markdown", + "source": "## 1-13 Python Try Except\nThe **try** block lets you test a block of code for errors.\n\nThe **except** block lets you handle the error.\n\nThe **finally** block lets you execute code, regardless of the result of the try- and except blocks." + }, + { + "metadata": { + "_uuid": "078d0a98c43a742ff43460848dd6bf31a69975ce", + "trusted": true + }, + "cell_type": "code", + "source": "try:\n print(x)\nexcept NameError:\n print(\"Variable x is not defined\")\nexcept:\n print(\"Something else went wrong\")", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c5e3cbfe7a287cda43736597455b95e2117ccf4d", + "trusted": true + }, + "cell_type": "code", + "source": "try:\n print(x)\nexcept:\n print(\"Something went wrong\")\nfinally:\n print(\"The 'try except' is finished\")", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6d4ae311b6798fa03dff0516dfb59e7d271b040e" + }, + "cell_type": "markdown", + "source": "## 1-14 Python Iterators\nAn iterator is an object that contains a countable number of values.\n\nAn iterator is an object that can be iterated upon, meaning that you can traverse through all the values.\n\nTechnically, in Python, an iterator is an object which implements the iterator protocol, which consist of the methods __iter__() and __next__()." + }, + { + "metadata": { + "_uuid": "0fd29f43681c38533591b6cd0d3cff27e75b6b0c" + }, + "cell_type": "markdown", + "source": "Return a iterator from a tuple, and print each value:" + }, + { + "metadata": { + "_uuid": "d4f1c3ecdad754158b847660bfc92343470e9c55", + "trusted": true + }, + "cell_type": "code", + "source": "mytuple = (\"apple\", \"banana\", \"cherry\")\nmyit = iter(mytuple)\n\nprint(next(myit))\nprint(next(myit))\nprint(next(myit))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5a15f75b705e078ec25f1fb628af76ed19da0333" + }, + "cell_type": "markdown", + "source": "### Looping Through an Iterator\n" + }, + { + "metadata": { + "_uuid": "830a5d61f4d7afec6525f32b8f8e9c0f4783acc0", + "trusted": true + }, + "cell_type": "code", + "source": "mytuple = (\"apple\", \"banana\", \"cherry\")\n\nfor x in mytuple:\n print(x)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e7410e1e9691615946998a833fec7bea80f50cc2" + }, + "cell_type": "markdown", + "source": "## 1- 15 Dictionary\nA dictionary is a collection which is unordered, changeable and indexed. In Python dictionaries are written with curly brackets, and they have keys and values." + }, + { + "metadata": { + "trusted": true, + "_uuid": "85f51ded66c72e13b253c5775e5b1ac914459479" + }, + "cell_type": "code", + "source": "thisdict =\t{\n \"brand\": \"Ford\",\n \"model\": \"Mustang\",\n \"year\": 1964\n}\nprint(thisdict)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "437f23fd4289f0a757dc1c87a1e339a9c6f96c31" + }, + "cell_type": "markdown", + "source": "## 1-16 Tuples\nA tuple is a collection which is ordered and unchangeable. In Python tuples are written with round brackets.\n\n" + }, + { + "metadata": { + "trusted": true, + "_uuid": "253ab9bcc46ce48b2f5b702bacad75db5d95de7c" + }, + "cell_type": "code", + "source": "thistuple = (\"apple\", \"banana\", \"cherry\")\nprint(thistuple)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1a8697f93952e076f6f949997676d40518d7b5a6" + }, + "cell_type": "markdown", + "source": "
\n# Python Packages\n* Numpy\n* Pandas\n* Matplotlib\n* Seaborn\n* Sklearn" + }, + { + "metadata": { + "_uuid": "bfb701e45e93aea0b3ed64e148ca2fdb53559038", + "collapsed": true + }, + "cell_type": "markdown", + "source": "
\n# 2 Numerical Python (NumPy)" + }, + { + "metadata": { + "_uuid": "db9a850ebb440ca960a0713d822e20090bc10601", + "trusted": true + }, + "cell_type": "code", + "source": "import numpy as np", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "79699175b4559f509181d359393167f801735485" + }, + "cell_type": "markdown", + "source": "
\n## 2-1 NumPy :Creating Arrays" + }, + { + "metadata": { + "_uuid": "fb5123cfa4687a819758ea82810984fa69d631e3" + }, + "cell_type": "markdown", + "source": "Create a list and convert it to a numpy array" + }, + { + "metadata": { + "_uuid": "1cdc9404b31261269891723ddc59064802063041", + "trusted": true + }, + "cell_type": "code", + "source": "mylist = [1, 2, 3]\nx = np.array(mylist)\nx", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "85123a6bf0589918ff03fe9916b06635fa32b776" + }, + "cell_type": "markdown", + "source": "
\nOr just pass in a list directly" + }, + { + "metadata": { + "_uuid": "dca7dd9319716e863760bb7c4e1e47a1c17d7b1b", + "trusted": true + }, + "cell_type": "code", + "source": "y = np.array([4, 5, 6])\ny", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5a29d1e6bb19131b3bde9ae197b562cf5c905f2a" + }, + "cell_type": "markdown", + "source": "
\nPass in a list of lists to create a multidimensional array." + }, + { + "metadata": { + "_uuid": "e18e77b6d1becf1b7ded3a4daa361dbe3f985d96", + "trusted": true + }, + "cell_type": "code", + "source": "m = np.array([[7, 8, 9], [10, 11, 12]])\nm", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "956c870e985074aadd2aa97b8a4c820c64bd7d2b" + }, + "cell_type": "markdown", + "source": "
\nUse the shape method to find the dimensions of the array. (rows, columns)" + }, + { + "metadata": { + "_uuid": "7e5472233313b1eb806b7e9dfd2478f4155b23d0", + "trusted": true + }, + "cell_type": "code", + "source": "m.shape", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d20433435f865bf4593ee8b5eae4cb2173794a57" + }, + "cell_type": "markdown", + "source": "
\n`arange` returns evenly spaced values within a given interval." + }, + { + "metadata": { + "_uuid": "87aded8cbe232bfcb4ce246ecf1bac0b70d9477e", + "trusted": true + }, + "cell_type": "code", + "source": "n = np.arange(0, 30, 2) # start at 0 count up by 2, stop before 30\nn", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ef6d0651972cb576188cd986830aae2d53bb20b8" + }, + "cell_type": "markdown", + "source": "
\n`reshape` returns an array with the same data with a new shape." + }, + { + "metadata": { + "_uuid": "6722026f830d545bfd21a2760f80c20e33c0d757", + "trusted": true + }, + "cell_type": "code", + "source": "n = n.reshape(3, 5) # reshape array to be 3x5\nn", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a47a0e9b094d81ae9ec235cd33d395ca34c379b3" + }, + "cell_type": "markdown", + "source": "
\n`linspace` returns evenly spaced numbers over a specified interval." + }, + { + "metadata": { + "_uuid": "099d0b4b7f3c6e5aef6cebd760e3c6b8111205d8", + "trusted": true + }, + "cell_type": "code", + "source": "o = np.linspace(0, 4, 9) # return 9 evenly spaced values from 0 to 4\no", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e5abb93fd66c344624ad2bb5e91ec1cd8a9ab220" + }, + "cell_type": "markdown", + "source": "
\n`resize` changes the shape and size of array in-place." + }, + { + "metadata": { + "_uuid": "66de4ad6fbb8a2ffe7251b667de732fe0048c39c", + "trusted": true + }, + "cell_type": "code", + "source": "o.resize(3, 3)\no", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "95af33fa252b8ccc4afad8666e0a7ced2d83aee9" + }, + "cell_type": "markdown", + "source": "
\n`ones` returns a new array of given shape and type, filled with ones." + }, + { + "metadata": { + "_uuid": "015e5a604fceb5b335760d85f090812416ab0edd", + "trusted": true + }, + "cell_type": "code", + "source": "np.ones((3, 2))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "415ba7eb6ffcca82d1ad73b6e652d77c2b40c4c7" + }, + "cell_type": "markdown", + "source": "
\n`zeros` returns a new array of given shape and type, filled with zeros." + }, + { + "metadata": { + "_uuid": "4833b4502eac60ec53ca4ab55f10653103be3584", + "trusted": true + }, + "cell_type": "code", + "source": "np.zeros((2, 3))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "acbef4f6ab93b0ea5ed8bea30ec0eddbce8415f1" + }, + "cell_type": "markdown", + "source": "
\n`eye` returns a 2-D array with ones on the diagonal and zeros elsewhere." + }, + { + "metadata": { + "_uuid": "5e4e8112e5829b290385bd076041d9d0c43bdd4e", + "trusted": true + }, + "cell_type": "code", + "source": "np.eye(3)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "bb258a18b84c56c26c19e5e467f8886a3209eb6d" + }, + "cell_type": "markdown", + "source": "
\n`diag` extracts a diagonal or constructs a diagonal array." + }, + { + "metadata": { + "_uuid": "0167bbb06dc5175a14e2d1844b3e92c3f601e156", + "trusted": true + }, + "cell_type": "code", + "source": "np.diag(y)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "05f0ea0d69c70181a0ddee0b0a0670afc1a5761c" + }, + "cell_type": "markdown", + "source": "
\nCreate an array using repeating list (or see `np.tile`)" + }, + { + "metadata": { + "_uuid": "76f7c4dd56d1f9ba9c8dcc3bf3b0e67bc62326de", + "trusted": true + }, + "cell_type": "code", + "source": "np.array([1, 2, 3] * 3)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e9d6935951d0df2a4d60f66b302da7b876006c71" + }, + "cell_type": "markdown", + "source": "
\nRepeat elements of an array using `repeat`." + }, + { + "metadata": { + "_uuid": "7299b4990895d4ea8a59447489fa6fbc0cde5ea6", + "trusted": true + }, + "cell_type": "code", + "source": "np.repeat([1, 2, 3], 3)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "01250c2ea726f387db5f3fab5a004e741e574a35" + }, + "cell_type": "markdown", + "source": "
\n## 2-2 Numpy:Combining Arrays" + }, + { + "metadata": { + "_uuid": "0dc57919256360d1ac309813fb6e836f75d17484", + "trusted": true + }, + "cell_type": "code", + "source": "p = np.ones([2, 3], int)\np", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "98aa86e98478bcad2ce35eded8e2adb825bbf709" + }, + "cell_type": "markdown", + "source": "
\nUse `vstack` to stack arrays in sequence vertically (row wise)." + }, + { + "metadata": { + "_uuid": "48b0f8194df6a4f63932d97b24883d6a5d69d0df", + "trusted": true + }, + "cell_type": "code", + "source": "np.vstack([p, 2*p])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a2cf2eb6fdf3deccca31df9979dd978241adadb8" + }, + "cell_type": "markdown", + "source": "
\nUse `hstack` to stack arrays in sequence horizontally (column wise)." + }, + { + "metadata": { + "_uuid": "834984b63056d7161f261d868d85b83f24403287", + "trusted": true + }, + "cell_type": "code", + "source": "np.hstack([p, 2*p])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b82f24eec48ab5206a47d04a36e5e639dad7f9a1" + }, + "cell_type": "markdown", + "source": "
\n## 2-3 Numpy:Operations" + }, + { + "metadata": { + "_uuid": "d58a4bb35b9f1525736b28ffc7e2b6ead4035266" + }, + "cell_type": "markdown", + "source": "Use `+`, `-`, `*`, `/` and `**` to perform element wise addition, subtraction, multiplication, division and power." + }, + { + "metadata": { + "_uuid": "7ba8b42fcdcdc83e6f43df83b73665aa289e9786", + "trusted": true + }, + "cell_type": "code", + "source": "print(x + y) # elementwise addition [1 2 3] + [4 5 6] = [5 7 9]\nprint(x - y) # elementwise subtraction [1 2 3] - [4 5 6] = [-3 -3 -3]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "cd42ade6bd206750b5dde1086b06bde519f2b1df", + "trusted": true + }, + "cell_type": "code", + "source": "print(x * y) # elementwise multiplication [1 2 3] * [4 5 6] = [4 10 18]\nprint(x / y) # elementwise divison [1 2 3] / [4 5 6] = [0.25 0.4 0.5]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3370d5b9b8ca04ed5be48331c3d6d4d08738ab5d", + "trusted": true + }, + "cell_type": "code", + "source": "print(x**2) # elementwise power [1 2 3] ^2 = [1 4 9]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e665d9db501694e29f54b02de56befaf69305629" + }, + "cell_type": "markdown", + "source": "
\n**Dot Product:** \n\n$ \\begin{bmatrix}x_1 \\ x_2 \\ x_3\\end{bmatrix}\n\\cdot\n\\begin{bmatrix}y_1 \\\\ y_2 \\\\ y_3\\end{bmatrix}\n= x_1 y_1 + x_2 y_2 + x_3 y_3$" + }, + { + "metadata": { + "_uuid": "b45a94567cf5801e05869bde614e831603b1599a", + "trusted": true + }, + "cell_type": "code", + "source": "x.dot(y) # dot product 1*4 + 2*5 + 3*6", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b27ce9c3b1328461ba14f5efdd36079e3f827951", + "trusted": true + }, + "cell_type": "code", + "source": "z = np.array([y, y**2])\nprint(len(z)) # number of rows of array", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "30ab350aa70687cbdd087d86386b96504aec4479" + }, + "cell_type": "markdown", + "source": "
\nLet's look at transposing arrays. Transposing permutes the dimensions of the array." + }, + { + "metadata": { + "_uuid": "2630bf81db6d00483f7e0abd3a3c3af28144d55f", + "trusted": true + }, + "cell_type": "code", + "source": "z = np.array([y, y**2])\nz", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8bb90454186cab0c688be9a01ff84c7ca67fa6a9" + }, + "cell_type": "markdown", + "source": "
\nThe shape of array `z` is `(2,3)` before transposing." + }, + { + "metadata": { + "_uuid": "bdcbfc2e1c9b985a83aefa1a5972aa919acb8365", + "trusted": true + }, + "cell_type": "code", + "source": "z.shape", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3b796b3d6c4e9a90e4fb5332d708398bb848c2e4" + }, + "cell_type": "markdown", + "source": "
\nUse `.T` to get the transpose." + }, + { + "metadata": { + "_uuid": "8ca46bf46ed15a5fa3af7e2d325ac68bc8785f05", + "trusted": true + }, + "cell_type": "code", + "source": "z.T", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d2949665fb40cdb932376219b6d78156265d5ebf" + }, + "cell_type": "markdown", + "source": "
\nThe number of rows has swapped with the number of columns." + }, + { + "metadata": { + "_uuid": "e48e8eff60259a9c865cf2dae88a3ce1641e826c", + "trusted": true + }, + "cell_type": "code", + "source": "z.T.shape", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "08fac1d78a66fdd513372cd31eaa5f973655e80a" + }, + "cell_type": "markdown", + "source": "
\nUse `.dtype` to see the data type of the elements in the array." + }, + { + "metadata": { + "_uuid": "6e1ea214c877f23d670b72f06060c2dee1bdaee5", + "trusted": true + }, + "cell_type": "code", + "source": "z.dtype", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "70da3bcabbc0631bb11b48796106c07f4de41ba8" + }, + "cell_type": "markdown", + "source": "
\nUse `.astype` to cast to a specific type." + }, + { + "metadata": { + "_uuid": "60684ed5f18c88c4ef4e2fe4207fa94eede9d993", + "trusted": true + }, + "cell_type": "code", + "source": "z = z.astype('f')\nz.dtype", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e1199442dd07a4a4eef965c584d9e0f443c40013" + }, + "cell_type": "markdown", + "source": "
\n## 2-4 Numpy: Math Functions" + }, + { + "metadata": { + "_uuid": "01121300b7b5b8a83d213d4f065383da19d5f7d8" + }, + "cell_type": "markdown", + "source": "Numpy has many built in math functions that can be performed on arrays." + }, + { + "metadata": { + "_uuid": "e1eaeb06cf68d055f6a5536ea72a17606b6762c1", + "trusted": true + }, + "cell_type": "code", + "source": "a = np.array([-4, -2, 1, 3, 5])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2918e83be55935fa03fd24924bc7f07a271c40d3", + "trusted": true + }, + "cell_type": "code", + "source": "a.sum()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2e86a6ea98c6c86dbe7a96612af4f37452b23670", + "trusted": true + }, + "cell_type": "code", + "source": "a.max()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1e8e48425f65e90a18a29fb7983dc6aa424f8445", + "trusted": true + }, + "cell_type": "code", + "source": "a.min()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "27131855b2c26a5f90c6524d4a8c7ed0266bf378", + "trusted": true + }, + "cell_type": "code", + "source": "a.mean()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a020531df7f87af15577e986699e80f892300773", + "trusted": true + }, + "cell_type": "code", + "source": "a.std()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6d26c78ddd00e9387ba4214470debcc8147fd2bc" + }, + "cell_type": "markdown", + "source": "
\n`argmax` and `argmin` return the index of the maximum and minimum values in the array." + }, + { + "metadata": { + "_uuid": "dd6f6aee91fc8dd99cc5a8359dc81ce1d443e77f", + "trusted": true + }, + "cell_type": "code", + "source": "a.argmax()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "59aeec1ba92a0eb4c6928564e64445e6ce46cc3c", + "trusted": true + }, + "cell_type": "code", + "source": "a.argmin()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "cf3ad4800506fd903882f60d811ca2548756e7c8" + }, + "cell_type": "markdown", + "source": "
\n\n## 2-5 Numpy:Indexing / Slicing" + }, + { + "metadata": { + "_uuid": "82ca4b616a46de3280b5a50df4c0114298d07aea", + "trusted": true + }, + "cell_type": "code", + "source": "s = np.arange(13)**2\ns", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "417c1b56b9d3eca21021422bde199036c3f08ec3" + }, + "cell_type": "markdown", + "source": "
\nUse bracket notation to get the value at a specific index. Remember that indexing starts at 0." + }, + { + "metadata": { + "_uuid": "6f90f5dee19a73afde4e9455b47c0dbe86c9ce6b", + "trusted": true + }, + "cell_type": "code", + "source": "s[0], s[4], s[-1]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9d0cf8a30f9b1bd1f8dc60a46d3271e5cac235d0" + }, + "cell_type": "markdown", + "source": "
\nUse `:` to indicate a range. `array[start:stop]`\n\n\nLeaving `start` or `stop` empty will default to the beginning/end of the array." + }, + { + "metadata": { + "_uuid": "1ea11cc5be369a751b250e7085cf507b122bcf88", + "trusted": true + }, + "cell_type": "code", + "source": "s[1:5]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "dd42e9a4274baebf747c627767a273ef8ca9a26f" + }, + "cell_type": "markdown", + "source": "
\nUse negatives to count from the back." + }, + { + "metadata": { + "_uuid": "ce51a60f59516b22174f97a4f7c6da6c75322a8b", + "trusted": true + }, + "cell_type": "code", + "source": "s[-4:]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0fdd94c22e7ceb4cac00001bd98f09d5d879613e" + }, + "cell_type": "markdown", + "source": "
\nA second `:` can be used to indicate step-size. `array[start:stop:stepsize]`\n\nHere we are starting 5th element from the end, and counting backwards by 2 until the beginning of the array is reached." + }, + { + "metadata": { + "_uuid": "f28245bea6ab9a1bed7a76859ddfbb295ea95038", + "trusted": true + }, + "cell_type": "code", + "source": "s[-5::-2]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2f2295df96d9e7da01cde82bf87d5c7157bd9d21" + }, + "cell_type": "markdown", + "source": "
\nLet's look at a multidimensional array." + }, + { + "metadata": { + "_uuid": "582e15f695a2891826ef4eb8e913a0dc61913898", + "trusted": true + }, + "cell_type": "code", + "source": "r = np.arange(36)\nr.resize((6, 6))\nr", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "26fd89ebfe4b92cedad89152753918608b68eafe" + }, + "cell_type": "markdown", + "source": "
\nUse bracket notation to slice: `array[row, column]`" + }, + { + "metadata": { + "_uuid": "7bf0f1e77c5243c3e2b846f7b268c4891786621b", + "trusted": true + }, + "cell_type": "code", + "source": "r[2, 2]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "fcbf322288c6671ef799299b5ddb828b68b8cab9" + }, + "cell_type": "markdown", + "source": "
\nAnd use : to select a range of rows or columns" + }, + { + "metadata": { + "_uuid": "64d430ac4626977723c6357865a5297699e5323d", + "trusted": true + }, + "cell_type": "code", + "source": "r[3, 3:6]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e109144f7316b357450c4b3cae3cb61ad327f5d9" + }, + "cell_type": "markdown", + "source": "
\nHere we are selecting all the rows up to (and not including) row 2, and all the columns up to (and not including) the last column." + }, + { + "metadata": { + "_uuid": "7b80dc3ba5c970afe2db37c23599d476399b1c68", + "trusted": true + }, + "cell_type": "code", + "source": "r[:2, :-1]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6c5126aa54a1e6b9d0d078f2226b68d3fb42c4a2" + }, + "cell_type": "markdown", + "source": "
\nThis is a slice of the last row, and only every other element." + }, + { + "metadata": { + "_uuid": "054f80d47b0e2d249a9140321846ff7b50daba1f", + "trusted": true + }, + "cell_type": "code", + "source": "r[-1, ::2]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "62e5354b353e1fe2e60036f2c3f94909a8af1b7b" + }, + "cell_type": "markdown", + "source": "
\nWe can also perform conditional indexing. Here we are selecting values from the array that are greater than 30. (Also see `np.where`)" + }, + { + "metadata": { + "_uuid": "5476c43a5e7d195804cac7517abbdbcdbc234829", + "trusted": true + }, + "cell_type": "code", + "source": "r[r > 30]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "77ae22731783157aaecdd019be77004504b943af" + }, + "cell_type": "markdown", + "source": "
\nHere we are assigning all values in the array that are greater than 30 to the value of 30." + }, + { + "metadata": { + "_uuid": "6651ea99641526b7df83e7a9d9c1efe4eab9dc99", + "trusted": true + }, + "cell_type": "code", + "source": "r[r > 30] = 30\nr", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6189d2e7dc9038dc1c4f2ed95a47fad76d700890" + }, + "cell_type": "markdown", + "source": "
\n## 2-6 Numpy :Copying Data" + }, + { + "metadata": { + "_uuid": "ad2453d83a8db6de311e9265672e9b10b0337284" + }, + "cell_type": "markdown", + "source": "Be careful with copying and modifying arrays in NumPy!\n\n\n`r2` is a slice of `r`" + }, + { + "metadata": { + "_uuid": "e6bb5dab7586dd4cfbc93b2cee05c57aae1e8518", + "trusted": true + }, + "cell_type": "code", + "source": "r2 = r[:3,:3]\nr2", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "65d42e0a4cade74ae9b2b587f182efaa8a4b1dbf" + }, + "cell_type": "markdown", + "source": "
\nSet this slice's values to zero ([:] selects the entire array)" + }, + { + "metadata": { + "_uuid": "9026a103a457054124258eefca3492008f884ef4", + "trusted": true + }, + "cell_type": "code", + "source": "r2[:] = 0\nr2", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f73d4004c9181b5cffddf6f13b452d7e40cea3f9" + }, + "cell_type": "markdown", + "source": "
\n`r` has also been changed!" + }, + { + "metadata": { + "_uuid": "80c0d26d5cb0374f82929e3d79c183f5e116f4ea", + "trusted": true + }, + "cell_type": "code", + "source": "r", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c8a21fd94e5dfcd322ec0017e89302533ac3cf2d" + }, + "cell_type": "markdown", + "source": "
\nTo avoid this, use `r.copy` to create a copy that will not affect the original array" + }, + { + "metadata": { + "_uuid": "d2b2e17295f75a5a3b8dacf5ca65b4c4f3b6ca47", + "trusted": true + }, + "cell_type": "code", + "source": "r_copy = r.copy()\nr_copy", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2ef3568f7ac932cc45931854410cbb9e4d909df8" + }, + "cell_type": "markdown", + "source": "
\nNow when r_copy is modified, r will not be changed." + }, + { + "metadata": { + "_uuid": "4f7fa9e1b65eea1e9514fbd6f91a2720822430ba", + "trusted": true + }, + "cell_type": "code", + "source": "r_copy[:] = 10\nprint(r_copy, '\\n')\nprint(r)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "752b09b0f8f1606d55bf0423d3f2d9cb162d3ce9" + }, + "cell_type": "markdown", + "source": "
\n## 2-7 Numpy: Iterating Over Arrays" + }, + { + "metadata": { + "_uuid": "6a7f8c639e5f8cbdbd0cf2fe4c78504955ec2ccb" + }, + "cell_type": "markdown", + "source": "Let's create a new 4 by 3 array of random numbers 0-9." + }, + { + "metadata": { + "_uuid": "c1496dab8d8f90434e8c44e63c225bfb3ca9713f", + "trusted": true + }, + "cell_type": "code", + "source": "test = np.random.randint(0, 10, (4,3))\ntest", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "bf971c58819a069592b3d5c195cf9e21faa4797b" + }, + "cell_type": "markdown", + "source": "
\nIterate by row:" + }, + { + "metadata": { + "_uuid": "993bb7b7f1be5a0b088caac550c32257dd1c9297", + "trusted": true + }, + "cell_type": "code", + "source": "for row in test:\n print(row)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f5b7fa4289acc25093efbbc99fe36355073bcd02" + }, + "cell_type": "markdown", + "source": "
\nIterate by index:" + }, + { + "metadata": { + "_uuid": "9de357edca10cf7708e1c5b37ef5a0ad337fcbbf", + "trusted": true + }, + "cell_type": "code", + "source": "for i in range(len(test)):\n print(test[i])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "00ed3013376dff60b43f6f1eb5091580279063ad" + }, + "cell_type": "markdown", + "source": "
\nIterate by row and index:" + }, + { + "metadata": { + "_uuid": "a75a7881baf87a49a3f48236fc9a9281f2ace310", + "trusted": true + }, + "cell_type": "code", + "source": "for i, row in enumerate(test):\n print('row', i, 'is', row)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "08f51011e8d4da3ab72a33ccb6daca3c97832eb4" + }, + "cell_type": "markdown", + "source": "
\nUse `zip` to iterate over multiple iterables." + }, + { + "metadata": { + "_uuid": "63709cf63fc6e5596bc540055a287d56a57c55df", + "trusted": true + }, + "cell_type": "code", + "source": "test2 = test**2\ntest2", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "88776121d1063744cdb0d1df15320af35a40690f", + "trusted": true + }, + "cell_type": "code", + "source": "for i, j in zip(test, test2):\n print(i,'+',j,'=',i+j)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c2ec9941ed71b0d102881252688723804c536b65" + }, + "cell_type": "markdown", + "source": "
\n## 2-8 Numpy: The Series Data Structure\nOne-dimensional ndarray with axis labels (including time series)" + }, + { + "metadata": { + "_uuid": "ff60c47c0ee85b3534fa0eeb1fc6c18951e13a93", + "trusted": true + }, + "cell_type": "code", + "source": "animals = ['Tiger', 'Bear', 'Moose']\npd.Series(animals)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3b9d3593c2f04eb52439d1e2f6eaced42103b385", + "trusted": true + }, + "cell_type": "code", + "source": "numbers = [1, 2, 3]\npd.Series(numbers)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ac6b145a659c5c6e143e47a726be2d2bc904ea05", + "trusted": true + }, + "cell_type": "code", + "source": "animals = ['Tiger', 'Bear', None]\npd.Series(animals)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "608363b045521c88d96135d4651624753a0a97f8", + "trusted": true + }, + "cell_type": "code", + "source": "numbers = [1, 2, None]\npd.Series(numbers)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "81c84dd1739a442c3eca83911b9e9cd146beccf1", + "trusted": true + }, + "cell_type": "code", + "source": "import numpy as np\nnp.nan == None", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ee829b3241dc2b99e7aeb8b16daa61f43516a08e", + "trusted": true + }, + "cell_type": "code", + "source": "np.nan == np.nan", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c39a1b7d020fa502a055e4befa580529da3d9206", + "trusted": true + }, + "cell_type": "code", + "source": "np.isnan(np.nan)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "703803f890a0c351d5122b4f509c0835b949481d", + "trusted": true + }, + "cell_type": "code", + "source": "sports = {'Archery': 'Bhutan',\n 'Golf': 'Scotland',\n 'Sumo': 'Japan',\n 'Taekwondo': 'South Korea'}\ns = pd.Series(sports)\ns", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6a4a03374c688db5bc1cb49cf0ae67a166f33ab5", + "trusted": true + }, + "cell_type": "code", + "source": "s.index", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "16a45c1d82eb06da0e940aa9304455d5b6629723", + "trusted": true + }, + "cell_type": "code", + "source": "s = pd.Series(['Tiger', 'Bear', 'Moose'], index=['India', 'America', 'Canada'])\ns", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d5c017e5124d3c8c62bbe91b16ae5e2fb76f2cd5", + "trusted": true + }, + "cell_type": "code", + "source": "sports = {'Archery': 'Bhutan',\n 'Golf': 'Scotland',\n 'Sumo': 'Japan',\n 'Taekwondo': 'South Korea'}\ns = pd.Series(sports, index=['Golf', 'Sumo', 'Hockey'])\ns", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "91a03b68b0698ad0f0736d0a8106bb4c2023437d" + }, + "cell_type": "markdown", + "source": "
\n# 2-9 Numpy: Querying a Series" + }, + { + "metadata": { + "_uuid": "6c44f80eadf6e60f8d1d966594169e6e579fd91a", + "trusted": true + }, + "cell_type": "code", + "source": "sports = {'Archery': 'Bhutan',\n 'Golf': 'Scotland',\n 'Sumo': 'Japan',\n 'Taekwondo': 'South Korea'}\ns = pd.Series(sports)\ns", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "560e0377aa2d53cc14f61a42a6492f99932a6eab", + "trusted": true + }, + "cell_type": "code", + "source": "s.iloc[3]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2c0e34116ab3b36363b7d7ffde48d3520b493d50", + "trusted": true + }, + "cell_type": "code", + "source": "s.loc['Golf']", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "12dce7548346ce489c21f50e02a30e4a7dad6a81", + "trusted": true + }, + "cell_type": "code", + "source": "s[3]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a44e0fd0b5ea294bfde2383f3ed660bb4dc7c032", + "trusted": true + }, + "cell_type": "code", + "source": "s['Golf']", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "97f106d843bd9da560c4aaa36e9a2baf0fd5f820", + "trusted": true + }, + "cell_type": "code", + "source": "sports = {99: 'Bhutan',\n 100: 'Scotland',\n 101: 'Japan',\n 102: 'South Korea'}\ns = pd.Series(sports)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6c8d10a115a42956c1bf95a925006f1a8f44ac77", + "trusted": true + }, + "cell_type": "code", + "source": "s = pd.Series([100.00, 120.00, 101.00, 3.00])\ns", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a877d83b4ea29606ab220884b742b9436640a87b", + "trusted": true + }, + "cell_type": "code", + "source": "total = 0\nfor item in s:\n total+=item\nprint(total)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "eb4aaac9d42d6ad0df5b0d766bf142cec13ca640", + "trusted": true + }, + "cell_type": "code", + "source": "total = np.sum(s)\nprint(total)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c5ec441b291558581a79c6bda7d67ee7df640ac4", + "trusted": true + }, + "cell_type": "code", + "source": "#this creates a big series of random numbers\ns = pd.Series(np.random.randint(0,1000,10000))\ns.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "cafe2341bfb1b9419fcff2624e9973a12beb579a", + "trusted": true + }, + "cell_type": "code", + "source": "len(s)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b0028ee6c78f4715a1848458c3b5ef2ea75e601b", + "trusted": true + }, + "cell_type": "code", + "source": "%%timeit -n 100\nsummary = 0\nfor item in s:\n summary+=item", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "bbc4da9b2ba74a04d797ff837bddf7553b4625d9", + "trusted": true + }, + "cell_type": "code", + "source": "%%timeit -n 100\nsummary = np.sum(s)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a9ef0f8d0db28ffb3f5c92c86dbcffd8b9d01840", + "trusted": true + }, + "cell_type": "code", + "source": "s+=2 #adds two to each item in s using broadcasting\ns.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f092ba84abb6a9172a23030b25caa23b7dea1c3f", + "trusted": true + }, + "cell_type": "code", + "source": "for label, value in s.iteritems():\n s.set_value(label, value+2)\ns.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "979c2ea48abace1804d37a316ecf8a7cb0b53aa2", + "trusted": true + }, + "cell_type": "code", + "source": "%%timeit -n 10\ns = pd.Series(np.random.randint(0,1000,100))\nfor label, value in s.iteritems():\n s.loc[label]= value+2", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "84c6c0358bf55fd26254ae784ae2b60b3d7c3526", + "trusted": true + }, + "cell_type": "code", + "source": "%%timeit -n 10\ns = pd.Series(np.random.randint(0,1000,100))\ns+=2\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "35dabb561b6b3aaf6520311c68004880cadf5f7d", + "trusted": true + }, + "cell_type": "code", + "source": "s = pd.Series([1, 2, 3])\ns.loc['Animal'] = 'Bears'\ns", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1f40d7bded3fd8cea73b8ab31e945929d75a57f4", + "trusted": true + }, + "cell_type": "code", + "source": "original_sports = pd.Series({'Archery': 'Bhutan',\n 'Golf': 'Scotland',\n 'Sumo': 'Japan',\n 'Taekwondo': 'South Korea'})\ncricket_loving_countries = pd.Series(['Australia',\n 'Barbados',\n 'Pakistan',\n 'England'], \n index=['Cricket',\n 'Cricket',\n 'Cricket',\n 'Cricket'])\nall_countries = original_sports.append(cricket_loving_countries)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "95fa6b69a0927865a896c7a518ba848c3b994cad", + "trusted": true + }, + "cell_type": "code", + "source": "original_sports", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "bb617195f684747e2a79b87eb7307e832f2bfe50", + "trusted": true + }, + "cell_type": "code", + "source": "cricket_loving_countries", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5274031be8720d734db1866f20ad048c4c2ea7da", + "trusted": true + }, + "cell_type": "code", + "source": "all_countries", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "33c9d9f54962decaa00a7328b124252ddcf2b661", + "trusted": true + }, + "cell_type": "code", + "source": "all_countries.loc['Cricket']", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7653d84bad68f6370b1bdf484a2e9b6fb5982977" + }, + "cell_type": "markdown", + "source": "
\n## 3- Pandas:The DataFrame Data Structure\n You'll hone your pandas skills by learning how to organize, reshape, and aggregate multiple data sets to answer your specific questions.\n **Pandas**:\nTwo-dimensional size-mutable, potentially heterogeneous tabular data structure with labeled axes (rows and columns). Arithmetic operations align on both row and column labels. Can be thought of as a dict-like container for Series objects. The primary pandas data structure.\n\nPandas is capable of many tasks including:\n\nReading/writing many different data formats\nSelecting subsets of data\nCalculating across rows and down columns\nFinding and filling missing data\nApplying operations to independent groups within the data\nReshaping data into different forms\nCombing multiple datasets together\nAdvanced time-series functionality\nVisualization through matplotlib and seaborn\nAlthough pandas is very capable, it does not provide functionality for the entire data science pipeline. Pandas is typically the intermediate tool used for data exploration and cleaning squashed between data capturing and storage, and data modeling and predicting." + }, + { + "metadata": { + "_uuid": "4e82246f590c37992f9190583cdb0035d93c0dcd", + "trusted": true + }, + "cell_type": "code", + "source": "\npurchase_1 = pd.Series({'Name': 'Chris',\n 'Item Purchased': 'Dog Food',\n 'Cost': 22.50})\npurchase_2 = pd.Series({'Name': 'Kevyn',\n 'Item Purchased': 'Kitty Litter',\n 'Cost': 2.50})\npurchase_3 = pd.Series({'Name': 'Vinod',\n 'Item Purchased': 'Bird Seed',\n 'Cost': 5.00})\ndf = pd.DataFrame([purchase_1, purchase_2, purchase_3], index=['Store 1', 'Store 1', 'Store 2'])\ndf.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "835c6bb2dba772d11345bb2d5e40a992999d31b6", + "trusted": true + }, + "cell_type": "code", + "source": "df.loc['Store 2']", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0b48c39ad30936af6ce6932597073451c6b2bac9", + "trusted": true + }, + "cell_type": "code", + "source": "type(df.loc['Store 2'])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c929565dc25461fd914c756431df400e6cdf058b", + "trusted": true + }, + "cell_type": "code", + "source": "df.loc['Store 1']", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a11d22702f1be476a4d443cf811fe0a07a5dbbe4", + "trusted": true + }, + "cell_type": "code", + "source": "df.loc['Store 1', 'Cost']", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "adb35d3ac7e00c00ced7236aa7c3eaab3c85e675", + "trusted": true + }, + "cell_type": "code", + "source": "df.T", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0e478aabe2d50b04f5bd9cca220150476adc8b1f", + "trusted": true + }, + "cell_type": "code", + "source": "df.T.loc['Cost']", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2ed1c53b43bb00bc07a95642071be8ef2b5aa779", + "trusted": true + }, + "cell_type": "code", + "source": "df['Cost']", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "084454d6fcc47a738808b0c832d59aebc49be70c", + "trusted": true + }, + "cell_type": "code", + "source": "df.loc['Store 1']['Cost']", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "fdbddb30cb59ed8462a07795aaadbcd9ad2b1aa4", + "trusted": true + }, + "cell_type": "code", + "source": "df.loc[:,['Name', 'Cost']]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2541e9071816bd8f496ddf62b77cccb8fe325fbc", + "trusted": true + }, + "cell_type": "code", + "source": "df.drop('Store 1')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5fa5a22b81b92bae274d3a9afd76283ded17b478", + "trusted": true + }, + "cell_type": "code", + "source": "df", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "918e58d124508bd5edff0ed84ba6a4c252cdec3d", + "trusted": true + }, + "cell_type": "code", + "source": "copy_df = df.copy()\ncopy_df = copy_df.drop('Store 1')\ncopy_df", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0e3830ddb755492607166e3975ac6e18c9436422", + "trusted": true + }, + "cell_type": "code", + "source": "copy_df.drop", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "946e48754fa8ed9914ef62b1c7049260861098db", + "trusted": true + }, + "cell_type": "code", + "source": "del copy_df['Name']\ncopy_df", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "de93b5c96c8b546bfb01b57d75347f5045ea01d1", + "trusted": true + }, + "cell_type": "code", + "source": "df['Location'] = None\ndf", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "42414bc5b478108d59aaf9b5dff463c95904097d", + "trusted": true + }, + "cell_type": "code", + "source": "costs = df['Cost']\ncosts", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "76922dc612283caa9821f793abac91dad9328c75", + "trusted": true + }, + "cell_type": "code", + "source": "costs+=2\ncosts", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3ea1881948d05207d7dc2e1805c446adfa544959", + "trusted": true + }, + "cell_type": "code", + "source": "df", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "4d339cee9608b148762d7ad3068c362bbc9454f7" + }, + "cell_type": "markdown", + "source": "
\n# 3-1 Pandas:Dataframe Indexing and Loading\n\nAs a Data Scientist, you'll often find that the data you need is not in a single file. It may be spread across a number of text files, spreadsheets, or databases. You want to be able to import the data of interest as a collection of DataFrames and figure out how to combine them to answer your central questions." + }, + { + "metadata": { + "_uuid": "53fa2f4cb18784de6d077871a606dcf5b1511862", + "trusted": true + }, + "cell_type": "code", + "source": "df = pd.read_csv('../input/train.csv')\ndf.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "01a8c7bc0a10635dc10dd56ba6edcbe595013772", + "trusted": true + }, + "cell_type": "code", + "source": "df.columns", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ffb1b09a5a8953e7dae65425890b652c214b1fb5", + "trusted": true + }, + "cell_type": "code", + "source": "# Querying a DataFrame", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "258b2c7201efba77d84b92286bbe69a6af240ca8", + "trusted": true + }, + "cell_type": "code", + "source": "df['Survived'] > 0", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "739f5037a2fcdd548abc5e68f5abcba3fcdb68e4", + "trusted": true + }, + "cell_type": "code", + "source": "only_Survived = df.where(df['Survived'] > 0)\nonly_Survived.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e420645f2daa14d2bf12b3370438b5c1741f5c52", + "trusted": true + }, + "cell_type": "code", + "source": "only_Survived['Survived'].count()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2c3561ac4d86a22f3984b11ebe1200100fc95417", + "trusted": true + }, + "cell_type": "code", + "source": "df['Survived'].count()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "86e547ab11dacd87ccfe4657f8eb11fd9fcf3fef", + "trusted": true + }, + "cell_type": "code", + "source": "only_Survived = only_Survived.dropna()\nonly_Survived.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "cf0829126fff5c075151fcc5418bbe9b945c14c9", + "trusted": true + }, + "cell_type": "code", + "source": "only_Survived = df[df['Survived'] > 0]\nonly_Survived.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5b957eae6c82a982ff9672d321deadf637aa421c", + "trusted": true + }, + "cell_type": "code", + "source": "len(df[(df['Survived'] > 0) | (df['Survived'] > 0)])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d076fe5f6dade0e49c2a35c7f9c64baeaf42a59d", + "trusted": true + }, + "cell_type": "code", + "source": "df[(df['Survived'] > 0) & (df['Survived'] == 0)]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "717b27412a1a852c84f820272d8bf94a45022aca", + "trusted": true + }, + "cell_type": "code", + "source": "# Indexing Dataframes", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "822efde2bbb058575dea289d057368d1af7d1394", + "trusted": true + }, + "cell_type": "code", + "source": "df.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b11ed5fbe0e8d35b303125afc78b04abf4dc0190", + "trusted": true + }, + "cell_type": "code", + "source": "df['PassengerId'] = df.index\ndf = df.set_index('Survived')\ndf.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "4848977e538e02e0444862e632101a9d6bc97742", + "trusted": true + }, + "cell_type": "code", + "source": "\ndf = df.reset_index()\ndf.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5da1a958ccd43f5f5427415dc8682ccbbd589b3d", + "trusted": true + }, + "cell_type": "code", + "source": "df = pd.read_csv('../input/train.csv')\ndf.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9c818adf02056d59d534e4cb790dd6ce74c2b861", + "trusted": true + }, + "cell_type": "code", + "source": "df['Age'].unique()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c1adb2169bf24831daaa59655083e069d5fda4a5", + "trusted": true + }, + "cell_type": "code", + "source": "df=df[df['Age'] == 50]\ndf.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "94d2eb99802e00e342e3a046f9b26a06a3c501a7" + }, + "cell_type": "markdown", + "source": "
\n# 3-2 Pandas:Missing values\n" + }, + { + "metadata": { + "_uuid": "6946487c3ba7a29af57472c6fe03cde0ababd341", + "trusted": true + }, + "cell_type": "code", + "source": "df = pd.read_csv('../input/train.csv')\ndf", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "30cc0a09aa17b60a69ddccebbc0b6ceaf6077bfb", + "trusted": true + }, + "cell_type": "code", + "source": "df.fillna", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "be537539e67066ad45f9217988aa7ca7c23a370b", + "trusted": true + }, + "cell_type": "code", + "source": "df = df.set_index('PassengerId')\ndf = df.sort_index()\ndf", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d2681f382b87e0eb47c41745576c2d35a8f55f5b", + "trusted": true + }, + "cell_type": "code", + "source": "df = df.reset_index()\ndf = df.set_index(['PassengerId', 'Survived'])\ndf", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "bea1dfdc973fe52315d701fecb6abb28edaecb81", + "trusted": true + }, + "cell_type": "code", + "source": "df = df.fillna(method='ffill')\ndf.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d79a17c1a5930de30ef9c238bf143cfc9962d24f" + }, + "cell_type": "markdown", + "source": "
\n# 3-3 Pandas :Merging Dataframes\npandas provides various facilities for easily combining together Series, DataFrame, and Panel objects with various kinds of set logic for the indexes and relational algebra functionality in the case of join / merge-type operations.\n" + }, + { + "metadata": { + "_uuid": "4809bb7be74c5ef657c069446ecffb409937f952", + "trusted": true + }, + "cell_type": "code", + "source": "df = pd.DataFrame([{'Name': 'MJ', 'Item Purchased': 'Sponge', 'Cost': 22.50},\n {'Name': 'Kevyn', 'Item Purchased': 'Kitty Litter', 'Cost': 2.50},\n {'Name': 'Filip', 'Item Purchased': 'Spoon', 'Cost': 5.00}],\n index=['Store 1', 'Store 1', 'Store 2'])\ndf", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f30d304abf7b7345a4e6e7c1105e190dd1a621d2", + "trusted": true + }, + "cell_type": "code", + "source": "df['Date'] = ['December 1', 'January 1', 'mid-May']\ndf", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "fbedab0057046e0510dd1331f03ffc18c9ba520b", + "trusted": true + }, + "cell_type": "code", + "source": "df['Delivered'] = True\ndf", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8ed708570d219bad3637b3a907bb0a00be33b939", + "trusted": true + }, + "cell_type": "code", + "source": "df['Feedback'] = ['Positive', None, 'Negative']\ndf", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "fc549de9e14ccf0504553ee8960442180ba895b0", + "trusted": true + }, + "cell_type": "code", + "source": "adf = df.reset_index()\nadf['Date'] = pd.Series({0: 'December 1', 2: 'mid-May'})\nadf", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "80e056750b87aa3d692e6f3aa07ca4e40ce05512", + "trusted": true + }, + "cell_type": "code", + "source": "staff_df = pd.DataFrame([{'Name': 'Kelly', 'Role': 'Director of HR'},\n {'Name': 'Sally', 'Role': 'Course liasion'},\n {'Name': 'James', 'Role': 'Grader'}])\nstaff_df = staff_df.set_index('Name')\nstudent_df = pd.DataFrame([{'Name': 'James', 'School': 'Business'},\n {'Name': 'Mike', 'School': 'Law'},\n {'Name': 'Sally', 'School': 'Engineering'}])\nstudent_df = student_df.set_index('Name')\nprint(staff_df.head())\nprint()\nprint(student_df.head())", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c0e141f46ea59c406f9c75a501139d808720bea6", + "trusted": true + }, + "cell_type": "code", + "source": "pd.merge(staff_df, student_df, how='outer', left_index=True, right_index=True)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "117f0b5ad0687b45deead65bfd2cd2e2b42aec7a", + "trusted": true + }, + "cell_type": "code", + "source": "pd.merge(staff_df, student_df, how='inner', left_index=True, right_index=True)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0fcc1d0780a0b786ffbb77e88a1e1bdc5f415a4a", + "trusted": true + }, + "cell_type": "code", + "source": "pd.merge(staff_df, student_df, how='left', left_index=True, right_index=True)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d2492a6a8108c115d1f9c980a8b01242cc695a37", + "trusted": true + }, + "cell_type": "code", + "source": "pd.merge(staff_df, student_df, how='right', left_index=True, right_index=True)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7876e8102392731c7d48123c8c5dced6693a32d2", + "trusted": true + }, + "cell_type": "code", + "source": "staff_df = staff_df.reset_index()\nstudent_df = student_df.reset_index()\npd.merge(staff_df, student_df, how='left', left_on='Name', right_on='Name')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "08c724f0bf11154a1244924bd7ca0b195fff3a21", + "trusted": true + }, + "cell_type": "code", + "source": "staff_df = pd.DataFrame([{'Name': 'Kelly', 'Role': 'Director of HR', 'Location': 'State Street'},\n {'Name': 'Sally', 'Role': 'Course liasion', 'Location': 'Washington Avenue'},\n {'Name': 'James', 'Role': 'Grader', 'Location': 'Washington Avenue'}])\nstudent_df = pd.DataFrame([{'Name': 'James', 'School': 'Business', 'Location': '1024 Billiard Avenue'},\n {'Name': 'Mike', 'School': 'Law', 'Location': 'Fraternity House #22'},\n {'Name': 'Sally', 'School': 'Engineering', 'Location': '512 Wilson Crescent'}])\npd.merge(staff_df, student_df, how='left', left_on='Name', right_on='Name')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "da1dc7a2a97543ef9d338dd45fc74b8e66f6221e", + "trusted": true + }, + "cell_type": "code", + "source": "staff_df = pd.DataFrame([{'First Name': 'Kelly', 'Last Name': 'Desjardins', 'Role': 'Director of HR'},\n {'First Name': 'Sally', 'Last Name': 'Brooks', 'Role': 'Course liasion'},\n {'First Name': 'James', 'Last Name': 'Wilde', 'Role': 'Grader'}])\nstudent_df = pd.DataFrame([{'First Name': 'James', 'Last Name': 'Hammond', 'School': 'Business'},\n {'First Name': 'Mike', 'Last Name': 'Smith', 'School': 'Law'},\n {'First Name': 'Sally', 'Last Name': 'Brooks', 'School': 'Engineering'}])\nstaff_df\nstudent_df\npd.merge(staff_df, student_df, how='inner', left_on=['First Name','Last Name'], right_on=['First Name','Last Name'])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c47476edc934d4d851254db98b156de91018a0c8" + }, + "cell_type": "markdown", + "source": "
\n# 3-4 Idiomatic Pandas: Making Code Pandorable\n" + }, + { + "metadata": { + "_uuid": "2cd537dc9b3bd93a924d808ef8d6377853dae984", + "trusted": true + }, + "cell_type": "code", + "source": "\ndf = pd.read_csv('../input/train.csv')\ndf", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6ec456b0ba8db3f621911ad4c3a36008b04cfc7f", + "trusted": true + }, + "cell_type": "code", + "source": "df = df[df['Age']==50]\ndf.set_index(['PassengerId','Survived'], inplace=True)\ndf.rename(columns={'Pclass': 'pclass'})", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ef246335b484cd563b29cafd6c178820c04a6f0f" + }, + "cell_type": "markdown", + "source": "
\n## 3-5 Pandas :Group by" + }, + { + "metadata": { + "_uuid": "b45f3ee990bce0101774749b4b81e24b81911ad6", + "trusted": true + }, + "cell_type": "code", + "source": "\ndf = pd.read_csv('../input/train.csv')\ndf = df[df['Age']==50]\ndf", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1c9afa54368039e6439950f57d39e5e0ae1faf7a", + "trusted": true + }, + "cell_type": "code", + "source": "df.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "49994af42a822d8e0ad579866d12fdcd3a7b65ba" + }, + "cell_type": "markdown", + "source": "
\n## 3-6 Pandas:Scales\n" + }, + { + "metadata": { + "_uuid": "ef0c2c453afcd5f43e37f27dd3dccd01aa7e33c0", + "trusted": true + }, + "cell_type": "code", + "source": "df = pd.DataFrame(['A+', 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D'],\n index=['excellent', 'excellent', 'excellent', 'good', 'good', 'good', 'ok', 'ok', 'ok', 'poor', 'poor'])\ndf.rename(columns={0: 'Grades'}, inplace=True)\ndf", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "cc490b8a1f851253430185eaab0d8a5ac1b843b8", + "trusted": true + }, + "cell_type": "code", + "source": "df['Grades'].astype('category').head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "388f3454ed9fcc1b88c898e329c0c2d4b062df1f", + "trusted": true + }, + "cell_type": "code", + "source": "grades = df['Grades'].astype('category',\n categories=['D', 'D+', 'C-', 'C', 'C+', 'B-', 'B', 'B+', 'A-', 'A', 'A+'],\n ordered=True)\ngrades.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "51a0c5d18dbc6c395b900c34e9e590591d671676", + "trusted": true + }, + "cell_type": "code", + "source": "grades > 'C'", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d205d889ce4d23e00f2ced7864c044e9d3d3ec84" + }, + "cell_type": "markdown", + "source": "
\n## 3-8 Pandas:Date Functionality" + }, + { + "metadata": { + "_uuid": "a466f75d44bdabf52ddb21d0c173d9421afce7d9" + }, + "cell_type": "markdown", + "source": "### 3-8-1 Timestamp" + }, + { + "metadata": { + "_uuid": "80a449e3cac139ac3b9697dba331363538a1a65f", + "trusted": true + }, + "cell_type": "code", + "source": "pd.Timestamp('9/1/2016 10:05AM')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c39545f2495d3f837c6b75dfd57b1a53c3d27d75" + }, + "cell_type": "markdown", + "source": "### 3-8-2 Period" + }, + { + "metadata": { + "_uuid": "3c160f45b74a5e4faecbf6661978e9c59e933e14", + "trusted": true + }, + "cell_type": "code", + "source": "pd.Period('1/2016')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "124c5a5ba7872ab55b3cd1fbbe18669747124eea", + "trusted": true + }, + "cell_type": "code", + "source": "pd.Period('3/5/2016')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f19b87e81ba7aa0d8adb850d75d9452cf3a73ddf" + }, + "cell_type": "markdown", + "source": "### 3-8-3 DatetimeIndex" + }, + { + "metadata": { + "_uuid": "68a99def5b8fbd9839cf35667a3481ed23c476c0", + "trusted": true + }, + "cell_type": "code", + "source": "t1 = pd.Series(list('abc'), [pd.Timestamp('2016-09-01'), pd.Timestamp('2016-09-02'), pd.Timestamp('2016-09-03')])\nt1", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "073eeeb51e53b50660a822eb7484d4e8b72a7dfa", + "trusted": true + }, + "cell_type": "code", + "source": "type(t1.index)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c891236e512838ed6088e02c88dd888029b226a3" + }, + "cell_type": "markdown", + "source": "### 3-10-4 PeriodIndex" + }, + { + "metadata": { + "_uuid": "5a19abe4e4a7324a8f7565c66f8270ab9eb3cae6", + "trusted": true + }, + "cell_type": "code", + "source": "t2 = pd.Series(list('def'), [pd.Period('2016-09'), pd.Period('2016-10'), pd.Period('2016-11')])\nt2", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "522200c3bbb47e10177f1c63a0ed3bfb49cbcf47", + "trusted": true + }, + "cell_type": "code", + "source": "type(t2.index)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "50e147a4abff8fd3014f3fb2a105f516b4a5ea2f" + }, + "cell_type": "markdown", + "source": "### 3-11 Pandas: Converting to Datetime" + }, + { + "metadata": { + "_uuid": "862d2bc5c5b430ed2be1292b9d3b5efe8a3c9cc1", + "trusted": true + }, + "cell_type": "code", + "source": "d1 = ['2 June 2013', 'Aug 29, 2014', '2015-06-26', '7/12/16']\nts3 = pd.DataFrame(np.random.randint(10, 100, (4,2)), index=d1, columns=list('ab'))\nts3", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "840963eeb8ca7bfe0a5d3167211e74d48446fe3a", + "trusted": true + }, + "cell_type": "code", + "source": "ts3.index = pd.to_datetime(ts3.index)\nts3", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e2482002fae0947549bdd81a3da93c8e0cde40fe", + "trusted": true + }, + "cell_type": "code", + "source": "pd.to_datetime('4.7.12', dayfirst=True)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "cae5847092e33cba7b657a90810a7ef35ae307e4", + "trusted": true + }, + "cell_type": "code", + "source": "pd.Timestamp('9/3/2016')-pd.Timestamp('9/1/2016')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c54a7d88507df86710fc585582b2074cb8d5aa5a" + }, + "cell_type": "markdown", + "source": "### 3-10-6 Timedeltas" + }, + { + "metadata": { + "_uuid": "fe333509538c1ec2bf81fda4613344cfa699b410", + "trusted": true + }, + "cell_type": "code", + "source": "pd.Timestamp('9/3/2016')-pd.Timestamp('9/1/2016')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "08e10cce4428eaa329eb84677c755b0307488bfa", + "trusted": true + }, + "cell_type": "code", + "source": "pd.Timestamp('9/2/2016 8:10AM') + pd.Timedelta('12D 3H')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a73485dcf7310c754e69ab5ed802d7e466684242" + }, + "cell_type": "markdown", + "source": "### 3-10-7 Working with Dates in a Dataframe\n" + }, + { + "metadata": { + "_uuid": "f5bcbc00ce23e50d346495588428e5d6f430a8df", + "trusted": true + }, + "cell_type": "code", + "source": "dates = pd.date_range('10-01-2016', periods=9, freq='2W-SUN')\ndates", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "41df9aeeb10a2d404f1eada62b4a4066e0f37af0", + "trusted": true + }, + "cell_type": "code", + "source": "df.index.ravel", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2f7c5d5041dc630abeaff47ff5a96a0dd53db8e5" + }, + "cell_type": "markdown", + "source": "
\n## 3-11 Distributions in Pandas" + }, + { + "metadata": { + "_uuid": "96be284ba6d63fd0b1db5641a21d75aacdfb7da4", + "trusted": true + }, + "cell_type": "code", + "source": "np.random.binomial(1, 0.5)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "4ae2c7ff2cf941bae62be23864a1685a196551d0", + "trusted": true + }, + "cell_type": "code", + "source": "np.random.binomial(1000, 0.5)/1000", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c5e89f6f0c7376c164f80dc4c5d582b0a639e254", + "trusted": true + }, + "cell_type": "code", + "source": "chance_of_tornado = 0.01/100\nnp.random.binomial(100000, chance_of_tornado)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7804824638e0e6e97ebe5a252806d51a4e5cac2c", + "trusted": true + }, + "cell_type": "code", + "source": "chance_of_tornado = 0.01\n\ntornado_events = np.random.binomial(1, chance_of_tornado, 1000000)\n \ntwo_days_in_a_row = 0\nfor j in range(1,len(tornado_events)-1):\n if tornado_events[j]==1 and tornado_events[j-1]==1:\n two_days_in_a_row+=1\n\nprint('{} tornadoes back to back in {} years'.format(two_days_in_a_row, 1000000/365))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "4583c0a0ec05e914af1c01e2c901da41828ad653", + "trusted": true + }, + "cell_type": "code", + "source": "np.random.uniform(0, 1)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "365cfd6e6602f46bc98c13d10a47ad1d98af978e", + "trusted": true + }, + "cell_type": "code", + "source": "np.random.normal(0.75)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8091adda4fbdccffb73424476c68a7aa0fb53c9a", + "trusted": true + }, + "cell_type": "code", + "source": "distribution = np.random.normal(0.75,size=1000)\n\nnp.sqrt(np.sum((np.mean(distribution)-distribution)**2)/len(distribution))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9eed1ac016763a69de465e82736d30d7e5b1d028", + "trusted": true + }, + "cell_type": "code", + "source": "np.std(distribution)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ab89e527fcd900577d879b50272d400ae0bdbaa0", + "trusted": true + }, + "cell_type": "code", + "source": "\nstats.kurtosis(distribution)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c974e2563460f9b4942ab8c9b1d1783479779fa5", + "trusted": true + }, + "cell_type": "code", + "source": "stats.skew(distribution)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "de01fc7f82016eeb5f3b206788e7213ad373a441", + "trusted": true + }, + "cell_type": "code", + "source": "chi_squared_df2 = np.random.chisquare(2, size=10000)\nstats.skew(chi_squared_df2)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d8cce6278eaf4b4865efebf34dfb4ec2d9b684ca", + "trusted": true + }, + "cell_type": "code", + "source": "chi_squared_df5 = np.random.chisquare(5, size=10000)\nstats.skew(chi_squared_df5)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1c30298fc2dcd63dface93cb1626c5e7367d4698", + "trusted": true + }, + "cell_type": "code", + "source": "output = plt.hist([chi_squared_df2,chi_squared_df5], bins=50, histtype='step', \n label=['2 degrees of freedom','5 degrees of freedom'])\nplt.legend(loc='upper right')\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "4f02c235284ef14f0007400125119ba36b81e325" + }, + "cell_type": "markdown", + "source": "
\n## 4- Matplotlib\n\nThis Matplotlib tutorial takes you through the basics Python data visualization: the anatomy of a plot, pyplot and pylab, and much more" + }, + { + "metadata": { + "_uuid": "857d9a02e72211b4fde6f06debd3a57c8a0b1849" + }, + "cell_type": "markdown", + "source": "You can show matplotlib figures directly in the notebook by using the `%matplotlib notebook` and `%matplotlib inline` magic commands. \n\n`%matplotlib notebook` provides an interactive environment." + }, + { + "metadata": { + "_uuid": "0d66eabe3f4f7288f12f8f0160b2f8e914d16ba9", + "trusted": true + }, + "cell_type": "code", + "source": "# because the default is the line style '-', \n# nothing will be shown if we only pass in one point (3,2)\nplt.plot(3, 2)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "dad68ac5985444a4458259c448d1b6ffd9bf1710", + "trusted": true + }, + "cell_type": "code", + "source": "# we can pass in '.' to plt.plot to indicate that we want\n# the point (3,2) to be indicated with a marker '.'\nplt.plot(3, 2, '.')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "18c4b411903becff1b3612730bc0287cb6ac14ad" + }, + "cell_type": "markdown", + "source": "Let's see how to make a plot without using the scripting layer." + }, + { + "metadata": { + "_uuid": "8f1bd139edb5cf1cc73f9f956d2d34844a726566", + "trusted": true + }, + "cell_type": "code", + "source": "# First let's set the backend without using mpl.use() from the scripting layer\nfrom matplotlib.backends.backend_agg import FigureCanvasAgg\nfrom matplotlib.figure import Figure\n\n# create a new figure\nfig = Figure()\n\n# associate fig with the backend\ncanvas = FigureCanvasAgg(fig)\n\n# add a subplot to the fig\nax = fig.add_subplot(111)\n\n# plot the point (3,2)\nax.plot(3, 2, '.')\n\n# save the figure to test.png\n# you can see this figure in your Jupyter workspace afterwards by going to\n# https://hub.coursera-notebooks.org/\ncanvas.print_png('test.png')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "66c8f302e0afffb4652ff2f80212610fd37ae126" + }, + "cell_type": "markdown", + "source": "We can use html cell magic to display the image." + }, + { + "metadata": { + "_uuid": "d43abba30465cee9dc1364fd2a27334c70da8598", + "trusted": true + }, + "cell_type": "code", + "source": "%%html\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2c76e50e3ecda1fe2144f16b9c9fdaa6bca37c61", + "trusted": true + }, + "cell_type": "code", + "source": "# create a new figure\nplt.figure()\n\n# plot the point (3,2) using the circle marker\nplt.plot(3, 2, 'o')\n\n# get the current axes\nax = plt.gca()\n\n# Set axis properties [xmin, xmax, ymin, ymax]\nax.axis([0,6,0,10])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0cc553845bb24ead8e57b5ccc59c6753a847f136", + "trusted": true + }, + "cell_type": "code", + "source": "# create a new figure\nplt.figure()\n\n# plot the point (1.5, 1.5) using the circle marker\nplt.plot(1.5, 1.5, 'o')\n# plot the point (2, 2) using the circle marker\nplt.plot(2, 2, 'o')\n# plot the point (2.5, 2.5) using the circle marker\nplt.plot(2.5, 2.5, 'o')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "41cc8f299ccc6825cf1ac49a8bc2039496bcc9a9", + "trusted": true + }, + "cell_type": "code", + "source": "# get current axes\nax = plt.gca()\n# get all the child objects the axes contains\nax.get_children()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "add973c3905be06ebae9f033070ee779f58dd785" + }, + "cell_type": "code", + "source": "\nplt.plot([1, 2, 3, 4], [10, 20, 25, 30], color='lightblue', linewidth=3)\nplt.scatter([0.3, 3.8, 1.2, 2.5], [11, 25, 9, 26], color='darkgreen', marker='^')\nplt.xlim(0.5, 4.5)\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0f4decd6f93319534a203748fd8a2b9bcc154ddb" + }, + "cell_type": "markdown", + "source": "
\n## 4-1 Scatterplots" + }, + { + "metadata": { + "_uuid": "bf892e30bb09f0dc5fdf039d827ac55560b6ec06", + "trusted": true + }, + "cell_type": "code", + "source": "\n\nx = np.array([1,2,3,4,5,6,7,8])\ny = x\n\nplt.figure()\nplt.scatter(x, y) # similar to plt.plot(x, y, '.'), but the underlying child objects in the axes are not Line2D", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9d4e979c8b366aa6e511a6d7316f63586346c649", + "trusted": true + }, + "cell_type": "code", + "source": "\n\nx = np.array([1,2,3,4,5,6,7,8])\ny = x\n\n# create a list of colors for each point to have\n# ['green', 'green', 'green', 'green', 'green', 'green', 'green', 'red']\ncolors = ['green']*(len(x)-1)\ncolors.append('red')\n\nplt.figure()\n\n# plot the point with size 100 and chosen colors\nplt.scatter(x, y, s=100, c=colors)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "935be30b9a6a7c78b58fe1a9c6e4690c494fb697", + "trusted": true + }, + "cell_type": "code", + "source": "# convert the two lists into a list of pairwise tuples\nzip_generator = zip([1,2,3,4,5], [6,7,8,9,10])\n\nprint(list(zip_generator))\n# the above prints:\n# [(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]\n\nzip_generator = zip([1,2,3,4,5], [6,7,8,9,10])\n# The single star * unpacks a collection into positional arguments\nprint(*zip_generator)\n# the above prints:\n# (1, 6) (2, 7) (3, 8) (4, 9) (5, 10)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d6f848fc8d0879c658a6a4e90ca533bddf3be6e3", + "trusted": true + }, + "cell_type": "code", + "source": "# use zip to convert 5 tuples with 2 elements each to 2 tuples with 5 elements each\nprint(list(zip((1, 6), (2, 7), (3, 8), (4, 9), (5, 10))))\n# the above prints:\n# [(1, 2, 3, 4, 5), (6, 7, 8, 9, 10)]\n\n\nzip_generator = zip([1,2,3,4,5], [6,7,8,9,10])\n# let's turn the data back into 2 lists\nx, y = zip(*zip_generator) # This is like calling zip((1, 6), (2, 7), (3, 8), (4, 9), (5, 10))\nprint(x)\nprint(y)\n# the above prints:\n# (1, 2, 3, 4, 5)\n# (6, 7, 8, 9, 10)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b9c79e1558adbb3b19de2564376a24191766ab1f", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure()\n# plot a data series 'Tall students' in red using the first two elements of x and y\nplt.scatter(x[:2], y[:2], s=100, c='red', label='Tall students')\n# plot a second data series 'Short students' in blue using the last three elements of x and y \nplt.scatter(x[2:], y[2:], s=100, c='blue', label='Short students')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "70731835527ce5a16e4a8bd2a0017e3bbe8065ee", + "trusted": true + }, + "cell_type": "code", + "source": "# add a label to the x axis\nplt.xlabel('The number of times the child kicked a ball')\n# add a label to the y axis\nplt.ylabel('The grade of the student')\n# add a title\nplt.title('Relationship between ball kicking and grades')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "691db571df12646a4fe2740e55a43942ea779063", + "trusted": true + }, + "cell_type": "code", + "source": "# add a legend (uses the labels from plt.scatter)\nplt.legend()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0908d7c94c14feb08f953e5cd10f31cb0081f5d3", + "trusted": true + }, + "cell_type": "code", + "source": "# add the legend to loc=4 (the lower right hand corner), also gets rid of the frame and adds a title\nplt.legend(loc=4, frameon=False, title='Legend')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0eb79626b7b55559e40ca71ba5c3542466b629c9", + "trusted": true + }, + "cell_type": "code", + "source": "# get children from current axes (the legend is the second to last item in this list)\nplt.gca().get_children()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f2b5d97457e3ebd63311aef5b92fc137bd1701f5", + "trusted": true + }, + "cell_type": "code", + "source": "# get the legend from the current axes\nlegend = plt.gca().get_children()[-2]", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5334176f4177a64cb1726accb26502beb9b36626", + "trusted": true + }, + "cell_type": "code", + "source": "x = np.random.randint(low=1, high=11, size=50)\ny = x + np.random.randint(1, 5, size=x.size)\ndata = np.column_stack((x, y))\n\nfig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2,\n figsize=(8, 4))\n\nax1.scatter(x=x, y=y, marker='o', c='r', edgecolor='b')\nax1.set_title('Scatter: $x$ versus $y$')\nax1.set_xlabel('$x$')\nax1.set_ylabel('$y$')\n\nax2.hist(data, bins=np.arange(data.min(), data.max()),\n label=('x', 'y'))\nax2.legend(loc=(0.65, 0.8))\nax2.set_title('Frequencies of $x$ and $y$')\nax2.yaxis.tick_right()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c372afa727e992b9ec097c1f172becfd06bff4ef" + }, + "cell_type": "markdown", + "source": "
\n## 4-2 Line Plots" + }, + { + "metadata": { + "_uuid": "163942ca710e3c67e8479cd02518ca37eae8ead7", + "trusted": true + }, + "cell_type": "code", + "source": "\n\nlinear_data = np.array([1,2,3,4,5,6,7,8])\nexponential_data = linear_data**2\n\nplt.figure()\n# plot the linear data and the exponential data\nplt.plot(linear_data, '-o', exponential_data, '-o')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7a4c6677b81fb82e1e7a1164ced70c4168080dbf", + "trusted": true + }, + "cell_type": "code", + "source": "# plot another series with a dashed red line\nplt.plot([22,44,55], '--r')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "517e72eb500a3ba4db76467919f59ded9d3683cb" + }, + "cell_type": "markdown", + "source": "
\n## 4-3 Bar Charts" + }, + { + "metadata": { + "_uuid": "8a5ee722c74c9228af2bcece24831e1539fe97b2", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure()\nxvals = range(len(linear_data))\nplt.bar(xvals, linear_data, width = 0.3)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "11a85a29ca9b1574536bfee91cc63122148d996e", + "trusted": true + }, + "cell_type": "code", + "source": "new_xvals = []\n\n# plot another set of bars, adjusting the new xvals to make up for the first set of bars plotted\nfor item in xvals:\n new_xvals.append(item+0.3)\n\nplt.bar(new_xvals, exponential_data, width = 0.3 ,color='red')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f6597010276961362ce22b84d49a9ef5f46521f6", + "trusted": true + }, + "cell_type": "code", + "source": "from random import randint\nlinear_err = [randint(0,15) for x in range(len(linear_data))] \n\n# This will plot a new set of bars with errorbars using the list of random error values\nplt.bar(xvals, linear_data, width = 0.3, yerr=linear_err)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8db2b0bb5d4160f7954bbcd7d9e53d29c68ef342", + "trusted": true + }, + "cell_type": "code", + "source": "# stacked bar charts are also possible\nplt.figure()\nxvals = range(len(linear_data))\nplt.bar(xvals, linear_data, width = 0.3, color='b')\nplt.bar(xvals, exponential_data, width = 0.3, bottom=linear_data, color='r')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ee208f2f850122b6e01ff1236b2915914fe59466", + "trusted": true + }, + "cell_type": "code", + "source": "# or use barh for horizontal bar charts\nplt.figure()\nxvals = range(len(linear_data))\nplt.barh(xvals, linear_data, height = 0.3, color='b')\nplt.barh(xvals, exponential_data, height = 0.3, left=linear_data, color='r')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "acd3cfbdedddae19d7a2bbc9b02fefba21f595de" + }, + "cell_type": "code", + "source": "\n\n# Initialize the plot\nfig = plt.figure(figsize=(20,10))\nax1 = fig.add_subplot(121)\nax2 = fig.add_subplot(122)\n\n# or replace the three lines of code above by the following line: \n#fig, (ax1, ax2) = plt.subplots(1,2, figsize=(20,10))\n\n# Plot the data\nax1.bar([1,2,3],[3,4,5])\nax2.barh([0.5,1,2.5],[0,1,2])\n\n# Show the plot\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "db3db00430b8e5ddb633f3c7c82a6bf63ccb0cbc", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure()\n# subplot with 1 row, 2 columns, and current axis is 1st subplot axes\nplt.subplot(1, 2, 1)\n\nlinear_data = np.array([1,2,3,4,5,6,7,8])\n\nplt.plot(linear_data, '-o')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ce5372a8e09fd5379b1b33c7b451ec1b983f8616", + "trusted": true + }, + "cell_type": "code", + "source": "exponential_data = linear_data**2 \n\n# subplot with 1 row, 2 columns, and current axis is 2nd subplot axes\nplt.subplot(1, 2, 2)\nplt.plot(exponential_data, '-o')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "cc4de0125429bdcd3227e894d083c0425934b228", + "trusted": true + }, + "cell_type": "code", + "source": "# plot exponential data on 1st subplot axes\nplt.subplot(1, 2, 1)\nplt.plot(exponential_data, '-x')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0b565e5356d99d5875de88a853710ee2dd3c4a53", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure()\nax1 = plt.subplot(1, 2, 1)\nplt.plot(linear_data, '-o')\n# pass sharey=ax1 to ensure the two subplots share the same y axis\nax2 = plt.subplot(1, 2, 2, sharey=ax1)\nplt.plot(exponential_data, '-x')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ec35c2bab0a1debaa6420f15b929d127d0d5f8cd", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure()\n# the right hand side is equivalent shorthand syntax\nplt.subplot(1,2,1) == plt.subplot(121)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "43bb9cbc7acd94927be086a66ad913bd0a796fc5", + "trusted": true + }, + "cell_type": "code", + "source": "# create a 3x3 grid of subplots\nfig, ((ax1,ax2,ax3), (ax4,ax5,ax6), (ax7,ax8,ax9)) = plt.subplots(3, 3, sharex=True, sharey=True)\n# plot the linear_data on the 5th subplot axes \nax5.plot(linear_data, '-')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ec95c476865ba15ca11e2ef4a1ba466a9212f9b9", + "trusted": true + }, + "cell_type": "code", + "source": "# set inside tick labels to visible\nfor ax in plt.gcf().get_axes():\n for label in ax.get_xticklabels() + ax.get_yticklabels():\n label.set_visible(True)\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "161be784e0c413060709d21a160985ad798b40f8", + "trusted": true + }, + "cell_type": "code", + "source": "# necessary on some systems to update the plot\nplt.gcf().canvas.draw()\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "487fb5e77983c55ae891c3a99537d6cef0450b74" + }, + "cell_type": "markdown", + "source": "
\n## 4-4 Histograms" + }, + { + "metadata": { + "_uuid": "42551850b478e274b9f78d4f6ef717c636242616", + "trusted": true + }, + "cell_type": "code", + "source": "# create 2x2 grid of axis subplots\nfig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, sharex=True)\naxs = [ax1,ax2,ax3,ax4]\n\n# draw n = 10, 100, 1000, and 10000 samples from the normal distribution and plot corresponding histograms\nfor n in range(0,len(axs)):\n sample_size = 10**(n+1)\n sample = np.random.normal(loc=0.0, scale=1.0, size=sample_size)\n axs[n].hist(sample)\n axs[n].set_title('n={}'.format(sample_size))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "39b84012b223069dd4cc6f1441d2ad0f585218bf", + "trusted": true + }, + "cell_type": "code", + "source": "# repeat with number of bins set to 100\nfig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, sharex=True)\naxs = [ax1,ax2,ax3,ax4]\n\nfor n in range(0,len(axs)):\n sample_size = 10**(n+1)\n sample = np.random.normal(loc=0.0, scale=1.0, size=sample_size)\n axs[n].hist(sample, bins=100)\n axs[n].set_title('n={}'.format(sample_size))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "4def4012769663b5665f7b70a077cf839b7793f1", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure()\nY = np.random.normal(loc=0.0, scale=1.0, size=10000)\nX = np.random.random(size=10000)\nplt.scatter(X,Y)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f6304a7d71b6edf6894e93bc62ad9ee4ffb0cce1", + "trusted": true + }, + "cell_type": "code", + "source": "# use gridspec to partition the figure into subplots\nimport matplotlib.gridspec as gridspec\n\nplt.figure()\ngspec = gridspec.GridSpec(3, 3)\n\ntop_histogram = plt.subplot(gspec[0, 1:])\nside_histogram = plt.subplot(gspec[1:, 0])\nlower_right = plt.subplot(gspec[1:, 1:])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2a8f66c5169fcabafafa104e87897f175624245e", + "trusted": true + }, + "cell_type": "code", + "source": "Y = np.random.normal(loc=0.0, scale=1.0, size=10000)\nX = np.random.random(size=10000)\nlower_right.scatter(X, Y)\ntop_histogram.hist(X, bins=100)\ns = side_histogram.hist(Y, bins=100, orientation='horizontal')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "97062a938d44626006bd9e24b5893fdf9d98155d", + "trusted": true + }, + "cell_type": "code", + "source": "# clear the histograms and plot normed histograms\ntop_histogram.clear()\ntop_histogram.hist(X, bins=100, normed=True)\nside_histogram.clear()\nside_histogram.hist(Y, bins=100, orientation='horizontal', normed=True)\n# flip the side histogram's x axis\nside_histogram.invert_xaxis()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e6b1208bb887180b8f0363c9e82cc6fcbf387698", + "trusted": true + }, + "cell_type": "code", + "source": "# change axes limits\nfor ax in [top_histogram, lower_right]:\n ax.set_xlim(0, 1)\nfor ax in [side_histogram, lower_right]:\n ax.set_ylim(-5, 5)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2bc0c6fc0bb19748e9e87603e3207f75ffa9b565" + }, + "cell_type": "markdown", + "source": "
\n## 4-5 Box and Whisker Plots" + }, + { + "metadata": { + "_uuid": "94dad21ec08e2633dacb64a89e5c807145042994", + "trusted": true + }, + "cell_type": "code", + "source": "\nnormal_sample = np.random.normal(loc=0.0, scale=1.0, size=10000)\nrandom_sample = np.random.random(size=10000)\ngamma_sample = np.random.gamma(2, size=10000)\n\ndf = pd.DataFrame({'normal': normal_sample, \n 'random': random_sample, \n 'gamma': gamma_sample})", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "87c08a9f914647f1735cb4b835b80f645685ef1e", + "trusted": true + }, + "cell_type": "code", + "source": "df.describe()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9f4b288fe4b8ab78e6ad788e4bcfb5931920fcf2", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure()\n# create a boxplot of the normal data, assign the output to a variable to supress output\n_ = plt.boxplot(df['normal'], whis='range')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9dc56a6415be6584fba51630ced26b0aaa486a09", + "trusted": true + }, + "cell_type": "code", + "source": "# clear the current figure\nplt.clf()\n# plot boxplots for all three of df's columns\n_ = plt.boxplot([ df['normal'], df['random'], df['gamma'] ], whis='range')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0f44453d7022928d2aeed3c3e0126cbd7118cdd9", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure()\n_ = plt.hist(df['gamma'], bins=100)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "4dba4f705171f002fc94429ec80f7b6a2fe67ff3", + "trusted": true + }, + "cell_type": "code", + "source": "import mpl_toolkits.axes_grid1.inset_locator as mpl_il\n\nplt.figure()\nplt.boxplot([ df['normal'], df['random'], df['gamma'] ], whis='range')\n# overlay axis on top of another \nax2 = mpl_il.inset_axes(plt.gca(), width='60%', height='40%', loc=2)\nax2.hist(df['gamma'], bins=100)\nax2.margins(x=0.5)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "90b1e8ffe23e39ec54414c1fd63b5d5c4e72be6f", + "trusted": true + }, + "cell_type": "code", + "source": "# switch the y axis ticks for ax2 to the right side\nax2.yaxis.tick_right()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "cb3652a440484d391d27122878456a642c58d804", + "trusted": true + }, + "cell_type": "code", + "source": "# if `whis` argument isn't passed, boxplot defaults to showing 1.5*interquartile (IQR) whiskers with outliers\nplt.figure()\n_ = plt.boxplot([ df['normal'], df['random'], df['gamma'] ] )", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "fbf8bf0a67f6c49d78911c5f37be531ebbcd9edb" + }, + "cell_type": "markdown", + "source": "
\n## 4-6 Heatmaps" + }, + { + "metadata": { + "_uuid": "ebfc0dcb8e85aa540f6568fa96431a4e9707f3c1", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure()\n\nY = np.random.normal(loc=0.0, scale=1.0, size=10000)\nX = np.random.random(size=10000)\n_ = plt.hist2d(X, Y, bins=25)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "fdbcf35950f94a4d0f1ce10efee6a4502f6ecfc8", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure()\n_ = plt.hist2d(X, Y, bins=100)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "139f44a4deb043128c8c7254eb60c33e0fc26e68" + }, + "cell_type": "markdown", + "source": "
\n## 4-7 Animations" + }, + { + "metadata": { + "_uuid": "b3676970195153dc6056600f024f55c1b6f0ba12", + "trusted": true + }, + "cell_type": "code", + "source": "import matplotlib.animation as animation\n\nn = 100\nx = np.random.randn(n)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ea3eb5835e4acd53d43da483e17d79c32228cad6", + "trusted": true + }, + "cell_type": "code", + "source": "# create the function that will do the plotting, where curr is the current frame\ndef update(curr):\n # check if animation is at the last frame, and if so, stop the animation a\n if curr == n: \n a.event_source.stop()\n plt.cla()\n bins = np.arange(-4, 4, 0.5)\n plt.hist(x[:curr], bins=bins)\n plt.axis([-4,4,0,30])\n plt.gca().set_title('Sampling the Normal Distribution')\n plt.gca().set_ylabel('Frequency')\n plt.gca().set_xlabel('Value')\n plt.annotate('n = {}'.format(curr), [3,27])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "fb2314b3b1735c5e191c8427c5abe6429e4ff767", + "trusted": true + }, + "cell_type": "code", + "source": "fig = plt.figure()\na = animation.FuncAnimation(fig, update, interval=100)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7e702e5e0a876f9fa0b2e4fe497a56b91e00a95d" + }, + "cell_type": "markdown", + "source": "
\n## 4-8 Interactivity" + }, + { + "metadata": { + "_uuid": "51fefb947daf8ca558cbc153e2ddbf39bcb7d4b2", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure()\ndata = np.random.rand(10)\nplt.plot(data)\n\ndef onclick(event):\n plt.cla()\n plt.plot(data)\n plt.gca().set_title('Event at pixels {},{} \\nand data {},{}'.format(event.x, event.y, event.xdata, event.ydata))\n\n# tell mpl_connect we want to pass a 'button_press_event' into onclick when the event is detected\nplt.gcf().canvas.mpl_connect('button_press_event', onclick)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1d64a25dc386a30bd895ca8f58ca86d632f05d74", + "trusted": true + }, + "cell_type": "code", + "source": "from random import shuffle\norigins = ['China', 'Brazil', 'India', 'USA', 'Canada', 'UK', 'Germany', 'Iraq', 'Chile', 'Mexico']\n\nshuffle(origins)\n\ndf = pd.DataFrame({'height': np.random.rand(10),\n 'weight': np.random.rand(10),\n 'origin': origins})\ndf", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e13dd7e002938af1a52d7520004d839a3d7d2011", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure()\n# picker=5 means the mouse doesn't have to click directly on an event, but can be up to 5 pixels away\nplt.scatter(df['height'], df['weight'], picker=5)\nplt.gca().set_ylabel('Weight')\nplt.gca().set_xlabel('Height')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e926ab1d2dc2098a6af48526e9f980bf594c79cd", + "trusted": true + }, + "cell_type": "code", + "source": "def onpick(event):\n origin = df.iloc[event.ind[0]]['origin']\n plt.gca().set_title('Selected item came from {}'.format(origin))\n\n# tell mpl_connect we want to pass a 'pick_event' into onpick when the event is detected\nplt.gcf().canvas.mpl_connect('pick_event', onpick)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "bb968584c16b9acc6466a3897c9415c57f3a7404", + "trusted": true + }, + "cell_type": "code", + "source": "# use the 'seaborn-colorblind' style\nplt.style.use('seaborn-colorblind')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "84742816a16280f7bca7c43879d6762e10e0a440" + }, + "cell_type": "markdown", + "source": "
\n### 4-9 DataFrame.plot" + }, + { + "metadata": { + "_uuid": "97a3554f9640a2b77e07c861b5a5b6c814a3b276", + "trusted": true + }, + "cell_type": "code", + "source": "np.random.seed(123)\n\ndf = pd.DataFrame({'A': np.random.randn(365).cumsum(0), \n 'B': np.random.randn(365).cumsum(0) + 20,\n 'C': np.random.randn(365).cumsum(0) - 20}, \n index=pd.date_range('1/1/2017', periods=365))\ndf.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "4d64fa4bc8b62fe1f4d2c2de0869bb49c8f7fc3d", + "trusted": true + }, + "cell_type": "code", + "source": "df.plot('A','B', kind = 'scatter');", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "857cecae1e2c9eb59c1a9d136ef1c5422d86d5ba" + }, + "cell_type": "markdown", + "source": "You can also choose the plot kind by using the `DataFrame.plot.kind` methods instead of providing the `kind` keyword argument.\n\n`kind` :\n- `'line'` : line plot (default)\n- `'bar'` : vertical bar plot\n- `'barh'` : horizontal bar plot\n- `'hist'` : histogram\n- `'box'` : boxplot\n- `'kde'` : Kernel Density Estimation plot\n- `'density'` : same as 'kde'\n- `'area'` : area plot\n- `'pie'` : pie plot\n- `'scatter'` : scatter plot\n- `'hexbin'` : hexbin plot" + }, + { + "metadata": { + "_uuid": "74997530957394a96f0aed15c21e65f54911159c", + "trusted": true + }, + "cell_type": "code", + "source": "# create a scatter plot of columns 'A' and 'C', with changing color (c) and size (s) based on column 'B'\ndf.plot.scatter('A', 'C', c='B', s=df['B'], colormap='viridis')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6299f8dddb909c7850620499edc49afdfd909f75", + "trusted": true + }, + "cell_type": "code", + "source": "ax = df.plot.scatter('A', 'C', c='B', s=df['B'], colormap='viridis')\nax.set_aspect('equal')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "91a25480397c8759047100da9ebc6c0264d8a918", + "trusted": true + }, + "cell_type": "code", + "source": "df.plot.box();", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b7bfa0ce17ea260d75eb97a0161af3dbd700f780", + "trusted": true + }, + "cell_type": "code", + "source": "df.plot.hist(alpha=0.7);", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "21a68cb3d0111753d29df2b402011daff81c5ff4" + }, + "cell_type": "markdown", + "source": "[Kernel density estimation plots](https://en.wikipedia.org/wiki/Kernel_density_estimation) are useful for deriving a smooth continuous function from a given sample." + }, + { + "metadata": { + "_uuid": "7b4d0f65af26e55acaf9a06da13dc71eb21a408b", + "trusted": true + }, + "cell_type": "code", + "source": "df.plot.kde();", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "68f7c4b8c85e6e28d978f11adbd9b54223d58538" + }, + "cell_type": "markdown", + "source": "
\n# 5- Seaborn\n\nAs you have just read, **Seaborn** is complimentary to Matplotlib and it specifically targets statistical data visualization. But it goes even further than that: Seaborn extends Matplotlib and that’s why it can address the two biggest frustrations of working with Matplotlib. Or, as Michael Waskom says in the “introduction to Seaborn”: “If matplotlib “tries to make easy things easy and hard things possible”, seaborn tries to make a well-defined set of hard things easy too.”\n\nOne of these hard things or frustrations had to do with the default Matplotlib parameters. Seaborn works with different parameters, which undoubtedly speaks to those users that don’t use the default looks of the Matplotlib plots\nSeaborn is a library for making statistical graphics in Python. It is built on top of matplotlib and closely integrated with pandas data structures.\n\nHere is some of the functionality that seaborn offers:\n\nA dataset-oriented API for examining relationships between multiple variables\nSpecialized support for using categorical variables to show observations or aggregate statistics\nOptions for visualizing univariate or bivariate distributions and for comparing them between subsets of data\nAutomatic estimation and plotting of linear regression models for different kinds dependent variables\nConvenient views onto the overall structure of complex datasets\nHigh-level abstractions for structuring multi-plot grids that let you easily build complex visualizations\nConcise control over matplotlib figure styling with several built-in themes\nTools for choosing color palettes that faithfully reveal patterns in your data\nSeaborn aims to make visualization a central part of exploring and understanding data. Its dataset-oriented plotting functions operate on dataframes and arrays containing whole datasets and internally perform the necessary semantic mapping and statistical aggregation to produce informative plots.\n\nHere’s an example of what this means:" + }, + { + "metadata": { + "_uuid": "ad6fd29ef151c7625da19a38a8ef9b24b353427f" + }, + "cell_type": "markdown", + "source": "
\n## 5-1 Seaborn Vs Matplotlib\n\nIt is summarized that if Matplotlib “tries to make easy things easy and hard things possible”, Seaborn tries to make a well defined set of hard things easy too.”\n\nSeaborn helps resolve the two major problems faced by Matplotlib; the problems are\n\n* Default Matplotlib parameters\n* Working with data frames\n\nAs Seaborn compliments and extends Matplotlib, the learning curve is quite gradual. If you know Matplotlib, you are already half way through Seaborn.\n\nImportant Features of Seaborn\nSeaborn is built on top of Python’s core visualization library Matplotlib. It is meant to serve as a complement, and not a replacement. However, Seaborn comes with some very important features. Let us see a few of them here. The features help in −\n\n* Built in themes for styling matplotlib graphics\n* Visualizing univariate and bivariate data\n* Fitting in and visualizing linear regression models\n* Plotting statistical time series data\n* Seaborn works well with NumPy and Pandas data structures\n* It comes with built in themes for styling Matplotlib graphics\n\nIn most cases, you will still use Matplotlib for simple plotting. The knowledge of Matplotlib is recommended to tweak Seaborn’s default plots." + }, + { + "metadata": { + "trusted": true, + "_uuid": "43b3d518ca544a9eac820327635535b04fba563f" + }, + "cell_type": "code", + "source": "def sinplot(flip = 1):\n x = np.linspace(0, 14, 100)\n for i in range(1, 5): \n plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)\nsinplot()\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "3b82e364e3599e9979d62bc70c8058d4d60a3fc8" + }, + "cell_type": "code", + "source": "def sinplot(flip = 1):\n x = np.linspace(0, 14, 100)\n for i in range(1, 5):\n plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)\n \nsns.set()\nsinplot()\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a78ee6a9554ff6a42f4d584d00f700c63b3945cb", + "trusted": true + }, + "cell_type": "code", + "source": "np.random.seed(1234)\n\nv1 = pd.Series(np.random.normal(0,10,1000), name='v1')\nv2 = pd.Series(2*v1 + np.random.normal(60,15,1000), name='v2')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ee4e031c263014b7d16c96351bbec7503ea16fbf", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure()\nplt.hist(v1, alpha=0.7, bins=np.arange(-50,150,5), label='v1');\nplt.hist(v2, alpha=0.7, bins=np.arange(-50,150,5), label='v2');\nplt.legend();", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "67dcace37ccbc4ebbb58297ad5b09c4edcbc32e8", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure()\n# we can pass keyword arguments for each individual component of the plot\nsns.distplot(v2, hist_kws={'color': 'Teal'}, kde_kws={'color': 'Navy'});", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7bc165c0ea4d4f20a5975bd71a81e203afae0feb", + "trusted": true + }, + "cell_type": "code", + "source": "sns.jointplot(v1, v2, alpha=0.4);", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "ee8e1e256786a02ada1f55233695ac507c05558e", + "trusted": true + }, + "cell_type": "code", + "source": "grid = sns.jointplot(v1, v2, alpha=0.4);\ngrid.ax_joint.set_aspect('equal')", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b25a62cb3ddf0be742e2465d20c9f69bc8062a95", + "trusted": true + }, + "cell_type": "code", + "source": "sns.jointplot(v1, v2, kind='hex');", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "28893e60d141b295029b9414d6f4ac3fece7c43a", + "trusted": true + }, + "cell_type": "code", + "source": "# set the seaborn style for all the following plots\nsns.set_style('white')\n\nsns.jointplot(v1, v2, kind='kde', space=0);", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9eef5ff46fbf313f209a35ea44bce3b0d85e5966", + "trusted": true + }, + "cell_type": "code", + "source": "train = pd.read_csv('../input/train.csv')\ntrain.head()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5587ea1eec62478c9970831d2886c4cca9237257" + }, + "cell_type": "markdown", + "source": "## 5-2 10 Useful Python Data Visualization Libraries" + }, + { + "metadata": { + "_uuid": "c1c287a60f1c634dc68b18165ca6ee4df415320c" + }, + "cell_type": "markdown", + "source": "I am giving an overview of 10 interdisciplinary Python data visualization libraries, from the well-known to the obscure.\n\n* 1- matplotlib\n\nmatplotlib is the O.G. of Python data visualization libraries. Despite being over a decade old, it’s still the most widely used library for plotting in the Python community. It was designed to closely resemble MATLAB, a proprietary programming language developed in the 1980s.\n\n* 2- Seaborn\n\nSeaborn harnesses the power of matplotlib to create beautiful charts in a few lines of code. The key difference is Seaborn’s default styles and color palettes, which are designed to be more aesthetically pleasing and modern. Since Seaborn is built on top of matplotlib, you’ll need to know matplotlib to tweak Seaborn’s defaults.\n\n* 3- ggplot\n\nggplot is based on ggplot2, an R plotting system, and concepts from The Grammar of Graphics. ggplot operates differently than matplotlib: it lets you layer components to create a complete plot. For instance, you can start with axes, then add points, then a line, a trendline, etc. Although The Grammar of Graphics has been praised as an “intuitive” method for plotting, seasoned matplotlib users might need time to adjust to this new mindset.\n\n\n* 4- Bokeh\n\nLike ggplot, Bokeh is based on The Grammar of Graphics, but unlike ggplot, it’s native to Python, not ported over from R. Its strength lies in the ability to create interactive, web-ready plots, which can be easily outputted as JSON objects, HTML documents, or interactive web applications. Bokeh also supports streaming and real-time data.\n\n\n* 5- pygal\n\nLike Bokeh and Plotly, pygal offers interactive plots that can be embedded in the web browser. Its prime differentiator is the ability to output charts as SVGs. As long as you’re working with smaller datasets, SVGs will do you just fine. But if you’re making charts with hundreds of thousands of data points, they’ll have trouble rendering and become sluggish.\n\n* 6- Plotly\n\nYou might know Plotly as an online platform for data visualization, but did you also know you can access its capabilities from a Python notebook? Like Bokeh, Plotly’s forte is making interactive plots, but it offers some charts you won’t find in most libraries, like contour plots, dendograms, and 3D charts.\n\n* 7- geoplotlib\n\ngeoplotlib is a toolbox for creating maps and plotting geographical data. You can use it to create a variety of map-types, like choropleths, heatmaps, and dot density maps. You must have Pyglet (an object-oriented programming interface) installed to use geoplotlib. Nonetheless, since most Python data visualization libraries don’t offer maps, it’s nice to have a library dedicated solely to them.\n\n* 8- Gleam\n\nGleam is inspired by R’s Shiny package. It allows you to turn analyses into interactive web apps using only Python scripts, so you don’t have to know any other languages like HTML, CSS, or JavaScript. Gleam works with any Python data visualization library. Once you’ve created a plot, you can build fields on top of it so users can filter and sort data.\n\n\n* 9- missingno\n\nDealing with missing data is a pain. missingno allows you to quickly gauge the completeness of a dataset with a visual summary, instead of trudging through a table. You can filter and sort data based on completion or spot correlations with a heatmap or a dendrogram.\n\n\n* 10- Leather\n\nLeather’s creator, Christopher Groskopf, puts it best: “Leather is the Python charting library for those who need charts now and don’t care if they’re perfect.” It’s designed to work with all data types and produces charts as SVGs, so you can scale them without losing image quality. Since this library is relatively new, some of the documentation is still in progress. The charts you can make are pretty basic—but that’s the intention.\n\nAt the end, nice cheatsheet on how to best visualize your data. I think I will print it out as a good reminder of \"best practices\". Check out the link for the complete cheatsheet, also as a PDF. hashtag#data hashtag#visualization hashtag#datascience\n\nLink: https://github.com/mjbahmani/Machine-Learning-Workflow-with-Python\n![cheatsheet ][1]\n[Reference][2]\n\n\n [1]: http://s8.picofile.com/file/8340669884/53f6a826_d7df_4b55_81e6_7c23b3fff0a3_original.png\n [2]: https://blog.modeanalytics.com/python-data-visualization-libraries/" + }, + { + "metadata": { + "_uuid": "4524fb4d3bdeca34f1a526bbf2fc2caa9bfbf51a", + "collapsed": true + }, + "cell_type": "markdown", + "source": "
\n## 6- SKlearn\n\n- The __open source__ Python ecosystem provides __a standalone, versatile and powerful scientific working environment__, including: [NumPy](http://numpy.org), [SciPy](http://scipy.org), [IPython](http://ipython.org), [Matplotlib](http://matplotlib.org), [Pandas](http://pandas.pydata.org/), _and many others..._\n" + }, + { + "metadata": { + "_uuid": "ec7344e7f2a1bafa9a44a518722fcd8ec47c374b" + }, + "cell_type": "markdown", + "source": "
\n## 6-1 Introduction\n\n\n\n- Scikit-Learn builds upon NumPy and SciPy and __complements__ this scientific environment with machine learning algorithms;\n- By design, Scikit-Learn is __non-intrusive__, easy to use and easy to combine with other libraries;\n- Core algorithms are implemented in low-level languages." + }, + { + "metadata": { + "_uuid": "6e80040de557789b0dff267ce45ba3e494885fee" + }, + "cell_type": "markdown", + "source": "
\n## 6-2 Algorithms " + }, + { + "metadata": { + "_uuid": "666c206f83175114a513b37fb9ae322b5cd8543e" + }, + "cell_type": "markdown", + "source": "__Supervised learning:__\n\n* Linear models (Ridge, Lasso, Elastic Net, ...)\n* Support Vector Machines\n* Tree-based methods (Random Forests, Bagging, GBRT, ...)\n* Nearest neighbors \n* Neural networks (basics)\n* Gaussian Processes\n* Feature selection" + }, + { + "metadata": { + "_uuid": "44eef8d741beebe15555c5166360b2ce77f5d5b1" + }, + "cell_type": "markdown", + "source": "__Unsupervised learning:__\n\n* Clustering (KMeans, Ward, ...)\n* Matrix decomposition (PCA, ICA, ...)\n* Density estimation\n* Outlier detection" + }, + { + "metadata": { + "_uuid": "8da2cc5428b697a7b5f21d34038d343bb8b094bb" + }, + "cell_type": "markdown", + "source": "__Model selection and evaluation:__\n\n* Cross-validation\n* Grid-search\n* Lots of metrics\n\n_... and many more!_ (See our [Reference](http://scikit-learn.org/dev/modules/classes.html))" + }, + { + "metadata": { + "_uuid": "e8a877d51d20c1ad31bb635cffc89175426eb77c" + }, + "cell_type": "markdown", + "source": "
\n## 6-3 Framework\n\nData comes as a finite learning set ${\\cal L} = (X, y)$ where\n* Input samples are given as an array $X$ of shape `n_samples` $\\times$ `n_features`, taking their values in ${\\cal X}$;\n* Output values are given as an array $y$, taking _symbolic_ values in ${\\cal Y}$." + }, + { + "metadata": { + "_uuid": "bafb45df9ecfe90563f2f9a1be8a327823cf6d35" + }, + "cell_type": "markdown", + "source": "The goal of supervised classification is to build an estimator $\\varphi: {\\cal X} \\mapsto {\\cal Y}$ minimizing\n\n$$\nErr(\\varphi) = \\mathbb{E}_{X,Y}\\{ \\ell(Y, \\varphi(X)) \\}\n$$\n\nwhere $\\ell$ is a loss function, e.g., the zero-one loss for classification $\\ell_{01}(Y,\\hat{Y}) = 1(Y \\neq \\hat{Y})$." + }, + { + "metadata": { + "_uuid": "7efef8f514caf78e7bc2a60b4d5c0e7fa6d160ac" + }, + "cell_type": "markdown", + "source": "
\n## 6-4 Applications\n\n- Classifying signal from background events; \n- Diagnosing disease from symptoms;\n- Recognising cats in pictures;\n- Identifying body parts with Kinect cameras;\n- ...\n " + }, + { + "metadata": { + "_uuid": "7cc13baab79cbc6446763e4ebe8feba2c95e74c9" + }, + "cell_type": "markdown", + "source": "
\n## 6-5 Data \n\n- Input data = Numpy arrays or Scipy sparse matrices ;\n- Algorithms are expressed using high-level operations defined on matrices or vectors (similar to MATLAB) ;\n - Leverage efficient low-leverage implementations ;\n - Keep code short and readable. " + }, + { + "metadata": { + "_uuid": "da71475a60440648988cf0624a200439759112f7", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn import datasets\niris = datasets.load_iris()\nX_iris = iris.data\ny_iris = iris.target\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9c1cb2c59e225e0bafa33bae8e77db53c1f34572" + }, + "cell_type": "markdown", + "source": "The dataset includes 150 instances, with 4 attributes each. For each instance, we will also have a target class (in our case, the species). This class is a special attribute which we will aim to predict for new, previously unseen instances, given the remaining (known) attributes." + }, + { + "metadata": { + "_uuid": "d60e800532bb74141e10d0ca57761ab8886831a9", + "trusted": true + }, + "cell_type": "code", + "source": "print (X_iris.shape, y_iris.shape)\nprint ('Feature names:{0}'.format(iris.feature_names))\nprint ('Target classes:{0}'.format(iris.target_names))\nprint ('First instance features:{0}'.format(X_iris[0]))\n\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0699a589dbf3d8de81b360a3d1aee84019a64e3e" + }, + "cell_type": "markdown", + "source": "Let us display each instance in a 2d-scatter plot, using first sepal measures, and then petal measures." + }, + { + "metadata": { + "_uuid": "20a39dd47768e6ff4944573955c2b65322386efd", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure('sepal')\ncolormarkers = [ ['red','s'], ['greenyellow','o'], ['blue','x']]\nfor i in range(len(colormarkers)):\n px = X_iris[:, 0][y_iris == i]\n py = X_iris[:, 1][y_iris == i]\n plt.scatter(px, py, c=colormarkers[i][0], marker=colormarkers[i][1])\n\nplt.title('Iris Dataset: Sepal width vs sepal length')\nplt.legend(iris.target_names)\nplt.xlabel('Sepal length')\nplt.ylabel('Sepal width')\nplt.figure('petal')\n\nfor i in range(len(colormarkers)):\n px = X_iris[:, 2][y_iris == i]\n py = X_iris[:, 3][y_iris == i]\n plt.scatter(px, py, c=colormarkers[i][0], marker=colormarkers[i][1])\n\nplt.title('Iris Dataset: petal width vs petal length')\nplt.legend(iris.target_names)\nplt.xlabel('Petal length')\nplt.ylabel('Petal width')\nplt.show()\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "90e0f3c3f49ae20dfd3b0648bf1fb4e9131455ef" + }, + "cell_type": "markdown", + "source": "
\n## 6-6 Supervised Learning: Classification" + }, + { + "metadata": { + "_uuid": "d41c9b43569995b19a096eaf1435ff05aa4010f4" + }, + "cell_type": "markdown", + "source": "In 1936 Sir Ronald Fisher introduced the Iris dataset to the statistics world, using it to develop a _linear discriminant model_. What he did was to build a linear combination of the attributes that separates a species from the rest, that is, find a straight line similar to the one we suggested in the previous section.\n\nOur first task will be to predict the specie of an Iris flower given the four sepal and length measures. For the moment, we will start using only two attributes, its sepal width and length. We will do this to ease visualization, but later we will use the four attributes, and see if performance improves. This is an instance of a **classification problem**, where we want to assign a label taken from a discrete set to an item according to its features.\n\nThe typical classification process roughly involves the following steps: \n- select your attributes, \n- build a model based on available data, and \n- evaluate your model’s performance on previously unseen data. \n\nTo do this, before building our model we should separate training and testing data. Training data will be used to build the model, and testing data will be used to evaluate its performance.\n" + }, + { + "metadata": { + "_uuid": "4f4c054a1e478dbf9745c1c9128ebed228a369dd" + }, + "cell_type": "markdown", + "source": "
\n### 6-7 Separate training and testing sets" + }, + { + "metadata": { + "_uuid": "29d9d5fb317893fd18c495bc6b93db45c8825f97" + }, + "cell_type": "markdown", + "source": "Our first step will be to separate the dataset into to separate sets, using 75% of the instances for training our classifier, and the remaining 25% for evaluating it (and, in this case, taking only two features, sepal width and length). We will also perform _feature scaling_: for each feature, calculate the average, subtract the mean value from the feature value, and divide the result by their standard deviation. After scaling, each feature will have a zero average, with a standard deviation of one. This standardization of values (which does not change their distribution, as you could verify by plotting the X values before and after scaling) is a common requirement of machine learning methods, to avoid that features with large values may weight too much on the final results." + }, + { + "metadata": { + "_uuid": "a0ba1691f3394e53a8939c709b2f874d34276e55", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn.cross_validation import train_test_split\nfrom sklearn import preprocessing\n\n# Create dataset with only the first two attributes\nX, y = X_iris[:, [0,1]], y_iris\n# Test set will be the 25% taken randomly\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=33)\n \n# Standarize the features\nscaler = preprocessing.StandardScaler().fit(X_train)\nX_train = scaler.transform(X_train)\nX_test = scaler.transform(X_test)\n\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d3d494e1c138f0ceccf7e916a7a0466053fb72e7" + }, + "cell_type": "markdown", + "source": "Check that, after scaling, the mean is 0 and the standard deviation is 1 (this should be exact in the training set, but only approximated in the testing set, because we used the training set media and standard deviation):" + }, + { + "metadata": { + "_uuid": "50971f3878324a26664603f242e743c0005eaa47", + "trusted": true + }, + "cell_type": "code", + "source": "print ('Training set mean:{:.2f} and standard deviation:{:.2f}'.format(np.average(X_train),np.std(X_train)))\nprint ('Testing set mean:{:.2f} and standard deviation:{:.2f}'.format(np.average(X_test),np.std(X_test)))\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f0f7e10a6a4435eae2734323f23fc3a5aa3f364b" + }, + "cell_type": "markdown", + "source": "Display the training data, after scaling." + }, + { + "metadata": { + "_uuid": "bf6fe6e16343a274dde88a9668521bad8d745617", + "trusted": true + }, + "cell_type": "code", + "source": "colormarkers = [ ['red','s'], ['greenyellow','o'], ['blue','x']]\nplt.figure('Training Data')\nfor i in range(len(colormarkers)):\n xs = X_train[:, 0][y_train == i]\n ys = X_train[:, 1][y_train == i]\n plt.scatter(xs, ys, c=colormarkers[i][0], marker=colormarkers[i][1])\n\nplt.title('Training instances, after scaling')\nplt.legend(iris.target_names)\nplt.xlabel('Sepal length')\nplt.ylabel('Sepal width')\nplt.show()\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "4c6d378e8aa4a86c374cee25410178c06e880420" + }, + "cell_type": "markdown", + "source": "
\n### 6-8 A linear, binary classifier" + }, + { + "metadata": { + "_uuid": "a1220ea7fdc23fe8831310212c52bdd4d5a2dd09" + }, + "cell_type": "markdown", + "source": "To start, let's transform the problem to a binary classification task: we will only want to distinguish setosa flowers from the rest (it seems easy, according to the plot). To do this, we will just collapse all non-setosa targets into the same clas (later we will come back to the three-class original problem)" + }, + { + "metadata": { + "_uuid": "5f762b1f6b88ea60a54a1bacc44bec42bc403bf7", + "trusted": true + }, + "cell_type": "code", + "source": "import copy \ny_train_setosa = copy.copy(y_train) \n# Every 1 and 2 classes in the training set will became just 1\ny_train_setosa[y_train_setosa > 0]=1\ny_test_setosa = copy.copy(y_test)\ny_test_setosa[y_test_setosa > 0]=1\n\nprint ('New training target classes:\\n{0}'.format(y_train_setosa))\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "753b8c2d1e1d6320cdb4b23818aa9afac5ca1099" + }, + "cell_type": "markdown", + "source": "Our first classifier will be a linear one. \n\nLinear classification models have been very well studied through many years, and the are a lot of different methods with actually very different approaches for building the separating hyperplane. We will use the `SGDClassifier` from scikit-learn to implement a linear model, including regularization. The classifier (actually, a family of classifiers, as we will see) receives its name from using Stochastic Gradient Descent, a very effective numerical procedure to find the local minimum of a function. \n\nGradient Descent was introduced by Louis Augustin Cauchy in 1847, to solve a system of linear equations. The idea is based on the observation that a multivariable function decreases fastest in the direction of its negative gradient (you can think of the gradient as a generalization of the derivative for several dimensions). If we want to find its minimum (at least a local one) we could move in the direction of its negative gradient. This is exactly what gradient descent does.\n" + }, + { + "metadata": { + "_uuid": "077958a4afee1ca86cb244f34b7926ab7ae7e856" + }, + "cell_type": "markdown", + "source": "Every classifier in scikit-learn is created the same way: calling a method with the classifier's configurable hyperparameters to create an instance of the classifier. In this case, we will use `linear_model.SGDClassifier`, telling scikit-learn to use a _log_ loss function. " + }, + { + "metadata": { + "_uuid": "624efe224ad09deb106bbd41098387241686e8e3", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn import linear_model \nclf = linear_model.SGDClassifier(loss='log', random_state=42)\nprint (clf)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "9fade050090fe34bef437d28a35b918e399c304f" + }, + "cell_type": "markdown", + "source": "Note that the classifier includes several parameteres. Usually, scikit-learn specifies default values for every parameter. But be aware that it is not a good idea to keep it with their default values. Later (or in future notebooks, I do not know yet), we will talk about _model selection_, the process of selecting the best parameters.\n\nNow, we just call the `fit` method to train the classifier (i.e., build a model we will later use), based on the available training data. In our case, the trainig setosa set.\n" + }, + { + "metadata": { + "_uuid": "79b66e76e757b42f4ed7fd49e3c62b83e861b625", + "trusted": true + }, + "cell_type": "code", + "source": "clf.fit(X_train, y_train_setosa)\n\n ", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "a15f78bd1067a7e1614127a2f32a5971966c89a2" + }, + "cell_type": "markdown", + "source": "How does our model look? Well, since we are building a linear classifier, our model is a... line. We can show its coefficients:" + }, + { + "metadata": { + "_uuid": "d087bff89ccc12837db145767a2213e19a83e095", + "trusted": true + }, + "cell_type": "code", + "source": "print (clf.coef_,clf.intercept_)\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3c72318eb1be6a0670405774623093466716b386" + }, + "cell_type": "markdown", + "source": "... and we can draw the decision boundary using pyplot:" + }, + { + "metadata": { + "_uuid": "76d30025f191ad3f6d6e3572fdc24b37411de3c6", + "trusted": true + }, + "cell_type": "code", + "source": "x_min, x_max = X_train[:, 0].min() - .5, X_train[:, 0].max() + .5\ny_min, y_max = X_train[:, 1].min() - .5, X_train[:, 1].max() + .5\nxs = np.arange(x_min, x_max, 0.5)\nfig,axes = plt.subplots()\naxes.set_aspect('equal')\naxes.set_title('Setosa classification')\naxes.set_xlabel('Sepal length')\naxes.set_ylabel('Sepal width')\naxes.set_xlim(x_min, x_max)\naxes.set_ylim(y_min, y_max)\nplt.sca(axes)\nplt.scatter(X_train[:, 0][y_train == 0], X_train[:, 1][y_train == 0], c='red', marker='s')\nplt.scatter(X_train[:, 0][y_train == 1], X_train[:, 1][y_train == 1], c='black', marker='x')\nys = (-clf.intercept_[0]- xs * clf.coef_[0, 0]) / clf.coef_[0, 1]\nplt.plot(xs, ys, hold=True)\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5b44914dc28906e9b62bdde03b8dc6bc695421ce" + }, + "cell_type": "markdown", + "source": "The blue line is our decision boundary. Every time $30.97 \\times sepal\\_length - 17.82 \\times sepal\\_width - 17.34$ is greater than zero we will have an iris setosa (class 0). " + }, + { + "metadata": { + "_uuid": "67295f4a942c50d80cb1e9ae2ca8ad59a6d2fb74" + }, + "cell_type": "markdown", + "source": "
\n### 6-9 Prediction" + }, + { + "metadata": { + "_uuid": "ea3f08d3e7d80014d39a580fee23a5b901836278" + }, + "cell_type": "markdown", + "source": "Now, the really useful part: when we have a new flower, we just have to get its petal width and length and call the `predict` method of the classifier on the new instance. _This works the same way no matter the classifier we are using or the method we used to build it_" + }, + { + "metadata": { + "_uuid": "adc12ede8d795ab655398672c326947bfaf72352", + "trusted": true + }, + "cell_type": "code", + "source": "print ('If the flower has 4.7 petal width and 3.1 petal length is a {}'.format(\n iris.target_names[clf.predict(scaler.transform([[4.7, 3.1]]))]))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d1176b1981567568ad2a6fdf7df660971c60abbe" + }, + "cell_type": "markdown", + "source": "Note that we first scaled the new instance, then applyied the `predict` method, and used the result to lookup into the iris target names arrays. " + }, + { + "metadata": { + "_uuid": "86353db47b33bc43025f024071c6cafd09cd3990" + }, + "cell_type": "markdown", + "source": "
\n### 6-10 Back to the original three-class problem" + }, + { + "metadata": { + "_uuid": "f388c210be1b2158117b65eb8592bfa7bc1386ca" + }, + "cell_type": "markdown", + "source": "Now, do the training using the three original classes. Using scikit-learn this is simple: we do exactly the same procedure, using the original three target classes:" + }, + { + "metadata": { + "_uuid": "dff8a43a1c8d68407e90d1b83d1e8dbea87e958f", + "trusted": true + }, + "cell_type": "code", + "source": "clf2 = linear_model.SGDClassifier(loss='log', random_state=33)\nclf2.fit(X_train, y_train) \nprint (len(clf2.coef_))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8c986abaa3874a8cd0b65a272528a70a345b91cd" + }, + "cell_type": "markdown", + "source": "We have know _three_ decision curves... scikit-learn has simply converted the problem into three one-versus-all binary classifiers. Note that Class 0 is linearly separable, while Class 1 and Class 2 are not" + }, + { + "metadata": { + "_uuid": "0b5cd2ffc95fb39d6b136cb6c9966dbbbd1f0500", + "trusted": true + }, + "cell_type": "code", + "source": "x_min, x_max = X_train[:, 0].min() - .5, X_train[:, 0].max() + .5\ny_min, y_max = X_train[:, 1].min() - .5, X_train[:, 1].max() + .5\nxs = np.arange(x_min,x_max,0.5)\nfig, axes = plt.subplots(1,3)\nfig.set_size_inches(10,6)\nfor i in [0,1,2]:\n axes[i].set_aspect('equal')\n axes[i].set_title('Class '+ iris.target_names[i] + ' versus the rest')\n axes[i].set_xlabel('Sepal length')\n axes[i].set_ylabel('Sepal width')\n axes[i].set_xlim(x_min, x_max)\n axes[i].set_ylim(y_min, y_max)\n plt.sca(axes[i])\n ys=(-clf2.intercept_[i]-xs*clf2.coef_[i,0])/clf2.coef_[i,1]\n plt.plot(xs,ys,hold=True) \n for j in [0,1,2]:\n px = X_train[:, 0][y_train == j]\n py = X_train[:, 1][y_train == j]\n color = colormarkers[j][0] if j==i else 'black'\n marker = 'o' if j==i else 'x'\n plt.scatter(px, py, c=color, marker=marker) \n\nplt.show()\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "fa09989724671462a28e9dc963260c585441f48a" + }, + "cell_type": "markdown", + "source": "Let us evaluate on the previous instance to find the three-class prediction. Scikit-learn tries the three classifiers. " + }, + { + "metadata": { + "_uuid": "4a4819672b9113bf4cc77bd32d343eaa2defdfc0", + "trusted": true + }, + "cell_type": "code", + "source": "scaler.transform([[4.7, 3.1]])\nprint(clf2.decision_function(scaler.transform([[4.7, 3.1]])))\nclf2.predict(scaler.transform([[4.7, 3.1]]))\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3a67576ba3e26fc8b1a01ae245efee25fb28732c" + }, + "cell_type": "markdown", + "source": "The `decision_function` method tell us the classifier scores (in our case, the left side of the decision boundary inequality). In our example, the first classifier says the flower is a setosa (we have a score greater than zero), and it is not a versicolor nor a virginica. Easy. What if we had two positive values? In our case, the greatest score will be the point which is further away from the decision line. " + }, + { + "metadata": { + "_uuid": "447f9507fe540dda42582d97b3958847c6a1c322" + }, + "cell_type": "markdown", + "source": "
\n## 6-11 Evaluating the classifier" + }, + { + "metadata": { + "_uuid": "d42f5fa8d221da382fa01028d2492a908059e840" + }, + "cell_type": "markdown", + "source": "The performance of an estimator is a measure of its effectiveness. The most obvious performance measure is called _accuracy_: given a classifier and a set of instances, it simply measures the proportion of instances correctly classified by the classifier. We can, for example, use the instances in the training set and calculate the accuracy of our classifier when predicting their target classes. Scikit-learn includes a `metrics` module that implements this (and many others) performance metric." + }, + { + "metadata": { + "_uuid": "b47d40cd9bec34549456e928de1fb3fa059fbdbc", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn import metrics\ny_train_pred = clf2.predict(X_train)\nprint ('Accuracy on the training set:{:.2f}'.format(metrics.accuracy_score(y_train, y_train_pred)))\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "bd340e2bd542d74bf2507fb1d4714e21c1229749" + }, + "cell_type": "markdown", + "source": "This means that our classifier correctly predicts 83\\% of the instances in the training set. But this is actually a bad idea. The problem with the evaluating on the training set is that you have built your model using this data, and it is possible that your model adjusts actually very well to them, but performs poorly in previously unseen data (which is its ultimate purpose). This phenomenon is called overfitting, and you will see it once and again while you read this book. If you measure on your training data, you will never detect overfitting. So, _never ever_ measure on your training data. \n\nRemember we separated a portion of the training set? Now it is time to use it: since it was not used for training, we expect it to give us and idead of how well our classifier performs on previously unseen data." + }, + { + "metadata": { + "_uuid": "70dd8452466af9966724f4b5af586bb68d81f27e", + "trusted": true + }, + "cell_type": "code", + "source": "y_pred = clf2.predict(X_test)\nprint ('Accuracy on the training set:{:.2f}'.format(metrics.accuracy_score(y_test, y_pred)))\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "760b5655dff3c9a89c4f1b3be08f5644a12de85b" + }, + "cell_type": "markdown", + "source": "Generally, accuracy on the testing set is lower than the accuracy on the training set, since the model is actually modeling the training set, not the testing set.\n\nOne of the problems with accuracy is that does not reflect well how our model performs on each different target class. For example, we know that our classifier works very well identifying setosa species, but will probably fail when separating the other two species. If we could measure this, we could get hints for improving performance, changing the method or the features. \n\nA very useful tool when facing multi-class problems is the confusion matrix. This matrix includes, in row i and column _j_ the number of instances of class _i_ that were predicted to be in class _j_. A good classifier will accumulate the values on the confusion matrix diagonal, where correctly classified instances belong. Having the original and predicted classes, we can easily print the confusion matrix:" + }, + { + "metadata": { + "_uuid": "58e838b89ffd8b8d5b883897b531930e174fee3a", + "trusted": true + }, + "cell_type": "code", + "source": "print (metrics.confusion_matrix(y_test, y_pred))\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6442fc90fe99617f6238ad264c140989c0bff47d" + }, + "cell_type": "markdown", + "source": "To read the classification matrix, just remember the definition: the “8” on row 2, column 3, means that eight instances if class 1 where predicted to be in class 2. Our classifier is never wrong in our evaluation set when it classifies class zero (setosa) flowers. However, when it faces classes one and two (versicolor and virginica), it confuses them. The confusion matrix gives us useful information to know what kind of errors the classifier is making." + }, + { + "metadata": { + "_uuid": "0bc68e8d5a2ef4423d70fbb7eb4ea48e6bee9594" + }, + "cell_type": "markdown", + "source": "Accuracy on the test set is a good performance measure when the number of instances of each class is similar, i.e., we have a uniform distribution of classes. However, consider that 99 percent of your instances belong to just one class (you have a skewed): a classifier that always predicts this majority class will have an excellent performance in terms of accuracy, despite the fact that it is an extremely naive method (and that it will surely fail in the “difficult” 1% cases).\n\nWithin scikit-learn, there are several evaluation functions; we will show three popular ones: precision, recall, and F1-score (or f-measure)." + }, + { + "metadata": { + "_uuid": "9ca68dac14ab26a2392b8ac302db3ca16278c276", + "trusted": true + }, + "cell_type": "code", + "source": "print (metrics.classification_report(y_test, y_pred, target_names=iris.target_names))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "6cb4f31974f9b2ea0c1ac9856daf7841e16fb344" + }, + "cell_type": "markdown", + "source": "- Precision computes the proportion of instances predicted as positives that were correctly evaluated (it measures how right is our classifier when it says that an instance is positive).\n- Recall counts the proportion of positive instances that were correctly evaluated (measuring how right our classifier is when faced with a positive instance).\n- F1-score is the harmonic mean of precision and recall, and tries to combine both in a single number." + }, + { + "metadata": { + "_uuid": "790eff98fb2a7f1f5b469fd55b84f9565329a24a" + }, + "cell_type": "markdown", + "source": "
\n## 6-12 Using the four flower attributes" + }, + { + "metadata": { + "_uuid": "77229bf2110999ada713fbb0ae55c2ec725e7526" + }, + "cell_type": "markdown", + "source": "To end with this classification section, we will repeat the whole process, this time using the four original attributes, and check if performance improves." + }, + { + "metadata": { + "_uuid": "0b4214c627c2d3e64519b58aa529477f604db287", + "trusted": true + }, + "cell_type": "code", + "source": "# Test set will be the 25% taken randomly\nX_train4, X_test4, y_train4, y_test4 = train_test_split(X_iris, y_iris, test_size=0.25, random_state=33)\n \n# Standarize the features\nscaler = preprocessing.StandardScaler().fit(X_train4)\nX_train4 = scaler.transform(X_train4)\nX_test4 = scaler.transform(X_test4)\n\n# Build the classifier\nclf3 = linear_model.SGDClassifier(loss='log', random_state=33)\nclf3.fit(X_train4, y_train4) \n\n# Evaluate the classifier on the evaluation set\ny_pred4 = clf3.predict(X_test4)\nprint (metrics.classification_report(y_test4, y_pred4, target_names=iris.target_names))\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0ec1ebbf687f017f402f9fd66fc46e186d204ec6" + }, + "cell_type": "markdown", + "source": "
\n## 6-13 Unsupervised Learning: Clustering" + }, + { + "metadata": { + "_uuid": "af8b8dcd0dfc9fd8e224538b7e2c3cc0771100d5" + }, + "cell_type": "markdown", + "source": "Sometimes, is possible to take an unlabeled training set and try to find a hidden structure or patterns in the data: there is no given target class to predict or to evaluate the resulting model. We call these class of machine learning tasks _unsupervised learning_. For instance, _clustering_ methods try to group instances into subsets (called clusters): an instance should be similar to another in the same subset and different from those belonging to another subset.\n\nIn this section, we will perform clustering of the Iris data set, to see if we could group instances using their petal and sepal width and length. The trainig set is the same we used we used for our last example on supervised classification.\n" + }, + { + "metadata": { + "_uuid": "0aab6518f743c93eb3708492b88e8f503589606f" + }, + "cell_type": "markdown", + "source": "K-means is probably the most popular clustering algorithm, because it is very simple and easy to implement, and it has shown good performance on different tasks. It belongs to the class of partition algorithms that simultaneously partition data points into distinct groups, called clusters. We will apply k-means to the training data, using only sepal dimensions, building 3 clusters (note that we could have selected a different number of cluster to group data into)" + }, + { + "metadata": { + "_uuid": "da0b9bbfed649b023ea14910a4cb2fc6947df419", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn import cluster\nclf_sepal = cluster.KMeans(init='k-means++', n_clusters=3, random_state=33)\nclf_sepal.fit(X_train4[:,0:2])\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8c5283b63443298ab77ce3c99ccef438b4ecfa32" + }, + "cell_type": "markdown", + "source": "We can show the label assigned for each instance (note that this label is a cluster name, it has nothing to do with our original target classes... actually, when you are doing clustering you have no target class!)." + }, + { + "metadata": { + "_uuid": "dd66f6da3cdcf0b0df45033f8af80d8a913ebd3d", + "trusted": true + }, + "cell_type": "code", + "source": "print (clf_sepal.labels_)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "fb2cf032fd214f500bc1b5c1e5cb2e91181e1d9c" + }, + "cell_type": "markdown", + "source": "Using NumPy's indexing capabilities, we can display the actual target classes for each cluster, just to compare the built clusters with our flower type classes..." + }, + { + "metadata": { + "_uuid": "670b352cc30adc61caad1dfe64376c4d321ebecd", + "trusted": true + }, + "cell_type": "code", + "source": "print (y_train4[clf_sepal.labels_==0])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "1cde150dd604e7a62003b96f2897ed3882a85281", + "trusted": true + }, + "cell_type": "code", + "source": "print (y_train4[clf_sepal.labels_==1])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "0659d1c3fc12c5303065e2987816ad2dda76d455", + "trusted": true + }, + "cell_type": "code", + "source": "print (y_train4[clf_sepal.labels_==2])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2caa2d5609a8af2a2703a69c5395c8de9e6ebd10" + }, + "cell_type": "markdown", + "source": "As usually, is a good idea to display our instances and the clusters they belong to, to have a first approximation to how well our algorithm is behaving on our data: " + }, + { + "metadata": { + "_uuid": "6bc2b0a1cd98f8d58658f941799782e37f1fc381", + "trusted": true + }, + "cell_type": "code", + "source": "colormarkers = [ ['red','s'], ['greenyellow','o'], ['blue','x']]\nstep = .01 \nmargin = .1 \nsl_min, sl_max = X_train4[:, 0].min()-margin, X_train4[:, 0].max() + margin\nsw_min, sw_max = X_train4[:, 1].min()-margin, X_train4[:, 1].max() + margin\nsl, sw = np.meshgrid(\n np.arange(sl_min, sl_max, step),\nnp.arange(sw_min, sw_max, step)\n )\nZs = clf_sepal.predict(np.c_[sl.ravel(), sw.ravel()]).reshape(sl.shape)\ncentroids_s = clf_sepal.cluster_centers_\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7cedf51a164ebbfae5cabb2cd24a94e74b243502" + }, + "cell_type": "markdown", + "source": "Display the data points and the calculated regions" + }, + { + "metadata": { + "_uuid": "c756314b2724adffb276b09fafff446c4a29a044", + "trusted": true + }, + "cell_type": "code", + "source": "plt.figure(1)\nplt.clf()\nplt.imshow(Zs, interpolation='nearest', extent=(sl.min(), sl.max(), sw.min(), sw.max()), cmap= plt.cm.Pastel1, aspect='auto', origin='lower')\nfor j in [0,1,2]:\n px = X_train4[:, 0][y_train == j]\n py = X_train4[:, 1][y_train == j]\n plt.scatter(px, py, c=colormarkers[j][0], marker= colormarkers[j][1])\nplt.scatter(centroids_s[:, 0], centroids_s[:, 1],marker='*',linewidths=3, color='black', zorder=10)\nplt.title('K-means clustering on the Iris dataset using Sepal dimensions\\nCentroids are marked with stars')\nplt.xlim(sl_min, sl_max)\nplt.ylim(sw_min, sw_max)\nplt.xlabel(\"Sepal length\")\nplt.ylabel(\"Sepal width\")\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "c6fa87cdcda44eeacba51b645c35dc7367e5c636" + }, + "cell_type": "markdown", + "source": "Repeat the experiment, using petal dimensions" + }, + { + "metadata": { + "_uuid": "11e8ba67a6433ddac4efac055f86bb9b45e77252", + "trusted": true + }, + "cell_type": "code", + "source": "clf_petal = cluster.KMeans(init='k-means++', n_clusters=3, random_state=33)\nclf_petal.fit(X_train4[:,2:4])\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "8830e184fccb6094195cfc008a7bf5a479203167", + "trusted": true + }, + "cell_type": "code", + "source": "print (y_train4[clf_petal.labels_==0])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "f9d66355b903a618cabfef234f2eacb32b4eba4b", + "trusted": true + }, + "cell_type": "code", + "source": "print (y_train4[clf_petal.labels_==1])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5f4ae459d0272d74281ab4ae2845ce4f74bcbb14", + "trusted": true + }, + "cell_type": "code", + "source": "print (y_train4[clf_petal.labels_==2])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e3a17a8fba39e8d49358579cae1ef6c3ab6e3c3c" + }, + "cell_type": "markdown", + "source": "Plot the clusters " + }, + { + "metadata": { + "_uuid": "5647c6daddf59a1bdcd8d5f2a58fbac147ba9f56", + "trusted": true + }, + "cell_type": "code", + "source": "colormarkers = [ ['red','s'], ['greenyellow','o'], ['blue','x']]\nstep = .01 \nmargin = .1\nsl_min, sl_max = X_train4[:, 2].min()-margin, X_train4[:, 2].max() + margin\nsw_min, sw_max = X_train4[:, 3].min()-margin, X_train4[:, 3].max() + margin\nsl, sw = np.meshgrid(\n np.arange(sl_min, sl_max, step),\n np.arange(sw_min, sw_max, step), \n )\nZs = clf_petal.predict(np.c_[sl.ravel(), sw.ravel()]).reshape(sl.shape)\ncentroids_s = clf_petal.cluster_centers_\nplt.figure(1)\nplt.clf()\nplt.imshow(Zs, interpolation='nearest', extent=(sl.min(), sl.max(), sw.min(), sw.max()), cmap= plt.cm.Pastel1, aspect='auto', origin='lower')\nfor j in [0,1,2]:\n px = X_train4[:, 2][y_train4 == j]\n py = X_train4[:, 3][y_train4 == j]\n plt.scatter(px, py, c=colormarkers[j][0], marker= colormarkers[j][1])\nplt.scatter(centroids_s[:, 0], centroids_s[:, 1],marker='*',linewidths=3, color='black', zorder=10)\nplt.title('K-means clustering on the Iris dataset using Petal dimensions\\nCentroids are marked with stars')\nplt.xlim(sl_min, sl_max)\nplt.ylim(sw_min, sw_max)\nplt.xlabel(\"Petal length\")\nplt.ylabel(\"Petal width\")\nplt.show()", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "409c72a611b055e4cc2e3dd523d88f7f46b10d16" + }, + "cell_type": "markdown", + "source": "Now, calculate the clusters, using the four attributes" + }, + { + "metadata": { + "_uuid": "56668e53ec70e5e26d9994b0f172702011ed3e41", + "trusted": true + }, + "cell_type": "code", + "source": "clf = cluster.KMeans(init='k-means++', n_clusters=3, random_state=33)\nclf.fit(X_train4)\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "5a89293931b142460fd2912f1802a67712110bfb", + "trusted": true + }, + "cell_type": "code", + "source": "print (y_train[clf.labels_==0])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "27b83ae9ed49f4a517a409e72bb5416a3ea6dd8a", + "trusted": true + }, + "cell_type": "code", + "source": "print (y_train[clf.labels_==1])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b7fae1d9f328ead4f338581999b41deaf29e20b7", + "trusted": true + }, + "cell_type": "code", + "source": "print (y_train[clf.labels_==2])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "2ca2c5b2699e71c03c2ac1d9b47638adaddfb359" + }, + "cell_type": "markdown", + "source": "Measure precision & recall in the testing set, using all attributes, and using only petal measures" + }, + { + "metadata": { + "_uuid": "f45af067d0c87aec50dcb0dffe93eba15257f741", + "trusted": true + }, + "cell_type": "code", + "source": "y_pred=clf.predict(X_test4)\nprint (metrics.classification_report(y_test, y_pred, target_names=['setosa','versicolor','virginica']))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "83c4f44e777257689fcb04190ae2ae2bad083f91", + "trusted": true + }, + "cell_type": "code", + "source": "y_pred_petal=clf_petal.predict(X_test4[:,2:4])\nprint (metrics.classification_report(y_test, y_pred_petal, target_names=['setosa','versicolor','virginica']))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "b4da546786d8990d5b0ec6bc5488e11590bce7de" + }, + "cell_type": "markdown", + "source": "Wait, every performance measure is better using just two attributes. It is possible that less features give better results? Although at a first glance this seems contradictory, we will see in future notebooks that selecting the right subset of features, a process called feature selection, could actually improve the performance of our algorithms." + }, + { + "metadata": { + "_uuid": "341f79e2997c5dcedcc13434021135e5424006a6" + }, + "cell_type": "markdown", + "source": "
\n## 6-14 Supervised Learning: Regression" + }, + { + "metadata": { + "_uuid": "e7856f5680378e28373a93620f776fbec0a86847" + }, + "cell_type": "markdown", + "source": "In every example we have seen so far the output we aimed at predicting belonged to a discrete set. For classification, the set was the target class, while for the clustering algorithm the set included different calculated clusters. What if we want to predict a value extracted from the real line?. In this case, we are trying to solve a regression problem. \n\nTo show how regression works in scikit-learn, we will apply to a (very) simple and well-know problem: trying to predict the price of a house given some of its. As the dataset, we will use the Boston house-prices dataset (find the dataset description and attributes [here](https://github.com/mjbahmani)." + }, + { + "metadata": { + "_uuid": "13728a32bdb3e5f5bb5355e95b43551054355b66", + "trusted": true + }, + "cell_type": "code", + "source": "from sklearn.datasets import load_boston\nboston = load_boston()\nprint ('Boston dataset shape:{}'.format(boston.data.shape))\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "d4610811ae4bfebb057e2054426cd2029c3f3226", + "trusted": true + }, + "cell_type": "code", + "source": "print (boston.feature_names)\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "e051b322579ebaec46e3de34b00b2e2186bdf210" + }, + "cell_type": "markdown", + "source": "Create training and testing sets, and scale values, as usual" + }, + { + "metadata": { + "_uuid": "43c8934779f1d7d266606adf95287cce83876068", + "collapsed": true + }, + "cell_type": "markdown", + "source": "Create a method for training and evaluating a model. This time, to evaluate our model we will a different approach: instead of separating the training set, we will use _cross-validation_. \n\nCross-validation usually involves the following steps:\n1.\tPartition the dataset into k different subsets.\n2.\tCreate k different models by training on k-1 subsets and testing on the remaining one.\n3.\tMeasure the performance of each of the k models and use the average value as you performance value.\n" + }, + { + "metadata": { + "_uuid": "91acd3dadd07de1cbfcdde2c3309c241429e9174" + }, + "cell_type": "markdown", + "source": "
\n## 7- Plotly\nHow to use Plotly offline inside IPython notebooks\n\n" + }, + { + "metadata": { + "_uuid": "f9c6140fcc2890c1da1ad4de3ad2d68c90acbb9f" + }, + "cell_type": "markdown", + "source": "## 7-1 New to Plotly?\nPlotly, also known by its URL, Plot.ly, is a technical computing company headquartered in Montreal, Quebec, that develops online data analytics and visualization tools. Plotly provides online graphing, analytics, and statistics tools for individuals and collaboration, as well as scientific graphing libraries for Python, R, MATLAB, Perl, Julia, Arduino, and REST." + }, + { + "metadata": { + "trusted": true, + "_uuid": "a763c7f03b88cd1679931bc151c4f8f98006b3cb" + }, + "cell_type": "code", + "source": "# example for plotly\nimport plotly.offline as py\nimport plotly.graph_objs as go\npy.init_notebook_mode(connected=True)\nfrom plotly import tools\nimport plotly.figure_factory as ff\niris = datasets.load_iris()\nX = iris.data[:, :2] # we only take the first two features.\nY = iris.target\n\nx_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5\ny_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5\ntrace = go.Scatter(x=X[:, 0],\n y=X[:, 1],\n mode='markers',\n marker=dict(color=np.random.randn(150),\n size=10,\n colorscale='Viridis',\n showscale=False))\n\nlayout = go.Layout(title='Training Points',\n xaxis=dict(title='Sepal length',\n showgrid=False),\n yaxis=dict(title='Sepal width',\n showgrid=False),\n )\n \nfig = go.Figure(data=[trace], layout=layout)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "e2031ce099799a53d125b1cc0986be86bf51e0e1" + }, + "cell_type": "code", + "source": "py.iplot(fig)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "7f180dcbf1ac66e1e40aa21551467d0cfeb2f974" + }, + "cell_type": "markdown", + "source": "## 7-2 Plotly Offline from Command Line\nYou can plot your graphs from a python script from command line. On executing the script, it will open a web browser with your Plotly Graph drawn." + }, + { + "metadata": { + "trusted": true, + "_uuid": "cd95c77032e07526708e2339b0c4b862419286bb" + }, + "cell_type": "code", + "source": "import plotly.graph_objs as go\n\nplot([go.Scatter(x=[1, 2, 3], y=[3, 1, 6])])", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "77a55889cd7f12ec03adc2f8328548213aabfa14" + }, + "cell_type": "markdown", + "source": "## 7-3 Generating Offline Graphs within Jupyter Notebook\nYou can also plot your graphs offline inside a Jupyter Notebook Environment. First you need to initiate the Plotly Notebook mode as below:" + }, + { + "metadata": { + "trusted": true, + "_uuid": "7eaf6d6cc7809ed749c29f11aa153a7767fff21c" + }, + "cell_type": "code", + "source": "init_notebook_mode(connected=True)\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "3f536d2afd2f215c927bd2b6adbac28373fc9106" + }, + "cell_type": "markdown", + "source": "Run at the start of every ipython notebook to use plotly.offline. This injects the plotly.js source files into the notebook.\n\n" + }, + { + "metadata": { + "trusted": true, + "_uuid": "2f19a9f0852aa105d632d5d72dd61cb8f6ec7bc7" + }, + "cell_type": "code", + "source": "iplot([{\"x\": [1, 2, 3], \"y\": [3, 1, 6]}])\n", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "trusted": true, + "_uuid": "242f7a3ed1b231373ef5a2040e8c865e701e4879" + }, + "cell_type": "code", + "source": "import plotly.graph_objs as go\n\nimport numpy as np\n\nx = np.random.randn(2000)\ny = np.random.randn(2000)\niplot([go.Histogram2dContour(x=x, y=y, contours=dict(coloring='heatmap')),\n go.Scatter(x=x, y=y, mode='markers', marker=dict(color='white', size=3, opacity=0.3))], show_link=False)", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "beae557b399fbe7368ab4536ca1a5e074fe74741" + }, + "cell_type": "markdown", + "source": "## 7-4 Plotting Offline with Cufflinks\n" + }, + { + "metadata": { + "trusted": true, + "_uuid": "d43e390b979b5075e63e6836b26f150e6f9ed910" + }, + "cell_type": "code", + "source": "import cufflinks as cf\niplot(cf.datagen.lines().iplot(asFigure=True,\n kind='scatter',xTitle='Dates',yTitle='Returns',title='Returns'))", + "execution_count": null, + "outputs": [] + }, + { + "metadata": { + "_uuid": "485e0412b2708e99457d9423449363a647e5e369" + }, + "cell_type": "markdown", + "source": "## 7-5 CheatSheet" + }, + { + "metadata": { + "_uuid": "1cddfa2ed52693fae8532576cc1064c05777354c" + }, + "cell_type": "markdown", + "source": "plotly also has a quick-reference cheatsheet to help you [get started!](https://github.com/mjbahmani/Machine-Learning-Workflow-with-Python/blob/master/CheatSheet/python_cheat_sheet.pdf)[3]" + }, + { + "metadata": { + "_uuid": "a4a58d0f0aa8204797f2b0836d6204404280d6f3" + }, + "cell_type": "markdown", + "source": "\n
\n## 8-Conclusion\nIn this Kernel you have got an introduction to the main packages and ideas in the data scientist's toolbox.I hope you have had fun with it also, I want to hear your voice to update this kernel." + }, + { + "metadata": { + "_uuid": "dc985ec01fe0e62afd495b8ec461359f085071b6" + }, + "cell_type": "markdown", + "source": "\n\n---------------------------------------------------------------------\nFork, Run and Follow this kernel on GitHub:\n> ###### [ GitHub](https://github.com/mjbahmani/10-steps-to-become-a-data-scientist)\n\n\n-------------------------------------------------------------------------------------------------------------\n **I hope you find this kernel helpful and some UPVOTES would be very much appreciated**\n \n -----------\n" + }, + { + "metadata": { + "_uuid": "3eb9f355dc3885ea4b0f38968a4bf14d20de02fd" + }, + "cell_type": "markdown", + "source": "
\n## 8- References\n1. [Coursera](https://www.coursera.org/specializations/data-science-python)\n1. [GitHub](https://github.com/mjbahmani)\n1. [plot.ly](https://plot.ly/python/offline/)" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.6.6", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} \ No newline at end of file diff --git a/kernel.ipynb b/Tutorial on Ensemble Learning/Tutorial on Ensemble Learning.ipynb similarity index 59% rename from kernel.ipynb rename to Tutorial on Ensemble Learning/Tutorial on Ensemble Learning.ipynb index 8084ef3..12fc9e6 100644 --- a/kernel.ipynb +++ b/Tutorial on Ensemble Learning/Tutorial on Ensemble Learning.ipynb @@ -6,18 +6,25 @@ "_uuid": "a8f9622945156d6337ba73c481da2de7efef7384" }, "source": [ - "## A Comprehensive Machine Learning Workflow with Python\n", - "There are plenty of courses and tutorials that can help you learn machine learning from scratch but here in Kaggle, I want to solve a simple machine learning problem as a comprehensive workflow with python packages.Then \n", + "##
Tutorial on Ensemble Learning
\n", "\n", - "After reading, you can use this workflow to solve other real problems and use it as a template to deal with machine learning problems.\n", + "
There are plenty of courses and tutorials that can help you learn machine learning from scratch but here in Kaggle, I want to predict House prices(in the next version) a popular machine learning Dataset as a comprehensive workflow with python packages. \n", + "After reading, you can use this workflow to solve other real problems and use it as a template to deal with machine learning problems.
\n", + "
last update: 10/15/2018
\n", "\n", + "\n", + "\n", + ">###### you may be interested have a look at it: [**A Comprehensive ML Workflow for House Prices**](https://www.kaggle.com/mjbahmani/a-comprehensive-ml-workflow-for-house-prices)\n", + "\n", + "\n", + "---------------------------------------------------------------------\n", "you can follow me on:\n", "> ###### [ GitHub](https://github.com/mjbahmani)\n", - "> ###### [LinkedIn](https://www.linkedin.com/in/bahmani/)\n", "> ###### [Kaggle](https://www.kaggle.com/mjbahmani/)\n", - "\n", - "\n", - " **I hope you find this kernel helpful and some upvotes would be very much appreciated**" + "-------------------------------------------------------------------------------------------------------------\n", + " **I hope you find this kernel helpful and some upvotes would be very much appreciated**\n", + " \n", + " -----------" ] }, { @@ -27,60 +34,64 @@ }, "source": [ "## Notebook Content\n", - "* 1- Introduction\n", - "* 2- Machine learning workflow\n", - "* 3- Problem Definition\n", - "* 3-1 Problem feature\n", - "* 3-2 Aim\n", - "* 3-3 Variables\n", - "* 4- Inputs & Outputs\n", - "* 4-1 Inputs \n", - "* 4-2 Outputs\n", - "* 5- Installation\n", - "* 5-1 jupyter notebook\n", - "* 5-2 kaggle kernel\n", - "* 5-3 Colab notebook\n", - "* 5-4 install python & packages\n", - "* 5-5 Loading Packages\n", - "* 6- Exploratory data analysis\n", - "* 6-1 Data Collection\n", - "* 6-2 Visualization\n", - "* 6-2-1 Scatter plot\n", - "* 6-2-2 Box\n", - "* 6-2-3 Histogram\n", - "* 6-2-4 Multivariate Plots\n", - "* 6-2-5 Violinplots\n", - "* 6-2-6 Pair plot\n", - "* 6-2-7 Kde plot\n", - "* 6-2-8 Joint plot\n", - "* 6-2-9 Andrews curves\n", - "* 6-2-10 Heatmap\n", - "* 6-2-11 Radviz\n", - "* 6-3 Data Preprocessing\n", - "* 6-4 Data Cleaning\n", - "* 7- Model Deployment\n", - "* 7-1 KNN\n", - "* 7-2 Radius Neighbors Classifier\n", - "* 7-3 Logistic Regression\n", - "* 7-4 Passive Aggressive Classifier\n", - "* 7-5 Naive Bayes\n", - "* 7-6 MultinomialNB\n", - "* 7-7 BernoulliNB\n", - "* 7-8 SVM\n", - "* 7-9 Nu-Support Vector Classification\n", - "* 7-10Linear Support Vector Classification\n", - "* 7-11 Decision Tree\n", - "* 7-12 ExtraTreeClassifier\n", - "* 7-13 Neural network\n", - "* 7-14 RandomForest\n", - "* 7-15 Bagging classifier \n", - "* 7-16 AdaBoost classifier\n", - "* 7-17 Gradient Boosting Classifier\n", - "* 7-18 Linear Discriminant Analysis\n", - "* 7-19 Quadratic Discriminant Analysis\n", - "* 7-20 Kmeans\n", - "* 8- Conclusion\n", - "* 9- References" + "* 1- [Introduction](#1)\n", + "* 2- [Machine learning workflow](#2)\n", + "* 2-1 [Real world Application Vs Competitions](#2)\n", + "\n", + "* 3- [Problem Definition](#3)\n", + "* 3-1 [Problem feature](#4)\n", + "* 3-2 [Aim](#5)\n", + "* 3-3 [Variables](#6)\n", + "* 4-[ Inputs & Outputs](#7)\n", + "* 4-1 [Inputs ](#8)\n", + "* 4-2 [Outputs](#9)\n", + "* 5- [Installation](#10)\n", + "* 5-1 [ jupyter notebook](#11)\n", + "* 5-2[ kaggle kernel](#12)\n", + "* 5-3 [Colab notebook](#13)\n", + "* 5-4 [install python & packages](#14)\n", + "* 5-5 [Loading Packages](#15)\n", + "* 6- [Exploratory data analysis](#16)\n", + "* 6-1 [Data Collection](#17)\n", + "* 6-2 [Visualization](#18)\n", + "* 6-2-1 [Scatter plot](#19)\n", + "* 6-2-2 [Box](#20)\n", + "* 6-2-3 [Histogram](#21)\n", + "* 6-2-4 [Multivariate Plots](#22)\n", + "* 6-2-5 [Violinplots](#23)\n", + "* 6-2-6 [Pair plot](#24)\n", + "* 6-2-7 [Kde plot](#25)\n", + "* 6-2-8 [Joint plot](#26)\n", + "* 6-2-9 [Andrews curves](#27)\n", + "* 6-2-10 [Heatmap](#28)\n", + "* 6-2-11 [Radviz](#29)\n", + "* 6-3 [Data Preprocessing](#30)\n", + "* 6-4 [Data Cleaning](#31)\n", + "* 7- [Model Deployment](#32)\n", + "* 7-1[ KNN](#33)\n", + "* 7-2 [Radius Neighbors Classifier](#34)\n", + "* 7-3 [Logistic Regression](#35)\n", + "* 7-4 [Passive Aggressive Classifier](#36)\n", + "* 7-5 [Naive Bayes](#37)\n", + "* 7-6 [MultinomialNB](#38)\n", + "* 7-7 [BernoulliNB](#39)\n", + "* 7-8 [SVM](#40)\n", + "* 7-9 [Nu-Support Vector Classification](#41)\n", + "* 7-10 [Linear Support Vector Classification](#42)\n", + "* 7-11 [Decision Tree](#43)\n", + "* 7-12 [ExtraTreeClassifier](#44)\n", + "* 7-13 [Neural network](#45)\n", + "* 7-13-1 [What is a Perceptron?](#45)\n", + "* 7-14 [RandomForest](#46)\n", + "* 7-15 [Bagging classifier ](#47)\n", + "* 7-16 [AdaBoost classifier](#48)\n", + "* 7-17 [Gradient Boosting Classifier](#49)\n", + "* 7-18 [Linear Discriminant Analysis](#50)\n", + "* 7-19 [Quadratic Discriminant Analysis](#51)\n", + "* 7-20 [Kmeans](#52)\n", + "* 7-21 [Backpropagation](#53)\n", + "* 9- [Conclusion](#54)\n", + "* 10- [References](#55)" ] }, { @@ -89,8 +100,9 @@ "_uuid": "750903cc2679d39058f56df6c6c040be02b748df" }, "source": [ + "
\n", "## 1- Introduction\n", - "This is a **comprehensive ML techniques for IRIS** data set, that I have spent for more than two months to complete it.\n", + "This is a **comprehensive ML techniques with python** , that I have spent for more than two months to complete it.\n", "\n", "it is clear that everyone in this community is familiar with IRIS dataset but if you need to review your information about the dataset please visit this [link](https://archive.ics.uci.edu/ml/datasets/iris).\n", "\n", @@ -106,24 +118,37 @@ "_uuid": "e11b73b618b0f6e4335520ef80267c6d577d1ba5" }, "source": [ + "
\n", "## 2- Machine Learning Workflow\n", + "Field of \tstudy \tthat \tgives\tcomputers\tthe\tability \tto\tlearn \twithout \tbeing\n", + "explicitly \tprogrammed.\n", + "\n", + "Arthur\tSamuel, 1959\n", + "\n", "If you have already read some [machine learning books](https://towardsdatascience.com/list-of-free-must-read-machine-learning-books-89576749d2ff). You have noticed that there are different ways to stream data into machine learning.\n", "\n", - "most of these books share the following steps:\n", - "* Define Problem\n", + "most of these books share the following steps (checklist):\n", + "* Define the Problem(Look at the big picture)\n", "* Specify Inputs & Outputs\n", - "* Exploratory data analysis\n", "* Data Collection\n", + "* Exploratory data analysis\n", "* Data Preprocessing\n", - "* Data Cleaning\n", - "* Visualization\n", "* Model Design, Training, and Offline Evaluation\n", "* Model Deployment, Online Evaluation, and Monitoring\n", "* Model Maintenance, Diagnosis, and Retraining\n", "\n", "**You can see my workflow in the below image** :\n", " \n", - "\n" + "\n", + "**you should\tfeel free\tto\tadapt \tthis\tchecklist \tto\tyour needs**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2-1 Real world Application Vs Competitions\n", + "" ] }, { @@ -132,11 +157,13 @@ "_uuid": "600be852c0d28e7c0c5ebb718904ab15a536342c" }, "source": [ + "
\n", "## 3- Problem Definition\n", - "I think one of the important things when you start a new machine learning project is Defining your problem.\n", + "I think one of the important things when you start a new machine learning project is Defining your problem. that means you should understand business problem.( **Problem Formalization**)\n", "\n", "Problem Definition has four steps that have illustrated in the picture below:\n", "\n", + "
\n", "### 3-1 Problem Feature\n", "we will use the classic Iris data set. This dataset contains information about three different types of Iris flowers:\n", "\n", @@ -174,8 +201,10 @@ "6- All of the numeric attributes are in the same units and the same scale, not requiring any special scaling or transforms to get started.[5]\n", "\n", "7- we can define problem as clustering(unsupervised algorithm) project too.\n", + "
\n", "### 3-2 Aim\n", "The aim is to classify iris flowers among three species (setosa, versicolor or virginica) from measurements of length and width of sepals and petals\n", + "
\n", "### 3-3 Variables\n", "The variables are :\n", "**sepal_length**: Sepal length, in centimeters, used as input.\n", @@ -184,7 +213,11 @@ "**petal_width**: Petal width, in centimeters, used as input.\n", "**setosa**: Iris setosa, true or false, used as target.\n", "**versicolour**: Iris versicolour, true or false, used as target.\n", - "**virginica**: Iris virginica, true or false, used as target." + "**virginica**: Iris virginica, true or false, used as target.\n", + "\n", + "**<< Note >>**\n", + "> You must answer the following question:\n", + "How does your company expact to use and benfit from your model." ] }, { @@ -193,7 +226,9 @@ "_uuid": "8bb4dfebb521f83543e1d45db3559216dad8f6fb" }, "source": [ + "
\n", "## 4- Inputs & Outputs\n", + "
\n", "### 4-1 Inputs\n", "**Iris** is a very popular **classification** and **clustering** problem in machine learning and it is such as \"Hello world\" program when you start learning a new programming language. then I decided to apply Iris on 20 machine learning method on it.\n", "The Iris flower data set or Fisher's Iris data set is a **multivariate data set** introduced by the British statistician and biologist Ronald Fisher in his 1936 paper The use of multiple measurements in taxonomic problems as an example of linear discriminant analysis. It is sometimes called Anderson's Iris data set because Edgar Anderson collected the data to quantify the morphologic variation of Iris flowers in three related species. Two of the three species were collected in the Gaspé Peninsula \"all from the same pasture, and picked on the same day and measured at the same time by the same person with the same apparatus\".\n", @@ -202,6 +237,7 @@ "As a result, **iris dataset is used as the input of all algorithms**.\n", "![iris](https://image.ibb.co/gbH3ue/iris.png)\n", "[image source](https://rpubs.com/wjholst/322258)\n", + "
\n", "### 4-2 Outputs\n", "the outputs for our algorithms totally depend on the type of classification or clustering algorithms.\n", "the outputs can be the number of clusters or predict for new input.\n", @@ -217,6 +253,7 @@ "_uuid": "89ee0cda57822cd4102eadf8992c5bfe1964d557" }, "source": [ + "
\n", "## 5-Installation\n", "#### Windows:\n", "* Anaconda (from https://www.continuum.io) is a free Python distribution for SciPy stack. It is also available for Linux and Mac.\n", @@ -236,6 +273,7 @@ "_uuid": "c1793fb141d3338bbc4300874be6ffa5cb1a9139" }, "source": [ + "
\n", "## 5-1 Jupyter notebook\n", "I strongly recommend installing **Python** and **Jupyter** using the **[Anaconda Distribution](https://www.anaconda.com/download/)**, which includes Python, the Jupyter Notebook, and other commonly used packages for scientific computing and data science.\n", "\n", @@ -262,6 +300,7 @@ "_uuid": "8a70c253d5afa93f07a7a7e048dbb2d7812c8d10" }, "source": [ + "
\n", "## 5-2 Kaggle Kernel\n", "Kaggle kernel is an environment just like you use jupyter notebook, it's an **extension** of the where in you are able to carry out all the functions of jupyter notebooks plus it has some added tools like forking et al." ] @@ -272,6 +311,7 @@ "_uuid": "237bbe4e4509c9491ce165e3599c432b979d7b90" }, "source": [ + "
\n", "## 5-3 Colab notebook\n", "**Colaboratory** is a research tool for machine learning education and research. It’s a Jupyter notebook environment that requires no setup to use.\n", "### 5-3-1 What browsers are supported?\n", @@ -288,6 +328,7 @@ "_uuid": "fbedcae8843986c2139f18dad4b5f313e6535ac5" }, "source": [ + "
\n", "## 5-5 Loading Packages\n", "In this kernel we are using the following packages:" ] @@ -307,7 +348,8 @@ "execution_count": null, "metadata": { "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", - "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5" + "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5", + "collapsed": true }, "outputs": [], "source": [ @@ -356,6 +398,7 @@ "_uuid": "04ff1a533119d589baee777c21194a951168b0c7" }, "source": [ + "
\n", "## 6- Exploratory Data Analysis(EDA)\n", " In this section, you'll learn how to use graphical and numerical techniques to begin uncovering the structure of your data. \n", " \n", @@ -368,7 +411,7 @@ "* 5-2 Visualization\n", "* 5-3 Data Preprocessing\n", "* 5-4 Data Cleaning\n", - "" + "" ] }, { @@ -377,10 +420,11 @@ "_uuid": "cedecea930b278f86292367cc28d2996a235a169" }, "source": [ + "
\n", "## 6-1 Data Collection\n", "**Data collection** is the process of gathering and measuring data, information or any variables of interest in a standardized and established manner that enables the collector to answer or test hypothesis and evaluate outcomes of the particular collection.[techopedia]\n", "\n", - "Iris data sets consists of 3 different types of irises’ (Setosa, Versicolour, and Virginica) petal and sepal length, stored in a 150x4 numpy.ndarray\n", + "**Iris dataset** consists of 3 different types of irises’ (Setosa, Versicolour, and Virginica) petal and sepal length, stored in a 150x4 numpy.ndarray\n", "\n", "The rows being the samples and the columns being: Sepal Length, Sepal Width, Petal Length and Petal Width.[6]\n" ] @@ -389,7 +433,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "9269ae851b744856bce56840637030a16a5877e1" + "_uuid": "9269ae851b744856bce56840637030a16a5877e1", + "collapsed": true }, "outputs": [], "source": [ @@ -422,7 +467,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "edd043f8feb76cfe51b79785302ca4936ceb7b51" + "_uuid": "edd043f8feb76cfe51b79785302ca4936ceb7b51", + "collapsed": true }, "outputs": [], "source": [ @@ -432,676 +478,777 @@ { "cell_type": "markdown", "metadata": { - "_uuid": "581b90e6a869c3793472c7edd59091d6d6342fb2" + "_uuid": "055772bd170aa8018aabd85106b76675802c33b3" }, "source": [ - "## 6-1-1 Statistical Summary\n", - "1- Dimensions of the dataset.\n", - "\n", - "2- Peek at the data itself.\n", - "\n", - "3- Statistical summary of all attributes.\n", + "
\n", + "## 6-2 Visualization\n", + "**Data visualization** is the presentation of data in a pictorial or graphical format. It enables decision makers to see analytics presented visually, so they can grasp difficult concepts or identify new patterns.\n", "\n", - "4- Breakdown of the data by the class variable.[7]\n", + "With interactive visualization, you can take the concept a step further by using technology to drill down into charts and graphs for more detail, interactively changing what data you see and how it’s processed.[SAS]\n", "\n", - "Don’t worry, each look at the data is one command. These are useful commands that you can use again and again on future projects." + " In this section I show you **11 plots** with **matplotlib** and **seaborn** that is listed in the blew picture:\n", + " \n" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": { - "_uuid": "4b45251be7be77333051fe738639104ae1005fa5" + "_uuid": "b0014a7a52e714996bc443981c853095926d20e5" }, - "outputs": [], "source": [ - "# shape\n", - "print(dataset.shape)" + "
\n", + "### 6-2-1 Scatter plot\n", + "\n", + "Scatter plot Purpose To identify the type of relationship (if any) between two quantitative variables\n", + "\n", + "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "c64e9d3e0bf394fb833de94a0fc5c34f69fce24c" + "_uuid": "af099546eed64ebc796403d4139cb4c977c27b03", + "collapsed": true }, "outputs": [], "source": [ - "#columns*rows\n", - "dataset.size" + "# Modify the graph above by assigning each species an individual color.\n", + "sns.FacetGrid(dataset, hue=\"Species\", size=5) \\\n", + " .map(plt.scatter, \"SepalLengthCm\", \"SepalWidthCm\") \\\n", + " .add_legend()\n", + "plt.show()" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "277e1998627d6a3ddeff4e913a6b8c3dc81dec96" + "_uuid": "d1c7b62b5f8cba427bca13049256365141655372" }, "source": [ - "\n", - "We can get a quick idea of how many instances (rows) and how many attributes (columns) the data contains with the shape property.\n", - "\n", - "You should see 150 instances and 5 attributes:" + "
\n", + "### 6-2-2 Box\n", + "In descriptive statistics, a **box plot** or boxplot is a method for graphically depicting groups of numerical data through their quartiles. Box plots may also have lines extending vertically from the boxes (whiskers) indicating variability outside the upper and lower quartiles, hence the terms box-and-whisker plot and box-and-whisker diagram.[wikipedia]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "ca840f02925751186f87e402fcb5f637ab1ab8a0" + "_uuid": "0655e20f31a582f861d391308a088778cd7eaae9", + "collapsed": true }, "outputs": [], "source": [ - "print(dataset.info())" + "dataset.plot(kind='box', subplots=True, layout=(2,3), sharex=False, sharey=False)\n", + "plt.figure()\n", + "#This gives us a much clearer idea of the distribution of the input attributes:\n", + "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "4b90d165a007106ae99809ad28edd75bd8153dd8" + "_uuid": "f7f6426fd44bcd77d35a5fdbc8c4fc4f18d991ad", + "collapsed": true }, "outputs": [], "source": [ - "dataset['Species'].unique()" + "# To plot the species data using a box plot:\n", + "\n", + "sns.boxplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset )\n", + "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "8accfbddf2228274ad412c3ad3be72b4107d6f6c" + "_uuid": "7b193e4aa7e6fb337d3f65c334849094addd097a", + "collapsed": true }, "outputs": [], "source": [ - "dataset[\"Species\"].value_counts()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "_uuid": "ae08b544a8d4202c7d0a47ec83d685e81c91a66d" - }, - "source": [ - "to check the first 5 rows of the data set, we can use head(5)." + "# Use Seaborn's striplot to add data points on top of the box plot \n", + "# Insert jitter=True so that the data points remain scattered and not piled into a verticle line.\n", + "# Assign ax to each axis, so that each plot is ontop of the previous axis. \n", + "\n", + "ax= sns.boxplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset)\n", + "ax= sns.stripplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset, jitter=True, edgecolor=\"gray\")\n", + "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "5899889553c3416b27e93efceddb106eb71f5156" + "_uuid": "56adbafa89c117118621c72b3b7cb19edc21298e", + "collapsed": true }, "outputs": [], "source": [ - "dataset.head(5) " + "# Tweek the plot above to change fill and border color color using ax.artists.\n", + "# Assing ax.artists a variable name, and insert the box number into the corresponding brackets\n", + "\n", + "ax= sns.boxplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset)\n", + "ax= sns.stripplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset, jitter=True, edgecolor=\"gray\")\n", + "\n", + "boxtwo = ax.artists[2]\n", + "boxtwo.set_facecolor('red')\n", + "boxtwo.set_edgecolor('black')\n", + "boxthree=ax.artists[1]\n", + "boxthree.set_facecolor('yellow')\n", + "boxthree.set_edgecolor('black')\n", + "\n", + "plt.show()" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "1150b6ac3d82562aefd5c64f9f01accee5eace4d" + "_uuid": "743a92c3c2fff1a1f99845518247f7971ad18b7c" }, "source": [ - "to check out last 5 row of the data set, we use tail() function" + "
\n", + "### 6-2-3 Histogram\n", + "We can also create a **histogram** of each input variable to get an idea of the distribution.\n", + "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "79339442ff1f53ae1054d794337b9541295d3305" + "_uuid": "5da0520ed3e738ee8814b2d91843ed4acec2b6e6", + "collapsed": true }, "outputs": [], "source": [ - "dataset.tail() " + "# histograms\n", + "dataset.hist(figsize=(15,20))\n", + "plt.figure()" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "2c288c3dc8656a872a8529368812546e434d3a22" - }, - "source": [ - "to pop up 5 random rows from the data set, we can use **sample(5)** function" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "_uuid": "09eb18d1fcf4a2b73ba2f5ddce99dfa521681140" + "_uuid": "b4e3de19781686010c6038f0e3076eb678398169" }, - "outputs": [], "source": [ - "dataset.sample(5) " + "It looks like perhaps two of the input variables have a Gaussian distribution. This is useful to note as we can use algorithms that can exploit this assumption.\n", + "\n" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "c8a1cc36348c68fb98d6cb28aa9919fc5f2892f3" + "_uuid": "3bbff56707484f88625eb8ef309b712ba03f939e" }, "source": [ - "to give a statistical summary about the dataset, we can use **describe()" + "
\n", + "### 6-2-4 Multivariate Plots\n", + "Now we can look at the interactions between the variables.\n", + "\n", + "First, let’s look at scatterplots of all pairs of attributes. This can be helpful to spot structured relationships between input variables." ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "3f7211e96627b9a81c5b620a9ba61446f7719ea3" + "_uuid": "eb4e5d117e4ef40d7668632f42130206a5537bd0", + "collapsed": true }, "outputs": [], "source": [ - "dataset.describe() " + "\n", + "# scatter plot matrix\n", + "pd.plotting.scatter_matrix(dataset,figsize=(10,10))\n", + "plt.figure()" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "031d16ca235837e889734635ecff193be64b27a4" + "_uuid": "de7fea7986071fafbe0b93933e3beda445cbe373" }, "source": [ - "to check out how many null info are on the dataset, we can use **isnull().sum()" + "Note the diagonal grouping of some pairs of attributes. This suggests a high correlation and a predictable relationship." ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": { - "_uuid": "8807b632269e2fa734ad26e8513199400fc09a83" + "_uuid": "e0f696ec021ec99c1058a62e22c8b73082fe6fa7" }, - "outputs": [], "source": [ - "dataset.isnull().sum()" + "
\n", + "### 6-2-5 violinplots" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "446e6162e16325213047ff31454813455668b574" + "_uuid": "e352d2f8340609adf4bf6718b1d2ecee0fa730b5", + "collapsed": true }, "outputs": [], "source": [ - "dataset.groupby('Species').count()" + "# violinplots on petal-length for each species\n", + "sns.violinplot(data=dataset,x=\"Species\", y=\"PetalLengthCm\")" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "c2f1eaf0b6dfdc7cc4dace04614e99ed56425d00" + "_uuid": "0ed35bceb87051e56316d35a630334518e8b8c64" }, "source": [ - "to print dataset **columns**, we can use columns atribute" + "
\n", + "### 6-2-6 pairplot" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "909d61b33ec06249d0842e6115597bbacf21163f" + "_uuid": "b80350add6f9a742f10bffc4b497562f8bebea95", + "collapsed": true }, "outputs": [], "source": [ - "dataset.columns" + "# Using seaborn pairplot to see the bivariate relation between each pair of features\n", + "sns.pairplot(dataset, hue=\"Species\")" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "22bc5d81c18275ee1fb082c0adbb7a65bdbec4cc" + "_uuid": "fb187bcc0fb51e53f8abe9e3952c6ae5c3177411" }, "source": [ - "**<< Note 2 >>**\n", - "in pandas's data frame you can perform some query such as \"where\"" + "From the plot, we can see that the species setosa is separataed from the other two across all feature combinations\n", + "\n", + "We can also replace the histograms shown in the diagonal of the pairplot by kde." ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "c8c8d9fd63d9bdb601183aeb4f1435affeb8a596" + "_uuid": "5570ff32db5a4740b26b244531af552ac1b57f4a", + "collapsed": true }, "outputs": [], "source": [ - "dataset.where(dataset ['Species']=='Iris-setosa')" + "# updating the diagonal elements in a pairplot to show a kde\n", + "sns.pairplot(dataset, hue=\"Species\",diag_kind=\"kde\")" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": { - "_uuid": "8b545ff7e8367c5ab9c1db710f70b6936ac8422c" + "_uuid": "2544d3c2dd34a360d295019d8cb597c7ef8f66bc" }, - "outputs": [], "source": [ - "dataset[dataset['SepalLengthCm']>7.2]" + "
\n", + "### 6-2-7 kdeplot" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": null, "metadata": { - "_uuid": "055772bd170aa8018aabd85106b76675802c33b3" + "_uuid": "1d07222b89303b386e9e824d52cc73c045667f25", + "collapsed": true }, + "outputs": [], "source": [ - "## 6-2 Visualization\n", - "**Data visualization** is the presentation of data in a pictorial or graphical format. It enables decision makers to see analytics presented visually, so they can grasp difficult concepts or identify new patterns.\n", - "\n", - "With interactive visualization, you can take the concept a step further by using technology to drill down into charts and graphs for more detail, interactively changing what data you see and how it’s processed.[SAS]" + "# seaborn's kdeplot, plots univariate or bivariate density estimates.\n", + "#Size can be changed by tweeking the value used\n", + "sns.FacetGrid(dataset, hue=\"Species\", size=5).map(sns.kdeplot, \"PetalLengthCm\").add_legend()\n", + "plt.show()" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "b0014a7a52e714996bc443981c853095926d20e5" + "_uuid": "560d8e8f17bacefaf8c3855a9648f26b82fdee9b" }, "source": [ - "### 6-2-1 Scatter plot\n", - "\n", - "Scatter plot Purpose To identify the type of relationship (if any) between two quantitative variables\n", - "\n", - "\n" + "
\n", + "### 6-2-8 jointplot" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "af099546eed64ebc796403d4139cb4c977c27b03" + "_uuid": "4adb4da16ea61e0f1a12bc9925dfbbaaa81e0360", + "collapsed": true }, "outputs": [], "source": [ - "# Modify the graph above by assigning each species an individual color.\n", - "sns.FacetGrid(dataset, hue=\"Species\", size=5) \\\n", - " .map(plt.scatter, \"SepalLengthCm\", \"SepalWidthCm\") \\\n", - " .add_legend()\n", + "# Use seaborn's jointplot to make a hexagonal bin plot\n", + "#Set desired size and ratio and choose a color.\n", + "sns.jointplot(x=\"SepalLengthCm\", y=\"SepalWidthCm\", data=dataset, size=10,ratio=10, kind='hex',color='green')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "d1c7b62b5f8cba427bca13049256365141655372" + "_uuid": "3768e31e990bfe4c2ff7b45087fbba85e0560d00" }, "source": [ - "### 6-2-2 Box\n", - "In descriptive statistics, a **box plot** or boxplot is a method for graphically depicting groups of numerical data through their quartiles. Box plots may also have lines extending vertically from the boxes (whiskers) indicating variability outside the upper and lower quartiles, hence the terms box-and-whisker plot and box-and-whisker diagram.[wikipedia]" + "
\n", + "### 6-2-9 andrews_curves" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "0655e20f31a582f861d391308a088778cd7eaae9" + "_uuid": "937b6856d109001db14a3ac99568df45efbe1070", + "collapsed": true }, "outputs": [], "source": [ - "dataset.plot(kind='box', subplots=True, layout=(2,3), sharex=False, sharey=False)\n", - "plt.figure()\n", - "#This gives us a much clearer idea of the distribution of the input attributes:\n", - "\n" + "#In Pandas use Andrews Curves to plot and visualize data structure.\n", + "#Each multivariate observation is transformed into a curve and represents the coefficients of a Fourier series.\n", + "#This useful for detecting outliers in times series data.\n", + "#Use colormap to change the color of the curves\n", + "\n", + "from pandas.tools.plotting import andrews_curves\n", + "andrews_curves(dataset.drop(\"Id\", axis=1), \"Species\",colormap='rainbow')\n", + "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "f7f6426fd44bcd77d35a5fdbc8c4fc4f18d991ad" + "_uuid": "263eaa9d2bfad0f8c68b6e8e874bdc11a6e802ac", + "collapsed": true }, "outputs": [], "source": [ - "# To plot the species data using a box plot:\n", - "\n", - "sns.boxplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset )\n", - "plt.show()" + "# we will use seaborn jointplot shows bivariate scatterplots and univariate histograms with Kernel density \n", + "# estimation in the same figure\n", + "sns.jointplot(x=\"SepalLengthCm\", y=\"SepalWidthCm\", data=dataset, size=6, kind='kde', color='#800000', space=0)" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": { - "_uuid": "7b193e4aa7e6fb337d3f65c334849094addd097a" + "_uuid": "8e73333289d17dd648b7b2112d7fe3fe7ea444d0" }, - "outputs": [], "source": [ - "# Use Seaborn's striplot to add data points on top of the box plot \n", - "# Insert jitter=True so that the data points remain scattered and not piled into a verticle line.\n", - "# Assign ax to each axis, so that each plot is ontop of the previous axis. \n", - "\n", - "ax= sns.boxplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset)\n", - "ax= sns.stripplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset, jitter=True, edgecolor=\"gray\")\n", - "plt.show()" + "
\n", + "### 6-2-10 Heatmap" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "56adbafa89c117118621c72b3b7cb19edc21298e" + "_uuid": "3100955ca9dc61ac7d435e9c064d10d06f26afa7", + "collapsed": true }, "outputs": [], "source": [ - "# Tweek the plot above to change fill and border color color using ax.artists.\n", - "# Assing ax.artists a variable name, and insert the box number into the corresponding brackets\n", - "\n", - "ax= sns.boxplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset)\n", - "ax= sns.stripplot(x=\"Species\", y=\"PetalLengthCm\", data=dataset, jitter=True, edgecolor=\"gray\")\n", - "\n", - "boxtwo = ax.artists[2]\n", - "boxtwo.set_facecolor('red')\n", - "boxtwo.set_edgecolor('black')\n", - "boxthree=ax.artists[1]\n", - "boxthree.set_facecolor('yellow')\n", - "boxthree.set_edgecolor('black')\n", - "\n", + "plt.figure(figsize=(7,4)) \n", + "sns.heatmap(dataset.corr(),annot=True,cmap='cubehelix_r') #draws heatmap with input as the correlation matrix calculted by(iris.corr())\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "743a92c3c2fff1a1f99845518247f7971ad18b7c" + "_uuid": "b81dbdd5dd8cb92a86b1f7114ffb6f088458a527" }, "source": [ - "### 6-2-3 Histogram\n", - "We can also create a **histogram** of each input variable to get an idea of the distribution.\n", - "\n" + "
\n", + "### 6-2-11 radviz" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "5da0520ed3e738ee8814b2d91843ed4acec2b6e6" + "_uuid": "33fed3027d7242227d612a84bbb42b012356091b", + "collapsed": true }, "outputs": [], "source": [ - "# histograms\n", - "dataset.hist(figsize=(15,20))\n", - "plt.figure()" + "# A final multivariate visualization technique pandas has is radviz\n", + "# Which puts each feature as a point on a 2D plane, and then simulates\n", + "# having each sample attached to those points through a spring weighted\n", + "# by the relative value for that feature\n", + "from pandas.tools.plotting import radviz\n", + "radviz(dataset.drop(\"Id\", axis=1), \"Species\")" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "b4e3de19781686010c6038f0e3076eb678398169" + "_uuid": "0859caf857ceeb19f4cc47ccd11fbbfdfe4b0dd9" }, "source": [ - "It looks like perhaps two of the input variables have a Gaussian distribution. This is useful to note as we can use algorithms that can exploit this assumption.\n", - "\n" + "**<< Note >>**\n", + "\n", + "**Yellowbrick** is a suite of visual diagnostic tools called “Visualizers” that extend the Scikit-Learn API to allow human steering of the model selection process. In a nutshell, Yellowbrick combines scikit-learn with matplotlib in the best tradition of the scikit-learn documentation, but to produce visualizations for your models! " ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "3bbff56707484f88625eb8ef309b712ba03f939e" + "_uuid": "5af51158a5bc342947c553392e3d1665ac24ba62" }, "source": [ - "### 6-2-4 Multivariate Plots\n", - "Now we can look at the interactions between the variables.\n", + "### 6-2-12 Conclusion\n", + "we have used Python to apply data visualization tools to the Iris dataset. Color and size changes were made to the data points in scatterplots. I changed the border and fill color of the boxplot and violin, respectively." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "91dda1f631cf4ed362162501aaaac6d19cfd6cc7" + }, + "source": [ + "
\n", + "## 6-3 Data Preprocessing\n", + "**Data preprocessing** refers to the transformations applied to our data before feeding it to the algorithm.\n", + " \n", + "Data Preprocessing is a technique that is used to convert the raw data into a clean data set. In other words, whenever the data is gathered from different sources it is collected in raw format which is not feasible for the analysis.\n", + "there are plenty of steps for data preprocessing and we just listed some of them :\n", + "* removing Target column (id)\n", + "* Sampling (without replacement)\n", + "* Making part of iris unbalanced and balancing (with undersampling and SMOTE)\n", + "* Introducing missing values and treating them (replacing by average values)\n", + "* Noise filtering\n", + "* Data discretization\n", + "* Normalization and standardization\n", + "* PCA analysis\n", + "* Feature selection (filter, embedded, wrapper)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "581b90e6a869c3793472c7edd59091d6d6342fb2" + }, + "source": [ + "## 6-3-1 Features\n", + "Features:\n", + "* numeric\n", + "* categorical\n", + "* ordinal\n", + "* datetime\n", + "* coordinates\n", "\n", - "First, let’s look at scatterplots of all pairs of attributes. This can be helpful to spot structured relationships between input variables." + "find the type of features in titanic dataset\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 6-3-2 Explorer Dataset\n", + "1- Dimensions of the dataset.\n", + "\n", + "2- Peek at the data itself.\n", + "\n", + "3- Statistical summary of all attributes.\n", + "\n", + "4- Breakdown of the data by the class variable.[7]\n", + "\n", + "Don’t worry, each look at the data is **one command**. These are useful commands that you can use again and again on future projects." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "4b45251be7be77333051fe738639104ae1005fa5", + "collapsed": true + }, + "outputs": [], + "source": [ + "# shape\n", + "print(dataset.shape)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "eb4e5d117e4ef40d7668632f42130206a5537bd0" + "_uuid": "c64e9d3e0bf394fb833de94a0fc5c34f69fce24c", + "collapsed": true }, "outputs": [], + "source": [ + "#columns*rows\n", + "dataset.size" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "277e1998627d6a3ddeff4e913a6b8c3dc81dec96" + }, "source": [ "\n", - "# scatter plot matrix\n", - "pd.plotting.scatter_matrix(dataset,figsize=(10,10))\n", - "plt.figure()" + "We can get a quick idea of how many instances (rows) and how many attributes (columns) the data contains with the shape property.\n", + "\n", + "You should see 150 instances and 5 attributes:" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "de7fea7986071fafbe0b93933e3beda445cbe373" + "_uuid": "95ee5e18f97bc410df1e54ac74e32cdff2b30755" }, "source": [ - "Note the diagonal grouping of some pairs of attributes. This suggests a high correlation and a predictable relationship." + "for getting some information about the dataset you can use **info()** command" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "ca840f02925751186f87e402fcb5f637ab1ab8a0", + "collapsed": true + }, + "outputs": [], + "source": [ + "print(dataset.info())" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "e0f696ec021ec99c1058a62e22c8b73082fe6fa7" + "_uuid": "3458838205be4c7fbff88e95ef69934e13e2199b" }, "source": [ - "### 6-2-5 violinplots" + "you see number of unique item for Species with command below:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "e352d2f8340609adf4bf6718b1d2ecee0fa730b5" + "_uuid": "4b90d165a007106ae99809ad28edd75bd8153dd8", + "collapsed": true }, "outputs": [], "source": [ - "# violinplots on petal-length for each species\n", - "sns.violinplot(data=dataset,x=\"Species\", y=\"PetalLengthCm\")" + "dataset['Species'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8accfbddf2228274ad412c3ad3be72b4107d6f6c", + "collapsed": true + }, + "outputs": [], + "source": [ + "dataset[\"Species\"].value_counts()\n" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "0ed35bceb87051e56316d35a630334518e8b8c64" + "_uuid": "ae08b544a8d4202c7d0a47ec83d685e81c91a66d" }, "source": [ - "### 6-2-6 pairplot" + "to check the first 5 rows of the data set, we can use head(5)." ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "b80350add6f9a742f10bffc4b497562f8bebea95" + "_uuid": "5899889553c3416b27e93efceddb106eb71f5156", + "collapsed": true }, "outputs": [], "source": [ - "# Using seaborn pairplot to see the bivariate relation between each pair of features\n", - "sns.pairplot(dataset, hue=\"Species\")" + "dataset.head(5) " ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "fb187bcc0fb51e53f8abe9e3952c6ae5c3177411" + "_uuid": "1150b6ac3d82562aefd5c64f9f01accee5eace4d" }, "source": [ - "From the plot, we can see that the species setosa is separataed from the other two across all feature combinations\n", - "\n", - "We can also replace the histograms shown in the diagonal of the pairplot by kde." + "to check out last 5 row of the data set, we use tail() function" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "5570ff32db5a4740b26b244531af552ac1b57f4a" + "_uuid": "79339442ff1f53ae1054d794337b9541295d3305", + "collapsed": true }, "outputs": [], "source": [ - "# updating the diagonal elements in a pairplot to show a kde\n", - "sns.pairplot(dataset, hue=\"Species\",diag_kind=\"kde\")" + "dataset.tail() " ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "2544d3c2dd34a360d295019d8cb597c7ef8f66bc" + "_uuid": "2c288c3dc8656a872a8529368812546e434d3a22" }, "source": [ - "### 6-2-7 kdeplot" + "to pop up 5 random rows from the data set, we can use **sample(5)** function" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "1d07222b89303b386e9e824d52cc73c045667f25" + "_uuid": "09eb18d1fcf4a2b73ba2f5ddce99dfa521681140", + "collapsed": true }, "outputs": [], "source": [ - "# seaborn's kdeplot, plots univariate or bivariate density estimates.\n", - "#Size can be changed by tweeking the value used\n", - "sns.FacetGrid(dataset, hue=\"Species\", size=5).map(sns.kdeplot, \"PetalLengthCm\").add_legend()\n", - "plt.show()" + "dataset.sample(5) " ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "560d8e8f17bacefaf8c3855a9648f26b82fdee9b" + "_uuid": "c8a1cc36348c68fb98d6cb28aa9919fc5f2892f3" }, "source": [ - "### 6-2-8 jointplot" + "to give a statistical summary about the dataset, we can use **describe()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "4adb4da16ea61e0f1a12bc9925dfbbaaa81e0360" + "_uuid": "3f7211e96627b9a81c5b620a9ba61446f7719ea3", + "collapsed": true }, "outputs": [], "source": [ - "# Use seaborn's jointplot to make a hexagonal bin plot\n", - "#Set desired size and ratio and choose a color.\n", - "sns.jointplot(x=\"SepalLengthCm\", y=\"SepalWidthCm\", data=dataset, size=10,ratio=10, kind='hex',color='green')\n", - "plt.show()" + "dataset.describe() " ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "3768e31e990bfe4c2ff7b45087fbba85e0560d00" + "_uuid": "031d16ca235837e889734635ecff193be64b27a4" }, "source": [ - "### 6-2-9 andrews_curves" + "to check out how many null info are on the dataset, we can use **isnull().sum()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "937b6856d109001db14a3ac99568df45efbe1070" + "_uuid": "8807b632269e2fa734ad26e8513199400fc09a83", + "collapsed": true }, "outputs": [], "source": [ - "#In Pandas use Andrews Curves to plot and visualize data structure.\n", - "#Each multivariate observation is transformed into a curve and represents the coefficients of a Fourier series.\n", - "#This useful for detecting outliers in times series data.\n", - "#Use colormap to change the color of the curves\n", - "\n", - "from pandas.tools.plotting import andrews_curves\n", - "andrews_curves(dataset.drop(\"Id\", axis=1), \"Species\",colormap='rainbow')\n", - "plt.show()" + "dataset.isnull().sum()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "263eaa9d2bfad0f8c68b6e8e874bdc11a6e802ac" + "_uuid": "446e6162e16325213047ff31454813455668b574", + "collapsed": true }, "outputs": [], "source": [ - "# we will use seaborn jointplot shows bivariate scatterplots and univariate histograms with Kernel density \n", - "# estimation in the same figure\n", - "sns.jointplot(x=\"SepalLengthCm\", y=\"SepalWidthCm\", data=dataset, size=6, kind='kde', color='#800000', space=0)" + "dataset.groupby('Species').count()" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "8e73333289d17dd648b7b2112d7fe3fe7ea444d0" + "_uuid": "c2f1eaf0b6dfdc7cc4dace04614e99ed56425d00" }, "source": [ - "### 6-2-10 Heatmap" + "to print dataset **columns**, we can use columns atribute" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "3100955ca9dc61ac7d435e9c064d10d06f26afa7" + "_uuid": "909d61b33ec06249d0842e6115597bbacf21163f", + "collapsed": true }, "outputs": [], "source": [ - "plt.figure(figsize=(7,4)) \n", - "sns.heatmap(dataset.corr(),annot=True,cmap='cubehelix_r') #draws heatmap with input as the correlation matrix calculted by(iris.corr())\n", - "plt.show()" + "dataset.columns" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "b81dbdd5dd8cb92a86b1f7114ffb6f088458a527" + "_uuid": "22bc5d81c18275ee1fb082c0adbb7a65bdbec4cc" }, "source": [ - "### 6-2-11 radviz" + "**<< Note 2 >>**\n", + "in pandas's data frame you can perform some query such as \"where\"" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "33fed3027d7242227d612a84bbb42b012356091b" + "_uuid": "c8c8d9fd63d9bdb601183aeb4f1435affeb8a596", + "collapsed": true }, "outputs": [], "source": [ - "# A final multivariate visualization technique pandas has is radviz\n", - "# Which puts each feature as a point on a 2D plane, and then simulates\n", - "# having each sample attached to those points through a spring weighted\n", - "# by the relative value for that feature\n", - "from pandas.tools.plotting import radviz\n", - "radviz(dataset.drop(\"Id\", axis=1), \"Species\")" + "dataset.where(dataset ['Species']=='Iris-setosa')" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "5af51158a5bc342947c553392e3d1665ac24ba62" + "_uuid": "33fc33a18489b438a884819d99dc00a02b113be8" }, "source": [ - "### 6-2-12 Conclusion\n", - "we have used Python to apply data visualization tools to the Iris dataset. Color and size changes were made to the data points in scatterplots. I changed the border and fill color of the boxplot and violin, respectively." + "as you can see in the below in python, it is so easy perform some query on the dataframe:" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": null, "metadata": { - "_uuid": "91dda1f631cf4ed362162501aaaac6d19cfd6cc7" + "_uuid": "8b545ff7e8367c5ab9c1db710f70b6936ac8422c", + "collapsed": true }, + "outputs": [], "source": [ - " ## 6-3 Data Preprocessing\n", - "**Data preprocessing** refers to the transformations applied to our data before feeding it to the algorithm.\n", - " \n", - "Data Preprocessing is a technique that is used to convert the raw data into a clean data set. In other words, whenever the data is gathered from different sources it is collected in raw format which is not feasible for the analysis.\n", - "there are plenty of steps for data preprocessing and we just listed some of them :\n", - "* removing Target column (id)\n", - "* Sampling (without replacement)\n", - "* Making part of iris unbalanced and balancing (with undersampling and SMOTE)\n", - "* Introducing missing values and treating them (replacing by average values)\n", - "* Noise filtering\n", - "* Data discretization\n", - "* Normalization and standardization\n", - "* PCA analysis\n", - "* Feature selection (filter, embedded, wrapper)" + "dataset[dataset['SepalLengthCm']>7.2]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "1c92b300076a232321c915857d8a7c5685a97865" + "_uuid": "1c92b300076a232321c915857d8a7c5685a97865", + "collapsed": true }, "outputs": [], "source": [ @@ -1110,16 +1257,25 @@ "y = dataset.iloc[:, -1].values" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**<< Note >>**\n", + ">**Preprocessing and generation pipelines depend on a model type**" + ] + }, { "cell_type": "markdown", "metadata": { "_uuid": "8280749a19af32869978c61941d1dea306632d71" }, "source": [ + "
\n", "## 6-4 Data Cleaning\n", "When dealing with real-world data, dirty data is the norm rather than the exception. We continuously need to predict correct values, impute missing ones, and find links between various data artefacts such as schemas and records. We need to stop treating data cleaning as a piecemeal exercise (resolving different types of errors in isolation), and instead leverage all signals and resources (such as constraints, available statistics, and dictionaries) to accurately predict corrective actions.\n", "\n", - "The primary goal of data cleaning is to detect and remove errors and anomalies to increase the value of data in analytics and decision making. While it has been the focus of many researchers for several years, individual problems have been addressed separately. These include missing value imputation, outliers detection, transformations, integrity constraints violations detection and repair, consistent query answering, deduplication, and many other related problems such as profiling and constraints mining.[8]" + "The primary goal of data cleaning is to detect and remove errors and **anomalies** to increase the value of data in analytics and decision making. While it has been the focus of many researchers for several years, individual problems have been addressed separately. These include missing value imputation, outliers detection, transformations, integrity constraints violations detection and repair, consistent query answering, deduplication, and many other related problems such as profiling and constraints mining.[8]" ] }, { @@ -1128,20 +1284,79 @@ "_uuid": "72cc7c7b60a33390a85b16bc34e3b9e424650cdd" }, "source": [ + "
\n", "## 7- Model Deployment\n", - "In this section have been applied more than 20 learning algorithms that play an important rule in your experiences and improve your knowledge in case of ML technique.\n", + "In this section have been applied more than **20 learning algorithms** that play an important rule in your experiences and improve your knowledge in case of ML technique.\n", "\n", "> **<< Note 3 >>** : The results shown here may be slightly different for your analysis because, for example, the neural network algorithms use random number generators for fixing the initial value of the weights (starting points) of the neural networks, which often result in obtaining slightly different (local minima) solutions each time you run the analysis. Also note that changing the seed for the random number generator used to create the train, test, and validation samples can change your results." ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Families of ML algorithms\n", + "There are several categories for machine learning algorithms, below are some of these categories:\n", + "* Linear\n", + " * Linear Regression\n", + " * Logistic Regression\n", + " * Support Vector Machines\n", + "* Tree-Based\n", + " * Decision Tree\n", + " * Random Forest\n", + " * GBDT\n", + "* KNN\n", + "* Neural Networks\n", + "\n", + "-----------------------------\n", + "And if we want to categorize ML algorithms with the type of learning, there are below type:\n", + "* Classification\n", + "\n", + " * k-Nearest \tNeighbors\n", + " * LinearRegression\n", + " * SVM\n", + " * DT \n", + " * NN\n", + " \n", + "* clustering\n", + "\n", + " * K-means\n", + " * HCA\n", + " * Expectation Maximization\n", + " \n", + "* Visualization \tand\tdimensionality \treduction:\n", + "\n", + " * Principal \tComponent \tAnalysis(PCA)\n", + " * Kernel PCA\n", + " * Locally -Linear\tEmbedding \t(LLE)\n", + " * t-distributed\tStochastic\tNeighbor\tEmbedding \t(t-SNE)\n", + " \n", + "* Association \trule\tlearning\n", + "\n", + " * Apriori\n", + " * Eclat\n", + "* Semisupervised learning\n", + "* Reinforcement Learning\n", + " * Q-learning\n", + "* Batch learning & Online learning\n", + "* Ensemble Learning\n", + "\n", + "**<< Note >>**\n", + "> Here is no method which outperforms all others for all tasks\n", + "\n" + ] + }, { "cell_type": "markdown", "metadata": { "_uuid": "daf9910caba26e071ff560dbdaca079ee148e140" }, "source": [ + "
\n", "## Prepare Features & Targets\n", "First of all seperating the data into dependent(Feature) and independent(Target) variables.\n", + "\n", + "**<< Note 4 >>**\n", "* X==>>Feature\n", "* y==>>Target" ] @@ -1150,7 +1365,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "b06cb1191a0f52a904c52a918d1f999536e79bda" + "_uuid": "b06cb1191a0f52a904c52a918d1f999536e79bda", + "collapsed": true }, "outputs": [], "source": [ @@ -1178,7 +1394,9 @@ "recall is the fraction of relevant instances that have been retrieved over the total amount of relevant instances. \n", "* **F-score** :\n", "\n", - "the F1 score is a measure of a test's accuracy. It considers both the precision p and the recall r of the test to compute the score: p is the number of correct positive results divided by the number of all positive results returned by the classifier, and r is the number of correct positive results divided by the number of all relevant samples (all samples that should have been identified as positive). The F1 score is the harmonic average of the precision and recall, where an F1 score reaches its best value at 1 (perfect precision and recall) and worst at 0." + "the F1 score is a measure of a test's accuracy. It considers both the precision p and the recall r of the test to compute the score: p is the number of correct positive results divided by the number of all positive results returned by the classifier, and r is the number of correct positive results divided by the number of all relevant samples (all samples that should have been identified as positive). The F1 score is the harmonic average of the precision and recall, where an F1 score reaches its best value at 1 (perfect precision and recall) and worst at 0.\n", + "**What is the difference between accuracy and precision?\n", + "\"Accuracy\" and \"precision\" are general terms throughout science. A good way to internalize the difference are the common \"bullseye diagrams\". In machine learning/statistics as a whole, accuracy vs. precision is analogous to bias vs. variance." ] }, { @@ -1187,6 +1405,7 @@ "_uuid": "b8b544762cc789bfeb8ebccd6765f77b9c7e1a0f" }, "source": [ + "
\n", "## 7-1 K-Nearest Neighbours\n", "In **Machine Learning**, the **k-nearest neighbors algorithm** (k-NN) is a non-parametric method used for classification and regression. In both cases, the input consists of the k closest training examples in the feature space. The output depends on whether k-NN is used for classification or regression:\n", "\n", @@ -1199,7 +1418,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "eaa2caacfbc319932f79c75c549364089d1e649f" + "_uuid": "eaa2caacfbc319932f79c75c549364089d1e649f", + "collapsed": true }, "outputs": [], "source": [ @@ -1225,15 +1445,19 @@ "_uuid": "e01bbec9f80532e30c6cf26d5c3fffffb5ea01d4" }, "source": [ + "
\n", "## 7-2 Radius Neighbors Classifier\n", - "Classifier implementing a **vote** among neighbors within a given **radius**" + "Classifier implementing a **vote** among neighbors within a given **radius**\n", + "\n", + "In scikit-learn **RadiusNeighborsClassifier** is very similar to **KNeighborsClassifier** with the exception of two parameters. First, in RadiusNeighborsClassifier we need to specify the radius of the fixed area used to determine if an observation is a neighbor using radius. Unless there is some substantive reason for setting radius to some value, it is best to treat it like any other hyperparameter and tune it during model selection. The second useful parameter is outlier_label, which indicates what label to give an observation that has no observations within the radius - which itself can often be a useful tool for identifying outliers." ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "7728fdafa163e068668cea92cf8d79306b41d458" + "_uuid": "7728fdafa163e068668cea92cf8d79306b41d458", + "collapsed": true }, "outputs": [], "source": [ @@ -1254,15 +1478,19 @@ "_uuid": "e55a785373bf654e0d4b2a78693fab1c8a625acb" }, "source": [ + "
\n", "## 7-3 Logistic Regression\n", - "Logistic regression is the appropriate regression analysis to conduct when the dependent variable is **dichotomous** (binary). Like all regression analyses, the logistic regression is a **predictive analysis**." + "Logistic regression is the appropriate regression analysis to conduct when the dependent variable is **dichotomous** (binary). Like all regression analyses, the logistic regression is a **predictive analysis**.\n", + "\n", + "In statistics, the logistic model (or logit model) is a widely used statistical model that, in its basic form, uses a logistic function to model a binary dependent variable; many more complex extensions exist. In regression analysis, logistic regression (or logit regression) is estimating the parameters of a logistic model; it is a form of binomial regression. Mathematically, a binary logistic model has a dependent variable with two possible values, such as pass/fail, win/lose, alive/dead or healthy/sick; these are represented by an indicator variable, where the two values are labeled \"0\" and \"1\"" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "55eb348cf69272192274cd0728a123796b459b55" + "_uuid": "55eb348cf69272192274cd0728a123796b459b55", + "collapsed": true }, "outputs": [], "source": [ @@ -1286,6 +1514,7 @@ "_uuid": "c0a1c2ccaa4f6e9c5e2e42c47a295ceef7abd3b9" }, "source": [ + "
\n", "## 7-4 Passive Aggressive Classifier" ] }, @@ -1293,7 +1522,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "d509b2111a143660dd5cb1f02ea2779e38295b77" + "_uuid": "d509b2111a143660dd5cb1f02ea2779e38295b77", + "collapsed": true }, "outputs": [], "source": [ @@ -1316,6 +1546,7 @@ "_uuid": "52938b49082dac7b35dc627828838bf12924cc7f" }, "source": [ + "
\n", "## 7-5 Naive Bayes\n", "In machine learning, naive Bayes classifiers are a family of simple \"**probabilistic classifiers**\" based on applying Bayes' theorem with strong (naive) independence assumptions between the features." ] @@ -1324,7 +1555,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "522d4a3fa874950d0850a5a9a4178ec763781ec3" + "_uuid": "522d4a3fa874950d0850a5a9a4178ec763781ec3", + "collapsed": true }, "outputs": [], "source": [ @@ -1348,6 +1580,7 @@ "_uuid": "272c1db2587015ac12e9919d51eaa4f4b73cb408" }, "source": [ + "
\n", "## 7-6 MultinomialNB\n", "The multinomial Naive Bayes classifier is suitable for classification with **discrete features** (e.g., word counts for text classification). The multinomial distribution normally requires integer feature counts. However, in practice, fractional counts such as tf-idf may also work.\n", "\n" @@ -1357,7 +1590,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "c370fd6ae6eee484a22cbf6c5323710222b05ffb" + "_uuid": "c370fd6ae6eee484a22cbf6c5323710222b05ffb", + "collapsed": true }, "outputs": [], "source": [ @@ -1381,6 +1615,7 @@ "_uuid": "e530d18ab308e36d575806583e534cc07fe61c61" }, "source": [ + "
\n", "## 7-7 BernoulliNB\n", "Like MultinomialNB, this classifier is suitable for **discrete data**. The difference is that while MultinomialNB works with occurrence counts, BernoulliNB is designed for binary/boolean features." ] @@ -1389,7 +1624,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "e7051b5e9aa144b74e9913cb2a6668832e7f3e02" + "_uuid": "e7051b5e9aa144b74e9913cb2a6668832e7f3e02", + "collapsed": true }, "outputs": [], "source": [ @@ -1413,6 +1649,7 @@ "_uuid": "386d2d0e4fc7f5dc2b9298226d8e2ecfb7150346" }, "source": [ + "
\n", "## 7-8 SVM\n", "\n", "The advantages of support vector machines are:\n", @@ -1431,7 +1668,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "a44a5a43945404c95863668c2ba099f6032357f8" + "_uuid": "a44a5a43945404c95863668c2ba099f6032357f8", + "collapsed": true }, "outputs": [], "source": [ @@ -1457,6 +1695,7 @@ "_uuid": "b1d092cc03dcaa712f4fe4ec6867b292321377d5" }, "source": [ + "
\n", "## 7-9 Nu-Support Vector Classification\n", "\n", "> Similar to SVC but uses a parameter to control the number of support vectors." @@ -1466,7 +1705,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "2fa7c9a5bef780adb400bd9ad83d030f83a8d2b3" + "_uuid": "2fa7c9a5bef780adb400bd9ad83d030f83a8d2b3", + "collapsed": true }, "outputs": [], "source": [ @@ -1492,6 +1732,7 @@ "_uuid": "5d07a75e83251ddbf8cfdfd11c9faa2671ad87ff" }, "source": [ + "
\n", "## 7-10 Linear Support Vector Classification\n", "\n", "Similar to **SVC** with parameter kernel=’linear’, but implemented in terms of liblinear rather than libsvm, so it has more flexibility in the choice of penalties and loss functions and should scale better to large numbers of samples." @@ -1501,7 +1742,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "7e7275f160f2e4e270200eaa01c13be5cb465142" + "_uuid": "7e7275f160f2e4e270200eaa01c13be5cb465142", + "collapsed": true }, "outputs": [], "source": [ @@ -1527,6 +1769,7 @@ "_uuid": "cec81c9e0c3bc6afba07811a321b5383a0f823f3" }, "source": [ + "
\n", "## 7-11 Decision Tree\n", "Decision Trees (DTs) are a non-parametric supervised learning method used for **classification** and **regression**. The goal is to create a model that predicts the value of a target variable by learning simple **decision rules** inferred from the data features." ] @@ -1535,7 +1778,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "10e25ad67f7c25a8654637d4ba496b64121d67d0" + "_uuid": "10e25ad67f7c25a8654637d4ba496b64121d67d0", + "collapsed": true }, "outputs": [], "source": [ @@ -1561,6 +1805,7 @@ "_uuid": "a7d897130fd705943764e924bbe468c99b7c036a" }, "source": [ + "
\n", "## 7-12 ExtraTreeClassifier\n", "An extremely randomized tree classifier.\n", "\n", @@ -1573,7 +1818,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "5a775006a814b6aacdcc07dc46995eb291b873f1" + "_uuid": "5a775006a814b6aacdcc07dc46995eb291b873f1", + "collapsed": true }, "outputs": [], "source": [ @@ -1599,17 +1845,237 @@ "_uuid": "48f940f73580a2997d75f22eba09d938c86a1a97" }, "source": [ + "
\n", "## 7-13 Neural network\n", "\n", "I have used multi-layer Perceptron classifier.\n", "This model optimizes the log-loss function using **LBFGS** or **stochastic gradient descent**." ] }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1c10482510f654878f93b573dc1abe4112b861eb" + }, + "source": [ + "## 7-13-1 What is a Perceptron?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a94d82b497cbe543da0a637ecfed6e9e8b7569e7" + }, + "source": [ + "There are many online examples and tutorials on perceptrons and learning. Here is a list of some articles:\n", + "- [Wikipedia on Perceptrons](https://en.wikipedia.org/wiki/Perceptron)\n", + "- Jurafsky and Martin (ed. 3), Chapter 8" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e8e4da1a0b3d51a5fff38750fb4631ac3aa7eebb" + }, + "source": [ + "This is an example that I have taken from a draft of the 3rd edition of Jurafsky and Martin, with slight modifications:\n", + "We import *numpy* and use its *exp* function. We could use the same function from the *math* module, or some other module like *scipy*. The *sigmoid* function is defined as in the textbook:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "196e5a54ed0de712e2254e77439051267cad4b3d", + "collapsed": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "def sigmoid(z):\n", + " return 1 / (1 + np.exp(-z))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9aa207d0bb6a7342932406d8fa68cbd49be866b5" + }, + "source": [ + "Our example data, **weights** $w$, **bias** $b$, and **input** $x$ are defined as:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "69cae82df8a906ad43594464c6497e05e282dcd1", + "collapsed": true + }, + "outputs": [], + "source": [ + "w = np.array([0.2, 0.3, 0.8])\n", + "b = 0.5\n", + "x = np.array([0.5, 0.6, 0.1])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8cd5da02c0fc0beedd9a3417e399982293d28fd2" + }, + "source": [ + "Our neural unit would compute $z$ as the **dot-product** $w \\cdot x$ and add the **bias** $b$ to it. The sigmoid function defined above will convert this $z$ value to the **activation value** $a$ of the unit:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "65d083572bf2cc897d816765db05758b107741ff", + "collapsed": true + }, + "outputs": [], + "source": [ + "z = w.dot(x) + b\n", + "print(\"z:\", z)\n", + "print(\"a:\", sigmoid(z))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9e9101a20c9a167a1d925f3b64aafb94317155e2" + }, + "source": [ + "### The XOR Problem\n", + "The power of neural units comes from combining them into larger networks. Minsky and Papert (1969): A single neural unit cannot compute the simple logical function XOR.\n", + "\n", + "The task is to implement a simple **perceptron** to compute logical operations like AND, OR, and XOR.\n", + "\n", + "- Input: $x_1$ and $x_2$\n", + "- Bias: $b = -1$ for AND; $b = 0$ for OR\n", + "- Weights: $w = [1, 1]$\n", + "\n", + "with the following activation function:\n", + "\n", + "$$\n", + "y = \\begin{cases}\n", + " \\ 0 & \\quad \\text{if } w \\cdot x + b \\leq 0\\\\\n", + " \\ 1 & \\quad \\text{if } w \\cdot x + b > 0\n", + " \\end{cases}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c03b3a6a5307cc53e637afd6da5c307c985be7ac" + }, + "source": [ + "We can define this activation function in Python as:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "7b0832df65fc1aa694a1cf67b8713c894b1ed2a2", + "collapsed": true + }, + "outputs": [], + "source": [ + "def activation(z):\n", + " if z > 0:\n", + " return 1\n", + " return 0" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "27ae56a47bd180ebbfd82b3f0242c8078db6ac97" + }, + "source": [ + "For AND we could implement a perceptron as:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "3267d3f1a2864f29ff2382a2057b0b88fa74b649", + "collapsed": true + }, + "outputs": [], + "source": [ + "w = np.array([1, 1])\n", + "b = -1\n", + "x = np.array([0, 0])\n", + "print(\"0 AND 0:\", activation(w.dot(x) + b))\n", + "x = np.array([1, 0])\n", + "print(\"1 AND 0:\", activation(w.dot(x) + b))\n", + "x = np.array([0, 1])\n", + "print(\"0 AND 1:\", activation(w.dot(x) + b))\n", + "x = np.array([1, 1])\n", + "print(\"1 AND 1:\", activation(w.dot(x) + b))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "dbee1f41f0bd66613f5b49e0f65be4bfd9f91283" + }, + "source": [ + "For OR we could implement a perceptron as:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "bf47440fb2f5a0fb016286f0a3a41a05a8416495", + "collapsed": true + }, + "outputs": [], + "source": [ + "w = np.array([1, 1])\n", + "b = 0\n", + "x = np.array([0, 0])\n", + "print(\"0 OR 0:\", activation(w.dot(x) + b))\n", + "x = np.array([1, 0])\n", + "print(\"1 OR 0:\", activation(w.dot(x) + b))\n", + "x = np.array([0, 1])\n", + "print(\"0 OR 1:\", activation(w.dot(x) + b))\n", + "x = np.array([1, 1])\n", + "print(\"1 OR 1:\", activation(w.dot(x) + b))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "181068ef1b8e1ba568093184c41a118b4c0bfe7f" + }, + "source": [ + "There is no way to implement a perceptron for XOR this way." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d12494da861ea094378c7cf6a3409803fb5585ac" + }, + "source": [ + "no see our prediction for iris" + ] + }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "5f040cfaeb71f8caa94e4d7f18cccde8d2a0b8a7" + "_uuid": "5f040cfaeb71f8caa94e4d7f18cccde8d2a0b8a7", + "collapsed": true }, "outputs": [], "source": [ @@ -1630,6 +2096,7 @@ "_uuid": "ffc339dbf9c8da74194b994930694bd97bb2afbb" }, "source": [ + "
\n", "## 7-14 RandomForest\n", "A random forest is a meta estimator that **fits a number of decision tree classifiers** on various sub-samples of the dataset and uses averaging to improve the predictive accuracy and control over-fitting. \n", "\n", @@ -1640,7 +2107,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "8ed2305b51c2248a8aa62cf4452632f448e83771" + "_uuid": "8ed2305b51c2248a8aa62cf4452632f448e83771", + "collapsed": true }, "outputs": [], "source": [ @@ -1660,6 +2128,7 @@ "_uuid": "1311eb15f2afceed2219faeb859d0d07b7072176" }, "source": [ + "
\n", "## 7-15 Bagging classifier \n", "A Bagging classifier is an ensemble **meta-estimator** that fits base classifiers each on random subsets of the original dataset and then aggregate their individual predictions (either by voting or by averaging) to form a final prediction. Such a meta-estimator can typically be used as a way to reduce the variance of a black-box estimator (e.g., a decision tree), by introducing randomization into its construction procedure and then making an ensemble out of it.\n", "\n", @@ -1670,7 +2139,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "c11c731d3db6c1c81301da85dc158cb7d324c4cb" + "_uuid": "c11c731d3db6c1c81301da85dc158cb7d324c4cb", + "collapsed": true }, "outputs": [], "source": [ @@ -1690,6 +2160,7 @@ "_uuid": "c0944bd32424f38906148d96f4b1e6fccfbf97a6" }, "source": [ + "
\n", "## 7-16 AdaBoost classifier\n", "\n", "An AdaBoost classifier is a meta-estimator that begins by fitting a classifier on the original dataset and then fits additional copies of the classifier on the same dataset but where the weights of incorrectly classified instances are adjusted such that subsequent classifiers focus more on difficult cases.\n", @@ -1700,7 +2171,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "938946ee8e017b982c4c06e193d4d13cb7d3fb5f" + "_uuid": "938946ee8e017b982c4c06e193d4d13cb7d3fb5f", + "collapsed": true }, "outputs": [], "source": [ @@ -1720,6 +2192,7 @@ "_uuid": "9d62842d12731d3eb1d6577c5b35c12c4886c708" }, "source": [ + "
\n", "## 7-17 Gradient Boosting Classifier\n", "GB builds an additive model in a forward stage-wise fashion; it allows for the optimization of arbitrary differentiable loss functions." ] @@ -1728,7 +2201,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "863124561c0d1b5995d0b8d3702daa7bc364d6b0" + "_uuid": "863124561c0d1b5995d0b8d3702daa7bc364d6b0", + "collapsed": true }, "outputs": [], "source": [ @@ -1748,6 +2222,7 @@ "_uuid": "e89b4494bd78c2d66beeba34a4e320fd8c9dae0c" }, "source": [ + "
\n", "## 7-18 Linear Discriminant Analysis\n", "Linear Discriminant Analysis (discriminant_analysis.LinearDiscriminantAnalysis) and Quadratic Discriminant Analysis (discriminant_analysis.QuadraticDiscriminantAnalysis) are two classic classifiers, with, as their names suggest, a **linear and a quadratic decision surface**, respectively.\n", "\n", @@ -1758,7 +2233,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "0796cd9f1c902345df605b7557a9c3ff686e35a9" + "_uuid": "0796cd9f1c902345df605b7557a9c3ff686e35a9", + "collapsed": true }, "outputs": [], "source": [ @@ -1778,6 +2254,7 @@ "_uuid": "296137970fc94fa4a4eb4185cb5fa952b1985c57" }, "source": [ + "
\n", "## 7-19 Quadratic Discriminant Analysis\n", "A classifier with a quadratic decision boundary, generated by fitting class conditional densities to the data and using Bayes’ rule.\n", "\n", @@ -1788,7 +2265,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "5f521d19f295b8e8f24f5715e93b1c45e9a6bce3" + "_uuid": "5f521d19f295b8e8f24f5715e93b1c45e9a6bce3", + "collapsed": true }, "outputs": [], "source": [ @@ -1808,6 +2286,7 @@ "_uuid": "0518634bf8850ac1bfcfc301e93a8740e1995c3a" }, "source": [ + "
\n", "## 7-20 Kmeans \n", "K-means clustering is a type of unsupervised learning, which is used when you have unlabeled data (i.e., data without defined categories or groups). \n", "\n", @@ -1819,7 +2298,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "427f08af02fc7288a5e35de5ff4b6c33b8fce491" + "_uuid": "427f08af02fc7288a5e35de5ff4b6c33b8fce491", + "collapsed": true }, "outputs": [], "source": [ @@ -1855,59 +2335,635 @@ { "cell_type": "markdown", "metadata": { - "_uuid": "97adc471c068fbd8d36ca19a4db0d98b0924c731" + "_uuid": "adad2b1882db36d6ac1b4a47d2118386d6bdf0a1" }, "source": [ - "## 8- Conclusion" + "
\n", + "## 7-21- Backpropagation" ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "1adfb5ba84e0f1d8fba58a2fca30546ead095047", - "collapsed": true + "_uuid": "e0b9d339d6ccd1515d5c45f02358f351052b3c6f" }, "source": [ - "In this kernel, I have tried to cover all the parts related to the process of ML with a variety of Python packages and I know that there are still some problems then I hope to get your feedback to improve it.\n" + "Backpropagation is a method used in artificial neural networks to calculate a gradient that is needed in the calculation of the weights to be used in the network.It is commonly used to train deep neural networks,a term referring to neural networks with more than one hidden layer." ] }, { "cell_type": "markdown", "metadata": { - "_uuid": "cf3679a51c72dbe2d2549b5fe97e4ac5f1fa0fa0" + "_uuid": "ea58e2f8077aa74972727b0c3e10bc57fd82d5a7" }, "source": [ - "Please **UpVote** and **Follow Me ** \n", - "###### [ GitHub](https://github.com/mjbahmani)\n", - "###### [LinkedIn](https://www.linkedin.com/in/bahmani/)\n", - "###### [Kaggle](https://www.kaggle.com/mjbahmani/)" + "In this example we will use a very simple network to start with. The network will only have one input and one output layer. We want to make the following predictions from the input:\n", + "\n", + "| Input | Output |\n", + "| ------ |:------:|\n", + "| 0 0 1 | 0 |\n", + "| 1 1 1 | 1 |\n", + "| 1 0 1 | 1 |\n", + "| 0 1 1 | 0 |" ] }, { "cell_type": "markdown", "metadata": { - "_cell_guid": "79c7e3d0-c299-4dcb-8224-4455121ee9b0", - "_uuid": "d629ff2d2480ee46fbb7e2d37f6b5fab8052498a", + "_uuid": "07d2e4bc074dea99ec6c331a4ec51e777d468d0e" + }, + "source": [ + "We will use *Numpy* to compute the network parameters, weights, activation, and outputs:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9b5c9c7115e49cdb5c3c8428399e2508687efa47" + }, + "source": [ + "We will use the *[Sigmoid](http://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html#sigmoid)* activation function:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8422345e9e9c1853acba702d0d7138e3a209f0e8", "collapsed": true }, + "outputs": [], "source": [ - "# 9- References\n", - "* [1] [Iris image](https://rpubs.com/wjholst/322258)\n", - "* [2] [IRIS](https://archive.ics.uci.edu/ml/datasets/iris)\n", - "* [3] [https://skymind.ai/wiki/machine-learning-workflow](https://skymind.ai/wiki/machine-learning-workflow)\n", - "* [4] [IRIS-wiki](https://archive.ics.uci.edu/ml/datasets/iris)\n", - "* [5] [Problem-define](https://machinelearningmastery.com/machine-learning-in-python-step-by-step/)\n", - "* [6] [Sklearn](http://scikit-learn.org/)\n", - "* [7] [machine-learning-in-python-step-by-step](https://machinelearningmastery.com/machine-learning-in-python-step-by-step/)\n", - "* [8] [Data Cleaning](http://wp.sigmod.org/?p=2288)\n", - "\n" + "def sigmoid(z):\n", + " \"\"\"The sigmoid activation function.\"\"\"\n", + " return 1 / (1 + np.exp(-z))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1eec604fbe5729fecabfc4101a7b4887bf390876" + }, + "source": [ + "We could use the [ReLU](http://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html#activation-relu) activation function instead:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "557945abedb17c571926af334d5469b4edf12b48", + "collapsed": true + }, + "outputs": [], + "source": [ + "def relu(z):\n", + " \"\"\"The ReLU activation function.\"\"\"\n", + " return max(0, z)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "f405e20e385bc594337a59deba1c7d8d7769349d" + }, + "source": [ + "The [Sigmoid](http://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html#sigmoid) activation function introduces non-linearity to the computation. It maps the input value to an output value between $0$ and $1$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d388972329e79c533e7a8b90a2cfed18e288e4e5" + }, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a6881ae9a1a8554739f9464119d14875beaaf8ad" + }, + "source": [ + "The derivative of the sigmoid function is maximal at $x=0$ and minimal for lower or higher values of $x$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "dfb7cad18d4509840dea33c4aff0e6de8a6cf86b" + }, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "616e01ca7ed747aeb817707cbd14c57a92f31553" + }, + "source": [ + "The *sigmoid_prime* function returns the derivative of the sigmoid for any given $z$. The derivative of the sigmoid is $z * (1 - z)$. This is basically the slope of the sigmoid function at any given point: " ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "_uuid": "46e09b5d28a9970e5277084a9ca1d19b331df0f6" + "_uuid": "d4be4a6c8353a98c55eba479f520cbdeecc29f1d", + "collapsed": true + }, + "outputs": [], + "source": [ + "def sigmoid_prime(z):\n", + " \"\"\"The derivative of sigmoid for z.\"\"\"\n", + " return z * (1 - z)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3be8c0c576f52ec92539039615a0b4ffe5248f57" + }, + "source": [ + "We define the inputs as rows in *X*. There are three input nodes (three columns per vector in $X$. Each row is one trainig example:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "14fa62c6d5ac721998095f5b556610e0984eea98", + "collapsed": true + }, + "outputs": [], + "source": [ + "X = np.array([ [ 0, 0, 1 ],\n", + " [ 0, 1, 1 ],\n", + " [ 1, 0, 1 ],\n", + " [ 1, 1, 1 ] ])\n", + "print(X)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3f32526b2e047abdda2a1d1d611f1cf7f188f2e9" + }, + "source": [ + "The outputs are stored in *y*, where each row represents the output for the corresponding input vector (row) in *X*. The vector is initiated as a single row vector and with four columns and transposed (using the $.T$ method) into a column vector with four rows:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "dbd824213ef3fe2dd7eb01d4b4396d816bf002d3", + "collapsed": true + }, + "outputs": [], + "source": [ + "y = np.array([[0,0,1,1]]).T\n", + "print(y)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5e6e2ad9b6539e5c3d6aff5cf2db5f44c0f2611e" + }, + "source": [ + "To make the outputs deterministic, we seed the random number generator with a constant. This will guarantee that every time you run the code, you will get the same random distribution:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "6a441227d4cd02b6654e7800cb823e8eef62ff1d", + "collapsed": true + }, + "outputs": [], + "source": [ + "np.random.seed(1)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7cc15f07e9c4a15ec48265dd70f1e60e292f6485" + }, + "source": [ + "We create a weight matrix ($Wo$) with randomly initialized weights:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "f1be1de240c6e7b718def61d73d5b7b4f770b54a", + "collapsed": true + }, + "outputs": [], + "source": [ + "n_inputs = 3\n", + "n_outputs = 1\n", + "#Wo = 2 * np.random.random( (n_inputs, n_outputs) ) - 1\n", + "Wo = np.random.random( (n_inputs, n_outputs) ) * np.sqrt(2.0/n_inputs)\n", + "print(Wo)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "f690ef1844d5344c2513381b6169f3bfe6080714" + }, + "source": [ + "The reason for the output weight matrix ($Wo$) to have 3 rows and 1 column is that it represents the weights of the connections from the three input neurons to the single output neuron. The initialization of the weight matrix is random with a mean of $0$ and a variance of $1$. There is a good reason for chosing a mean of zero in the weight initialization. See for details the section on Weight Initialization in the [Stanford course CS231n on Convolutional Neural Networks for Visual Recognition](https://cs231n.github.io/neural-networks-2/#init)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "4b87807dc117e0908ec98b4e54843dc8f29c7397" + }, + "source": [ + "The core representation of this network is basically the weight matrix *Wo*. The rest, input matrix, output vector and so on are components that we need to learning and evaluation. The leraning result is stored in the *Wo* weight matrix." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "fb1319477d80a209e9caa3129b6371d872dab29b" + }, + "source": [ + "We loop in the optimization and learning cycle 10,000 times. In the *forward propagation* line we process the entire input matrix for training. This is called **full batch** training. I do not use an alternative variable name to represent the input layer, instead I use the input matrix $X$ directly here. Think of this as the different inputs to the input neurons computed at once. In principle the input or training data could have many more training examples, the code would stay the same." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "45907fc6c64b83116860d2c3dab8d252fd470c3e", + "collapsed": true + }, + "outputs": [], + "source": [ + "for n in range(10000):\n", + " # forward propagation\n", + " l1 = sigmoid(np.dot(X, Wo))\n", + " \n", + " # compute the loss\n", + " l1_error = y - l1\n", + " #print(\"l1_error:\\n\", l1_error)\n", + " \n", + " # multiply the loss by the slope of the sigmoid at l1\n", + " l1_delta = l1_error * sigmoid_prime(l1)\n", + " #print(\"l1_delta:\\n\", l1_delta)\n", + " \n", + " #print(\"error:\", l1_error, \"\\nderivative:\", sigmoid(l1, True), \"\\ndelta:\", l1_delta, \"\\n\", \"-\"*10, \"\\n\")\n", + " # update weights\n", + " Wo += np.dot(X.T, l1_delta)\n", + "\n", + "print(\"l1:\\n\", l1)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "6d887640b00bf8d73c4544ef23d11c296ff15154" + }, + "source": [ + "The dots in $l1$ represent the lines in the graphic below. The lines represent the slope of the sigmoid in the particular position. The slope is highest with a value $x = 0$ (blue dot). It is rather shallow with $x = 2$ (green dot), and not so shallow and not as high with $x = -1$. All derivatives are between $0$ and $1$, of course, that is, no slope or a maximal slope of $1$. There is no negative slope in a sigmoid function." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "01ea3085bf5e9dd4babee8437895735c9aa54763" + }, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c0cfdf91801ec2bbffc34a7a95f6e899ed7a39fc" + }, + "source": [ + "The matrix $l1\\_error$ is a 4 by 1 matrix (4 rows, 1 column). The derivative matrix $sigmoid\\_prime(l1)$ is also a 4 by one matrix. The returned matrix of the element-wise product $l1\\_delta$ is also the 4 by 1 matrix." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5349a8fcd505990baa71481697397cef4f2176fb" + }, + "source": [ + "The product of the error and the slopes **reduces the error of high confidence predictions**. When the sigmoid slope is very shallow, the network had a very high or a very low value, that is, it was rather confident. If the network guessed something close to $x=0, y=0.5$, it was not very confident. Such predictions without confidence are updated most significantly. The other peripheral scores are multiplied with a number closer to $0$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "057f51f99a2a87073013e9e2b9f5538c98297cf3" + }, + "source": [ + "In the prediction line $l1 = sigmoid(np.dot(X, Wo))$ we compute the dot-product of the input vectors with the weights and compute the sigmoid on the sums.\n", + "The result of the dot-product is the number of rows of the first matrix ($X$) and the number of columns of the second matrix ($Wo$).\n", + "In the computation of the difference between the true (or gold) values in $y$ and the \"guessed\" values in $l1$ we have an estimate of the miss." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "7c64e2c97d7093bb8f71d5bd173820b526fc71a1" + }, + "source": [ + "An example computation for the input $[ 1, 0, 1 ]$ and the weights $[ 9.5, 0.2, -0.1 ]$ and an output of $0.99$: If $y = 1$, the $l1\\_error = y - l2 = 0.01$, and $l1\\_delta = 0.01 * tiny\\_deriv$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "602abaf7339d617f2e0333c86ab98b94bb40a96d" + }, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "3307f0633c665a5fa0aaa97898ab6a1d1d9f6fac" + }, + "source": [ + "## 9-1 More Complex Example with Backpropagation" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "750b541e55ae336dcee16ff38d672dff649792a6" + }, + "source": [ + "Consider now a more complicated example where no column has a correlation with the output:\n", + "\n", + "| Input | Output |\n", + "| ------ |:------:|\n", + "| 0 0 1 | 0 |\n", + "| 0 1 1 | 1 |\n", + "| 1 0 1 | 1 |\n", + "| 1 1 1 | 0 |" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "85bc7295eaf21d0bfad6c4572bfb868d74b2e1aa" + }, + "source": [ + "The pattern here is our XOR pattern or problem: If there is a $1$ in either column $1$ or $2$, but not in both, the output is $1$ (XOR over column $1$ and $2$)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "340ea076b1899802093da816d92017ce2b3d2716" + }, + "source": [ + "From our discussion of the XOR problem we remember that this is a *non-linear pattern*, a **one-to-one relationship between a combination of inputs**." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b64402f35850471c7136b201c783b9d9e60e6556" + }, + "source": [ + "To cope with this problem, we need a network with another layer, that is a layer that will combine and transform the input, and an additional layer will map it to the output. We will add a *hidden layer* with randomized weights and then train those to optimize the output probabilities of the table above." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "28829b11334a35dc1649f1d6d2134ed4e0d1a795" + }, + "source": [ + "We will define a new $X$ input matrix that reflects the above table:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "2c41f4546c675916ff0964370bc98a6862353666", + "collapsed": true + }, + "outputs": [], + "source": [ + "X = np.array([[0, 0, 1],\n", + " [0, 1, 1],\n", + " [1, 0, 1],\n", + " [1, 1, 1]])\n", + "print(X)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "20aff6095cd099acf174500e76946c12481192d7" + }, + "source": [ + "We also define a new output matrix $y$:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "508e0c65bdd467bfed8d69ac52638d8821dd9e2f", + "collapsed": true + }, + "outputs": [], + "source": [ + "y = np.array([[ 0, 1, 1, 0]]).T\n", + "print(y)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "87a03d01b3b1df0ff847a7507cc66ae87f1669d2" + }, + "source": [ + "We initialize the random number generator with a constant again:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "237da33769d159e1d450e66c93e677618c0a127f", + "collapsed": true + }, + "outputs": [], + "source": [ + "np.random.seed(1)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "03c37d00f1d7b87c44e7a4777990049af4044548" + }, + "source": [ + "Assume that our 3 inputs are mapped to 4 hidden layer ($Wh$) neurons, we have to initialize the hidden layer weights in a 3 by 4 matrix. The outout layer ($Wo$) is a single neuron that is connected to the hidden layer, thus the output layer is a 4 by 1 matrix:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "823a9291e688f1840b781b5aeba9779215206676", + "collapsed": true + }, + "outputs": [], + "source": [ + "n_inputs = 3\n", + "n_hidden_neurons = 4\n", + "n_output_neurons = 1\n", + "Wh = np.random.random( (n_inputs, n_hidden_neurons) ) * np.sqrt(2.0/n_inputs)\n", + "Wo = np.random.random( (n_hidden_neurons, n_output_neurons) ) * np.sqrt(2.0/n_hidden_neurons)\n", + "print(\"Wh:\\n\", Wh)\n", + "print(\"Wo:\\n\", Wo)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "d27aca98d06bc0ed16678628d6927015b8dfe427" + }, + "source": [ + "We will loop now 60,000 times to optimize the weights:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "90add134167965958223083f3c3a7818795777bc", + "collapsed": true + }, + "outputs": [], + "source": [ + "for i in range(100000):\n", + " l1 = sigmoid(np.dot(X, Wh))\n", + " l2 = sigmoid(np.dot(l1, Wo))\n", + " \n", + " l2_error = y - l2\n", + " \n", + " if (i % 10000) == 0:\n", + " print(\"Error:\", np.mean(np.abs(l2_error)))\n", + " \n", + " # gradient, changing towards the target value\n", + " l2_delta = l2_error * sigmoid_prime(l2)\n", + " \n", + " # compute the l1 contribution by value to the l2 error, given the output weights\n", + " l1_error = l2_delta.dot(Wo.T)\n", + " \n", + " # direction of the l1 target:\n", + " # in what direction is the target l1?\n", + " l1_delta = l1_error * sigmoid_prime(l1)\n", + " \n", + " Wo += np.dot(l1.T, l2_delta)\n", + " Wh += np.dot(X.T, l1_delta)\n", + "\n", + "print(\"Wo:\\n\", Wo)\n", + "print(\"Wh:\\n\", Wh)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "263abd8f132d7b73ab2eb67c56caf1508a35d1d3" + }, + "source": [ + "The new computation in this new loop is $l1\\_error = l2\\_delta.dot(Wo.T)$, a **confidence weighted error** from $l2$ to compute an error for $l1$. The computation sends the error across the weights from $l2$ to $l1$. The result is a **contribution weighted error**, because we learn how much each node value in $l1$ **contributed** to the error in $l2$. This step is called **backpropagation**. We update $Wh$ using the same steps we did in the 2 layer implementation." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "97adc471c068fbd8d36ca19a4db0d98b0924c731" + }, + "source": [ + "-----------------\n", + "
\n", + "# 8- Conclusion" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1adfb5ba84e0f1d8fba58a2fca30546ead095047", + "collapsed": true + }, + "source": [ + "In this kernel, I have tried to cover all the parts related to the process of ML with a variety of Python packages and I know that there are still some problems then I hope to get your feedback to improve it.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "cf3679a51c72dbe2d2549b5fe97e4ac5f1fa0fa0" + }, + "source": [ + "you can follow me on:\n", + "> ###### [ GitHub](https://github.com/mjbahmani)\n", + "> ###### [LinkedIn](https://www.linkedin.com/in/bahmani/)\n", + "> ###### [Kaggle](https://www.kaggle.com/mjbahmani/)\n", + "\n", + "--------------------------------------\n", + "\n", + " **I hope you find this kernel helpful and some upvotes would be very much appreciated**\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_cell_guid": "79c7e3d0-c299-4dcb-8224-4455121ee9b0", + "_uuid": "d629ff2d2480ee46fbb7e2d37f6b5fab8052498a", + "collapsed": true + }, + "source": [ + "
\n", + "\n", + "-----------\n", + "\n", + "# 9- References\n", + "* [1] [Iris image](https://rpubs.com/wjholst/322258)\n", + "* [2] [IRIS](https://archive.ics.uci.edu/ml/datasets/iris)\n", + "* [3] [https://skymind.ai/wiki/machine-learning-workflow](https://skymind.ai/wiki/machine-learning-workflow)\n", + "* [4] [IRIS-wiki](https://archive.ics.uci.edu/ml/datasets/iris)\n", + "* [5] [Problem-define](https://machinelearningmastery.com/machine-learning-in-python-step-by-step/)\n", + "* [6] [Sklearn](http://scikit-learn.org/)\n", + "* [7] [machine-learning-in-python-step-by-step](https://machinelearningmastery.com/machine-learning-in-python-step-by-step/)\n", + "* [8] [Data Cleaning](http://wp.sigmod.org/?p=2288)\n", + "* [9] [competitive data science](https://www.coursera.org/learn/competitive-data-science/)\n", + "\n", + "\n", + "-------------\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true }, "outputs": [], "source": [] @@ -1929,7 +2985,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.6.1" } }, "nbformat": 4, diff --git a/XGBoost Tutorial for Beginners/XGBoost Tutorial for Beginners.ipynb b/XGBoost Tutorial for Beginners/XGBoost Tutorial for Beginners.ipynb new file mode 100644 index 0000000..6ae9997 --- /dev/null +++ b/XGBoost Tutorial for Beginners/XGBoost Tutorial for Beginners.ipynb @@ -0,0 +1,718 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "_uuid": "726661972b09b03a31d424ef02a9be0cd284d81b" + }, + "source": [ + " #
XGBoost Tutorial for Beginners \n", + "
One of the most common questions we get on Data science is:\n", + "
\n", + "How can we provide better solutions than other machine learning algorithms?\n", + "
\n", + "If you get confused and ask experts what should you learn at this stage, most of them would suggest / agree that you go ahead with ensemble learning? \n", + "
\n", + "In this simple tutorials you can learn all of the thing you need for using XGBoost as a method
\n", + "\n", + "
last update: 11/01/2018
\n", + "\n", + "\n", + "you can follow me on:\n", + "> ###### [ GitHub](https://github.com/mjbahmani)\n", + "> ###### [Kaggle](https://www.kaggle.com/mjbahmani/)\n", + "-------------------------------------------------------------------------------------------------------------\n", + " **I hope you find this kernel helpful and some UPVOTES would be very much appreciated**\n", + " \n", + " -----------" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "2a01be35950f7a117fc6700e866de3bf5a3ea6b9" + }, + "source": [ + "\n", + "## Notebook Content\n", + " [Introduction](#0)\n", + "1. [ Why XGBoost?](#1)\n", + "1. [Installing XGBoost ](#2)\n", + "1. [Matrix Multiplication](#3)\n", + " 1. [Vector-Vector Products](#4)\n", + " 1. [Outer Product of Two Vectors](#5)\n", + " 1. [Matrix-Vector Products](#6)\n", + " 1. [Matrix-Matrix Products](#7)\n", + "1. [Conclusion](#30)\n", + "1. [References](#31)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b18443661b6d30ffea2150fa74d44d62e14ae952" + }, + "source": [ + "
\n", + "# 1- Introduction\n", + "* **XGBoost** is an algorithm that has recently been dominating applied machine learning and Kaggle competitions for structured or tabular data.\n", + "* **XGBoost** is an implementation of gradient boosted decision trees designed for speed and performance.\n", + "* **XGBoost** is short for e**X**treme **G**radient **Boost**ing package.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "8a6fb87ba874c6108aa7266d80c20e161076c40b" + }, + "source": [ + "
\n", + "## 2- Why XGBoost?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "787e4b715d1969126ec6757bbb28f9c1fc84e970" + }, + "source": [ + "* Speed and performance : Originally written in C++, it is comparatively faster than other ensemble classifiers.\n", + "\n", + "* Core algorithm is parallelizable : Because the core XGBoost algorithm is parallelizable it can harness the power of multi-core computers. It is also parallelizable onto GPU’s and across networks of computers making it feasible to train on very large datasets as well.\n", + "\n", + "* Consistently outperforms other algorithm methods : It has shown better performance on a variety of machine learning benchmark datasets.\n", + "\n", + "* Wide variety of tuning parameters : XGBoost internally has parameters for cross-validation, regularization, user-defined objective functions, missing values, tree parameters, scikit-learn compatible API etc.\n", + "* Win competition On Kaggle : there are a lot of winners on Kaggle that use XGBoost\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c212686b417d16cea9998ef4446bbd3817b16792" + }, + "source": [ + "
\n", + "## 3- Installing XGBoost" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9efb9808940ca6795af40c18c0e263bf58cfd166" + }, + "source": [ + "There is a comprehensive installation guide on the [XGBoost documentation website](http://xgboost.readthedocs.io/en/latest/build.html).\n", + "\n", + "### 3-1 XGBoost in R\n", + "If you are an R user, the best place to get started is the [CRAN page for the xgboost package](https://cran.r-project.org/web/packages/xgboost/index.html).\n", + "\n", + "### 3-2 XGBoost in Python\n", + "Installation instructions are available on the Python section of the XGBoost installation guide.\n", + "\n", + "The official Python Package Introduction is the best place to start when working with XGBoost in Python.\n", + "\n", + "To get started quickly, you can type:\n", + "\n", + ">sudo pip install xgboost\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "f5eca2345978273dd67cfccc0edfc2bc6f7d467f" + }, + "source": [ + "
\n", + "## 4- Problem Definition\n", + "I think one of the important things when you start a new machine learning project is Defining your problem. that means you should understand business problem.( **Problem Formalization**)\n", + "\n", + "Problem Definition has four steps that have illustrated in the picture below:\n", + "\n", + "
\n", + "### 4-1 Problem Feature\n", + "we will use the classic Iris data set. This dataset contains information about three different types of Iris flowers:\n", + "\n", + "* Iris Versicolor\n", + "* Iris Virginica\n", + "* Iris Setosa\n", + "\n", + "The data set contains measurements of four variables :\n", + "\n", + "* sepal length \n", + "* sepal width\n", + "* petal length \n", + "* petal width\n", + " \n", + "The Iris data set has a number of interesting features:\n", + "\n", + "1. One of the classes (Iris Setosa) is linearly separable from the other two. However, the other two classes are not linearly separable.\n", + "\n", + "2. There is some overlap between the Versicolor and Virginica classes, so it is unlikely to achieve a perfect classification rate.\n", + "\n", + "3. There is some redundancy in the four input variables, so it is possible to achieve a good solution with only three of them, or even (with difficulty) from two, but the precise choice of best variables is not obvious.\n", + "\n", + "**Why am I using iris dataset:**\n", + "\n", + "1- This is a good project because it is so well understood.\n", + "\n", + "2- Attributes are numeric so you have to figure out how to load and handle data.\n", + "\n", + "3- It is a classification problem, allowing you to practice with perhaps an easier type of supervised learning algorithm.\n", + "\n", + "4- It is a multi-class classification problem (multi-nominal) that may require some specialized handling.\n", + "\n", + "5- It only has 4 attributes and 150 rows, meaning it is small and easily fits into memory (and a screen or A4 page).\n", + "\n", + "6- All of the numeric attributes are in the same units and the same scale, not requiring any special scaling or transforms to get started.[5]\n", + "\n", + "7- we can define problem as clustering(unsupervised algorithm) project too.\n", + "
\n", + "### 4-2 Aim\n", + "The aim is to classify iris flowers among three species (setosa, versicolor or virginica) from measurements of length and width of sepals and petals\n", + "
\n", + "### 4-3 Variables\n", + "The variables are :\n", + "**sepal_length**: Sepal length, in centimeters, used as input.\n", + "**sepal_width**: Sepal width, in centimeters, used as input.\n", + "**petal_length**: Petal length, in centimeters, used as input.\n", + "**petal_width**: Petal width, in centimeters, used as input.\n", + "**setosa**: Iris setosa, true or false, used as target.\n", + "**versicolour**: Iris versicolour, true or false, used as target.\n", + "**virginica**: Iris virginica, true or false, used as target.\n", + "\n", + "**<< Note >>**\n", + "> You must answer the following question:\n", + "How does your company expact to use and benfit from your model." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "dee35ee214871c7c9d22104aafc6587eb3d2aa1e" + }, + "source": [ + "
\n", + "## 5- Inputs & Outputs\n", + "
\n", + "### 5-1 Inputs\n", + "**Iris** is a very popular **classification** and **clustering** problem in machine learning and it is such as \"Hello world\" program when you start learning a new programming language. then I decided to apply Iris on 20 machine learning method on it.\n", + "The Iris flower data set or Fisher's Iris data set is a **multivariate data set** introduced by the British statistician and biologist Ronald Fisher in his 1936 paper The use of multiple measurements in taxonomic problems as an example of linear discriminant analysis. It is sometimes called Anderson's Iris data set because Edgar Anderson collected the data to quantify the morphologic variation of Iris flowers in three related species. Two of the three species were collected in the Gaspé Peninsula \"all from the same pasture, and picked on the same day and measured at the same time by the same person with the same apparatus\".\n", + "The data set consists of 50 samples from each of three species of Iris (Iris setosa, Iris virginica, and Iris versicolor). Four features were measured from each sample: the length and the width of the sepals and petals, in centimeters. Based on the combination of these four features, Fisher developed a linear discriminant model to distinguish the species from each other.\n", + "\n", + "As a result, **iris dataset is used as the input of all algorithms**.\n", + "
\n", + "### 5-2 Outputs\n", + "the outputs for our algorithms totally depend on the type of classification or clustering algorithms.\n", + "the outputs can be the number of clusters or predict for new input.\n", + "\n", + "**setosa**: Iris setosa, true or false, used as target.\n", + "**versicolour**: Iris versicolour, true or false, used as target.\n", + "**virginica**: Iris virginica, true or false, used as a target." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "18e6a0730989363caa069a745b5f3ea8b30766e9" + }, + "source": [ + "######
\n", + "## 6- Import packages" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "_uuid": "5b8aa15d1b11789c38f1dd19d5f06e4be054e525" + }, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "from sklearn.metrics import classification_report\n", + "from sklearn.metrics import confusion_matrix\n", + "from sklearn.metrics import accuracy_score\n", + "from sklearn.decomposition import PCA\n", + "import matplotlib.pyplot as plt\n", + "from pandas import get_dummies\n", + "import plotly.graph_objs as go\n", + "from sklearn import datasets\n", + "import plotly.plotly as py\n", + "import seaborn as sns\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib\n", + "import warnings\n", + "import sklearn\n", + "import scipy\n", + "import numpy\n", + "import json\n", + "import sys\n", + "import csv\n", + "import os" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "_uuid": "49d5cacd5d0aeadd10836b930cdb43e0ed581a60" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "matplotlib: 2.2.3\n", + "sklearn: 0.20.0\n", + "scipy: 1.1.0\n", + "seaborn: 0.8.1\n", + "pandas: 0.23.4\n", + "numpy: 1.15.3\n", + "Python: 3.6.6 |Anaconda, Inc.| (default, Oct 9 2018, 12:34:16) \n", + "[GCC 7.3.0]\n" + ] + } + ], + "source": [ + "print('matplotlib: {}'.format(matplotlib.__version__))\n", + "print('sklearn: {}'.format(sklearn.__version__))\n", + "print('scipy: {}'.format(scipy.__version__))\n", + "print('seaborn: {}'.format(sns.__version__))\n", + "print('pandas: {}'.format(pd.__version__))\n", + "print('numpy: {}'.format(np.__version__))\n", + "print('Python: {}'.format(sys.version))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e5c5a1da5ce973e4dce69388b76022b5f69e4c16" + }, + "source": [ + "
\n", + "## 6-1 Data Collection\n", + "**Data collection** is the process of gathering and measuring data, information or any variables of interest in a standardized and established manner that enables the collector to answer or test hypothesis and evaluate outcomes of the particular collection.[techopedia]\n", + "\n", + "**Iris dataset** consists of 3 different types of irises’ (Setosa, Versicolour, and Virginica) petal and sepal length, stored in a 150x4 numpy.ndarray\n", + "\n", + "The rows being the samples and the columns being: Sepal Length, Sepal Width, Petal Length and Petal Width.[6]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "_uuid": "1f4c3ec8ecd51cc0ae810666af8f93d6d1d27aaf" + }, + "outputs": [], + "source": [ + "# import Dataset to play with it\n", + "dataset = pd.read_csv('../input/Iris.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "a6db3370c16c7e91d1d1624bc88a35cde1f8f141" + }, + "source": [ + "**<< Note 1 >>**\n", + "\n", + "* Each row is an observation (also known as : sample, example, instance, record)\n", + "* Each column is a feature (also known as: Predictor, attribute, Independent Variable, input, regressor, Covariate)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "72cc7c7b60a33390a85b16bc34e3b9e424650cdd" + }, + "source": [ + "
\n", + "## 7- Model Deployment\n", + "In this section have been applied more than **20 learning algorithms** that play an important rule in your experiences and improve your knowledge in case of ML technique.\n", + "\n", + "> **<< Note 3 >>** : The results shown here may be slightly different for your analysis because, for example, the neural network algorithms use random number generators for fixing the initial value of the weights (starting points) of the neural networks, which often result in obtaining slightly different (local minima) solutions each time you run the analysis. Also note that changing the seed for the random number generator used to create the train, test, and validation samples can change your results." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "4b7788bbaaace438242d3b2d0d2ed489a91939ce" + }, + "source": [ + "## 7-1 Families of ML algorithms\n", + "There are several categories for machine learning algorithms, below are some of these categories:\n", + "* Linear\n", + " * Linear Regression\n", + " * Logistic Regression\n", + " * Support Vector Machines\n", + "* Tree-Based\n", + " * Decision Tree\n", + " * Random Forest\n", + " * GBDT\n", + "* KNN\n", + "* Neural Networks\n", + "\n", + "-----------------------------\n", + "And if we want to categorize ML algorithms with the type of learning, there are below type:\n", + "* Classification\n", + "\n", + " * k-Nearest \tNeighbors\n", + " * LinearRegression\n", + " * SVM\n", + " * DT \n", + " * NN\n", + " \n", + "* clustering\n", + "\n", + " * K-means\n", + " * HCA\n", + " * Expectation Maximization\n", + " \n", + "* Visualization \tand\tdimensionality \treduction:\n", + "\n", + " * Principal \tComponent \tAnalysis(PCA)\n", + " * Kernel PCA\n", + " * Locally -Linear\tEmbedding \t(LLE)\n", + " * t-distributed\tStochastic\tNeighbor\tEmbedding \t(t-SNE)\n", + " \n", + "* Association \trule\tlearning\n", + "\n", + " * Apriori\n", + " * Eclat\n", + "* Semisupervised learning\n", + "* Reinforcement Learning\n", + " * Q-learning\n", + "* Batch learning & Online learning\n", + "* Ensemble Learning\n", + "\n", + "**<< Note >>**\n", + "> Here is no method which outperforms all others for all tasks\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "daf9910caba26e071ff560dbdaca079ee148e140" + }, + "source": [ + "
\n", + "## 7-2 Prepare Features & Targets\n", + "First of all seperating the data into dependent(Feature) and independent(Target) variables.\n", + "\n", + "**<< Note 4 >>**\n", + "* X==>>Feature\n", + "* y==>>Target" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "b06cb1191a0f52a904c52a918d1f999536e79bda" + }, + "outputs": [], + "source": [ + "\n", + "X = dataset.iloc[:, :-1].values\n", + "y = dataset.iloc[:, -1].values\n", + "\n", + "# Splitting the dataset into the Training set and Test set\n", + "from sklearn.model_selection import train_test_split\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "be230bb37d65624a2be449771bd222620a54f99e" + }, + "source": [ + "After loading the data via **pandas**, we should checkout what the content is, description and via the following:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "ffc339dbf9c8da74194b994930694bd97bb2afbb" + }, + "source": [ + "
\n", + "## 7-3 RandomForest\n", + "A random forest is a meta estimator that **fits a number of decision tree classifiers** on various sub-samples of the dataset and uses averaging to improve the predictive accuracy and control over-fitting. \n", + "\n", + "The sub-sample size is always the same as the original input sample size but the samples are drawn with replacement if bootstrap=True (default)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "8ed2305b51c2248a8aa62cf4452632f448e83771" + }, + "outputs": [], + "source": [ + "from sklearn.ensemble import RandomForestClassifier\n", + "Model=RandomForestClassifier(max_depth=2)\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "1311eb15f2afceed2219faeb859d0d07b7072176" + }, + "source": [ + "
\n", + "## 7-4 Bagging classifier \n", + "A Bagging classifier is an ensemble **meta-estimator** that fits base classifiers each on random subsets of the original dataset and then aggregate their individual predictions (either by voting or by averaging) to form a final prediction. Such a meta-estimator can typically be used as a way to reduce the variance of a black-box estimator (e.g., a decision tree), by introducing randomization into its construction procedure and then making an ensemble out of it.\n", + "\n", + "This algorithm encompasses several works from the literature. When random subsets of the dataset are drawn as random subsets of the samples, then this algorithm is known as Pasting . If samples are drawn with replacement, then the method is known as Bagging . When random subsets of the dataset are drawn as random subsets of the features, then the method is known as Random Subspaces . Finally, when base estimators are built on subsets of both samples and features, then the method is known as Random Patches .[http://scikit-learn.org]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "c11c731d3db6c1c81301da85dc158cb7d324c4cb" + }, + "outputs": [], + "source": [ + "from sklearn.ensemble import BaggingClassifier\n", + "Model=BaggingClassifier()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "c0944bd32424f38906148d96f4b1e6fccfbf97a6" + }, + "source": [ + "
\n", + "## 7-5 AdaBoost classifier\n", + "\n", + "An AdaBoost classifier is a meta-estimator that begins by fitting a classifier on the original dataset and then fits additional copies of the classifier on the same dataset but where the weights of incorrectly classified instances are adjusted such that subsequent classifiers focus more on difficult cases.\n", + "This class implements the algorithm known as **AdaBoost-SAMME** ." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "938946ee8e017b982c4c06e193d4d13cb7d3fb5f" + }, + "outputs": [], + "source": [ + "from sklearn.ensemble import AdaBoostClassifier\n", + "Model=AdaBoostClassifier()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "9d62842d12731d3eb1d6577c5b35c12c4886c708" + }, + "source": [ + "
\n", + "## 7-6 Gradient Boosting Classifier\n", + "GB builds an additive model in a forward stage-wise fashion; it allows for the optimization of arbitrary differentiable loss functions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "863124561c0d1b5995d0b8d3702daa7bc364d6b0" + }, + "outputs": [], + "source": [ + "from sklearn.ensemble import GradientBoostingClassifier\n", + "Model=GradientBoostingClassifier()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "e89b4494bd78c2d66beeba34a4e320fd8c9dae0c" + }, + "source": [ + "
\n", + "## 7-7 Linear Discriminant Analysis\n", + "Linear Discriminant Analysis (discriminant_analysis.LinearDiscriminantAnalysis) and Quadratic Discriminant Analysis (discriminant_analysis.QuadraticDiscriminantAnalysis) are two classic classifiers, with, as their names suggest, a **linear and a quadratic decision surface**, respectively.\n", + "\n", + "These classifiers are attractive because they have closed-form solutions that can be easily computed, are inherently multiclass, have proven to work well in practice, and have no **hyperparameters** to tune." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "0796cd9f1c902345df605b7557a9c3ff686e35a9" + }, + "outputs": [], + "source": [ + "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\n", + "Model=LinearDiscriminantAnalysis()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "296137970fc94fa4a4eb4185cb5fa952b1985c57" + }, + "source": [ + "
\n", + "## 7-8 Quadratic Discriminant Analysis\n", + "A classifier with a quadratic decision boundary, generated by fitting class conditional densities to the data and using Bayes’ rule.\n", + "\n", + "The model fits a **Gaussian** density to each class." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_uuid": "5f521d19f295b8e8f24f5715e93b1c45e9a6bce3" + }, + "outputs": [], + "source": [ + "from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis\n", + "Model=QuadraticDiscriminantAnalysis()\n", + "Model.fit(X_train,y_train)\n", + "y_pred=Model.predict(X_test)\n", + "print(classification_report(y_test,y_pred))\n", + "print(confusion_matrix(y_pred,y_test))\n", + "#Accuracy Score\n", + "print('accuracy is ',accuracy_score(y_pred,y_test))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "_uuid": "c2844da02baa83d6341747942805cfde56b2805f" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "pandas.core.frame.DataFrame" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(dataset)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "afc2a360fedd783e5e9d7bbc975c9c6f06a2ee72" + }, + "source": [ + "
\n", + "# 9-Conclusion\n", + "* That XGBoost is a library for developing fast and high performance gradient boosting tree models.\n", + "* That XGBoost is achieving the best performance on a range of difficult machine learning tasks.\n", + "* That you can use this library from the command line, Python and R and how to get started.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "b132163ee07917a0ab100b93f6ed5545ce0de45d" + }, + "source": [ + "you can follow me on:\n", + "> ###### [ GitHub](https://github.com/mjbahmani)\n", + "> ###### [Kaggle](https://www.kaggle.com/mjbahmani/)\n", + "\n", + " **I hope you find this kernel helpful and some upvotes would be very much appreciated**\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "5719a5ba111b65b20b53d538281ac773eb14471a" + }, + "source": [ + "
\n", + "# 10-References" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "_uuid": "aab5b3d8cb417250dc6baa081a579106900effba" + }, + "source": [ + "* [1] [datacamp](https://www.datacamp.com/community/tutorials/xgboost-in-python)\n", + "* [2] [Xgboost presentation](https://www.oreilly.com/library/view/data-science-from/9781491901410/ch04.html)\n", + "* [3] [machinelearningmastery](https://machinelearningmastery.com/gentle-introduction-xgboost-applied-machine-learning/)\n", + "* [4] [analyticsvidhya](https://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-with-codes-python/)\n", + "* [5] [Github](https://github.com/mjbahmani)\n", + "\n" + ] + } + ], + "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.4" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/Youtube channels/Youtube channels list.txt b/Youtube channels/Youtube channels list.txt new file mode 100644 index 0000000..0ede7c7 --- /dev/null +++ b/Youtube channels/Youtube channels list.txt @@ -0,0 +1 @@ +Youtube channels list \ No newline at end of file diff --git a/input/Kernels.csv.zip b/input/Kernels.csv.zip new file mode 100644 index 0000000..177dbcf Binary files /dev/null and b/input/Kernels.csv.zip differ diff --git a/input/test.csv b/input/test.csv new file mode 100644 index 0000000..f705412 --- /dev/null +++ b/input/test.csv @@ -0,0 +1,419 @@ +PassengerId,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked +892,3,"Kelly, Mr. James",male,34.5,0,0,330911,7.8292,,Q +893,3,"Wilkes, Mrs. James (Ellen Needs)",female,47,1,0,363272,7,,S +894,2,"Myles, Mr. Thomas Francis",male,62,0,0,240276,9.6875,,Q +895,3,"Wirz, Mr. Albert",male,27,0,0,315154,8.6625,,S +896,3,"Hirvonen, Mrs. Alexander (Helga E Lindqvist)",female,22,1,1,3101298,12.2875,,S +897,3,"Svensson, Mr. Johan Cervin",male,14,0,0,7538,9.225,,S +898,3,"Connolly, Miss. Kate",female,30,0,0,330972,7.6292,,Q +899,2,"Caldwell, Mr. Albert Francis",male,26,1,1,248738,29,,S +900,3,"Abrahim, Mrs. Joseph (Sophie Halaut Easu)",female,18,0,0,2657,7.2292,,C +901,3,"Davies, Mr. John Samuel",male,21,2,0,A/4 48871,24.15,,S +902,3,"Ilieff, Mr. Ylio",male,,0,0,349220,7.8958,,S +903,1,"Jones, Mr. Charles Cresson",male,46,0,0,694,26,,S +904,1,"Snyder, Mrs. John Pillsbury (Nelle Stevenson)",female,23,1,0,21228,82.2667,B45,S +905,2,"Howard, Mr. Benjamin",male,63,1,0,24065,26,,S +906,1,"Chaffee, Mrs. Herbert Fuller (Carrie Constance Toogood)",female,47,1,0,W.E.P. 5734,61.175,E31,S +907,2,"del Carlo, Mrs. Sebastiano (Argenia Genovesi)",female,24,1,0,SC/PARIS 2167,27.7208,,C +908,2,"Keane, Mr. Daniel",male,35,0,0,233734,12.35,,Q +909,3,"Assaf, Mr. Gerios",male,21,0,0,2692,7.225,,C +910,3,"Ilmakangas, Miss. Ida Livija",female,27,1,0,STON/O2. 3101270,7.925,,S +911,3,"Assaf Khalil, Mrs. Mariana (Miriam"")""",female,45,0,0,2696,7.225,,C +912,1,"Rothschild, Mr. Martin",male,55,1,0,PC 17603,59.4,,C +913,3,"Olsen, Master. Artur Karl",male,9,0,1,C 17368,3.1708,,S +914,1,"Flegenheim, Mrs. Alfred (Antoinette)",female,,0,0,PC 17598,31.6833,,S +915,1,"Williams, Mr. Richard Norris II",male,21,0,1,PC 17597,61.3792,,C +916,1,"Ryerson, Mrs. Arthur Larned (Emily Maria Borie)",female,48,1,3,PC 17608,262.375,B57 B59 B63 B66,C +917,3,"Robins, Mr. Alexander A",male,50,1,0,A/5. 3337,14.5,,S +918,1,"Ostby, Miss. Helene Ragnhild",female,22,0,1,113509,61.9792,B36,C +919,3,"Daher, Mr. Shedid",male,22.5,0,0,2698,7.225,,C +920,1,"Brady, Mr. John Bertram",male,41,0,0,113054,30.5,A21,S +921,3,"Samaan, Mr. Elias",male,,2,0,2662,21.6792,,C +922,2,"Louch, Mr. Charles Alexander",male,50,1,0,SC/AH 3085,26,,S +923,2,"Jefferys, Mr. Clifford Thomas",male,24,2,0,C.A. 31029,31.5,,S +924,3,"Dean, Mrs. Bertram (Eva Georgetta Light)",female,33,1,2,C.A. 2315,20.575,,S +925,3,"Johnston, Mrs. Andrew G (Elizabeth Lily"" Watson)""",female,,1,2,W./C. 6607,23.45,,S +926,1,"Mock, Mr. Philipp Edmund",male,30,1,0,13236,57.75,C78,C +927,3,"Katavelas, Mr. Vassilios (Catavelas Vassilios"")""",male,18.5,0,0,2682,7.2292,,C +928,3,"Roth, Miss. Sarah A",female,,0,0,342712,8.05,,S +929,3,"Cacic, Miss. Manda",female,21,0,0,315087,8.6625,,S +930,3,"Sap, Mr. Julius",male,25,0,0,345768,9.5,,S +931,3,"Hee, Mr. Ling",male,,0,0,1601,56.4958,,S +932,3,"Karun, Mr. Franz",male,39,0,1,349256,13.4167,,C +933,1,"Franklin, Mr. Thomas Parham",male,,0,0,113778,26.55,D34,S +934,3,"Goldsmith, Mr. Nathan",male,41,0,0,SOTON/O.Q. 3101263,7.85,,S +935,2,"Corbett, Mrs. Walter H (Irene Colvin)",female,30,0,0,237249,13,,S +936,1,"Kimball, Mrs. Edwin Nelson Jr (Gertrude Parsons)",female,45,1,0,11753,52.5542,D19,S +937,3,"Peltomaki, Mr. Nikolai Johannes",male,25,0,0,STON/O 2. 3101291,7.925,,S +938,1,"Chevre, Mr. Paul Romaine",male,45,0,0,PC 17594,29.7,A9,C +939,3,"Shaughnessy, Mr. Patrick",male,,0,0,370374,7.75,,Q +940,1,"Bucknell, Mrs. William Robert (Emma Eliza Ward)",female,60,0,0,11813,76.2917,D15,C +941,3,"Coutts, Mrs. William (Winnie Minnie"" Treanor)""",female,36,0,2,C.A. 37671,15.9,,S +942,1,"Smith, Mr. Lucien Philip",male,24,1,0,13695,60,C31,S +943,2,"Pulbaum, Mr. Franz",male,27,0,0,SC/PARIS 2168,15.0333,,C +944,2,"Hocking, Miss. Ellen Nellie""""",female,20,2,1,29105,23,,S +945,1,"Fortune, Miss. Ethel Flora",female,28,3,2,19950,263,C23 C25 C27,S +946,2,"Mangiavacchi, Mr. Serafino Emilio",male,,0,0,SC/A.3 2861,15.5792,,C +947,3,"Rice, Master. Albert",male,10,4,1,382652,29.125,,Q +948,3,"Cor, Mr. Bartol",male,35,0,0,349230,7.8958,,S +949,3,"Abelseth, Mr. Olaus Jorgensen",male,25,0,0,348122,7.65,F G63,S +950,3,"Davison, Mr. Thomas Henry",male,,1,0,386525,16.1,,S +951,1,"Chaudanson, Miss. Victorine",female,36,0,0,PC 17608,262.375,B61,C +952,3,"Dika, Mr. Mirko",male,17,0,0,349232,7.8958,,S +953,2,"McCrae, Mr. Arthur Gordon",male,32,0,0,237216,13.5,,S +954,3,"Bjorklund, Mr. Ernst Herbert",male,18,0,0,347090,7.75,,S +955,3,"Bradley, Miss. Bridget Delia",female,22,0,0,334914,7.725,,Q +956,1,"Ryerson, Master. John Borie",male,13,2,2,PC 17608,262.375,B57 B59 B63 B66,C +957,2,"Corey, Mrs. Percy C (Mary Phyllis Elizabeth Miller)",female,,0,0,F.C.C. 13534,21,,S +958,3,"Burns, Miss. Mary Delia",female,18,0,0,330963,7.8792,,Q +959,1,"Moore, Mr. Clarence Bloomfield",male,47,0,0,113796,42.4,,S +960,1,"Tucker, Mr. Gilbert Milligan Jr",male,31,0,0,2543,28.5375,C53,C +961,1,"Fortune, Mrs. Mark (Mary McDougald)",female,60,1,4,19950,263,C23 C25 C27,S +962,3,"Mulvihill, Miss. Bertha E",female,24,0,0,382653,7.75,,Q +963,3,"Minkoff, Mr. Lazar",male,21,0,0,349211,7.8958,,S +964,3,"Nieminen, Miss. Manta Josefina",female,29,0,0,3101297,7.925,,S +965,1,"Ovies y Rodriguez, Mr. Servando",male,28.5,0,0,PC 17562,27.7208,D43,C +966,1,"Geiger, Miss. Amalie",female,35,0,0,113503,211.5,C130,C +967,1,"Keeping, Mr. Edwin",male,32.5,0,0,113503,211.5,C132,C +968,3,"Miles, Mr. Frank",male,,0,0,359306,8.05,,S +969,1,"Cornell, Mrs. Robert Clifford (Malvina Helen Lamson)",female,55,2,0,11770,25.7,C101,S +970,2,"Aldworth, Mr. Charles Augustus",male,30,0,0,248744,13,,S +971,3,"Doyle, Miss. Elizabeth",female,24,0,0,368702,7.75,,Q +972,3,"Boulos, Master. Akar",male,6,1,1,2678,15.2458,,C +973,1,"Straus, Mr. Isidor",male,67,1,0,PC 17483,221.7792,C55 C57,S +974,1,"Case, Mr. Howard Brown",male,49,0,0,19924,26,,S +975,3,"Demetri, Mr. Marinko",male,,0,0,349238,7.8958,,S +976,2,"Lamb, Mr. John Joseph",male,,0,0,240261,10.7083,,Q +977,3,"Khalil, Mr. Betros",male,,1,0,2660,14.4542,,C +978,3,"Barry, Miss. Julia",female,27,0,0,330844,7.8792,,Q +979,3,"Badman, Miss. Emily Louisa",female,18,0,0,A/4 31416,8.05,,S +980,3,"O'Donoghue, Ms. Bridget",female,,0,0,364856,7.75,,Q +981,2,"Wells, Master. Ralph Lester",male,2,1,1,29103,23,,S +982,3,"Dyker, Mrs. Adolf Fredrik (Anna Elisabeth Judith Andersson)",female,22,1,0,347072,13.9,,S +983,3,"Pedersen, Mr. Olaf",male,,0,0,345498,7.775,,S +984,1,"Davidson, Mrs. Thornton (Orian Hays)",female,27,1,2,F.C. 12750,52,B71,S +985,3,"Guest, Mr. Robert",male,,0,0,376563,8.05,,S +986,1,"Birnbaum, Mr. Jakob",male,25,0,0,13905,26,,C +987,3,"Tenglin, Mr. Gunnar Isidor",male,25,0,0,350033,7.7958,,S +988,1,"Cavendish, Mrs. Tyrell William (Julia Florence Siegel)",female,76,1,0,19877,78.85,C46,S +989,3,"Makinen, Mr. Kalle Edvard",male,29,0,0,STON/O 2. 3101268,7.925,,S +990,3,"Braf, Miss. Elin Ester Maria",female,20,0,0,347471,7.8542,,S +991,3,"Nancarrow, Mr. William Henry",male,33,0,0,A./5. 3338,8.05,,S +992,1,"Stengel, Mrs. Charles Emil Henry (Annie May Morris)",female,43,1,0,11778,55.4417,C116,C +993,2,"Weisz, Mr. Leopold",male,27,1,0,228414,26,,S +994,3,"Foley, Mr. William",male,,0,0,365235,7.75,,Q +995,3,"Johansson Palmquist, Mr. Oskar Leander",male,26,0,0,347070,7.775,,S +996,3,"Thomas, Mrs. Alexander (Thamine Thelma"")""",female,16,1,1,2625,8.5167,,C +997,3,"Holthen, Mr. Johan Martin",male,28,0,0,C 4001,22.525,,S +998,3,"Buckley, Mr. Daniel",male,21,0,0,330920,7.8208,,Q +999,3,"Ryan, Mr. Edward",male,,0,0,383162,7.75,,Q +1000,3,"Willer, Mr. Aaron (Abi Weller"")""",male,,0,0,3410,8.7125,,S +1001,2,"Swane, Mr. George",male,18.5,0,0,248734,13,F,S +1002,2,"Stanton, Mr. Samuel Ward",male,41,0,0,237734,15.0458,,C +1003,3,"Shine, Miss. Ellen Natalia",female,,0,0,330968,7.7792,,Q +1004,1,"Evans, Miss. Edith Corse",female,36,0,0,PC 17531,31.6792,A29,C +1005,3,"Buckley, Miss. Katherine",female,18.5,0,0,329944,7.2833,,Q +1006,1,"Straus, Mrs. Isidor (Rosalie Ida Blun)",female,63,1,0,PC 17483,221.7792,C55 C57,S +1007,3,"Chronopoulos, Mr. Demetrios",male,18,1,0,2680,14.4542,,C +1008,3,"Thomas, Mr. John",male,,0,0,2681,6.4375,,C +1009,3,"Sandstrom, Miss. Beatrice Irene",female,1,1,1,PP 9549,16.7,G6,S +1010,1,"Beattie, Mr. Thomson",male,36,0,0,13050,75.2417,C6,C +1011,2,"Chapman, Mrs. John Henry (Sara Elizabeth Lawry)",female,29,1,0,SC/AH 29037,26,,S +1012,2,"Watt, Miss. Bertha J",female,12,0,0,C.A. 33595,15.75,,S +1013,3,"Kiernan, Mr. John",male,,1,0,367227,7.75,,Q +1014,1,"Schabert, Mrs. Paul (Emma Mock)",female,35,1,0,13236,57.75,C28,C +1015,3,"Carver, Mr. Alfred John",male,28,0,0,392095,7.25,,S +1016,3,"Kennedy, Mr. John",male,,0,0,368783,7.75,,Q +1017,3,"Cribb, Miss. Laura Alice",female,17,0,1,371362,16.1,,S +1018,3,"Brobeck, Mr. Karl Rudolf",male,22,0,0,350045,7.7958,,S +1019,3,"McCoy, Miss. Alicia",female,,2,0,367226,23.25,,Q +1020,2,"Bowenur, Mr. Solomon",male,42,0,0,211535,13,,S +1021,3,"Petersen, Mr. Marius",male,24,0,0,342441,8.05,,S +1022,3,"Spinner, Mr. Henry John",male,32,0,0,STON/OQ. 369943,8.05,,S +1023,1,"Gracie, Col. Archibald IV",male,53,0,0,113780,28.5,C51,C +1024,3,"Lefebre, Mrs. Frank (Frances)",female,,0,4,4133,25.4667,,S +1025,3,"Thomas, Mr. Charles P",male,,1,0,2621,6.4375,,C +1026,3,"Dintcheff, Mr. Valtcho",male,43,0,0,349226,7.8958,,S +1027,3,"Carlsson, Mr. Carl Robert",male,24,0,0,350409,7.8542,,S +1028,3,"Zakarian, Mr. Mapriededer",male,26.5,0,0,2656,7.225,,C +1029,2,"Schmidt, Mr. August",male,26,0,0,248659,13,,S +1030,3,"Drapkin, Miss. Jennie",female,23,0,0,SOTON/OQ 392083,8.05,,S +1031,3,"Goodwin, Mr. Charles Frederick",male,40,1,6,CA 2144,46.9,,S +1032,3,"Goodwin, Miss. Jessie Allis",female,10,5,2,CA 2144,46.9,,S +1033,1,"Daniels, Miss. Sarah",female,33,0,0,113781,151.55,,S +1034,1,"Ryerson, Mr. Arthur Larned",male,61,1,3,PC 17608,262.375,B57 B59 B63 B66,C +1035,2,"Beauchamp, Mr. Henry James",male,28,0,0,244358,26,,S +1036,1,"Lindeberg-Lind, Mr. Erik Gustaf (Mr Edward Lingrey"")""",male,42,0,0,17475,26.55,,S +1037,3,"Vander Planke, Mr. Julius",male,31,3,0,345763,18,,S +1038,1,"Hilliard, Mr. Herbert Henry",male,,0,0,17463,51.8625,E46,S +1039,3,"Davies, Mr. Evan",male,22,0,0,SC/A4 23568,8.05,,S +1040,1,"Crafton, Mr. John Bertram",male,,0,0,113791,26.55,,S +1041,2,"Lahtinen, Rev. William",male,30,1,1,250651,26,,S +1042,1,"Earnshaw, Mrs. Boulton (Olive Potter)",female,23,0,1,11767,83.1583,C54,C +1043,3,"Matinoff, Mr. Nicola",male,,0,0,349255,7.8958,,C +1044,3,"Storey, Mr. Thomas",male,60.5,0,0,3701,,,S +1045,3,"Klasen, Mrs. (Hulda Kristina Eugenia Lofqvist)",female,36,0,2,350405,12.1833,,S +1046,3,"Asplund, Master. Filip Oscar",male,13,4,2,347077,31.3875,,S +1047,3,"Duquemin, Mr. Joseph",male,24,0,0,S.O./P.P. 752,7.55,,S +1048,1,"Bird, Miss. Ellen",female,29,0,0,PC 17483,221.7792,C97,S +1049,3,"Lundin, Miss. Olga Elida",female,23,0,0,347469,7.8542,,S +1050,1,"Borebank, Mr. John James",male,42,0,0,110489,26.55,D22,S +1051,3,"Peacock, Mrs. Benjamin (Edith Nile)",female,26,0,2,SOTON/O.Q. 3101315,13.775,,S +1052,3,"Smyth, Miss. Julia",female,,0,0,335432,7.7333,,Q +1053,3,"Touma, Master. Georges Youssef",male,7,1,1,2650,15.2458,,C +1054,2,"Wright, Miss. Marion",female,26,0,0,220844,13.5,,S +1055,3,"Pearce, Mr. Ernest",male,,0,0,343271,7,,S +1056,2,"Peruschitz, Rev. Joseph Maria",male,41,0,0,237393,13,,S +1057,3,"Kink-Heilmann, Mrs. Anton (Luise Heilmann)",female,26,1,1,315153,22.025,,S +1058,1,"Brandeis, Mr. Emil",male,48,0,0,PC 17591,50.4958,B10,C +1059,3,"Ford, Mr. Edward Watson",male,18,2,2,W./C. 6608,34.375,,S +1060,1,"Cassebeer, Mrs. Henry Arthur Jr (Eleanor Genevieve Fosdick)",female,,0,0,17770,27.7208,,C +1061,3,"Hellstrom, Miss. Hilda Maria",female,22,0,0,7548,8.9625,,S +1062,3,"Lithman, Mr. Simon",male,,0,0,S.O./P.P. 251,7.55,,S +1063,3,"Zakarian, Mr. Ortin",male,27,0,0,2670,7.225,,C +1064,3,"Dyker, Mr. Adolf Fredrik",male,23,1,0,347072,13.9,,S +1065,3,"Torfa, Mr. Assad",male,,0,0,2673,7.2292,,C +1066,3,"Asplund, Mr. Carl Oscar Vilhelm Gustafsson",male,40,1,5,347077,31.3875,,S +1067,2,"Brown, Miss. Edith Eileen",female,15,0,2,29750,39,,S +1068,2,"Sincock, Miss. Maude",female,20,0,0,C.A. 33112,36.75,,S +1069,1,"Stengel, Mr. Charles Emil Henry",male,54,1,0,11778,55.4417,C116,C +1070,2,"Becker, Mrs. Allen Oliver (Nellie E Baumgardner)",female,36,0,3,230136,39,F4,S +1071,1,"Compton, Mrs. Alexander Taylor (Mary Eliza Ingersoll)",female,64,0,2,PC 17756,83.1583,E45,C +1072,2,"McCrie, Mr. James Matthew",male,30,0,0,233478,13,,S +1073,1,"Compton, Mr. Alexander Taylor Jr",male,37,1,1,PC 17756,83.1583,E52,C +1074,1,"Marvin, Mrs. Daniel Warner (Mary Graham Carmichael Farquarson)",female,18,1,0,113773,53.1,D30,S +1075,3,"Lane, Mr. Patrick",male,,0,0,7935,7.75,,Q +1076,1,"Douglas, Mrs. Frederick Charles (Mary Helene Baxter)",female,27,1,1,PC 17558,247.5208,B58 B60,C +1077,2,"Maybery, Mr. Frank Hubert",male,40,0,0,239059,16,,S +1078,2,"Phillips, Miss. Alice Frances Louisa",female,21,0,1,S.O./P.P. 2,21,,S +1079,3,"Davies, Mr. Joseph",male,17,2,0,A/4 48873,8.05,,S +1080,3,"Sage, Miss. Ada",female,,8,2,CA. 2343,69.55,,S +1081,2,"Veal, Mr. James",male,40,0,0,28221,13,,S +1082,2,"Angle, Mr. William A",male,34,1,0,226875,26,,S +1083,1,"Salomon, Mr. Abraham L",male,,0,0,111163,26,,S +1084,3,"van Billiard, Master. Walter John",male,11.5,1,1,A/5. 851,14.5,,S +1085,2,"Lingane, Mr. John",male,61,0,0,235509,12.35,,Q +1086,2,"Drew, Master. Marshall Brines",male,8,0,2,28220,32.5,,S +1087,3,"Karlsson, Mr. Julius Konrad Eugen",male,33,0,0,347465,7.8542,,S +1088,1,"Spedden, Master. Robert Douglas",male,6,0,2,16966,134.5,E34,C +1089,3,"Nilsson, Miss. Berta Olivia",female,18,0,0,347066,7.775,,S +1090,2,"Baimbrigge, Mr. Charles Robert",male,23,0,0,C.A. 31030,10.5,,S +1091,3,"Rasmussen, Mrs. (Lena Jacobsen Solvang)",female,,0,0,65305,8.1125,,S +1092,3,"Murphy, Miss. Nora",female,,0,0,36568,15.5,,Q +1093,3,"Danbom, Master. Gilbert Sigvard Emanuel",male,0.33,0,2,347080,14.4,,S +1094,1,"Astor, Col. John Jacob",male,47,1,0,PC 17757,227.525,C62 C64,C +1095,2,"Quick, Miss. Winifred Vera",female,8,1,1,26360,26,,S +1096,2,"Andrew, Mr. Frank Thomas",male,25,0,0,C.A. 34050,10.5,,S +1097,1,"Omont, Mr. Alfred Fernand",male,,0,0,F.C. 12998,25.7417,,C +1098,3,"McGowan, Miss. Katherine",female,35,0,0,9232,7.75,,Q +1099,2,"Collett, Mr. Sidney C Stuart",male,24,0,0,28034,10.5,,S +1100,1,"Rosenbaum, Miss. Edith Louise",female,33,0,0,PC 17613,27.7208,A11,C +1101,3,"Delalic, Mr. Redjo",male,25,0,0,349250,7.8958,,S +1102,3,"Andersen, Mr. Albert Karvin",male,32,0,0,C 4001,22.525,,S +1103,3,"Finoli, Mr. Luigi",male,,0,0,SOTON/O.Q. 3101308,7.05,,S +1104,2,"Deacon, Mr. Percy William",male,17,0,0,S.O.C. 14879,73.5,,S +1105,2,"Howard, Mrs. Benjamin (Ellen Truelove Arman)",female,60,1,0,24065,26,,S +1106,3,"Andersson, Miss. Ida Augusta Margareta",female,38,4,2,347091,7.775,,S +1107,1,"Head, Mr. Christopher",male,42,0,0,113038,42.5,B11,S +1108,3,"Mahon, Miss. Bridget Delia",female,,0,0,330924,7.8792,,Q +1109,1,"Wick, Mr. George Dennick",male,57,1,1,36928,164.8667,,S +1110,1,"Widener, Mrs. George Dunton (Eleanor Elkins)",female,50,1,1,113503,211.5,C80,C +1111,3,"Thomson, Mr. Alexander Morrison",male,,0,0,32302,8.05,,S +1112,2,"Duran y More, Miss. Florentina",female,30,1,0,SC/PARIS 2148,13.8583,,C +1113,3,"Reynolds, Mr. Harold J",male,21,0,0,342684,8.05,,S +1114,2,"Cook, Mrs. (Selena Rogers)",female,22,0,0,W./C. 14266,10.5,F33,S +1115,3,"Karlsson, Mr. Einar Gervasius",male,21,0,0,350053,7.7958,,S +1116,1,"Candee, Mrs. Edward (Helen Churchill Hungerford)",female,53,0,0,PC 17606,27.4458,,C +1117,3,"Moubarek, Mrs. George (Omine Amenia"" Alexander)""",female,,0,2,2661,15.2458,,C +1118,3,"Asplund, Mr. Johan Charles",male,23,0,0,350054,7.7958,,S +1119,3,"McNeill, Miss. Bridget",female,,0,0,370368,7.75,,Q +1120,3,"Everett, Mr. Thomas James",male,40.5,0,0,C.A. 6212,15.1,,S +1121,2,"Hocking, Mr. Samuel James Metcalfe",male,36,0,0,242963,13,,S +1122,2,"Sweet, Mr. George Frederick",male,14,0,0,220845,65,,S +1123,1,"Willard, Miss. Constance",female,21,0,0,113795,26.55,,S +1124,3,"Wiklund, Mr. Karl Johan",male,21,1,0,3101266,6.4958,,S +1125,3,"Linehan, Mr. Michael",male,,0,0,330971,7.8792,,Q +1126,1,"Cumings, Mr. John Bradley",male,39,1,0,PC 17599,71.2833,C85,C +1127,3,"Vendel, Mr. Olof Edvin",male,20,0,0,350416,7.8542,,S +1128,1,"Warren, Mr. Frank Manley",male,64,1,0,110813,75.25,D37,C +1129,3,"Baccos, Mr. Raffull",male,20,0,0,2679,7.225,,C +1130,2,"Hiltunen, Miss. Marta",female,18,1,1,250650,13,,S +1131,1,"Douglas, Mrs. Walter Donald (Mahala Dutton)",female,48,1,0,PC 17761,106.425,C86,C +1132,1,"Lindstrom, Mrs. Carl Johan (Sigrid Posse)",female,55,0,0,112377,27.7208,,C +1133,2,"Christy, Mrs. (Alice Frances)",female,45,0,2,237789,30,,S +1134,1,"Spedden, Mr. Frederic Oakley",male,45,1,1,16966,134.5,E34,C +1135,3,"Hyman, Mr. Abraham",male,,0,0,3470,7.8875,,S +1136,3,"Johnston, Master. William Arthur Willie""""",male,,1,2,W./C. 6607,23.45,,S +1137,1,"Kenyon, Mr. Frederick R",male,41,1,0,17464,51.8625,D21,S +1138,2,"Karnes, Mrs. J Frank (Claire Bennett)",female,22,0,0,F.C.C. 13534,21,,S +1139,2,"Drew, Mr. James Vivian",male,42,1,1,28220,32.5,,S +1140,2,"Hold, Mrs. Stephen (Annie Margaret Hill)",female,29,1,0,26707,26,,S +1141,3,"Khalil, Mrs. Betros (Zahie Maria"" Elias)""",female,,1,0,2660,14.4542,,C +1142,2,"West, Miss. Barbara J",female,0.92,1,2,C.A. 34651,27.75,,S +1143,3,"Abrahamsson, Mr. Abraham August Johannes",male,20,0,0,SOTON/O2 3101284,7.925,,S +1144,1,"Clark, Mr. Walter Miller",male,27,1,0,13508,136.7792,C89,C +1145,3,"Salander, Mr. Karl Johan",male,24,0,0,7266,9.325,,S +1146,3,"Wenzel, Mr. Linhart",male,32.5,0,0,345775,9.5,,S +1147,3,"MacKay, Mr. George William",male,,0,0,C.A. 42795,7.55,,S +1148,3,"Mahon, Mr. John",male,,0,0,AQ/4 3130,7.75,,Q +1149,3,"Niklasson, Mr. Samuel",male,28,0,0,363611,8.05,,S +1150,2,"Bentham, Miss. Lilian W",female,19,0,0,28404,13,,S +1151,3,"Midtsjo, Mr. Karl Albert",male,21,0,0,345501,7.775,,S +1152,3,"de Messemaeker, Mr. Guillaume Joseph",male,36.5,1,0,345572,17.4,,S +1153,3,"Nilsson, Mr. August Ferdinand",male,21,0,0,350410,7.8542,,S +1154,2,"Wells, Mrs. Arthur Henry (Addie"" Dart Trevaskis)""",female,29,0,2,29103,23,,S +1155,3,"Klasen, Miss. Gertrud Emilia",female,1,1,1,350405,12.1833,,S +1156,2,"Portaluppi, Mr. Emilio Ilario Giuseppe",male,30,0,0,C.A. 34644,12.7375,,C +1157,3,"Lyntakoff, Mr. Stanko",male,,0,0,349235,7.8958,,S +1158,1,"Chisholm, Mr. Roderick Robert Crispin",male,,0,0,112051,0,,S +1159,3,"Warren, Mr. Charles William",male,,0,0,C.A. 49867,7.55,,S +1160,3,"Howard, Miss. May Elizabeth",female,,0,0,A. 2. 39186,8.05,,S +1161,3,"Pokrnic, Mr. Mate",male,17,0,0,315095,8.6625,,S +1162,1,"McCaffry, Mr. Thomas Francis",male,46,0,0,13050,75.2417,C6,C +1163,3,"Fox, Mr. Patrick",male,,0,0,368573,7.75,,Q +1164,1,"Clark, Mrs. Walter Miller (Virginia McDowell)",female,26,1,0,13508,136.7792,C89,C +1165,3,"Lennon, Miss. Mary",female,,1,0,370371,15.5,,Q +1166,3,"Saade, Mr. Jean Nassr",male,,0,0,2676,7.225,,C +1167,2,"Bryhl, Miss. Dagmar Jenny Ingeborg ",female,20,1,0,236853,26,,S +1168,2,"Parker, Mr. Clifford Richard",male,28,0,0,SC 14888,10.5,,S +1169,2,"Faunthorpe, Mr. Harry",male,40,1,0,2926,26,,S +1170,2,"Ware, Mr. John James",male,30,1,0,CA 31352,21,,S +1171,2,"Oxenham, Mr. Percy Thomas",male,22,0,0,W./C. 14260,10.5,,S +1172,3,"Oreskovic, Miss. Jelka",female,23,0,0,315085,8.6625,,S +1173,3,"Peacock, Master. Alfred Edward",male,0.75,1,1,SOTON/O.Q. 3101315,13.775,,S +1174,3,"Fleming, Miss. Honora",female,,0,0,364859,7.75,,Q +1175,3,"Touma, Miss. Maria Youssef",female,9,1,1,2650,15.2458,,C +1176,3,"Rosblom, Miss. Salli Helena",female,2,1,1,370129,20.2125,,S +1177,3,"Dennis, Mr. William",male,36,0,0,A/5 21175,7.25,,S +1178,3,"Franklin, Mr. Charles (Charles Fardon)",male,,0,0,SOTON/O.Q. 3101314,7.25,,S +1179,1,"Snyder, Mr. John Pillsbury",male,24,1,0,21228,82.2667,B45,S +1180,3,"Mardirosian, Mr. Sarkis",male,,0,0,2655,7.2292,F E46,C +1181,3,"Ford, Mr. Arthur",male,,0,0,A/5 1478,8.05,,S +1182,1,"Rheims, Mr. George Alexander Lucien",male,,0,0,PC 17607,39.6,,S +1183,3,"Daly, Miss. Margaret Marcella Maggie""""",female,30,0,0,382650,6.95,,Q +1184,3,"Nasr, Mr. Mustafa",male,,0,0,2652,7.2292,,C +1185,1,"Dodge, Dr. Washington",male,53,1,1,33638,81.8583,A34,S +1186,3,"Wittevrongel, Mr. Camille",male,36,0,0,345771,9.5,,S +1187,3,"Angheloff, Mr. Minko",male,26,0,0,349202,7.8958,,S +1188,2,"Laroche, Miss. Louise",female,1,1,2,SC/Paris 2123,41.5792,,C +1189,3,"Samaan, Mr. Hanna",male,,2,0,2662,21.6792,,C +1190,1,"Loring, Mr. Joseph Holland",male,30,0,0,113801,45.5,,S +1191,3,"Johansson, Mr. Nils",male,29,0,0,347467,7.8542,,S +1192,3,"Olsson, Mr. Oscar Wilhelm",male,32,0,0,347079,7.775,,S +1193,2,"Malachard, Mr. Noel",male,,0,0,237735,15.0458,D,C +1194,2,"Phillips, Mr. Escott Robert",male,43,0,1,S.O./P.P. 2,21,,S +1195,3,"Pokrnic, Mr. Tome",male,24,0,0,315092,8.6625,,S +1196,3,"McCarthy, Miss. Catherine Katie""""",female,,0,0,383123,7.75,,Q +1197,1,"Crosby, Mrs. Edward Gifford (Catherine Elizabeth Halstead)",female,64,1,1,112901,26.55,B26,S +1198,1,"Allison, Mr. Hudson Joshua Creighton",male,30,1,2,113781,151.55,C22 C26,S +1199,3,"Aks, Master. Philip Frank",male,0.83,0,1,392091,9.35,,S +1200,1,"Hays, Mr. Charles Melville",male,55,1,1,12749,93.5,B69,S +1201,3,"Hansen, Mrs. Claus Peter (Jennie L Howard)",female,45,1,0,350026,14.1083,,S +1202,3,"Cacic, Mr. Jego Grga",male,18,0,0,315091,8.6625,,S +1203,3,"Vartanian, Mr. David",male,22,0,0,2658,7.225,,C +1204,3,"Sadowitz, Mr. Harry",male,,0,0,LP 1588,7.575,,S +1205,3,"Carr, Miss. Jeannie",female,37,0,0,368364,7.75,,Q +1206,1,"White, Mrs. John Stuart (Ella Holmes)",female,55,0,0,PC 17760,135.6333,C32,C +1207,3,"Hagardon, Miss. Kate",female,17,0,0,AQ/3. 30631,7.7333,,Q +1208,1,"Spencer, Mr. William Augustus",male,57,1,0,PC 17569,146.5208,B78,C +1209,2,"Rogers, Mr. Reginald Harry",male,19,0,0,28004,10.5,,S +1210,3,"Jonsson, Mr. Nils Hilding",male,27,0,0,350408,7.8542,,S +1211,2,"Jefferys, Mr. Ernest Wilfred",male,22,2,0,C.A. 31029,31.5,,S +1212,3,"Andersson, Mr. Johan Samuel",male,26,0,0,347075,7.775,,S +1213,3,"Krekorian, Mr. Neshan",male,25,0,0,2654,7.2292,F E57,C +1214,2,"Nesson, Mr. Israel",male,26,0,0,244368,13,F2,S +1215,1,"Rowe, Mr. Alfred G",male,33,0,0,113790,26.55,,S +1216,1,"Kreuchen, Miss. Emilie",female,39,0,0,24160,211.3375,,S +1217,3,"Assam, Mr. Ali",male,23,0,0,SOTON/O.Q. 3101309,7.05,,S +1218,2,"Becker, Miss. Ruth Elizabeth",female,12,2,1,230136,39,F4,S +1219,1,"Rosenshine, Mr. George (Mr George Thorne"")""",male,46,0,0,PC 17585,79.2,,C +1220,2,"Clarke, Mr. Charles Valentine",male,29,1,0,2003,26,,S +1221,2,"Enander, Mr. Ingvar",male,21,0,0,236854,13,,S +1222,2,"Davies, Mrs. John Morgan (Elizabeth Agnes Mary White) ",female,48,0,2,C.A. 33112,36.75,,S +1223,1,"Dulles, Mr. William Crothers",male,39,0,0,PC 17580,29.7,A18,C +1224,3,"Thomas, Mr. Tannous",male,,0,0,2684,7.225,,C +1225,3,"Nakid, Mrs. Said (Waika Mary"" Mowad)""",female,19,1,1,2653,15.7417,,C +1226,3,"Cor, Mr. Ivan",male,27,0,0,349229,7.8958,,S +1227,1,"Maguire, Mr. John Edward",male,30,0,0,110469,26,C106,S +1228,2,"de Brito, Mr. Jose Joaquim",male,32,0,0,244360,13,,S +1229,3,"Elias, Mr. Joseph",male,39,0,2,2675,7.2292,,C +1230,2,"Denbury, Mr. Herbert",male,25,0,0,C.A. 31029,31.5,,S +1231,3,"Betros, Master. Seman",male,,0,0,2622,7.2292,,C +1232,2,"Fillbrook, Mr. Joseph Charles",male,18,0,0,C.A. 15185,10.5,,S +1233,3,"Lundstrom, Mr. Thure Edvin",male,32,0,0,350403,7.5792,,S +1234,3,"Sage, Mr. John George",male,,1,9,CA. 2343,69.55,,S +1235,1,"Cardeza, Mrs. James Warburton Martinez (Charlotte Wardle Drake)",female,58,0,1,PC 17755,512.3292,B51 B53 B55,C +1236,3,"van Billiard, Master. James William",male,,1,1,A/5. 851,14.5,,S +1237,3,"Abelseth, Miss. Karen Marie",female,16,0,0,348125,7.65,,S +1238,2,"Botsford, Mr. William Hull",male,26,0,0,237670,13,,S +1239,3,"Whabee, Mrs. George Joseph (Shawneene Abi-Saab)",female,38,0,0,2688,7.2292,,C +1240,2,"Giles, Mr. Ralph",male,24,0,0,248726,13.5,,S +1241,2,"Walcroft, Miss. Nellie",female,31,0,0,F.C.C. 13528,21,,S +1242,1,"Greenfield, Mrs. Leo David (Blanche Strouse)",female,45,0,1,PC 17759,63.3583,D10 D12,C +1243,2,"Stokes, Mr. Philip Joseph",male,25,0,0,F.C.C. 13540,10.5,,S +1244,2,"Dibden, Mr. William",male,18,0,0,S.O.C. 14879,73.5,,S +1245,2,"Herman, Mr. Samuel",male,49,1,2,220845,65,,S +1246,3,"Dean, Miss. Elizabeth Gladys Millvina""""",female,0.17,1,2,C.A. 2315,20.575,,S +1247,1,"Julian, Mr. Henry Forbes",male,50,0,0,113044,26,E60,S +1248,1,"Brown, Mrs. John Murray (Caroline Lane Lamson)",female,59,2,0,11769,51.4792,C101,S +1249,3,"Lockyer, Mr. Edward",male,,0,0,1222,7.8792,,S +1250,3,"O'Keefe, Mr. Patrick",male,,0,0,368402,7.75,,Q +1251,3,"Lindell, Mrs. Edvard Bengtsson (Elin Gerda Persson)",female,30,1,0,349910,15.55,,S +1252,3,"Sage, Master. William Henry",male,14.5,8,2,CA. 2343,69.55,,S +1253,2,"Mallet, Mrs. Albert (Antoinette Magnin)",female,24,1,1,S.C./PARIS 2079,37.0042,,C +1254,2,"Ware, Mrs. John James (Florence Louise Long)",female,31,0,0,CA 31352,21,,S +1255,3,"Strilic, Mr. Ivan",male,27,0,0,315083,8.6625,,S +1256,1,"Harder, Mrs. George Achilles (Dorothy Annan)",female,25,1,0,11765,55.4417,E50,C +1257,3,"Sage, Mrs. John (Annie Bullen)",female,,1,9,CA. 2343,69.55,,S +1258,3,"Caram, Mr. Joseph",male,,1,0,2689,14.4583,,C +1259,3,"Riihivouri, Miss. Susanna Juhantytar Sanni""""",female,22,0,0,3101295,39.6875,,S +1260,1,"Gibson, Mrs. Leonard (Pauline C Boeson)",female,45,0,1,112378,59.4,,C +1261,2,"Pallas y Castello, Mr. Emilio",male,29,0,0,SC/PARIS 2147,13.8583,,C +1262,2,"Giles, Mr. Edgar",male,21,1,0,28133,11.5,,S +1263,1,"Wilson, Miss. Helen Alice",female,31,0,0,16966,134.5,E39 E41,C +1264,1,"Ismay, Mr. Joseph Bruce",male,49,0,0,112058,0,B52 B54 B56,S +1265,2,"Harbeck, Mr. William H",male,44,0,0,248746,13,,S +1266,1,"Dodge, Mrs. Washington (Ruth Vidaver)",female,54,1,1,33638,81.8583,A34,S +1267,1,"Bowen, Miss. Grace Scott",female,45,0,0,PC 17608,262.375,,C +1268,3,"Kink, Miss. Maria",female,22,2,0,315152,8.6625,,S +1269,2,"Cotterill, Mr. Henry Harry""""",male,21,0,0,29107,11.5,,S +1270,1,"Hipkins, Mr. William Edward",male,55,0,0,680,50,C39,S +1271,3,"Asplund, Master. Carl Edgar",male,5,4,2,347077,31.3875,,S +1272,3,"O'Connor, Mr. Patrick",male,,0,0,366713,7.75,,Q +1273,3,"Foley, Mr. Joseph",male,26,0,0,330910,7.8792,,Q +1274,3,"Risien, Mrs. Samuel (Emma)",female,,0,0,364498,14.5,,S +1275,3,"McNamee, Mrs. Neal (Eileen O'Leary)",female,19,1,0,376566,16.1,,S +1276,2,"Wheeler, Mr. Edwin Frederick""""",male,,0,0,SC/PARIS 2159,12.875,,S +1277,2,"Herman, Miss. Kate",female,24,1,2,220845,65,,S +1278,3,"Aronsson, Mr. Ernst Axel Algot",male,24,0,0,349911,7.775,,S +1279,2,"Ashby, Mr. John",male,57,0,0,244346,13,,S +1280,3,"Canavan, Mr. Patrick",male,21,0,0,364858,7.75,,Q +1281,3,"Palsson, Master. Paul Folke",male,6,3,1,349909,21.075,,S +1282,1,"Payne, Mr. Vivian Ponsonby",male,23,0,0,12749,93.5,B24,S +1283,1,"Lines, Mrs. Ernest H (Elizabeth Lindsey James)",female,51,0,1,PC 17592,39.4,D28,S +1284,3,"Abbott, Master. Eugene Joseph",male,13,0,2,C.A. 2673,20.25,,S +1285,2,"Gilbert, Mr. William",male,47,0,0,C.A. 30769,10.5,,S +1286,3,"Kink-Heilmann, Mr. Anton",male,29,3,1,315153,22.025,,S +1287,1,"Smith, Mrs. Lucien Philip (Mary Eloise Hughes)",female,18,1,0,13695,60,C31,S +1288,3,"Colbert, Mr. Patrick",male,24,0,0,371109,7.25,,Q +1289,1,"Frolicher-Stehli, Mrs. Maxmillian (Margaretha Emerentia Stehli)",female,48,1,1,13567,79.2,B41,C +1290,3,"Larsson-Rondberg, Mr. Edvard A",male,22,0,0,347065,7.775,,S +1291,3,"Conlon, Mr. Thomas Henry",male,31,0,0,21332,7.7333,,Q +1292,1,"Bonnell, Miss. Caroline",female,30,0,0,36928,164.8667,C7,S +1293,2,"Gale, Mr. Harry",male,38,1,0,28664,21,,S +1294,1,"Gibson, Miss. Dorothy Winifred",female,22,0,1,112378,59.4,,C +1295,1,"Carrau, Mr. Jose Pedro",male,17,0,0,113059,47.1,,S +1296,1,"Frauenthal, Mr. Isaac Gerald",male,43,1,0,17765,27.7208,D40,C +1297,2,"Nourney, Mr. Alfred (Baron von Drachstedt"")""",male,20,0,0,SC/PARIS 2166,13.8625,D38,C +1298,2,"Ware, Mr. William Jeffery",male,23,1,0,28666,10.5,,S +1299,1,"Widener, Mr. George Dunton",male,50,1,1,113503,211.5,C80,C +1300,3,"Riordan, Miss. Johanna Hannah""""",female,,0,0,334915,7.7208,,Q +1301,3,"Peacock, Miss. Treasteall",female,3,1,1,SOTON/O.Q. 3101315,13.775,,S +1302,3,"Naughton, Miss. Hannah",female,,0,0,365237,7.75,,Q +1303,1,"Minahan, Mrs. William Edward (Lillian E Thorpe)",female,37,1,0,19928,90,C78,Q +1304,3,"Henriksson, Miss. Jenny Lovisa",female,28,0,0,347086,7.775,,S +1305,3,"Spector, Mr. Woolf",male,,0,0,A.5. 3236,8.05,,S +1306,1,"Oliva y Ocana, Dona. Fermina",female,39,0,0,PC 17758,108.9,C105,C +1307,3,"Saether, Mr. Simon Sivertsen",male,38.5,0,0,SOTON/O.Q. 3101262,7.25,,S +1308,3,"Ware, Mr. Frederick",male,,0,0,359309,8.05,,S +1309,3,"Peter, Master. Michael J",male,,1,1,2668,22.3583,,C diff --git a/input/train.csv b/input/train.csv new file mode 100644 index 0000000..63b68ab --- /dev/null +++ b/input/train.csv @@ -0,0 +1,892 @@ +PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked +1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,,S +2,1,1,"Cumings, Mrs. John Bradley (Florence Briggs Thayer)",female,38,1,0,PC 17599,71.2833,C85,C +3,1,3,"Heikkinen, Miss. Laina",female,26,0,0,STON/O2. 3101282,7.925,,S +4,1,1,"Futrelle, Mrs. Jacques Heath (Lily May Peel)",female,35,1,0,113803,53.1,C123,S +5,0,3,"Allen, Mr. William Henry",male,35,0,0,373450,8.05,,S +6,0,3,"Moran, Mr. James",male,,0,0,330877,8.4583,,Q +7,0,1,"McCarthy, Mr. Timothy J",male,54,0,0,17463,51.8625,E46,S +8,0,3,"Palsson, Master. Gosta Leonard",male,2,3,1,349909,21.075,,S +9,1,3,"Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)",female,27,0,2,347742,11.1333,,S +10,1,2,"Nasser, Mrs. Nicholas (Adele Achem)",female,14,1,0,237736,30.0708,,C +11,1,3,"Sandstrom, Miss. Marguerite Rut",female,4,1,1,PP 9549,16.7,G6,S +12,1,1,"Bonnell, Miss. Elizabeth",female,58,0,0,113783,26.55,C103,S +13,0,3,"Saundercock, Mr. William Henry",male,20,0,0,A/5. 2151,8.05,,S +14,0,3,"Andersson, Mr. Anders Johan",male,39,1,5,347082,31.275,,S +15,0,3,"Vestrom, Miss. Hulda Amanda Adolfina",female,14,0,0,350406,7.8542,,S +16,1,2,"Hewlett, Mrs. (Mary D Kingcome) ",female,55,0,0,248706,16,,S +17,0,3,"Rice, Master. Eugene",male,2,4,1,382652,29.125,,Q +18,1,2,"Williams, Mr. Charles Eugene",male,,0,0,244373,13,,S +19,0,3,"Vander Planke, Mrs. Julius (Emelia Maria Vandemoortele)",female,31,1,0,345763,18,,S +20,1,3,"Masselmani, Mrs. Fatima",female,,0,0,2649,7.225,,C +21,0,2,"Fynney, Mr. Joseph J",male,35,0,0,239865,26,,S +22,1,2,"Beesley, Mr. Lawrence",male,34,0,0,248698,13,D56,S +23,1,3,"McGowan, Miss. Anna ""Annie""",female,15,0,0,330923,8.0292,,Q +24,1,1,"Sloper, Mr. William Thompson",male,28,0,0,113788,35.5,A6,S +25,0,3,"Palsson, Miss. Torborg Danira",female,8,3,1,349909,21.075,,S +26,1,3,"Asplund, Mrs. Carl Oscar (Selma Augusta Emilia Johansson)",female,38,1,5,347077,31.3875,,S +27,0,3,"Emir, Mr. Farred Chehab",male,,0,0,2631,7.225,,C +28,0,1,"Fortune, Mr. Charles Alexander",male,19,3,2,19950,263,C23 C25 C27,S +29,1,3,"O'Dwyer, Miss. Ellen ""Nellie""",female,,0,0,330959,7.8792,,Q +30,0,3,"Todoroff, Mr. Lalio",male,,0,0,349216,7.8958,,S +31,0,1,"Uruchurtu, Don. Manuel E",male,40,0,0,PC 17601,27.7208,,C +32,1,1,"Spencer, Mrs. William Augustus (Marie Eugenie)",female,,1,0,PC 17569,146.5208,B78,C +33,1,3,"Glynn, Miss. Mary Agatha",female,,0,0,335677,7.75,,Q +34,0,2,"Wheadon, Mr. Edward H",male,66,0,0,C.A. 24579,10.5,,S +35,0,1,"Meyer, Mr. Edgar Joseph",male,28,1,0,PC 17604,82.1708,,C +36,0,1,"Holverson, Mr. Alexander Oskar",male,42,1,0,113789,52,,S +37,1,3,"Mamee, Mr. Hanna",male,,0,0,2677,7.2292,,C +38,0,3,"Cann, Mr. Ernest Charles",male,21,0,0,A./5. 2152,8.05,,S +39,0,3,"Vander Planke, Miss. Augusta Maria",female,18,2,0,345764,18,,S +40,1,3,"Nicola-Yarred, Miss. Jamila",female,14,1,0,2651,11.2417,,C +41,0,3,"Ahlin, Mrs. Johan (Johanna Persdotter Larsson)",female,40,1,0,7546,9.475,,S +42,0,2,"Turpin, Mrs. William John Robert (Dorothy Ann Wonnacott)",female,27,1,0,11668,21,,S +43,0,3,"Kraeff, Mr. Theodor",male,,0,0,349253,7.8958,,C +44,1,2,"Laroche, Miss. Simonne Marie Anne Andree",female,3,1,2,SC/Paris 2123,41.5792,,C +45,1,3,"Devaney, Miss. Margaret Delia",female,19,0,0,330958,7.8792,,Q +46,0,3,"Rogers, Mr. William John",male,,0,0,S.C./A.4. 23567,8.05,,S +47,0,3,"Lennon, Mr. Denis",male,,1,0,370371,15.5,,Q +48,1,3,"O'Driscoll, Miss. Bridget",female,,0,0,14311,7.75,,Q +49,0,3,"Samaan, Mr. Youssef",male,,2,0,2662,21.6792,,C +50,0,3,"Arnold-Franchi, Mrs. Josef (Josefine Franchi)",female,18,1,0,349237,17.8,,S +51,0,3,"Panula, Master. Juha Niilo",male,7,4,1,3101295,39.6875,,S +52,0,3,"Nosworthy, Mr. Richard Cater",male,21,0,0,A/4. 39886,7.8,,S +53,1,1,"Harper, Mrs. Henry Sleeper (Myna Haxtun)",female,49,1,0,PC 17572,76.7292,D33,C +54,1,2,"Faunthorpe, Mrs. Lizzie (Elizabeth Anne Wilkinson)",female,29,1,0,2926,26,,S +55,0,1,"Ostby, Mr. Engelhart Cornelius",male,65,0,1,113509,61.9792,B30,C +56,1,1,"Woolner, Mr. Hugh",male,,0,0,19947,35.5,C52,S +57,1,2,"Rugg, Miss. Emily",female,21,0,0,C.A. 31026,10.5,,S +58,0,3,"Novel, Mr. Mansouer",male,28.5,0,0,2697,7.2292,,C +59,1,2,"West, Miss. Constance Mirium",female,5,1,2,C.A. 34651,27.75,,S +60,0,3,"Goodwin, Master. William Frederick",male,11,5,2,CA 2144,46.9,,S +61,0,3,"Sirayanian, Mr. Orsen",male,22,0,0,2669,7.2292,,C +62,1,1,"Icard, Miss. Amelie",female,38,0,0,113572,80,B28, +63,0,1,"Harris, Mr. Henry Birkhardt",male,45,1,0,36973,83.475,C83,S +64,0,3,"Skoog, Master. Harald",male,4,3,2,347088,27.9,,S +65,0,1,"Stewart, Mr. Albert A",male,,0,0,PC 17605,27.7208,,C +66,1,3,"Moubarek, Master. Gerios",male,,1,1,2661,15.2458,,C +67,1,2,"Nye, Mrs. (Elizabeth Ramell)",female,29,0,0,C.A. 29395,10.5,F33,S +68,0,3,"Crease, Mr. Ernest James",male,19,0,0,S.P. 3464,8.1583,,S +69,1,3,"Andersson, Miss. Erna Alexandra",female,17,4,2,3101281,7.925,,S +70,0,3,"Kink, Mr. Vincenz",male,26,2,0,315151,8.6625,,S +71,0,2,"Jenkin, Mr. Stephen Curnow",male,32,0,0,C.A. 33111,10.5,,S +72,0,3,"Goodwin, Miss. Lillian Amy",female,16,5,2,CA 2144,46.9,,S +73,0,2,"Hood, Mr. Ambrose Jr",male,21,0,0,S.O.C. 14879,73.5,,S +74,0,3,"Chronopoulos, Mr. Apostolos",male,26,1,0,2680,14.4542,,C +75,1,3,"Bing, Mr. Lee",male,32,0,0,1601,56.4958,,S +76,0,3,"Moen, Mr. Sigurd Hansen",male,25,0,0,348123,7.65,F G73,S +77,0,3,"Staneff, Mr. Ivan",male,,0,0,349208,7.8958,,S +78,0,3,"Moutal, Mr. Rahamin Haim",male,,0,0,374746,8.05,,S +79,1,2,"Caldwell, Master. Alden Gates",male,0.83,0,2,248738,29,,S +80,1,3,"Dowdell, Miss. Elizabeth",female,30,0,0,364516,12.475,,S +81,0,3,"Waelens, Mr. Achille",male,22,0,0,345767,9,,S +82,1,3,"Sheerlinck, Mr. Jan Baptist",male,29,0,0,345779,9.5,,S +83,1,3,"McDermott, Miss. Brigdet Delia",female,,0,0,330932,7.7875,,Q +84,0,1,"Carrau, Mr. Francisco M",male,28,0,0,113059,47.1,,S +85,1,2,"Ilett, Miss. Bertha",female,17,0,0,SO/C 14885,10.5,,S +86,1,3,"Backstrom, Mrs. Karl Alfred (Maria Mathilda Gustafsson)",female,33,3,0,3101278,15.85,,S +87,0,3,"Ford, Mr. William Neal",male,16,1,3,W./C. 6608,34.375,,S +88,0,3,"Slocovski, Mr. Selman Francis",male,,0,0,SOTON/OQ 392086,8.05,,S +89,1,1,"Fortune, Miss. Mabel Helen",female,23,3,2,19950,263,C23 C25 C27,S +90,0,3,"Celotti, Mr. Francesco",male,24,0,0,343275,8.05,,S +91,0,3,"Christmann, Mr. Emil",male,29,0,0,343276,8.05,,S +92,0,3,"Andreasson, Mr. Paul Edvin",male,20,0,0,347466,7.8542,,S +93,0,1,"Chaffee, Mr. Herbert Fuller",male,46,1,0,W.E.P. 5734,61.175,E31,S +94,0,3,"Dean, Mr. Bertram Frank",male,26,1,2,C.A. 2315,20.575,,S +95,0,3,"Coxon, Mr. Daniel",male,59,0,0,364500,7.25,,S +96,0,3,"Shorney, Mr. Charles Joseph",male,,0,0,374910,8.05,,S +97,0,1,"Goldschmidt, Mr. George B",male,71,0,0,PC 17754,34.6542,A5,C +98,1,1,"Greenfield, Mr. William Bertram",male,23,0,1,PC 17759,63.3583,D10 D12,C +99,1,2,"Doling, Mrs. John T (Ada Julia Bone)",female,34,0,1,231919,23,,S +100,0,2,"Kantor, Mr. Sinai",male,34,1,0,244367,26,,S +101,0,3,"Petranec, Miss. Matilda",female,28,0,0,349245,7.8958,,S +102,0,3,"Petroff, Mr. Pastcho (""Pentcho"")",male,,0,0,349215,7.8958,,S +103,0,1,"White, Mr. Richard Frasar",male,21,0,1,35281,77.2875,D26,S +104,0,3,"Johansson, Mr. Gustaf Joel",male,33,0,0,7540,8.6542,,S +105,0,3,"Gustafsson, Mr. Anders Vilhelm",male,37,2,0,3101276,7.925,,S +106,0,3,"Mionoff, Mr. Stoytcho",male,28,0,0,349207,7.8958,,S +107,1,3,"Salkjelsvik, Miss. Anna Kristine",female,21,0,0,343120,7.65,,S +108,1,3,"Moss, Mr. Albert Johan",male,,0,0,312991,7.775,,S +109,0,3,"Rekic, Mr. Tido",male,38,0,0,349249,7.8958,,S +110,1,3,"Moran, Miss. Bertha",female,,1,0,371110,24.15,,Q +111,0,1,"Porter, Mr. Walter Chamberlain",male,47,0,0,110465,52,C110,S +112,0,3,"Zabour, Miss. Hileni",female,14.5,1,0,2665,14.4542,,C +113,0,3,"Barton, Mr. David John",male,22,0,0,324669,8.05,,S +114,0,3,"Jussila, Miss. Katriina",female,20,1,0,4136,9.825,,S +115,0,3,"Attalah, Miss. Malake",female,17,0,0,2627,14.4583,,C +116,0,3,"Pekoniemi, Mr. Edvard",male,21,0,0,STON/O 2. 3101294,7.925,,S +117,0,3,"Connors, Mr. Patrick",male,70.5,0,0,370369,7.75,,Q +118,0,2,"Turpin, Mr. William John Robert",male,29,1,0,11668,21,,S +119,0,1,"Baxter, Mr. Quigg Edmond",male,24,0,1,PC 17558,247.5208,B58 B60,C +120,0,3,"Andersson, Miss. Ellis Anna Maria",female,2,4,2,347082,31.275,,S +121,0,2,"Hickman, Mr. Stanley George",male,21,2,0,S.O.C. 14879,73.5,,S +122,0,3,"Moore, Mr. Leonard Charles",male,,0,0,A4. 54510,8.05,,S +123,0,2,"Nasser, Mr. Nicholas",male,32.5,1,0,237736,30.0708,,C +124,1,2,"Webber, Miss. Susan",female,32.5,0,0,27267,13,E101,S +125,0,1,"White, Mr. Percival Wayland",male,54,0,1,35281,77.2875,D26,S +126,1,3,"Nicola-Yarred, Master. Elias",male,12,1,0,2651,11.2417,,C +127,0,3,"McMahon, Mr. Martin",male,,0,0,370372,7.75,,Q +128,1,3,"Madsen, Mr. Fridtjof Arne",male,24,0,0,C 17369,7.1417,,S +129,1,3,"Peter, Miss. Anna",female,,1,1,2668,22.3583,F E69,C +130,0,3,"Ekstrom, Mr. Johan",male,45,0,0,347061,6.975,,S +131,0,3,"Drazenoic, Mr. Jozef",male,33,0,0,349241,7.8958,,C +132,0,3,"Coelho, Mr. Domingos Fernandeo",male,20,0,0,SOTON/O.Q. 3101307,7.05,,S +133,0,3,"Robins, Mrs. Alexander A (Grace Charity Laury)",female,47,1,0,A/5. 3337,14.5,,S +134,1,2,"Weisz, Mrs. Leopold (Mathilde Francoise Pede)",female,29,1,0,228414,26,,S +135,0,2,"Sobey, Mr. Samuel James Hayden",male,25,0,0,C.A. 29178,13,,S +136,0,2,"Richard, Mr. Emile",male,23,0,0,SC/PARIS 2133,15.0458,,C +137,1,1,"Newsom, Miss. Helen Monypeny",female,19,0,2,11752,26.2833,D47,S +138,0,1,"Futrelle, Mr. Jacques Heath",male,37,1,0,113803,53.1,C123,S +139,0,3,"Osen, Mr. Olaf Elon",male,16,0,0,7534,9.2167,,S +140,0,1,"Giglio, Mr. Victor",male,24,0,0,PC 17593,79.2,B86,C +141,0,3,"Boulos, Mrs. Joseph (Sultana)",female,,0,2,2678,15.2458,,C +142,1,3,"Nysten, Miss. Anna Sofia",female,22,0,0,347081,7.75,,S +143,1,3,"Hakkarainen, Mrs. Pekka Pietari (Elin Matilda Dolck)",female,24,1,0,STON/O2. 3101279,15.85,,S +144,0,3,"Burke, Mr. Jeremiah",male,19,0,0,365222,6.75,,Q +145,0,2,"Andrew, Mr. Edgardo Samuel",male,18,0,0,231945,11.5,,S +146,0,2,"Nicholls, Mr. Joseph Charles",male,19,1,1,C.A. 33112,36.75,,S +147,1,3,"Andersson, Mr. August Edvard (""Wennerstrom"")",male,27,0,0,350043,7.7958,,S +148,0,3,"Ford, Miss. Robina Maggie ""Ruby""",female,9,2,2,W./C. 6608,34.375,,S +149,0,2,"Navratil, Mr. Michel (""Louis M Hoffman"")",male,36.5,0,2,230080,26,F2,S +150,0,2,"Byles, Rev. Thomas Roussel Davids",male,42,0,0,244310,13,,S +151,0,2,"Bateman, Rev. Robert James",male,51,0,0,S.O.P. 1166,12.525,,S +152,1,1,"Pears, Mrs. Thomas (Edith Wearne)",female,22,1,0,113776,66.6,C2,S +153,0,3,"Meo, Mr. Alfonzo",male,55.5,0,0,A.5. 11206,8.05,,S +154,0,3,"van Billiard, Mr. Austin Blyler",male,40.5,0,2,A/5. 851,14.5,,S +155,0,3,"Olsen, Mr. Ole Martin",male,,0,0,Fa 265302,7.3125,,S +156,0,1,"Williams, Mr. Charles Duane",male,51,0,1,PC 17597,61.3792,,C +157,1,3,"Gilnagh, Miss. Katherine ""Katie""",female,16,0,0,35851,7.7333,,Q +158,0,3,"Corn, Mr. Harry",male,30,0,0,SOTON/OQ 392090,8.05,,S +159,0,3,"Smiljanic, Mr. Mile",male,,0,0,315037,8.6625,,S +160,0,3,"Sage, Master. Thomas Henry",male,,8,2,CA. 2343,69.55,,S +161,0,3,"Cribb, Mr. John Hatfield",male,44,0,1,371362,16.1,,S +162,1,2,"Watt, Mrs. James (Elizabeth ""Bessie"" Inglis Milne)",female,40,0,0,C.A. 33595,15.75,,S +163,0,3,"Bengtsson, Mr. John Viktor",male,26,0,0,347068,7.775,,S +164,0,3,"Calic, Mr. Jovo",male,17,0,0,315093,8.6625,,S +165,0,3,"Panula, Master. Eino Viljami",male,1,4,1,3101295,39.6875,,S +166,1,3,"Goldsmith, Master. Frank John William ""Frankie""",male,9,0,2,363291,20.525,,S +167,1,1,"Chibnall, Mrs. (Edith Martha Bowerman)",female,,0,1,113505,55,E33,S +168,0,3,"Skoog, Mrs. William (Anna Bernhardina Karlsson)",female,45,1,4,347088,27.9,,S +169,0,1,"Baumann, Mr. John D",male,,0,0,PC 17318,25.925,,S +170,0,3,"Ling, Mr. Lee",male,28,0,0,1601,56.4958,,S +171,0,1,"Van der hoef, Mr. Wyckoff",male,61,0,0,111240,33.5,B19,S +172,0,3,"Rice, Master. Arthur",male,4,4,1,382652,29.125,,Q +173,1,3,"Johnson, Miss. Eleanor Ileen",female,1,1,1,347742,11.1333,,S +174,0,3,"Sivola, Mr. Antti Wilhelm",male,21,0,0,STON/O 2. 3101280,7.925,,S +175,0,1,"Smith, Mr. James Clinch",male,56,0,0,17764,30.6958,A7,C +176,0,3,"Klasen, Mr. Klas Albin",male,18,1,1,350404,7.8542,,S +177,0,3,"Lefebre, Master. Henry Forbes",male,,3,1,4133,25.4667,,S +178,0,1,"Isham, Miss. Ann Elizabeth",female,50,0,0,PC 17595,28.7125,C49,C +179,0,2,"Hale, Mr. Reginald",male,30,0,0,250653,13,,S +180,0,3,"Leonard, Mr. Lionel",male,36,0,0,LINE,0,,S +181,0,3,"Sage, Miss. Constance Gladys",female,,8,2,CA. 2343,69.55,,S +182,0,2,"Pernot, Mr. Rene",male,,0,0,SC/PARIS 2131,15.05,,C +183,0,3,"Asplund, Master. Clarence Gustaf Hugo",male,9,4,2,347077,31.3875,,S +184,1,2,"Becker, Master. Richard F",male,1,2,1,230136,39,F4,S +185,1,3,"Kink-Heilmann, Miss. Luise Gretchen",female,4,0,2,315153,22.025,,S +186,0,1,"Rood, Mr. Hugh Roscoe",male,,0,0,113767,50,A32,S +187,1,3,"O'Brien, Mrs. Thomas (Johanna ""Hannah"" Godfrey)",female,,1,0,370365,15.5,,Q +188,1,1,"Romaine, Mr. Charles Hallace (""Mr C Rolmane"")",male,45,0,0,111428,26.55,,S +189,0,3,"Bourke, Mr. John",male,40,1,1,364849,15.5,,Q +190,0,3,"Turcin, Mr. Stjepan",male,36,0,0,349247,7.8958,,S +191,1,2,"Pinsky, Mrs. (Rosa)",female,32,0,0,234604,13,,S +192,0,2,"Carbines, Mr. William",male,19,0,0,28424,13,,S +193,1,3,"Andersen-Jensen, Miss. Carla Christine Nielsine",female,19,1,0,350046,7.8542,,S +194,1,2,"Navratil, Master. Michel M",male,3,1,1,230080,26,F2,S +195,1,1,"Brown, Mrs. James Joseph (Margaret Tobin)",female,44,0,0,PC 17610,27.7208,B4,C +196,1,1,"Lurette, Miss. Elise",female,58,0,0,PC 17569,146.5208,B80,C +197,0,3,"Mernagh, Mr. Robert",male,,0,0,368703,7.75,,Q +198,0,3,"Olsen, Mr. Karl Siegwart Andreas",male,42,0,1,4579,8.4042,,S +199,1,3,"Madigan, Miss. Margaret ""Maggie""",female,,0,0,370370,7.75,,Q +200,0,2,"Yrois, Miss. Henriette (""Mrs Harbeck"")",female,24,0,0,248747,13,,S +201,0,3,"Vande Walle, Mr. Nestor Cyriel",male,28,0,0,345770,9.5,,S +202,0,3,"Sage, Mr. Frederick",male,,8,2,CA. 2343,69.55,,S +203,0,3,"Johanson, Mr. Jakob Alfred",male,34,0,0,3101264,6.4958,,S +204,0,3,"Youseff, Mr. Gerious",male,45.5,0,0,2628,7.225,,C +205,1,3,"Cohen, Mr. Gurshon ""Gus""",male,18,0,0,A/5 3540,8.05,,S +206,0,3,"Strom, Miss. Telma Matilda",female,2,0,1,347054,10.4625,G6,S +207,0,3,"Backstrom, Mr. Karl Alfred",male,32,1,0,3101278,15.85,,S +208,1,3,"Albimona, Mr. Nassef Cassem",male,26,0,0,2699,18.7875,,C +209,1,3,"Carr, Miss. Helen ""Ellen""",female,16,0,0,367231,7.75,,Q +210,1,1,"Blank, Mr. Henry",male,40,0,0,112277,31,A31,C +211,0,3,"Ali, Mr. Ahmed",male,24,0,0,SOTON/O.Q. 3101311,7.05,,S +212,1,2,"Cameron, Miss. Clear Annie",female,35,0,0,F.C.C. 13528,21,,S +213,0,3,"Perkin, Mr. John Henry",male,22,0,0,A/5 21174,7.25,,S +214,0,2,"Givard, Mr. Hans Kristensen",male,30,0,0,250646,13,,S +215,0,3,"Kiernan, Mr. Philip",male,,1,0,367229,7.75,,Q +216,1,1,"Newell, Miss. Madeleine",female,31,1,0,35273,113.275,D36,C +217,1,3,"Honkanen, Miss. Eliina",female,27,0,0,STON/O2. 3101283,7.925,,S +218,0,2,"Jacobsohn, Mr. Sidney Samuel",male,42,1,0,243847,27,,S +219,1,1,"Bazzani, Miss. Albina",female,32,0,0,11813,76.2917,D15,C +220,0,2,"Harris, Mr. Walter",male,30,0,0,W/C 14208,10.5,,S +221,1,3,"Sunderland, Mr. Victor Francis",male,16,0,0,SOTON/OQ 392089,8.05,,S +222,0,2,"Bracken, Mr. James H",male,27,0,0,220367,13,,S +223,0,3,"Green, Mr. George Henry",male,51,0,0,21440,8.05,,S +224,0,3,"Nenkoff, Mr. Christo",male,,0,0,349234,7.8958,,S +225,1,1,"Hoyt, Mr. Frederick Maxfield",male,38,1,0,19943,90,C93,S +226,0,3,"Berglund, Mr. Karl Ivar Sven",male,22,0,0,PP 4348,9.35,,S +227,1,2,"Mellors, Mr. William John",male,19,0,0,SW/PP 751,10.5,,S +228,0,3,"Lovell, Mr. John Hall (""Henry"")",male,20.5,0,0,A/5 21173,7.25,,S +229,0,2,"Fahlstrom, Mr. Arne Jonas",male,18,0,0,236171,13,,S +230,0,3,"Lefebre, Miss. Mathilde",female,,3,1,4133,25.4667,,S +231,1,1,"Harris, Mrs. Henry Birkhardt (Irene Wallach)",female,35,1,0,36973,83.475,C83,S +232,0,3,"Larsson, Mr. Bengt Edvin",male,29,0,0,347067,7.775,,S +233,0,2,"Sjostedt, Mr. Ernst Adolf",male,59,0,0,237442,13.5,,S +234,1,3,"Asplund, Miss. Lillian Gertrud",female,5,4,2,347077,31.3875,,S +235,0,2,"Leyson, Mr. Robert William Norman",male,24,0,0,C.A. 29566,10.5,,S +236,0,3,"Harknett, Miss. Alice Phoebe",female,,0,0,W./C. 6609,7.55,,S +237,0,2,"Hold, Mr. Stephen",male,44,1,0,26707,26,,S +238,1,2,"Collyer, Miss. Marjorie ""Lottie""",female,8,0,2,C.A. 31921,26.25,,S +239,0,2,"Pengelly, Mr. Frederick William",male,19,0,0,28665,10.5,,S +240,0,2,"Hunt, Mr. George Henry",male,33,0,0,SCO/W 1585,12.275,,S +241,0,3,"Zabour, Miss. Thamine",female,,1,0,2665,14.4542,,C +242,1,3,"Murphy, Miss. Katherine ""Kate""",female,,1,0,367230,15.5,,Q +243,0,2,"Coleridge, Mr. Reginald Charles",male,29,0,0,W./C. 14263,10.5,,S +244,0,3,"Maenpaa, Mr. Matti Alexanteri",male,22,0,0,STON/O 2. 3101275,7.125,,S +245,0,3,"Attalah, Mr. Sleiman",male,30,0,0,2694,7.225,,C +246,0,1,"Minahan, Dr. William Edward",male,44,2,0,19928,90,C78,Q +247,0,3,"Lindahl, Miss. Agda Thorilda Viktoria",female,25,0,0,347071,7.775,,S +248,1,2,"Hamalainen, Mrs. William (Anna)",female,24,0,2,250649,14.5,,S +249,1,1,"Beckwith, Mr. Richard Leonard",male,37,1,1,11751,52.5542,D35,S +250,0,2,"Carter, Rev. Ernest Courtenay",male,54,1,0,244252,26,,S +251,0,3,"Reed, Mr. James George",male,,0,0,362316,7.25,,S +252,0,3,"Strom, Mrs. Wilhelm (Elna Matilda Persson)",female,29,1,1,347054,10.4625,G6,S +253,0,1,"Stead, Mr. William Thomas",male,62,0,0,113514,26.55,C87,S +254,0,3,"Lobb, Mr. William Arthur",male,30,1,0,A/5. 3336,16.1,,S +255,0,3,"Rosblom, Mrs. Viktor (Helena Wilhelmina)",female,41,0,2,370129,20.2125,,S +256,1,3,"Touma, Mrs. Darwis (Hanne Youssef Razi)",female,29,0,2,2650,15.2458,,C +257,1,1,"Thorne, Mrs. Gertrude Maybelle",female,,0,0,PC 17585,79.2,,C +258,1,1,"Cherry, Miss. Gladys",female,30,0,0,110152,86.5,B77,S +259,1,1,"Ward, Miss. Anna",female,35,0,0,PC 17755,512.3292,,C +260,1,2,"Parrish, Mrs. (Lutie Davis)",female,50,0,1,230433,26,,S +261,0,3,"Smith, Mr. Thomas",male,,0,0,384461,7.75,,Q +262,1,3,"Asplund, Master. Edvin Rojj Felix",male,3,4,2,347077,31.3875,,S +263,0,1,"Taussig, Mr. Emil",male,52,1,1,110413,79.65,E67,S +264,0,1,"Harrison, Mr. William",male,40,0,0,112059,0,B94,S +265,0,3,"Henry, Miss. Delia",female,,0,0,382649,7.75,,Q +266,0,2,"Reeves, Mr. David",male,36,0,0,C.A. 17248,10.5,,S +267,0,3,"Panula, Mr. Ernesti Arvid",male,16,4,1,3101295,39.6875,,S +268,1,3,"Persson, Mr. Ernst Ulrik",male,25,1,0,347083,7.775,,S +269,1,1,"Graham, Mrs. William Thompson (Edith Junkins)",female,58,0,1,PC 17582,153.4625,C125,S +270,1,1,"Bissette, Miss. Amelia",female,35,0,0,PC 17760,135.6333,C99,S +271,0,1,"Cairns, Mr. Alexander",male,,0,0,113798,31,,S +272,1,3,"Tornquist, Mr. William Henry",male,25,0,0,LINE,0,,S +273,1,2,"Mellinger, Mrs. (Elizabeth Anne Maidment)",female,41,0,1,250644,19.5,,S +274,0,1,"Natsch, Mr. Charles H",male,37,0,1,PC 17596,29.7,C118,C +275,1,3,"Healy, Miss. Hanora ""Nora""",female,,0,0,370375,7.75,,Q +276,1,1,"Andrews, Miss. Kornelia Theodosia",female,63,1,0,13502,77.9583,D7,S +277,0,3,"Lindblom, Miss. Augusta Charlotta",female,45,0,0,347073,7.75,,S +278,0,2,"Parkes, Mr. Francis ""Frank""",male,,0,0,239853,0,,S +279,0,3,"Rice, Master. Eric",male,7,4,1,382652,29.125,,Q +280,1,3,"Abbott, Mrs. Stanton (Rosa Hunt)",female,35,1,1,C.A. 2673,20.25,,S +281,0,3,"Duane, Mr. Frank",male,65,0,0,336439,7.75,,Q +282,0,3,"Olsson, Mr. Nils Johan Goransson",male,28,0,0,347464,7.8542,,S +283,0,3,"de Pelsmaeker, Mr. Alfons",male,16,0,0,345778,9.5,,S +284,1,3,"Dorking, Mr. Edward Arthur",male,19,0,0,A/5. 10482,8.05,,S +285,0,1,"Smith, Mr. Richard William",male,,0,0,113056,26,A19,S +286,0,3,"Stankovic, Mr. Ivan",male,33,0,0,349239,8.6625,,C +287,1,3,"de Mulder, Mr. Theodore",male,30,0,0,345774,9.5,,S +288,0,3,"Naidenoff, Mr. Penko",male,22,0,0,349206,7.8958,,S +289,1,2,"Hosono, Mr. Masabumi",male,42,0,0,237798,13,,S +290,1,3,"Connolly, Miss. Kate",female,22,0,0,370373,7.75,,Q +291,1,1,"Barber, Miss. Ellen ""Nellie""",female,26,0,0,19877,78.85,,S +292,1,1,"Bishop, Mrs. Dickinson H (Helen Walton)",female,19,1,0,11967,91.0792,B49,C +293,0,2,"Levy, Mr. Rene Jacques",male,36,0,0,SC/Paris 2163,12.875,D,C +294,0,3,"Haas, Miss. Aloisia",female,24,0,0,349236,8.85,,S +295,0,3,"Mineff, Mr. Ivan",male,24,0,0,349233,7.8958,,S +296,0,1,"Lewy, Mr. Ervin G",male,,0,0,PC 17612,27.7208,,C +297,0,3,"Hanna, Mr. Mansour",male,23.5,0,0,2693,7.2292,,C +298,0,1,"Allison, Miss. Helen Loraine",female,2,1,2,113781,151.55,C22 C26,S +299,1,1,"Saalfeld, Mr. Adolphe",male,,0,0,19988,30.5,C106,S +300,1,1,"Baxter, Mrs. James (Helene DeLaudeniere Chaput)",female,50,0,1,PC 17558,247.5208,B58 B60,C +301,1,3,"Kelly, Miss. Anna Katherine ""Annie Kate""",female,,0,0,9234,7.75,,Q +302,1,3,"McCoy, Mr. Bernard",male,,2,0,367226,23.25,,Q +303,0,3,"Johnson, Mr. William Cahoone Jr",male,19,0,0,LINE,0,,S +304,1,2,"Keane, Miss. Nora A",female,,0,0,226593,12.35,E101,Q +305,0,3,"Williams, Mr. Howard Hugh ""Harry""",male,,0,0,A/5 2466,8.05,,S +306,1,1,"Allison, Master. Hudson Trevor",male,0.92,1,2,113781,151.55,C22 C26,S +307,1,1,"Fleming, Miss. Margaret",female,,0,0,17421,110.8833,,C +308,1,1,"Penasco y Castellana, Mrs. Victor de Satode (Maria Josefa Perez de Soto y Vallejo)",female,17,1,0,PC 17758,108.9,C65,C +309,0,2,"Abelson, Mr. Samuel",male,30,1,0,P/PP 3381,24,,C +310,1,1,"Francatelli, Miss. Laura Mabel",female,30,0,0,PC 17485,56.9292,E36,C +311,1,1,"Hays, Miss. Margaret Bechstein",female,24,0,0,11767,83.1583,C54,C +312,1,1,"Ryerson, Miss. Emily Borie",female,18,2,2,PC 17608,262.375,B57 B59 B63 B66,C +313,0,2,"Lahtinen, Mrs. William (Anna Sylfven)",female,26,1,1,250651,26,,S +314,0,3,"Hendekovic, Mr. Ignjac",male,28,0,0,349243,7.8958,,S +315,0,2,"Hart, Mr. Benjamin",male,43,1,1,F.C.C. 13529,26.25,,S +316,1,3,"Nilsson, Miss. Helmina Josefina",female,26,0,0,347470,7.8542,,S +317,1,2,"Kantor, Mrs. Sinai (Miriam Sternin)",female,24,1,0,244367,26,,S +318,0,2,"Moraweck, Dr. Ernest",male,54,0,0,29011,14,,S +319,1,1,"Wick, Miss. Mary Natalie",female,31,0,2,36928,164.8667,C7,S +320,1,1,"Spedden, Mrs. Frederic Oakley (Margaretta Corning Stone)",female,40,1,1,16966,134.5,E34,C +321,0,3,"Dennis, Mr. Samuel",male,22,0,0,A/5 21172,7.25,,S +322,0,3,"Danoff, Mr. Yoto",male,27,0,0,349219,7.8958,,S +323,1,2,"Slayter, Miss. Hilda Mary",female,30,0,0,234818,12.35,,Q +324,1,2,"Caldwell, Mrs. Albert Francis (Sylvia Mae Harbaugh)",female,22,1,1,248738,29,,S +325,0,3,"Sage, Mr. George John Jr",male,,8,2,CA. 2343,69.55,,S +326,1,1,"Young, Miss. Marie Grice",female,36,0,0,PC 17760,135.6333,C32,C +327,0,3,"Nysveen, Mr. Johan Hansen",male,61,0,0,345364,6.2375,,S +328,1,2,"Ball, Mrs. (Ada E Hall)",female,36,0,0,28551,13,D,S +329,1,3,"Goldsmith, Mrs. Frank John (Emily Alice Brown)",female,31,1,1,363291,20.525,,S +330,1,1,"Hippach, Miss. Jean Gertrude",female,16,0,1,111361,57.9792,B18,C +331,1,3,"McCoy, Miss. Agnes",female,,2,0,367226,23.25,,Q +332,0,1,"Partner, Mr. Austen",male,45.5,0,0,113043,28.5,C124,S +333,0,1,"Graham, Mr. George Edward",male,38,0,1,PC 17582,153.4625,C91,S +334,0,3,"Vander Planke, Mr. Leo Edmondus",male,16,2,0,345764,18,,S +335,1,1,"Frauenthal, Mrs. Henry William (Clara Heinsheimer)",female,,1,0,PC 17611,133.65,,S +336,0,3,"Denkoff, Mr. Mitto",male,,0,0,349225,7.8958,,S +337,0,1,"Pears, Mr. Thomas Clinton",male,29,1,0,113776,66.6,C2,S +338,1,1,"Burns, Miss. Elizabeth Margaret",female,41,0,0,16966,134.5,E40,C +339,1,3,"Dahl, Mr. Karl Edwart",male,45,0,0,7598,8.05,,S +340,0,1,"Blackwell, Mr. Stephen Weart",male,45,0,0,113784,35.5,T,S +341,1,2,"Navratil, Master. Edmond Roger",male,2,1,1,230080,26,F2,S +342,1,1,"Fortune, Miss. Alice Elizabeth",female,24,3,2,19950,263,C23 C25 C27,S +343,0,2,"Collander, Mr. Erik Gustaf",male,28,0,0,248740,13,,S +344,0,2,"Sedgwick, Mr. Charles Frederick Waddington",male,25,0,0,244361,13,,S +345,0,2,"Fox, Mr. Stanley Hubert",male,36,0,0,229236,13,,S +346,1,2,"Brown, Miss. Amelia ""Mildred""",female,24,0,0,248733,13,F33,S +347,1,2,"Smith, Miss. Marion Elsie",female,40,0,0,31418,13,,S +348,1,3,"Davison, Mrs. Thomas Henry (Mary E Finck)",female,,1,0,386525,16.1,,S +349,1,3,"Coutts, Master. William Loch ""William""",male,3,1,1,C.A. 37671,15.9,,S +350,0,3,"Dimic, Mr. Jovan",male,42,0,0,315088,8.6625,,S +351,0,3,"Odahl, Mr. Nils Martin",male,23,0,0,7267,9.225,,S +352,0,1,"Williams-Lambert, Mr. Fletcher Fellows",male,,0,0,113510,35,C128,S +353,0,3,"Elias, Mr. Tannous",male,15,1,1,2695,7.2292,,C +354,0,3,"Arnold-Franchi, Mr. Josef",male,25,1,0,349237,17.8,,S +355,0,3,"Yousif, Mr. Wazli",male,,0,0,2647,7.225,,C +356,0,3,"Vanden Steen, Mr. Leo Peter",male,28,0,0,345783,9.5,,S +357,1,1,"Bowerman, Miss. Elsie Edith",female,22,0,1,113505,55,E33,S +358,0,2,"Funk, Miss. Annie Clemmer",female,38,0,0,237671,13,,S +359,1,3,"McGovern, Miss. Mary",female,,0,0,330931,7.8792,,Q +360,1,3,"Mockler, Miss. Helen Mary ""Ellie""",female,,0,0,330980,7.8792,,Q +361,0,3,"Skoog, Mr. Wilhelm",male,40,1,4,347088,27.9,,S +362,0,2,"del Carlo, Mr. Sebastiano",male,29,1,0,SC/PARIS 2167,27.7208,,C +363,0,3,"Barbara, Mrs. (Catherine David)",female,45,0,1,2691,14.4542,,C +364,0,3,"Asim, Mr. Adola",male,35,0,0,SOTON/O.Q. 3101310,7.05,,S +365,0,3,"O'Brien, Mr. Thomas",male,,1,0,370365,15.5,,Q +366,0,3,"Adahl, Mr. Mauritz Nils Martin",male,30,0,0,C 7076,7.25,,S +367,1,1,"Warren, Mrs. Frank Manley (Anna Sophia Atkinson)",female,60,1,0,110813,75.25,D37,C +368,1,3,"Moussa, Mrs. (Mantoura Boulos)",female,,0,0,2626,7.2292,,C +369,1,3,"Jermyn, Miss. Annie",female,,0,0,14313,7.75,,Q +370,1,1,"Aubart, Mme. Leontine Pauline",female,24,0,0,PC 17477,69.3,B35,C +371,1,1,"Harder, Mr. George Achilles",male,25,1,0,11765,55.4417,E50,C +372,0,3,"Wiklund, Mr. Jakob Alfred",male,18,1,0,3101267,6.4958,,S +373,0,3,"Beavan, Mr. William Thomas",male,19,0,0,323951,8.05,,S +374,0,1,"Ringhini, Mr. Sante",male,22,0,0,PC 17760,135.6333,,C +375,0,3,"Palsson, Miss. Stina Viola",female,3,3,1,349909,21.075,,S +376,1,1,"Meyer, Mrs. Edgar Joseph (Leila Saks)",female,,1,0,PC 17604,82.1708,,C +377,1,3,"Landergren, Miss. Aurora Adelia",female,22,0,0,C 7077,7.25,,S +378,0,1,"Widener, Mr. Harry Elkins",male,27,0,2,113503,211.5,C82,C +379,0,3,"Betros, Mr. Tannous",male,20,0,0,2648,4.0125,,C +380,0,3,"Gustafsson, Mr. Karl Gideon",male,19,0,0,347069,7.775,,S +381,1,1,"Bidois, Miss. Rosalie",female,42,0,0,PC 17757,227.525,,C +382,1,3,"Nakid, Miss. Maria (""Mary"")",female,1,0,2,2653,15.7417,,C +383,0,3,"Tikkanen, Mr. Juho",male,32,0,0,STON/O 2. 3101293,7.925,,S +384,1,1,"Holverson, Mrs. Alexander Oskar (Mary Aline Towner)",female,35,1,0,113789,52,,S +385,0,3,"Plotcharsky, Mr. Vasil",male,,0,0,349227,7.8958,,S +386,0,2,"Davies, Mr. Charles Henry",male,18,0,0,S.O.C. 14879,73.5,,S +387,0,3,"Goodwin, Master. Sidney Leonard",male,1,5,2,CA 2144,46.9,,S +388,1,2,"Buss, Miss. Kate",female,36,0,0,27849,13,,S +389,0,3,"Sadlier, Mr. Matthew",male,,0,0,367655,7.7292,,Q +390,1,2,"Lehmann, Miss. Bertha",female,17,0,0,SC 1748,12,,C +391,1,1,"Carter, Mr. William Ernest",male,36,1,2,113760,120,B96 B98,S +392,1,3,"Jansson, Mr. Carl Olof",male,21,0,0,350034,7.7958,,S +393,0,3,"Gustafsson, Mr. Johan Birger",male,28,2,0,3101277,7.925,,S +394,1,1,"Newell, Miss. Marjorie",female,23,1,0,35273,113.275,D36,C +395,1,3,"Sandstrom, Mrs. Hjalmar (Agnes Charlotta Bengtsson)",female,24,0,2,PP 9549,16.7,G6,S +396,0,3,"Johansson, Mr. Erik",male,22,0,0,350052,7.7958,,S +397,0,3,"Olsson, Miss. Elina",female,31,0,0,350407,7.8542,,S +398,0,2,"McKane, Mr. Peter David",male,46,0,0,28403,26,,S +399,0,2,"Pain, Dr. Alfred",male,23,0,0,244278,10.5,,S +400,1,2,"Trout, Mrs. William H (Jessie L)",female,28,0,0,240929,12.65,,S +401,1,3,"Niskanen, Mr. Juha",male,39,0,0,STON/O 2. 3101289,7.925,,S +402,0,3,"Adams, Mr. John",male,26,0,0,341826,8.05,,S +403,0,3,"Jussila, Miss. Mari Aina",female,21,1,0,4137,9.825,,S +404,0,3,"Hakkarainen, Mr. Pekka Pietari",male,28,1,0,STON/O2. 3101279,15.85,,S +405,0,3,"Oreskovic, Miss. Marija",female,20,0,0,315096,8.6625,,S +406,0,2,"Gale, Mr. Shadrach",male,34,1,0,28664,21,,S +407,0,3,"Widegren, Mr. Carl/Charles Peter",male,51,0,0,347064,7.75,,S +408,1,2,"Richards, Master. William Rowe",male,3,1,1,29106,18.75,,S +409,0,3,"Birkeland, Mr. Hans Martin Monsen",male,21,0,0,312992,7.775,,S +410,0,3,"Lefebre, Miss. Ida",female,,3,1,4133,25.4667,,S +411,0,3,"Sdycoff, Mr. Todor",male,,0,0,349222,7.8958,,S +412,0,3,"Hart, Mr. Henry",male,,0,0,394140,6.8583,,Q +413,1,1,"Minahan, Miss. Daisy E",female,33,1,0,19928,90,C78,Q +414,0,2,"Cunningham, Mr. Alfred Fleming",male,,0,0,239853,0,,S +415,1,3,"Sundman, Mr. Johan Julian",male,44,0,0,STON/O 2. 3101269,7.925,,S +416,0,3,"Meek, Mrs. Thomas (Annie Louise Rowley)",female,,0,0,343095,8.05,,S +417,1,2,"Drew, Mrs. James Vivian (Lulu Thorne Christian)",female,34,1,1,28220,32.5,,S +418,1,2,"Silven, Miss. Lyyli Karoliina",female,18,0,2,250652,13,,S +419,0,2,"Matthews, Mr. William John",male,30,0,0,28228,13,,S +420,0,3,"Van Impe, Miss. Catharina",female,10,0,2,345773,24.15,,S +421,0,3,"Gheorgheff, Mr. Stanio",male,,0,0,349254,7.8958,,C +422,0,3,"Charters, Mr. David",male,21,0,0,A/5. 13032,7.7333,,Q +423,0,3,"Zimmerman, Mr. Leo",male,29,0,0,315082,7.875,,S +424,0,3,"Danbom, Mrs. Ernst Gilbert (Anna Sigrid Maria Brogren)",female,28,1,1,347080,14.4,,S +425,0,3,"Rosblom, Mr. Viktor Richard",male,18,1,1,370129,20.2125,,S +426,0,3,"Wiseman, Mr. Phillippe",male,,0,0,A/4. 34244,7.25,,S +427,1,2,"Clarke, Mrs. Charles V (Ada Maria Winfield)",female,28,1,0,2003,26,,S +428,1,2,"Phillips, Miss. Kate Florence (""Mrs Kate Louise Phillips Marshall"")",female,19,0,0,250655,26,,S +429,0,3,"Flynn, Mr. James",male,,0,0,364851,7.75,,Q +430,1,3,"Pickard, Mr. Berk (Berk Trembisky)",male,32,0,0,SOTON/O.Q. 392078,8.05,E10,S +431,1,1,"Bjornstrom-Steffansson, Mr. Mauritz Hakan",male,28,0,0,110564,26.55,C52,S +432,1,3,"Thorneycroft, Mrs. Percival (Florence Kate White)",female,,1,0,376564,16.1,,S +433,1,2,"Louch, Mrs. Charles Alexander (Alice Adelaide Slow)",female,42,1,0,SC/AH 3085,26,,S +434,0,3,"Kallio, Mr. Nikolai Erland",male,17,0,0,STON/O 2. 3101274,7.125,,S +435,0,1,"Silvey, Mr. William Baird",male,50,1,0,13507,55.9,E44,S +436,1,1,"Carter, Miss. Lucile Polk",female,14,1,2,113760,120,B96 B98,S +437,0,3,"Ford, Miss. Doolina Margaret ""Daisy""",female,21,2,2,W./C. 6608,34.375,,S +438,1,2,"Richards, Mrs. Sidney (Emily Hocking)",female,24,2,3,29106,18.75,,S +439,0,1,"Fortune, Mr. Mark",male,64,1,4,19950,263,C23 C25 C27,S +440,0,2,"Kvillner, Mr. Johan Henrik Johannesson",male,31,0,0,C.A. 18723,10.5,,S +441,1,2,"Hart, Mrs. Benjamin (Esther Ada Bloomfield)",female,45,1,1,F.C.C. 13529,26.25,,S +442,0,3,"Hampe, Mr. Leon",male,20,0,0,345769,9.5,,S +443,0,3,"Petterson, Mr. Johan Emil",male,25,1,0,347076,7.775,,S +444,1,2,"Reynaldo, Ms. Encarnacion",female,28,0,0,230434,13,,S +445,1,3,"Johannesen-Bratthammer, Mr. Bernt",male,,0,0,65306,8.1125,,S +446,1,1,"Dodge, Master. Washington",male,4,0,2,33638,81.8583,A34,S +447,1,2,"Mellinger, Miss. Madeleine Violet",female,13,0,1,250644,19.5,,S +448,1,1,"Seward, Mr. Frederic Kimber",male,34,0,0,113794,26.55,,S +449,1,3,"Baclini, Miss. Marie Catherine",female,5,2,1,2666,19.2583,,C +450,1,1,"Peuchen, Major. Arthur Godfrey",male,52,0,0,113786,30.5,C104,S +451,0,2,"West, Mr. Edwy Arthur",male,36,1,2,C.A. 34651,27.75,,S +452,0,3,"Hagland, Mr. Ingvald Olai Olsen",male,,1,0,65303,19.9667,,S +453,0,1,"Foreman, Mr. Benjamin Laventall",male,30,0,0,113051,27.75,C111,C +454,1,1,"Goldenberg, Mr. Samuel L",male,49,1,0,17453,89.1042,C92,C +455,0,3,"Peduzzi, Mr. Joseph",male,,0,0,A/5 2817,8.05,,S +456,1,3,"Jalsevac, Mr. Ivan",male,29,0,0,349240,7.8958,,C +457,0,1,"Millet, Mr. Francis Davis",male,65,0,0,13509,26.55,E38,S +458,1,1,"Kenyon, Mrs. Frederick R (Marion)",female,,1,0,17464,51.8625,D21,S +459,1,2,"Toomey, Miss. Ellen",female,50,0,0,F.C.C. 13531,10.5,,S +460,0,3,"O'Connor, Mr. Maurice",male,,0,0,371060,7.75,,Q +461,1,1,"Anderson, Mr. Harry",male,48,0,0,19952,26.55,E12,S +462,0,3,"Morley, Mr. William",male,34,0,0,364506,8.05,,S +463,0,1,"Gee, Mr. Arthur H",male,47,0,0,111320,38.5,E63,S +464,0,2,"Milling, Mr. Jacob Christian",male,48,0,0,234360,13,,S +465,0,3,"Maisner, Mr. Simon",male,,0,0,A/S 2816,8.05,,S +466,0,3,"Goncalves, Mr. Manuel Estanslas",male,38,0,0,SOTON/O.Q. 3101306,7.05,,S +467,0,2,"Campbell, Mr. William",male,,0,0,239853,0,,S +468,0,1,"Smart, Mr. John Montgomery",male,56,0,0,113792,26.55,,S +469,0,3,"Scanlan, Mr. James",male,,0,0,36209,7.725,,Q +470,1,3,"Baclini, Miss. Helene Barbara",female,0.75,2,1,2666,19.2583,,C +471,0,3,"Keefe, Mr. Arthur",male,,0,0,323592,7.25,,S +472,0,3,"Cacic, Mr. Luka",male,38,0,0,315089,8.6625,,S +473,1,2,"West, Mrs. Edwy Arthur (Ada Mary Worth)",female,33,1,2,C.A. 34651,27.75,,S +474,1,2,"Jerwan, Mrs. Amin S (Marie Marthe Thuillard)",female,23,0,0,SC/AH Basle 541,13.7917,D,C +475,0,3,"Strandberg, Miss. Ida Sofia",female,22,0,0,7553,9.8375,,S +476,0,1,"Clifford, Mr. George Quincy",male,,0,0,110465,52,A14,S +477,0,2,"Renouf, Mr. Peter Henry",male,34,1,0,31027,21,,S +478,0,3,"Braund, Mr. Lewis Richard",male,29,1,0,3460,7.0458,,S +479,0,3,"Karlsson, Mr. Nils August",male,22,0,0,350060,7.5208,,S +480,1,3,"Hirvonen, Miss. Hildur E",female,2,0,1,3101298,12.2875,,S +481,0,3,"Goodwin, Master. Harold Victor",male,9,5,2,CA 2144,46.9,,S +482,0,2,"Frost, Mr. Anthony Wood ""Archie""",male,,0,0,239854,0,,S +483,0,3,"Rouse, Mr. Richard Henry",male,50,0,0,A/5 3594,8.05,,S +484,1,3,"Turkula, Mrs. (Hedwig)",female,63,0,0,4134,9.5875,,S +485,1,1,"Bishop, Mr. Dickinson H",male,25,1,0,11967,91.0792,B49,C +486,0,3,"Lefebre, Miss. Jeannie",female,,3,1,4133,25.4667,,S +487,1,1,"Hoyt, Mrs. Frederick Maxfield (Jane Anne Forby)",female,35,1,0,19943,90,C93,S +488,0,1,"Kent, Mr. Edward Austin",male,58,0,0,11771,29.7,B37,C +489,0,3,"Somerton, Mr. Francis William",male,30,0,0,A.5. 18509,8.05,,S +490,1,3,"Coutts, Master. Eden Leslie ""Neville""",male,9,1,1,C.A. 37671,15.9,,S +491,0,3,"Hagland, Mr. Konrad Mathias Reiersen",male,,1,0,65304,19.9667,,S +492,0,3,"Windelov, Mr. Einar",male,21,0,0,SOTON/OQ 3101317,7.25,,S +493,0,1,"Molson, Mr. Harry Markland",male,55,0,0,113787,30.5,C30,S +494,0,1,"Artagaveytia, Mr. Ramon",male,71,0,0,PC 17609,49.5042,,C +495,0,3,"Stanley, Mr. Edward Roland",male,21,0,0,A/4 45380,8.05,,S +496,0,3,"Yousseff, Mr. Gerious",male,,0,0,2627,14.4583,,C +497,1,1,"Eustis, Miss. Elizabeth Mussey",female,54,1,0,36947,78.2667,D20,C +498,0,3,"Shellard, Mr. Frederick William",male,,0,0,C.A. 6212,15.1,,S +499,0,1,"Allison, Mrs. Hudson J C (Bessie Waldo Daniels)",female,25,1,2,113781,151.55,C22 C26,S +500,0,3,"Svensson, Mr. Olof",male,24,0,0,350035,7.7958,,S +501,0,3,"Calic, Mr. Petar",male,17,0,0,315086,8.6625,,S +502,0,3,"Canavan, Miss. Mary",female,21,0,0,364846,7.75,,Q +503,0,3,"O'Sullivan, Miss. Bridget Mary",female,,0,0,330909,7.6292,,Q +504,0,3,"Laitinen, Miss. Kristina Sofia",female,37,0,0,4135,9.5875,,S +505,1,1,"Maioni, Miss. Roberta",female,16,0,0,110152,86.5,B79,S +506,0,1,"Penasco y Castellana, Mr. Victor de Satode",male,18,1,0,PC 17758,108.9,C65,C +507,1,2,"Quick, Mrs. Frederick Charles (Jane Richards)",female,33,0,2,26360,26,,S +508,1,1,"Bradley, Mr. George (""George Arthur Brayton"")",male,,0,0,111427,26.55,,S +509,0,3,"Olsen, Mr. Henry Margido",male,28,0,0,C 4001,22.525,,S +510,1,3,"Lang, Mr. Fang",male,26,0,0,1601,56.4958,,S +511,1,3,"Daly, Mr. Eugene Patrick",male,29,0,0,382651,7.75,,Q +512,0,3,"Webber, Mr. James",male,,0,0,SOTON/OQ 3101316,8.05,,S +513,1,1,"McGough, Mr. James Robert",male,36,0,0,PC 17473,26.2875,E25,S +514,1,1,"Rothschild, Mrs. Martin (Elizabeth L. Barrett)",female,54,1,0,PC 17603,59.4,,C +515,0,3,"Coleff, Mr. Satio",male,24,0,0,349209,7.4958,,S +516,0,1,"Walker, Mr. William Anderson",male,47,0,0,36967,34.0208,D46,S +517,1,2,"Lemore, Mrs. (Amelia Milley)",female,34,0,0,C.A. 34260,10.5,F33,S +518,0,3,"Ryan, Mr. Patrick",male,,0,0,371110,24.15,,Q +519,1,2,"Angle, Mrs. William A (Florence ""Mary"" Agnes Hughes)",female,36,1,0,226875,26,,S +520,0,3,"Pavlovic, Mr. Stefo",male,32,0,0,349242,7.8958,,S +521,1,1,"Perreault, Miss. Anne",female,30,0,0,12749,93.5,B73,S +522,0,3,"Vovk, Mr. Janko",male,22,0,0,349252,7.8958,,S +523,0,3,"Lahoud, Mr. Sarkis",male,,0,0,2624,7.225,,C +524,1,1,"Hippach, Mrs. Louis Albert (Ida Sophia Fischer)",female,44,0,1,111361,57.9792,B18,C +525,0,3,"Kassem, Mr. Fared",male,,0,0,2700,7.2292,,C +526,0,3,"Farrell, Mr. James",male,40.5,0,0,367232,7.75,,Q +527,1,2,"Ridsdale, Miss. Lucy",female,50,0,0,W./C. 14258,10.5,,S +528,0,1,"Farthing, Mr. John",male,,0,0,PC 17483,221.7792,C95,S +529,0,3,"Salonen, Mr. Johan Werner",male,39,0,0,3101296,7.925,,S +530,0,2,"Hocking, Mr. Richard George",male,23,2,1,29104,11.5,,S +531,1,2,"Quick, Miss. Phyllis May",female,2,1,1,26360,26,,S +532,0,3,"Toufik, Mr. Nakli",male,,0,0,2641,7.2292,,C +533,0,3,"Elias, Mr. Joseph Jr",male,17,1,1,2690,7.2292,,C +534,1,3,"Peter, Mrs. Catherine (Catherine Rizk)",female,,0,2,2668,22.3583,,C +535,0,3,"Cacic, Miss. Marija",female,30,0,0,315084,8.6625,,S +536,1,2,"Hart, Miss. Eva Miriam",female,7,0,2,F.C.C. 13529,26.25,,S +537,0,1,"Butt, Major. Archibald Willingham",male,45,0,0,113050,26.55,B38,S +538,1,1,"LeRoy, Miss. Bertha",female,30,0,0,PC 17761,106.425,,C +539,0,3,"Risien, Mr. Samuel Beard",male,,0,0,364498,14.5,,S +540,1,1,"Frolicher, Miss. Hedwig Margaritha",female,22,0,2,13568,49.5,B39,C +541,1,1,"Crosby, Miss. Harriet R",female,36,0,2,WE/P 5735,71,B22,S +542,0,3,"Andersson, Miss. Ingeborg Constanzia",female,9,4,2,347082,31.275,,S +543,0,3,"Andersson, Miss. Sigrid Elisabeth",female,11,4,2,347082,31.275,,S +544,1,2,"Beane, Mr. Edward",male,32,1,0,2908,26,,S +545,0,1,"Douglas, Mr. Walter Donald",male,50,1,0,PC 17761,106.425,C86,C +546,0,1,"Nicholson, Mr. Arthur Ernest",male,64,0,0,693,26,,S +547,1,2,"Beane, Mrs. Edward (Ethel Clarke)",female,19,1,0,2908,26,,S +548,1,2,"Padro y Manent, Mr. Julian",male,,0,0,SC/PARIS 2146,13.8625,,C +549,0,3,"Goldsmith, Mr. Frank John",male,33,1,1,363291,20.525,,S +550,1,2,"Davies, Master. John Morgan Jr",male,8,1,1,C.A. 33112,36.75,,S +551,1,1,"Thayer, Mr. John Borland Jr",male,17,0,2,17421,110.8833,C70,C +552,0,2,"Sharp, Mr. Percival James R",male,27,0,0,244358,26,,S +553,0,3,"O'Brien, Mr. Timothy",male,,0,0,330979,7.8292,,Q +554,1,3,"Leeni, Mr. Fahim (""Philip Zenni"")",male,22,0,0,2620,7.225,,C +555,1,3,"Ohman, Miss. Velin",female,22,0,0,347085,7.775,,S +556,0,1,"Wright, Mr. George",male,62,0,0,113807,26.55,,S +557,1,1,"Duff Gordon, Lady. (Lucille Christiana Sutherland) (""Mrs Morgan"")",female,48,1,0,11755,39.6,A16,C +558,0,1,"Robbins, Mr. Victor",male,,0,0,PC 17757,227.525,,C +559,1,1,"Taussig, Mrs. Emil (Tillie Mandelbaum)",female,39,1,1,110413,79.65,E67,S +560,1,3,"de Messemaeker, Mrs. Guillaume Joseph (Emma)",female,36,1,0,345572,17.4,,S +561,0,3,"Morrow, Mr. Thomas Rowan",male,,0,0,372622,7.75,,Q +562,0,3,"Sivic, Mr. Husein",male,40,0,0,349251,7.8958,,S +563,0,2,"Norman, Mr. Robert Douglas",male,28,0,0,218629,13.5,,S +564,0,3,"Simmons, Mr. John",male,,0,0,SOTON/OQ 392082,8.05,,S +565,0,3,"Meanwell, Miss. (Marion Ogden)",female,,0,0,SOTON/O.Q. 392087,8.05,,S +566,0,3,"Davies, Mr. Alfred J",male,24,2,0,A/4 48871,24.15,,S +567,0,3,"Stoytcheff, Mr. Ilia",male,19,0,0,349205,7.8958,,S +568,0,3,"Palsson, Mrs. Nils (Alma Cornelia Berglund)",female,29,0,4,349909,21.075,,S +569,0,3,"Doharr, Mr. Tannous",male,,0,0,2686,7.2292,,C +570,1,3,"Jonsson, Mr. Carl",male,32,0,0,350417,7.8542,,S +571,1,2,"Harris, Mr. George",male,62,0,0,S.W./PP 752,10.5,,S +572,1,1,"Appleton, Mrs. Edward Dale (Charlotte Lamson)",female,53,2,0,11769,51.4792,C101,S +573,1,1,"Flynn, Mr. John Irwin (""Irving"")",male,36,0,0,PC 17474,26.3875,E25,S +574,1,3,"Kelly, Miss. Mary",female,,0,0,14312,7.75,,Q +575,0,3,"Rush, Mr. Alfred George John",male,16,0,0,A/4. 20589,8.05,,S +576,0,3,"Patchett, Mr. George",male,19,0,0,358585,14.5,,S +577,1,2,"Garside, Miss. Ethel",female,34,0,0,243880,13,,S +578,1,1,"Silvey, Mrs. William Baird (Alice Munger)",female,39,1,0,13507,55.9,E44,S +579,0,3,"Caram, Mrs. Joseph (Maria Elias)",female,,1,0,2689,14.4583,,C +580,1,3,"Jussila, Mr. Eiriik",male,32,0,0,STON/O 2. 3101286,7.925,,S +581,1,2,"Christy, Miss. Julie Rachel",female,25,1,1,237789,30,,S +582,1,1,"Thayer, Mrs. John Borland (Marian Longstreth Morris)",female,39,1,1,17421,110.8833,C68,C +583,0,2,"Downton, Mr. William James",male,54,0,0,28403,26,,S +584,0,1,"Ross, Mr. John Hugo",male,36,0,0,13049,40.125,A10,C +585,0,3,"Paulner, Mr. Uscher",male,,0,0,3411,8.7125,,C +586,1,1,"Taussig, Miss. Ruth",female,18,0,2,110413,79.65,E68,S +587,0,2,"Jarvis, Mr. John Denzil",male,47,0,0,237565,15,,S +588,1,1,"Frolicher-Stehli, Mr. Maxmillian",male,60,1,1,13567,79.2,B41,C +589,0,3,"Gilinski, Mr. Eliezer",male,22,0,0,14973,8.05,,S +590,0,3,"Murdlin, Mr. Joseph",male,,0,0,A./5. 3235,8.05,,S +591,0,3,"Rintamaki, Mr. Matti",male,35,0,0,STON/O 2. 3101273,7.125,,S +592,1,1,"Stephenson, Mrs. Walter Bertram (Martha Eustis)",female,52,1,0,36947,78.2667,D20,C +593,0,3,"Elsbury, Mr. William James",male,47,0,0,A/5 3902,7.25,,S +594,0,3,"Bourke, Miss. Mary",female,,0,2,364848,7.75,,Q +595,0,2,"Chapman, Mr. John Henry",male,37,1,0,SC/AH 29037,26,,S +596,0,3,"Van Impe, Mr. Jean Baptiste",male,36,1,1,345773,24.15,,S +597,1,2,"Leitch, Miss. Jessie Wills",female,,0,0,248727,33,,S +598,0,3,"Johnson, Mr. Alfred",male,49,0,0,LINE,0,,S +599,0,3,"Boulos, Mr. Hanna",male,,0,0,2664,7.225,,C +600,1,1,"Duff Gordon, Sir. Cosmo Edmund (""Mr Morgan"")",male,49,1,0,PC 17485,56.9292,A20,C +601,1,2,"Jacobsohn, Mrs. Sidney Samuel (Amy Frances Christy)",female,24,2,1,243847,27,,S +602,0,3,"Slabenoff, Mr. Petco",male,,0,0,349214,7.8958,,S +603,0,1,"Harrington, Mr. Charles H",male,,0,0,113796,42.4,,S +604,0,3,"Torber, Mr. Ernst William",male,44,0,0,364511,8.05,,S +605,1,1,"Homer, Mr. Harry (""Mr E Haven"")",male,35,0,0,111426,26.55,,C +606,0,3,"Lindell, Mr. Edvard Bengtsson",male,36,1,0,349910,15.55,,S +607,0,3,"Karaic, Mr. Milan",male,30,0,0,349246,7.8958,,S +608,1,1,"Daniel, Mr. Robert Williams",male,27,0,0,113804,30.5,,S +609,1,2,"Laroche, Mrs. Joseph (Juliette Marie Louise Lafargue)",female,22,1,2,SC/Paris 2123,41.5792,,C +610,1,1,"Shutes, Miss. Elizabeth W",female,40,0,0,PC 17582,153.4625,C125,S +611,0,3,"Andersson, Mrs. Anders Johan (Alfrida Konstantia Brogren)",female,39,1,5,347082,31.275,,S +612,0,3,"Jardin, Mr. Jose Neto",male,,0,0,SOTON/O.Q. 3101305,7.05,,S +613,1,3,"Murphy, Miss. Margaret Jane",female,,1,0,367230,15.5,,Q +614,0,3,"Horgan, Mr. John",male,,0,0,370377,7.75,,Q +615,0,3,"Brocklebank, Mr. William Alfred",male,35,0,0,364512,8.05,,S +616,1,2,"Herman, Miss. Alice",female,24,1,2,220845,65,,S +617,0,3,"Danbom, Mr. Ernst Gilbert",male,34,1,1,347080,14.4,,S +618,0,3,"Lobb, Mrs. William Arthur (Cordelia K Stanlick)",female,26,1,0,A/5. 3336,16.1,,S +619,1,2,"Becker, Miss. Marion Louise",female,4,2,1,230136,39,F4,S +620,0,2,"Gavey, Mr. Lawrence",male,26,0,0,31028,10.5,,S +621,0,3,"Yasbeck, Mr. Antoni",male,27,1,0,2659,14.4542,,C +622,1,1,"Kimball, Mr. Edwin Nelson Jr",male,42,1,0,11753,52.5542,D19,S +623,1,3,"Nakid, Mr. Sahid",male,20,1,1,2653,15.7417,,C +624,0,3,"Hansen, Mr. Henry Damsgaard",male,21,0,0,350029,7.8542,,S +625,0,3,"Bowen, Mr. David John ""Dai""",male,21,0,0,54636,16.1,,S +626,0,1,"Sutton, Mr. Frederick",male,61,0,0,36963,32.3208,D50,S +627,0,2,"Kirkland, Rev. Charles Leonard",male,57,0,0,219533,12.35,,Q +628,1,1,"Longley, Miss. Gretchen Fiske",female,21,0,0,13502,77.9583,D9,S +629,0,3,"Bostandyeff, Mr. Guentcho",male,26,0,0,349224,7.8958,,S +630,0,3,"O'Connell, Mr. Patrick D",male,,0,0,334912,7.7333,,Q +631,1,1,"Barkworth, Mr. Algernon Henry Wilson",male,80,0,0,27042,30,A23,S +632,0,3,"Lundahl, Mr. Johan Svensson",male,51,0,0,347743,7.0542,,S +633,1,1,"Stahelin-Maeglin, Dr. Max",male,32,0,0,13214,30.5,B50,C +634,0,1,"Parr, Mr. William Henry Marsh",male,,0,0,112052,0,,S +635,0,3,"Skoog, Miss. Mabel",female,9,3,2,347088,27.9,,S +636,1,2,"Davis, Miss. Mary",female,28,0,0,237668,13,,S +637,0,3,"Leinonen, Mr. Antti Gustaf",male,32,0,0,STON/O 2. 3101292,7.925,,S +638,0,2,"Collyer, Mr. Harvey",male,31,1,1,C.A. 31921,26.25,,S +639,0,3,"Panula, Mrs. Juha (Maria Emilia Ojala)",female,41,0,5,3101295,39.6875,,S +640,0,3,"Thorneycroft, Mr. Percival",male,,1,0,376564,16.1,,S +641,0,3,"Jensen, Mr. Hans Peder",male,20,0,0,350050,7.8542,,S +642,1,1,"Sagesser, Mlle. Emma",female,24,0,0,PC 17477,69.3,B35,C +643,0,3,"Skoog, Miss. Margit Elizabeth",female,2,3,2,347088,27.9,,S +644,1,3,"Foo, Mr. Choong",male,,0,0,1601,56.4958,,S +645,1,3,"Baclini, Miss. Eugenie",female,0.75,2,1,2666,19.2583,,C +646,1,1,"Harper, Mr. Henry Sleeper",male,48,1,0,PC 17572,76.7292,D33,C +647,0,3,"Cor, Mr. Liudevit",male,19,0,0,349231,7.8958,,S +648,1,1,"Simonius-Blumer, Col. Oberst Alfons",male,56,0,0,13213,35.5,A26,C +649,0,3,"Willey, Mr. Edward",male,,0,0,S.O./P.P. 751,7.55,,S +650,1,3,"Stanley, Miss. Amy Zillah Elsie",female,23,0,0,CA. 2314,7.55,,S +651,0,3,"Mitkoff, Mr. Mito",male,,0,0,349221,7.8958,,S +652,1,2,"Doling, Miss. Elsie",female,18,0,1,231919,23,,S +653,0,3,"Kalvik, Mr. Johannes Halvorsen",male,21,0,0,8475,8.4333,,S +654,1,3,"O'Leary, Miss. Hanora ""Norah""",female,,0,0,330919,7.8292,,Q +655,0,3,"Hegarty, Miss. Hanora ""Nora""",female,18,0,0,365226,6.75,,Q +656,0,2,"Hickman, Mr. Leonard Mark",male,24,2,0,S.O.C. 14879,73.5,,S +657,0,3,"Radeff, Mr. Alexander",male,,0,0,349223,7.8958,,S +658,0,3,"Bourke, Mrs. John (Catherine)",female,32,1,1,364849,15.5,,Q +659,0,2,"Eitemiller, Mr. George Floyd",male,23,0,0,29751,13,,S +660,0,1,"Newell, Mr. Arthur Webster",male,58,0,2,35273,113.275,D48,C +661,1,1,"Frauenthal, Dr. Henry William",male,50,2,0,PC 17611,133.65,,S +662,0,3,"Badt, Mr. Mohamed",male,40,0,0,2623,7.225,,C +663,0,1,"Colley, Mr. Edward Pomeroy",male,47,0,0,5727,25.5875,E58,S +664,0,3,"Coleff, Mr. Peju",male,36,0,0,349210,7.4958,,S +665,1,3,"Lindqvist, Mr. Eino William",male,20,1,0,STON/O 2. 3101285,7.925,,S +666,0,2,"Hickman, Mr. Lewis",male,32,2,0,S.O.C. 14879,73.5,,S +667,0,2,"Butler, Mr. Reginald Fenton",male,25,0,0,234686,13,,S +668,0,3,"Rommetvedt, Mr. Knud Paust",male,,0,0,312993,7.775,,S +669,0,3,"Cook, Mr. Jacob",male,43,0,0,A/5 3536,8.05,,S +670,1,1,"Taylor, Mrs. Elmer Zebley (Juliet Cummins Wright)",female,,1,0,19996,52,C126,S +671,1,2,"Brown, Mrs. Thomas William Solomon (Elizabeth Catherine Ford)",female,40,1,1,29750,39,,S +672,0,1,"Davidson, Mr. Thornton",male,31,1,0,F.C. 12750,52,B71,S +673,0,2,"Mitchell, Mr. Henry Michael",male,70,0,0,C.A. 24580,10.5,,S +674,1,2,"Wilhelms, Mr. Charles",male,31,0,0,244270,13,,S +675,0,2,"Watson, Mr. Ennis Hastings",male,,0,0,239856,0,,S +676,0,3,"Edvardsson, Mr. Gustaf Hjalmar",male,18,0,0,349912,7.775,,S +677,0,3,"Sawyer, Mr. Frederick Charles",male,24.5,0,0,342826,8.05,,S +678,1,3,"Turja, Miss. Anna Sofia",female,18,0,0,4138,9.8417,,S +679,0,3,"Goodwin, Mrs. Frederick (Augusta Tyler)",female,43,1,6,CA 2144,46.9,,S +680,1,1,"Cardeza, Mr. Thomas Drake Martinez",male,36,0,1,PC 17755,512.3292,B51 B53 B55,C +681,0,3,"Peters, Miss. Katie",female,,0,0,330935,8.1375,,Q +682,1,1,"Hassab, Mr. Hammad",male,27,0,0,PC 17572,76.7292,D49,C +683,0,3,"Olsvigen, Mr. Thor Anderson",male,20,0,0,6563,9.225,,S +684,0,3,"Goodwin, Mr. Charles Edward",male,14,5,2,CA 2144,46.9,,S +685,0,2,"Brown, Mr. Thomas William Solomon",male,60,1,1,29750,39,,S +686,0,2,"Laroche, Mr. Joseph Philippe Lemercier",male,25,1,2,SC/Paris 2123,41.5792,,C +687,0,3,"Panula, Mr. Jaako Arnold",male,14,4,1,3101295,39.6875,,S +688,0,3,"Dakic, Mr. Branko",male,19,0,0,349228,10.1708,,S +689,0,3,"Fischer, Mr. Eberhard Thelander",male,18,0,0,350036,7.7958,,S +690,1,1,"Madill, Miss. Georgette Alexandra",female,15,0,1,24160,211.3375,B5,S +691,1,1,"Dick, Mr. Albert Adrian",male,31,1,0,17474,57,B20,S +692,1,3,"Karun, Miss. Manca",female,4,0,1,349256,13.4167,,C +693,1,3,"Lam, Mr. Ali",male,,0,0,1601,56.4958,,S +694,0,3,"Saad, Mr. Khalil",male,25,0,0,2672,7.225,,C +695,0,1,"Weir, Col. John",male,60,0,0,113800,26.55,,S +696,0,2,"Chapman, Mr. Charles Henry",male,52,0,0,248731,13.5,,S +697,0,3,"Kelly, Mr. James",male,44,0,0,363592,8.05,,S +698,1,3,"Mullens, Miss. Katherine ""Katie""",female,,0,0,35852,7.7333,,Q +699,0,1,"Thayer, Mr. John Borland",male,49,1,1,17421,110.8833,C68,C +700,0,3,"Humblen, Mr. Adolf Mathias Nicolai Olsen",male,42,0,0,348121,7.65,F G63,S +701,1,1,"Astor, Mrs. John Jacob (Madeleine Talmadge Force)",female,18,1,0,PC 17757,227.525,C62 C64,C +702,1,1,"Silverthorne, Mr. Spencer Victor",male,35,0,0,PC 17475,26.2875,E24,S +703,0,3,"Barbara, Miss. Saiide",female,18,0,1,2691,14.4542,,C +704,0,3,"Gallagher, Mr. Martin",male,25,0,0,36864,7.7417,,Q +705,0,3,"Hansen, Mr. Henrik Juul",male,26,1,0,350025,7.8542,,S +706,0,2,"Morley, Mr. Henry Samuel (""Mr Henry Marshall"")",male,39,0,0,250655,26,,S +707,1,2,"Kelly, Mrs. Florence ""Fannie""",female,45,0,0,223596,13.5,,S +708,1,1,"Calderhead, Mr. Edward Pennington",male,42,0,0,PC 17476,26.2875,E24,S +709,1,1,"Cleaver, Miss. Alice",female,22,0,0,113781,151.55,,S +710,1,3,"Moubarek, Master. Halim Gonios (""William George"")",male,,1,1,2661,15.2458,,C +711,1,1,"Mayne, Mlle. Berthe Antonine (""Mrs de Villiers"")",female,24,0,0,PC 17482,49.5042,C90,C +712,0,1,"Klaber, Mr. Herman",male,,0,0,113028,26.55,C124,S +713,1,1,"Taylor, Mr. Elmer Zebley",male,48,1,0,19996,52,C126,S +714,0,3,"Larsson, Mr. August Viktor",male,29,0,0,7545,9.4833,,S +715,0,2,"Greenberg, Mr. Samuel",male,52,0,0,250647,13,,S +716,0,3,"Soholt, Mr. Peter Andreas Lauritz Andersen",male,19,0,0,348124,7.65,F G73,S +717,1,1,"Endres, Miss. Caroline Louise",female,38,0,0,PC 17757,227.525,C45,C +718,1,2,"Troutt, Miss. Edwina Celia ""Winnie""",female,27,0,0,34218,10.5,E101,S +719,0,3,"McEvoy, Mr. Michael",male,,0,0,36568,15.5,,Q +720,0,3,"Johnson, Mr. Malkolm Joackim",male,33,0,0,347062,7.775,,S +721,1,2,"Harper, Miss. Annie Jessie ""Nina""",female,6,0,1,248727,33,,S +722,0,3,"Jensen, Mr. Svend Lauritz",male,17,1,0,350048,7.0542,,S +723,0,2,"Gillespie, Mr. William Henry",male,34,0,0,12233,13,,S +724,0,2,"Hodges, Mr. Henry Price",male,50,0,0,250643,13,,S +725,1,1,"Chambers, Mr. Norman Campbell",male,27,1,0,113806,53.1,E8,S +726,0,3,"Oreskovic, Mr. Luka",male,20,0,0,315094,8.6625,,S +727,1,2,"Renouf, Mrs. Peter Henry (Lillian Jefferys)",female,30,3,0,31027,21,,S +728,1,3,"Mannion, Miss. Margareth",female,,0,0,36866,7.7375,,Q +729,0,2,"Bryhl, Mr. Kurt Arnold Gottfrid",male,25,1,0,236853,26,,S +730,0,3,"Ilmakangas, Miss. Pieta Sofia",female,25,1,0,STON/O2. 3101271,7.925,,S +731,1,1,"Allen, Miss. Elisabeth Walton",female,29,0,0,24160,211.3375,B5,S +732,0,3,"Hassan, Mr. Houssein G N",male,11,0,0,2699,18.7875,,C +733,0,2,"Knight, Mr. Robert J",male,,0,0,239855,0,,S +734,0,2,"Berriman, Mr. William John",male,23,0,0,28425,13,,S +735,0,2,"Troupiansky, Mr. Moses Aaron",male,23,0,0,233639,13,,S +736,0,3,"Williams, Mr. Leslie",male,28.5,0,0,54636,16.1,,S +737,0,3,"Ford, Mrs. Edward (Margaret Ann Watson)",female,48,1,3,W./C. 6608,34.375,,S +738,1,1,"Lesurer, Mr. Gustave J",male,35,0,0,PC 17755,512.3292,B101,C +739,0,3,"Ivanoff, Mr. Kanio",male,,0,0,349201,7.8958,,S +740,0,3,"Nankoff, Mr. Minko",male,,0,0,349218,7.8958,,S +741,1,1,"Hawksford, Mr. Walter James",male,,0,0,16988,30,D45,S +742,0,1,"Cavendish, Mr. Tyrell William",male,36,1,0,19877,78.85,C46,S +743,1,1,"Ryerson, Miss. Susan Parker ""Suzette""",female,21,2,2,PC 17608,262.375,B57 B59 B63 B66,C +744,0,3,"McNamee, Mr. Neal",male,24,1,0,376566,16.1,,S +745,1,3,"Stranden, Mr. Juho",male,31,0,0,STON/O 2. 3101288,7.925,,S +746,0,1,"Crosby, Capt. Edward Gifford",male,70,1,1,WE/P 5735,71,B22,S +747,0,3,"Abbott, Mr. Rossmore Edward",male,16,1,1,C.A. 2673,20.25,,S +748,1,2,"Sinkkonen, Miss. Anna",female,30,0,0,250648,13,,S +749,0,1,"Marvin, Mr. Daniel Warner",male,19,1,0,113773,53.1,D30,S +750,0,3,"Connaghton, Mr. Michael",male,31,0,0,335097,7.75,,Q +751,1,2,"Wells, Miss. Joan",female,4,1,1,29103,23,,S +752,1,3,"Moor, Master. Meier",male,6,0,1,392096,12.475,E121,S +753,0,3,"Vande Velde, Mr. Johannes Joseph",male,33,0,0,345780,9.5,,S +754,0,3,"Jonkoff, Mr. Lalio",male,23,0,0,349204,7.8958,,S +755,1,2,"Herman, Mrs. Samuel (Jane Laver)",female,48,1,2,220845,65,,S +756,1,2,"Hamalainen, Master. Viljo",male,0.67,1,1,250649,14.5,,S +757,0,3,"Carlsson, Mr. August Sigfrid",male,28,0,0,350042,7.7958,,S +758,0,2,"Bailey, Mr. Percy Andrew",male,18,0,0,29108,11.5,,S +759,0,3,"Theobald, Mr. Thomas Leonard",male,34,0,0,363294,8.05,,S +760,1,1,"Rothes, the Countess. of (Lucy Noel Martha Dyer-Edwards)",female,33,0,0,110152,86.5,B77,S +761,0,3,"Garfirth, Mr. John",male,,0,0,358585,14.5,,S +762,0,3,"Nirva, Mr. Iisakki Antino Aijo",male,41,0,0,SOTON/O2 3101272,7.125,,S +763,1,3,"Barah, Mr. Hanna Assi",male,20,0,0,2663,7.2292,,C +764,1,1,"Carter, Mrs. William Ernest (Lucile Polk)",female,36,1,2,113760,120,B96 B98,S +765,0,3,"Eklund, Mr. Hans Linus",male,16,0,0,347074,7.775,,S +766,1,1,"Hogeboom, Mrs. John C (Anna Andrews)",female,51,1,0,13502,77.9583,D11,S +767,0,1,"Brewe, Dr. Arthur Jackson",male,,0,0,112379,39.6,,C +768,0,3,"Mangan, Miss. Mary",female,30.5,0,0,364850,7.75,,Q +769,0,3,"Moran, Mr. Daniel J",male,,1,0,371110,24.15,,Q +770,0,3,"Gronnestad, Mr. Daniel Danielsen",male,32,0,0,8471,8.3625,,S +771,0,3,"Lievens, Mr. Rene Aime",male,24,0,0,345781,9.5,,S +772,0,3,"Jensen, Mr. Niels Peder",male,48,0,0,350047,7.8542,,S +773,0,2,"Mack, Mrs. (Mary)",female,57,0,0,S.O./P.P. 3,10.5,E77,S +774,0,3,"Elias, Mr. Dibo",male,,0,0,2674,7.225,,C +775,1,2,"Hocking, Mrs. Elizabeth (Eliza Needs)",female,54,1,3,29105,23,,S +776,0,3,"Myhrman, Mr. Pehr Fabian Oliver Malkolm",male,18,0,0,347078,7.75,,S +777,0,3,"Tobin, Mr. Roger",male,,0,0,383121,7.75,F38,Q +778,1,3,"Emanuel, Miss. Virginia Ethel",female,5,0,0,364516,12.475,,S +779,0,3,"Kilgannon, Mr. Thomas J",male,,0,0,36865,7.7375,,Q +780,1,1,"Robert, Mrs. Edward Scott (Elisabeth Walton McMillan)",female,43,0,1,24160,211.3375,B3,S +781,1,3,"Ayoub, Miss. Banoura",female,13,0,0,2687,7.2292,,C +782,1,1,"Dick, Mrs. Albert Adrian (Vera Gillespie)",female,17,1,0,17474,57,B20,S +783,0,1,"Long, Mr. Milton Clyde",male,29,0,0,113501,30,D6,S +784,0,3,"Johnston, Mr. Andrew G",male,,1,2,W./C. 6607,23.45,,S +785,0,3,"Ali, Mr. William",male,25,0,0,SOTON/O.Q. 3101312,7.05,,S +786,0,3,"Harmer, Mr. Abraham (David Lishin)",male,25,0,0,374887,7.25,,S +787,1,3,"Sjoblom, Miss. Anna Sofia",female,18,0,0,3101265,7.4958,,S +788,0,3,"Rice, Master. George Hugh",male,8,4,1,382652,29.125,,Q +789,1,3,"Dean, Master. Bertram Vere",male,1,1,2,C.A. 2315,20.575,,S +790,0,1,"Guggenheim, Mr. Benjamin",male,46,0,0,PC 17593,79.2,B82 B84,C +791,0,3,"Keane, Mr. Andrew ""Andy""",male,,0,0,12460,7.75,,Q +792,0,2,"Gaskell, Mr. Alfred",male,16,0,0,239865,26,,S +793,0,3,"Sage, Miss. Stella Anna",female,,8,2,CA. 2343,69.55,,S +794,0,1,"Hoyt, Mr. William Fisher",male,,0,0,PC 17600,30.6958,,C +795,0,3,"Dantcheff, Mr. Ristiu",male,25,0,0,349203,7.8958,,S +796,0,2,"Otter, Mr. Richard",male,39,0,0,28213,13,,S +797,1,1,"Leader, Dr. Alice (Farnham)",female,49,0,0,17465,25.9292,D17,S +798,1,3,"Osman, Mrs. Mara",female,31,0,0,349244,8.6833,,S +799,0,3,"Ibrahim Shawah, Mr. Yousseff",male,30,0,0,2685,7.2292,,C +800,0,3,"Van Impe, Mrs. Jean Baptiste (Rosalie Paula Govaert)",female,30,1,1,345773,24.15,,S +801,0,2,"Ponesell, Mr. Martin",male,34,0,0,250647,13,,S +802,1,2,"Collyer, Mrs. Harvey (Charlotte Annie Tate)",female,31,1,1,C.A. 31921,26.25,,S +803,1,1,"Carter, Master. William Thornton II",male,11,1,2,113760,120,B96 B98,S +804,1,3,"Thomas, Master. Assad Alexander",male,0.42,0,1,2625,8.5167,,C +805,1,3,"Hedman, Mr. Oskar Arvid",male,27,0,0,347089,6.975,,S +806,0,3,"Johansson, Mr. Karl Johan",male,31,0,0,347063,7.775,,S +807,0,1,"Andrews, Mr. Thomas Jr",male,39,0,0,112050,0,A36,S +808,0,3,"Pettersson, Miss. Ellen Natalia",female,18,0,0,347087,7.775,,S +809,0,2,"Meyer, Mr. August",male,39,0,0,248723,13,,S +810,1,1,"Chambers, Mrs. Norman Campbell (Bertha Griggs)",female,33,1,0,113806,53.1,E8,S +811,0,3,"Alexander, Mr. William",male,26,0,0,3474,7.8875,,S +812,0,3,"Lester, Mr. James",male,39,0,0,A/4 48871,24.15,,S +813,0,2,"Slemen, Mr. Richard James",male,35,0,0,28206,10.5,,S +814,0,3,"Andersson, Miss. Ebba Iris Alfrida",female,6,4,2,347082,31.275,,S +815,0,3,"Tomlin, Mr. Ernest Portage",male,30.5,0,0,364499,8.05,,S +816,0,1,"Fry, Mr. Richard",male,,0,0,112058,0,B102,S +817,0,3,"Heininen, Miss. Wendla Maria",female,23,0,0,STON/O2. 3101290,7.925,,S +818,0,2,"Mallet, Mr. Albert",male,31,1,1,S.C./PARIS 2079,37.0042,,C +819,0,3,"Holm, Mr. John Fredrik Alexander",male,43,0,0,C 7075,6.45,,S +820,0,3,"Skoog, Master. Karl Thorsten",male,10,3,2,347088,27.9,,S +821,1,1,"Hays, Mrs. Charles Melville (Clara Jennings Gregg)",female,52,1,1,12749,93.5,B69,S +822,1,3,"Lulic, Mr. Nikola",male,27,0,0,315098,8.6625,,S +823,0,1,"Reuchlin, Jonkheer. John George",male,38,0,0,19972,0,,S +824,1,3,"Moor, Mrs. (Beila)",female,27,0,1,392096,12.475,E121,S +825,0,3,"Panula, Master. Urho Abraham",male,2,4,1,3101295,39.6875,,S +826,0,3,"Flynn, Mr. John",male,,0,0,368323,6.95,,Q +827,0,3,"Lam, Mr. Len",male,,0,0,1601,56.4958,,S +828,1,2,"Mallet, Master. Andre",male,1,0,2,S.C./PARIS 2079,37.0042,,C +829,1,3,"McCormack, Mr. Thomas Joseph",male,,0,0,367228,7.75,,Q +830,1,1,"Stone, Mrs. George Nelson (Martha Evelyn)",female,62,0,0,113572,80,B28, +831,1,3,"Yasbeck, Mrs. Antoni (Selini Alexander)",female,15,1,0,2659,14.4542,,C +832,1,2,"Richards, Master. George Sibley",male,0.83,1,1,29106,18.75,,S +833,0,3,"Saad, Mr. Amin",male,,0,0,2671,7.2292,,C +834,0,3,"Augustsson, Mr. Albert",male,23,0,0,347468,7.8542,,S +835,0,3,"Allum, Mr. Owen George",male,18,0,0,2223,8.3,,S +836,1,1,"Compton, Miss. Sara Rebecca",female,39,1,1,PC 17756,83.1583,E49,C +837,0,3,"Pasic, Mr. Jakob",male,21,0,0,315097,8.6625,,S +838,0,3,"Sirota, Mr. Maurice",male,,0,0,392092,8.05,,S +839,1,3,"Chip, Mr. Chang",male,32,0,0,1601,56.4958,,S +840,1,1,"Marechal, Mr. Pierre",male,,0,0,11774,29.7,C47,C +841,0,3,"Alhomaki, Mr. Ilmari Rudolf",male,20,0,0,SOTON/O2 3101287,7.925,,S +842,0,2,"Mudd, Mr. Thomas Charles",male,16,0,0,S.O./P.P. 3,10.5,,S +843,1,1,"Serepeca, Miss. Augusta",female,30,0,0,113798,31,,C +844,0,3,"Lemberopolous, Mr. Peter L",male,34.5,0,0,2683,6.4375,,C +845,0,3,"Culumovic, Mr. Jeso",male,17,0,0,315090,8.6625,,S +846,0,3,"Abbing, Mr. Anthony",male,42,0,0,C.A. 5547,7.55,,S +847,0,3,"Sage, Mr. Douglas Bullen",male,,8,2,CA. 2343,69.55,,S +848,0,3,"Markoff, Mr. Marin",male,35,0,0,349213,7.8958,,C +849,0,2,"Harper, Rev. John",male,28,0,1,248727,33,,S +850,1,1,"Goldenberg, Mrs. Samuel L (Edwiga Grabowska)",female,,1,0,17453,89.1042,C92,C +851,0,3,"Andersson, Master. Sigvard Harald Elias",male,4,4,2,347082,31.275,,S +852,0,3,"Svensson, Mr. Johan",male,74,0,0,347060,7.775,,S +853,0,3,"Boulos, Miss. Nourelain",female,9,1,1,2678,15.2458,,C +854,1,1,"Lines, Miss. Mary Conover",female,16,0,1,PC 17592,39.4,D28,S +855,0,2,"Carter, Mrs. Ernest Courtenay (Lilian Hughes)",female,44,1,0,244252,26,,S +856,1,3,"Aks, Mrs. Sam (Leah Rosen)",female,18,0,1,392091,9.35,,S +857,1,1,"Wick, Mrs. George Dennick (Mary Hitchcock)",female,45,1,1,36928,164.8667,,S +858,1,1,"Daly, Mr. Peter Denis ",male,51,0,0,113055,26.55,E17,S +859,1,3,"Baclini, Mrs. Solomon (Latifa Qurban)",female,24,0,3,2666,19.2583,,C +860,0,3,"Razi, Mr. Raihed",male,,0,0,2629,7.2292,,C +861,0,3,"Hansen, Mr. Claus Peter",male,41,2,0,350026,14.1083,,S +862,0,2,"Giles, Mr. Frederick Edward",male,21,1,0,28134,11.5,,S +863,1,1,"Swift, Mrs. Frederick Joel (Margaret Welles Barron)",female,48,0,0,17466,25.9292,D17,S +864,0,3,"Sage, Miss. Dorothy Edith ""Dolly""",female,,8,2,CA. 2343,69.55,,S +865,0,2,"Gill, Mr. John William",male,24,0,0,233866,13,,S +866,1,2,"Bystrom, Mrs. (Karolina)",female,42,0,0,236852,13,,S +867,1,2,"Duran y More, Miss. Asuncion",female,27,1,0,SC/PARIS 2149,13.8583,,C +868,0,1,"Roebling, Mr. Washington Augustus II",male,31,0,0,PC 17590,50.4958,A24,S +869,0,3,"van Melkebeke, Mr. Philemon",male,,0,0,345777,9.5,,S +870,1,3,"Johnson, Master. Harold Theodor",male,4,1,1,347742,11.1333,,S +871,0,3,"Balkic, Mr. Cerin",male,26,0,0,349248,7.8958,,S +872,1,1,"Beckwith, Mrs. Richard Leonard (Sallie Monypeny)",female,47,1,1,11751,52.5542,D35,S +873,0,1,"Carlsson, Mr. Frans Olof",male,33,0,0,695,5,B51 B53 B55,S +874,0,3,"Vander Cruyssen, Mr. Victor",male,47,0,0,345765,9,,S +875,1,2,"Abelson, Mrs. Samuel (Hannah Wizosky)",female,28,1,0,P/PP 3381,24,,C +876,1,3,"Najib, Miss. Adele Kiamie ""Jane""",female,15,0,0,2667,7.225,,C +877,0,3,"Gustafsson, Mr. Alfred Ossian",male,20,0,0,7534,9.8458,,S +878,0,3,"Petroff, Mr. Nedelio",male,19,0,0,349212,7.8958,,S +879,0,3,"Laleff, Mr. Kristo",male,,0,0,349217,7.8958,,S +880,1,1,"Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)",female,56,0,1,11767,83.1583,C50,C +881,1,2,"Shelley, Mrs. William (Imanita Parrish Hall)",female,25,0,1,230433,26,,S +882,0,3,"Markun, Mr. Johann",male,33,0,0,349257,7.8958,,S +883,0,3,"Dahlberg, Miss. Gerda Ulrika",female,22,0,0,7552,10.5167,,S +884,0,2,"Banfield, Mr. Frederick James",male,28,0,0,C.A./SOTON 34068,10.5,,S +885,0,3,"Sutehall, Mr. Henry Jr",male,25,0,0,SOTON/OQ 392076,7.05,,S +886,0,3,"Rice, Mrs. William (Margaret Norton)",female,39,0,5,382652,29.125,,Q +887,0,2,"Montvila, Rev. Juozas",male,27,0,0,211536,13,,S +888,1,1,"Graham, Miss. Margaret Edith",female,19,0,0,112053,30,B42,S +889,0,3,"Johnston, Miss. Catherine Helen ""Carrie""",female,,1,2,W./C. 6607,23.45,,S +890,1,1,"Behr, Mr. Karl Howell",male,26,0,0,111369,30,C148,C +891,0,3,"Dooley, Mr. Patrick",male,32,0,0,370376,7.75,,Q