move=0;
%对所有的数据进行再次判断,寻求最佳聚类结果
fori=1:
n
dist=sum((repmat(x(i,:
),k,1)-nc).^2,2);
r=cid(i);%将当前数据属于的类给r
dadj=nr./(nr+1).*dist';%计算调整后的距离
[m,ind]=min(dadj);%早到该数据距哪个聚类中心最近
ifind~=r%如果不等则聚类中心移动
cid(i)=ind;%将新的聚类结果送给cid
ic=find(cid==ind);%重新计算调整当前类别的聚类中心
nc(ind,:
)=mean(x(ic,:
));
move=1;
end
end
iter=iter+1;
end
centers=nc;
ifmove==0
disp('Nopointsweremovedaftertheinitialclusteringprocedure.')
else
disp('Somepointsweremovedaftertheinitialclusteringprocedure.')
end
2.1.2使用数据
城市
1月
2月
3月
4月
北京
-3
0.6
9.1
15.8
天津
-3.6
-0.7
8.6
15.8
石家庄
-2
2.5
10.6
16.3
太原
-5.5
-3.3
7.1
13.1
呼和浩特
-12.1
-9.3
3.4
11.4
沈阳
-12.6
-7.9
3.8
12.2
长春
-15.6
-9.4
3
12.1
哈尔滨
-17.6
-10.5
2.7
11.3
上海
4.2
4
11.4
15.9
南京
1.5
2.5
11.3
15.6
杭州
3.7
3.9
12.7
17.1
合肥
1
2.7
12.5
16.8
福州
11
9.1
15.3
19.3
南昌
3.5
5.5
14.6
18.7
济南
-2
1
10.3
16.3
郑州
-0.7
2.8
12.1
16.9
武汉
1.2
4.9
14.4
18.5
长沙
2.3
5.5
15.2
18.9
广州
12.8
11.6
20.1
23.2
南宁
9.4
10.4
19.1
22.9
海口
16.9
13.3
20.9
25.3
重庆
6.2
7.3
15.5
19
成都
3.7
5.4
13.4
17.2
贵阳
1
2.2
11.8
15.7
昆明
10.7
8.5
13.7
18
拉萨
1.5
1.4
5.6
10.1
西安
-1.7
1.8
12.5
16.4
兰州
-6.6
-4.1
9.1
13.8
西宁
-9.6
-7.9
3.4
8.3
银川
-10.2
-7.7
7.3
13.4
乌鲁木齐
-15.6
-9.6
5.2
11.1
2.1.3分类效果及结果分析
(1)聚类过程
Nopointsweremovedaftertheinitialclusteringprocedure.
cid=
Columns1through18
222111112222322222
Columns19through31
3333223221111
nr=
9166
centers=
-11.7111-7.74445.000011.8556
0.66252.875011.631316.3750
11.166710.033317.433321.2833
(2)分类效果图
图1案例一效果图
(3)分类结果分析
在本案例中主要是对全国主要城市的气温进行k-means聚类分析,从而总结出不同地区相同时间段内气温变化的相似性和差异性。
但由于数据的原因,效果不是很明显。
综合海陆位置、海拔以及经纬度等多种地理学因素,可以得出:
第一类红色代表北纬40°以北地区,第二类蓝色代表北纬25°~40°之间的地区,第三类绿色代表北纬25°以南地区。
2.2k-means算法应用实例
(二)
此案例主要是k-means算法在遥感图像中的应用:
将某一区域的遥感图像波段信息进行标准化处理,标准化的方法为平均值标准化,即(某一波段像元灰度值减去该波段像元灰度平均值)/该波段像元灰度平均值。
2.2.1算法代码
(1)k-means算法主程序
%k-means算法主程序
k=4;
x=[1.21262.13380.51150.2044
-0.93160.76340.0125-0.2752
-2.95930.1813-0.88330.8505
3.1104-2.5393-0.05880.1808
-3.1141-0.1244-0.68110.9891
-3.20080.0024-1.29010.9748
-1.07771.14380.19960.0139
-2.7213-0.19090.11840.1013
-1.14671.38200.1427-0.2239
1.14971.9414-0.30350.3464
2.6993-2.25560.1637-0.0139
-3.03110.14170.08880.1791
-2.8403-0.1809-0.09650.0817
1.01182.03720.1638-0.0349
-0.89681.0260-0.10130.2369
1.11121.8802-0.0291-0.1506
1.19072.2041-0.10600.2167
-1.01140.8029-0.13170.0153
-3.17150.1041-0.33380.0321
0.97181.96340.0305-0.3259
-1.03770.8889-0.28340.2301
-0.89891.0185-0.02890.0213
-2.9815-0.47980.22450.3085
-0.85760.9231-0.2752-0.0091
-3.13560.0026-1.21380.7733
3.4470-2.24180.2014-0.1556
2.9143-1.79510.1992-0.2146
3.4961-2.4969-0.01210.1315
-2.9341-0.1071-0.77120.8911
-2.8105-0.0884-0.0287-0.1279
3.1006-2.0677-0.2002-0.1303
0.82092.17240.15480.3516
-2.85000.31960.1359-0.1179
-2.86790.1365-0.57020.7626
-2.8245-0.13120.0881-0.1305
-0.83221.3014-0.38370.2400
-2.60630.14310.18800.0487
-3.1341-0.0854-0.0359-0.2080
0.68932.0854-0.3250-0.1007
1.08941.7271-0.01760.6553
-2.9851-0.01130.0666-0.0802
1.03712.27240.10440.3982
-2.8032-0.2737-0.73911.0277
-2.68560.0619-1.10661.0485
-2.9445-0.1602-0.00190.0093
1.20042.1302-0.16500.3413
3.2505-1.92790.4462-0.2405
-1.20800.82220.16710.1576
-2.82740.1515-0.96361.0675
2.8190-1.86260.27020.0026
1.05071.7776-0.14210.0999
-2.89460.1446-0.16450.3071
-1.01051.09730.02410.1628
-2.9138-0.34040.06270.1286
-3.0646-0.00080.3819-0.1541
1.25311.9830-0.07740.2413
1.14862.0440-0.0582-0.0650
-3.1401-0.1447-0.65800.9562
-2.95910.1598-0.65811.1937
-2.9219-0.3637-0.1538-0.2085
2.8948-2.27450.2332-0.0312
-3.2972-0.0219-0.0288-0.1436
-1.27370.76480.06430.0858
-1.06900.8108-0.27230.3231
-0.59080.7508-0.54560.0190
0.58082.0573-0.16580.1709
2.8227-2.24610.2255-0.3684
0.61741.7654-0.39990.4125
3.2587-1.93100.20210.0800
1.09991.8852-0.0475-0.0585
-2.73950.2585-0.84410.9987
-1.22231.0542-0.2480-0.2795
-2.9212-0.0605-0.02590.2591
3.1598-2.26310.17460.1485
0.84761.8760-0.2894-0.0354
2.9205-2.24180.4137-0.2499
2.7656-2.17680.0719-0.1848
-0.86981.0249-0.2084-0.0008
-1.14440.7787-0.49580.3676
-1.07111.0450-0.0477-0.4030
0.53501.8110-0.03770.1622
0.90761.8845-0.11210.5700
-2.7887-0.21190.05660.0120
-1.25670.92740.11040.1581
-2.9946-0.2086-0.81690.6662
1.05361.9818-0.06310.2581
-2.8465-0.22220.27450.1997
-2.85160.1649-0.75660.8616
-3.24700.07700.1173-0.1092
-2.9322-0.0631-0.0062-0.0511
-2.79190.0438-0.1935-0.5023
0.98941.9475-0.0146-0.0390
-2.9659-0.13000.11440.3410
-2.7322-0.0427-1.07580.9718
-1.48520.8592-0.0503-0.1373
2.8845-2.1465-0.0533-0.1044
-3.14700.05360.10730.3323
2.9423-2.15720.05050.1180
-3.06830.3434-0.65630.8960
1.32152.0951-0.15570.3994
-0.76811.2075-0.27810.2372
-0.69641.2360-0.33420.1662
-0.63820.8204-0.25870.3344
-3.0233-0.1496-0.2607-0.0400
-0.89520.98720.00190.3138
-0.81720.6814-0.06910.1009
-3.30320.0571-0.0243-0.1405
0.7810