1.XGBoost算法原理

  • 参考文章1
  • 参考文章2

2.代码实战

train = pd.read_csv(r"./dataset/train.csv")
train.head()
"""user_id:没有实际意义,只是一个代号shop_id:商店的位置,是预测目标longitude:商店的经度latitude:商店的纬度wifi_id:路由器的编号wifi_strong:wifi的信号强度con_sta:wifi的连接状态
"""
test = pd.read_csv(r"./dataset/test.csv")
test.head()train['time_stamp'] = pd.to_datetime(pd.Series(train['time_stamp']))
test['time_stamp'] = pd.to_datetime(pd.Series(train['time_stamp']))
train.head()train['Year'] = train['time_stamp'].apply(lambda x: x.year)
train['Month'] = train['time_stamp'].apply(lambda x: x.month)
train['weekday'] = train['time_stamp'].dt.dayofweek
train['time'] = train['time_stamp'].dt.timetest['Year'] = test['time_stamp'].apply(lambda x: x.year)
test['Month'] = test['time_stamp'].apply(lambda x: x.month)
test['weekday'] = test['time_stamp'].dt.dayofweek
test['time'] = test['time_stamp'].dt.timetrain = train.drop("time_stamp", axis=1)
test = test.drop("time_stamp", axis=1)   # axis=1列方向,水平方向
train = train.dropna(axis=0)
test = test.fillna(method='pad')  # axis=0行方向,垂直方向
train.head()
test.head()for f in train.columns:if train[f].dtype == 'object':if f != 'shop_id':print("train col:\n", f)labels = preprocessing.LabelEncoder()train[f] = labels.fit_transform(list(train[f].values))
for f in test.columns:if test[f].dtype == 'object':print("test col:\n", f)labels = preprocessing.LabelEncoder()labels.fit(list(test[f].values))test[f] = labels.transform(list(test[f].values))feature_columns_to_use = ['Year', 'Month', 'weekday',
'time', 'longitude', 'latitude',
'wifi_id1', 'wifi_strong1', 'con_sta1','wifi_id2', 'wifi_strong2', 'con_sta2',
'wifi_id3', 'wifi_strong3', 'con_sta3',
'wifi_id4', 'wifi_strong4', 'con_sta4',
'wifi_id5', 'wifi_strong5', 'con_sta5',
'wifi_id6', 'wifi_strong6', 'con_sta6',
'wifi_id7', 'wifi_strong7', 'con_sta7',
'wifi_id8', 'wifi_strong8', 'con_sta8',
'wifi_id9', 'wifi_strong9', 'con_sta9',
'wifi_id10', 'wifi_strong10', 'con_sta10',]big_train = train[feature_columns_to_use]
big_test = test[feature_columns_to_use]train_X = big_train.as_matrix()
test_X = big_test.as_matrix()train_y = train['shop_id']# xgboost生成的决策树,处理的特征都是连续型的!!
gbm = xgb.XGBClassifier(silent=1,max_depth=10, n_estimators=1000, learning_rate=0.05)gbm.fit(train_X, train_y)
y_hat = gbm.predict(test_X)# 下面是提交到kaggle上的格式
submission = pd.DataFrame({'row_id': test['row_id'],'shop_id': y_hat})print(submission)
submission.to_csv(r"./dataset/submission.csv", index=False)
  • 参考博客
  • XGBoost参数说明
  • 代码及数据集下载地址

XGBoost算法原理解释(转载)相关推荐

  1. XGBoost算法原理以及实现

    想问:在CSDN如何编辑数学公式呢? XGBoost算法是由GBDT算法演变出来的,GBDT算法在求解最优化问题的时候应用了一阶导技术,而XGBoost则使用损失函数的一阶导和二阶导,不但如此, 还可 ...

  2. 算法(一):如何高效的算出2*8的值,位移算法原理解释,为什么8左移1位,4左移2位,2左移3位,1左移4位的结果为16

    位移算法,如何高效的算出2*8的值,为什么8<<1,4<<2,2<<3,1<<4的结果为16,位移算法原理解释: 一个很重要的原因埋在前头:当初笔者刚出 ...

  3. Xgboost算法原理详解及python实现

    Xgboost算法(回归树) 1.算法原理 2.对数据的要求(无需规范化) 3.算法的优缺点 4.XGB.GBDT.LR与RF 5.python代码实现 导入相关包 读取数据并预处理 训练 贝叶斯初步 ...

  4. xgboost算法原理_从XGB到SecureBoost:看联邦学习XGB的算法原理

    摘要: 最近与某厂完成基于FATE的联邦学习框架的一个项目,第一次实践了一把联邦学习在实际业务场景中的应用,从模型评估结果来看,效果还不错.因此,本文将完成对于其中实现的提升算法SecureBoost ...

  5. xgboost 算法参数解释

    xgboost 算法 目前集成学习方法大致可分为两大类: 第一类是个体学习器之间存在强依赖关系.必须串行生成的序列化方法,这种方法的代表是"Boosting": 第二类是个体学习器 ...

  6. mysql主存 辅存_MySQL索引背后的数据结构及算法原理(转载)

    MYSQL索引数据结构请参考如下链接: 外存储器-磁盘介绍: 计算机存储设备一般分为两种:内存储器(main memory)和外存储器(external memory). 内存存取速度快,但容量小,价 ...

  7. 【深度学习】语音识别之CTC算法原理解释与公式推导

    不搞语音识别得人开这个论文确实有点费劲,结合上图,思考一下语音识别的场景,输入是一段录音,输出是识别的音素, 输入的语音文件的长度和输出的音素个数之间没有一一对应关系,通常将语音文件「分片」之后,会出 ...

  8. GBDT、随机森林、xgboost算法原理解析视频公开

    向AI转型的程序员都关注了这个号

  9. xgboost算法_xgboost算法原理篇

    1, 概述部分 这篇文章,主要来介绍一下xgboost的理论部分,可能会不够详细,由于xgboost算法相比较前三篇文章中提到的算法更加复杂,这里主要讲解一下损失函数正则化,切分点查找算法及其优化,叶 ...

最新文章

  1. javaSE8的流库总结
  2. 第 3 章 kickstart
  3. PHP正则表达式详解
  4. 温州人集体大溃败,值得所有中国人警示!
  5. bgl 词典_深大版成语词典发布!不学不是深大人!深大快讯
  6. 一个悄然成为世界最流行的操作系统诞生!
  7. 输入十个数,输出其中最大数、下标,用函数实现
  8. React-事件机制杂记
  9. SAP Spartacus默认的货币列表currency是从源代码什么地方读取的
  10. python--14 递归
  11. 进程间通信 (IPC) 方法总结(三)
  12. Linux学习笔记(四)之查看登录用户
  13. 准入控制(NAC)技术调研
  14. 怎么样用c语言读一章图片,读c语言深度剖析 -- 第一章 关键字(32个)
  15. js-对象深度克隆方法
  16. IP 层收发报文简要剖析1-ip报文的输入
  17. pds如何安装虚拟服务器,PDS工业缝纫机制版软件安装及常见问题解决方法
  18. oracle数据库表格连接数据库,excel中连接表格数据库-excel怎样连接oracle数据库(白痴级提问)...
  19. jdbc连接字符集为us7ascii的oracle数据库乱码解决办法
  20. 用php照片艺术化,Lab:照片艺术化调色处理介绍

热门文章

  1. linux 命令安装redis
  2. DevOps:软件架构师行动指南3.1 概述
  3. [MySql]锁表与解锁
  4. linux如何关闭防火墙
  5. POJ 3376 Finding Palindromes(扩展kmp+trie)
  6. Redhat下的yum更改为Centos的免费yum源
  7. 读书笔记2013第10本:《学得少却考得好Learn More Study Less》
  8. 将python3.1+pyqt4打包成exe
  9. sicily 1004 I Conduit!
  10. 彻底理解大数据 HDFS 分布式文件系统,这篇就够了