<!--
{
  "availability" : [
    "macOS: 10.15.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CreateML",
  "identifier" : "/documentation/CreateML/MLActivityClassifier",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Create ML"
    ],
    "preciseIdentifier" : "s:8CreateML20MLActivityClassifierV"
  },
  "title" : "MLActivityClassifier"
}
-->

# MLActivityClassifier

A model you train to classify motion sensor data.

```
struct MLActivityClassifier
```

## Overview

An activity classifier is a machine-learning model that your app can use to categorize user *activities*, based on
the motion of the user’s device.

You create an activity classifier by gathering a training dataset of a device’s motion sensors, such as the
accelerometer and gyroscope on an Apple Watch. For example, you can create an activity classifier that recognizes a
person waving, shaking hands, or throwing a ball by gathering the motion-sensor data from people performing those
activities.

Evaluate your trained activity classifier by calling
[`evaluation(on:featureColumns:labelColumn:recordingFileColumn:)`](/documentation/CreateML/MLActivityClassifier/evaluation(on:featureColumns:labelColumn:recordingFileColumn:)-1ib5p)
[`evaluation(on:)`](/documentation/CreateML/MLSoundClassifier/evaluation(on:)-7fmux) with a dataset that’s completely distinct from the training and
validation datasets. Inspect the metrics the method returns and decide whether the activity classifier performs
with enough accuracy. For example, you can assess how often the activity classifier confuses a person waving for
shaking hands, or vice versa. If the classifier makes too many mistakes, you can train another classifier with
different parameters, or with a training dataset that has more or better motion-sensor examples.

When you’re satisfied with an activity classifier, save it as a Core ML model file, and add it to your Xcode
project. Use it to predict the user’s activity based on the motion-sensor data your app captures from the user’s
device.

## Topics

### Training an activity classifier asynchronously

[`train(trainingData:featureColumns:labelColumn:recordingFileColumn:parameters:sessionParameters:)`](/documentation/CreateML/MLActivityClassifier/train(trainingData:featureColumns:labelColumn:recordingFileColumn:parameters:sessionParameters:))

Begins an asynchronous activity classifier training session with a
training dataset represented by a data source.

[`makeTrainingSession(trainingData:featureColumns:labelColumn:recordingFileColumn:parameters:sessionParameters:)`](/documentation/CreateML/MLActivityClassifier/makeTrainingSession(trainingData:featureColumns:labelColumn:recordingFileColumn:parameters:sessionParameters:))

Creates an asynchronous training session for an activity classifier.

[`resume(_:)`](/documentation/CreateML/MLActivityClassifier/resume(_:))

Begins or continues an asynchronous activity classifier training session.

[`restoreTrainingSession(sessionParameters:)`](/documentation/CreateML/MLActivityClassifier/restoreTrainingSession(sessionParameters:))

Creates an asynchronous training session for an activity classifier by restoring an existing training session’s
state from its parameters.

### Creating an activity classifier from a checkpoint

[`init(checkpoint:)`](/documentation/CreateML/MLActivityClassifier/init(checkpoint:))

Creates an activity classifier from a training session checkpoint.

### Training an activity classifier synchronously

[`init(trainingData:featureColumns:labelColumn:recordingFileColumn:parameters:)`](/documentation/CreateML/MLActivityClassifier/init(trainingData:featureColumns:labelColumn:recordingFileColumn:parameters:))

Creates an activity classifier with a training dataset represented by a data source.

### Evaluating an activity classifier

[`evaluation(on:featureColumns:labelColumn:recordingFileColumn:)`](/documentation/CreateML/MLActivityClassifier/evaluation(on:featureColumns:labelColumn:recordingFileColumn:))

Generates metrics describing the activity classifier’s performance on
labeled activities in a data source.

[`trainingMetrics`](/documentation/CreateML/MLActivityClassifier/trainingMetrics)

Measurements of the activity classifier’s performance on the training dataset.

[`validationMetrics`](/documentation/CreateML/MLActivityClassifier/validationMetrics)

Measurements of the activity classifier’s performance on the validation dataset.

[`evaluation(on:featureColumns:labelColumn:recordingFileColumn:)`](/documentation/CreateML/MLActivityClassifier/evaluation(on:featureColumns:labelColumn:recordingFileColumn:))

Generates metrics describing the activity classifier’s performance on
labeled activities in a data source.

### Testing an activity classifier

[`predictions(from:perWindowPrediction:)`](/documentation/CreateML/MLActivityClassifier/predictions(from:perWindowPrediction:))

Predict activities from new observations.

### Saving an activity classifier

[`write(to:metadata:)`](/documentation/CreateML/MLActivityClassifier/write(to:metadata:))

Exports the activity classifier as a Core ML model file.

[`write(toFile:metadata:)`](/documentation/CreateML/MLActivityClassifier/write(toFile:metadata:))

Exports the activity classifier as a Core ML model file.

### Inspecting an activity classifier model

[`model`](/documentation/CreateML/MLActivityClassifier/model)

The underlying Core ML model of the activity classifier stored in memory.

[`modelParameters`](/documentation/CreateML/MLActivityClassifier/modelParameters-swift.property)

The model configuration parameters the activity classifier used during its training session.

[`featureColumns`](/documentation/CreateML/MLActivityClassifier/featureColumns)

The names of the feature columns the activity classifier used during its training session.

[`labelColumn`](/documentation/CreateML/MLActivityClassifier/labelColumn)

The name of the label column the activity classifier used during its training session.

[`recordingFileColumn`](/documentation/CreateML/MLActivityClassifier/recordingFileColumn)

The name of the column that contains the data files the activity classifier used during its training session.

### Describing an activity classifier

[`description`](/documentation/CreateML/MLActivityClassifier/description)

A text representation of the activity classifier.

[`debugDescription`](/documentation/CreateML/MLActivityClassifier/debugDescription)

A text representation of the activity classifier that’s suitable for output during debugging.

[`playgroundDescription`](/documentation/CreateML/MLActivityClassifier/playgroundDescription)

A description of the activity classifier shown in a playground.

### Supporting types

[`MLActivityClassifier.DataSource`](/documentation/CreateML/MLActivityClassifier/DataSource)

A data source for an activity classifier.

[`MLActivityClassifier.ModelParameters`](/documentation/CreateML/MLActivityClassifier/ModelParameters-swift.struct)

Model training parameters that direct the training process for an
activity classifier model.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)