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

网站构架怎么做中国企业信息

网站构架怎么做,中国企业信息,传奇网站模板免费下载,wordpress 安装 失败计算数据集中的元素与各个簇的中心的距离&#xff0c;将它赋给最近的簇&#xff0c;然后重新计算每个簇的平均值&#xff0c;再将元素按离平均值点最近的原则重新分配直到没有出现重新分配 该算法要事先给出k的值&#xff0c;即划分为几个簇。 vector<int> datoclu(dat…

 计算数据集中的元素与各个簇的中心的距离,将它赋给最近的簇,然后重新计算每个簇的平均值,再将元素按离平均值点最近的原则重新分配直到没有出现重新分配

该算法要事先给出k的值,即划分为几个簇。

vector<int> datoclu(data.size(), -1);用这个来标记每个数据在哪个簇中。

#include <fstream>
#include <sstream>
#include <vector>
#include <iostream>using namespace std;struct Point
{double x;double y;
};double distance(const Point& a, const Point& b)
{return sqrt(pow(a.x - b.x, 2) + pow(a.y - b.y, 2));
}vector<int> KMeans(vector<Point>& data, int k, int maxIterations)
{vector<Point> centroids(k);for (int i = 0; i < k; i++)          {centroids[i] = data[rand() % data.size()];      //随机选择k个类聚中心。0到(data.size()-1)}vector<int> datoclu(data.size(), -1);           //每个数据属于哪个簇bool flag = 0;while (!flag && maxIterations){flag = 1;for (int i = 0; i < data.size(); i++){double minDis = numeric_limits<double>::max();int index = -1;for (int j = 0; j < centroids.size(); j++){double dis = distance(data[i], centroids[j]);if (dis < minDis){minDis = dis;index = j;}}if (datoclu[i] != index)                //记录每个数据属于的聚类中心{datoclu[i] = index;flag = 0;}}vector<Point> newClu(k);vector<int> num(k, 0);//计算每个簇平均值点for (int i = 0; i < data.size(); i++){newClu[datoclu[i]].x += data[i].x;newClu[datoclu[i]].y += data[i].y;num[datoclu[i]]++;}for (int i = 0; i < k; i++){newClu[i].x /= num[i];newClu[i].y /= num[i];}centroids = newClu;maxIterations--;}return datoclu;
}
vector<Point> ReadData(string filename)
{vector<Point> data;ifstream file(filename);if (file.is_open()){string line;while (getline(file, line)){istringstream iss(line);double x, y;string token;Point point;if (getline(iss, token, ',') && istringstream(token) >> point.x &&getline(iss, token, ',') && istringstream(token) >> point.y) {data.push_back(point);}}}else{cout << "open fail";}file.close();return data;
}int main()
{vector<Point> dataset = ReadData("data.txt");vector<int> clusters;int k, maxIterations;cout << "输入簇的个数和最大迭代次数"<<endl;cin >> k >> maxIterations;clusters= KMeans(dataset, k, maxIterations);vector <vector<int>> index(k);for (int j = 0; j < k; j++){for (int i = 0; i < clusters.size(); i++){if (clusters[i] == j){index[j].push_back(i);}}}for (int i = 0; i < index.size(); i++){cout << "{";for (int j = 0; j < index[i].size(); j++){cout << index[i][j]+1;if (j != index[i].size() - 1){cout << ",";}}cout << "}";}
}    

数据集

1.0, 1.0 
2.0, 1.0 
1.0, 2.0  
2.0, 2.0  
4.0, 3.0  
5.0, 3.0  
4.0, 4.0  
5.0,4.0

运行结果 

http://www.yayakq.cn/news/925984/

相关文章:

  • 网站死链删除我想做个软件平台要多少钱
  • 手机网站端域名怎样做解析重庆市网站推广
  • 网站地图插件佛山微网站建设 天博
  • 网站举报查询进度切实加强门户网站建设
  • 温州seo建站wordpress 4.7优化
  • 网站建设宣传广告语南京专业网站设计哪个品牌
  • 无证做音频网站违法吗深圳包装设计机构
  • php建设网站三星网上商城打不开
  • 网站策划书预期风险手机网站首页模板
  • 上海市人力资源网官网seo是什么意思啊电商
  • 外汇网站建设wordpress comments
  • 做代码和网站大连在哪里哪个省
  • 媒体网站开发网络推广工作好做不
  • 福建省住房和建设厅网站网站系统升级建设合同
  • 手机网站seo教程企业网站建设有几种
  • 潍坊知名网站建设品牌vi形象设计公司
  • 网站如何做关键词seo优化合肥做网站汇站网
  • 屯昌第三方建站哪家好外发加工网邀请码
  • 用来网站备案注册什么公司好土特产网站建设
  • 公司网站一般多少钱微网站下载资料怎么做
  • dw2019怎么做网站福建老区建设网站
  • 杭州模板网站建设北京旅游设计网站建设
  • 网站主机要怎么做赤壁网站定制
  • 网站空间管理网站服务费做管理费用
  • 上海网站建设公司sky深圳做网站优化报价
  • 鼓楼福州网站建设产品展示类网站源码
  • wordpress 萌主题阿里巴巴网站优化怎么做
  • spark 网站开发网站可以做多少事情
  • 网站可以自己做吗温州网站建设方案书
  • 嘉兴优化网站公司哪家好千图网在线设计