学习背景
因为工作原因吧,目前在搞一些机器学习方面的工作,我是从零开始学习,从机器学习理论到深度学习框架实战 ,本人从事java后端三年,具备一些编程一丢丢经验,所以接触python还算快,通过看书和简单的demo进行了入门,如果有小伙伴也是从后端想学机器学习,可以评论私信我,大家一起学习!
- 一个人可能走得快,一群人才能走得远
机器学习定义:
概念
机器学习方法是计算机利用已有的数据(经验),得出了某种模型(迟到的规律),并利用此模型预测未来(是否迟到)的一种方法。
定义
从广义上来说,机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无法完成的功能的方法。但从实践的意义上来说,机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法。
机器学习的分类
- 监督学习(重点)
- 输入x(数据) 标签(y) 预想结果 告诉机器:经过反复训练输入大量数据,调整y的算法,得出模型
- 非监督学习
- 只有输入大量数据x,没有标签y,机器自己得出结果
- 增强学习
机器学习需要有什么基础
python语法需要了解,因为机器学习的大量例子都是利用python去写的,python的第三方库很全
- 推荐入门python书籍- Python编程快速上手——让繁琐工作自动化(作者-王海鹏)
机器学习的入门书籍-python机器学习实战
需要的类库
- NumPy,一个流行的科学计算库
- Matplotlib,一个流行的数据绘图库
- scikit-learn官方api 机器学习类库
- pandas 中文api介绍
机器学习的安装环境
-
基础库anaconda安装,一劳永逸,集成许多python库,属于基础环境包
anaconda安装参考 -
jupyter notebook ,可以理解为开发环境(ide编辑器),可以实现边写代码边运行
学习内容(以监督学习为主):
机器学习简单算法总结
- ∑的 英语名称:Sigma, 汉语名称:西格玛(大写Σ,小写σ),是第十八个希腊字母。大写Σ最常见的用法是用于数学上的求和符号,比如:∑Pi,其中i=1,2,…,T,即为求P1 + P2 + … + PT的和。
- 监督学习的算法
线性模型,决策树,随机森林,k近邻,朴素贝叶斯分类器,神经网络(深度学习)
回归模型--预测房价等等,输出结果是不固定的
分类模型--预测这个图片是猫还是狗,输出结果是固定有限的
fw,b(x) = wx+b (w代表直线斜率,b代表y轴起始点)
- 单一算法解释
单一的分类算法:决策树、贝叶斯、人工神经网络、K-近邻、支持向量机和基于关联规则的分类,HMM
组合分类算法:Bagging和Boosting
k-近邻(kNN,k-Nearest Neighbors)算法
找出与未知样本x距离最近的k个训练样本,看这k个样本中多数属于哪一类,就把x归为那一类。
模型输入要求:连续值,类别型变量需进行one-hot编码,由于是计算距离,有必要对数据进行归一化
模型重要参数:K值及距离的定义
优点:易于理解和实现
缺点:计算量大,复杂度高,不适合实时场景
应用场景:图像压缩
2.朴素贝叶斯
利用Bayes定理来预测一个未知类别的样本属于各个类别的可能性,选择其中可能性最大的一个类别作为该样本的最终类别
模型输入要求:连续值需离散化成概率密度,如高斯模型 http://blog.csdn.net/u012162613/article/details/48323777,同时贝叶斯的输入为概率,因此需要非负
模型重要参数:
优点:生成式模型,通过计算概率来进行分类,可以用来处理多分类问题,对小规模的数据表现很好,适合多分类任务,适合增量式训练,算法也比较简单。
缺点:需要一个很强的条件独立性假设前提
应用场景:文本分类(如:垃圾邮件识别)
3.神经网络
神经网络(Artificial Neural Networks,ANN)是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型
模型输入要求:归一化特征
模型重要参数:网络层数及节点数
优点:具有实现任何复杂非线性映射的功能
缺点:收敛速度慢、计算量大、训练时间长,易收敛到局部最优
应用场景:图像处理,模式识别
4.支持向量机
根据结构风险最小化准则,以最大化分类间隔构造最优分类超平面来提高学习机的泛化能力
模型输入:二分类,归一化
模型重要参数:核函数
优点:可以解决小样本情况下的机器学习问题,可以解决高维问题 可以避免神经网络结构选择和局部极小点问题
缺点:核函数敏感,不加修改的情况下只能做二分类
应用场景:高维文本分类,小样本分类
5.决策树
决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别
模型输入:可处理连续值,类别型变量需one-hot
模型重要参数:树的高度
优点:超强的学习能力和泛化能力,训练速度快
缺点:易过拟合,改进为随机森林(Random Forest, RF)
应用场景:搜索排序
6.LR
根据现有数据对分类边界线建立回归公式,依次进行分类
模型输入:连续值需离散化,类别型变量需one-hot
模型重要参数:输入特征离散化
优点:训练速度快,适合实时场景
缺点:拟合能力较差,不能处理非线下场景,需要人为设置组合特征
应用场景:各种实时系统:如ctr 预估
- 先总结这么多,下次我会分享安装tensoflow开展深度学习,然后放一放简单demo示例,如果有大神,求带飞,因为目前都是我自己在研究,真的研究很慢,不出活!