Diese kompakte Einführung in die Theoretische Informatik stellt die wichtigsten Modelle für zentrale Probleme der Informatik vor. Dabei werden u.a. folgende Fragestellungen behandelt: Welche Probleme sind algorithmisch lösbar? (Theorie der Berechenbarkeit und Entscheidbarkeit) Wie schwierig ist es algorithmische Probleme zu lösen? (Theorie der Berechnungskomplexität, NP-Theorie) Wie sind informationsverarbeitende Systeme prinzipiell aufgebaut? (Theorie der endlichen Automaten) Welche Strukturen besitzen Programmiersprachen? (Theorie der formalen Sprachen) In der Erarbeitung dieser Themen wird der Abstraktionsprozeß von den realen Gegenständen der Informatik zu den in der Theoretischen Infromatik etabliertern Modellen, wie z.B. Random-Access-Maschinen, Turingmaschinen und endliche Automaten, nachvollzogen und umgekehrt verdeutlicht, was diese Modelle aufgrund der über sie gewonnenen Erkenntnisse für die Praxis leisten können.
Maschinelles Lernen ist ein interdisziplinäres Fach, das die Bereiche Informatik, Mathematik und das jeweilige Anwendungsgebiet zusammenführt. In diesem Buch werden alle drei Teilgebiete gleichermaßen berücksichtigt: - Es wird demonstriert, wie man die Algorithmen des maschinellen Lernens verwendet und der Hintergrund geliefert, um zu verstehen, wie und warum diese Algorithmen funktionieren. - Ebenfalls enthalten ist ein kompakter Kickstart zur Verwendung von Python 3 (in Python programmieren) und seinem Ökosystem im Umfeld des maschinellen Lernens. - Die Algorithmen werden zum besseren Verständnis und praktischen Einsatz anschaulich mittels NumPy und SciPy umgesetzt. - Für die Support Vector Machines und das Deep Learning wird auf scikit-learn bzw. Keras zurückgegriffen. - Es werden verschiedene Methoden des überwachten, unüberwachten und bestärkenden Lernens besprochen, u.a. Random Forest, DBSCAN und Q-Learning. Vorausgesetzt werden Kenntnisse in objektorientierter Programmierung und Basiswissen der Hochschulmathematik. Die nötige Mathematik wird eingebettet im Buch präsentiert und die Theorie direkt in Python-Code umgesetzt. Das Buch ist ideal für Studierende der Informatik, Mechatronik, Elektrotechnik und der angewandten Statistik/Data Science sowie für Ingenieure und Informatiker in der Praxis.
There are many surprising connections between the theory of numbers, which is one of the oldest branches of mathematics, and computing and information theory. Number theory has important applications in computer organization and security, coding and cryptography, random number generation, hash functions, and graphics. Conversely, number theorists use computers in factoring large integers, determining primes, testing conjectures, and solving other problems. This book takes the reader from elementary number theory, via algorithmic number theory, to applied number theory in computer science. It introduces basic concepts, results, and methods, and discusses their applications in the design of hardware and software, cryptography, and security. It is aimed at undergraduates in computing and information technology, but will also be valuable to mathematics students interested in applications. In this 2nd edition full proofs of many theorems are added and some corrections are made.
Successful software depends as much on scrupulous testing as it does on solid architecture or elegant code. But testing is not a routine process, it´s a constant exploration of methods and an evolution of good ideas. Beautiful Testing offers 23 essays from 27 leading testers and developers that illustrate the qualities and techniques that make testing an art. Through personal anecdotes, you´ll learn how each of these professionals developed beautiful ways of testing a wide range of products valuable knowledge that you can apply to your own projects. Here´s a sample of what you´ll find inside: - Microsoft´s Alan Page knows a lot about large-scale test automation, and shares some of his secrets on how to make it beautiful - Scott Barber explains why performance testing needs to be a collaborative process, rather than simply an exercise in measuring speed - Karen Johnson describes how her professional experience intersected her personal life while testing medical software - Rex Black reveals how satisfying stakeholders for 25 years is a beautiful thing - Mathematician John D. Cook applies a classic definition of beauty, based on complexity and unity, to testing random number generators All author royalties will be donated to the Nothing But Nets campaign to save lives by preventing malaria, a disease that kills millions of children in Africa each year. This book includes contributions from: - Adam Goucher - Linda Wilkinson - Rex Black - Martin Schröder - Clint Talbert - Scott Barber - Kamran Khan - Emily Chen - Brian Nitz - Remko Tronçon - Alan Page - Neal Norwitz - Michelle Levesque - Jeffrey Yasskin - John D. Cook - Murali Nandigama - Karen N. Johnson - Chris McMahon - Jennitta Andrea - Lisa Crispin - Matt Heusser - Andreas Zeller - David Schuler - Tomasz Kojm - Adam Christian - Tim Riley - Isaac Clerencia Successful software depends as much on scrupulous testing as it does on solid architecture or elegant code. But testing is not a routine process, it´s a constant exploration of methods and an evolution of good ideas. Beautiful Testing offers 23 essays from 27 leading testers and developers that illustrate the qualities and techniques that make testing an art. Through personal anecdotes, you´ll learn how each of these professionals developed beautiful ways of testing a wide range of products -- valuable knowledge that you can apply to your own projects. Here´s a sample of what you´ll find inside: Microsoft´s Alan Page knows a lot about large-scale test automation, and shares some of his secrets on how to make it beautiful Scott Barber explains why performance testing needs to be a collaborative process, rather than simply an exercise in measuring speed Karen Johnson describes how her professional experience intersected her personal life while testing medical software Rex Black reveals how satisfying stakeholders for 25 years is a beautiful thing Mathematician John D. Cook applies a classic definition of beauty, based on complexity and unity, to testing random number generators All author royalties will be donated to the Nothing But Nets campaign to save lives by preventing malaria, a disease that kills millions of children in Africa each year. This book includes contributions from: Adam Goucher Linda Wilkinson Rex Black Martin Schr
Explore fundamental to advanced Python 3 topics in six steps, all designed to make you a worthy practitioner. This updated version´s approach is based on the ´´six degrees of separation´´ theory, which states that everyone and everything is a maximum of six steps away and presents each topic in two parts: theoretical concepts and practical implementation using suitable Python 3 packages. You´ll start with the fundamentals of Python 3 programming language, machine learning history, evolution, and the system development frameworks. Key data mining/analysis concepts, such as exploratory analysis, feature dimension reduction, regressions, time series forecasting and their efficient implementation in Scikit-learn are covered as well. You´ll also learn commonly used model diagnostic and tuning techniques. These include optimal probability cutoff point for class creation, variance, bias, bagging, boosting, ensemble voting, grid search, random search, Bayesian optimization, and the noise reduction technique for IoT data. Finally, you´ll review advanced text mining techniques, recommender systems, neural networks, deep learning, reinforcement learning techniques and their implementation. All the code presented in the book will be available in the form of iPython notebooks to enable you to try out these examples and extend them to your advantage. What You´ll Learn Understand machine learning development and frameworks Assess model diagnosis and tuning in machine learning Examine text mining, natuarl language processing (NLP), and recommender systems Review reinforcement learning and CNN Who This Book Is For Python developers, data engineers, and machine learning engineers looking to expand their knowledge or career into machine learning area.
With more than 200 practical recipes, this book helps you perform data analysis with R quickly and efficiently. The R language provides everything you need to do statistical work, but its structure can be difficult to master. This collection of concise, task-oriented recipes makes you productive with R immediately, with solutions ranging from basic tasks to input and output, general statistics, graphics, and linear regression. Each recipe addresses a specific problem, with a discussion that explains the solution and offers insight into how it works. If you?re a beginner, R Cookbook will help get you started. If you?re an experienced data programmer, it will jog your memory and expand your horizons. You?ll get the job done faster and learn more about R in the process. * Create vectors, handle variables, and perform other basic functions * Input and output data * Tackle data structures such as matrices, lists, factors, and data frames * Work with probability, probability distributions, and random variables * Calculate statistics and confidence intervals, and perform statistical tests * Create a variety of graphic displays * Build statistical models with linear regressions and analysis of variance (ANOVA) * Explore advanced statistical techniques, such as finding clusters in your data ´´Wonderfully readable, R Cookbook serves not only as a solutions manual of sorts, but as a truly enjoyable way to explore the R language?one practical example at a time.´´?Jeffrey Ryan, software consultant and R package author
Build machine learning models, natural language processing applications, and recommender systems with PySpark to solve various business challenges. This book starts with the fundamentals of Spark and its evolution and then covers the entire spectrum of traditional machine learning algorithms along with natural language processing and recommender systems using PySpark. Machine Learning with PySpark shows you how to build supervised machine learning models such as linear regression, logistic regression, decision trees, and random forest. You´ll also see unsupervised machine learning models such as K-means and hierarchical clustering. A major portion of the book focuses on feature engineering to create useful features with PySpark to train the machine learning models. The natural language processing section covers text processing, text mining, and embedding for classification. After reading this book, you will understand how to use PySpark´s machine learning library to build and train various machine learning models. Additionally you´ll become comfortable with related PySpark components, such as data ingestion, data processing, and data analysis, that you can use to develop data-driven intelligent applications. What You Will Learn Build a spectrum of supervised and unsupervised machine learning algorithms Implement machine learning algorithms with Spark MLlib libraries Develop a recommender system with Spark MLlib libraries Handle issues related to feature engineering, class balance, bias and variance, and cross validation for building an optimal fit model Who This Book Is For Data science and machine learning professionals.
The application of geometric algebra to the engineering sciences is a young, active subject of research. The promise of this field is that the mathematical structure of geometric algebra together with its descriptive power will result in intuitive and more robust algorithms. This book examines all aspects essential for a successful application of geometric algebra: the theoretical foundations, the representation of geometric constraints, and the numerical estimation from uncertain data. Formally, the book consists of two parts: theoretical foundations and applications. The first part includes chapters on random variables in geometric algebra, linear estimation methods that incorporate the uncertainty of algebraic elements, and the representation of geometry in Euclidean, projective, conformal and conic space. The second part is dedicated to applications of geometric algebra, which include uncertain geometry and transformations, a generalized camera model, and pose estimation. Graduate students, scientists, researchers and practitioners will benefit from this book. The examples given in the text are mostly recent research results, so practitioners can see how to apply geometric algebra to real tasks, while researchers note starting points for future investigations. Students will profit from the detailed introduction to geometric algebra, while the text is supported by the author´s visualization software, CLUCalc, freely available online, and a website that includes downloadable exercises, slides and tutorials.
This accessible text/reference provides a general introduction to probabilistic graphical models (PGMs) from an engineering perspective. The book covers the fundamentals for each of the main classes of PGMs, including representation, inference and learning principles, and reviews real-world applications for each type of model. These applications are drawn from a broad range of disciplines, highlighting the many uses of Bayesian classifiers, hidden Markov models, Bayesian networks, dynamic and temporal Bayesian networks, Markov random fields, influence diagrams, and Markov decision processes. Features: presents a unified framework encompassing all of the main classes of PGMs; describes the practical application of the different techniques; examines the latest developments in the field, covering multidimensional Bayesian classifiers, relational graphical models and causal models; provides exercises, suggestions for further reading, and ideas for research or programming projects at the end of each chapter.