第一次参加天池新人赛,主要目的还是想考察下自己对机器学习上的成果,以及系统化的实现一下所学的东西。看看自己的掌握度如何,能否顺利的完成一个分析工作。为之后的学习奠定基础。

  这次成绩并不好,只是把整个机器学习的流程熟悉了下。我本人总结如下:

  步骤一:读懂题目含义,分析赛题的数据

  步骤二:特征工程的设计,这部分非常重要,好的特征工程能大大提高模型的准确率

  步骤三:训练算法。区分训练集、测试集等。

  步骤四:测试模型,看效果如何。

 

  赛题可以去天池的官网查看,里面有赛题说明,赛题数据等等

  https://tianchi.aliyun.com/getStart/introduction.htm?spm=5176.11165418.333.1.3c2e613cd1CCDk&raceId=231593

  以下是代码部分:

  

1 import numpy as np
2 import pandas as pd
3 
4 #导入数据
5 train_online = pd.read_csv('ccf_online_stage1_train.csv')
6 train_offline = pd.read_csv('ccf_offline_stage1_train.csv')
7 test = pd.read_csv('ccf_offline_stage1_test_revised.csv')
1 #将数据合并,以便统一对数据进行处理。都是线下数据
2 all_offline = pd.concat([train_offline,test])
1 #查看每一列的异常值
2 f = lambda x:sum(x.isnull())
3 all_offline.apply(f)

  天池新人赛-天池新人实战赛o2o优惠券使用预测(一)

 1 #Data的空值 赋值为null,统一空值的格式
 2 all_offline['Date'] = all_offline['Date'].fillna('null')
 3 
 4 #将online与offline的数据合并
 5 pd.merge(all_offline,train_online,on=['Merchant_id','User_id'])
 6 
 7 #通过合并数据,发现两者并无交集,题目要求只用线下预测,故排除线上online数据,
 8 #只用offline数据
 9 
10 #根据赛题的要求,把正负样本标注出来
11 def is_used(column):
12     if column['Date']!='null' and column['Coupon_id']!='null':
13         return 1
14     elif column['Date']=='null' and column['Coupon_id']!='null':
15         return -1
16     else:
17         return 0
18 
19 all_offline['is_used'] = all_offline.apply(is_used,axis=1)
View Code

相关文章:

  • 2022-12-23
  • 2021-07-25
  • 2021-12-06
  • 2021-10-23
  • 2021-12-13
  • 2021-05-30
  • 2021-11-07
  • 2022-12-23
猜你喜欢
  • 2021-05-16
  • 2021-12-14
  • 2021-06-06
  • 2022-12-23
  • 2021-08-19
  • 2022-12-23
  • 2021-11-28
相关资源
相似解决方案