《集体智慧编程》之机器学习&数据挖掘框架认识
前言:新开通的博客,用于记录一些学习方面的东西,算是一个学习笔记吧。本系列按照《集体智慧编程》一书的框架进行。老实说,《集体》在理论上并不算是很好的参考书,但是该书是以一个个具体场景应用为驱动的,个人认为很适合用于机器学习相关的入门教材,起码很对我的胃口。
“假如你训练了一只狗,若干年后,如果它忽然有一天能帮你擦鞋洗衣服,那么这就是数据挖掘;要是忽然有一天,你发现狗化装成一个老太婆消失了,那么这就是机器学习。” ——杨强,香港科技大学
机器学习说起来应该是人工智能领域与算法领域的一个子领域。它允许计算机不断的进行学习。大多数情况下,这相当于将一组数据传递给算法,并由算法推断出这些数据属性相关的信息——借助这些信息,算法能够预测出未来有可能出现的其他数据。简单点来说就是从数据中自动分析获得规律,并利用规律对未知数据进行预测。
数据挖掘在某方面可以说算是机器学习的一种应用。机器学习算法其它的方面的应用有计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺骗、证券市场分析、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
③结构之法 算法之道(v_July_v)