• 大小: 569KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: 其他
  • 标签: 聚类  数据挖掘  

资源简介

本实验利用两类数据:模拟数据与真实数据。模拟数据有著名复杂网络学者Mark Newmann所提出,该网络包括128个节点,每个节点的度为16,网络包含4个社团结构,每个社团包含32个节点,每个节点与社团内部节点有k1个节点相互链接,与社团外部有k2个节点相互链接 (k1+k2=16)。通过调节参数k2 (k2=1,2,3,4,5,6,7,8)增加社团构建检测难度。http://www-personal.umich.edu/~mejn/ 真实数据集:跆拳道俱乐部数据由34个节点组成,由于管理上的分歧,俱乐部分解成两个社团。 包括代码和文档

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#define random(x) (rand()%(x))
using namespace std;
int edge = 129;
int maze[129][129] = {0};
int N[129] = {0};
double s[129][129] = {0};
int pt[129] = {0};



void similarity(int a int b double arr[][129] int sp)
{
    srand((int)time(0));//随机种子
    int tmp = 0;
    int mx = 0;//相似度最大的坐标
    //int sp = random(a-1) + 1; //初始点
    int threshold = 1 ; //阈值
    cout << sp << “ “;
    while(threshold++ <= 32){
        tmp = 0;
        mx = 0;
      for(int i = 1; i < a; i++) {
        if(arr[sp][i] > tmp){
            tmp = arr[sp][i];
            mx = i;
        }
      }
      if(mx == 0)
        break;
      if(pt[mx] == 0){
        cout << mx << “ “;
        pt[mx] = 1;
      }
      else{
        threshold--;
      }
      arr[sp][mx] = -1;
      for(int i = 1; i < a; i++) {
        if(arr[sp][i] >= 0 && arr[sp][i]< arr[mx][i]){
           arr[sp][i] = arr[mx][i];
        }
        arr[mx][i] = 0;
      }
    }
}

int mxedge[35] = {0013610152128364555667891105120136153171190210231253276300325351378406435465496528561};

void density(int a int b int arr[][129] int sp)
{
     srand((int)time(0));//随机种子
     //int sp = random(a-1) + 1; //初始点
     int threshold = 1 ; //阈值
     int tmp = 0;
     int mx = 0;
     int cnt = 0;
     vector gp;
     gp.push_back(sp);
     cout << sp << “ “;
     while(threshold++ <= 32) {
        tmp = 0;
        for(int i = 1; i < a; i++) {
            cnt = 0;
            if(arr[sp][i] != -1 && i != sp) {
                for(int j = 0; j < gp.size(); j++) {
                    if(arr[i][gp[j]] == 1)
                        cnt++;
                }
            }
            if(cnt > tmp){
                tmp = cnt;
                mx = i;
            }
        }
        if(mx == 0) {
            break;
        }
        if(pt[mx] == 0){
            cout << mx << “ “;
            pt[mx] = 1;
        }
        else{
            threshold--;
        }
        arr[sp][mx] = -1;
        gp.push_back(mx);
     }
}

void pre()
{
    int a b;
    double ad;
    FILE *fp = fopen(“data2.txt“ “r“);
    if(fp == NULL) {
        cout << “Cannot open this file“ << endl;
    }
    while(!feof(fp)){
        fscanf(fp “%d%d“ &a &b);
        maze[a][b] = 1;
        maze[b][a] = 1;
        N[a]++;
        N[b]++;
    }
    fclose(fp);
    for(int i = 1; i < edge; i++){
        for(int j = i+1; j < edge; j++) {
            ad = 0;
            for(int z = 1; z < edge; z++) {
                if(maze[i][z] == 1 && maze[j][z] == 1){
                    ad++;
                }
            }
            s[i][j] = ad / (N[i] + N[j] - ad);
        }
    }
}

int main()
{
    pre();
    /*for(int i = 1; i < 35; i++){
        for(int j = 1; j < 35; j++) {
            printf(“%.2f “s[i

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       14998  2018-07-05 13:40  16030147001-钱宇珊-第3题\data1.txt
     文件       15046  2018-07-05 14:16  16030147001-钱宇珊-第3题\data2.txt
     文件        3537  2018-07-05 14:28  16030147001-钱宇珊-第3题\julei.cpp
     文件         480  2018-06-23 21:58  16030147001-钱宇珊-第3题\karate.txt
     文件        2509  2018-07-05 14:16  16030147001-钱宇珊-第3题\makedata.cpp
     文件      591496  2018-07-05 15:39  16030147001-钱宇珊-第3题\数据挖掘第二次.docx
     目录           0  2018-07-05 15:41  16030147001-钱宇珊-第3题\

评论

共有 条评论