Читать книгу Искусственный интеллект. Машинное обучение онлайн
Пример 1
Задача:
Представим, что у нас есть набор данных, содержащий информацию о клиентах банка, включая их возраст, доход, семейное положение и другие характеристики. Наша задача состоит в том, чтобы на основе этих данных предсказать, совершит ли клиент депозит в банке или нет.
Ход решения:
1. Загрузка данных: Сначала мы загрузим данные о клиентах банка, чтобы начать анализ.
2. Предварительный анализ данных: Проведем предварительный анализ данных, чтобы понять структуру набора данных, распределение признаков и наличие пропущенных значений.
3. Подготовка данных: Выполним предварительную обработку данных, такую как кодирование категориальных признаков, заполнение пропущенных значений и масштабирование признаков.
4. Разделение данных: Разделим данные на обучающий и тестовый наборы. Обучающий набор будет использоваться для обучения модели, а тестовый – для ее оценки.
5. Обучение модели: Обучим модель на обучающем наборе данных, используя метод SVM.
6. Оценка модели: Оценим качество модели на тестовом наборе данных, используя метрики, такие как точность, полнота и F1-мера.
Пример кода:
```python
# Импорт библиотек
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score, classification_report
from sklearn.datasets import load_bank_dataset
# Загрузка данных о клиентах банка
data = load_bank_dataset()
X = data.drop(columns=['deposit'])
y = data['deposit']
# Предварительный анализ данных
print(X.head())
print(X.info())
# Подготовка данных
X = pd.get_dummies(X)
X.fillna(X.mean(), inplace=True)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# Разделение данных на обучающий и тестовый наборы
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
# Обучение модели SVM
svm_classifier = SVC(kernel='rbf', random_state=42)
svm_classifier.fit(X_train, y_train)
# Оценка модели
y_pred = svm_classifier.predict(X_test)