《集体智慧编程》之机器学习&数据挖掘框架认识

jopen 10年前

    前言:新开通的博客,用于记录一些学习方面的东西,算是一个学习笔记吧。本系列按照《集体智慧编程》一书的框架进行。老实说,《集体》在理论上并不算是很好的参考书,但是该书是以一个个具体场景应用为驱动的,个人认为很适合用于机器学习相关的入门教材,起码很对我的胃口。

    “假如你训练了一只狗,若干年后,如果它忽然有一天能帮你擦鞋洗衣服,那么这就是数据挖掘;要是忽然有一天,你发现狗化装成一个老太婆消失了,那么这就是机器学习。” ——杨强,香港科技大学

    机器学习说起来应该是人工智能领域与算法领域的一个子领域。它允许计算机不断的进行学习。大多数情况下,这相当于将一组数据传递给算法,并由算法推断出这些数据属性相关的信息——借助这些信息,算法能够预测出未来有可能出现的其他数据。简单点来说就是从数据中自动分析获得规律,并利用规律对未知数据进行预测。

    数据挖掘在某方面可以说算是机器学习的一种应用。机器学习算法其它的方面的应用有计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺骗、证券市场分析、DNA序列测序、语音和手写字识别、战略游戏和机器人运用等。

1、机器学习&数据挖掘的数学基础

机器学习是一个多领域交叉的学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等。具体来说,机器学习与数据挖掘学习需要用到的数学核心基础有以下几个方面:

①微积分 (没办法,这个是数学分析的基础)

②线性代数 (主要用来理解有关数据的向量表示及矩阵/向量运算)

③概率论 (你不得不相信,机器学习算法的现状是多数是基于统计概率,剩下的是树模型)

④统计学

⑤离散数学 (这个。。。傻傻地只知道便于逻辑推理、符号运算、线性转离散,具体还没碰到)

进阶学习需要用到的数学基础有(除了复变函数听说过一点,别的对我来说都来自火星):

①泛函分析

②复变函数

③偏微分方程

④抽象代数

⑤约束优化

⑥模糊数学

⑦数值计算等

2、机器学习&数据挖掘的类别

2.1、机器学习主要可以分成下面几种类别:

①监督学习:

    形式:从训练集(有人为标注的结果)学习一个函数,当新的数据到来时,把数据传递给这个函数,嗖,Duang!就把结果给你了 A--->f(x)--->B

    常见算法:回归分析与统计分类

②无监督学习

    形式:A---->B

    常见算法:聚类

③半监督学习(还没碰到)

④增强型学习

     主要是通过周围环境的反馈(还没碰到)

        2.2、算法分类

         机器学习与数据挖据算法主要有以下三个方面:

①聚类

②分类

③推荐(某种程度上算是前面两个的应用)

         具体的机器学习算法有:

构造条件概率:回归分析与统计分类

    人工神经网络

    决策树

    高斯过程回归

    线性判别分析

    最近邻(KNN)

    感知器

    径向基函数核()

    支持向量机(SVM)

通过再生模型构造概率密度函数

    最大期望算法

    图模型:贝叶斯网络、Markov随机场

近似推断技术

     马尔科夫链

     蒙特卡罗方法

     变分法

最优化

    大多数以上方法、直接或剪辑使用最优化算法

3、机器学习与数据挖掘的十大算法

把这个单独列出来呢是因为这十大算法不是按类别分的,而是人为选取出来在机器学习和数据挖掘方面影响最大的Top10算法。

①C4.5

②K-means

③SVM

④Apriori

⑤EM

⑥PageRank

⑦AdaBoost

⑧KNN

⑨NaiveBages

⑩CART

4、机器学习的局限

         机器学习不是“银弹”,也有自身的缺点。主要表现在:

         ①机器学习算法受限于其在大量模式之上的归纳能力,而一个模式只能根据过往的信息,而无法找出新遇到的信息和过往信息的相似之处

         ②所有的机器学习算法都有过度归纳的可能性

5、应用

        嘎嘎,发展兴起和学习什么机器学习也好,数据挖掘也好,为的是啥?——使用它们来为我们服务,让我们的生活更美好!

①推荐系统

    当当、亚马逊之类的推荐商品;

    delicious.com URL分享

    豆瓣类的

    微博、搜索引擎

    约会网站、交友网站(任何一种成功的匹配算法很可能都会涉及一个持续不断的求值过程——算法会反复判断选定的匹配成功与否)

②生物工艺学

    人类的测序技术和筛选技术(DNA序列、蛋白质结构、化合物筛选以及RNA表达)

③金融欺诈侦测

    利用技术:神经网络、归纳逻辑

④机器视觉

    从大数据集中发现有趣特征的独立组元分析技术(无人监控)

    车牌识别、人脸识别

⑤产品市场化

⑥供应链优化

⑦国家安全

    政府部门搜集海量信息,对数据分析将其与潜在的威胁联系起来

。。。

    附:

1、相关的软件

①MATLAB/GNU Octave

    用于矩阵运算分析、线性分析、多元函数分析、数值微积分、方程求解、边值问题求解、数据统计、绘图

②SPSS系列

    封装好的算法,可以直接调用,用以发现、检验等等

③R

    用于统计分析、绘图。内建多种统计学及数字分析功能

④Python程序集(NumPy、BS、Sci、matplotlib、PIL、CV2等)

    数据获取、数据清洗、数据分析、算法实现、绘图、系统实现等等

2、相关资讯资料链接

①维基百科

    了解基础概念

②好东西传送门

    微博:http://weibo.com/haoawesome

    主页:http://memect.com/

③结构之法 算法之道(v_July_v)

    博客地址:http://blog.csdn.net/v_July_v