<jupyter_start><jupyter_text>1. Create Dummy Data for Classification2. Classify Dummy Data3. Breakdown of Metrics Included in Classification Report4. List of Other Classification Metrics Available in sklearn.metrics  1. Create Dummy Data for Classification<jupyter_code>import seaborn as sns 
import matplotlib.pyplot as plt
%matplotlib inline

from sklearn.datasets import make_blobs

data, labels = make_blobs(n_samples=100, n_features=2, centers=2,cluster_std=4,random_state=2)

plt.scatter(data[:,0], data[:,1], c = labels, cmap='coolwarm');<jupyter_output><empty_output><jupyter_text>2. Classify Data<jupyter_code>#Import LinearSVC
from sklearn.svm import LinearSVC

#Create instance of Support Vector Classifier
svc = LinearSVC()

#Fit estimator to 70% of the data
svc.fit(data[:70], labels[:70])

#Predict final 30%
y_pred = svc.predict(data[70:])

#Establish true y values
y_true = labels[70:]<jupyter_output><empty_output><jupyter_text>3. Breakdown of Metrics Included in Classification Report  Precision ScoreTP - True PositivesFP - False PositivesPrecision - Accuracy of positive predictions.Precision = TP/(TP + FP)<jupyter_code>from sklearn.metrics import precision_score

print("Precision score: {}".format(precision_score(y_true,y_pred)))<jupyter_output>Precision score: 0.9285714285714286<jupyter_text>Recall ScoreFN - False NegativesRecall (aka sensitivity or true positive rate): Fraction of positives That were correctly identified.Recall = TP/(TP+FN)<jupyter_code>from sklearn.metrics import recall_score

print("Recall score: {}".format(recall_score(y_true,y_pred)))<jupyter_output>Recall score: 0.8666666666666667<jupyter_text>F1 ScoreF1 Score (aka F-Score or F-Measure) - A helpful metric for comparing two classifiers. F1 Score takes into account precision and the recall. It is created by finding the the harmonic mean of precision and recall. F1 = 2 x (precision x recall)/(precision + recall)<jupyter_code>from sklearn.metrics import f1_score

print("F1 Score: {}".format(f1_score(y_true,y_pred)))<jupyter_output>F1 Score: 0.896551724137931<jupyter_text>Classification ReportReport which includes Precision, Recall and F1-Score.<jupyter_code>from sklearn.metrics import classification_report

print(classification_report(y_true,y_pred))<jupyter_output>precision    recall  f1-score   support

          0       0.88      0.93      0.90        15
          1       0.93      0.87      0.90        15

avg / total       0.90      0.90      0.90        30<jupyter_text>Confusion MatrixConfusion matrix allows you to look at the particular misclassified examples yourself and perform any further calculations as desired.<jupyter_code>from sklearn.metrics import confusion_matrix
import pandas as pd

confusion_df = pd.DataFrame(confusion_matrix(y_true,y_pred),
             columns=["Predicted Class " + str(class_name) for class_name in [0,1]],
             index = ["Class " + str(class_name) for class_name in [0,1]])

print(confusion_df)<jupyter_output>Predicted Class 0  Predicted Class 1
Class 0                 14                  1
Class 1                  2                 13
{'fraction_non_alphanumeric': 0.08365508365508366, 'fraction_numerical': 0.0444015444015444, 'mean_word_length': 4.561717352415027, 'pattern_counts': {'":': 0, '<': 24, '<?xml version=': 0, '>': 24, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 1, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '7', 'dir': 'jupyter-structured-clean-dedup', 'id': '59335', 'license': 'MIT', 'n_tokens_mistral': 1068, 'n_tokens_neox': 966, 'n_words': 276, 'path': 'content/sklearn/Metrics - Classification Report Breakdown (Precision, Recall, F1).ipynb', 'repo_name': 'jlawman/jlawman.github.io', 'size': '3108'}