# Load libraries
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

"""
Explanation: Title: Recall
Slug: recall
Summary: How to evaluate a Python machine learning using recall.  
Date: 2017-09-15 12:00
Category: Machine Learning
Tags: Model Evaluation
Authors: Chris Albon
Recall is the proportion of every positive observation that is truly positive. Recall measures the model's ability to identify a observation of the positive class. Models with high recall are optimistic in that they have a low-bar for predicting that an observation in the positive class.
$$\displaystyle \mathrm {Recall}=\frac {TP}{TP + FN}$$
Preliminaries
End of explanation
"""


# Generate features matrix and target vector
X, y = make_classification(n_samples = 10000,
                           n_features = 3,
                           n_informative = 3,
                           n_redundant = 0,
                           n_classes = 2,
                           random_state = 1)

"""
Explanation: Generate Features And Target Data
End of explanation
"""


# Create logistic regression
logit = LogisticRegression()

"""
Explanation: Create Logistic Regression
End of explanation
"""


# Cross-validate model using precision
cross_val_score(logit, X, y, scoring="recall")

"""
Explanation: Cross-Validate Model Using Recall
End of explanation
"""


