Pro Machine Learning Algorithms A Hands-On Approach to Implementing Algorithms in Python and R — V Kishore Ayyadevara Pro Machine Learning Algorithms A Hands-On Approach to Implementing Algorithms in Python and R V Kishore Ayyadevara Pro Machine Learning Algorithms V Kishore Ayyadevara Hyderabad, Andhra Pradesh, India ISBN-13 (pbk): 978-1-4842-3563-8 ISBN-13 (electronic): 978-1-4842-3564-5 https://doi.org/10.1007/978-1-4842-3564-5 Library of Congress Control Number: 2018947188 Copyright © 2018 by V Kishore Ayyadevara This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director, Apress Media LLC: Welmoed Spahr Acquisitions Editor: Celestine John Suresh Development Editor: Matthew Moodie Coordinating Editor: Divya Modi Cover designed by eStudioCalamar Cover image designed by Freepik (www.freepik.com) Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@ springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please e-mail [email protected], or visit http://www.apress.com/ rights-permissions. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the book's product page, located at www.apress.com/978-1-4842-3563-8. For more detailed information, please visit http://www.apress.com/source-code. Printed on acid-free paper I would like to dedicate this book to my dear parents, Hema and Subrahmanyeswara Rao, to my lovely wife, Sindhura, and my dearest daughter, Hemanvi. This work would not have been possible without their support and encouragement. Table of Contents About the Author �����������������������������������������������������������������������������������������������������xv About the Technical Reviewer �������������������������������������������������������������������������������xvii Acknowledgments ��������������������������������������������������������������������������������������������������xix Introduction ������������������������������������������������������������������������������������������������������������xxi Chapter 1: Basics of Machine Learning ��������������������������������������������������������������������1 Regression and Classification �������������������������������������������������������������������������������������������������������1 Training and Testing Data ��������������������������������������������������������������������������������������������������������2 The Need for Validation Dataset ����������������������������������������������������������������������������������������������3 Measures of Accuracy �������������������������������������������������������������������������������������������������������������5 AUC Value and ROC Curve �������������������������������������������������������������������������������������������������������7 Unsupervised Learning ���������������������������������������������������������������������������������������������������������������11 Typical Approach Towards Building a Model �������������������������������������������������������������������������������12 Where Is the Data Fetched From? �����������������������������������������������������������������������������������������12 Which Data Needs to Be Fetched? ����������������������������������������������������������������������������������������12 Pre-processing the Data ��������������������������������������������������������������������������������������������������������13 Feature Interaction ����������������������������������������������������������������������������������������������������������������14 Feature Generation ����������������������������������������������������������������������������������������������������������������14 Building the Models ���������������������������������������������������������������������������������������������������������������14 Productionalizing the Models ������������������������������������������������������������������������������������������������14 Build, Deploy, Test, and Iterate �����������������������������������������������������������������������������������������������15 Summary�������������������������������������������������������������������������������������������������������������������������������������15 v Table of ConTenTs Chapter 2: Linear Regression ���������������������������������������������������������������������������������17 Introducing Linear Regression ����������������������������������������������������������������������������������������������������17 Variables: Dependent and Independent ���������������������������������������������������������������������������������18 Correlation �����������������������������������������������������������������������������������������������������������������������������18 Causation �������������������������������������������������������������������������������������������������������������������������������18 Simple vs� Multivariate Linear Regression ����������������������������������������������������������������������������������18 Formalizing Simple Linear Regression ���������������������������������������������������������������������������������������19 The Bias Term ������������������������������������������������������������������������������������������������������������������������19 The Slope �������������������������������������������������������������������������������������������������������������������������������20 Solving a Simple Linear Regression �������������������������������������������������������������������������������������������20 More General Way of Solving a Simple Linear Regression ���������������������������������������������������������23 Minimizing the Overall Sum of Squared Error �����������������������������������������������������������������������23 Solving the Formula ��������������������������������������������������������������������������������������������������������������24 Working Details of Simple Linear Regression �����������������������������������������������������������������������������25 Complicating Simple Linear Regression a Little ��������������������������������������������������������������������26 Arriving at Optimal Coefficient Values �����������������������������������������������������������������������������������29 Introducing Root Mean Squared Error �����������������������������������������������������������������������������������29 Running a Simple Linear Regression in R �����������������������������������������������������������������������������������30 Residuals �������������������������������������������������������������������������������������������������������������������������������31 Coefficients ����������������������������������������������������������������������������������������������������������������������������32 SSE of Residuals (Residual Deviance) �����������������������������������������������������������������������������������34 Null Deviance �������������������������������������������������������������������������������������������������������������������������34 R Squared ������������������������������������������������������������������������������������������������������������������������������34 F-statistic ������������������������������������������������������������������������������������������������������������������������������35 Running a Simple Linear Regression in Python ��������������������������������������������������������������������������36 Common Pitfalls of Simple Linear Regression ����������������������������������������������������������������������������37 Multivariate Linear Regression ���������������������������������������������������������������������������������������������������38 Working details of Multivariate Linear Regression ����������������������������������������������������������������40 Multivariate Linear Regression in R ���������������������������������������������������������������������������������������41 Multivariate Linear Regression in Python ������������������������������������������������������������������������������42 vi Table of ConTenTs Issue of Having a Non-significant Variable in the Model �������������������������������������������������������42 Issue of Multicollinearity �������������������������������������������������������������������������������������������������������43 Mathematical Intuition of Multicollinearity ����������������������������������������������������������������������������43 Further Points to Consider in Multivariate Linear Regression �����������������������������������������������44 Assumptions of Linear Regression ���������������������������������������������������������������������������������������������45 Summary�������������������������������������������������������������������������������������������������������������������������������������47 Chapter 3: Logistic Regression �������������������������������������������������������������������������������49 Why Does Linear Regression Fail for Discrete Outcomes? ���������������������������������������������������������49 A More General Solution: Sigmoid Curve ������������������������������������������������������������������������������������51 Formalizing the Sigmoid Curve (Sigmoid Activation) �������������������������������������������������������������52 From Sigmoid Curve to Logistic Regression ��������������������������������������������������������������������������53 Interpreting the Logistic Regression �������������������������������������������������������������������������������������53 Working Details of Logistic Regression ���������������������������������������������������������������������������������54 Estimating Error ���������������������������������������������������������������������������������������������������������������������56 Least Squares Method and Assumption of Linearity �������������������������������������������������������������57 Running a Logistic Regression in R ��������������������������������������������������������������������������������������������59 Running a Logistic Regression in Python ������������������������������������������������������������������������������������61 Identifying the Measure of Interest ���������������������������������������������������������������������������������������������61 Common Pitfalls ��������������������������������������������������������������������������������������������������������������������������68 Time Between Prediction and the Event Happening �������������������������������������������������������������69 Outliers in Independent variables ������������������������������������������������������������������������������������������69 Summary�������������������������������������������������������������������������������������������������������������������������������������69 Chapter 4: Decision Tree �����������������������������������������������������������������������������������������71 Components of a Decision Tree ���������������������������������������������������������������������������������������������������73 Classification Decision Tree When There Are Multiple Discrete Independent Variables ��������������74 Information Gain ��������������������������������������������������������������������������������������������������������������������75 Calculating Uncertainty: Entropy �������������������������������������������������������������������������������������������75 Calculating Information Gain �������������������������������������������������������������������������������������������������76 Uncertainty in the Original Dataset ����������������������������������������������������������������������������������������76 Measuring the Improvement in Uncertainty ��������������������������������������������������������������������������77 vii Table of ConTenTs Which Distinct Values Go to the Left and Right Nodes ����������������������������������������������������������79 When Does the Splitting Process Stop? ��������������������������������������������������������������������������������84 Classification Decision Tree for Continuous Independent Variables ��������������������������������������������85 Classification Decision Tree When There Are Multiple Independent Variables ����������������������������88 Classification Decision Tree When There Are Continuous and Discrete Independent Variables �����������������������������������������������������������������������������������������������������������������93 What If the Response Variable Is Continuous? ����������������������������������������������������������������������������94 Continuous Dependent Variable and Multiple Continuous Independent Variables ����������������95 Continuous Dependent Variable and Discrete Independent Variable �������������������������������������97 Continuous Dependent Variable and Discrete, Continuous Independent Variables ���������������98 Implementing a Decision Tree in R ����������������������������������������������������������������������������������������������99 Implementing a Decision Tree in Python �������������������������������������������������������������������������������������99 Common Techniques in Tree Building ���������������������������������������������������������������������������������������100 Visualizing a Tree Build �������������������������������������������������������������������������������������������������������������101 Impact of Outliers on Decision Trees �����������������������������������������������������������������������������������������102 Summary�����������������������������������������������������������������������������������������������������������������������������������103 Chapter 5: Random Forest ������������������������������������������������������������������������������������105 A Random Forest Scenario� �������������������������������������������������������������������������������������������������������105 Bagging �������������������������������������������������������������������������������������������������������������������������������107 Working Details of a Random Forest �����������������������������������������������������������������������������������107 Implementing a Random Forest in R �����������������������������������������������������������������������������������������108 Parameters to Tune in a Random Forest �����������������������������������������������������������������������������112 Variation of AUC by Depth of Tree ����������������������������������������������������������������������������������������114 Implementing a Random Forest in Python ��������������������������������������������������������������������������������116 Summary�����������������������������������������������������������������������������������������������������������������������������������116 Chapter 6: Gradient Boosting Machine �����������������������������������������������������������������117 Gradient Boosting Machine �������������������������������������������������������������������������������������������������������117 Working details of GBM �������������������������������������������������������������������������������������������������������������118 Shrinkage ����������������������������������������������������������������������������������������������������������������������������������123 viii Table of ConTenTs AdaBoost �����������������������������������������������������������������������������������������������������������������������������������126 Theory of AdaBoost �������������������������������������������������������������������������������������������������������������126 Working Details of AdaBoost �����������������������������������������������������������������������������������������������127 Additional Functionality for GBM �����������������������������������������������������������������������������������������������132 Implementing GBM in Python ����������������������������������������������������������������������������������������������������132 Implementing GBM in R ������������������������������������������������������������������������������������������������������������133 Summary�����������������������������������������������������������������������������������������������������������������������������������134 Chapter 7: Artificial Neural Network ��������������������������������������������������������������������135 Structure of a Neural Network ��������������������������������������������������������������������������������������������������136 Working Details of Training a Neural Network ��������������������������������������������������������������������������138 Forward Propagation �����������������������������������������������������������������������������������������������������������138 Applying the Activation Function �����������������������������������������������������������������������������������������141 Back Propagation ����������������������������������������������������������������������������������������������������������������146 Working Out Back Propagation ��������������������������������������������������������������������������������������������146 Stochastic Gradient Descent �����������������������������������������������������������������������������������������������148 Diving Deep into Gradient Descent ��������������������������������������������������������������������������������������148 Why Have a Learning Rate? �������������������������������������������������������������������������������������������������152 Batch Training ���������������������������������������������������������������������������������������������������������������������������152 The Concept of Softmax ������������������������������������������������������������������������������������������������������153 Different Loss Optimization Functions ��������������������������������������������������������������������������������������155 Scaling a Dataset�����������������������������������������������������������������������������������������������������������������156 Implementing Neural Network in Python ����������������������������������������������������������������������������������157 Avoiding Over-fitting using Regularization ��������������������������������������������������������������������������������160 Assigning Weightage to Regularization term ����������������������������������������������������������������������������162 Implementing Neural Network in R �������������������������������������������������������������������������������������������163 Summary�����������������������������������������������������������������������������������������������������������������������������������165 ix Table of ConTenTs Chapter 8: Word2vec ��������������������������������������������������������������������������������������������167 Hand-Building a Word Vector ����������������������������������������������������������������������������������������������������168 Methods of Building a Word Vector �������������������������������������������������������������������������������������������173 Issues to Watch For in a Word2vec Model ��������������������������������������������������������������������������������174 Frequent Words �������������������������������������������������������������������������������������������������������������������174 Negative Sampling ��������������������������������������������������������������������������������������������������������������175 Implementing Word2vec in Python �������������������������������������������������������������������������������������������175 Summary�����������������������������������������������������������������������������������������������������������������������������������178 Chapter 9: Convolutional Neural Network ������������������������������������������������������������179 The Problem with Traditional NN �����������������������������������������������������������������������������������������������180 Scenario 1 ���������������������������������������������������������������������������������������������������������������������������183 Scenario 2 ���������������������������������������������������������������������������������������������������������������������������184 Scenario 3 ���������������������������������������������������������������������������������������������������������������������������185 Scenario 4 ���������������������������������������������������������������������������������������������������������������������������186 Understanding the Convolutional in CNN ����������������������������������������������������������������������������������187 From Convolution to Activation ��������������������������������������������������������������������������������������������189 From Convolution Activation to Pooling �������������������������������������������������������������������������������189 How Do Convolution and Pooling Help?�������������������������������������������������������������������������������190 Creating CNNs with Code ����������������������������������������������������������������������������������������������������������190 Working Details of CNN �������������������������������������������������������������������������������������������������������������194 Deep Diving into Convolutions/Kernels �������������������������������������������������������������������������������������203 From Convolution and Pooling to Flattening: Fully Connected Layer ����������������������������������������205 From One Fully Connected Layer to Another �����������������������������������������������������������������������206 From Fully Connected Layer to Output Layer ����������������������������������������������������������������������206 Connecting the Dots: Feed Forward Network ���������������������������������������������������������������������������206 Other Details of CNN �����������������������������������������������������������������������������������������������������������������207 Backward Propagation in CNN ��������������������������������������������������������������������������������������������������209 Putting It All Together ����������������������������������������������������������������������������������������������������������������210 x
Description: