Practical Data Science with R. 2 Ed

Practical Data Science with R. 2 Ed

Practical Data Science with R. 2 Ed
Автор: Mount John, Zumel Nina
Дата выхода: 2020
Издательство: Manning Publications Co.
Количество страниц: 568
Размер файла: 8,3 МБ
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

 Practical Data Science with R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

brief contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18

acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19

about this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20

What is data science? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20

Roadmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23

What is not in this book? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24

Code conventions and downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24

Working with this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25

Book forum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26

about the authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

about the foreword authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28

about the cover illustration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29

Part 1 Introduction to data science . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31

1 The data science process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33

1.1 The roles in a data science project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34

1.1.1 Project roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34

1.2 Stages of a data science project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36

1.2.1 Defining the goal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37

1.2.2 Data collection and management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38

1.2.3 Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40

1.2.4 Model evaluation and critique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42

1.2.5 Presentation and documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44

1.2.6 Model deployment and maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45

1.3 Setting expectations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46

1.3.1 Determining lower bounds on model performance . . . . . . . . . . . . . . . . . . . . . . . . . . . .46

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47

2 Starting with R and data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48

2.1 Starting with R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49

2.1.1 Installing R, tools, and examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50

2.1.2 R programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50

2.2 Working with data from files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59

2.2.1 Working with well-structured data from files or URLs . . . . . . . . . . . . . . . . . . . . .59

2.2.2 Using R with less-structured data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64

2.3 Working with relational databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67

2.3.1 A production-size example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79

3 Exploring data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81

3.1 Using summary statistics to spot problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83

3.1.1 Typical problems revealed by data summaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84

3.2 Spotting problems using graphics and visualization . . . . . . . . . . . . . . . . . . . . . . . . .88

3.2.1 Visually checking distributions for a single variable . . . . . . . . . . . . . . . . . . . .90

3.2.2 Visually checking relationships between two variables . . . . . . . . . . . . . . . . . . .100

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116

4 Managing data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118

4.1 Cleaning data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118

4.1.1 Domain-specific data cleaning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119

4.1.2 Treating missing values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121

4.1.3 The vtreat package for automatically treating missing variables . . . . . . . . .125

4.2 Data transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128

4.2.1 Normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129

4.2.2 Centering and scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131

4.2.3 Log transformations for skewed and wide distributions . . . . . . . . . . . . . . . . . . .134

4.3 Sampling for modeling and validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137

4.3.1 Test and training splits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138

4.3.2 Creating a sample group column . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139

4.3.3 Record grouping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140

4.3.4 Data provenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142

5 Data engineering and data shaping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143

5.1 Data selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146

5.1.1 Subsetting rows and columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146

5.1.2 Removing records with incomplete data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151

5.1.3 Ordering rows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154

5.2 Basic data transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158

5.2.1 Adding new columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158

5.2.2 Other simple operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163

5.3 Aggregating transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164

5.3.1 Combining many rows into summary rows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164

5.4 Multitable data transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167

5.4.1 Combining two or more ordered data frames quickly . . . . . . . . . . . . . . . . . . . . . . .167

5.4.2 Principal methods to combine data from multiple tables . . . . . . . . . . . . . . . . . .173

5.5 Reshaping transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179

5.5.1 Moving data from wide to tall form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179

5.5.2 Moving data from tall to wide form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183

5.5.3 Data coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188

Part 2 Modeling methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191

6 Choosing and evaluating models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193

6.1 Mapping problems to machine learning tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194

6.1.1 Classification problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195

6.1.2 Scoring problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196

6.1.3 Grouping: working without known targets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197

6.1.4 Problem-to-method mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199

6.2 Evaluating models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200

6.2.1 Overfitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200

6.2.2 Measures of model performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204

6.2.3 Evaluating classification models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205

6.2.4 Evaluating scoring models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215

6.2.5 Evaluating probability models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217

6.3 Local interpretable model-agnostic explanations (LIME) for explaining model predictions .225

6.3.1 LIME: Automated sanity checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227

6.3.2 Walking through LIME: A small example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227

6.3.3 LIME for text classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234

6.3.4 Training the text classifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238

6.3.5 Explaining the classifier’s predictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244

7 Linear and logistic regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245

7.1 Using linear regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246

7.1.1 Understanding linear regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247

Equation 7.1 The expression for a linear regression model . . . . . . . . . . . . . . . . . . . . .248

7.1.2 Building a linear regression model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251

7.1.3 Making predictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252

7.1.4 Finding relations and extracting advice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258

7.1.5 Reading the model summary and characterizing coefficient quality . . . . . . . .260

7.1.6 Linear regression takeaways . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .267

7.2 Using logistic regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .267

7.2.1 Understanding logistic regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .267

Equation 7.2 The expression for a logistic regression model . . . . . . . . . . . . . . . . . . .270

7.2.2 Building a logistic regression model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272

7.2.3 Making predictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273

7.2.4 Finding relations and extracting advice from logistic models . . . . . . . . . . . .278

7.2.5 Reading the model summary and characterizing coefficients . . . . . . . . . . . . . . .279

7.2.6 Logistic regression takeaways . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .286

7.3 Regularization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287

7.3.1 An example of quasi-separation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287

7.3.2 The types of regularized regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .292

7.3.3 Regularized regression with glmnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .303

8 Advanced data preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .304

8.1 The purpose of the vtreat package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .305

8.2 KDD and KDD Cup 2009 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .307

8.2.1 Getting started with KDD Cup 2009 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .308

8.2.2 The bull-in-the-china-shop approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .310

8.3 Basic data preparation for classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .312

8.3.1 The variable score frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314

8.3.2 Properly using the treatment plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318

8.4 Advanced data preparation for classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .320

8.4.1 Using mkCrossFrameCExperiment() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .320

8.4.2 Building a model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322

8.5 Preparing data for regression modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327

8.6 Mastering the vtreat package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329

8.6.1 The vtreat phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329

8.6.2 Missing values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331

8.6.3 Indicator variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .332

8.6.4 Impact coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333

8.6.5 The treatment plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335

8.6.6 The cross-frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339

9 Unsupervised methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341

9.1 Cluster analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342

9.1.1 Distances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .343

9.1.2 Preparing the data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .346

9.1.3 Hierarchical clustering with hclust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .349

9.1.4 The k-means algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .362

9.1.5 Assigning new points to clusters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .368

9.1.6 Clustering takeaways . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .370

9.2 Association rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .370

9.2.1 Overview of association rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .370

9.2.2 The example problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .372

9.2.3 Mining association rules with the arules package . . . . . . . . . . . . . . . . . . . . . . . .373

9.2.4 Association rule takeaways . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .381

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .382

10 Exploring advanced methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .383

10.1 Tree-based methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .385

10.1.1 A basic decision tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .386

10.1.2 Using bagging to improve prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .389

10.1.3 Using random forests to further improve prediction . . . . . . . . . . . . . . . . . . . . .391

10.1.4 Gradient-boosted trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .398

10.1.5 Tree-based model takeaways . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .406

10.2 Using generalized additive models (GAMs) to learn non-monotone relationships .406

10.2.1 Understanding GAMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .406

10.2.2 A one-dimensional regression example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .408

10.2.3 Extracting the non-linear relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .412

10.2.4 Using GAM on actual data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .414

10.2.5 Using GAM for logistic regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .417

10.2.6 GAM takeaways . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .418

10.3 Solving “inseparable” problems using support vector machines . . . . . . . . . . . . .419

10.3.1 Using an SVM to solve a problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .420

10.3.2 Understanding support vector machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .425

10.3.3 Understanding kernel functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .427

10.3.4 Support vector machine and kernel methods takeaways . . . . . . . . . . . . . . . . . . . .429

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .430

Part 3 Working in the real world . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .431

11 Documentation and deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .433

11.1 Predicting buzz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .435

11.2 Using R markdown to produce milestone documentation . . . . . . . . . . . . . . . . . . . . . .436

11.2.1 What is R markdown? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .437

11.2.2 knitr technical details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .439

11.2.3 Using knitr to document the Buzz data and produce the model . . . . . . . . . . . .441

11.3 Using comments and version control for running documentation . . . . . . . . . . . . .444

11.3.1 Writing effective comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .444

11.3.2 Using version control to record history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .446

11.3.3 Using version control to explore your project . . . . . . . . . . . . . . . . . . . . . . . . . .452

11.3.4 Using version control to share work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .454

11.4 Deploying models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .458

11.4.1 Deploying demonstrations using Shiny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .460

11.4.2 Deploying models as HTTP services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .461

11.4.3 Deploying models by export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .463

11.4.4 What to take away . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .465

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .466

12 Producing effective presentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .467

12.1 Presenting your results to the project sponsor . . . . . . . . . . . . . . . . . . . . . . . . . . .469

12.1.1 Summarizing the project’s goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .470

12.1.2 Stating the project’s results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .472

12.1.3 Filling in the details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .474

12.1.4 Making recommendations and discussing future work . . . . . . . . . . . . . . . . . . . . . .476

12.1.5 Project sponsor presentation takeaways . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .476

12.2 Presenting your model to end users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .477

12.2.1 Summarizing the project goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .477

12.2.2 Showing how the model fits user workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .478

12.2.3 Showing how to use the model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .480

12.2.4 End user presentation takeaways . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .482

12.3 Presenting your work to other data scientists . . . . . . . . . . . . . . . . . . . . . . . . . . . .482

12.3.1 Introducing the problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .482

12.3.2 Discussing related work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .483

12.3.3 Discussing your approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .484

12.3.4 Discussing results and future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .485

12.3.5 Peer presentation takeaways . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .487

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .487

appendix A Starting with R and other tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .489

A.1 Installing the tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .489

A.1.1 Installing Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .489

A.1.2 The R package system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .494

A.1.3 Installing Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .494

A.1.4 Installing RStudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .495

A.1.5 R resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .495

A.2 Starting with R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .496

A.2.1 Primary features of R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .498

A.2.2 Primary R data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .501

A.3 Using databases with R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .507

A.3.1 Running database queries using a query generator . . . . . . . . . . . . . . . . . . . . . . . .507

A.3.2 How to think relationally about data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .511

A.4 The takeaway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .513

appendix B Important statistical concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .514

B.1 Distributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .515

B.1.1 Normal distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .515

B.1.2 Summarizing R’s distribution naming conventions . . . . . . . . . . . . . . . . . . . . . . . . .520

B.1.3 Lognormal distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .520

B.1.4 Binomial distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .524

B.1.5 More R tools for distributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .529

B.2 Statistical theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .529

B.2.1 Statistical philosophy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .529

B.2.2 A/B tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .532

B.2.3 Power of tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .536

B.2.4 Specialized statistical tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .538

B.3 Examples of the statistical view of data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .540

B.3.1 Sampling bias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .540

B.3.2 Omitted variable bias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .543

B.4 The takeaway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .548

appendix C Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .549

index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .553

Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .553

A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .553

B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .553

C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .554

D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .555

E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .557

F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .557

G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .557

H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .558

I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .558

J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .559

K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .559

L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .559

M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .560

N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .561

O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .561

P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .561

Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .562

R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .562

S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .563

T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .565

U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .565

V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .566

W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .566

X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .566

Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .566

Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .566

Practical Data Science with R, Second Edition takes a practice-oriented approach to explaining basic principles in the ever expanding field of data science. You’ll jump right to real-world use cases as you apply the R programming language and statistical analysis techniques to carefully explained examples based in marketing, business intelligence, and decision support.

About the technology

Evidence-based decisions are crucial to success. Applying the right data analysis techniques to your carefully curated business data helps you make accurate predictions, identify trends, and spot trouble in advance. The R data analysis platform provides the tools you need to tackle day-to-day data analysis and machine learning tasks efficiently and effectively.

About the book

Practical Data Science with R, Second Edition is a task-based tutorial that leads readers through dozens of useful, data analysis practices using the R language. By concentrating on the most important tasks you’ll face on the job, this friendly guide is comfortable both for business analysts and data scientists. Because data is only useful if it can be understood, you’ll also find fantastic tips for organizing and presenting data in tables, as well as snappy visualizations.

What's inside

  • Statistical analysis for business pros
  • Effective data presentation
  • The most useful R tools
  • Interpreting complicated predictive models

About the reader

You’ll need to be comfortable with basic statistics and have an introductory knowledge of R or another high-level programming language.


Похожее:

Список отзывов:

Нет отзывов к книге.