博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
本地运行Kmeans算法
阅读量:5845 次
发布时间:2019-06-18

本文共 2408 字,大约阅读时间需要 8 分钟。

hot3.png

参考资料链接:https://github.com/CraigCovey/spark-examples/blob/f8182a6736fd5293dfa03b023eb1423363ba6041/spark-1_6/scala/clustering/kmeans/kmeans_clustering_main.scala
package com.xx.Kmeans_sampleimport org.apache.spark.SparkConfimport org.apache.spark.sql.SparkSessionimport org.apache.spark.ml.feature.{StandardScaler, VectorAssembler}import org.apache.spark.ml.Pipelineimport org.apache.spark.ml.clustering.{KMeans, KMeansModel}object KmeansClusteringMain {  def main(args: Array[String]): Unit = {    val sparkConf = new SparkConf().setAppName("ReadData").setMaster("local").set("spark.sql.warehouse.dir", "file:///C:/Users/username/IdeaProjects/spark_demo/spark-warehouse")    val sparkSession = SparkSession.builder().config(sparkConf).getOrCreate()    val input_path = "D:/spark_data/iris.csv"    val data = sparkSession.sqlContext.read.format("csv").option("sep", ",")      .option("inferSchema", "true")      .option("header", "true")      .load(input_path)    val predictorVariables : Array[String] = Array("Sepal_Length", "Sepal_Width", "Petal_Length", "Petal_Width")    val assembler = new VectorAssembler()      .setInputCols(predictorVariables)      .setOutputCol("clusteringFeatures")    val scaler = new StandardScaler()      .setInputCol("clusteringFeatures")      .setOutputCol("scaledClusteringFeatures")      .setWithMean(true)      .setWithStd(true)    val kmeansAlgorithm = new KMeans()      .setK(10)                   // <-- number of clusters      .setSeed(1024)      .setMaxIter(20)                 // <-- hyperparameter      .setTol(1.0e-05)                // <-- hyperparameter      .setFeaturesCol("scaledClusteringFeatures")      .setPredictionCol("columnCategory")   // <-- create your own column name    val pipeline = new Pipeline().setStages(Array(assembler, scaler, kmeansAlgorithm))    // Train model    val pipelineModel = pipeline.fit(data)    // Apply model to dataframe    val kmeansPrediction = pipelineModel.transform(data)    kmeansPrediction.show()    // Evaluate clustering by computing Within Set Sum of Squared Errors    val kmeansModel = pipelineModel.stages.last.asInstanceOf[KMeansModel]    val cost = kmeansModel.computeCost(kmeansPrediction)    println("Clustering Cost: " + cost)    // Print cluster centers    val centers = kmeansModel.clusterCenters    println("Cluster Centers:")    centers.foreach(println)  }}

转载于:https://my.oschina.net/kyo4321/blog/3011750

你可能感兴趣的文章
CC***原理及防范方法
查看>>
windows phone (12) 小试自定义样式
查看>>
Linux后台启动脚本
查看>>
jna dll c
查看>>
Android 自定义ScrollView 支持惯性滑动,惯性回弹效果。支持上拉加载更多
查看>>
CentOS 升级现有PHP版本
查看>>
(一) pyhon 基础语法(数值 字符串 元组 列表 字典)
查看>>
springboot 学习笔记【1】开发第一个spring boot应用
查看>>
HDOJ 1003:求一串数字中和最大的连续子串
查看>>
RedHat 5.6_x86_64 + ASM + RAW+ Oracle 10g RAC (二)
查看>>
win7不能全屏
查看>>
MySQL/InnoDB的并发插入Concurrent Insert
查看>>
产品经理有话说——产品汪成长记(入职)
查看>>
2016/01
查看>>
从魔兽世界到激战2看MMO网游角色成长
查看>>
转两好文防丢:Debian 版本升级/降级 & Linux 应用程序失去输入焦点问题的解决...
查看>>
linux学习入门之Linux系统目录结构
查看>>
码农们:完美主义也是一种错
查看>>
HDU - Pseudoforest
查看>>
Nexus杂
查看>>