Читать книгу Искусственный интеллект. Машинное обучение онлайн


Пример 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)