Spark 机器学习

机器学习
    1.监督学习
        有训练数据集。规范数据。合规数据。产生推断函数.然后对新数据应用函数。
        director actor edit         Label

    2.非监督学习
        没有训练数据。
        分组。

    3.推荐
        协同过滤.
        猜测你喜欢.
        电商。


Spark机器学习库

[Estimator]
        运行在包含了feature和label(结果)的dataFrame之上,对数据进行训练创建model。
        该模型用于以后的预测。

    [Transformer]
        将包含feature的Dataframe变换成了包含了预测的dataframe.
        由Estimator创建的model就是Transformer。

    [Parameter]
        Estimator和Transformer使用的数据,通常和机器学习的算法相关。
        Spark API给出了一致性API针对算法。

    [Pipeline]
        将Estimators和Transformers组合在一起,形成机器学习工作流.

机器学习应用步骤

    1.读取数据文件形成训练数据框
    2.创建LinearRegression并设置参数
    3.对训练数据进行模型拟合,完成评估管线.
    4.创建包含测试数据的DataFrame,典型包含feature和label,可以通过比较预测标签和测试标签确认model是ok,
    5.使用模型,对测试数据进行变换(应用模型),抽取feature ,label,predication.

 

scala 机器学习使用:

1.引入pom

         <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-mllib_2.11</artifactId>
            <version>2.1.0</version>
        </dependency>

 2.scala类:

package com.mao.scala.scala

import org.apache.spark.ml.linalg.Vectors
import org.apache.spark.ml.regression.LinearRegression
import org.apache.spark.sql.SparkSession

object SparkMLDemo1 {
    def main(args: Array[String]): Unit = {
        val sess = SparkSession.builder().appName("ml").master("local[4]").getOrCreate();
        val sc = sess.sparkContext;
        //数据目录
        val dataDir = "file:///D:/downloads/bigdata/ml/winequality-white.csv"
        //定义样例类
        case class Wine(FixedAcidity: Double, VolatileAcidity: Double,
                        CitricAcid: Double, ResidualSugar: Double, Chlorides: Double,
                        FreeSulfurDioxide: Double, TotalSulfurDioxide: Double, Density: Double, PH:
                        Double, Sulphates: Double, Alcohol: Double, Quality: Double)

        //变换
        val wineDataRDD = sc.textFile(dataDir).map(_.split(";")).map(w => Wine(w(0).toDouble, w(1).toDouble,
            w(2).toDouble, w(3).toDouble, w(4).toDouble, w(5).toDouble, w(6).toDouble, w(7).toDouble, w(8).toDouble
            , w(9).toDouble, w(10).toDouble, w(11).toDouble))

        import sess.implicits._

        //转换RDD成DataFrame
        val trainingDF = wineDataRDD.map(w => (w.Quality,
            Vectors.dense(w.FixedAcidity, w.VolatileAcidity,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值