关联规则学习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的数量确定分数。
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
分类问题:产品分类,错误订单,用户会否点击广告
推荐系统:推荐产品
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