XGBoost Python实战

本文介绍了XGBoost在Python中的实战应用,以泰坦尼克数据集为例,涉及数据预处理、XGBoost模型的原生版本和sklearn接口的参数介绍,并与其他模型如LogisticRegression和随机森林进行对比。文章详细解析了XGBoost的重要参数,包括学习率、树深度、正则化项等。
摘要由CSDN通过智能技术生成

一. 前言

XGBoost基本原理博文中我们介绍了XGBoost的基本原理,本篇博文我们将介绍XGBoost的基本使用方法,作为新手的学习参考。 

本文使用kaggle上的泰坦尼克数据集,只是对XGBoost的使用做一个简单的描述,若想知道Kaggle的整个竞赛流程以及在竞赛中如何使用XGBoost进行预测的话,关注本博客,以后会陆续推出与竞赛内容相关的博客及代码。kaggle的泰坦尼克的数据集分为训练数据和测试数据,测试数据与训练数据的区别在于测试数据缺少‘survival’列,即为我们需要预测的列,数据集中的每列描述如下:

  • survival------表示乘客是否存活;0=No,1=Yes
  • pclass------表示票的等级;1=1st,2=2nd,3=3rd
  • sex------表示乘客性别;
  • Age------表示乘客年龄
  • sibsp------表示在船上的兄弟姐妹加上配偶的数量
  • parch------表示在船上的父母加上子女的数量
  • ticket------表示票的编号
  • fare------表示票价
  • cabin------表示船舱编号
  • embarked------表示乘客登录的港口;C = Cherbourg, Q = Queenstown, S = Southampton

接下来就是如何进行简单的特征处理,以及如何用XGBoost对测试集进行预测,同时也会使用其他的模型与XGBoost进行比较。

二. 数据的特征处理

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import xgboost as xgb
from sklearn.model_selection import train_test_split
from sklearn import preprocessing 
from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import GradientBoostingClassifier
from sklearn import cross_validation
from sklearn.preprocessing import LabelEncoder

import warnings
warnings.filterwarnings('ignore')
train = pd.read_csv('data/train.csv')
test = pd.read_csv('data/test.csv')
train.info()  # 打印训练数据的信息
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
PassengerId    891 non-null int64
Survived       891 non-null int64
Pclass         891 non-null int64
Name           891 non-null object
Sex            891 non-null object
Age            714 non-null float64
SibSp          891 non-null int64
Parch          891 non-null int64
Ticket         891 non-null object
Fare           891 non-null float64
Cabin          204 non-null object
Embarked       889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.6+ KB

从输出信息中可以看出训练集一共有891个样本,12个特征,所有数据所占的内存大小为83.6K;所有的特征中有两个特征缺失情况较为严重,一个是Age,一个是Cabin;一个缺失不严重Embarked;数据一共有三种类型,float64(2), int64(5), object(5)。

接下来就是对数据的缺失值进行处理,这里采用的方法是对连续值用该列的平均值进行填充,非连续值用该列的众数进行填充,还可以使用机器学习的模型对缺失值进行预测,用预测的值来填充缺失值&#

  • 13
    点赞
  • 93
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值