The Wayback Machine - https://web.archive.org/web/20220223201654/https://www.geeksforgeeks.org/ml-boston-housing-kaggle-challenge-with-linear-regression/
Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

ML | Boston Housing Kaggle Challenge with Linear Regression

  • Difficulty Level : Medium
  • Last Updated : 04 Oct, 2021

Boston Housing Data: This dataset was taken from the StatLib library and is maintained by Carnegie Mellon University. This dataset concerns the housing prices in the housing city of Boston. The dataset provided has 506 instances with 13 features.
The Description of the dataset is taken from 
 

Image

Let’s make the Linear Regression Model, predicting housing prices
Inputting Libraries and dataset. 
 

Python3




# Importing Libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
  
# Importing Data
from sklearn.datasets import load_boston
boston = load_boston()

The shape of input Boston data and getting feature_names 
 

Python3




boston.data.shape

Image

Python3




boston.feature_names

Image

 
Converting data from nd-array to data frame and adding feature names to the data 
 

Python3




data = pd.DataFrame(boston.data)
data.columns = boston.feature_names
 
data.head(10)

Image

  
Adding ‘Price’ column to the dataset 
 

Python3




# Adding 'Price' (target) column to the data
boston.target.shape

Image

Python3




data['Price'] = boston.target
data.head()

Image

 
Description of Boston dataset 
 

Python3




data.describe()

Image

  
Info of Boston Dataset 
 

Python3




data.info()

Image

  
Getting input and output data and further splitting data to training and testing dataset. 
 

Python3




# Input Data
x = boston.data
  
# Output Data
y = boston.target
  
  
# splitting data to training and testing dataset.
 
#from sklearn.cross_validation import train_test_split
#the submodule cross_validation is renamed and reprecated to model_selection
from sklearn.model_selection import train_test_split
 
xtrain, xtest, ytrain, ytest = train_test_split(x, y, test_size =0.2,
                                                    random_state = 0)
  
print("xtrain shape : ", xtrain.shape)
print("xtest shape  : ", xtest.shape)
print("ytrain shape : ", ytrain.shape)
print("ytest shape  : ", ytest.shape)

Image

  
Applying Linear Regression Model to the dataset and predicting the prices. 
 

Python3




# Fitting Multi Linear regression model to training model
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(xtrain, ytrain)
  
# predicting the test set results
y_pred = regressor.predict(xtest)

Plotting Scatter graph to show the prediction results – ‘ytrue’ value vs ‘y_pred’ value 
 

Python3




# Plotting Scatter graph to show the prediction
# results - 'ytrue' value vs 'y_pred' value
plt.scatter(ytest, y_pred, c = 'green')
plt.xlabel("Price: in $1000's")
plt.ylabel("Predicted value")
plt.title("True value vs predicted value : Linear Regression")
plt.show()

Image

Results of Linear Regression i.e. Mean Squared Error. 
 

Python3




# Results of Linear Regression.
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(ytest, y_pred)
print("Mean Square Error : ", mse)

ImageImage

As per the result, our model is only 66.55% accurate. So, the prepared model is not very good for predicting housing prices. One can improve the prediction results using many other possible machine learning algorithms and techniques. 
 

Image


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!