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

网站建设开发软件网页升级紧急通知在哪里看

网站建设开发软件,网页升级紧急通知在哪里看,深圳做网站网络公司,网站建设对百度推广的影响计算数据集中的元素与各个簇的中心的距离&#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/570290/

相关文章:

  • 设计网站名字房地产市场信息管理平台
  • 湖南智能网站建设公司无休网站建设
  • 河南两学一做网站企业营销型网站有哪些
  • 做一个小网站多少钱网站域名后缀有什么用
  • 农庄网站模板品牌建设的十六个步骤和内容
  • 婚恋网站做翻译安全者 wordpress
  • 广东个人网站备案wordpress meta
  • 响应式旅游网站模板什么专业可以做网站
  • 开一个网站建设公司搭建本地wordpress
  • 广州网站优化注意事项无法登陆建设银行网站
  • 网站内部建设和程序即墨做网站公司
  • 微信小程序做链接网站广州计算机培训班
  • 嘉兴网站制作优化个体户 做网站
  • 产品如何做网站地图互动平台是什么意思
  • 怎么建一个网站卖东西软件外包项目平台
  • 新浪推网站网站怎么做文件下载
  • 泉州效率网络网站建设通城做网站公司
  • 能用pinduoduo做网站吗济南网站制作公司
  • 腾讯云网站建设教学视频dw网页制作教程合集
  • 网络传媒网站淘宝做导航网站有哪些功能吗
  • 网站邮箱后台子域名一个阿里云怎么做两个网站吗
  • 浙江网站建设dyfwzx企业管理咨询包括哪些内容
  • 做网站有哪些wordpress运费
  • 怎么做微帮网站网站建设 广州网站建设专业公司
  • 手表设计网站桂林市区面积
  • 专做畜牧招聘网站的温州网站建设服务器
  • 建设官方网站企业登录免费行情的软件入口下载
  • 网站排名优化怎么做ide wordpress
  • 电子商务有限责任公司网站怎样建立中秋节网页设计实训报告
  • 长沙做网站 青创互联郑州建网站