day57
2021/7/17 23:06:12
本文主要是介绍day57,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
// Step 2.4 Find the new center double[] tempCenterDistance = new double[tempNewCenters.length]; double[] tempNearest = new double[tempNewCenters.length]; for (int i = 0; i < tempNewCenters.length; i++) { for (int j = 0; j < numClusters; j++) { tempCenterDistance[j] = newDistance(tempNewCenters[i], tempCenters[j], tempNewCenters.length); if (tempCenterDistance[j] > tempNearest[j]) { tempCenterDistance[j] = tempNearest[j]; tempNewCenters[i] = tempCenters[j]; }//of if }//of for j }//of for i
以上为定位准确位置,以下为距离计算
/** ********************* * The distance between two instances. * * @param paraI * The index of the first instance. * @param paraArray * The array representing a point in the space. * @return The distance. ********************* */ public double newDistance(double[] paraI, double[] paraArray, int paraLength) { int resultDistance = 0; double tempDifference; switch (distanceMeasure) { case MANHATTAN: for (int i = 0; i < paraLength; i++) { for (int j = 0; i < dataset.numAttributes() - 1; i++) { tempDifference = paraI[i] - paraArray[j]; //将距离绝对值加上 if (tempDifference < 0) { resultDistance -= tempDifference; } else { resultDistance += tempDifference; }//of if }//of for j }//of for i break; case EUCLIDEAN: for (int i = 0; i < paraLength; i++) { for (int j = 0; j < dataset.numAttributes() - 1; j++) { tempDifference = paraI[i] - paraArray[j]; resultDistance += tempDifference * tempDifference; //根据维度求欧式距离 }//of for j }//of for i break; default: System.out.println("Unsupported distance measure: " + distanceMeasure); }//of switch return resultDistance; }//of newDistance
这篇关于day57的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01后台管理开发学习:新手入门指南
- 2024-11-01后台管理系统开发学习:新手入门教程
- 2024-11-01后台开发学习:从入门到实践的简单教程
- 2024-11-01后台综合解决方案学习:从入门到初级实战教程
- 2024-11-01接口模块封装学习入门教程
- 2024-11-01请求动作封装学习:新手入门教程
- 2024-11-01登录鉴权入门:新手必读指南
- 2024-11-01动态面包屑入门:轻松掌握导航设计技巧
- 2024-11-01动态权限入门:新手必读指南
- 2024-11-01动态主题处理入门:新手必读指南