Xgboost的实战

一、数据形式
XGBoost可以加载libsvm格式的文本数据,libsvm的文件格式(稀疏特征)如下:
1 101:1.2 102:0.03
0 1:2.1 10001:300 10002:400

每一行表示一个样本,第一行的开头的“1”是样本的标签。“101”和“102”为特征索引,‘1.2’和’0.03’ 为特征的值。

在两类分类中,用“1”表示正样本,用“0” 表示负样本。也支持[0,1]表示概率用来做标签,表示为正样本的概率。
下面的示例数据需要我们通过一些蘑菇的若干属性判断这个品种是否有毒。
每个样本描述了蘑菇的22个属性,比如形状、气味等等(将22维原始特征用加工后变成了126维特征,

并存为libsvm格式),然后给出了这个蘑菇是否可食用。其中6513个样本做训练,1611个样本做测试。

注:libsvm格式文件说明如下 https://www.cnblogs.com/codingmengmeng/p/6254325.html
XGBoost加载的数据存储在对象DMatrix中
XGBoost自定义了一个数据矩阵类DMatrix,优化了存储和运算速度

DMatrix文档:http://xgboost.readthedocs.io/en/latest/python/python_api.html
二、实战

import xgboost as xgb#导入包
from sklearn.metrics import accuracy_score
import graphviz
from matplotlib import pyplot

#填写自己的文件地址
dtrain=xgb.DMatrix(r'C:\Users\dhq\Desktop\All DATA\data\data\agaricus.txt.train')
dtest=xgb.DMatrix(r'C:\Users\dhq\Desktop\All DATA\data\data\agaricus.txt.test')

    # print(dtrain.num_col())#查看数据行数
    # print(dtrain.num_row())#查看数据列数

param={'max_depth':2,'eta':1,'silent':0,'object':'binary:logist'}#训练参数(还有很多参数,自行学习)

    # print(param)#查看参数

num_round=2#设置bossting迭代次数

bst=xgb.train(param,dtrain,num_round)#训练模型

train_preds=bst.predict(dtrain)#以下为测试模型预测准确度
train_predictions=[round(value) for value in train_preds]
y_train=dtrain.get_label()#值为数据的第一行
train_accuracy=accuracy_score(y_train,train_predictions)
print("Train Accuary:%.2f%%"%(train_accuracy*100.0))

preds=bst.predict(dtest)
predictions=[round(value) for value in preds]
y_test=dtest.get_label()
test_accuracy=accuracy_score(y_test,predictions)
print('Test Accuracy: %.2f%%'%(test_accuracy*100.0))

# xgb.plot_tree(bst, num_trees=0, rankdir= 'LR' )#模型可视化
# pyplot.show()

以下是我实战文件内容:
链接:https://pan.baidu.com/s/13ngtPhcEmO_IxdwJfzQNKA 提取码:ij9n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值