Plot response 2D
by: Meera Machado
(Feyn version 3.1.0 or newer)
The plot_response_2d
function enables the visualisation of the Model
response as we vary two of its features. For a Model
with more then two inputs, we should assign fixed values for the remaining input features. The Model
response will then be a function of the non-fixed (variable) features.
Example
import feyn
import pandas as pd
from sklearn.datasets import load_breast_cancer
# Load into a pandas dataframe
breast_cancer = load_breast_cancer(as_frame=True)
data = breast_cancer.frame
# Train/test split
train, test = feyn.tools.split(data, ratio=[0.6, 0.4], stratify='target', random_state=666)
# Instantiate a QLattice
ql = feyn.QLattice(random_seed=666)
# Sample and fit models
models = ql.auto_run(
data=train,
output_name='target',
kind='classification'
)
best = models[0]
Plotting the 2D response
By fixing the values of worst texture
, the function plot_response_2d
plots the Model
response with varying worst concave points
and worst area
.
# Fixing the input features we're not interested in displaying
best.plot_response_2d(
data=train,
fixed={
'worst texture': train['worst texture'].median()
}
)
We can clearly see the boundary that separates the positive class from the negative class. Lastly, large markers are the samples whose values correspond to those in fixed
.
Saving the plot
You can save the plot using the filename
parameter. The plot is saved in the current working directory unless another path specifed.
best.plot_response_2d(
data=train,
fixed={
'worst texture': train['worst texture'].median(),
},
filename="feyn-plot"
)
If the extension is not specified then it is saved as a png file.
plot_response_2d
Parameters of data
The data to be analysed. It should be a pandas.DataFrame
.
fixed
A dictionary where the keys are the names of the input features to be fixed and the values are the numbers/categories the features should be fixed to. The value corresponding to each key should be a scalar.
Feyn
Location in This function can also be found in the feyn.plots
module.
from feyn.plots import plot_model_response_2d
plot_model_response_2d(
model=best,
data=train,
fixed={
'worst texture': train['worst texture'].median()
}
)