美文网首页数据乐园@IT·互联网读书
数据挖掘入门资料和建议

数据挖掘入门资料和建议

作者: 插着扇子的石头 | 来源:发表于2017-08-02 06:34 被阅读776次
    八卦图(信息可视化课的模范作业)

    四年前我一次听说数据挖掘这个词,三年前我学习了数据挖掘理论知识,两年前我做了几个与数据挖掘有关的项目,一年前我成为一名数据挖掘工程师,今天我把数据挖掘入门资料整理了一下,希望能够对新人有帮助。

    一、python

    推荐粗读《Head First Python》一书,该书浅显易懂,有C语言基础的人只需一天就能读完,并能够使用python进行简单编程。“Head First”系列的数都很适合初学者,我还读过《Head First 设计模式》和《Head First Statistics》,感觉都不错。不过后两本,我读得比较细也比较慢,毕竟当时是首次接触设计模式和统计学相关知识,书中很多东西对我而言都是全新的。而当我读《Head First Python》时,我已经掌握了C、C++、java等多种编程语言,所以再看python就觉得比较简单了。学任何一种编程语言,一定要动手练习。python的集成开发环境有很多,我个人比较青睐PyCharm。

    用python做数据挖掘的人一般都会用到pandas数据分析包。推荐阅读《pandas: powerful Python data analysis toolkit》文档,其中《10 Minutes to pandas》这一节能让你轻松上手pandas。读了这一节你会知道怎么用一句话得到数据的一些基本统计量(每一列特征的均值、标准差、最大最小值、四分位点等),怎么简单地实现多条件的过滤,怎么将两张表按key连接,怎么将数据可视化。除了这篇文档,我还想推荐一本书《利用Python进行数据分析》,这本书和之前文档的主要内容差不多。可以书和文档交叉看,加深印象。与文档相比,书增加了数据应用等内容。与书相比,文档增加了与R、SQL对比等内容。即使是主题相同的章节,例如绘图,文档和书将知识组织起来的方式以及侧重点也有所不同。个人认为,文档和书都值得一看。

    二、统计学

    虽然我也粗读过统计学的几本书,但从易懂性来说,都没有学校老师给的ppt好,或者说自己看书比较困难,但是听老师讲课就很容易懂。所以,我建议有条件的同学能够选修统计学这门课,没条件的同学可以去网上找一些相关视频,配套书籍可以选择茆诗松的《概率论与数理统计》。另外,《Head First Statistics》一书可以用来预热。

    学了统计学,你至少应该知道基本的抽样方法、偏差与方差的区别、怎样进行数据预处理、怎样整理和显示数据、数据分布的描述统计量有哪些、假设检验是用来做什么的、置信区间的概念、R-squared的含义等等。你需要了解各种图的作用和适用场景,常用图包括条形图、饼图、直方图、折线图、箱线图、散点图、雷达图等。你需要了解各种统计量的含义,常见统计量包括均值、方差、中位数、四分位数、加权平均数、偏态、峰态等。你需要了解一些重要的分布,比如正态分布、chi-square分布、t分布、F分布等。

    三、机器学习和数据挖掘

    机器学习资料首推吴恩达的《斯坦福大学公开课:机器学习课程》视频。这20集视频确实是好视频,但对初学者来说难度偏大。我有了一点机器学习方面的基础后,再去看该视频,还花了2.5倍的时间才基本看懂。每当我跟不上视频时,就会暂停或者回退,再仔细看看课件,所以看完视频花掉的时间是视频原时长的2.5倍。另外,周志华的《机器学习》和李航的《统计学习方法》可以作为机器学习入门书籍,经典教材《Pattern Recognition and Machine Learning》可以作为机器学习进阶书籍,而《机器学习实战》一书能手把手地教你怎么实现机器学习模型的底层算法(书中包含了大量的程序清单)。

    数据挖掘方面,推荐Jiawei Han的《数据挖掘概念与技术》。该书比较容易读懂,内容广泛且实用性强,特别适合初学者。

    四、其他资料和建议

    除了系统化的学习专业知识,我们也可以每天吸收一些碎片化的知识。例如,Quora上有不少关于机器学习和数据挖掘的问答,其答案质量普遍高于知乎,有兴趣的同学可以常去Quora的机器学习相关版块逛逛。订阅好东西传送门的《机器学习日报》是一个不错的选择。每天从日报中挑选1~2篇文章读读,可以扩展自己的知识面,同时养成天天学习的好习惯。

    从Quora和《机器学习日报》中获取的一些知识点:

    (1)随机森林模型不适合用稀疏特征。

    (2)测试集必须使用与训练集相同的方法进行预处理。

    (3)L1正则(特征选择)最小样本数目m与特征n呈log关系,m = O(log n) ;

             L2正则(旋转不变)最小样本数目m与特征n呈线性关系,m = O(n) 。

    (4)标准的PCA是一种线性转换技术。

    (5)呈长尾分布的特征通常需要进行对数转换。

    (6)线性SVM适合小样本。

    (7)AUC适合作为类不平衡问题的衡量标准。

    (8)在nested k-foldcross validation中,“外层循环”的目的是模型评估,“内层循环”的目的是模型选择。

    (9)在样本数量较少的情况下,极大似然估计的效果比普通的最小二乘法差。

    想干数据挖掘这一行,光有理论知识是不够的,我们还需要积累实战经验。对于学生来讲,可以跟着老师做项目,可以参加各种大数据竞赛,也可以去公司实习。如果是参加竞赛的话,一般比赛结束后,前几名的算法会公开。我们要特别关注一下他们的算法创新点,说不定在下一个项目中就能用上。

    阿里巴巴第一届大数据竞赛前9名团队的算法创新点整理:

    第九:

    1、缺失值填充。

    2、考虑了行为转移特征(例如曾经购买过该品牌,近期再次发生点击但尚未购买;近期从购物车转移到收藏夹)。

    第八:

    1、在LR模型中,用dummy coding的方法处理了所有的特征。

    第七:

    1、模型融合做得不错。分别用滑动窗口和固定窗口建模。再用LR进行一级模型融合,最后对第一级的预测结果进行平均融合。

    第六:

    1、对不同的用户-品牌类型进行了分类,并采取了不同的处理方法。

    第五:

    1、对正例采取上采样方式,负例采取下采样方式。

    2、先用一个欠拟合的random forest初始化gbrt的残差,再用一个树的棵树不是很大的gbrt来训练,从而能够在相对短的时间内得到比用较大棵树的gbrt还要高一些的性能。

    第四:

    1、对特征进行Laplace平滑。

    第三:

    1、对数据进行归一化、分箱和去噪。

    第二:

    1、去除离群点。

    第一:

    1、用LR滤去超过80%的样本。

    2、采用了神经网络算法。

    相关文章

      网友评论

      • 38df7cc9285b:非计算机研究生,也想转行干数据挖掘,目前研二,只有些网上比赛的经历,没项目(没有机器学习方面的项目,我做的项目里面只用到一些最优化方法的内容,比如RBF神经网络,但都是软件里集成了的,只是调用了一下,很水),老师也不让实习,好愁啊,姐姐有什么建议吗
        插着扇子的石头:@大海有啥玩 上网多看点相关文档和书籍,参加数据挖掘比赛,多看点深度学习方面的内容,写相关的技术博客等等
      • e8e976845a84:我在做支持向量机~其实也只是在调用人家的库而已😁😁😁羞羞
        插着扇子的石头:我研究生的时候,也是用的支持向量机,还是用的线性支持向量机,也是调用别人的库。:sweat_smile:
      • 这会是个帅气的名字:数据挖掘的专硕市场怎么样?😘😘
        插着扇子的石头: @这会是个帅气的名字 应该还蛮好找的,毕竟这行需求量还是蛮大的🌻
        这会是个帅气的名字: @这会是个帅气的名字 那学硕呢?
        插着扇子的石头: @这会是个帅气的名字 不知道哎
      • 09b26615005b:虽然比较专业听不懂,但是感觉入门了应该挺有意思的😄
        插着扇子的石头::sob: 哪儿没看懂,我感觉自己都是在说很基础的东西啊
      • 小宝686:说的很全面。点个赞
      • 维真_dfb9:姐姐 数据挖掘不都是研究生才能赶得上么?本科生怎么才能干上呀?
        插着扇子的石头:@维真_dfb9 门槛高不高都是相对的。我毕业也刚工作一年,打着数据挖掘工程师的title做着研发的事。
        招人的时候要求至少是硕士生,要会各种机器学习算法和数据分析方法。进去之后,就是各种开发,各种找bug,机器学习的影子都没见着几回。:sob:
        深度学习方面我也不太懂,等需要的时候再深入了解吧。IT技术更新换代太快了,也没必要急着学新技术,按着自己的节奏一点点学就行了。
        维真_dfb9: @插着扇子的石头 我是信息与计算科学专业 大三学过数据分析课程。现在毕业工作一年了 感觉这个门槛好高 一般都招硕士😂tensorflow都出来了我们还在作简单的增删改查
        插着扇子的石头:我们大四开了一门课,叫《数据挖掘》。《数据挖掘》基础部分并不复杂,本科应该也能看懂。
        你可以主动找学校老师,让他带你做数据挖掘项目。大三时,我有个同学就是自己主动找老师要做项目,做的是蚁群算法,和人工智能也扯得上点关系,后来,他又把我拉进去,最后就是我俩跟着老师做。感觉收获挺大的。
      • 道士爱学习:感觉都是数学相关的内容,好难啊。一头雾水,一点都不懂。目前在自学java
        插着扇子的石头:@道士爱学习 世界上确实有这方面(数据挖掘在股市上的应用)的研究,但股市因为各种原因非常难预测。所以数据挖掘技术一般是辅助预测,目前还没发现有什么准确度高的软件(即使有,一般也不公开或者需要收费)。
        道士爱学习: @插着扇子的石头 听你的意思,数据挖掘那不很可以根据股市行情,和历史规律数据,利用超高速计算机运算准确估算股票的价格而盈利?美国不是就有这样的专业用技术赚股票钱的公司
        插着扇子的石头:不是啊,除了统计学,其他内容与数学关系都不大。从研发转数据挖掘也比较容易的,看半年书就能做一些简单的机器学习项目了,然后就可以一边做一边学啦。
      • 道士爱学习:你这个图好形象生动哦。。。人才啊
      • 这会是个帅气的名字:head first python 讲的是python几?
        插着扇子的石头:书好像讲的是python 3,而我平常一般用python 2.7。版本之间差异不是很大吧。

      本文标题:数据挖掘入门资料和建议

      本文链接:https://www.haomeiwen.com/subject/hjyrlxtx.html