Spark MLlib聚类代码


部分数据:

1.658985	4.285136
-3.453687	3.424321
4.838138	-1.151539
-5.379713	-3.362104
0.972564	2.924086
-3.567919	1.531611
0.450614	-3.302219
-3.487105	-1.724432
2.668759	1.594842
-3.156485	3.191137
3.165506	-3.999838
-2.786837	-3.099354
4.208187	2.984927

代码:

package workStudy.MLlib

import org.apache.spark.mllib.clustering.KMeans
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.{SparkConf, SparkContext}
/**
 * Created by Administrator on 2016/10/11.
 */
/**
 * 聚类操作
 */
object day2 {
  def main(args: Array[String]) {
    val conf = new SparkConf()
      .setMaster("local")
      .setAppName("day2")
    val sc = new SparkContext(conf)
    //  val data=MLUtils.loadLibSVMFile(sc,"E://machinedata/KNN/Sparkkmean.txt")
    val data = sc.textFile("E://machinedata/kMeans_demo/testSet.txt") //输入数据集
    val parsedData = data.map(s => Vectors.dense(s.split('\t').map(_.trim.toDouble))).cache() //训练数据

    val numClusters = 2 //聚类中心
    val numIterations = 20 //迭代次数
    val model = KMeans.train(parsedData, numClusters, numIterations) //训练模型
    model.clusterCenters.foreach(println) //聚类中心点坐标
  }
}

运行结果:

[-3.0953906153846154,-2.262190846153846]
[1.3368722037037037,1.1696492222222223]


Spark MLlib是Apache Spark的机器学习库,提供了许多常见的机器学习算法的实现。其中,KMeans聚类是一种常见的无监督机器学习算法,可以用于将数据点分成不同的簇。 下面是使用Spark MLlib实现KMeans聚类代码示例: ```python from pyspark.ml.clustering import KMeans from pyspark.ml.evaluation import ClusteringEvaluator # 加载数据集,这里假设数据集已经被读取为一个DataFrame对象,其中特征向量存储在一个名为“features”的列中 dataset = ... # 设置KMeans算法的超参数 k = 2 # 簇的个数 maxIter = 10 # 最大迭代次数 # 定义KMeans算法模型 kmeans = KMeans().setK(k).setMaxIter(maxIter) # 训练模型 model = kmeans.fit(dataset) # 使用模型对数据进行预测 predictions = model.transform(dataset) # 评估聚类效果 evaluator = ClusteringEvaluator() silhouette = evaluator.evaluate(predictions) print("Silhouette with squared euclidean distance = " + str(silhouette)) # 输出每个簇的中心点 centers = model.clusterCenters() for center in centers: print(center) ``` 在上面的代码中,我们首先加载了一个数据集,然后设置了KMeans算法的超参数,接着定义了KMeans算法模型并训练了模型。最后,我们使用模型对数据进行了预测,并使用评估器计算了聚类效果。在输出中,我们还打印了每个簇的中心点。 需要注意的是,上面的代码中使用的是PySpark API,如果你使用的是Scala或Java,代码会略有不同,但基本思路是一样的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值