{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"Άσκηση 04 Βελτιστοποίηση kNN και SVC στο Iris με την Optuna.ipynb","provenance":[],"authorship_tag":"ABX9TyMUKViU1JYMbdsdbGGHAAh8"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"markdown","metadata":{"id":"v6cFZvQRGgrm"},"source":["# Άσκηση 04 Βελτιστοποίηση kNN και SVC στο Iris με την Optuna\n","\n","![](https://res.cloudinary.com/practicaldev/image/fetch/s--XpO3kV9Z--/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/i/r8wwzb70006nq7hy24ct.jpeg)\n","\n","\n","Χρησιμοποιώντας την βιβλιοθήκη Optuna βρείτε τις βέλτιστες υπερπαραμέτρους για τον kNN και τα SVM στο Iris dataset.\n"]},{"cell_type":"markdown","metadata":{"id":"o5e0O72xM3k9"},"source":["## Optuna tutorial: *Optimize Your Optimization*\n","\n","![](https://optuna.org/assets/img/optuna-logo.png) \n","\n","\n","Μελετήστε πρώτα τα τέσσερα παραδείγματα κάτω από το [\"Key Features\"](https://optuna.readthedocs.io/en/stable/tutorial/index.html#key-features) της τεκμηρίωσης της Optuna."]},{"cell_type":"markdown","metadata":{"id":"3gulCuSaMeQl"},"source":["\n","## Βήματα\n","\n","1. Ορίστε μια συνάρτηση - στόχο \"objective\" η οποία θα επιστρέφει το μέσο τετραγωνικό σφάλμα στο dataset για καθένα από τους ταξινομητές.\n","2. Εντός της \"objective\" χρησιμοποιήστε τις μεθόδους trial.suggest_categorical, trial.suggest_int, και trial.suggest_loguniform γιά όλες τις επιλογές που πρέπει να γίνουν. Hint: ξεκινήστε με trial_suggest_categorical για το είδος του ταξινομητή, ώστε να \"χωρέσουν\" και οι δύο σε ένα function.\n","3. Βελτιστοποιήστε κάνοντας 100 δοκιμές ως εξής: \n","```python\n","import optuna\n","# depending on the definition of objective\n","# we can create study object with either minimize or maximize\n","study = optuna.create_study(direction='minimize')\n","# start tuning for the hyper-parameters\n","study.optimize(objective, n_trials=100)\n","```\n"]},{"cell_type":"markdown","metadata":{"id":"b8KaATEKMZ4r"},"source":["\n","## Υπερπαράμετροι, τιμές και εύρη τιμών προς εξερεύνηση\n","\n","[kNN](https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html)\n","\n","* n_neighbors: 3 με 11\n","* algorithm: \"ball_tree\", και \"kd_tree\"\n","* leaf_size: 1 με 50\n","* metric: \"euclidean\", \"manhattan\", \"chebyshev\", και \"minkowski\"\n","\n","\n","[SVC](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html)\n","\n","* C: 1e-10 με 1\n","* kernel: 'poly', 'rbf', 'sigmoid'\n","* degree: 1 με 50\n","* gamma: 0.001 με 10000\n","\n"]},{"cell_type":"markdown","metadata":{"id":"eJUl50T3hFIh"},"source":["## Επιλογή μοντέλου\n","\n","* Ποιο είναι το καλύτερο μοντέλαο kNN;\n","* Ποιο είναι το καλύτερο μοντέλο SVM;\n","* Ποιο έίναι το καλύτερο μοντέλο συνολικά;"]}]}