Алгоритм машинного обучения 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 для получения более подробной информации о параметрах и о том, как их использовать.