# AutoFL: Towards AutoML in a Federated Learning Context
## 4 Design and Implementation of the AutoFL Framework
### Methodology
#### 4.2.4 Classifier  
Our framework currently supports automated federated learning for binary and multi-class classification tasks with classical machine learning as well as deep learning methods, but there is currently no support yet for automated and federated regression or clustering tasks. As our framework leverages the scikit-learn [39] library for classical machine learning, we first selected a subset of classifier methods that can be applied in a federated setting, and we grouped them into two categories:  
* _Coefficient-based models_: There are ML models that can easily be represented by a set of coefficients that can be incrementally learned. Example models include logistic regression and neural networks. For example, the sklearn.linear_model.LogisticRegression implementation of scikit-learn (as explained on the documentation website [[https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html)]([https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html)), accessed on 4 May 2023) offers access to the internal representation via the attributes coef_ and intercept_. Additionally, we only consider models whose attributes can both be read and directly written to, such that a new aggregated model can be computed by averaging the coefficients. For certain models, such as the linear SVC classifier, it is possible to read these attributes but not to modify them. Models with these kinds of implementation restrictions will not be considered by our framework.
* _Ensemble models_: These types of models typically combine a multitude of baseline models or estimators. Example models of this type include the random forest, AdaBoost, and XGBoost classifiers. For example, a random forest classifier uses decision tree models as their underlying estimators. These decision trees can be accessed via the estimators_attribute (as explained at [[https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html)]([https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html)), accessed on 4 May 2023). A trivial but perhaps not the best way to learn an aggregated random forest classifier in a federation is for each client to locally train a random forest classifier, and the coordination server to construct a new random forest based on the estimators of the clients' models. This way, there is no need to average model updates or to improve the aggregated model in multiple rounds. However, there might be better ways to improve the accuracy of the aggregated model at the expense of a less resource-efficient federated training approach.