This practical guide provides more than 200 self-contained recipes to help you solve Machine Learning challenges you may encounter in your work. If you're comfortable with Python and its libraries, including pandas and scikit-learn, you'll be able to address specific problems all the way from loading data to training models and leveraging neural networks.
Each recipe in this updated edition includes code that you can copy, paste, and run with a toy dataset to ensure it works. From there, you can adapt these recipes according to your use case or application. Recipes include a discussion that explains the solution and provides meaningful context. Go beyond theory and concepts by learning the nuts and bolts you need to construct working Machine Learning applications.
NumPy is a foundational tool of the Python machine learning stack. NumPy allows for efficient operations on the data structures often used in machine learning: vectors, matrices, and tensors. While NumPy is not the focus of this book, it will show up frequently throughout the following chapters. This chapter covers the most common NumPy operations we are likely to run into while working on Machine Learning workflows.
You'll find recipes for
Vectors, matrices, and arrays
Working with data from CSV, JSON, SQL, databases, cloud storage, and other sources
Handling numerical and categorical data, text, images, and dates and times
Dimensionality reduction using feature extraction or feature selection
Model evaluation and selection
Linear and logical regression, trees and forests, and k-nearest neighbors
Support vector machines (SVM), naive Bayes, clustering, and tree-based models
Saving and loading trained models from multiple frameworks
Author(s): Kyle Gallatin and Chris Albon
Edition: 2
Publisher: O'Reilly Media, Inc.
Year: 2023
Language: English
Pages: 286
1.0. Introduction
1.1. Creating a Vector
1.2. Creating a Matrix
1.3. Creating a Sparse Matrix
1.4. Pre-allocating Numpy Arrays
1.5. Selecting Elements
1.6. Describing a Matrix
1.7. Applying Functions Over Each Element
1.8. Finding the Maximum and Minimum Values
1.9. Calculating the Average, Variance, and Standard Deviation
1.10. Reshaping Arrays
1.11. Transposing a Vector or Matrix
1.12. Flattening a Matrix
1.13. Finding the Rank of a Matrix
1.14. Getting the Diagonal of a Matrix
1.15. Calculating the Trace of a Matrix
1.16. Calculating Dot Products
1.17. Adding and Subtracting Matrices
1.18. Multiplying Matrices
1.19. Inverting a Matrix
1.20. Generating Random Values
2. Loading Data
2.0. Introduction
2.1. Loading a Sample Dataset
2.2. Creating a Simulated Dataset
2.3. Loading a CSV File
2.4. Loading an Excel File
2.5. Loading a JSON File
2.6. Loading a parquet file
2.7. Loading a avro file
2.8. Loading a TFRecord file
2.9. Querying a SQLite Database
2.10. Querying a Remote SQL Database
2.11. Loading Data from a Google Sheet
2.12. Loading Data from an S3 Bucket
2.13. Loading Unstructured Data
3. Data Wrangling
3.0. Introduction
3.1. Creating a Data Frame
3.2. Getting Information about the Data
3.3. Slicing DataFrames
3.4. Selecting Rows Based on Conditionals
3.5. Sorting Values
3.6. Replacing Values
3.7. Renaming Columns
3.8. Finding the Minimum, Maximum, Sum, Average, and Count
3.9. Finding Unique Values
3.10. Handling Missing Values
3.11. Deleting a Column
3.12. Deleting a Row
3.13. Dropping Duplicate Rows
3.14. Grouping Rows by Values
3.15. Grouping Rows by Time
3.16. Aggregating Operations and Statistics
3.17. Looping Over a Column
3.18. Applying a Function Over All Elements in a Column
3.19. Applying a Function to Groups
3.20. Concatenating DataFrames
3.21. Merging DataFrames
4. Handling Numerical Data
4.0. Introduction
4.1. Rescaling a Feature
4.2. Standardizing a Feature
4.3. Normalizing Observations
4.4. Generating Polynomial and Interaction Features
4.5. Transforming Features
4.6. Detecting Outliers
4.7. Handling Outliers
4.8. Discretizating Features
4.9. Grouping Observations Using Clustering
4.10. Deleting Observations with Missing Values
4.11. Imputing Missing Values
5. Handling Categorical Data
5.0. Introduction
5.1. Encoding Nominal Categorical Features
5.2. Encoding Ordinal Categorical Features
5.3. Encoding Dictionaries of Features
5.4. Imputing Missing Class Values
5.5. Handling Imbalanced Classes
6. Handling Text
6.0. Introduction
6.1. Cleaning Text
6.2. Parsing and Cleaning HTML
6.3. Removing Punctuation
6.4. Tokenizing Text
6.5. Removing Stop Words
6.6. Stemming Words
6.7. Tagging Parts of Speech
6.8. Performing Named-Entity Recognition
6.9. Encoding Text as a Bag of Words
6.10. Weighting Word Importance
6.11. Using Text Vectors to Calculate Text Similarity in a Search Query
6.12. Using a Sentiment Analysis Classifier
7. Handling Dates and Times
7.0. Introduction
7.1. Converting Strings to Dates
7.2. Handling Time Zones
7.3. Selecting Dates and Times
7.4. Breaking Up Date Data into Multiple Features
7.5. Calculating the Difference Between Dates
7.6. Encoding Days of the Week
7.7. Creating a Lagged Feature
7.8. Using Rolling Time Windows
7.9. Handling Missing Data in Time Series
8. Handling Images
8.0. Introduction
8.1. Loading Images
8.2. Saving Images
8.3. Resizing Images
8.4. Cropping Images
8.5. Blurring Images
8.6. Sharpening Images
8.7. Enhancing Contrast
8.8. Isolating Colors
8.9. Binarizing Images
8.10. Removing Backgrounds
8.11. Detecting Edges
8.12. Detecting Corners
8.13. Creating Features for Machine Learning
8.14. Encoding Convolutions as a Feature
8.15. Encoding Color Histograms as Features
8.16. Using Pretrained Embeddings as a Feature
8.17. Detecting Objects with OpenCV
8.18. Classifying Images with Pytorch
9. Dimensionality Reduction Using Feature Extraction
9.0. Introduction
9.1. Reducing Features Using Principal Components
9.2. Reducing Features When Data Is Linearly Inseparable
9.3. Reducing Features by Maximizing Class Separability
9.4. Reducing Features Using Matrix Factorization
9.5. Reducing Features on Sparse Data
10. Dimensionality Reduction Using Feature Selection
10.0. Introduction
10.1. Thresholding Numerical Feature Variance
10.2. Thresholding Binary Feature Variance
10.3. Handling Highly Correlated Features
10.4. Removing Irrelevant Features for Classification
10.5. Recursively Eliminating Features
11. Model Evaluation
11.0. Introduction
11.1. Cross-Validating Models
11.2. Creating a Baseline Regression Model
11.3. Creating a Baseline Classification Model
11.4. Evaluating Binary Classifier Predictions
11.5. Evaluating Binary Classifier Thresholds
11.6. Evaluating Multiclass Classifier Predictions
11.7. Visualizing a Classifier’s Performance
11.8. Evaluating Regression Models
11.9. Evaluating Clustering Models
11.10. Creating a Custom Evaluation Metric
11.11. Visualizing the Effect of Training Set Size
11.12. Creating a Text Report of Evaluation Metrics
11.13. Visualizing the Effect of Hyperparameter Values
12. Model Selection
12.0. Introduction
12.1. Selecting Best Models Using Exhaustive Search
12.2. Selecting Best Models Using Randomized Search
12.3. Selecting Best Models from Multiple Learning Algorithms
12.4. Selecting Best Models When Preprocessing
12.5. Speeding Up Model Selection with Parallelization
12.6. Speeding Up Model Selection Using Algorithm-Specific Methods
12.7. Evaluating Performance After Model Selection
About the Authors