掌握Spark机器学习库-09.3-kmeans算法实现分类
2024-08-30 19:23:19
数据集
iris.data
数据集概览
代码
package org.apache.spark.examples.hust.hml.examplesforml import org.apache.spark.ml.clustering.{KMeans, LDA}
import org.apache.spark.SparkConf
import org.apache.spark.ml.feature.VectorAssembler
import org.apache.spark.sql.SparkSession import scala.util.Random object kmeans1 {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setMaster("local").setAppName("iris")
val spark = SparkSession.builder().config(conf).getOrCreate() val file = spark.read.format("csv").load("D:\\9-1kmeans\\iris.data")
file.show() import spark.implicits._
val random = new Random()
val data = file.map(row => {
val label = row.getString(4) match {
case "Iris-setosa" => 0
case "Iris-versicolor" => 1
case "Iris-virginica" => 2
} (row.getString(0).toDouble,
row.getString(1).toDouble,
row.getString(2).toDouble,
row.getString(3).toDouble,
label,
random.nextDouble())
}).toDF("_c0", "_c1", "_c2", "_c3", "label", "rand").sort("rand")
val assembler = new VectorAssembler()
.setInputCols(Array("_c0", "_c1", "_c2", "_c3"))
.setOutputCol("features") val dataset = assembler.transform(data)
val Array(train, test) = dataset.randomSplit(Array(0.8, 0.2))
train.show() val kmeans = new KMeans().setFeaturesCol("features").setK(3).setMaxIter(20)
val model = kmeans.fit(train)
model.transform(train).show() }
}
输出结果
最新文章
- TSQL语句
- poj3368(RMQ——ST)
- 《慕客网:IOS动画案例之会跳动的登入界面(上)》学习笔记 -Sketch的使用
- nodeJS创建工程
- java 的UUID的具体用法
- linux(centos 6)下记录所有用户的操作以及ip、时间
- DataRow数组 转 datatable
- Open-air shopping malls(二分半径,两元交面积)
- 99%的人理解错 HTTP 中 GET 与 POST 的区别
- Linux--主从复制
- asp.net中的CheckBox控件的使用
- SVM:SVM之Classification根据已有大量数据集案例,输入已有病例的特征向量实现乳腺癌诊断高准确率预测—Jason niu
- data-original
- [Unity插件]Lua行为树(三):组合节点Sequence
- mysql用户管理 常用sql语句 mysql数据库备份恢复
- 增强型for和Iterator学习
- 01 Flume系列(一)安装配置
- idea注释字体倾斜的解决办法
- IIS发布好的网页突然不显示图片了
- 智课雅思词汇---二十四、名词性后缀ary(也是形容词后缀)
热门文章
- Effective JavaScript Item 39 绝不要重用父类型中的属性名
- 操作系统学习笔记:I/O输入系统
- Win10快捷键总结
- The android gradle plugin version 2.3.0-beta2 is too old, please update to the latest version.
- YTU 2437: C++ 习题 比较大小-类模板
- Silverlight数据绑定之DataGrid
- xcode 8.1 (8B62)真机调试配置
- BZOJ4561:圆的异或并(扫描线+set||splay||线段树)
- 烹调方案 (DP)
- 深入分析glibc内存释放时的死锁bug