public void cluster()

	{
		// 数据归一化
		normalize();
		// 标记是否需要重新找初始点
		boolean needUpdataInitials = true;
		// 找初始点的迭代次数
		int times = 1;
		// 找初始点
		while (needUpdataInitials) {
			needUpdataInitials = false;
			result.clear();
			System.out.println("Find Initials Iteration" + (times++) + "time(s)");
			// 一次找初始点的尝试和根据初始点的分类
			findInitials();
			firstClassify();
			// 如果某个分类的数目小于特定的阈值，则认为这个分类中的所有样本都是噪声点
			// 需要重新找初始点
			for (int i = 0; i < result.size(); i++)
			{
				if (result.get(i).size() < InstanceNumber
						/ Math.pow(ClassCount, t))
				{
					needUpdataInitials = true;
					noises.addAll(result.get(i));
				}
			}
		}
		// 找到合适的初始点后
		// 不断的调整均值中心和分类，直到不再发生任何变化
		Adjust();
	}