使用xgboost在GPU上优化处理数据并提升预测性能

需积分: 0 0 下载量 23 浏览量 更新于2024-08-05 收藏 1.11MB PDF 举报
"16337341朱志儒的机器学习实践——NVIDIA GeForce GTX 950M GPU上的数据处理与模型选择" 在本文中,朱志儒分享了他在一个机器学习项目中的实践经验,使用的硬件配置包括Windows 10 64位操作系统,Intel Core i5-6300HQ CPU以及NVIDIA GeForce GTX 950M GPU。软件环境涉及Python编程语言,主要使用的库有pandas 0.24.2、xgboost 0.82、numpy 1.15.4和sklearn 0.20.3。 首先,朱志儒针对数据预处理进行了详尽的描述。他提到训练集包含空缺值,且数据类型包括浮点型、整型和字符串类型。为处理这些数据,他采取了以下步骤: 1. 删除整列都包含NaN的列,以减少无用信息。 2. 对于数值型列,使用该列的平均值填充空缺值,保持数据完整性。 3. 对于非数值型列,选择出现次数最多的值填充空缺,并利用sklearn.preprocessing.LabelEncoder将数据转换为数值类型,以便进行后续的机器学习操作。 4. 在完成数据填充后,应用min-max标准化对所有数据进行归一化处理,使得数据分布在0到1之间,有利于模型的训练。 在模型选择方面,朱志儒首先尝试了线性支持向量机(SVM),使用sklearn库中的LinearSVC分类算法。然而,由于实验的评估指标是AUC,而LinearSVC直接输出的是0或1的标签,而非正类概率,导致其得分仅为0.86323,不太理想。 接着,他尝试了SVM的线性核版本(kernel参数设置为linear),并启用概率估计(probability参数设为True)。通过在C参数上进行网格搜索,找到最优值为1.5,但即使如此,5折交叉验证后的得分也只有0.94539,仍不满足需求。 最后,朱志儒转向了xgboost(XGB)模型。在使用默认参数的情况下,XGB就取得了很好的预测效果,提交预测结果后得分为0.97699,远高于SVM的表现。这表明xgboost对于数据的敏感度较低,更能适应预处理后的数据,因此被选为最终的模型。 本文详细展示了如何在特定硬件环境下进行数据预处理和模型选择,强调了正确处理数据和选择合适模型对于提升机器学习模型性能的重要性。同时,也突出了xgboost在处理复杂数据集时的高效性和鲁棒性。