After training a model we need a measure to check its performance, their are many scoring metric on which we can score the model"s performance. Out of many metric we will be using Average precision to measure our models performance. We will also be using cross validation to test the model on multiple sets of data.
So this is the recipe on How we can check model"s Average precision score using cross validation in Python.
from sklearn.model_selection import cross_val_score from sklearn.tree import DecisionTreeClassifier from sklearn.datasets import make_classification from sklearn import datasets
We have imported various modules from differnt libraries such as cross_val_score, DecisionTreeClassifier, datasets and make_classification.
We have used an inbuilt cancer dataset. We have stored data in X and target in y.
cancer = datasets.load_breast_cancer()
X = cancer.data
y = cancer.target
We are using DecisionTreeClassifier as a model to train the data. We are training the model with cross_validation which will train the data on different training set and it will calculate average precision for all the test train split.
We are printing the average precision for all the splits in cross validation. We have passed model, data, target and cv an parameters. cv signifies the number of splits we want while performing cross validation. We are also printing mean and standard deviation of average precision.
dtree = DecisionTreeClassifier()
print(cross_val_score(dtree, X, y, scoring="average_precision", cv = 7))
mean_score = cross_val_score(dtree, X, y, scoring="average_precision", cv = 7).mean()
std_score = cross_val_score(dtree, X, y, scoring="average_precision", cv = 7).std()
So the output comes as
[0.92239851 0.90536365 0.90846709 0.97351446 0.91296365 0.95900582 0.91565723] 0.9261532204977229 0.02232220312858589