---
title: MLActivityClassifier
framework: Create ML
role: symbol
role_heading: Structure
platforms: [macOS 10.15+]
path: createml/mlactivityclassifier
---

# MLActivityClassifier

A model you train to classify motion sensor data.

## Declaration

```swift
struct MLActivityClassifier
```

## Overview

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:) evaluation(on:) 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:)](createml/mlactivityclassifier/train(trainingdata:featurecolumns:labelcolumn:recordingfilecolumn:parameters:sessionparameters:).md)
- [makeTrainingSession(trainingData:featureColumns:labelColumn:recordingFileColumn:parameters:sessionParameters:)](createml/mlactivityclassifier/maketrainingsession(trainingdata:featurecolumns:labelcolumn:recordingfilecolumn:parameters:sessionparameters:).md)
- [resume(_:)](createml/mlactivityclassifier/resume(_:).md)
- [restoreTrainingSession(sessionParameters:)](createml/mlactivityclassifier/restoretrainingsession(sessionparameters:).md)

### Creating an activity classifier from a checkpoint

- [init(checkpoint:)](createml/mlactivityclassifier/init(checkpoint:).md)

### Training an activity classifier synchronously

- [init(trainingData:featureColumns:labelColumn:recordingFileColumn:parameters:)](createml/mlactivityclassifier/init(trainingdata:featurecolumns:labelcolumn:recordingfilecolumn:parameters:).md)

### Evaluating an activity classifier

- [evaluation(on:featureColumns:labelColumn:recordingFileColumn:)](createml/mlactivityclassifier/evaluation(on:featurecolumns:labelcolumn:recordingfilecolumn:).md)
- [trainingMetrics](createml/mlactivityclassifier/trainingmetrics.md)
- [validationMetrics](createml/mlactivityclassifier/validationmetrics.md)
- [evaluation(on:featureColumns:labelColumn:recordingFileColumn:)](createml/mlactivityclassifier/evaluation(on:featurecolumns:labelcolumn:recordingfilecolumn:).md)

### Testing an activity classifier

- [predictions(from:perWindowPrediction:)](createml/mlactivityclassifier/predictions(from:perwindowprediction:).md)

### Saving an activity classifier

- [write(to:metadata:)](createml/mlactivityclassifier/write(to:metadata:).md)
- [write(toFile:metadata:)](createml/mlactivityclassifier/write(tofile:metadata:).md)

### Inspecting an activity classifier model

- [model](createml/mlactivityclassifier/model.md)
- [modelParameters](createml/mlactivityclassifier/modelparameters-swift.property.md)
- [featureColumns](createml/mlactivityclassifier/featurecolumns.md)
- [labelColumn](createml/mlactivityclassifier/labelcolumn.md)
- [recordingFileColumn](createml/mlactivityclassifier/recordingfilecolumn.md)

### Describing an activity classifier

- [description](createml/mlactivityclassifier/description.md)
- [debugDescription](createml/mlactivityclassifier/debugdescription.md)
- [playgroundDescription](createml/mlactivityclassifier/playgrounddescription.md)

### Supporting types

- [MLActivityClassifier.DataSource](createml/mlactivityclassifier/datasource.md)
- [MLActivityClassifier.ModelParameters](createml/mlactivityclassifier/modelparameters-swift.struct.md)

### Default Implementations

- [CustomDebugStringConvertible Implementations](createml/mlactivityclassifier/customdebugstringconvertible-implementations.md)
- [CustomPlaygroundDisplayConvertible Implementations](createml/mlactivityclassifier/customplaygrounddisplayconvertible-implementations.md)
- [CustomStringConvertible Implementations](createml/mlactivityclassifier/customstringconvertible-implementations.md)

## Relationships

### Conforms To

- [Copyable](swift/copyable.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomPlaygroundDisplayConvertible](swift/customplaygrounddisplayconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Escapable](swift/escapable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
