kaggle初体验

本文作者通过参与Kaggle的Santander Product Recommendation比赛,分享了初次接触数据分析和机器学习的心得。文章强调了Python和Anaconda在数据处理中的重要性,以及在面对大数据时遇到的内存问题和性能优化的策略。此外,还提到了数据工程在机器学习项目中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  前期通过了解相关的SOC安全框架,明确大规模的数据处理、挖掘是其中最为关键的环节,也是SOC深度应用的关键,这里离不开海量数据的分析与机器学习。如Cisco开放的OpenSoc开源框架中,在Storm中就需要自己编写分析引擎和机器学习方法,来进一步针对实际业务优化分析结果。为此,特别留出一部分时间对于数据分析、机器学习进行了一个粗的了解,顺道参加了kaggle的Santander Product Recommendation,第一次参加,目标没有定太高,抱着进一球、平一场,赢一场的目标去的,幸运的是,基本达成了目标,虽然成绩很差,这里就不献丑了,这里主要总结一下相关的血泪教训。
  
  1、工欲善其事,必先利其器
  Python或者Ruby,用于数据分析最多的语言,原因无它,大量现成的有关数据处理的数据包,让你事半功倍,这里不啰嗦,自己度娘。我用的是python.
  开发工具使用的是Anaconda,摆脱数据分析环境搭建之苦,安装即OK了。
  
  2、器欲尽其能,必先得其法
  以前用Java较多,python基本为零,仅知道有这么一个东西。仔细了解了一下,还是有很多的优点,比如简洁、易懂等等,上手很快,但用好不易。在做数据分析过程中,我仅仅使用dataframe、pandas、series等基本就能够完成相关的数据整理、清洗工作,但这几个数据结构功能也是非常的强大,只有想不到,没有做不到,其每一个属性、每一个函数都是非常有用的。我在参加这个竞赛的过程中,由于对于这些数据结构不熟悉,写了一堆代码,但其实其有专门的函数在解决类似的问题。大家记得多度娘,函数太多,刚开始不好掌握。
  至于Anaconda就不多说了,相关的使用手册走起。
  3、痛点回头看
  (1)数据量大,内存不够
  现在数据分析的数据量越来越大,这次竞赛给出的数据解压完了以后是个大小约为2G的csv文件,普通的笔记本基本上没有办法用了,在线计算对于使用的内存用限制,部分同志租用了提供Iaas的虚机,如阿里云,亚马逊等,分布式存储等,我用了一台服务器,内存为32G,基本满足了要求。但是也可以考虑使用分read_csv的分片读取,分片处理的方法进行处理,计算,但需要忍受处理的时间。因此,参加这项比赛,需要准备一个好点的机器。
  (2)性能优化
  由于python本身的性能也不是太出色,处理的数据量大,整个计算分析过程需要较长的时间,在写程序的过程中一定要注意优化程序,部分内容可以参见这里
  我最初写的程序运行了一个晚上,还在跑,后来该调整调整,去队重复计算的内容,最后只需要一个多小时就出结果了,还算满意。这里面有几个点特别需要注意:
  a、用好dataframe自身的函数,尽量减少自己写函数处理dataframe中的数据,尤其是逐行定位单个数据,处理单个数据,非常耗时间。
  b、减少dataframe的append操作,最好将需要添加的行形成一个dict,一次性添加到dataframe中,不然谁用谁知道,说出来都是类。原因,网上有分析的。
  c、用到什么数据就处理什么数据,不要全都读进来。
  (3) 数据工程
  kaggle中机器学习使用的方面目前用的较少,有可能是我理解的还不是很透,我大量的时间都用在如何处理缺少的数据、如何选择数据特征上面,这方面还需要不断的学习。相关的data engineering工作可以百度。
  
  
  
  
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值