Читать книгу Искусственный интеллект. Машинное обучение онлайн
Применение модели: После успешного тестирования и оценки модели, мы можем использовать ее для автоматического определения спама в реальном времени для новых электронных писем, поступающих в почтовый ящик.
Рассомтрим пример простого кода на Python для решения задачи классификации спама в электронных письмах с использованием наивного байесовского классификатора и библиотеки scikit-learn:
```python
# Импорт необходимых библиотек
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# Подготовка обучающих данных
emails = ['Письмо с текстом…', 'Еще одно письмо…', …] # Список электронных писем
labels = [0, 1, …] # Метки: 0 – не спам, 1 – спам
# Преобразование текстов писем в числовые признаки
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(emails)
# Разделение данных на обучающий и тестовый наборы
X_train, X_test, y_train, y_test = train_test_split(X, labels, test_size=0.2, random_state=42)
# Создание и обучение модели наивного байесовского классификатора
model = MultinomialNB()
model.fit(X_train, y_train)
# Прогнозирование меток для тестового набора данных
y_pred = model.predict(X_test)
# Оценка качества модели
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
```
В этом коде мы используем библиотеку scikit-learn для создания наивного байесовского классификатора и выполнения всех необходимых шагов: преобразование текстов писем в числовые признаки с помощью CountVectorizer, разделение данных на обучающий и тестовый наборы, обучение модели и оценку ее качества.
Обучение с учителем в данном коде происходит следующим образом:
1. Подготовка обучающих данных: Создается список `emails`, содержащий тексты электронных писем, и список `labels`, содержащий метки для этих писем (0 – не спам, 1 – спам). Каждое письмо связывается с соответствующей меткой, предоставляя модели информацию о правильных ответах.