山东大学模式识别实验(java)K-means算法

K-means是无监督学习,也就是说事先并不知道有几类,所有数据都是无标记的,所以虽然本实验的红酒数据集认为应该分为3类,但是对于k-means来说是没有意义的。每次分类前我们首先要人为指定分成K类,然后任意选取K个点作为K个类的中心点,遍历全集,离哪个中心近就认为是哪一堆的。接下来我们要验证所选中心点是否是真正的中心点,计算每一堆各个特征的平均值后得出的就是这一个类的中心,如果与我们认为的中心不同则需要继续计算。以刚才计算出的新中心重新全集遍历分类然后重复上面判断是否完成的过程。最终运算结束,输出真正的中心点。

1.封装的红酒类:

public class Wine {
	private double[] data;

	public double[] getData() {
		return data;
	}

	public void setData(double[] data) {
		this.data = data;
	}
	

}

2.test类:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;

public class Test {
	private Wine[] wineCenter;//确定为聚集中心的点
	private List<Wine>[] wineKind;//分类后的点数组
	private int k;
	priva
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值