中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

KNN

模型接口类别

函数接口

ML API

def fit(dataset: Dataset[_]): KNNModel def transform(dataset: Dataset[_]): DataFrame

ML API

  • 功能描述

    输入Dataset形式的特征,输出每个样本的k近邻。

  • 输入输出
    1. 包名:org.apache.spark.ml.neighbors
    2. 类名:KNN
    3. 方法名:fit/transform
    4. 输入:训练样本Dataset[_],测试样本Dataset[_]。

      Param name

      Type(s)

      Description

      dataset

      Dataset[_]

      包含样本特征的DF

      k

      Int

      近邻数

    5. 算法参数
      1. fit参数

        Param name

        Type(s)

        Default

        Description

        setFeaturesCol(value :String

        String

        features

        训练集特征列名

        setAuxiliaryCols(valu e:Array[String])

        Array[Str ing]

        Array.empty[St ring]

        训练集附加列列名

      2. transform参数

        Param name

        Type(s)

        Default

        Description

        setFeaturesCol(v alue: String)

        String

        features

        测试集特征列名

        setNeighborsCo l(value:String)

        String

        neighbors

        邻居附加列列名

        setDistanceCol( value: String)

        String

        distances

        邻居距离列名

        setK(value: Int)

        Int

        1

        近邻数

        setTestBatchSiz e(value: Int)

        Int

        1024

        搜索Batch大小

        参数及fit代码接口示例:

        val model = new KNN()
            .setFeaturesCol(featuresCol)
            .setAuxiliaryCols(Array("id"))
            .fit(trainDataDF)
    6. 输出:距离测试样本最近的k个近邻,包括距离和训练样本的附加列。

      Param name

      Type(s)

      Description

      dataset

      Dataset[_]

      包含k近邻距离和附加列的DF

● 使用样例

val model = new KNN()
    .setFeaturesCol(featuresCol)
    .setAuxiliaryCols(Array("id"))
    .fit(trainDataDF)
val testResults = model
    .setFeaturesCol(featuresCol)
    .setNeighborsCol(neighborsCol)
    .setDistanceCol(distanceCol)
    .setK(k)
    .setTestBatchSize(testBatchSize)
    .transform(testDataDF)