Wednesday, May 10, 2017

Machine learning简介



关联规则学习Apriori先验算法:用于发现变量间的关系,比如超市中同一次购买的产品间关系。
数据:
TID 网球拍 网 球 运动鞋 羽毛球
1 1 1 1 0
2 1 1 0 0
3 1 0 0 0
4 1 0 1 0
5 0 1 1 1
6 1 1 0 0
结论:
关联规则网球拍=>网球是有趣的,认为购买网球拍和购买网球之间存在强关联。


机器学习流程

以分类问题为例。这个例子的数据是通过多个因素来判断学生期末考试成绩合格与否。
目标:期末考试G3>=10即为及格,否则不及格,所以是Binary的分类问题
输入:包括32个attributes,比如famsize家庭大小,Mjob母亲工作,Fjob父亲工作,reason选择此校原因,G1和G2为前两次小测的成绩(对结果有重大影响的attribute)。

数据(http://archive.ics.uci.edu/ml/datasets/Student+Performance):

sex age address famsize Mjob Fjob reason G1 G2 G3
F 18 U GT3 at_home teacher course 0 11 11
F 17 U GT3 at_home other course 9 11 11
F 15 U LE3 at_home other other 12 13 12
F 15 U GT3 health services home 14 14 14


总体流程还包括前期数据收集(预测产品销售:季节,promotion,历史销售,价格;广告是否点击:广告位置,用户性别,广告颜色,价钱)、清理(null用mean代替)、sanity check(平均值,方差),后期就是在prod应用model计算新数据的目标值。























Feature extraction特征数值化:上例如Fjob是String,可以取这列的distinct数值(N个),按1-N编号,再建立一个map把特征string和编号对应起来。即使numeric的列也需要做同一处理以缩小值的范围。而目标列就按二值处理。

Feature selection特征选择:有些特征对目标预测有强关联关系,比如G1、G2对G3,而有些特征如age对G3可能弱关联。选择合适的特征对预测结果score(准确度)有至关重要的作用。至于哪些特征对目标有影响,可以通过关联规则来确定。

Split data训练测试数据分离:一般采用10次交叉验证10-fold cross-validation,随机分成10份样品,9份训练,一份测试,进行10次这样的训练取平均结果。

Fit model训练模型:就是用训练数据去训练model。每种model都会有自己的参数(比如决策树的深度max_depth=5)。这个过程需要parameter tuning。

Predict预测测试数据:用训练好的model去计算测试数据的目标特征值G3.

Score计算分数(准确度):用测试数据实际结果G3和model计算出来的G3比较,看false positive和false negative的数量确定分数。


机器学习问题分类

回归预测:预测产品销售
分类问题:产品分类,错误订单,用户会否点击广告
推荐系统:推荐产品
NLP: 产品是否重复
http://docs.aws.amazon.com/zh_cn/machine-learning/latest/dg/types-of-ml-models.html


Model应用场合

Supervised Learning适用与已知LABEL的情况.
Semi-supervised Learning适用于有Latent Variable的情况
Unsupervised Learning适用于有Latent Variable的情况


数据维度易受攻击简介场景
随机森林random forest不高决策树的进阶版,集成算法,不容易被攻击。不需要很多参数调整就可以达到不错的效果。首选尝试几乎所有
支持向量机SVM极不找到不同类别之间的分界面。第二选择
神经网络Neural network利用训练样本(training sample)来逐渐地完善参数。如预测身高,若输入的特征中有一个是性别,而输出的特征是身高。那么当训练样本是有大部分高的男生,在神经网络中,从“男”到“高”的路线就会被强化。有很多很多层。受限于计算机的速度。数据量庞大,参数之间存在内在联系。以及生成数据,用来做降维
近邻KNN找到离它最近的几个数据点,根据它们的类型决定待判断点的类型。它的特点是完全跟着数据走,没有数学模型可言。容易解释的模型。推荐算法
贝叶斯Bayesian根据条件概率计算待判断点的类型垃圾邮件过滤器
决策树Decision tree它总是在沿着特征做切分。随着层层递进,这个划分会越来越细。一些更有用的算法的基石。N/A
逻辑斯蒂回归Logistic regression回归方法的核心就是为函数找到最合适的参数,使得函数的值和样本的值最接近。例如线性回归(Linear regression)就是对于函数f(x)=ax+b,找到最合适的a,b。它拟合的是一个概率学中的函数。虽然效果一般,却胜在模型清晰



应用场景
https://www.zhihu.com/question/26726794

classification->random forest, SVM, neural
clustering
regression
recommendation
spam detection
NLP

推荐系统
https://www.zhihu.com/question/19971859
https://jlunevermore.github.io/2016/06/25/36.python%E5%AE%9E%E7%8E%B0%E6%8E%A8%E8%8D%90%E7%B3%BB%E7%BB%9F/
http://blog.csdn.net/u012050154/article/details/51438906

评估分类器
https://www.zybuluo.com/littlekid/note/66980#评估分类器

No comments:

Post a Comment