From a5ac3a857e5575f858d53dc415bd6fdbe6ff62aa Mon Sep 17 00:00:00 2001 From: rasbt Date: Mon, 2 Dec 2019 10:10:55 -0600 Subject: [PATCH] add readme --- .other/cover_1.jpg | Bin 0 -> 30193 bytes LICENSE.txt | 21 +++++++++++++ README.md | 75 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 .other/cover_1.jpg create mode 100644 LICENSE.txt create mode 100644 README.md diff --git a/.other/cover_1.jpg b/.other/cover_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6213c11706d19b15f4e1016e516ab5a182549730 GIT binary patch literal 30193 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 ZN)Mei0DB+JH;dmE=0?8p&-yd{KL8hI1jzsZ literal 0 HcmV?d00001 diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 00000000..f7df084f --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2019 SEBASTIAN RASCHKA (mail@sebastianraschka.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 00000000..9e0d0dd3 --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +## Python Machine Learning (3rd Ed.) Code Repository + +![Python 3.6](https://img.shields.io/badge/Python-3.7-blue.svg) +![License](https://img.shields.io/badge/Code%20License-MIT-blue.svg) + +Code repositories for the 1st and 2nd edition are available at + +- https://github.com/rasbt/python-machine-learning-book and +- https://github.com/rasbt/python-machine-learning-book-2nd-edition + +**Python Machine Learning, 3rd Ed.** + +to be published December 9th, 2019 + +Paperback: 748 pages +Publisher: Packt Publishing +Language: English + +ISBN-10: 1789955750 +ISBN-13: 978-1789955750 +Kindle ASIN: B07VBLX2W7 + +[](https://www.amazon.com/Python-Machine-Learning-scikit-learn-TensorFlow/dp/1789955750/) + + +## Links + +- [Amazon Page](https://www.amazon.com/Python-Machine-Learning-scikit-learn-TensorFlow/dp/1789955750/) +- [Packt Page](https://www.packtpub.com/data/python-machine-learning-third-edition) + + + +## Table of Contents and Code Notebooks + +**Helpful installation and setup instructions can be found in the [README.md file of Chapter 1](ch01/README.md)** + +**Please note that these are just the code examples accompanying the book, which we uploaded for your convenience; be aware that these notebooks may not be useful without the formulae and descriptive text.** + + +1. Machine Learning - Giving Computers the Ability to Learn from Data [[open dir](ch01)] +2. Training Machine Learning Algorithms for Classification [[open dir](ch02)] +3. A Tour of Machine Learning Classifiers Using Scikit-Learn [[open dir](ch03)] +4. Building Good Training Sets – Data Pre-Processing [[open dir](ch04)] +5. Compressing Data via Dimensionality Reduction [[open dir](ch05)] +6. Learning Best Practices for Model Evaluation and Hyperparameter Optimization [[open dir](ch06)] +7. Combining Different Models for Ensemble Learning [[open dir](ch07)] +8. Applying Machine Learning to Sentiment Analysis [[open dir](ch08)] +9. Embedding a Machine Learning Model into a Web Application [[open dir](ch09)] +10. Predicting Continuous Target Variables with Regression Analysis [[open dir](ch10)] +11. Working with Unlabeled Data – Clustering Analysis [[open dir](ch11)] +12. Implementing a Multi-layer Artificial Neural Network from Scratch [[open dir](ch12)] +13. Parallelizing Neural Network Training with TensorFlow [[open dir](ch13)] +14. Going Deeper: The Mechanics of TensorFlow [[open dir](ch14)] +15. Classifying Images with Deep Convolutional Neural Networks [[open dir](ch15)] +16. Modeling Sequential Data Using Recurrent Neural Networks [[open dir](ch16)] +17. Generative Adversarial Networks for Synthesizing New Data [[open dir](ch17)] +18. Reinforcement Learning for Decision Making in Complex Environments [[open dir](ch18)] + + +--- + +
+
+ +Raschka, Sebastian, and Vahid Mirjalili. *Python Machine Learning, 3rd Ed*. Packt Publishing, 2019. + + @book{RaschkaMirjalili2019, + address = {Birmingham, UK}, + author = {Raschka, Sebastian and Mirjalili, Vahid}, + edition = {3}, + isbn = {978-1789955750}, + publisher = {Packt Publishing}, + title = {{Python Machine Learning, 3rd Ed.}}, + year = {2019} + }