当前位置: 首页 > 知识库问答 >
问题:

流式k-means聚类是在spark的MLlib库中预定义的有监督的还是无监督的?

孔飞翔
2023-03-14
package org.apache.spark.examples.mllib

import org.apache.spark.SparkConf
import org.apache.spark.mllib.clustering.StreamingKMeans
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.streaming.{Seconds, StreamingContext}


object StreamingKMeansExample {

    def main(args: Array[String]) {
        if (args.length != 5) {
            System.err.println(  "Usage: StreamingKMeansExample " +
                "<trainingDir> <testDir> <batchDuration> <numClusters>         <numDimensions>")
            System.exit(1)
        }

        val conf = new SparkConf().setMaster("localhost").setAppName
        ("StreamingKMeansExample")
        val ssc = new StreamingContext(conf, Seconds(args(2).toLong))

        val trainingData = ssc.textFileStream(args(0)).map(Vectors.parse)
        val testData = ssc.textFileStream(args(1)).map(LabeledPoint.parse)

        val model = new StreamingKMeans().setK(args(3).toInt)
        .setDecayFactor(1.0)
        .setRandomCenters(args(4).toInt, 0.0)

        model.trainOn(trainingData)
        model.predictOnValues(testData.map(lp => (lp.label,      lp.features))).print()

        ssc.start()
        ssc.awaitTermination()
    }
}

共有1个答案

穆远
2023-03-14

K-means(流式或正则)是一种聚类算法。根据定义,聚类算法是无监督的。也就是说,您不知道数据的自然分组(标签),而您希望自动将相似的实体分组在一起。

这里的术语训练指的是“学习”集群(质心)。

术语predict指的是预测一个新点属于哪个集群。

 类似资料:
  • 本文向大家介绍监督学习和无监督学习的区别相关面试题,主要包含被问及监督学习和无监督学习的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 输入的数据有标签则为监督学习,输入数据无标签为非监督学习。

  • 校验者: @程威 翻译者: @十四号 如果你的特征数量很多, 在监督步骤之前, 可以通过无监督的步骤来减少特征. 很多的 无监督学习 方法实现了一个名为 transform 的方法, 它可以用来降低维度. 下面我们将讨论大量使用这种模式的两个具体示例. 4.4.1. PCA: 主成份分析 decomposition.PCA 寻找能够捕捉原始特征的差异的特征的组合. 请参阅 分解成分中的信号(矩阵分

  • 2.1. 高斯混合模型 2.1.1. 高斯混合 2.1.1.1. 优缺点 GaussianMixture 2.1.1.1.1. 优点 2.1.1.1.2. 缺点 2.1.1.2. 选择经典高斯混合模型中分量的个数 2.1.1.3. 估计算法期望最大化(EM) 2.1.2. 变分贝叶斯高斯混合 2.1.2.1. 估计算法: 变分推断(variational inference) 2.1.2.1.1.

  • 聚类和降维:K-Means 聚类,层次聚类,主成分分析(PCA),奇异值分解(SVD)。 我们可以怎样发现一个数据集的底层结构?我们可以怎样最有用地对其进行归纳和分组?我们可以怎样以一种压缩格式有效地表征数据?这都是无监督学习的目标,之所以称之为「无监督」,是因为这是从无标签的数据开始学习的。 我们将在这里探索的两种无监督学习任务是:1)将数据按相似度聚类(clustering)成不同的分组;2)

  • 聚类是根据一些预定义的相似性或距离(相异性)度量(例如欧氏距离),将样本收集到相似样本分组中的任务。 在本节中,我们将在一些人造和真实数据集上,探讨一些基本聚类任务。 以下是聚类算法的一些常见应用: 用于数据减少的压缩 将数据汇总为推荐系统的再处理步骤 相似性: 分组相关的网络新闻(例如 Google 新闻)和网络搜索结果 为投资组合管理分组相关股票报价 为市场分析建立客户档案 为无监督特征提取构

  • 监督学习的目标是建立一个学习过程,将预测结果与“训练数据”(即输入数据)的实际结果进行比较,不断的调整预测模型,直到模型的预测结果达到一个预期的准确率,包括分类、回归等问题。而常用算法包括线性回归、决策树、贝叶斯分类、最小二乘回归、逻辑回归、支持向量机、神经网络等。 监督学习的整个训练流程如下图所示