Chapter 11. Model Evaluation
11.0 Introduction
In this chapter we will examine strategies for evaluating the quality of models created through our learning algorithms. It might appear strange to discuss model evaluation before discussing how to create them, but there is a method to our madness. Models are only as useful as the quality of their predictions, and thus fundamentally our goal is not to create models (which is easy) but to create high-quality models (which is hard). Therefore, before we explore the myriad learning algorithms, we first set up how we can evaluate the models they produce.
11.1 Cross-Validating Models
Problem
You want to evaluate how well your model will work in the real world.
Solution
Create a pipeline that preprocesses the data, trains the model, and then evaluates it using cross-validation:
# Load libraries
from
sklearn
import
datasets
from
sklearn
import
metrics
from
sklearn.model_selection
import
KFold
,
cross_val_score
from
sklearn.pipeline
import
make_pipeline
from
sklearn.linear_model
import
LogisticRegression
from
sklearn.preprocessing
import
StandardScaler
# Load digits dataset
digits
=
datasets
.
load_digits
()
# Create features matrix
features
=
digits
.
data
# Create target vector
target
=
digits
.
target
# Create standardizer
standardizer
=
StandardScaler
()
# Create logistic regression object
logit
=
LogisticRegression
()
# Create a pipeline that standardizes, then runs logistic regression
pipeline
=
make_pipeline
(
standardizer
,
logit
)
# Create ...
Get Machine Learning with Python Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.