from sklearn.metrics import accuracy_score
# Загрузка данных
iris = load_iris ()
X = iris. data
y = iris. target
# Разделение данных на тренировочный и тестовый наборы
X_train, X_test, y_train, y_test = train_test_split (X, y, test_size=0.2, random_state=42)
# Создание и обучение модели
model = KNeighborsClassifier (n_neighbors=5)
model.fit (X_train, y_train)
# Предсказание на тестовом наборе
predictions = model.predict (X_test)
accuracy = accuracy_score (y_test, predictions)
print (f’Accuracy: {accuracy:.2f}»)
```
Теперь перейдем ко второму алгоритму – методу опорных векторов.
**Метод опорных векторов (SVM) **
Метод опорных векторов – это мощный алгоритм машинного обучения, который используется для решения задач классификации и регрессии. Основная идея заключается в поиске гиперплоскости, которая максимально разделяет классы в пространстве признаков.
**Принцип работы SVM**
1. Алгоритм ищет гиперплоскость, которая максимизирует расстояние (маржу) между ближайшими точками разных классов.
2. Эти ближайшие точки называются опорными векторами.
3. Гиперплоскость определяет границу разделения классов.
Пример: Представьте, что у вас есть набор точек на плоскости, каждая из которых помечена как принадлежащая к одному из двух классов. Ваша задача – найти прямую, которая будет максимально далеко от точек обоих классов.
**Параметры метода SVM**
– **Kernel**: Функция ядра, которая позволяет работать с нелинейно разделяемыми данными. Популярные варианты – линейное ядро, полиномиальное ядро и радиально-базисная функция (RBF).
– **Regularization parameter C**: Параметр регуляризации, который контролирует степень влияния опорных векторов на решение.
**Преимущества и недостатки SVM**
– **Преимущества**:
– Хорошо справляется с задачами высокой размерности.
– Может эффективно работать с нелинейно разделяемыми данными благодаря использованию ядер.