目前在搞一個(gè)基于GIS地圖的POI聚類分析,所得數(shù)據(jù)特征并不豐富状您,而且多數(shù)特征無用兜挨,要在地圖上做出花樣來有點(diǎn)難啊拌汇,反復(fù)思索了很多種解法
1.數(shù)據(jù)預(yù)處理 :
CLASS十六進(jìn)制轉(zhuǎn)十進(jìn)制,DISTRICT 歸一化/標(biāo)準(zhǔn)化
(后來在程序里用了數(shù)據(jù)標(biāo)準(zhǔn)化)
import pandas as pd
from sklearn.cluster import KMeans
#參數(shù)初始化
inputfile = 'C:/Users/mfm/Desktop/new123.xls' #銷量及其他屬性數(shù)據(jù)
outputfile = 'C:/Users/mfm/Desktop/new123pro.xls' #保存結(jié)果的文件名
k = 11 #聚類的類別
iteration = 500 #聚類最大循環(huán)次數(shù)
data = pd.read_excel(inputfile, index_col = 'FID') #讀取數(shù)據(jù)
data_zs = 1.0*(data - data.mean())/data.std() #數(shù)據(jù)標(biāo)準(zhǔn)化
model = KMeans(n_clusters = k, n_jobs = 1, max_iter = iteration) #分為k類魁淳,并發(fā)數(shù)1
model.fit(data_zs) #開始聚類
print("開始聚類")
#簡(jiǎn)單打印結(jié)果
r1 = pd.Series(model.labels_).value_counts() #統(tǒng)計(jì)各個(gè)類別的數(shù)目
r2 = pd.DataFrame(model.cluster_centers_) #找出聚類中心
r = pd.concat([r2, r1], axis = 1) #橫向連接(0是縱向)先改,得到聚類中心對(duì)應(yīng)的類別下的數(shù)目
r.columns = list(data.columns) + [u'類別數(shù)目'] #重命名表頭
print(r)
#詳細(xì)輸出原始數(shù)據(jù)及其類別
r = pd.concat([data, pd.Series(model.labels_, index = data.index)], axis = 1)? #詳細(xì)輸出每個(gè)樣本對(duì)應(yīng)的類別
r.columns = list(data.columns) + [u'聚類類別'] #重命名表頭
r.to_excel(outputfile) #保存結(jié)果
之后嘗試以class 和 district作為聚類特征做了嘗試仇奶,效果還是不理想,尚未進(jìn)行可視化的結(jié)果展示该溯。對(duì)整體的分類效果不滿意
2.之后嘗試以DBSCAN做嘗試,試圖分出一個(gè)連續(xù)區(qū)域的效果夫椭,類似位和科技的分區(qū)效果氯庆,如下圖: