import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.metrics import accuracy_score
# Загрузка данных
data = pd.read_csv("bank_data.csv") # Предположим, что у вас есть файл bank_data.csv с данными
X = data.drop("Credit_Taken", axis=1) # Признаки
y = data["Credit_Taken"] # Целевая переменная
# Разделение данных на обучающий и тестовый наборы
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Создание и обучение модели градиентного бустинга
model = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1, random_state=42)
model.fit(X_train, y_train)
# Предсказание на тестовом наборе данных
y_pred = model.predict(X_test)
# Оценка производительности модели
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
В этом коде мы сначала загружаем данные из файла bank_data.csv, затем разделяем их на обучающий и тестовый наборы. Затем мы создаем модель градиентного бустинга с помощью GradientBoostingClassifier и обучаем ее на обучающем наборе данных. После обучения модели мы используем ее для предсказания на тестовом наборе данных и оцениваем производительность модели с помощью метрики accuracy_score.
Это пример того, как можно использовать градиентный бустинг для решения задачи классификации клиентов банка по их способности брать кредит.
3. Задачи кластеризации
Задачи кластеризации направлены на разделение набора данных на группы или кластеры таким образом, чтобы объекты внутри одного кластера были более похожи друг на друга, чем на объекты из других кластеров. Некоторые методы решения задач кластеризации включают в себя:
– Метод k средних (k-Means)
– Иерархическая кластеризация
– DBSCAN
Рассмотрим их подробнее.
Метод k-Means (k-средних) – это один из наиболее распространенных методов кластеризации. Он основан на простой идее разделения набора данных на k кластеров, где каждый кластер представляет собой группу объектов, близких по среднему расстоянию до центроидов кластеров. Алгоритм k-Means состоит из нескольких шагов. Сначала случайным образом выбираются k центроидов. Затем каждый объект присваивается ближайшему центроиду, после чего центроиды перемещаются в центры объектов, принадлежащих кластерам. Этот процесс повторяется до тех пор, пока центроиды и кластеры не стабилизируются или не будет достигнуто максимальное количество итераций.
Преимущества метода k-Means включают его простоту реализации, эффективность на больших объемах данных и масштабируемость. Однако у метода также есть недостатки. В частности, требуется заранее знать количество кластеров, а также алгоритм чувствителен к начальному расположению центроидов и неустойчив к выбросам.
Метод k-Means является широко используемым инструментом для кластеризации данных благодаря своей простоте и эффективности, но при его использовании следует учитывать его ограничения и подходить к выбору количества кластеров с осторожностью.
Пример 1
Для этого примера давайте использовать набор данных Iris, который содержит информацию о различных видах ирисов. Наша задача будет состоять в кластеризации этих ирисов на основе их характеристик.
Описание задачи:
Набор данных Iris содержит четыре признака: длину и ширину чашелистиков и лепестков ирисов. Мы будем использовать эти признаки для кластеризации ирисов на несколько групп.
Описание хода решения:
1. Загрузка данных: Мы загрузим данные и посмотрим на них, чтобы понять их структуру.
2. Предварительная обработка данных: Если потребуется, мы выполним предварительную обработку данных, такую как масштабирование функций.
3. Кластеризация: Мы применим выбранный метод кластеризации (например, k-средних или иерархическую кластеризацию) к данным.
4. Визуализация результатов: Для лучшего понимания кластеризации мы визуализируем результаты, используя графики.
Давайте перейдем к коду.
Для начала нам нужно загрузить набор данных Iris. Мы будем использовать библиотеку `scikit-learn`, которая предоставляет доступ к этому набору данных. Загрузим данные и посмотрим на них.
```python
from sklearn.datasets import load_iris
# Загрузка данных Iris
iris = load_iris
# Просмотр информации о данных
print(iris.DESCR)
```
Этот код загружает данные Iris и выводит их описание, чтобы мы могли понять структуру набора данных и его признаки.
После того, как мы ознакомились с данными, мы можем приступить к кластеризации. Для этого давайте выберем метод кластеризации, например, метод k-средних.
```python
from sklearn.cluster import KMeans
# Инициализация модели k-средних
kmeans = KMeans(n_clusters=3, random_state=42)
# Обучение модели на данных
kmeans.fit(iris.data)
# Получение меток кластеров для каждого объекта
labels = kmeans.labels_
```
Здесь мы инициализируем модель k-средних с 3 кластерами и обучаем её на данных Iris. Затем мы получаем метки кластеров для каждого объекта.
Наконец, мы можем визуализировать результаты кластеризации, чтобы лучше понять структуру данных.
```python
import matplotlib.pyplot as plt
# Визуализация кластеров