xgboost回归预测模型_XGBoost模型(3)--球员身价预测

本文介绍了如何使用XGBoost进行足球运动员身价的预测,从初步的模型构建到特征工程的深入探讨,包括添加年龄属性、特征选择方法如f_regression,以及处理缺失值的策略。通过特征工程优化,模型排名显著提升。
摘要由CSDN通过智能技术生成

任务类型:回归

背景介绍: 每个足球运动员在转会市场都有各自的价码。本次数据练习的目的是根据球员的各项信息和能力值来预测该球员的市场价值。

数据来源:数据竞赛:足球运动员身价估计-SofaSofa

8eaaa36827fe9a027fedfbdf6fc42834.png

目前竞赛的排行榜如下:

e056428852eff164470447a11060e1bb.png

(一)初始的XGBoost模型

属性非常多,初始的XGBoost模型选用4个属性

db1a530e107ca85dbd4a25c8c9079a4a.png

巧合的是刚好这些字段都没有缺失值。不用预处理

代码:

# 球员身价预测

import pandas as pd
import matplotlib.pyplot as plt
import xgboost as xgb
import numpy as np
from xgboost import plot_importance
from sklearn.metrics import mean_absolute_error
from sklearn.model_selection import train_test_split

def loadDataset(filePath):
    df = pd.read_csv(filepath_or_buffer=filePath)
    return df

# 只选了了4个特征建立模型
def featureSet(data):
    data_num = len(data)
    XList = []
    for row in range(0, data_num):
        tmp_list = []
        tmp_list.append(data.iloc[row]['club'])
        tmp_list.append(data.iloc[row]['league'])
        tmp_list.append(data.iloc[row]['potential'])
        tmp_list.append(data.iloc[row]['international_reputation'])
        XList.append(tmp_list)
    yList = data.y.values
    return np.array(XList), yList


def trainandTest_mae(X_train, y_train, X_test,y_test):
    # XGBoost训练过程
    model = xgb.XGBRegressor(max_depth=5, learning_rate=0.1, n_estimators=160, silent=False, objective='reg:gamma')
    model.fit(X_train, y_train)

    # 对测试集进行预测
    ans = model.predict(X_test)

   #误差mae

    mae=mean_absolute_error(y_test, ans)
    print("mae:",mae)
    # 显示重要特征
    plot_importance(model)
    plt.show()

    
# 主程序代码:

trainFilePath &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值