Матрица ошибок (Confusion Matrix)

Показывает, сколько раз модель правильно и неправильно предсказала каждый класс.

```python

from sklearn.metrics import confusion_matrix

conf_matrix = confusion_matrix(y_real, y_pred)

print("Матрица ошибок:\n", conf_matrix)

```

Где:

– `TN` (True Negative) – правильно определённые объекты класса "не спам"

– `TP` (True Positive) – правильно определённые объекты класса "спам"

– `FN` (False Negative) – спам, который модель не распознала

– `FP` (False Positive) – "не спам", ошибочно классифицированный как спам

Precision, Recall, F1-score

Когда классы несбалансированы, точность уже не так важна. Лучше использовать Precision (точность) и Recall (полноту):

– Precision – из всех предсказанных "спам", сколько реально является спамом.

– Recall – из всех реальных "спам", сколько модель нашла.

F1-score – среднее значение Precision и Recall.

Пример кода:

```python

from sklearn.metrics import precision_score, recall_score, f1_score

precision = precision_score(y_real, y_pred)

recall = recall_score(y_real, y_pred)

f1 = f1_score(y_real, y_pred)

print(f"Точность (Precision): {precision:.2f}")

print(f"Полнота (Recall): {recall:.2f}")

print(f"F1-метрика: {f1:.2f}")

```

Выводы:

Выбор метрики зависит от задачи.

– В регрессии лучше всего использовать RMSE или R², если важно понять, насколько модель точна.

– В классификации точность (Accuracy) хороша только при сбалансированных классах. При дисбалансе лучше смотреть на Precision, Recall и F1-score.

Метрики помогают не только оценить качество модели, но и понять, как её можно улучшить, например, добавив новые признаки или изменив параметры алгоритма.


Глава 5. Несувервизорное обучение

– Кластеризация: алгоритмы K-means и DBSCAN

– Снижение размерности: PCA

– Пример: сегментация данных

В мире машинного обучения многие задачи требуют работы с данными, для которых нет заранее подготовленных ответов. Представьте, что у вас есть огромный массив информации, но вы не знаете, как её структурировать, какие закономерности в ней скрыты и какие группы объектов можно выделить. Именно для таких случаев используется несупервизорное (без учителя) обучение.

В отличие от супервайзного обучения, где модель обучается на размеченных данных (где есть входные параметры и правильные ответы), несупервайзное обучение работает без заранее определённых меток. Оно помогает выявлять скрытые структуры в данных, группировать похожие объекты и уменьшать размерность данных, чтобы упростить их анализ.

В этой главе мы разберём два ключевых направления несупервайзного обучения:

– Кластеризацию, которая позволяет объединять похожие объекты в группы без предварительного знания о них. Мы рассмотрим два популярных алгоритма: K-means, который находит кластеры по заданному числу групп, и DBSCAN, который может выявлять группы любой формы, включая выбросы.

– Снижение размерности, которое помогает упростить анализ данных, убирая лишние признаки. Мы разберём метод PCA (анализ главных компонент), который позволяет визуализировать многомерные данные и находить в них основные закономерности.

В завершение мы рассмотрим практический пример, связанный с сегментацией данных, где продемонстрируем, как несупервайзное обучение может помочь выявить структуру в неразмеченной информации.


Кластеризация: алгоритмы K-means и DBSCAN

Кластеризация – это один из важнейших методов в рамках несупервизорного обучения, который позволяет разделить набор данных на группы, или кластеры, таким образом, что объекты внутри одного кластера схожи между собой, а объекты из разных кластеров – различаются. Этот метод используется, когда мы не знаем заранее, как классифицировать объекты, но хотим понять, есть ли в данных какие-то скрытые структуры или закономерности.