数据集下载:

训练集;测试集。

import xgboost as xgb
import numpy as np
# 自己实现loss function,softmax函数
def log_reg(y_hat, y):p = 1.0 / (1.0 + np.exp(-y_hat))g = p - y.get_label()h = p * (1.0 - p)return g, h
# 自己实现错误率计算
def error_rate(y_hat, y):return 'error', float(sum(y.get_label() != (y_hat > 0.5))) / len(y_hat)if __name__ == '__main__':# 读取数据data_train = xgb.DMatrix('agaricus_train.txt')data_test = xgb.DMatrix('agaricus_test.txt')print('data_train:\n', data_train)print(type(data_train))# 设定相关参数param = {'max_depth':2, 'eta':1, 'silent':1, 'objective':'binary:logistic'}# param = {'max_depth':2, 'eta':1, 'silent':1, 'objective':'reg:logistic'}watchlist = [(data_test, 'eval'), (data_train, 'train')]n_round = 10bst = xgb.train(param, data_train, num_boost_round=n_round, evals=watchlist, obj=log_reg, feval=error_rate)# 计算错误率y_hat = bst.predict(data_test)y = data_test.get_label()print('y_hat:\n', y_hat)print('y:\n', y)error = sum(y != (y_hat > 0.5))error_rate = float(error) / len(y_hat)print('total samples:%d' % len(y_hat))print('the wrong numbers:%d' % error)print('error ratio:%.3f%%' % error_rate)

我们加入logistic回归作对比:

import xgboost as xgb
import numpy as np
import pandas as pd
import scipy.sparse
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split# 自己实现loss function,softmax函数
def log_reg(y_hat, y):p = 1.0 / (1.0 + np.exp(-y_hat))g = p - y.get_label()h = p * (1.0 - p)return g, h
# 自己实现错误率计算
def error_rate(y_hat, y):return 'error', float(sum(y.get_label() != (y_hat > 0.5))) / len(y_hat)def read_data(path):y = []row = []col = []values = []r = 0       # 首行for d in open(path):d = d.strip().split()      # 以空格分开y.append(int(d[0]))d = d[1:]for c in d:key, value = c.split(':')row.append(r)col.append(int(key))values.append(float(value))r += 1x = scipy.sparse.csr_matrix((values, (row, col))).toarray()y = np.array(y)return x, yif __name__ == '__main__':# 读取数据data_train = xgb.DMatrix('agaricus_train.txt')data_test = xgb.DMatrix('agaricus_test.txt')print('data_train:\n', data_train)print(type(data_train))# 设定相关参数param = {'max_depth':2, 'eta':1, 'silent':1, 'objective':'binary:logistic'}# param = {'max_depth':2, 'eta':1, 'silent':1, 'objective':'reg:logistic'}watchlist = [(data_test, 'eval'), (data_train, 'train')]n_round = 10bst = xgb.train(param, data_train, num_boost_round=n_round, evals=watchlist, obj=log_reg, feval=error_rate)# 计算错误率y_hat = bst.predict(data_test)y = data_test.get_label()print('y_hat:\n', y_hat)print('y:\n', y)error = sum(y != (y_hat > 0.5))error_rate = float(error) / len(y_hat)print('total samples:%d' % len(y_hat))print('the wrong numbers:%d' % error)print('error ratio:%.3f%%' % error_rate)print('logistic accuracy ratio:%.3f%%' % (1 - error_rate))print('=========================================')# logistic regressionx, y = read_data('agaricus_train.txt')x_train, x_test, y_train, y_test = train_test_split(x, y, train_size=0.7, random_state=1)lr = LogisticRegression(penalty='l2')lr.fit(x_train, y_train.ravel())y_hat = lr.predict(x_test)acc = y_hat.ravel() == y_test.ravel()print('acc:\t', acc)print('XGBosst accuracy:\t', float(acc.sum()) / y_hat.size)

xgboost实现蘑菇数据分类预测demo相关推荐

  1. python xgb模型 预测_如何使用XGBoost模型进行时间序列预测

    字幕组双语原文:如何使用XGBoost模型进行时间序列预测 英语原文:How to Use XGBoost for Time Series Forecasting 翻译:雷锋字幕组(Shangru) ...

  2. 基于XGBoost的用户流失预测

    基于XGBoost的用户流失预测 小P:小H,我怎么能知道哪些用户有可能会流失呢?我这里有一份数据,你帮忙看看哪些字段更有助于寻找流失用户 小H:我只需要告诉你哪些特征更重要是吗? 小P:对对- 小H ...

  3. 分类预测 | MATLAB实现CNN卷积神经网络数据分类预测

    分类预测 | MATLAB实现CNN卷积神经网络数据分类预测 目录 分类预测 | MATLAB实现CNN卷积神经网络数据分类预测 基本介绍 模型设计 学习总结 参考资料 基本介绍 使用卷积网络的潜在好 ...

  4. 发掘潜在用户利用xgboost进行产品营销响应预测

    随着市场的不断变化和技术的不断发展,营销人员的工作内容和结构也不再拘泥于过去传统的理论概念,但是如何依靠最新的技术帮助企业实现销量增长.用户留存等问题,是当下很多企业打破困境的焦点问题. 站在企业的角 ...

  5. 【kaggle】基于xgboost的boston房价预测

    学习总结 (1)本task其实较为简单.选用最熟悉(简单)的波士顿房价数据集,进行数据分析:另外主要是回顾sklearn的基本用法,复习xgboost模型及其参数的选择. 文章目录 学习总结 一.题目 ...

  6. 分类预测 | MATLAB实现WOA-CNN-LSTM鲸鱼算法优化卷积长短期记忆网络数据分类预测

    分类预测 | MATLAB实现WOA-CNN-LSTM鲸鱼算法优化卷积长短期记忆网络数据分类预测 目录 分类预测 | MATLAB实现WOA-CNN-LSTM鲸鱼算法优化卷积长短期记忆网络数据分类预测 ...

  7. 分类预测 | MATLAB实现WOA-CNN-GRU鲸鱼算法优化卷积门控循环单元数据分类预测

    分类预测 | MATLAB实现WOA-CNN-GRU鲸鱼算法优化卷积门控循环单元数据分类预测 分类效果 基本描述 1.Matlab实现WOA-CNN-GRU多特征分类预测,多特征输入模型,运行环境Ma ...

  8. 竞赛大杀器xgboost,波士顿房价预测

    经常出入DC竞赛.kaggle.天池等大数据比赛的同学应该很了解xgboost这座大山. 几乎所有的比赛都绕不过它,可能只需要这一个库,在比赛中就可以得到很高的分数,究竟是为什么呢?那么就来窥探一下它 ...

  9. 极简PaddlePaddle的房价预测Demo

    简 介: ※利用最简单的线性关系预测数据之间的相关性. 关键词: 线性相关,预测# #mermaid-svg-7sGsiuDJBmN3r5cU {font-family:"trebuchet ...

最新文章

  1. 实例解析linux内核I2C体系结构
  2. VMware中怎样克隆虚拟机
  3. Android从url不产生cookie,如何从android.webkit.CookieManager获取所有cookie或cookie的URL
  4. 在SAP HANA Express Edition里创建数据库表
  5. Silver Cow Party(POJ-3268)
  6. gulp如何保存后自动刷新?看这里就够了
  7. 拓端tecdat|R语言阈值模型代码示例
  8. Android文字转语音
  9. PR如何调整输出视频的分辨率?
  10. 七年切图仔如何面试大厂web前端?(沟通软技能总结)
  11. windows 固定桌面图标
  12. 基于STM32的0.96寸OLED显示屏显示数据
  13. 业务系统如何评估服务器,系统容量预估
  14. 苹果安卓鸿蒙对比,鸿蒙OS对比iOS,华为再次“超越”,流畅度大幅领先苹果!...
  15. Token系列 - 加密猫智能合约源码分析
  16. 华为nova8pro和荣耀60pro哪个好
  17. dp在约会上是什么意思_饭圈用语dp是什么意思什么梗? 饭圈为什么喜欢用缩写?...
  18. (一百三十五)Android O探索WLAN扫描(WIFI SCAN ALWAYS)
  19. 是时候关注ZGC和昏暗的Nashorn的明星了:Java影响者参与其中
  20. 江西伟人系列第一篇:千古名相(王安石)

热门文章

  1. 寄“罚单”将成历史 9月起成都私车电子眼交通违法发短信通知啦
  2. VPM CAA开发 实例同步详情
  3. 在Vue中引入 和风天气 字体图标
  4. RFID破解三两事(原作者:YunFree)
  5. 连接WiFi需要短信验证怎么设置?
  6. MOS管的CISS 和Qg
  7. 前端生成、下载二维码
  8. 高德其他颜色主题无法在chrome上显示
  9. CSDN昵称更改问题解决(很详细,很详细,很详细)
  10. 时序数据库之PostgreSql