Data to Enhance Decision Making by Housing Developers

The skills I demoed here can be learned through taking Data Science with Machine Learning bootcamp with NYC Data Science Academy.

GitHub link to project documents

Ames is a city in Story County, Iowa, United States, located approximately 30 miles north of Des Moines in central Iowa. It is best known as the home of Iowa State University, with leading agriculture, design, engineering, and veterinary medicine colleges. The aim of this project is to help home builders in Ames, Iowa identify the features that most influence sale price. 



The Ames housing data set consists of about 2500 sale records of homes during the years 2006−2010, using 81 columns (features), including sale price which will be our target variable. We first analyzed missing values and applied any necessary imputation.

These methods were used to impute missing values:

  • For Pool Quality Rating, Miscellaneous, Alley, Fence,
    and Fireplace Quality, missing values were filled with None.
  • For Electrical, Zoning Classification, Utilities, Home Functionality, Type of Sale, Kitchen Quality, and both Exterior Covering features, missing values were filled with the most frequent value, the mode.
  • For Lot Frontage, missing values were filled with the median neighborhood value. 



Exploratory Data Analysis

We created a new price per square foot column, derived from dividing sale price by gross living area for each home. We used the price per square foot feature to help determine the importance of other home features.​

​​Overall Quality and Kitchen Quality

How does overall quality and kitchen quality influence price per square foot?

  • As overall quality increases,  price per square foot increases.
  • As kitchen quality increases, price per square foot increases.

​Bedroom and Bathroom Combinations

Which combination of number of bedrooms and number of bathrooms yields the highest price per square foot?​






  • The price per square foot of a house is higher when the difference between number of bedrooms and bathrooms is one or less.

Central Air Conditioning and Fireplace

How does Central Air Conditioning or having a Fireplace affect price per square foot?




  • Both features increase price per square foot.  If you had to choose just one, Central Air Condtioning tends to provide a higher value, not surprising given Aimes average high temperature in the 80's for the months of June, July, and August.

Age of House when Sold

How does the age of a house influence price per square foot?


  • As the age of a home increases, price per square foot increases.

Garage Capacity and Driveway

Do Garage Capacity or having a Paved Driveway result in a higher price per square foot?


  • A paved driveway with a three car garage has the highest price per square foot.
  • Generally speaking, a paved driveway and a more spacious garage means a higher price per square foot.


Machine Learning Models

We used machine learning models to predict sale price and select important house features. We start by looking at properties of our response variable sale price.

Below, the graph on the left shows distribution of sale price, which is skewed to the right. After a log transformation, the right graph now shows a normally distributed representation of sale price. The log-transformed sale price is used for fitting all machine learning models below.



Stepwise Regression using Bayesian Information Criterion(BIC)

  • In stepwise regression, we begin with a model using only the intercept. We then sequentially add the predictors that most improve our models fit based on Bayesian Information Criterion (BIC). The smaller the BIC value, the better a model fits.
  • The adjusted R-squared of this model is  0.9263.

Are the Conditions for Multiple Linear Regression met?

Before proceeding, we must make sure all five assumptions of Multiple Linear Regression are met: ​​​​ ​

1. Linearity
2. Independent Errors
3. Normality
4. Constant variance
5. No Multicollinearity

​​No Multicollinearity - the Variance Inflation Factor (VIF)  for each predictor is below 5, suggesting low multicollinearity.

The following features were selected based on their importance:

Overall Quality, Gross Living Area, Neighborhood, Finished Basement Square Footage, Overall Condition, Age When Sold, Total Basement Square Footage,  Building Type, Garage Capacity, Fireplaces, Sale Condition, Central Air, Lot Area, Condition2 (home proximity to various things), Kitchen Quality, Basement Exposure, Year Remodeled, Screen Porch,  General Zoning Classification,  Home Functionality, Number of Basement Full Bathrooms, Enclosed Porch, Heating Quality, PavedDrive, Difference between Number of Bedrooms and Bathrooms, and Basement Finish Square Footage (if second type present)


Penalized Linear Regression

The Stepwise Regression model above uses BIC to penalize coefficients to reduced multicollinearity. In python scikit learn, Lasso and Ridge, penalized linear models will try to achieve the same goal. With a suitably chosen lambda, Lasso and Ridge successfully balances the bias-variance trade-off. To find the best lambda, we used scikit learn's GridSearchCV.

  • The mean cross-validated score for Lasso is 0.905. For Ridge it is 0.904.
    These are the best scores for our model using the training data.
  • The performance score for Lasso is 0.926 and for Ridge it is 0.924.
    These are the best scores for our model with the test data.
  • The models underfit a little but only a negligible amount.


Random Forest Regressor

Random forest is an enhancement of the bagging method, building a large
collection of de-correlated trees, and then averaging them. Random forest introduces randomness in the individual tree generation process. At each tree node, the loss function is minimized using only the randomly chosen subset of features. Again, to tune parameters, we use GridSearchCV.

  • The mean cross-validation score is 0.892 and the performance score is 0.91.
    This is slightly lower than the linear models discussed above.
  • When using the random forest model, Overall Quality is the most important feature, followed by Gross Living Area and First-floor Square Footage.


Gradient Boosting Regressor

Boosting is a general sequential ensemble technique which
aggregates many weak learners to produce a strong learner. This differs from the parallel ensembling of the random forest model seen above, in that it produces a strong learner in a sequential way.  Iteratively, each weak learner makes use of the previous weak learner's outcome to make its own educated guess.  Once again, GridSearchCV is used to tune parameters.

  •  The mean cross validation score is 0.910 and the performance score is 0.929.
    The model's performance score is the highest score among all models tested. 
  • Overall Quality is the most important feature. It is followed by Gross Living Area and First-loor Square Footage.
  • These features are very similar to those selected by the random forest model.

We believe Lasso Regression best models the data.  Though gradient boosting regressor produced a higher performance score, the score alone does not compensate for a higher cost to run and greater model complexity.

Our Housing Developer Recommendations:

  • Quality Homes
    A one-point increase in overall quality rating increases sale price by 0.06%.
  • An Excellent Kitchen
    Excellent kitchen quality sells for 0.063% higher compared to other kitchen qualities. 
  • Choose Central Air over a Fireplace
    Central air conditioning gives a 0.056% higher sale price compared to houses without central air.
  • Pave the Driveway
    A home with a paved driveway sells for 0.048% higher than a home without one.
  • Limit the Difference between Bedrooms and Bathrooms to One
    For every one room increase between the number of bedrooms and number of bathrooms, the average sale price drops 0.01%.

About Authors

Randy Pantinople

Randy was a high school math and physics teacher for 16 years. He got his masters degree in Physics Education at the University of Southeastern Philippines. His passion about trends, predictions, and data driven decisions led him to...
View all posts by Randy Pantinople >

Gregory Weber

Greg is a Certified Data Science Professional with a background in Mathematics, Education, Music and a passion for creating valuable insights through data. He enjoys and excels in presenting data analysis and implementing solutions across collaborative organizations. Greg...
View all posts by Gregory Weber >

Jay Kim

BA in Psychology at NYU & Assistant Accountant
View all posts by Jay Kim >

Minjae Lee

Aspiring Machine Learning and Software Engineer with strong statistics and mathematics background. Hands-on experience building machine learning models using Python and libraries. Passion for emerging technologies and concepts in computer science, data science, statistical modeling, and artificial intelligence.
View all posts by Minjae Lee >

Related Articles

Leave a Comment

No comments found.

View Posts by Categories

Our Recent Popular Posts

View Posts by Tags

#python #trainwithnycdsa 2019 2020 Revenue 3-points agriculture air quality airbnb airline alcohol Alex Baransky algorithm alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus ames dataset ames housing dataset apartment rent API Application artist aws bank loans beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Best Data Science Bootcamp 2020 Best Ranked Big Data Book Launch Book-Signing bootcamp Bootcamp Alumni Bootcamp Prep boston safety Bundles cake recipe California Cancer Research capstone car price Career Career Day citibike classic cars classpass clustering Coding Course Demo Course Report covid 19 credit credit card crime frequency crops D3.js data data analysis Data Analyst data analytics data for tripadvisor reviews data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization database Deep Learning Demo Day Discount disney dplyr drug data e-commerce economy employee employee burnout employer networking environment feature engineering Finance Financial Data Science fitness studio Flask flight delay gbm Get Hired ggplot2 googleVis H20 Hadoop hallmark holiday movie happiness healthcare frauds higgs boson Hiring hiring partner events Hiring Partners hotels housing housing data housing predictions housing price hy-vee Income Industry Experts Injuries Instructor Blog Instructor Interview insurance italki Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter las vegas airport lasso regression Lead Data Scienctist Lead Data Scientist leaflet league linear regression Logistic Regression machine learning Maps market matplotlib Medical Research Meet the team meetup methal health miami beach movie music Napoli NBA netflix Networking neural network Neural networks New Courses NHL nlp NYC NYC Data Science nyc data science academy NYC Open Data nyc property NYCDSA NYCDSA Alumni Online Online Bootcamp Online Training Open Data painter pandas Part-time performance phoenix pollutants Portfolio Development precision measurement prediction Prework Programming public safety PwC python Python Data Analysis python machine learning python scrapy python web scraping python webscraping Python Workshop R R Data Analysis R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest Ranking recommendation recommendation system regression Remote remote data science bootcamp Scrapy scrapy visualization seaborn seafood type Selenium sentiment analysis sentiment classification Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau teachers team team performance TensorFlow Testimonial tf-idf Top Data Science Bootcamp Top manufacturing companies Transfers tweets twitter videos visualization wallstreet wallstreetbets web scraping Weekend Course What to expect whiskey whiskeyadvocate wildfire word cloud word2vec XGBoost yelp youtube trending ZORI