青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

coreBugZJ

此 blog 已棄。

k-means 算法實(shí)現(xiàn)人口聚類

  1/*
  2
  3k-means 算法實(shí)現(xiàn)人口聚類
  4
  5
  6----問題描述:
  7
  8聚類(Cluster)分析是由若干模式(Pattern)組成的,通常,模式是一個(gè)度量(Measurement)的向量,或者是多維空間中的一個(gè)點(diǎn)。聚類分析以相似性為基礎(chǔ),在一個(gè)聚類中的模式之間比不在同一聚類中的模式之間具有更多的相似性。
  9
 10為了更深入了解我國人口的文化程度狀況,現(xiàn)利用1990年全國人口普查數(shù)據(jù)對全國30個(gè)省、直轄市、自治區(qū)進(jìn)行聚類分析。分析選用了三個(gè)指標(biāo):(1)大學(xué)以上文化程度的人口占全部人口的比例(DXBZ);(2)初中文化程度的人口占全部人口的比例(CZBZ);(3)文盲半文盲人口占全部人口的比例(WMBZ)、分別用來反映較高、中等、較低文化程度人口的狀況,原始數(shù)據(jù)如下表:
 11
 12Table 2. 1990年全國人口普查文化程度人口比例(%)
 13
 14地區(qū)    序  號    DXBZ    CZBZ    WMBZ
 15
 16北  京    1    9.30    30.55    8.70
 17天  津    2    4.67    29.38    8.92
 18河  北    3    0.96    24.69    15.21
 19山  西    4    1.38    29.24    11.30
 20內(nèi)  蒙    5    1.48    25.47    15.39
 21遼  寧    6    2.60    32.32    8.81
 22吉  林    7    2.15    26.31    10.49
 23黑龍江    8    2.14    28.46    10.87
 24上  海    9    6.53    31.59    11.04
 25江  蘇    10    1.47    26.43    17.23
 26浙  江    11    1.17    23.74    17.46
 27安  徽    12    0.88    19.97    24.43
 28福  建    13    1.23    16.87    15.63
 29江  西    14    0.99    18.84    16.22
 30山  東    15    0.98    25.18    16.87
 31河  南    16    0.85    26.55    16.15
 32河  北    17    1.57    23.16    15.79
 33湖  南    18    1.14    22.57    12.10
 34廣  東    19    1.34    23.04    10.45
 35廣  西    20    0.79    19.14    10.61
 36海  南    21    1.24    22.53    13.97
 37四  川    22    0.96    21.65    16.24
 38貴  州    23    0.78    14.65    24.27
 39云  南    24    0.81    13.85    25.44
 40西  藏    25    0.57    3.85    44.43
 41陜  西    26    1.67    24.36    17.62
 42甘  肅    27    1.10    16.85    27.93
 43青  海    28    1.49    17.76    27.70
 44寧  夏    29    1.61    20.27    22.06
 45新  疆    30    1.85    20.66    12.75
 46
 47數(shù)據(jù)來源:《中國計(jì)劃生育全書》第886頁。
 48
 49要求將上述數(shù)據(jù)分成三類。
 50
 51參考算法(K-MEANS)
 52  k-means 算法接受輸入量 k ;然后將n個(gè)數(shù)據(jù)對象劃分為 k個(gè)聚類以便使得所獲得的聚類滿足:同一聚類中的對象相似度較高;而不同聚類中的對象相似度較小。聚類相似度是利用各聚類中對象的均值所獲得一個(gè)“中心對象”(引力中心)來進(jìn)行計(jì)算的。
 53
 54  k-means 算法的工作過程說明如下:首先從n個(gè)數(shù)據(jù)對象任意選擇 k 個(gè)對象作為初始聚類中心;而對于所剩下其它對象,則根據(jù)它們與這些聚類中心的相似度(距離),分別將它們分配給與其最相似的(聚類中心所代表的)聚類;然后再計(jì)算每個(gè)所獲新聚類的聚類中心(該聚類中所有對象的均值);不斷重復(fù)這一過程直到標(biāo)準(zhǔn)測度函數(shù)開始收斂為止。一般都采用均方差作為標(biāo)準(zhǔn)測度函數(shù). k個(gè)聚類具有以下特點(diǎn):各聚類本身盡可能的緊湊,而各聚類之間盡可能的分開。
 55
 56
 57----輸入:
 58
 59若干行,每行為
 60
 61字符串 實(shí)數(shù) 實(shí)數(shù) 實(shí)數(shù)
 62
 63表示
 64
 65地區(qū) DXBZ CZBZ WMBZ
 66
 67輸入至文件結(jié)束。
 68
 69
 70----輸出:
 71
 72按輸入順序,輸出若干行,每行為
 73
 74地區(qū) 類別
 75
 76其中類別為 1,2 或 3 。
 77
 78
 79----分析:
 80
 81無需贅述。
 82
 83第一次實(shí)現(xiàn),代碼好丑。
 84
 85
 86*/

 87
 88
 89#include <iostream>
 90#include <cstdio>
 91#include <cstring>
 92#include <cmath>
 93#include <cstdlib>
 94#include <ctime>
 95#include <string>
 96
 97using namespace std;
 98
 99const int    N   = 1009;
100const double EPS = 1e-3;
101
102int    n;                      // n 項(xiàng)數(shù)據(jù),編號為 1..n
103double x[ N ], y[ N ], z[ N ]; // 1..n   DXBZ CZBZ WMBZ
104int    bg[ N ];                // 1..n   bg[ i ] 表示第 i 項(xiàng)數(shù)據(jù)屬于哪一類
105string name[ N ];
106
107int    k;                         // 分為 k 類,編號為 1..k
108int    g[ N ][ N ];               // 1..k  1..[0]
109double cx[ N ], cy[ N ], cz[ N ]; // center 1..k
110
111bool md = false;
112
113inline double sqr( double x ) {
114        return x * x;
115}

116
117inline double dist( int ci, int j ) {
118        return sqr(cx[ci] - x[j]) + sqr(cy[ci] - y[j]) + sqr(cz[ci]-z[j]);
119}

120
121inline int diff( double x, double y ) {
122        return (abs(x - y) > EPS);
123}

124
125inline void center() {
126        double sx, sy, sz, tx, ty, tz;
127        int i, j, p;
128        for ( i = 1; i <= k; ++i ) {
129                sx = sy = sz = 0;
130                for ( j = g[ i ][ 0 ]; j > 0--j ) {
131                        p = g[ i ][ j ];
132                        sx += x[ p ];
133                        sy += y[ p ];
134                        sz += z[ p ];
135                }

136                j = g[ i ][ 0 ];
137                tx = sx / j;
138                ty = sy / j;
139                tz = sz / j;
140
141                if ( diff(tx, cx[i]) || diff(ty, cy[i]) || diff(tz, cz[i]) ) {
142                        md = true;
143                }

144
145                cx[ i ] = tx;
146                cy[ i ] = ty;
147                cz[ i ] = tz;
148        }

149}

150
151inline int find( int i ) {
152        int    j = 1, v;
153        double m = dist( 1, i ), tm;
154        for ( v = 2; v <= k; ++v ) {
155                tm = dist( v, i );
156                if ( tm < m ) {
157                        m = tm;
158                        j = v;
159                }

160        }

161        return j;
162}

163
164inline void add( int i ) {
165        int j = find( i );
166        bg[ i ] = j;
167        g[ j ][ ++g[j][0] ] = i;
168}

169
170inline void disp() {
171        int i;
172        for ( i = 1; i <= k; ++i ) {
173                g[ i ][ 0 ] = 0;
174        }

175        for ( i = 1; i <= n; ++i ) {
176                add( i );
177        }

178}

179
180int kmean() {
181        int i, j;
182
183        if ( (1 > n) || (k > n) ) {
184                return 0;
185        }

186
187        srand( (unsigned int)time( NULL ) );
188
189        memset( g,  0sizeof(g)  );
190        memset( bg, 0sizeof(bg) );
191        for ( i = 1; i <= k; ++i ) {
192                j = rand() % n + 1;
193
194                g[ i ][ 0 ] = 1;
195                g[ i ][ 1 ] = j;
196                cx[ i ] = x[ j ];
197                cy[ i ] = y[ j ];
198                cz[ i ] = z[ j ];
199                bg[ j ] = i;
200        }

201        for ( i = 1; i <= n; ++i ) {
202                if ( 0 == bg[ i ] ) {
203                        add( i );
204                }

205        }

206
207        md = true;
208        while ( md ) {
209                md = false;
210                center();
211                disp();
212        }

213
214        return 1;
215}

216
217int main() {
218        n = 0;
219        k = 3;
220        while ( cin >> name[n+1>> x[n+1>> y[n+1>> z[n+1] ) {
221                ++n;
222        }

223        if ( kmean() ) {
224                int i;
225                for ( i = 1; i <= n; ++i ) {
226                        cout << name[ i ] << "  " << bg[ i ] << endl;
227                }

228        }

229        else {
230                cout << "輸入不合法,無法分類" << endl;
231        }

232        return 0;
233}

234
235
236/*
237實(shí)際輸出:
238
239北京  2
240天津  2
241河北  3
242山西  2
243內(nèi)蒙  3
244遼寧  2
245吉林  2
246黑龍江  2
247上海  2
248江蘇  3
249浙江  3
250安徽  1
251福建  3
252江西  3
253山東  3
254河南  3
255河北  3
256湖南  3
257廣東  3
258廣西  3
259海南  3
260四川  3
261貴州  1
262云南  1
263西藏  1
264陜西  3
265甘肅  1
266青海  1
267寧夏  3
268新疆  3
269
270*/

271

posted on 2012-06-05 15:04 coreBugZJ 閱讀(1180) 評論(0)  編輯 收藏 引用 所屬分類: Algorithm 、課內(nèi)作業(yè)Intelligence

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一区二区毛片| 欧美在线www| 国产精品视频不卡| 国产精品国产精品国产专区不蜜| 欧美大成色www永久网站婷| 欧美成人a∨高清免费观看| 欧美大片免费观看在线观看网站推荐| 欧美激情日韩| 美玉足脚交一区二区三区图片| 国产字幕视频一区二区| 一区二区在线不卡| 日韩视频一区二区| 亚洲一区二区免费在线| 久久久国际精品| 亚洲国产另类久久久精品极度| 亚洲第一天堂无码专区| 亚洲网站在线播放| 久久久91精品| 国产精品二区在线| 在线成人国产| 亚洲一区二区三区777| 久久婷婷国产综合精品青草 | 亚洲欧美日韩精品久久久| 久久国产精品黑丝| 亚洲人午夜精品免费| 午夜精品一区二区三区在线| 欧美电影专区| 好看的亚洲午夜视频在线| 亚洲视频一区| 亚洲福利小视频| 久久精品伊人| 国产麻豆日韩欧美久久| 一本一道久久综合狠狠老精东影业| 久久免费高清| 亚洲在线国产日韩欧美| 欧美另类视频在线| 亚洲国产精品一区二区尤物区 | 亚洲福利小视频| 欧美一区二区国产| 国产精品日本欧美一区二区三区| 亚洲欧洲精品一区二区三区波多野1战4 | 欧美日韩在线精品一区二区三区| 韩国av一区二区三区四区| 亚洲欧美韩国| 中文在线一区| 欧美日韩一卡二卡| 亚洲美女在线看| 欧美激情片在线观看| 久久久久久久久久久久久9999| 国产精品久久一区主播| 一区二区三区日韩精品| 亚洲丰满在线| 欧美激情精品久久久久久黑人| 亚洲电影下载| 欧美国产日韩在线| 玖玖玖国产精品| 亚洲国内高清视频| 亚洲春色另类小说| 国产精品成人观看视频国产奇米| 亚洲国产精品一区二区第四页av| 国产一区二区三区四区老人| 欧美日韩精品免费观看视一区二区| 亚洲激情偷拍| 亚洲大胆在线| 欧美第一黄色网| 亚洲伦伦在线| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 亚洲一级特黄| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲一品av免费观看| 一区二区三区免费看| 国产精品网站在线播放| 久久久精品动漫| 久久蜜臀精品av| 99国内精品久久| 亚洲欧美日韩另类| 亚洲成人原创| 亚洲欧洲日本专区| 国产精品系列在线播放| 鲁大师影院一区二区三区| 欧美va亚洲va日韩∨a综合色| aa日韩免费精品视频一| 亚洲一区亚洲二区| 精品成人免费| 99成人精品| 国模套图日韩精品一区二区| 亚洲第一页自拍| 国产精品视频| 亚洲成色www8888| 国产精品毛片大码女人| 免费高清在线视频一区·| 欧美日韩国产在线播放| 久久精品最新地址| 欧美精品久久99| 久久久天天操| 欧美日韩在线第一页| 麻豆精品传媒视频| 国产精品久久久久久久久久妞妞 | 国产精品xnxxcom| 欧美1区视频| 国产欧美韩日| 亚洲精品一级| 亚洲国产精品日韩| 午夜一区在线| 亚洲一区二区在线| 美国成人直播| 久久久久国产精品一区二区| 欧美午夜精品久久久久久孕妇| 免费人成精品欧美精品| 国产欧美一区二区三区国产幕精品 | 国色天香一区二区| 久久成人免费网| 亚洲美女黄网| 黄色小说综合网站| 亚洲视频久久| 亚洲精品之草原avav久久| 久久国产精品黑丝| 欧美一区二区精品久久911| 欧美国产日韩二区| 欧美成人官网二区| 韩国av一区二区三区四区| 亚洲一区二区三区三| 一本一道久久综合狠狠老精东影业| 久久免费视频网| 久久在线91| 激情久久久久久久| 久久精品在线视频| 久久九九免费| 国产在线日韩| 欧美一区二区三区视频在线观看| 午夜视频在线观看一区二区三区 | 国产伦精品一区二区三区在线观看| 亚洲国产黄色片| 亚洲第一在线视频| 久久久夜色精品亚洲| 可以看av的网站久久看| 黄色av一区| 免费在线观看成人av| 欧美韩日精品| aa成人免费视频| 国产精品久久久久久久久久久久久久| 亚洲每日在线| 西西人体一区二区| 国产偷久久久精品专区| 久久动漫亚洲| 亚洲国产精品福利| 在线视频欧美日韩精品| 国产精品久久久一区二区| 亚洲欧美激情一区| 看欧美日韩国产| 亚洲日本成人网| 国产精品成人观看视频国产奇米| 亚洲免费一区二区| 另类欧美日韩国产在线| 亚洲精品欧美日韩| 国产精品成人一区二区网站软件| 亚洲欧美怡红院| 欧美激情按摩在线| 亚洲一本视频| 影音欧美亚洲| 欧美日韩一区二区高清| 午夜在线视频观看日韩17c| 免费在线成人av| 国产精品99久久久久久www| 国产欧美精品一区| 女女同性女同一区二区三区91| 亚洲免费精彩视频| 久久久爽爽爽美女图片| 99re6这里只有精品视频在线观看| 国产精品久久久久久久免费软件| 久久成人在线| 亚洲区国产区| 欧美午夜宅男影院在线观看| 久久国产精品久久久久久| 亚洲国内在线| 久久精品国内一区二区三区| 亚洲国语精品自产拍在线观看| 欧美成人日韩| 在线看一区二区| 欧美激情视频在线播放 | 久久久久久久久一区二区| 亚洲激情视频在线| 久久国产精品99国产| 亚洲精品一区二区三区99| 国产精品色网| 欧美久久九九| 老巨人导航500精品| 亚洲欧美综合v| 一区二区高清视频在线观看| 欧美va亚洲va日韩∨a综合色| 性欧美8khd高清极品| 亚洲天堂男人| 9人人澡人人爽人人精品| 在线免费观看欧美| 国产亚洲在线观看| 国产精品久久久久久久9999| 欧美精选一区| 欧美国产视频一区二区| 久久久久久久激情视频| 性久久久久久久久|