# FAQ and Common Issues

In case of issues with Simple ML for Sheets, please check out the 
[known issues](#known-issues) section of this FAQ.

If your issue is not listed, the best way to find help is through the
[Simple ML for Sheets User group](https://groups.google.com/g/simple-ml-for-sheets-users)

If you found a bug, please [report it](https://forms.gle/YEa1QQsoS6xkBNYB9).
In last resort, [contact us directly](about).

## About Simple ML for Sheets

### Q: What is Simple ML for Sheets?

**Simple ML for Sheets** is an Addon for Google Sheets that allows to use
machine learning without being an ML expert, without coding, and without sharing
data with third parties.

### Q: Who developed Simple ML?

Simple ML is developed by the
[TensorFlow Decision Forests](https://www.tensorflow.org/decision_forests) team
in [Google Zurich](https://careers.google.com/locations/zurich/).

### Q: Where does my data go when using Simple ML?

Data and models are in your Google Sheets and in your Google Drive. All the
operations (including model training operations) are executed on your computer
in your web browser. That's why your data is not exported to any third-party
server.

### Q: Where are my ML models stored?

Models are saved on your Google Drive in the folder **simple_ml_for_sheets**.

### Q: What technology is used by the Simple ML?

Simple ML uses decision forest models (e.g., Random Forests, Gradient Boosted
Trees) as those models are particularly well suited for tabular datasets. For
more information about Decision Forests, we recommend
[our Decision Forests class on MLCC](https://developers.google.com/machine-learning/decision-forests).

Under the hood, Simple ML is powered by
[Yggdrasil Decision Forests](https://github.com/google/yggdrasil-decision-forests),
a fast, flexible and powerful library for state-of-the-art Decision Forest
algorithms. To learn more about the library, check out the
[YDF documentation](https://ydf.readthedocs.io).

The forecasting is done under the hood by ensembling two
[ARIMA](https://en.wikipedia.org/wiki/Autoregressive_integrated_moving_average)
and two [ETS](https://www.openforecast.org/adam/ses-and-ets.html) models.

### Q: Can I export my model in Colab and use it in Python?

Yes. After you trained a model, select the "Export model" task, select the
"Colab" option, and click on "Export". You will see a snippet of Python code to
copy/paste into Colab to run your model.

The resulting model is both a TensorFlow Decision Forests modeland an Yggdrasil
Decision Forests model. It is compatible with TensorFlow Serving and the
[Yggdrasil Serving APIs](https://ydf.readthedocs.io/en/latest/serving_apis.html).

### Q: I have a problem and the documentation does not help me. What should I do?

The best way to find help is through the
[Simple ML for Sheets User group](https://groups.google.com/g/simple-ml-for-sheets-users)

If you found a bug, please [report it](https://forms.gle/YEa1QQsoS6xkBNYB9).
In last resort, [contact us directly](about).

### Q: I found a bug. Where do I report it?

To report a bug, you can use
[the report form](https://forms.gle/YEa1QQsoS6xkBNYB9)

### Q: Can I participate in this project?

Yes :). The Simple ML for Google Sheets Addon is a new project, and we are
looking for new ideas and new people.

If you have an algorithm that you want to see added to the addon (maybe this is
an algorithm developed by your team), [contact us](about).

### Q: How is Simple ML able to predict the missing values?

Simple ML trains a model on the non-missing values, and use this model to
predict the missing ones.

### Q: How is Simple ML able to detect abnormal values?

Simple ML trains multiple models to predict the existing values using
cross-validation. The predictions of those models are then compared to the
actual values. If the predicted and actual values differ, the existing value is
tagged as abnormal.

The abnormality is not a yes/no question. Instead, the abnormality is as a
probability between 0% (normal) and 100% (abnormal).

### Q: How do I interpret the abnormality score?

The computation of the abnormal score depends on the task of the model (e.g.
classification, regression). However, in all cases, it is between 0 and 1. With
0=completely normal, and 1=completely abnormal.

Check [the Spot abnormal values documentation](task_spot_abnormal_values) for
more details.

### Q: How is Simple ML able to forecast future values?

Simple ML trains a forecasting model on the past values and identifies
seasonality patterns and trends in the data. It also uses calendar data (e.g.
holidays) to improve its forecast. Simple ML then applies this model to the 
new data.

### Q: Can I export my forecasting model?

Exporting forecasting models is not supported at this time.

### Q: What is the relation between Simple ML and TensorFlow?

Simple ML is based on the Yggdrasil Decision Forests library that is also used
to power TensorFlow Decision Forests. That's why the models trained on Simple ML
are compatible with TensorFlow and Tensorflow Decision Forests.

### Q: What permissions does Simple ML require and why?

Simple ML requires the following permissions:

-   *See, edit, create and delete all of your Google Drive files*: Simple ML
    exports models to the user's Google Drive.

-   *See, edit, create, and delete all your Google Sheets spreadsheets*: Simple
    ML can add new columns to your sheets (for example, to report predictions).

-   *Display and run third-party web content prompts and sidebars inside Google
    applications*: Simple ML is a sidebar within Google Sheets.

### Q: If my data has some filter applied to it, which data does Simple ML use for training? The filtered one or the full data?

Simple ML will use all the data. If you only want to use the filtered view, copy
it to another tab and run the task on this new tab.

## Known issues

### After installing Simple ML for Sheets, I do not see the "Start" button in the extensions menu.

This issue is often fixed by reloading the page.

### Every task fails with "The task failed. Fix the problem and run it again.". The Source columns continuously shows a loading bar.

This issue can happen if logged in with two Google accounts into Chrome
and / or Google Sheets. We are actively working on a resolution. As a
workaround, please try logging in with just one account when using Simple ML for
Sheets.

### The column I want to autocomplete is composed of 0's and 1's. When predicting missing values, the results are numbers between 0 and 1.

By default, the type of problem (e.g., classification, regression) is detected
automatically from the label. If your labels look like numbers (e.g., 0 1) it
will be considered as _regression_ task. You could change the label to "label_0" and "label_1" instead. This will change the task to classification and autocomplete with label_0 and label_1. To do this change, you can apply a formula like "=if(J1=0, "label_0", "label_1")"

### Forecasting fails even though my dates are always the same day of the month, e.g. the 28th of each month

Since the lengths of the months are variable, Simple ML for Sheets can sometimes
struggle to detect if intervals really are monthly. If the event to forcast is
monthly, prefer to set the first day of the month in the date column.
