LearnLLM/week4_scikit_learn.ipynb

99 lines
4.0 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "# Использование обучающего примера",
"id": "f35a7e78162fe88b"
},
{
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2026-05-02T17:42:08.755269800Z",
"start_time": "2026-05-02T17:42:08.578031400Z"
}
},
"cell_type": "code",
"source": [
"from sklearn.datasets import load_iris\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.neural_network import MLPClassifier\n",
"from sklearn.metrics import classification_report\n",
"\n",
"# Загрузка и разбиение данных\n",
"X, y = load_iris(return_X_y=True)\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n",
"\n",
"# Модель MLP — многослойный перцептрон\n",
"clf = MLPClassifier(hidden_layer_sizes=(10,), activation='relu', max_iter=500)\n",
"clf.fit(X_train, y_train)\n",
"\n",
"# Отчёт о точности\n",
"print(classification_report(y_test, clf.predict(X_test)))"
],
"id": "6b3a8f9a35d69b96",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 1.00 1.00 1.00 10\n",
" 1 0.83 1.00 0.91 5\n",
" 2 1.00 0.93 0.97 15\n",
"\n",
" accuracy 0.97 30\n",
" macro avg 0.94 0.98 0.96 30\n",
"weighted avg 0.97 0.97 0.97 30\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\zasyp\\PycharmProjects\\ScikitLearnLLM\\.venv\\Lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:785: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (500) reached and the optimization hasn't converged yet.\n",
" warnings.warn(\n"
]
}
],
"execution_count": 27
},
{
"metadata": {},
"cell_type": "markdown",
"source": [
"## Выводы по результатам отчёта о точности\n",
"\n",
"1. Используется датасет **Iris**, в котором загружено **150** цветков ириса, разделенных на 4 категории\n",
"2. **test_size** равен **0.2**, это значит что **20%** из всех загруженных 150 цветков пойдут на тесты, остальные **80%** идут на обучение. Установив значение на **0.5** кол-во делится пополам на обучение и на тесты.\n",
"3. **max_iter** - кол-во итераций обучения. При **max_iter=100** результаты крайне нестабильные и модель очень часто ошибается. Если установить **max_iter** на **500**, результаты становятся довольно точными, но иногда все равно промахивается. При установке **max_iter** на **2500** результаты оказываются либо всегда 1, либо очень точными (что может говорить о том, что модель переобучилась из-за большого кол-ва итераций)"
],
"id": "350dd90fedfff2ab"
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}