This textbook presents fundamental machine learning concepts in an easy to understand manner by providing practical advice, using straightforward examples, and offering engaging discussions of relevant applications. The main topics include Bayesian classifiers, nearest-neighbor classifiers, linear and polynomial classifiers, decision trees, neural networks, and support vector machines. Later chapters show how to combine these simple tools by way of ´´boosting,´´ how to exploit them in more complicated domains, and how to deal with diverse advanced practical issues. One chapter is dedicated to the popular genetic algorithms. This revised edition contains three entirely new chapters on critical topics regarding the pragmatic application of machine learning in industry. The chapters examine multi-label domains, unsupervised learning and its use in deep learning, and logical approaches to induction. Numerous chapters have been expanded, and the presentation of the material has been enhanced. The book contains many new exercises, numerous solved examples, thought-provoking experiments, and computer assignments for independent work.
Learn how to manipulate functions and expressions to modify how the R language interprets itself. This book is an introduction to metaprogramming in the R language, so you will write programs to manipulate other programs. Metaprogramming in R shows you how to treat code as data that you can generate, analyze, or modify. R is a very high-level language where all operations are functions and all functions are data that can be manipulated. This book shows you how to leverage R´s natural flexibility in how function calls and expressions are evaluated, to create small domain-specific languages to extend R within the R language itself. What You´ll Learn Find out about the anatomy of a function in R Look inside a function call Work with R expressions and environments Manipulate expressions in R Use substitutions Who This Book Is For Those with at least some experience with R and certainly for those with experience in other programming languages.
Learn best practices for building bots by focusing on the technological implementation and UX in this practical book. You will cover key topics such as setting up a development environment for creating chatbots for multiple channels (Facebook Messenger, Skype, and KiK); building a chatbot (design to implementation); integrating to IFTT (If This Then That) and IoT (Internet of Things); carrying out analytics and metrics for chatbots; and most importantly monetizing models and business sense for chatbots. Build Better Chatbots is easy to follow with code snippets provided in the book and complete code open sourced and available to download. With Facebook opening up its Messenger platform for developers, followed by Microsoft opening up Skype for development, a new channel has emerged for brands to acquire, engage, and service customers on chat with chatbots. What You Will Learn Work with the bot development life cycle Master bot UX design Integrate into the bot ecosystem Maximize the business and monetization potential for bots Who This Book Is For Developers, programmers, and hobbyists who have basic programming knowledge. The book can be used by existing chatbot developers to gain a better understanding of analytics and the business side of bots.
Since the 70s, the C preprocessor is still widely used in practice in a number of projects to tailor systems to different platforms and application scenarios. In academia, researchers have criticized its lack of separation of concerns, its proneness to introduce subtle errors, and its obfuscation of the source code. To better understand the problems of using the C preprocessor, we conducted 40 interviews and a survey among 202 developers. We found that developers deal with three common problems in practice: configuration-related bugs, combinatorial testing, and code comprehension. To better deal with these problems, this book presents strategies to detect bugs and bad smells in preprocessor-based systems based on variability-aware analysis and sampling. This work presents useful findings for C developers during their development tasks, contributing to minimize the chances of introducing configuration-related bugs and bad smells, improve code comprehension, and guide developers to perform combinatorial testing.
Numerical Python by Robert Johansson shows you how to leverage the numerical and mathematical modules in Python and its Standard Library as well as popular open source numerical Python packages like NumPy, FiPy, matplotlib and more to numerically compute solutions and mathematically model applications in a number of areas like big data, cloud computing, financial engineering, business management and more. After reading and using this book, you´ll get some takeaway case study examples of applications that can be found in areas like business management, big data/cloud computing, financial engineering (i.e., options trading investment alternatives), and even games. Up until very recently, Python was mostly regarded as just a web scripting language. Well, computational scientists and engineers have recently discovered the flexibility and power of Python to do more. Big data analytics and cloud computing programmers are seeing Python´s immense use. Financial engineers are also now employing Python in their work. Python seems to be evolving as a language that can even rival C++, Fortran, and Pascal/Delphi for numerical and mathematical computations.
Logic Programming is the name given to a distinctive style of programming, very different from that of conventional programming languages such as C++ and Java. By far the most widely used Logic Programming language is Prolog. Prolog is a good choice for developing complex applications, especially in the field of Artificial Intelligence. Logic Programming with Prolog does not assume that the reader is an experienced programmer or has a background in Mathematics, Logic or Artificial Intelligence. It starts from scratch and aims to arrive at the point where quite powerful programs can be written in the language. It is intended both as a textbook for an introductory course and as a self-study book. On completion readers will know enough to use Prolog in their own research or practical projects. Each chapter has self-assessment exercises so that readers may check their own progress. A glossary of the technical terms used completes the book. This second edition has been revised to be fully compatible with SWI-Prolog, a popular multi-platform public domain implementation of the language. Additional chapters have been added covering the use of Prolog to analyse English sentences and to illustrate how Prolog can be used to implement applications of an ´Artificial Intelligence´ kind. Max Bramer is Emeritus Professor of Information Technology at the University of Portsmouth, England. He has taught Prolog to undergraduate computer science students and used Prolog in his own work for many years.
Combining coverage of XSLT 2.0 and XPath 2.0 into one book, this authoritative reference provides equal weight to the powerful new features of XSLT 2.0 and XPath 2.0 and the established capabilities of the 1.0 versions. Author Michael Kay has created his own implementation of XSLT 2.0 (Saxon), and he puts his unique knowledge to work in this detailed reference to the elements of the XSLT 2.0 language and the fundamentals of XPath, complete with syntax, practical usage advice, and examples. The book begins by teaching the essential concepts behind the language, knowledge you need if you are going to write good code rather than just working code. You will discover how XSLT and XPath differ from other languages, and how you use them to create effective web-based applications. The central chapters provide meticulous coverage of the language features of XSLT 2.0 and XPath 2.0. You will return to this reference whenever you encounter new programming challenges. You finish with detailed case studies highlighting real applications to give you insights you would otherwise gain only from months of practical experience. What you will learn from this book * All the XSLT elements you can use in a stylesheet and the detailed rules for the syntax and semantics of each * How Path expressions enable you to navigate around the structure of an XML document * How you can improve your stylesheets by taking advantage of the XML Schema definitions of input and output documents * How to take advantage of vendor extensions without losing portability * Techniques for taking advantage of XSLT to write real applications Who this book is for This book is for experienced programmers who are looking to become proficient with XSLT 2.0. Previous experience with XSLT or XPath is not necessary. However, a working knowledge of XML, HTML, and web architecture is beneficial. Wrox Programmer´s References are designed to give the experienced developer straight facts on a new technology, without hype or unnecessary explanations. They deliver hard information with plenty of practical examples to help you apply new tools to your development projects today.
Service-oriented computing has become one of the predominant factors in IT research and development efforts over the last few years. In spite of several standardization efforts that advanced from research labs into industrial-strength technologies and tools, there is still much human effort required in the process of finding and executing Web services. Here, Dieter Fensel and his team lay the foundation for understanding the Semantic Web Services infrastructure, aimed at eliminating human intervention and thus allowing for seamless integration of information systems. They focus on the currently most advanced SWS infrastructure, namely SESA and related work such as the Web Services Execution Environment (WSMX) activities and the Semantic Execution Environment (OASIS SEE TC) standardization effort. Their book is divided into four parts: Part I provides an introduction to the field and its history, covering basic Web technologies and the state of research and standardization in the Semantic Web field. Part II presents the SESA architecture. The authors detail its building blocks and show how they are consolidated into a coherent software architecture that can be used as a blueprint for implementation. Part III gives more insight into middleware services, describing the necessary conceptual functionality that is imposed on the architecture through the basic principles. Each such functionality is realized using a number of so-called middleware services. Finally, Part IV shows how the SESA architecture can be applied to real-world scenarios, and provides an overview of compatible and related systems. The book targets professionals as well as academic and industrial researchers working on various aspects of semantic integration of distributed information systems. They will learn how to apply the Semantic Web Services infrastructure to automate and semi-automate tasks, by using existing integration technologies. In addition, the book is also suitable for advanced graduate students enrolled in courses covering knowledge management, the Semantic Web, or integration of information systems, as it will educate them about basic technologies for Semantic Web Services and general issues related to integration of information systems.
This practically-oriented textbook introduces the fundamentals of designing digital surveillance systems powered by intelligent computing techniques. The text offers comprehensive coverage of each aspect of the system, from camera calibration and data capture, to the secure transmission of surveillance data, in addition to the detection and recognition of individual biometric features and objects. The coverage concludes with the development of a complete system for the automated observation of the full lifecycle of a surveillance event, enhanced by the use of artificial intelligence and supercomputing technology. This updated third edition presents an expanded focus on human behavior analysis and privacy preservation, as well as deep learning methods. Topics and features: contains review questions and exercises in every chapter, together with a glossary; describes the essentials of implementing an intelligent surveillance system and analyzing surveillance data, including a range of biometric characteristics; examines the importance of network security and digital forensics in the communication of surveillance data, as well as issues of issues of privacy and ethics; discusses the Viola-Jones object detection method, and the HOG algorithm for pedestrian and human behavior recognition; reviews the use of artificial intelligence for automated monitoring of surveillance events, and decision-making approaches to determine the need for human intervention; presents a case study on a system that triggers an alarm when a vehicle fails to stop at a red light, and identifies the vehicle´s license plate number; investigates the use of cutting-edge supercomputing technologies for digital surveillance, such as FPGA, GPU and parallel computing. This concise and accessible work serves as a classroom-tested textbook for graduate-level courses on intelligent surveillance. Researchers and engineers interested in entering this area will also find the book suitable as a helpful self-study reference.
Write maintainable, extensible, and durable software with modern C++. This book is a must for every developer, software architect, or team leader who is interested in good C++ code, and thus also wants to save development costs. If you want to teach yourself about writing clean C++, Clean C++ is exactly what you need. It is written to help C++ developers of all skill levels and shows by example how to write understandable, flexible, maintainable, and efficient C++ code. Even if you are a seasoned C++ developer, there are nuggets and data points in this book that you will find useful in your work. If you don´t take care with your code, you can produce a large, messy, and unmaintainable beast in any programming language. However, C++ projects in particular are prone to be messy and tend to slip into bad habits. Lots of C++ code that is written today looks as if it was written in the 1980s. It seems that C++ developers have been forg otten by those who preach Software Craftsmanship and Clean Code principles. The Web is full of bad, but apparently very fast and highly optimized C++ code examples, with cruel syntax that completely ignores elementary principles of good design and well-written code. This book will explain how to avoid this scenario and how to get the most out of your C++ code. You´ll find your coding becomes more efficient and, importantly, more fun. What You´ll Learn Gain sound principles and rules for clean coding in C++ Carry out test driven development (TDD) Discover C++ design patterns and idioms Apply these design patterns Who This Book Is For Any C++ developer and software engineer with an interest in producing better code.