作为一个完全的Python机器学习新手,我正在尝试训练一个XGBoost模型来预测鸢尾花数据集(https://www.kaggle.com/uciml/iris)。
目前我正在专注于XGBoost,试图获得一些经验。我的第一个模型训练,在66%的数据集上,仅使用了2个特征,但从未完成(在20分钟后被中断)。我还尝试将其缩小成一个非常小的样本(5个样本,2个特征),但仍然无法完成。
环境详细信息: MacBook Pro 2017,运行MacOS 10.14.5,使用Anaconda Navigator 1.9.7的Python 3.7.3。
我希望上述代码能够产生一个训练好的模型(由于只使用了5个样本,因此没有进行微调),在“合理”的时间内即不到4-5分钟内完成拟合阶段,但实际情况是拟合阶段从未完成。我是否做错了什么导致了这么长的拟合时间?感谢每一个建议!Mattia
目前我正在专注于XGBoost,试图获得一些经验。我的第一个模型训练,在66%的数据集上,仅使用了2个特征,但从未完成(在20分钟后被中断)。我还尝试将其缩小成一个非常小的样本(5个样本,2个特征),但仍然无法完成。
环境详细信息: MacBook Pro 2017,运行MacOS 10.14.5,使用Anaconda Navigator 1.9.7的Python 3.7.3。
# File downloaded from Kaggle Link above
iris = pd.read_csv('Iris.csv')
iris['Species'] = iris.apply(lambda r: r['Species'][5:], axis = 1)
features = iris[['PetalLengthCm', 'PetalWidthCm']]
species, labels = pd.factorize(iris['Species'])
X_train, X_test, y_train, y_test = train_test_split(features, species, test_size=0.33, random_state=42)
xgb_x_train = X_train.head()
xgb_y_train = y_train[:5]
print(xgb_x_train.shape)
print(len(xgb_y_train))
(5, 2)
5
xgbclf = xgb.XGBClassifier()
xgbclf.fit(xgb_x_train, xgb_y_train)
我希望上述代码能够产生一个训练好的模型(由于只使用了5个样本,因此没有进行微调),在“合理”的时间内即不到4-5分钟内完成拟合阶段,但实际情况是拟合阶段从未完成。我是否做错了什么导致了这么长的拟合时间?感谢每一个建议!Mattia