from sklearn.datasets import fetch_openml from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score import time # 获取MNIST数据集 mnist = fetch_openml('mnist_784', version=1) X, y = mnist.data, mnist.target X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) import time # 训练GradientBoostingClassifier模型 start_time = time.time() gbc = GradientBoostingClassifier(random_state=42) gbc.fit(X_train, y_train) end_time = time.time() print("GradientBoostingClassifier训练时间:", end_time - start_time) print("GradientBoostingClassifier准确率:", gbc.score(X_test, y_test))
时间: 2024-02-25 12:56:33 浏览: 99
这段代码使用了 `GradientBoostingClassifier` 对 MNIST 数据集进行了训练和预测,并输出了它的训练时间和准确率。其中,`fetch_openml` 函数从 OpenML 上获取 MNIST 数据集,`train_test_split` 函数将数据集划分为训练集和测试集,`GradientBoostingClassifier` 类定义了 Gradient Boosting 模型,并使用 `fit` 函数进行训练,`score` 函数计算了模型在测试集上的准确率。
需要注意的是,这段代码中缺少了 `sklearn.ensemble` 模块的导入语句,需要增加如下代码:
```python
from sklearn.ensemble import GradientBoostingClassifier
```
另外,如果要比较 `GradientBoostingClassifier` 和 `HistGradientBoostingClassifier` 的性能,需要将 `GradientBoostingClassifier` 替换为 `HistGradientBoostingClassifier`,并增加如下代码:
```python
from sklearn.ensemble import HistGradientBoostingClassifier
# 训练HistGradientBoostingClassifier模型
start_time = time.time()
hgbc = HistGradientBoostingClassifier(random_state=42)
hgbc.fit(X_train, y_train)
end_time = time.time()
print("HistGradientBoostingClassifier训练时间:", end_time - start_time)
print("HistGradientBoostingClassifier准确率:", hgbc.score(X_test, y_test))
```
这样,就可以分别输出 `GradientBoostingClassifier` 和 `HistGradientBoostingClassifier` 的训练时间和准确率。
阅读全文