Алгоритм машинного обучения XG Boost

XGBoost (Extreme Gradient Boosting) — это оптимизированная распределенная библиотека повышения градиента, разработанная для того, чтобы быть высокоэффективной, гибкой и портативной. Он реализует алгоритмы машинного обучения в рамках Gradient Boosting framework.

Вот простой пример использования XGBoost для классификации набора данных Iris:

Во-первых, вам нужно установить библиотеку XGBoost. Вы можете сделать это через pip:

``` ударить

пип установить xgboost

```

После установки вы можете использовать его следующим образом:

```python
import xgboost as xgb
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# Load the iris dataset
iris = load_iris()
X = iris.data
y = iris.target
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Convert the dataset to DMatrix for XGBoost
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)
# Define the booster parameters
param = {
. 'max_depth': 3, # the maximum depth of each tree
. 'eta': 0.3, # the training step for each iteration
. 'objective': 'multi:softprob', # error evaluation for multiclass training
. 'num_class': 3} # the number of classes that exist in this dataset
# Train the model
num_round = 20. # the number of training iterations
bst = xgb.train(param, dtrain, num_round)
# Make prediction
preds = bst.predict(dtest)
best_preds = np.asarray([np.argmax(line) for line in preds])
# Compute accuracy
accuracy = accuracy_score(y_test, best_preds)
print("Accuracy: ", accuracy)
```

В этом скрипте:

  • Мы загружаем набор данных радужной оболочки и разделяем его на обучающий набор и тестовый набор.
  • - Мы конвертируем наборы данных в объекты DMatrix, разработанные для эффективной работы с XGBoost.
  • - Определяем параметры бустера. В этом случае мы устанавливаем «max_depth» деревьев на 3, «eta» (скорость обучения) на 0,3, «цель» на «multi:softprob» для мультиклассовой классификации и «num_class» на 3, поскольку три класса в наборе данных iris.
  • - Тренируем модель 20 раундов.
  • - Мы делаем прогнозы, используя обученную модель, получая прогнозируемую вероятность для каждого класса для каждого экземпляра в тестовом наборе, а затем преобразовывая эти вероятности в метки классов.
  • - Наконец, мы вычисляем точность модели.

Возможно, потребуется скорректировать параметры и количество раундов для разных наборов данных и задач. Вы можете обратиться к документации XGBoost для получения более подробной информации о параметрах и о том, как их использовать.