avatarNaina Chaturvedi

Free AI web copilot to create summaries, insights and extended knowledge, download it at here

11146

Abstract

to share that we have launched our Youtube channel — Ignito to cover all the projects and coding exercise for …</h3></div> <div><p>www.youtube.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/0*N9OmxhpEw0AuQEey)"></div> </div> </div> </a> </div><h2 id="9083">Tech Newsletter —</h2><blockquote id="8abe"><p>If you are interested, you can join my newsletter through which I send tech interview tips, techniques, patterns, hacks — Software Development, ML, Data Science, Startups and Technology projects to more than 30K readers. You can subscribe to <b>Tech Brew :</b></p></blockquote><div id="8d5c" class="link-block"> <a href="https://naina0405.substack.com/"> <div> <div> <h2>Ignito</h2> <div><h3>Data Science, ML, AI and more… Click to read Ignito, by Naina Chaturvedi, a Substack publication. Launched 7 months…</h3></div> <div><p>naina0405.substack.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/0*_ER1J-h50iqAjH70)"></div> </div> </div> </a> </div><p id="b45e">Well, this post is going to be the part 2 of Advanced Regression Techniques with project ( Part 1) that can be found in the link below.</p><div id="6138" class="link-block"> <a href="https://readmedium.com/day-36-60-days-of-data-science-and-machine-learning-series-7219a2bf77fc"> <div> <div> <h2>Day 36: 60 days of Data Science and Machine Learning Series</h2> <div><h3>Advanced Regression Techniques with project ( Part 1) …</h3></div> <div><p>medium.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/1*JjmdnipVkI4YL1crdCZ3Eg.png)"></div> </div> </div> </a> </div><p id="6eb4">In this post, we will cover different regression techniques that you can use to build your model.</p><p id="8907">Let’s dive in ( <i>before I dive in the sea ;)</i>) —</p><h2 id="96b2">Declare Features ( X and Y)</h2><div id="deb2"><pre><span class="hljs-attr">X</span> = ht_df[[<span class="hljs-string">"TotalBsmtSF"</span>,<span class="hljs-string">"1stFlrSF"</span>,<span class="hljs-string">"FullBath"</span>,<span class="hljs-string">"TotRmsAbvGrd"</span>,<span class="hljs-string">"YearBuilt"</span>,<span class="hljs-string">"YearRemodAdd"</span>,<span class="hljs-string">"OverallQual"</span>,<span class="hljs-string">"GrLivArea"</span>,<span class="hljs-string">"GarageCars"</span>,<span class="hljs-string">"GarageArea"</span>]] <span class="hljs-attr">y</span>= ht_df[<span class="hljs-string">'SalePrice'</span>]</pre></div><h2 id="ce74">Split into train and test data</h2><div id="a636"><pre><span class="hljs-keyword">from</span> sklearn.model_selection <span class="hljs-keyword">import</span> train_test_split</pre></div><div id="0416"><pre>X_train, X_test, y_train, y_test = train_test_split(X, y, <span class="hljs-attribute">test_size</span>=0.4, <span class="hljs-attribute">random_state</span>=42)</pre></div><h2 id="4f75">Rescale the data, Cross Validation and Evaluation Metrics</h2><div id="f127"><pre>pipeline = Pipeline([ ('std_scalar', StandardScaler()) ])</pre></div><div id="3030"><pre><span class="hljs-attr">X_train</span> = pipeline.fit_transform(X_train) <span class="hljs-attr">X_test</span> = pipeline.transform(X_test)</pre></div><div id="28cc"><pre>def cross_val(model): <span class="hljs-built_in">pred</span> = cross_val_score(model, X, y, <span class="hljs-built_in">cv</span>=<span class="hljs-number">5</span>) <span class="hljs-built_in">return</span> <span class="hljs-built_in">pred</span>.<span class="hljs-built_in">mean</span>()</pre></div><div id="fa7e"><pre>def <span class="hljs-built_in">print_evaluate</span>(t, p):
mae = metrics.<span class="hljs-built_in">mean_absolute_error</span>(t, p) mse = metrics.<span class="hljs-built_in">mean_squared_error</span>(t, p) rmse = np.<span class="hljs-built_in">sqrt</span>(metrics.<span class="hljs-built_in">mean_squared_error</span>(t, p)) r2_square = metrics.<span class="hljs-built_in">r2_score</span>(t, p) <span class="hljs-built_in">print</span>(<span class="hljs-string">'Mean Squared Error:'</span>, mse) <span class="hljs-built_in">print</span>(<span class="hljs-string">'Root Mean Squared Error:'</span>, rmse) <span class="hljs-built_in">print</span>(<span class="hljs-string">'Mean Absoulte Error:'</span>, mae) <span class="hljs-built_in">print</span>(<span class="hljs-string">'R2 Square:'</span>, r2_square) <span class="hljs-built_in">print</span>(<span class="hljs-string">'-'</span>* <span class="hljs-number">8</span>)</pre></div><h2 id="8a55">Linear Regression</h2><div id="d272"><pre><span class="hljs-keyword">from</span> sklearn.linear_model <span class="hljs-keyword">import</span> LinearRegression</pre></div><div id="2745"><pre>linear_reg = LinearRegression(<span class="hljs-attribute">normalize</span>=<span class="hljs-literal">True</span>) linear_reg.fit(X_train,y_train)</pre></div><div id="56f4"><pre><span class="hljs-attr">test_pred</span> = lin_reg.predict(X_test) <span class="hljs-attr">train_pred</span> = lin_reg.predict(X_train)</pre></div><div id="dbf8"><pre><span class="hljs-function"><span class="hljs-title">print</span><span class="hljs-params">(<span class="hljs-string">'Train set evaluation:'</span>)</span></span> <span class="hljs-function"><span class="hljs-title">print_evaluate</span><span class="hljs-params">(y_train, train_pred)</span></span></pre></div><div id="e7c7"><pre><span class="hljs-function"><span class="hljs-title">print</span><span class="hljs-params">(<span class="hljs-string">'Test set evaluation:'</span>)</span></span> <span class="hljs-function"><span class="hljs-title">print_evaluate</span><span class="hljs-params">(y_test, test_pred)</span></span></pre></div><p id="69d4">Output —</p><div id="3615"><pre><span class="hljs-keyword">Test </span>set evaluation: Mean Squared Error: 1.784092e<span class="hljs-string">+09</span> Root Mean Squared Error: 42238.512698 Mean Absoulte Error: 24612.044039 R2 Square: 0.74433 --------</pre></div><h2 id="d149">SVM Regression</h2><div id="a8e4"><pre><span class="hljs-keyword">from</span> sklearn.svm <span class="hljs-keyword">import</span> SVR</pre></div><div id="5c11"><pre>svm_reg_model = SVR(<span class="hljs-attribute">kernel</span>=<span class="hljs-string">'rbf'</span>, <span class="hljs-attribute">C</span>=1000000, <span class="hljs-attribute">epsilon</span>=0.001) svm_reg_model.fit(X_train, y_train)</pre></div><div id="9554"><pre><span class="hljs-attr">test_pred</span> = svm_reg_model.predict(X_test) <span class="hljs-attr">train_pred</span> = svm_reg_model.predict(X_train)</pre></div><div id="a84b"><pre><span class="hljs-function"><span class="hljs-title">print</span><span class="hljs-params">(<span class="hljs-string">'Train set evaluation:'</span>)</span></span> <span class="hljs-function"><span class="hljs-title">print_evaluate</span><span class="hljs-params">(y_train, train_pred)</span></span></pre></div><div id="0337"><pre><span class="hljs-function"><span class="hljs-title">print</span><span class="hljs-params">(<span class="hljs-string">'Test set evaluation:'</span>)</span></span> <span class="hljs-function"><span class="hljs-title">print_evaluate</span><span class="hljs-params">(y_test, test_pred)</span></span></pre></div><p id="0f31">Output —</p><div id="3c41"><pre>Train set evaluation: Mean Squared Error: 356240223.75021607 Root Mean Squared Error: 18874.327107216726 Mean Absoulte Error: 9666.126442526473 <span class="hljs-section">R2 Square 0.9408098767474895 --------</span> Test set evaluation: Mean Squared Error: 873770430.0569018 Root Mean Squared Error: 29559.608083614738 Mean Absoulte Error: 20073.42020251248 <span class="hljs-section">R2 Square: 0.8747837933981435 --------</span></pre></div><h2 id="4353">Random Forest Regression</h2><div id="907d"><pre><span class="hljs-keyword">from</span> sklearn.ensemble <span class="hljs-keyword">import</span> RandomForestRegressor</pre></div><div id="2f39"><pre>random_reg_model = RandomForestRegressor(<span class="hljs-attribute">n_estimators</span>=1500) random_reg_model.fit(X_train, y_train)</pre></div><div id="c8d5"><pre><span class="hljs-attr">test_pred</span> = random_reg_model.predict(X_test) <span class="hljs-attr">train_pred</span> = random_reg_model.predict(X_train)</pre></div><div id="ca2e"><pre><span class="hljs-function"><span class="hljs-title">print</span><span class="hljs-params">(<span class="hljs-string">'Train set evaluation:'</span>)</span></span> <span class="hljs-function"><span class="hljs-title">print_evaluate</span><span class="hljs-params">(y_train, train_pred)</span></span></pre></div><div id="0962"><pre><span class="hljs-function"><span class="hljs-title">print</span><span class="hljs-params">(<span class="hljs-string">'Test set evaluation:'</span>)</span></span> <span class="hljs-function"><span class="hljs-title">print_evaluate</span><span class="hljs-params">(y_test, test_pred)</span></span></pre></div><p id="f667">Output —</p><div id="6b4c"><pre>Train set evaluation: Mean Squared Error: 164817856.78464976 Root Mean Squared Error: 12838.140705906357 Mean Absoulte Error: 7629.598502997546 <span class="hljs-section">R2 Square 0.972615138305835 --------</span> Test set evaluation: Mean Squared Error: 742703900.752294 Root Mean Squared Error: 27252.5943857148 Mean Absoulte Error: 17884.901544103792 <span class="hljs-section">R2 Square: 0.893566362649114 --------</span></pre></div><h2 id="84c9">SGD Regression</h2><div id="bcf5"><pre><span class="hljs-keyword">from</span> sklearn.linear_model <span class="hljs-keyword">import</span> SGDRegressor</pre></div><div id="7786"><pre>sgd_reg_model = SGDRegressor(<span class="hljs-attribute">n_iter_no_change</span>=150, <span class="hljs-attribute">penalty</span>=None, <span class="hljs-attribute">eta0</span>=0.0001, <span class="hljs-attribute">max_iter</span>=1000, <span class="hljs-attribute">tol</span>=1e-3) sgd_reg_model.fit(X_train, y_train)</pre></div><div id="f905"><pre><span class="hljs-attr">test_pred</span> = sgd_reg_model.predict(X_test) <span class="hljs-attr">train_pred</span> = sgd_reg_model.predict(X_train)</pre></div><div id="0ef2"><pre><span class="hljs-function"><span class="hljs-title">print</span><span class="hljs-params">(<span class="hljs-string">'Train set evaluation:'</span>)</span></span> <span class="hljs-function"><span class="hljs-title">print_evaluate</span><span class="hljs-params">(y_train, train_pred)</span></span></pre></div><div id="7d64"><pre><span class="hljs-function"><span class="hljs-title">print</span><span class="hljs-params">(<span class="hljs-string">

Options

'Test set evaluation:'</span>)</span></span> <span class="hljs-function"><span class="hljs-title">print_evaluate</span><span class="hljs-params">(y_test, test_pred)</span></span></pre></div><p id="924c">Output —</p><div id="651c"><pre>Train set evaluation: Mean Squared Error: 1491518433.5065699 Root Mean Squared Error: 38620.18168660746 Mean Absoulte Error: 23894.374559726748 <span class="hljs-section">R2 Square 0.7521808206179814 --------</span> Test set evaluation: Mean Squared Error: 1433731798.722035 Root Mean Squared Error: 37864.6510445037 Mean Absoulte Error: 24187.28838012137 <span class="hljs-section">R2 Square: 0.7945381865248764 --------</span></pre></div><h2 id="dcd6">Elastic Net</h2><div id="64b3"><pre><span class="hljs-keyword">from</span> sklearn.linear_model <span class="hljs-keyword">import</span> ElasticNet</pre></div><div id="32b2"><pre>elastic_model = ElasticNet(<span class="hljs-attribute">alpha</span>=0.1, <span class="hljs-attribute">l1_ratio</span>=0.9, <span class="hljs-attribute">selection</span>=<span class="hljs-string">'random'</span>, <span class="hljs-attribute">random_state</span>=42) elastic_model.fit(X_train, y_train)</pre></div><div id="9f50"><pre><span class="hljs-attr">test_pred</span> = elastic_model.predict(X_test) <span class="hljs-attr">train_pred</span> = elastic_model.predict(X_train)</pre></div><div id="f1be"><pre><span class="hljs-function"><span class="hljs-title">print</span><span class="hljs-params">(<span class="hljs-string">'Train set evaluation:'</span>)</span></span> <span class="hljs-function"><span class="hljs-title">print_evaluate</span><span class="hljs-params">(y_train, train_pred)</span></span></pre></div><div id="0a12"><pre><span class="hljs-function"><span class="hljs-title">print</span><span class="hljs-params">(<span class="hljs-string">'Test set evaluation:'</span>)</span></span> <span class="hljs-function"><span class="hljs-title">print_evaluate</span><span class="hljs-params">(y_test, test_pred)</span></span></pre></div><p id="cbd6">Output —</p><div id="d422"><pre>Train set evaluation: Mean Squared Error: 1467441330.190119 Root Mean Squared Error: 38307.19684589462 Mean Absoulte Error: 23951.8806845575 <span class="hljs-section">R2 Square 0.7561812860844062 --------</span> Test set evaluation: Mean Squared Error: 1390440655.6722608 Root Mean Squared Error: 37288.61294915997 Mean Absoulte Error: 24287.598088519848 <span class="hljs-section">R2 Square: 0.8007420502923858 --------</span></pre></div><h2 id="d5dc">Lasso Regression</h2><div id="e6bb"><pre><span class="hljs-keyword">from</span> sklearn.linear_model <span class="hljs-keyword">import</span> Lasso</pre></div><div id="e23f"><pre>lasso_model = Lasso(<span class="hljs-attribute">alpha</span>=0.1, <span class="hljs-attribute">precompute</span>=<span class="hljs-literal">True</span>, <span class="hljs-attribute">selection</span>=<span class="hljs-string">'random'</span>, <span class="hljs-attribute">random_state</span>=42) lasso_model.fit(X_train, y_train)</pre></div><div id="5378"><pre><span class="hljs-attr">test_pred</span> = lasso_model.predict(X_test) <span class="hljs-attr">train_pred</span> = lasso_model.predict(X_train)</pre></div><div id="51ea"><pre><span class="hljs-function"><span class="hljs-title">print</span><span class="hljs-params">(<span class="hljs-string">'Train set evaluation:'</span>)</span></span> <span class="hljs-function"><span class="hljs-title">print_evaluate</span><span class="hljs-params">(y_train, train_pred)</span></span></pre></div><div id="e54e"><pre><span class="hljs-function"><span class="hljs-title">print</span><span class="hljs-params">(<span class="hljs-string">'Test set evaluation:'</span>)</span></span> <span class="hljs-function"><span class="hljs-title">print_evaluate</span><span class="hljs-params">(y_test, test_pred)</span></span></pre></div><p id="7a72">Output —</p><div id="f209"><pre>Train set evaluation: Mean Squared Error: 1467114732.084582 Root Mean Squared Error: 38302.933726864605 Mean Absoulte Error: 23994.145203746753 <span class="hljs-section">R2 Square 0.7562355511023124 --------</span> Test set evaluation: Mean Squared Error: 1387789082.8139398 Root Mean Squared Error: 37253.04125590205 Mean Absoulte Error: 24355.84074739878 <span class="hljs-section">R2 Square: 0.8011220355647481 --------</span></pre></div><h2 id="356f">Ridge Regression</h2><div id="87cb"><pre><span class="hljs-keyword">from</span> sklearn.linear_model <span class="hljs-keyword">import</span> Ridge</pre></div><div id="1f67"><pre>ridge_model = Ridge(<span class="hljs-attribute">alpha</span>=1.0, <span class="hljs-attribute">solver</span>=<span class="hljs-string">'cholesky'</span>, <span class="hljs-attribute">tol</span>=0.0005, <span class="hljs-attribute">random_state</span>=42) ridge_model.fit(X_train, y_train) pred = ridge_model.predict(X_test)</pre></div><div id="a7d7"><pre><span class="hljs-attr">test_pred</span> = ridge_model.predict(X_test) <span class="hljs-attr">train_pred</span> = ridge_model.predict(X_train)</pre></div><div id="07f4"><pre><span class="hljs-function"><span class="hljs-title">print</span><span class="hljs-params">(<span class="hljs-string">'Train set evaluation:'</span>)</span></span> <span class="hljs-function"><span class="hljs-title">print_evaluate</span><span class="hljs-params">(y_train, train_pred)</span></span></pre></div><div id="eca9"><pre><span class="hljs-function"><span class="hljs-title">print</span><span class="hljs-params">(<span class="hljs-string">'Test set evaluation:'</span>)</span></span> <span class="hljs-function"><span class="hljs-title">print_evaluate</span><span class="hljs-params">(y_test, test_pred)</span></span></pre></div><p id="7065">Output —</p><div id="e343"><pre>Train set evaluation: Mean Squared Error: 1467118179.7562702 Root Mean Squared Error: 38302.978732159594 Mean Absoulte Error: 23989.845101710034 <span class="hljs-section">R2 Square 0.7562349782638216 --------</span> Test set evaluation: Mean Squared Error: 1388018226.771261 Root Mean Squared Error: 37256.11663567824 Mean Absoulte Error: 24348.388207169395 <span class="hljs-section">R2 Square: 0.8010891979496099 --------</span></pre></div><p id="0eeb">If you want to learn more about these Regression models, go to (References) : <a href="https://scikit-learn.org/stable/supervised_learning.html#supervised-learning">https://scikit-learn.org/stable/supervised_learning.html#supervised-learning</a></p><p id="64bc"><b><i>Day 38 : Coming soon!</i></b></p><p id="a039">Follow and Stay tuned. Keep coding :)</p><h1 id="a69d">For other projects, tune to —</h1><p id="b31f"><b>Build Machine Learning Pipelines( With Code)</b></p><div id="5b37" class="link-block"> <a href="https://medium.datadriveninvestor.com/build-machine-learning-pipelines-with-code-part-1-bd3ed7152124"> <div> <div> <h2>Build Machine Learning Pipelines( With Code) — Part 1</h2> <div><h3>Complete implementation…</h3></div> <div><p>medium.datadriveninvestor.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/0*KdToBD8RDMBH4jXM.png)"></div> </div> </div> </a> </div><p id="946c"><b>Recurrent Neural Network with Keras</b></p><div id="607d" class="link-block"> <a href="https://medium.datadriveninvestor.com/recurrent-neural-network-with-keras-b5b5f6fe5187"> <div> <div> <h2>Recurrent Neural Network with Keras</h2> <div><h3>Project Implementation and cheatsheet…</h3></div> <div><p>medium.datadriveninvestor.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/0*xs3Dya3qQBx6IU7C.png)"></div> </div> </div> </a> </div><p id="56e1"><b>Clustering Geolocation Data in Python using DBSCAN and K-Means</b></p><div id="2b3e" class="link-block"> <a href="https://medium.datadriveninvestor.com/clustering-geolocation-data-in-python-using-dbscan-and-k-means-3705d9f44522"> <div> <div> <h2>Clustering Geolocation Data in Python using DBSCAN and K-Means</h2> <div><h3>Project Implementation…</h3></div> <div><p>medium.datadriveninvestor.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/0*0uPCZnohdaPCO4NN.png)"></div> </div> </div> </a> </div><p id="a29c"><b>Facial Expression Recognition using Keras</b></p><div id="ccaa" class="link-block"> <a href="https://medium.datadriveninvestor.com/facial-expression-recognition-using-keras-cbdd661a0a54"> <div> <div> <h2>Facial Expression Recognition using Keras</h2> <div><h3>Project Implementation…</h3></div> <div><p>medium.datadriveninvestor.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/0*CGch7hzdjg1fpgKy.jpg)"></div> </div> </div> </a> </div><p id="0db7"><b>Hyperparameter Tuning with Keras Tuner</b></p><div id="6dff" class="link-block"> <a href="https://medium.datadriveninvestor.com/hyperparameter-tuning-with-keras-tuner-3a609d3fd85b"> <div> <div> <h2>Hyperparameter Tuning with Keras Tuner</h2> <div><h3>Project Implementation….</h3></div> <div><p>medium.datadriveninvestor.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/0*jlaEz8AZaptNWHEr.png)"></div> </div> </div> </a> </div><p id="fed8"><b>Custom Layers in Keras</b></p><div id="e4fd" class="link-block"> <a href="https://medium.datadriveninvestor.com/custom-layers-in-keras-de5f793217aa"> <div> <div> <h2>Custom Layers in Keras</h2> <div><h3>Code implementation …</h3></div> <div><p>medium.datadriveninvestor.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/0*1IH67KJadqeqeO01.png)"></div> </div> </div> </a> </div><p id="2ea9"><b><i>That’s it fellas. Peace out and keep coding :)</i></b></p><p id="ec55">Stay Tuned and of-course let me end this post with a quote by Steve Jobs ;)</p><p id="5004" type="7">“You have to be burning with an idea, or a problem, or a wrong that you want to right. If you’re not passionate enough from the start, you’ll never stick it out.”</p></article></body>

Day 37: 60 days of Data Science and Machine Learning Series

Advanced Regression Techniques with project ( Part 1) …

Welcome back peeps. Hope your holidays are going well. I’m relaxing/rejuvenating on an island (on a beach) writing this post and sipping Piña colada!

Some of the other best Series —

30 Days of Natural Language Processing ( NLP) Series

30 days of Data Engineering with projects Series

60 days of Data Science and ML Series with projects

100 days : Your Data Science and Machine Learning Degree Series with projects

23 Data Science Techniques You Should Know

Tech Interview Series — Curated List of coding questions

Complete System Design with most popular Questions Series

Complete Data Visualization and Pre-processing Series with projects

Complete Python Series with Projects

Complete Advanced Python Series with Projects

Kaggle Best Notebooks that will teach you the most

Complete Developers Guide to Git

All the Data Science and Machine Learning Resources

210 Machine Learning Projects

30 days of Machine Learning Ops

Projects Videos —

All the projects, data structures, SQL, algorithms, system design, Data Science and ML , Data Analytics, Data Engineering, , Implemented Data Science and ML projects, Implemented Data Engineering Projects, Implemented Deep Learning Projects, Implemented Machine Learning Ops Projects, Implemented Time Series Analysis and Forecasting Projects, Implemented Applied Machine Learning Projects, Implemented Tensorflow and Keras Projects, Implemented PyTorch Projects, Implemented Scikit Learn Projects, Implemented Big Data Projects, Implemented Cloud Machine Learning Projects, Implemented Neural Networks Projects, Implemented OpenCV Projects,Complete ML Research Papers Summarized, Implemented Data Analytics projects, Implemented Data Visualization Projects, Implemented Data Mining Projects, Implemented Natural Leaning Processing Projects, MLOps and Deep Learning, Applied Machine Learning with Projects Series, PyTorch with Projects Series, Tensorflow and Keras with Projects Series, Scikit Learn Series with Projects, Time Series Analysis and Forecasting with Projects Series, ML System Design Case Studies Series videos will be published on our youtube channel ( just launched).

Subscribe today!

Tech Newsletter —

If you are interested, you can join my newsletter through which I send tech interview tips, techniques, patterns, hacks — Software Development, ML, Data Science, Startups and Technology projects to more than 30K readers. You can subscribe to Tech Brew :

Well, this post is going to be the part 2 of Advanced Regression Techniques with project ( Part 1) that can be found in the link below.

In this post, we will cover different regression techniques that you can use to build your model.

Let’s dive in ( before I dive in the sea ;)) —

Declare Features ( X and Y)

X = ht_df[["TotalBsmtSF","1stFlrSF","FullBath","TotRmsAbvGrd","YearBuilt","YearRemodAdd","OverallQual","GrLivArea","GarageCars","GarageArea"]]
y= ht_df['SalePrice']

Split into train and test data

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=42)

Rescale the data, Cross Validation and Evaluation Metrics

pipeline = Pipeline([
    ('std_scalar', StandardScaler())
])
X_train = pipeline.fit_transform(X_train)
X_test = pipeline.transform(X_test)
def cross_val(model):
    pred = cross_val_score(model, X, y, cv=5)
    return pred.mean()
def print_evaluate(t, p):  
    mae = metrics.mean_absolute_error(t, p)
    mse = metrics.mean_squared_error(t, p)
    rmse = np.sqrt(metrics.mean_squared_error(t, p))
    r2_square = metrics.r2_score(t, p)
    print('Mean Squared Error:', mse)
    print('Root Mean Squared Error:', rmse)
    print('Mean Absoulte Error:', mae)
    print('R2 Square:', r2_square)
    print('-'* 8)

Linear Regression

from sklearn.linear_model import LinearRegression
linear_reg = LinearRegression(normalize=True)
linear_reg.fit(X_train,y_train)
test_pred = lin_reg.predict(X_test)
train_pred = lin_reg.predict(X_train)
print('Train set evaluation:')
print_evaluate(y_train, train_pred)
print('Test set evaluation:')
print_evaluate(y_test, test_pred)

Output —

Test set evaluation:
Mean Squared Error: 1.784092e+09
Root Mean Squared Error: 42238.512698
Mean Absoulte Error: 24612.044039
R2 Square: 0.74433
--------

SVM Regression

from sklearn.svm import SVR
svm_reg_model = SVR(kernel='rbf', C=1000000, epsilon=0.001)
svm_reg_model.fit(X_train, y_train)
test_pred = svm_reg_model.predict(X_test)
train_pred = svm_reg_model.predict(X_train)
print('Train set evaluation:')
print_evaluate(y_train, train_pred)
print('Test set evaluation:')
print_evaluate(y_test, test_pred)

Output —

Train set evaluation:
Mean Squared Error: 356240223.75021607
Root Mean Squared Error: 18874.327107216726
Mean Absoulte Error: 9666.126442526473
R2 Square 0.9408098767474895
--------
Test set evaluation:
Mean Squared Error: 873770430.0569018
Root Mean Squared Error: 29559.608083614738
Mean Absoulte Error: 20073.42020251248
R2 Square: 0.8747837933981435
--------

Random Forest Regression

from sklearn.ensemble import RandomForestRegressor
random_reg_model = RandomForestRegressor(n_estimators=1500)
random_reg_model.fit(X_train, y_train)
test_pred = random_reg_model.predict(X_test)
train_pred = random_reg_model.predict(X_train)
print('Train set evaluation:')
print_evaluate(y_train, train_pred)
print('Test set evaluation:')
print_evaluate(y_test, test_pred)

Output —

Train set evaluation:
Mean Squared Error: 164817856.78464976
Root Mean Squared Error: 12838.140705906357
Mean Absoulte Error: 7629.598502997546
R2 Square 0.972615138305835
--------
Test set evaluation:
Mean Squared Error: 742703900.752294
Root Mean Squared Error: 27252.5943857148
Mean Absoulte Error: 17884.901544103792
R2 Square: 0.893566362649114
--------

SGD Regression

from sklearn.linear_model import SGDRegressor
sgd_reg_model = SGDRegressor(n_iter_no_change=150, penalty=None, eta0=0.0001, max_iter=1000, tol=1e-3)
sgd_reg_model.fit(X_train, y_train)
test_pred = sgd_reg_model.predict(X_test)
train_pred = sgd_reg_model.predict(X_train)
print('Train set evaluation:')
print_evaluate(y_train, train_pred)
print('Test set evaluation:')
print_evaluate(y_test, test_pred)

Output —

Train set evaluation:
Mean Squared Error: 1491518433.5065699
Root Mean Squared Error: 38620.18168660746
Mean Absoulte Error: 23894.374559726748
R2 Square 0.7521808206179814
--------
Test set evaluation:
Mean Squared Error: 1433731798.722035
Root Mean Squared Error: 37864.6510445037
Mean Absoulte Error: 24187.28838012137
R2 Square: 0.7945381865248764
--------

Elastic Net

from sklearn.linear_model import ElasticNet
elastic_model = ElasticNet(alpha=0.1, l1_ratio=0.9, selection='random', random_state=42)
elastic_model.fit(X_train, y_train)
test_pred = elastic_model.predict(X_test)
train_pred = elastic_model.predict(X_train)
print('Train set evaluation:')
print_evaluate(y_train, train_pred)
print('Test set evaluation:')
print_evaluate(y_test, test_pred)

Output —

Train set evaluation:
Mean Squared Error: 1467441330.190119
Root Mean Squared Error: 38307.19684589462
Mean Absoulte Error: 23951.8806845575
R2 Square 0.7561812860844062
--------
Test set evaluation:
Mean Squared Error: 1390440655.6722608
Root Mean Squared Error: 37288.61294915997
Mean Absoulte Error: 24287.598088519848
R2 Square: 0.8007420502923858
--------

Lasso Regression

from sklearn.linear_model import Lasso
lasso_model = Lasso(alpha=0.1, 
              precompute=True, 
              selection='random',
              random_state=42)
lasso_model.fit(X_train, y_train)
test_pred = lasso_model.predict(X_test)
train_pred = lasso_model.predict(X_train)
print('Train set evaluation:')
print_evaluate(y_train, train_pred)
print('Test set evaluation:')
print_evaluate(y_test, test_pred)

Output —

Train set evaluation:
Mean Squared Error: 1467114732.084582
Root Mean Squared Error: 38302.933726864605
Mean Absoulte Error: 23994.145203746753
R2 Square 0.7562355511023124
--------
Test set evaluation:
Mean Squared Error: 1387789082.8139398
Root Mean Squared Error: 37253.04125590205
Mean Absoulte Error: 24355.84074739878
R2 Square: 0.8011220355647481
--------

Ridge Regression

from sklearn.linear_model import Ridge
ridge_model = Ridge(alpha=1.0, solver='cholesky', tol=0.0005, random_state=42)
ridge_model.fit(X_train, y_train)
pred = ridge_model.predict(X_test)
test_pred = ridge_model.predict(X_test)
train_pred = ridge_model.predict(X_train)
print('Train set evaluation:')
print_evaluate(y_train, train_pred)
print('Test set evaluation:')
print_evaluate(y_test, test_pred)

Output —

Train set evaluation:
Mean Squared Error: 1467118179.7562702
Root Mean Squared Error: 38302.978732159594
Mean Absoulte Error: 23989.845101710034
R2 Square 0.7562349782638216
--------
Test set evaluation:
Mean Squared Error: 1388018226.771261
Root Mean Squared Error: 37256.11663567824
Mean Absoulte Error: 24348.388207169395
R2 Square: 0.8010891979496099
--------

If you want to learn more about these Regression models, go to (References) : https://scikit-learn.org/stable/supervised_learning.html#supervised-learning

Day 38 : Coming soon!

Follow and Stay tuned. Keep coding :)

For other projects, tune to —

Build Machine Learning Pipelines( With Code)

Recurrent Neural Network with Keras

Clustering Geolocation Data in Python using DBSCAN and K-Means

Facial Expression Recognition using Keras

Hyperparameter Tuning with Keras Tuner

Custom Layers in Keras

That’s it fellas. Peace out and keep coding :)

Stay Tuned and of-course let me end this post with a quote by Steve Jobs ;)

“You have to be burning with an idea, or a problem, or a wrong that you want to right. If you’re not passionate enough from the start, you’ll never stick it out.”

Machine Learning
Data Science
Artificial Intelligence
Tech
Programming
Recommended from ReadMedium