Quickstart
Statistical Process Control (SPC) is a powerful tool for monitoring and controlling processes. In this guide, we will walk you through the steps to set up SPC for your model using Scouter.
Creating a Drift Profile¶
To detect model drift, we first need to create a drift profile using your training data, but before doing that we will define a custom SPC alert rule.
from scouter.alert import SlackDispatchConfig, SpcAlertConfig, SpcAlertRule
from scouter.client import ScouterClient
from scouter.drift import Drifter, SpcDriftConfig
from scouter.types import CommonCrons
from sklearn import datasets
if __name__ == "__main__":
# Prepare data
X, y = datasets.load_wine(return_X_y=True, as_frame=True)
# Drifter class to create drift profiles
scouter = Drifter()
# Specify the alert configuration
alert_config = SpcAlertConfig(
features_to_monitor=["malic_acid", "total_phenols", "color_intensity"], # Defaults to all features if left empty
schedule=CommonCrons.EveryDay, # Run drift detection job once daily
dispatch_config=SlackDispatchConfig(channel="test_channel"), # Notify my team Slack channel if drift is detected
rule=SpcAlertRule(rule="16 32 4 8 2 4 1 1"), # See the spc theory doc for additional info
)
# Set up SPC drift config with a custom sample size
spc_config = SpcDriftConfig(name="wine_model", space="wine_model", version="0.0.1", alert_config=alert_config, sample_size=1000)
# Create the drift profile
spc_profile = scouter.create_drift_profile(X, spc_config)
# Register your profile with scouter server
client = ScouterClient()
# set_active must be set to True if you want scouter server to run the drift detection job
client.register_profile(profile=spc_profile, set_active=True)
Note
Your drift profile is now registered with the Scouter
server and is ready to be used. To run real-time monitoring, refer to the Scouter Queues section for more information on how to set up your queues and send data to the Scouter server in real-time.