
Загрузку и подготовку данных,
Анализ признаков и корреляционную матрицу,
Обучение модели логистической регрессии,
Оценку качества модели с помощью точности, precision, recall и F1-меры,
Реализацию предсказания для новых пациентов.
Также я расскажу о возможных направлениях для дальнейшей работы: обработке пропущенных значений, сравнении моделей, оптимизации гиперпараметров, сохранении модели и создании API.
Если вы интересуетесь практическим машинным обучением и хотите повторить этот путь со мной — это видео для вас!
===
1. Среда разработки
Установлена WSL (Ubuntu) на Windows 11.
Создано и активировано виртуальное окружение ml-env.
Установлены нужные библиотеки: numpy, pandas, scikit-learn, matplotlib, seaborn, jupyterlab.
2. Данные
Загрузили датасет pima-indians-diabetes.data.csv с официального GitHub.
Присвоили названия столбцам:
df.columns = [
"Pregnancies", "Glucose", "BloodPressure", "SkinThickness",
"Insulin", "BMI", "DiabetesPedigreeFunction", "Age", "Outcome"
]
3. Первичный анализ данных
Просмотрены первые строки df.head().
Построена корреляционная матрица с помощью seaborn.heatmap():
plt.figure(figsize=(10, 8))
sns.heatmap(df.corr(), annot=True, cmap="coolwarm")
plt.title("Корреляционная матрица")
plt.show()
Объяснено, что корреляция показывает степень взаимосвязи признаков между собой, особенно с целевой переменной Outcome.
4. Обучение модели
Разделили данные на X (признаки) и y (целевая переменная).
Использовали train_test_split() (разделение на 70/30).
Обучили логистическую регрессию:
from sklearn.linear_model import LogisticRegression
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
Провели предсказание: y_pred = model.predict(X_test)
5. Оценка качества модели
Точность модели: ~0.74
Матрица ошибок:
[[120 31]
[ 30 50]]
Отчёт по классификации (classification_report()):
Метрика Класс 0 (здоров) Класс 1 (болен)
Precision 0.80 0.62
Recall 0.79 0.62
F1-score 0.80 0.62
6. Предсказание для новых пациентов
Реализован ввод данных для одного пациента:
data = [[2, 130, 70, 30, 100, 32.0, 0.5, 33]]
new_patient_df = pd.DataFrame(data, columns=columns)
prediction = model.predict(new_patient_df)
# Вывод
if prediction[0] == 1:
print("Пациент БОЛЕН диабетом.")
else:
print("Пациент ЗДОРОВ.")
Предсказание работает корректно, предупреждения устранены.
Что ты уже знаешь и умеешь:
Установка и использование JupyterLab
Работа с CSV и pandas
Обработка и визуализация данных
Корреляция признаков
Обучение и тестирование модели логистической регрессии
Оценка качества: accuracy, precision, recall, f1-score
Предсказание новых данных
Работа в виртуальной среде (venv + WSL)
===
Общая структура пайплайна ML в Azure:
Рабочая среда — Jupyter, Azure Notebooks или VS Code + AML SDK.
Управление данными — Azure Blob Storage, Datasets.
Обучение — автоматическое или вручную, скрипты на Python, запуск на кластерах.
Отслеживание экспериментов — Azure ML Experiments, Runs.
Развёртывание — через контейнеры в AKS или Web Service.
Аналогичный подход в Linux с Open Source инструментами:
Компонент Azure Open Source Альтернатива на Linux
Azure ML Studio / SDK JupyterLab + Python (scikit-learn, PyTorch, TensorFlow)
Azure Storage MinIO, DVC, Apache Parquet, локальные диски
Azure ML Pipelines Kedro, MLFlow Pipelines, Luigi, Airflow
AutoML Azure Auto-sklearn, H2O AutoML, TPOT
Azure ML Experiments MLflow Tracking, Sacred, Weights & Biases (open)
Azure Compute (VM/Cluster) Docker + Kubernetes (k3s, k8s), local CPU/GPU, Slurm
Azure Container Instances Docker + Podman + FastAPI/Flask + NGINX
Azure DevOps Pipelines GitHub Actions, GitLab CI, Jenkins
===
Минимальный стек для обучения ML на Linux:
1. Установка базовых инструментов
# Установка Python и pip
sudo apt update
sudo apt install python3 python3-pip -y
# Установка JupyterLab
pip install jupyterlab
# Установка ML-библиотек
pip install numpy pandas matplotlib scikit-learn seaborn
# (Дополнительно) Для глубокого обучения:
pip install torch torchvision torchaudio
pip install tensorflow
# Автоматизация и мониторинг
pip install mlflow dvc
2. Рабочая среда: JupyterLab
Запуск:
jupyter lab --no-browser --ip=0.0.0.0
Можно использовать VS Code с Jupyter-расширением — работает как в Azure Notebooks.
===
Подробнее тут