Book Image

Machine Learning with Swift

By : Jojo Moolayil, Alexander Sosnovshchenko, Oleksandr Baiev
Book Image

Machine Learning with Swift

By: Jojo Moolayil, Alexander Sosnovshchenko, Oleksandr Baiev

Overview of this book

Machine learning as a field promises to bring increased intelligence to the software by helping us learn and analyse information efficiently and discover certain patterns that humans cannot. This book will be your guide as you embark on an exciting journey in machine learning using the popular Swift language. We’ll start with machine learning basics in the first part of the book to develop a lasting intuition about fundamental machine learning concepts. We explore various supervised and unsupervised statistical learning techniques and how to implement them in Swift, while the third section walks you through deep learning techniques with the help of typical real-world cases. In the last section, we will dive into some hard core topics such as model compression, GPU acceleration and provide some recommendations to avoid common mistakes during machine learning application development. By the end of the book, you'll be able to develop intelligent applications written in Swift that can learn for themselves.
Table of Contents (18 chapters)
Title Page
Packt Upsell
Contributors
Preface
Index

Predicting user intents


The problem: Apple's default Clock app, if opened from the app switcher menu (the one you see when swiping from the bottom of the screen upward), always shows the Timer tab. I personally use this app mostly for one reason every day—to set an alarm clock, which is in a different tab. By knowing the day of the week and time of the day, it's easy to make the app smarter (and less annoying) by opening the proper Alarm tab when needed and default tab otherwise. For this, we will need to collect historical records on what time we usually set an alarm on different days.

Let's formulate the task more precisely:

  • Input data: The day, hour, and minute when the user had opened the application
  • Expected output: The probability that the user wants to set up an alarm

The task is of binary classification, which makes logistic regression a perfect candidate for the solution.

Handling dates

The straightforward way to transform dates and time into numerical features is by replacing them with...