自己写的c语言写的数据挖掘的层次聚类算法,只用于学习交流,请勿转载!!!!

# include<stdio.h>

# include<math.h>
main(){
int num,i,j,t,clear=0,place,count,numb;     //Cnum  //clear变量用于消除合并后的前一个集合书中第144页的第(3)步,count表示目前聚类个数,Cnum表示需要的聚类个数
float distance[50][50];                //distance[m][n]中,m表示第m个数,n表示第n个数,总体表示n与m的距离
int data[50],cluster[50][50],min;
printf("请输入数据项的个数:");
scanf("%d",&num);
for(i=0;i<num;i++){
printf("请输入第%d个数据:",i+1);
scanf("%d",&data[i]);
}
/*printf("请输入需要聚类的个数:");
scanf("%d",&Cnum);*///用于限定聚类个数的,日后再来搭建
for(i=0;i<num;i++)
cluster[i][0]=data[i];
for(i=0;i<num-1;i++){
for(j=0;j<num-(i+1);j++)
distance[i][j]=sqrt(pow((cluster[i][0]-cluster[j+i+1][0]),2));
}                                                                                          //这里以上是第一次聚类,每个元素作为一类,并计算距离
//在这里我发现不需要运用结构体,用二维数组就可以了的cluster[m][n]m表示第几个元素初始每一行只有一个元素,后面再慢慢累加上去
count=num;
printf("距离为:\n");
for(i=0;i<num-1;i++){                                //输出距离
printf("其余元素与第%d个距离为:",i+1);
for(j=0;j<num-1;j++)
if(distance[i][j]>=0)
printf("%3.2f ",distance[i][j]);
putchar('\n');
}              //这里以后开始层次聚类的核心,需要添加循环
for(t=0;t<num-1;t++){
numb=0;
min=distance[t][0];
place=0;
for(i=1;i<num-1;i++){
if(min>distance[t][i]&&distance[t][i]>=0){
min=distance[t][i];
place=i;
}
}
printf("第一行的最小值为:%d位置为%d\n",min,place+1);
while(cluster[t+place+1][numb]>=0)
numb++;
for(i=0;i<num;i++){

if(cluster[t][i]>=0)
cluster[t+place+1][numb++]=cluster[t][i];
}        //合并有点问题
clear++;
count--;
for(i=clear;i<num;i++){
for(j=0;j<num;j++)
if(cluster[i][j]>=0)
printf("%d ",cluster[i][j]);
putchar('\n');
}
printf("目前聚类个数为:%d\n",count);
}
    getchar();//暂停用
}

c语言写的数据挖掘的层次聚类算法(新手版)相关推荐

  1. R语言ggplot2可视化:为层次聚类树状图dendrogram中的簇进行着色、在树状图dendrogram中为不同的层次聚类簇配置不同的色彩

    R语言ggplot2可视化:为层次聚类树状图dendrogram中的簇进行着色.在树状图dendrogram中为不同的层次聚类簇配置不同的色彩 #层次聚类树状图dendrogram labs = pa ...

  2. 层次聚类算法 算法_聚类算法简介

    层次聚类算法 算法 Take a look at the image below. It's a collection of bugs and creepy-crawlies of different ...

  3. 层次聚类算法原理总结

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 层次聚类(hierarchical clustering)基于簇间 ...

  4. 利用层次聚类算法进行基于基站定位数据的商圈分析

    1. 背景与挖掘目标 1.1 背景 • 随着个人手机和网络的普及,手机已经基本成为所有人必须持有的工具. • 根据手机信号再地理空间的覆盖情况结合时间序列的手机定位数据可以完整的还原人群的现实活动轨迹 ...

  5. python 凝聚层次聚类_关于层次聚类算法的python实现

    from scipy.cluster import hierarchy 0.层次聚类的概念 层次聚类和k-means一样都是很常用的聚类方法.层次聚类是对群体的划分,最终将样本划分为树状的结构.他的基 ...

  6. 分裂层次聚类matlab实现,凝聚层次聚类算法matlab源码

    <凝聚层次聚类算法matlab源码>由会员分享,可在线阅读,更多相关<凝聚层次聚类算法matlab源码(3页珍藏版)>请在人人文库网上搜索. 1.共享一个在数据挖掘课程中作为示 ...

  7. R实现K均值算法,层次聚类算法与DBSCAN算法

    1.聚类的基本概念 聚类分析(cluster analysis)仅根据在数据中发现的描述对象及其关系的信息,将数据对象分组.其目标是,组内的对象相互之间是相似的(相关的),而不同组中的对象是不同的(不 ...

  8. 基本凝聚层次聚类算法

    一.基本凝聚层次聚类算法 1:如果需要,计算近邻度矩阵 2:repeat 2.1:合并最接近的两个簇 2.2:更新近邻性矩阵,以反映新的簇与原来的簇之间的近邻性 3:until 仅剩下一个簇 存储近邻 ...

  9. ML之Hierarchical clustering:利用层次聚类算法来把100张图片自动分成红绿蓝三种色调

    ML之Hierarchical clustering:利用层次聚类算法来把100张图片自动分成红绿蓝三种色调 目录 输出结果 实现代码 输出结果 实现代码 #!/usr/bin/python # co ...

最新文章

  1. mysql 日志管理
  2. DPDK之makefile编译选项修改和gdb调试(三)
  3. HarmonyOS之深入解析Ability的功能和使用
  4. 557. 反转字符串中的单词 III
  5. php中trim的用法和例子,PHP ltrim()用法及代码示例
  6. 数据科学入门与实战:Seaborn001
  7. 防爆知识:危险场所划
  8. html展示值 vue_vue在html使用
  9. 千峰前端html个人笔记
  10. chrome PPAPI 开发(一)
  11. java加载so包,undefined symbol处理方法
  12. UOJ#405. 【IOI2018】组合动作
  13. Xposed框架Xposed安装器|Xposed for Android 5.0/5.1/6.0|详细安装教程
  14. js中appendChild()方法
  15. 阿里巴巴、腾讯、百度和京东金融落户雄安新区 | 亚马逊加入FB与微软阵营,共同支持开源AI平台ONNX
  16. 第十四届蓝桥杯三月真题刷题训练——第 27 天
  17. pythonev3-二阶解魔方程序
  18. 浅谈PS CC 2020——适合新手学习的最新版软件
  19. ITSS认证各级别的特点和申报基本条件
  20. Eulerian Video Magnification

热门文章

  1. 思科—计算机网络课程设计—第二章静态路由概念测试
  2. 2022mathorcup数学建模大数据竞赛B题完整成品来啦!
  3. 从零开始的异界生活(偏了)从零开始搭建lamp服务ECShop,简单快速
  4. 【转】给自己的软件制作注册码
  5. 直播APP开发技术原理分享
  6. 图(Dijkstra,Prim,Kruskal)
  7. 让微积分穿梭于工作与学习之间(29):夹逼公式的几种变体
  8. nag在逆向中是什么意思_NAG在医学是什么意思
  9. make/Makefile
  10. mysql创建数据库(详细)