当前位置: 首页 > news >正文

网站建设赚钱吗/怎样制作一个网站

网站建设赚钱吗,怎样制作一个网站,建设积分商城网站,泉州网站建设推广企业Kmeans作业 环境配置 java环境,使用原生的Java UI组件JPanel和JFrame 算法原理 基于欧式距离的聚类算法,其认为两个目标的距离越近,相似度越大。 该实验产生的点为二维空间中的点。 欧式距离 n维空间中的两个点X,Y dist(X,…

Kmeans作业

环境配置

java环境,使用原生的Java UI组件JPanel和JFrame

算法原理

基于欧式距离的聚类算法,其认为两个目标的距离越近,相似度越大。

该实验产生的点为二维空间中的点。

欧式距离

n维空间中的两个点X,Y

dist(X,Y)=∑i=1n(xi−yi)2dist(X, Y) = \sqrt{\sum_{i = 1}^{n} (x_{i} - y_{i})^{2}}dist(X,Y)=i=1n(xiyi)2

算法过程

  1. 选择k,聚类的数量。
  2. 选择k个点作为聚类中心。
  3. 对每个样本点计算到k个聚类中心的距离,采用的是欧氏距离,将其分类到距离最近的类别中。
  4. 根据每个类别,计算被分类在该类别中的所有点的中心。
  5. 如果计算出来的中心和聚类中心相同,则退出循环,否则以新的计算出来的中心为每个聚类的聚类中心,不断重复3 - 4步。

核心代码

设定K

/*Step按钮的监听器*/
jButton2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent ae) {painting.assign();painting.updateCentroids();/*算法终止的话让按钮变灰并提示算法结束*/if (painting.stop(num++)) {jButton2.setText("End");jButton2.setEnabled(false);}painting.repaint();}
});

计算欧式距离

/*欧式距离*/
double Euc(Point p1, Point p2) {double distance = 0.0;for (int i = 0; i < Dimension; ++i)distance += (p1.x[i] - p2.x[i]) * (p1.x[i] - p2.x[i]);return Math.sqrt(distance);
}

更新中心点

/*更新中心点*/
void updateCentroid(int clusterNum) {//将newCluster数组的那个中心点置空for (int i = 0; i < Dimension; ++i)newCluster[clusterNum].x[i] = 0;int clusterSize = 0;for (int i = 0; i < Nodes; ++i)if (p[i].cluster == clusterNum) {//这个簇中有多少点clusterSize++;for (int j = 0; j < Dimension; ++j)newCluster[clusterNum].x[j] += p[i].x[j];}if (clusterSize == 0)return;for (int i = 0; i < Dimension; ++i)newCluster[clusterNum].x[i] /= (double) clusterSize;
}

计算每个点的分类

/*分配数据点到哪个簇*/
void assignPoint(int x) {double minDistance = 99999999;int nodeClassify = 1;for (int i = 0; i < K; ++i) {//计算欧式距离double newDistance = Euc(p[x], newCluster[i]);if (newDistance < minDistance) {minDistance = newDistance;nodeClassify = i;}}p[x].cluster = nodeClassify;
}

判断终止条件

/*判断算法是否终止*/
Boolean stop(int currentTime) {//超过迭代次数if (currentTime > range) {int num = 1;System.out.println("超过迭代次数");for (Point i : oldCluster) {System.out.println("中心点" + num + "坐标:(" + i.x[0] + "," + i.x[1] + ")");num++;}return true;}/*如果每一个中心点都与上一次的中心点相同,则算法终止,否则更新oldCentroid*/for (int i = 0; i < K; ++i)if (!samePoint(oldCluster[i], newCluster[i])) {for (int j = 0; j < K; ++j)copy(oldCluster[j], newCluster[j]);return false;}int num = 1;System.out.println("迭代完成");for (Point i : oldCluster) {System.out.println("中心点" + num + "坐标:(" + i.x[0] + "," + i.x[1] + ")");num++;}return true;
}

实验结果

在这里插入图片描述

点击start之后,产生新的随机点与初始聚类中心

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

点击step,将每一步的迭代展示出来,这里展示了4步,从左上角的图开始。

在这里插入图片描述

http://www.lbrq.cn/news/1381897.html

相关文章:

  • 网站建设项目化教程/百度权重排名查询
  • h5响应式网站源码/网店无货源怎么做
  • 技术支持 网站建设/seo基础知识培训
  • 网站包括什么/产品市场推广方案
  • 如何查询企业有没有做网站/网站建设山东聚搜网络
  • 最好免费高清影视/杭州网站排名seo
  • a站与b站/网址缩短
  • 滨州做网站建设价格/杭州百度快照优化公司
  • 网站搜索引擎提交/百度推广怎么注册账号
  • 网站平台建设实施方案/外贸找客户有什么网站
  • php做网站登陆验证/谷歌浏览器免费入口
  • 东鹏拼奖网站怎么做/seo的作用有哪些
  • 车载互联系统网站建设/广州seo排名优化
  • dede做视频网站/网上国网推广
  • 银川网站建设一条龙/天桥区seo全网宣传
  • wordpress4.9怎么安装/网站怎么做优化排名
  • 正规的彩票网站怎么做/网络优化工资一般多少
  • 自己做网站兼职/零食软文范例300字
  • 手机网站微信链接怎么做/今日新闻摘抄二十条
  • 网站团队/怎么宣传自己的店铺
  • 上海有哪些网站设计公司/网站建设杭州
  • 郑州网站排名分析/昆明seo推广外包
  • 学校网站源码php/防控措施持续优化
  • 小程序网站开发者利/长沙做搜索引擎的公司
  • 什么是网站架构/网站友情链接怎么弄
  • 电影vip免费网站怎么做的/小程序开发模板
  • 黑河北京网站建设/高权重外链
  • 1核1g可以做几个网站/优化设计官方电子版
  • 成都旅游十大必去景区/广东网站优化公司
  • 自己做网站导航/百度权重是什么意思
  • C#常见的转义字符
  • Verilog与SytemVerilog差别
  • Coze开源版本地部署指南
  • 【源力觉醒 创作者计划】文心一言与deepseek集成springboot开发哪个更方便
  • C++面试5题--6day
  • 重生之我在暑假学习微服务第五天《Docker部署项目篇》