
Ebook Info
- Published: 2016
- Number of pages: 456 pages
- Format: PDF
- File Size: 6.85 MB
- Authors: Avi Pfeffer
Description
SummaryPractical Probabilistic Programming introduces the working programmer to probabilistic programming. In it, you’ll learn how to use the PP paradigm to model application domains and then express those probabilistic models in code. Although PP can seem abstract, in this book you’ll immediately work on practical examples, like using the Figaro language to build a spam filter and applying Bayesian and Markov networks, to diagnose computer system data problems and recover digital images. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.About the TechnologyThe data you accumulate about your customers, products, and website users can help you not only to interpret your past, it can also help you predict your future! Probabilistic programming uses code to draw probabilistic inferences from data. By applying specialized algorithms, your programs assign degrees of probability to conclusions. This means you can forecast future events like sales trends, computer system failures, experimental outcomes, and many other critical concerns. About the BookPractical Probabilistic Programming introduces the working programmer to probabilistic programming. In this book, you’ll immediately work on practical examples like building a spam filter, diagnosing computer system data problems, and recovering digital images. You’ll discover probabilistic inference, where algorithms help make extended predictions about issues like social media usage. Along the way, you’ll learn to use functional-style programming for text analysis, object-oriented models to predict social phenomena like the spread of tweets, and open universe models to gauge real-life social media usage. The book also has chapters on how probabilistic models can help in decision making and modeling of dynamic systems. What’s InsideIntroduction to probabilistic modelingWriting probabilistic programs in FigaroBuilding Bayesian networksPredicting product lifecyclesDecision-making algorithmsAbout the ReaderThis book assumes no prior exposure to probabilistic programming. Knowledge of Scala is helpful. About the AuthorAvi Pfeffer is the principal developer of the Figaro language for probabilistic programming. Table of ContentsPART 1 INTRODUCING PROBABILISTIC PROGRAMMING AND FIGAROProbabilistic programming in a nutshell A quick Figaro tutorial Creating a probabilistic programming application PART 2 WRITING PROBABILISTIC PROGRAMSProbabilistic models and probabilistic programs Modeling dependencies with Bayesian and Markov networks Using Scala and Figaro collections to build up models Object-oriented probabilistic modeling Modeling dynamic systems PART 3 INFERENCEThe three rules of probabilistic inference Factored inference algorithms Sampling algorithms Solving other inference tasks Dynamic reasoning and parameter learning
User’s Reviews
Reviews from Amazon users which were colected at the time this book was published on the website:
⭐Many of us tend to view our world as controllable. Experience tells us that tomorrow will be like today. But this is all an illusion. We live in a world of probabilities. The financial markets are probabilistic, consisting of assets whose returns can be described as random variables. The outcome of many daily events are probabilistic.Programming languages like R and Python give the user access to large libraries of statistical code that aid in building models that deal with random variables. According to Avi Pfeffer’s book Practical Probabilistic Programming, the Figaro language is a language that is designed for probabilistic data and models.A language that provides powerful abstractions for dealing with probabilistic systems is very attractive, since probabilistic models are widely useful. The promise that the Figero language holds out is the reason that I chose to review this book for Amazon’s Vine program.Practical Probabilistic Programming is a promising book. The topic of the book, probabilistic codes, is a complex one. Learning a complex topic requires time and effort.Unfortunately I was not able to make the kind of progress with this book that I had hoped. I was unable to install Figaro successfully on my Fedora 20 Linux system.Figaro runs under the Scala language. The book recommends using sbt, the Scala Built Tool, with Figaro. Although the Linux yum update program informed me that I had installed the latest version of sbt, it hung when I ran the Figaro installation commands listed in the last chapter of the book.I am currently doing most of my development with either Groovy or Java, so I don’t have an active Scala development environment running, although the Scala components are installed on my system. I might have been more successful with Figaro if I was actively developing code in Scala.I also had a hard time gaining the understanding I was hoping for from the book.The initial examples deal with a simple probability model, with fixed probabilities. The early examples show how it is easier to build these models in Figaro than in Java. The next example is of a spam filter to recognize spam based on the probabilities of words that may be included in spam. I found this model difficult to understand. Such a model must analyze word frequencies against a dictionary of possible spam worlds and then decide, perhaps based on conditional probability, that an email may be spam. I did not understand how the example code does this.I also didn’t understand the markoff model and hidden markov model chapters.What I most hoped to understand in reading this book was whether I could use Figaro to build probabilistic models for random variable created from financial time series (e.g., asset returns). My hope was the Figaro might be a way to build a model that could tell you whether a stock or set of stocks should be purchased, based on a set of market or economic factors. Unfortunately, I was unable to understand whether Figaro would be a good language for building models of this type. In fact, it was not clear to me how to create variables that are initialized from actual data (and perhaps derive probabilities from this data).With Figaro I wondered what the similarities were between a Figaro program and a Monte Carlo simulation. Perhaps none, but the point here is that I still don’t understand the answer.If I were to spend more time with working Figaro software I believe that I could understand the areas that I missed when reading the book for this review. The “take away” from this review is that this is a book that will require a significant investment in time. This is not a book where you will learn much without working through each chapter, perhaps several times. You may need other references for some of the material, like Bayesian inference and Markoff models.Ideally I would like to understand whether Figaro is a useful tool for the kind of probabilistic codes I am interested in before investing lots of time. I didn’t get this understanding from the opening chapters of the book, so time invested in Figaro would be based on the hope that I would find it useful.Figaro is new and still feels a bit like a graduate student project. From looking at the on-line references it looks like this book may be the best reference available. If you already have a background in probabilistic programming this book may be better for you than it was for me.
⭐In Engineering school there was a course called Numerical Analysis that covered a lot of this material, however the main focus of it was different. In the NA course the focus was on showing where the computer would make the errors, and how quickly the error could add up. Even at a small percentage of a larger calculation because of the number of iterations it could cause a large correction error. This book is more like a statistics course, which I was never interested in taking, probability is the focus here, and they look at many advanced data structures for that purpose. They suggest and explain the use of an open source object oriented program with data structures created just of the purpose of making probabilistic calculations. I’m not the biggest fan of books touting software to achieve their goals, but here, if you want to avoid creating all the objects yourself, this is a good way to use a developed library of tools.The book is designed and was probably used or is used as a textbook. There are exercises and problems at the end of the chapters to practice with. They go into a lot of detail on various types of this kind of programming it’s not just about calculating odds of dice or some such things, but decision making trees and other data structures that give rise to AI programs and other learning systems. I can even see some degree of use in games programming to predict actions of the player to make a better computer opponent.The program they use called Figero, when I heard it I thought maybe they named it that because it “figures” as in “figures lie and liars figure”. It turns out that is not the case, the authors were fans of the “Marriage of Figero” play, so they named it after that, funny huh, how things get named. Anyway, this is not the easiest book to read, if you don’t like mathematics, pass this on by. If you have a good engineering, math, or programming background this is a good book to sharpen your programming skills in the art of probability.For those who don’t know the difference, probability, often misused in profiling people is one of two branches of logic it falling on the inductive side. If you want to prove something or be relatively sure you first start with deductive logic which is absolute. For instance If you say all bituminous coal is black in color and that’s accepted as true, and you say I have some bituminous coal, therefore the color of it is black. If the conditions are absolutely true than the conclusion will be as well Inductive logic which employs probability recognized that there a really few absolutes in this world so chooses to prove by how likely it is based on a predictive model, or inductive evidence. That is I can say in the Japanese population given a sample of 100,000 women, 99,850 have natural black hair (note: I just made up the stats here). I can not say that if a woman is Japanese she has black hair to a highly probable degree. The statement is not as absolute as the deductive one, but it will be true a high calculated percentage of the time.DNA evidence is often used this way with the predictions being much stronger instead of 150 chances out of 100000 being wrong, you may have only one chance out of a billion that two people would have the same profile. Much stronger evidence if used in court or to predict some attribute. DNA again you might be able to see a certain combination results in red hair 999999 our of one million times. You could therefore safely predict someone would have red hair. Likewise, and here some more interesting uses come in you could predict who would tend to develop a certain disease or condition like Cataracts or type 2 diabetes. This book does a nice job exploring a lot of the methods to support those predictions.
⭐Sehr zufrieden, Schell Artikel geschickt,
⭐
Keywords
Free Download Practical Probabilistic Programming 1st Edition in PDF format
Practical Probabilistic Programming 1st Edition PDF Free Download
Download Practical Probabilistic Programming 1st Edition 2016 PDF Free
Practical Probabilistic Programming 1st Edition 2016 PDF Free Download
Download Practical Probabilistic Programming 1st Edition PDF
Free Download Ebook Practical Probabilistic Programming 1st Edition