Network/week4_scikit_learn.ipynb

104 lines
3.9 KiB
Plaintext
Raw 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": "# Пример с использованием scikit-learn",
"id": "f35a7e78162fe88b"
},
{
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2026-05-07T18:55:17.794760700Z",
"start_time": "2026-05-07T18:55:17.652490Z"
}
},
"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 11\n",
" 1 0.89 1.00 0.94 8\n",
" 2 1.00 0.91 0.95 11\n",
"\n",
" accuracy 0.97 30\n",
" macro avg 0.96 0.97 0.96 30\n",
"weighted avg 0.97 0.97 0.97 30\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\Alexandr\\AppData\\Local\\Programs\\Python\\Python314\\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": 4
},
{
"metadata": {},
"cell_type": "markdown",
"source": [
"## Вывод:\n",
"\n",
" 1. Используется датасет Iris, который содержит 150 образцов ирисов, разделённых на 3 класса (не 4 категории). Каждый образец описывается 4 признаками.\n",
"2. test_size = 0.2 означает, что 20% данных (30 образцов) отводится на тестирование, а 80% (120 образцов) — на обучение. Если установить test_size = 0.5, данные делятся пополам (по 75 образцов на обучение и тестирование).\n",
"3. max_iter — количество итераций обучения.\n",
" >При **max_iter=100** результаты крайне нестабильные и модель очень часто ошибается.\n",
"\n",
" >При max_iter = 500 результаты становятся достаточно точными, хотя редкие ошибки всё ещё возможны.\n",
"\n",
" >При max_iter = 2500 модель либо выдаёт идеальную точность (1.0), либо показывает очень высокие результаты."
],
"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
}