on April 20, 2014
A problem with the other reviews is that they consider the book in isolation, as if no alternatives were available. "Practical data science" is not the only machine-learning-lite book on the market: Manning itself had published Harrington's Python-based "Machine learning in action", Packt offers "Machine learning with R" by Lantz, O'Reilly boasts "Doing data science" by Schutt and O'Neil, and, finally, Springer has "Introduction to statistical learning" by James, Witten, Hastie and Tibshirani. I have seen and reviewed all except Harrington's; for the purposes of this review, I'll ultra-briefly describe each contender ("Machine learning with R" - thin, average-quality, superficial, but effective at what it sets out to achieve; "Doing data science" - a mash-up of a textbook and a magazine article about kewl data scientists; below-average quality, but a lot of pop appeal; "Introduction to statistical learning" - high-quality, accessible and visually appealing textbook with R illustrations) and get to "Practical data science" - which, to me, comes across as a better-organized, earnest version of "Doing data science". The book's forte is its effort to go beyond a catalogue of R-illustrated machine-learning methods - and you have to have seen similar books to know how standard this repertoire is - and discuss practical skills useful to a budding "data scientist", from version control to presenting. I appreciate this effort, but feel that this content was not sufficiently substantial or polished to develop into a "unique selling proposition" of the kind that each of its competitors has - hence the title of my review.
on April 24, 2014
tl;dr: A well rounded, occasionally high-level introductory text that will leave you feeling prepared to participate in the Data Science conversation at work, from earliest planning to presentation and maintenance.
Was excited to see this book coming to publication. I'm a fan of practical, non-academic approaches to subjects and prefer working from concrete examples to abstract principles (rather than the other way around). I think this is both the most difficult and most needed type of resources that can be put into print. This book handles the task ok; it falls a bit short on practical, concrete, use cases as it alternates between working with hands on datasets and shotgun coverage of principles and techniques at a higher level. I'd have much preferred sticking with single data-sets for longer (say, a couple chapters per data set), but didn't feel cheated out of hands on work.
- Easy access to the datasets via Github; good documentation on where to find others
- Key Takeaways provided at end of chapter are good summaries of overall information provided.
- A good focus on not just data analysis, but the process as a whole; very Agile like, practical, and non-dogmatic.
- Battle tested advice: You can tell some of the advice comes from hard-fought battles - ex: Why not use the sample() function instead of manually creating a sample column? Because with a sample column, you can repeatably sample the same data (e.g. all columns < 2) for repeatable output and for regression testing (avoiding introducing bugs).
- Builds your analyst vocabulary, increasing your all-important google-fu skills. Not knowing what to Google is, imho, the single hardest problem when learning a new set of problems / api's.
- Good use of Appendices for introducing R syntax / installation, rather then stuffing it into one of the early chapters.
- Doesn't stick with data sets long enough. I went to the trouble of setting up a true database to use the first dataset (chapter 2); only to move on to a different data set in the very next chapter (book did eventually return to the data set).
- Feels a bit back and forth at times on whether it wants to be a truly pragmatic, focused work or a principles driven, broadly scoped book (thinking of chapters 5-7 here). Not necessarily a knock depending on what your looking for.
I've ready a few books on getting started in data analysis, R, statistics, etc. This book is solid enough that were I to choose among them, I'd recommend it first. I think if the book focused down on using data-sets for longer stretches, allowing you to learn the data well and apply multiple types of analyses on top of it (especially earlier on), it would be a bit more engaging.
Lastly, its has good coverage of R principles but (per its scope) doesn't get into the nitty gritty. I'd recommend "The Art of R Programming" for that, which would be a good companion to this book (e.g. covers R but not Data Analysis). I've heard R in Action is good as well, though haven't read it. Caveat emptor.
Disclaimer: I received a e-copy of the book from Manning for review.
I've had to hire recent graduates with degrees in machine learning, operations research and even "data science." One of the problems with such people: they don't know anything practical. They probably know the basics of regression and some classification routines, as learned in their coursework. They've probably worked on one or many data science like problems, using machine learning techniques or regression or what not. Many of them have never done a SQL query, or done the dirty business of data cleaning which takes up most of the data scientist's time. They'll always have gaps in their education; maybe they wrote a dissertation on an application of trees or deep learning, and have never used any of the other myriad tools available to the data scientist. None of them have ever done data science for money, and so none of them know about practical things like git or what the process looks like in an industrial setting. It is for these people that this book appears to be written. In an ideal world, all larval data scientists would be taught a course based on this book, or at least go through it themselves. It is also useful to experienced practitioners, as it covers many things, and can be a good practical reference to keep around. The book is ordered as a data science project would be ordered, from start to finish; so, as you proceed down an engagement, reviewing the chapters in order will be helpful.
Ch1 describes the job of the data scientist, the workflow, and the characters you run into on a project.
Ch2 outlines some of the tools used to get at the data, including the authors tool, "SQL Screwdriver." I'd have liked some genuflections at the unix tools used to clean data before it is put anywhere important; sed, awk, tr, sort and cut here, but I'm not sure if there is a graceful way of doing this. Or perhaps I'm the only weirdo who uses these in the ETL process.
Ch3 exploring data; using the various plot utilities in ggplot2 (the graphics library everyone should be using); bar charts, histograms, summary statistics and scatter plots.
Ch4 managing data: what they call "cleaning data" -I call reshaping data (and I use reshape, sometimes anyway; I would have mentioned this, though I got on well without it for years)
Ch5 gets into specifying the problem; is it a classification problem? scoring? recommendation engine? How do I quantify success? This chapter is very helpful in doing this. Of course, problems evolve over time, and customers change their minds, but there are very helpful mappings here which will point you in the right direction There are a few new techniques which should probably be included in future editions of this chapter, depending on how they pan out: I'm impressed with using drop out techniques to prevent overfitting, for example (this is bleeding edge stuff, generally in context of deep learning).
Ch6 Memorization techniques covers Naive Bayes, KNN and decision trees. It would have been nice to have more information on the various kinds of variable selection techniques (particularly important for NB and KNN), but mentioning this will allow the practitioner to go find their own information.
Ch7 Logistic and Linear regression: most would have done these first, but these are actually more complex than memorization techniques, and there are more things to know to keep the practitioner out of trouble. In my opinion, this chapter really shines: everyone who is going to do this for a living has had some exposure to regression models: this chapter makes it practical.
Ch8 Unsupervised methods; covers clustering; heirarchical clustering (one of the most useful tricks you will use in data science), kmeans (it has to be done, though I never found it to be useful) and association rules.
Ch9 Advanced methods: GAMs, SVM, bagging and random forests (the importance measure trick: if you don't know it, pay attention: this is a very good trick). These are the "industrial strength" tools used in industry. I, personally would have stuck GAMs in their own chapter, and mentioned boosting here, but everyone is a little different in their tastes.
Ch10 Documentation and deployment: they use Knitr; I just use vanilla Sweave (I've tried brew, but never took to it). They introduce git here: something I would have done in chapter 1 or 2, but it is a fairly natural place to mention it. They use the Rook tool to deploy HTTP services; I've never used it, though I have used Shiny, which I can recommend. They mention PMML briefly (I've never used it).
The appendix on R is helpful, though it doesn't include the most valuable advice of all for using R in production: you need to maintain a distribution of R and all used packages, as well as a dependency toolchain if the code will be deployed on multiple servers.
on July 17, 2014
I personally wrote a blog post about this book from an engineer's perspective. Here comes the url: http://winston.attlin.com/2014/06/book-review-practical-data-science-with.html
I attach the content here too, so you don't have to go all the way over:
I am not a trained data scientist. I am a software engineer who happens to be interested in data science. Thus I am going to write up this review from that perspective.
A lot of people may tell you along the way that if you are a software engineer, you are half way there to be a data scientist.
However, if you dig into the definition of data science from Wikipedia, data science is the study of the generalizable extraction of knowledge from data, the domain is still heavily focused on the 'study of data' side, the statistician side, like the following quote: "Data scientist is a statistician who lives in San Francisco."
After all, what engineers are good at is not the statistics part, it's the data infrastructure and hacking part. So far as I know, all my engineer friends who tap into data domain are more focused on the Hadoop (and Pig/Hive), Spark (and Shark), or online learning infrastructure building, not model building, evaluation, not that much of making sense of data part. Practically, that's still what statisticians are better at. It's natural for them.
But that's not an excuse for us, the engineers. In order to do our jobs better and because we, the engineers, are born to be hackers in all domains, we would like to learn how to make sense of data too. This book, Practical Data Science with R, is by all means a very good starting point.
In order to take full advantage of this book, there are two things you should at least know: basic knowledge of R and statistics. In the appendixes, the authors do introduce fundamental R and statistics. Nevertheless, I still think having a statistic textbook and R language book like R in Action by your side to refer to is a better idea. You will need them.
As the data science journey begins, the book takes you through making sense of data and different distributions, data massaging, plotting, algorithm choosing, and model evaluations. Although model evaluation is discussed in chapter 5, I personally think it makes more sense to jump to model building (with different algorithms, chapter 6 to 9) first, practice it, and come back to lean how to evaluate your models.
R has everything you need to play with data built-in. Once you are comfortable with it, it's not too hard to explore into python scikit, java mahout, or scala MLlib for building a more scalable production environment.
Once you reach the point to scale up, you are back to engineers sweet spot again. You know how to handle it.
Overall, I really think Practical Data Science with R is a brilliant book to tap into data science domain from an engineer's perspective. I highly recommend it.
on July 24, 2014
Practical Data science with R (PDSR) attempts to guide the reader from software engineering methodology through delivery of the data science solution.
Data science in general terms requires a confusing mix of talents. This book really highlights that by the amount of material that was covered.
To be in this field, you need to have an understanding of; Stats and Linear algebra, Programming, SQL, source control and general computer savvy.
Most importantly you need to have desire, it’s a lot of material.
I found myself fairly critical of its early content, mainly the business and methodology; getting through the first couple of chapters was absolute torture.
I have a computer programming background and have been through a couple of generations of "methodologies". i.e. waterfall, Agile etc. For me this exercise would have been better spent learning R. This brought me to my next challenge, R syntax. I basically took a sabbatical from PDSR and read a book on R(R in Action).
I moved on to the guts of the book after learning a bit of R. Here I found a bunch of great concrete examples with REAL data. The example data sets are fantastic.
The only complaint I have here is; it would have been nice to carry through some of those data examples a little further as opposed to having more examples.
I could see that the authors had really invested themselves with the examples, it was worth it. For me they carried the book. All of the examples are published on Github.
Some of my major criticisms; because the book and reader audience is so diverse introducing obscure technologies like H2 database and "SQLScrewdriver" utilities sort of throws readers into unnecessary tangents. H2 and SQLscrewdriver are edge tools, as the writers pointed out there are more mainstream databases and data loading tools available either open source of free "express versions" all of which have more than adequate data loading tools. Those tools have plenty of “googability” and would require less effort and more results on the readers part (and author for that matter).
Overall I enjoyed the book. It was a very hands on book, not overly academic. I am sure readers with different backgrounds will be critical of the sections of the book where they are more experienced. I think that's ok simply because the book needs to cover so much material, some of it is bound to be review for one audience or another.
Moving forward, I'll use the book as a reference, especially the examples.
on May 4, 2014
This is a great book that fills a gap in the many books available today purporting to be about data science or business analytics, which are either so high-level, the reader finishes with no idea of how to get started, or so focused on algorithms or particular languages that the challenges of how to deliver data science in real organizations are never discussed. Thankfully, this book is a welcome bridge.
As you'd expect from the authors, both experienced practicing data scientists with PhDs from Carnegie Mellon, Part 2 of the book presenting individual modeling techniques is comprehensive and useful. But Parts 1 and 3 that complement the algorithmic detail are also terrific: typical roles in a data science project, and practical guidance on data exploration and visualization in Part I, and on documentation, delivery, and presentation in Part 3; that content is rarely available, illustrated with examples and runnable code, in a single book as it is here.
I used early versions of some of the chapters in a graduate class I taught on Managing Analytics Projects at CMU last fall, and was very happy with the results; I would not hesitate to recommend this to other practitioners or faculty looking for a data science textbook for their classes.
on May 28, 2014
This is the book that I wish was available when I was first learning Data Science. The author presents a thorough and well-organized approach to the mechanics and mastery of data science, which is a conglomeration of statistics, data analysis, and computer science. Detailed explanations from multiple angles tie together the entire process of data science from novice to master. The R statistical programming language is used extensively with clear examples of code and data visualizations. The author leaves no stone unturned while covering topics broad and narrow. I've done a lot of work with both R and data science, but still found quite a bit of good stuff in here. This book should be on the shelf of every data scientist and R user.
on December 21, 2014
This is the most practical R book on enterprise approach to data analytics. Rarely any book that can spare several chapters on preparing data, which in fact build the foundation of a good modeling. However, I would prefer the data cleansing and the big data algorithm on data mining algorithm be expanded further. As a reader, I need additional exploration with other materials rather that only this book.
on September 1, 2014
Successfully practicing data science is not just about fitting statistical models to data, but about solving business problems. This requires practitioners to be able to translate business questions into quantitative goals, communicate technical results, manage models as software artifacts, etc. Describing these needs, and providing an overview of tools and examples for each, is the differentiating angle of this book. Ms. Zumel and Mr. Mount run a successful data-science consulting practice, and thus are uniquely qualified to speak from that perspective. Their advanced analytical background also allowed them to provide a very inviting presentation of the most common modeling methods, with the right amount of detail for an introductory book, the intuition behind them, and compelling examples and sample R code. The formatting of the entire book is super clear; the placement/color of the comments, as well as lots of screen shots, make reading it a smooth experience. I highly recommend this book to beginner and intermediate practitioners.
on July 12, 2015
I have found Practical Data Science with R to be a terrific companion to working on machine learning problem with R.
While the book does have a couple of basic chapters around using R, handling databases, etc, I personally think you need to have some knowledge of and experience with R for the code to make any sense. You also need a grounding in statistics. Some experience with model building of various types will be helpful. So, my advice would be to pick this book up after you have some experience with R and statistics and are struggling to solve real world problems. That said, I do recommend you have a good R reference book and probably a book on theory of machine learning techniques.
The structure of the book makes a lot of sense and, to some degree, it's pretty easy to jump around. For instance, if you have experience building out datasets, cleaning data, and understand the basic concepts of visually examining your data (ideally with some experience with ggplot in R), skip to chapter 5 where the book talks about choosing and evaluating models. If you have some experience with this, then skip ahead further. (If you have little model building experience, don't skip chapter 5.)
The book explains each concept in a very practical way. There's little theory presented. Again, assuming you have some grounding in statistics, this is a very practical approach to learning modeling. Pros and cons are discussed and, importantly, careful explanations of how to evaluate your work is incorporated into each chapter. The R code included is relatively minimal - just enough to explain how to do something (e.g., build a logistic regression model using glm()), but not exhaustive. Remember that there is almost always several ways to accomplish any task in R. This book isn't trying to cover them all; it's just trying to get you pointed in the right direction.
For techniques I'm very familiar with, I use the book to just make sure there isn't a technique or way to evaluate the model that I haven't missed. For techniques I have less experience, with, it's a constant companion.
Again, this is definitely a practical guide, not an academic one. If you are trying to incorporate machine learning techniques into your workstream, I strongly suggest picking this up.