xgboost实现蘑菇数据分类预测demo
数据集下载:
训练集;测试集。
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相关推荐
- python xgb模型 预测_如何使用XGBoost模型进行时间序列预测
字幕组双语原文:如何使用XGBoost模型进行时间序列预测 英语原文:How to Use XGBoost for Time Series Forecasting 翻译:雷锋字幕组(Shangru) ...
- 基于XGBoost的用户流失预测
基于XGBoost的用户流失预测 小P:小H,我怎么能知道哪些用户有可能会流失呢?我这里有一份数据,你帮忙看看哪些字段更有助于寻找流失用户 小H:我只需要告诉你哪些特征更重要是吗? 小P:对对- 小H ...
- 分类预测 | MATLAB实现CNN卷积神经网络数据分类预测
分类预测 | MATLAB实现CNN卷积神经网络数据分类预测 目录 分类预测 | MATLAB实现CNN卷积神经网络数据分类预测 基本介绍 模型设计 学习总结 参考资料 基本介绍 使用卷积网络的潜在好 ...
- 发掘潜在用户利用xgboost进行产品营销响应预测
随着市场的不断变化和技术的不断发展,营销人员的工作内容和结构也不再拘泥于过去传统的理论概念,但是如何依靠最新的技术帮助企业实现销量增长.用户留存等问题,是当下很多企业打破困境的焦点问题. 站在企业的角 ...
- 【kaggle】基于xgboost的boston房价预测
学习总结 (1)本task其实较为简单.选用最熟悉(简单)的波士顿房价数据集,进行数据分析:另外主要是回顾sklearn的基本用法,复习xgboost模型及其参数的选择. 文章目录 学习总结 一.题目 ...
- 分类预测 | MATLAB实现WOA-CNN-LSTM鲸鱼算法优化卷积长短期记忆网络数据分类预测
分类预测 | MATLAB实现WOA-CNN-LSTM鲸鱼算法优化卷积长短期记忆网络数据分类预测 目录 分类预测 | MATLAB实现WOA-CNN-LSTM鲸鱼算法优化卷积长短期记忆网络数据分类预测 ...
- 分类预测 | MATLAB实现WOA-CNN-GRU鲸鱼算法优化卷积门控循环单元数据分类预测
分类预测 | MATLAB实现WOA-CNN-GRU鲸鱼算法优化卷积门控循环单元数据分类预测 分类效果 基本描述 1.Matlab实现WOA-CNN-GRU多特征分类预测,多特征输入模型,运行环境Ma ...
- 竞赛大杀器xgboost,波士顿房价预测
经常出入DC竞赛.kaggle.天池等大数据比赛的同学应该很了解xgboost这座大山. 几乎所有的比赛都绕不过它,可能只需要这一个库,在比赛中就可以得到很高的分数,究竟是为什么呢?那么就来窥探一下它 ...
- 极简PaddlePaddle的房价预测Demo
简 介: ※利用最简单的线性关系预测数据之间的相关性. 关键词: 线性相关,预测# #mermaid-svg-7sGsiuDJBmN3r5cU {font-family:"trebuchet ...
最新文章
- 实例解析linux内核I2C体系结构
- VMware中怎样克隆虚拟机
- Android从url不产生cookie,如何从android.webkit.CookieManager获取所有cookie或cookie的URL
- 在SAP HANA Express Edition里创建数据库表
- Silver Cow Party(POJ-3268)
- gulp如何保存后自动刷新?看这里就够了
- 拓端tecdat|R语言阈值模型代码示例
- Android文字转语音
- PR如何调整输出视频的分辨率?
- 七年切图仔如何面试大厂web前端?(沟通软技能总结)
- windows 固定桌面图标
- 基于STM32的0.96寸OLED显示屏显示数据
- 业务系统如何评估服务器,系统容量预估
- 苹果安卓鸿蒙对比,鸿蒙OS对比iOS,华为再次“超越”,流畅度大幅领先苹果!...
- Token系列 - 加密猫智能合约源码分析
- 华为nova8pro和荣耀60pro哪个好
- dp在约会上是什么意思_饭圈用语dp是什么意思什么梗? 饭圈为什么喜欢用缩写?...
- (一百三十五)Android O探索WLAN扫描(WIFI SCAN ALWAYS)
- 是时候关注ZGC和昏暗的Nashorn的明星了:Java影响者参与其中
- 江西伟人系列第一篇:千古名相(王安石)