Java如何实现的k - means聚类算法

  介绍

小编给大家分享一下Java如何实现的k - means聚类算法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

<强>需求

对MySQL数据库中某个表的某个字段执行k - means算法,将处理后的数据写入新表中。

<强>源码及驱动

kmeans_jb51。rar

<>强源码

import  java.sql。*;   import  java.util。*;/* *   ,* @author  tianshl   ,* @version  2018/1/13 上午11:13   ,*/public  class  Kmeans  {//才能,源数据   private 才能;List< Integer>, origins =, new  ArrayList<在();//,才能分组数据   private 才能Map<双,List祝辞,分组;//才能,初始质心列表   private 才能;List< Double>,核心;//才能,数据源   private 才能;String 表名;   private 才能;String  colName;      ,/* *   ,,*,构造方法   ,,*   ,,*,@param  tableName 源数据表名称   ,,*,@param  colName ,源数据列名称   ,,*,@param  cores ,,质心列表   ,,*/private 才能;Kmeans (String 表,String  colName, List,核心){   ,,,this.cores =,核心;   ,,,this.tableName =,表名;   ,,,this.colName =, colName;   ,,}      ,/* *   ,,*,重新计算质心   ,,*   ,,*,@return 新的质心列表   ,,*/private 才能;List< Double>, newCores () {   ,,,List, newCores =, new  ArrayList<在();      ,,,(List, _cores =, newCores ();   ,,,(int  i=0, len=cores.size ();, i, diffs =, new  ArrayList<在();      ,,,//,计算差   ,,,(Double 核心:,核心){   ,,,,,diffs.add (Math.abs (num 安康;核心));   ,,,}      ,,,//,最小差,→,索引,→,对应的质心   ,,,return  cores.get (diffs.indexOf (Collections.min(差别)));   ,,}      ,/* *   ,,*,建立数据库连接   ,,*,@return 连接   ,,*/private 才能;Connection  getConn () {   ,,,try  {   ,,,,,//,URL指向要访问的数据库名mydata   ,,,,,String  url =,“jdbc: mysql://localhost: 3306/data_analysis_dev";   ,,,,,//,MySQL配置时的用户名   ,,,,,String  user =,“root";   ,,,,,//,MySQL配置时的密码   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Java如何实现的k - means聚类算法