数据挖掘--Outlines

来源:互联网 发布:linux清空文件内容 编辑:程序博客网 时间:2024/06/05 17:29

**1.分类问题**根据数据样本上抽取出的特征,判定其属于有限个类别中的哪一个。比如:垃圾邮件识别(结果类别:1、垃圾邮件 2、正常邮件)文本情感褒贬分析(结果类别:1、褒 2、贬)图像内容识别识别(结果类别:1、喵星人 2、汪星人 3、人类 4、草泥马 5、都不是)。

**2.回归问题**根据数据样本上抽取出的特征,预测一个连续值的结果。比如:星爷《美人鱼》票房大帝都2个月后的房价隔壁熊孩子一天来你家几次,宠幸你多少玩具

**3.聚类问题** 根据数据样本上抽取出的特征,让样本抱抱团(相近/相关的样本在一团内)。比如:google的新闻分类用户群体划分。

>分类与回归问题需要用已知结果的数据做训练,属于“监督学习” 聚类的问题不需要已知标签,属于“非监督学习”。

<一、数学基础>

3.1.1 微积分

  • 微分的计算及其几何、物理含义,是机器学习中大多数算法的求解过程的核心。比如算法中运用到梯度下降法、牛顿法等。如果对其几何意义有充分的理解,就能理解“梯度下降是用平面来逼近局部,牛顿法是用曲面逼近局部”,能够更好地理解运用这样的方法。


  • 凸优化和条件最优化 的相关知识在算法中的应用随处可见,如果能有系统的学习将使得你对算法的认识达到一个新高度。

3.1.2 线性代数

  • 大多数机器学习的算法要应用起来,依赖于高效的计算,这种场景下,程序员GG们习惯的多层for循环通常就行不通了,而大多数的循环操作可转化成矩阵之间的乘法运算,这就和线性代数有莫大的关系了

  • 向量的内积运算更是随处可见。

  • 矩阵乘法与分解在机器学习的主成分分析(PCA)和奇异值分解(SVD) 等部分呈现刷屏状地出现。

3.1.3 概率与统计

从广义来说,机器学习在做的很多事情,和统计层面数据分析和发掘隐藏的模式,是非常类似的。

  • 极大似然思想、贝叶斯模型 是理论基础,朴素贝叶斯(Na?ve Bayes )、语言模型(N-gram)、隐马尔科夫(HMM)、隐变量混合概率模型是他们的高级形态。

  • 常见分布如高斯分布是混合高斯模型(GMM)等的基础。

  • <二、算法基础>

  • 3.2 典型算法

    绝大多数问题用典型机器学习的算法都能解决,粗略地列举一下这些方法如下:

    1. 处理分类问题的常用算法包括:逻辑回归(工业界最常用),支持向量机,随机森林,朴素贝叶斯(NLP中常用),深度神经网络(视频、图片、语音等多媒体数据中使用)

    2. 处理回归问题的常用算法包括:线性回归,普通最小二乘回归(Ordinary Least Squares Regression),逐步回归(Stepwise Regression),多元自适应回归样条(Multivariate Adaptive Regression Splines)

    3. 处理聚类问题的常用算法包括:K均值(K-means),基于密度聚类,LDA等等。

    4. 降维的常用算法包括:主成分分析(PCA),奇异值分解(SVD) 等。

    5. 推荐系统的常用算法:协同过滤算法

    6. 模型融合(model ensemble)和提升(boosting)的算法包括:bagging,adaboost,GBDT,GBRT

    7. 其他很重要的算法包括:EM算法等等。
    <三、编程基础>

  • 3.3.1 python

    python有着全品类的数据科学工具,从数据获取、数据清洗到整合各种算法都做得非常全面。

    • 网页爬虫: scrapy

    • 数据挖掘: 

      • pandas:模拟R,进行数据浏览与预处理。

      • numpy:数组运算。

      • scipy:高效的科学计算。

      • matplotlib:非常方便的数据可视化工具。

    • 机器学习: 

      • scikit-learn:远近闻名的机器学习package。未必是最高效的,但是接口真心封装得好,几乎所有的机器学习算法输入输出部分格式都一致。而它的支持文档甚至可以直接当做教程来学习,非常用心。对于不是非常高纬度、高量级的数据,scikit-learn胜任得非常好(有兴趣可以看看sklearn的源码,也很有意思)。

      • libsvm:高效率的svm模型实现(了解一下很有好处,libsvm的系数数据输入格式,在各处都非常常见)

      • keras/TensorFlow:对深度学习感兴趣的同学,也能很方便地搭建自己的神经网络了。

    • 自然语言处理: 

      • nltk:自然语言处理的相关功能做得非常全面,有典型语料库,而且上手也非常容易。

    • 交互式环境: 

      • ipython notebook:能直接打通数据到结果的通道,方便至极。强力推荐。

    3.3.2 R

    R最大的优势是开源社区,聚集了非常多功能强大可直接使用的包,绝大多数的机器学习算法在R中都有完善的包可直接使用,同时文档也非常齐全。常见的package包括:RGtk2, pmml, colorspace, ada, amap, arules, biclust, cba, descr, doBy, e1071, ellipse等等。另外,值得一提的是R的可视化效果做得非常不错,而这对于机器学习是非常有帮助的。


0 0