浅谈KMlib(机器学习)
PipeLine
Pipeline:管道,
在spark mllib中,作用主要是来定义计算的流程。模型的保存等。
相当于提供了一个工具类,可以让我们更方便的使用spark mllib
推荐:在使用sparkmllib过程中,建议通过pipeline将数据处理流程,连接起来,同时将模型的结果通过pipeline保存和加载。
完整的机器学习流程:
1数据的获取//加载数据 5%
2.数据的预处理//(字符串转数字,缺失值的处理,异常值的处理,hash) 70%
3.模型的训练 10%
4.在测试数据上进行模型的评估(错误率,正确率,MSE 最小平方误差)10%
5.如果模型达标,进行模型的保存,如果不达标,可以更换模型,或者对数据再次预处理。
机器学习模型总结:
1.分类:事先已经知道类别,只是对数据划分到已知的类别中,监督算法。
Ie:垃圾邮件 垃圾短信 信用评级 。。。
- 逻辑斯蒂回归
- 决策树
- 贝叶斯
- 随机森林
2.聚类:事先不知道类别,只是将数据集划分成指定的个数。非监督算法
Ie:人群划分,收入划分,成绩划分。。
算法名称:Kmeans
3.回归:预测一个连续型的值。
Ie:预测收入,预测价格,预测温度。。。。
算法名称:线性回归算法
4.关联分析/关联规则 以及 协同过滤
关联分析:分析两两元素,或者多个元素相互之间的关系,求其一同出现的次数。次数越高,则说明关系越密切。
可以分析两两商品或多个商品同时出现的次数,基于此推荐。
算法名称:FP-growth.
协同过滤:分析用户与用户(物品与物品)之间的相似度。根据相似用户,进行商品推荐。
算法名称:ALS
(ML)机器学习:数学模型、建模
流程:提出模型-à序列-à预算
(DL)深度学习ß--à(AI)人工智能
能看:识别图像、人脸识别、识别万物
能说:语音功能
能听:语音识别、翻译
汽车自动驾驶
神经网络:分为三层
深度神经网络模型:吴恩达
1.线性回归:在空间里有n个点,在空间中画出一条直线到n个点距离之和最小。
线性:y=ax+b (一元一次函数) a:相关系数 b:截距(到x轴的距离)
Y=a0+a1x1+a2x2+….+anxn
回归:逼近,n点线的距离最近
作用:可以做预测(明天天气)
属于:监督性学习
特征(x):x1—天气 x2----时间 x3----地点 x4------风速
求某个方向上的变化率
《最终变成n元线性方程组》
训练:7/8 训练数据,建立模型
测试:3/2 检验模型 是否成效
配置项:
SetFeaturecol(“features”) 特征 因变量(x)
setLabelcol(“label”) 自变量 (y)
利用训练数据对模型拟合成型。Lir.fit()
Eg:由年龄、身高--à体重
模型:y=a+a1x1+a2x2 x1~2:表示身高、体重 y表示体重
数据:21 175 120 输出的是一个double类型的值
spark加载数据:spark.sparkcontext.textFile(“PathName”)
对象返回两个参数:record(arr(0),arr(1))
抽样:randomsplit(Array(0.8,0.2)) 对数据进行抽样训练
2.聚类(KmeanSexample):先选取聚类中心(或者自动随机产生),将与这个聚类中心的距离(两点之间的距离-欧式距离)最小的点先归为一类,再区这一类的聚类中心(这些点的中心点作为新的聚类中心),迭代,直到与下次的情况一样。就讲这归类的作为稳定类。
属于:无监督学习
从开始不知道类别,最后归类
作用于:人力资源(分等级)、人物画像
Setk(2) 2类 自动可以设置随机数种子
3.分类:监督学习 开始类别已知
4.逻辑斯蒂(Logistic Regression):输入数字,输出类别(0/1)
与线性回归的区别:线性回归输出的是double类型(正无穷到负无穷),LR输出的是0/1(0~1)
将线性回归的接轨映射成0~1之间
再将值小于0.5-à0 大于等于0.5-----à1
人脸识别、to be or ont to be、只要是做与不做的情况